В данном примере рассматривается объемное кольцо. На внутреннюю поверхность кольца действует момент 120 Н*м, который необходимо равномерно распределить по поверхности кольца. Для решения такой задачи есть два основных пути - первый - использование вспомогательного узла со связями по расстоянию, второй - использование формул и команд APREPRO.
Для начала рассмотрим способ номер 1 - со вспомогательным узлом и связями.
Первое, что необходимо сделать - создать геометрию кольца. Создаем цилиндр.
Создаем второй - поменьше
Вычитаем малый из большого.
Перемещаем кольцо, т.к. оно в общем случае может лежать не в центре координат, а где-то.
Создаем вспомогательную вершину в центре кольца через создание по расположению в центре.
Строим сетку на вершине.
Строим сетку на объеме.
Создаем материал путем перетаскивания из библиотеки.
Создаем блок с вершиной для передачи ей далее свойств.
Создаем блок с кольцом, чтобы далее передать ему свойства.
Задаем блоку с вершиной свойства, указывая, что она - "точка". По сути - интерфейсный узел.
Задаем блоку с кольцом свойства.
Прикладываем граничные условия на внешнюю поверхность кольца.
Прикладываем момент на вершину.
Создаем связь по расстоянию, которая позволит передать момент с вершины на кольцо.
Задаем настройки для решения и запускаем на счет.
После того как решение завершится, переходим в результаты.
Если применить фильтр "деформировать по вектору", то станет видно проворачивание внутренней поверхности кольца.
Теперь рассмотрим вариант 2 - через команды и формулы. Этот способ может казаться более сложным, но иногда подобные методики задания нагрузок бывают более предпочтительными.
В CAE Fidesys есть поддержка языка программирования APREPRO (aлгебраический препроцессор для задания параметров анализа методом конечных элементов). Переменные APREPRO могут быть заданы и изменены с помощью графического интерфейса. Редактор можно включить/выключить из пункта меню Вид / Редактор Aprepro. Редактор открывается с отдельном окне, которое пользователь может разместить любом месте в пределах графического интерфейса программы.
Создание геометрической модели
Для задания переменной, определяющей внутренний радиус кольца для дальнейших построений и вычислений, пропишите в командную строку:
#{innerRadius=1}
Затем создайте два цилиндра. На панели команд выберите Режим - Геометрия, Объект - Объем, Действие - Создать. Из выпадающего списка выберите Цилиндр и задайте необходимые параметры. Нажмите Применить.
Проделайте тоже самое для создания второго цилиндра с высотой 0,1 и радиусом 1.
Вычтите второй цилиндр из первого. На панели команд выберите Режим - Геометрия, Объект - Поверхность, Действие - Логические операции. Из выпадающего списка выберите Вычесть и задайте необходимые параметры. Нажмите Применить.
Задайте переменные смещения, для этого пропишите в командную строку:
#{moveX=0.5} #{moveY=0.7}
Переместите геометрическую модель. На панели команд выберите Режим - Геометрия, Объект - Объем, Действие - Преобразовать. Из выпадающего списка выберите Переместить и задайте необходимые параметры. Нажмите Применить.
Задание зависимости ГУ
Задайте значение момента, действующего на кольцо, для этого пропишите в командную строку:
#{moment=120}
Для вычисления переменной усилия, вызывающего выбранный момент с учетом плеча, пропишите в командную строку:
#{force=moment/innerRadius}
Для вычисления переменной распределенного усилия пропишите в командную строку:
#{distributedForce=force/SurfaceArea(7)}
Приложите распределенную силу, действующую на внутреннюю поверхность кольца. На панели команд выберите Режим - Граничные условия, Объект - Распределенная сила, Действие - Создать. Задайте необходимые параметры. Нажмите Применить.
Проделайте тоже самое для векторного направления 0 2 0.
Для передачи формульных значений для вычисления распределенных по узлам усилий с учетом смещения центра кольца в командую строку пропишите следующие команды:
create formula 1 '-{distributedForce} * (x-{moveX})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))' modify distributed force 2 vector value1 0 formula2 1 value3 0 value4 0 value5 0 value6 0 create formula 2 '{distributedForce} * (y-{moveY})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))' modify distributed force 1 vector formula1 2 value2 0 value3 0 value4 0 value5 0 value6 0
Построение сетки
Постройте сетку для геометрической модели. На панели команд выберите Режим - Сетка, Объект - Объемная, Действие - Интервалы. Из выплывающего списка выберите Автоматический размер и задайте необходимые параметры. Нажмите Задать размер, Построить сетку.
Задание материала и свойств блока
Создайте материал. На панели команд выберите Режим - Материал, Объект - Управление материалами. В колонке "Импортированный материал" дважды нажмите на Углеродистая сталь.
Создайте блок. На панели команд выберите Режим - Блоки, Объект - Блок, Действие - Добавить сущность в блок. Задайте необходимые параметры. Нажмите Применить.
Задайте свойства блоку. На панели команд выберите Режим - Блоки, Объект - Блок, Действие - Свойства/параметры блока. Задайте необходимые параметры. Нажмите Применить.
Задание граничных условий
Закрепите поверхность в перемещениях по всем осям. На панели команд выберите Режим - Граничные условия, Объект - Перемещение, Действие - Создать. Задайте необходимые параметры. Нажмите Применить.
Запуск расчета
Для запуска на расчет в CAE Fidesys выберите на панели команд Режим - Настройки расчета, Настройки расчета - Статический, Статический - Общие. Задайте требуемые параметры и нажмите Применить, Начать расчет.
Задайте дополнительные настройки. На панели команд выберите Режим - Настройки расчета, Настройки расчета - Статический, Статический - Поля вывода. Задайте требуемые параметры и нажмите Применить, Начать расчет.
Анализ результатов
Откройте файл с результатами. Это можно сделать тремя способами:
Нажмите Ctrl+E;
В главном меню выберите Расчёт - Результаты. Нажмите Открыть последний результат;
На панели команд выберите Результаты (Режим - Результаты, Результаты - Открыть Результаты).
Появится окно Fidesys Viewer, в котором вы сможете ознакомиться с результатами расчёта.
В верхней строке выберите Фильтр → Алфавитный указатель → Построить векторное поле. Затем в Свойствах задайте необходимые параметры и нажмите Применить.
В результате на модели отобразится векторное поле.
Для проверки правильности решения воспользуйтесь функцией Включить всплывающую подсказку при наведении на точку.
В результате расчет произведен правильно, так как в каждом узле значение силы должно по модулю быть равно 2, но нет узлов, которые бы четко лежали на осях, однако видно, что значение в узлах рядом с осями примерно равны 2.
Использование консольного интерфейса
Построение геометрии, генерацию сетки, задание граничных условий и материалов можно выполнить с использованием консольного интерфейса. Ниже приведён код программы, позволяющий выполнить шаги описанного выше руководства, необходимо только самостоятельно указать полный путь и название сохраняемого файла.
reset #Задаем переменную, определяющую внутренний радиус кольца для дальнейших построений и вычислений #{innerRadius=1} create Cylinder height 0.1 radius 2 create Cylinder height 0.1 radius {innerRadius} subtract volume 2 from volume 1 #В общем случае кольцо может быть смещено, поэтому задаем переменные смещения #{moveX=0.5} #{moveY=0.7} #Смещаем кольцо move Volume 1 x {moveX} y {moveY} include_merged #Задаем значение момента, действующего на кольцо #{moment=120} #Вычисляем переменную усилия, вызывающего выбранный момент с учетом плеча #{force=moment/innerRadius} #Вычисляем переменную распределенного усилия, которое необходимо задать на площадь внутренней поверхности кольца #{distributedForce=force/SurfaceArea(7)} #Создаем пару распределенных сил, чтобы передать им нужные формульные значения create distributed force on surface 7 force value 1 moment value 0 direction 1 0 0 specific create distributed force on surface 7 force value 1 moment value 0 direction 0 2 0 specific #Передаем формульные значения для вычисления распределенных по узлам усилий с учетом смещения центра кольца create formula 1 '-{distributedForce} * (x-{moveX})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))' modify distributed force 2 vector value1 0 formula2 1 value3 0 value4 0 value5 0 value6 0 create formula 2 '{distributedForce} * (y-{moveY})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))' modify distributed force 1 vector formula1 2 value2 0 value3 0 value4 0 value5 0 value6 0 volume all size auto factor 7 mesh volume all create material 1 from 'Углеродистая сталь' set duplicate block elements off block 1 add volume all block 'Block 1' material 1 cs 1 element solid order 1 create displacement on surface 1 dof all fix analysis type static elasticity dim3 output nodalforce on energy off midresults on record3d off material off fullperiodic off