Transient FEM analysis/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "Анализ должен уже содержать объект решателя 'CalculiXccx Tools'. Если нет, мы добавляе...")
(Updating to match new version of source page)
 
(7 intermediate revisions by 3 users not shown)
Line 13: Line 13:
== Background ==
== Background ==


<span id="Creating_the_model"></span>
== Создание модели ==
== Создание модели ==


<div class="mw-translate-fuzzy">
# Начав с пустого проекта FreeCAD, мы построим нашу биметаллическую полосу в [[Image:Workbench_Part.svg|24px]] [[Part Module/ru|верстаке Part]]
# Начав с пустого проекта FreeCAD, мы построим нашу биметаллическую полосу в [[Image:Workbench_Part.svg|24px]] [[Part_Workbench/ru|верстаке Part]]
# Нарисуйте [[File:Part_Box.svg|24px]] [[Part Box/ru|кубическое]] твердое тело и переименуйте его в {{incode|aluminium}}.
# Нарисуйте [[File:Part_Box.svg|24px]] [[Part Box/ru|кубическое]] твердое тело и переименуйте его в {{incode|aluminium}}.
# Дайте ему размеры 100 x 10 x 2 мм (длина x ширина x высота).
# Дайте ему размеры 100 x 10 x 2 мм (длина x ширина x высота).
Line 23: Line 25:
# Переименуйте эти логические фрагменты в {{incode|биметаллическую полосу}}
# Переименуйте эти логические фрагменты в {{incode|биметаллическую полосу}}
# В [[Property editor/ru|Редакторе свойств]] мы меняем режим с {{PropertyView|Standard}} на {{PropertyView|CompSolid}}. (Это также должно работать с использованием команды [[Part_Compound/ru|Part Compound]] вместо [[Image:Part_BooleanFragments.svg|24px]] [[Part BooleanFragments/ru|Boolean Fragments]], однако с более сложными пересекающимися формами позже могут возникнуть проблемы с анализом МКЭ. Так что лучше сначала привыкнуть к использованию Boolean Fragments.) Результат должен выглядеть следующим образом:
# В [[Property editor/ru|Редакторе свойств]] мы меняем режим с {{PropertyView|Standard}} на {{PropertyView|CompSolid}}. (Это также должно работать с использованием команды [[Part_Compound/ru|Part Compound]] вместо [[Image:Part_BooleanFragments.svg|24px]] [[Part BooleanFragments/ru|Boolean Fragments]], однако с более сложными пересекающимися формами позже могут возникнуть проблемы с анализом МКЭ. Так что лучше сначала привыкнуть к использованию Boolean Fragments.) Результат должен выглядеть следующим образом:
</div>


[[File:Transient FEM Bimetal (1).JPG|700px]]
[[File:Transient FEM Bimetal (1).JPG|700px]]


<span id="Preparing_and_running_the_FEM_analysis"></span>
== Подготовка и выполнение расчёта по МКЭ ==
== Подготовка и выполнение расчёта по МКЭ ==


<span id="Assigning_the_materials"></span>
=== Назначение материалов ===
=== Назначение материалов ===


Line 36: Line 41:
Мы закрываем окно задачи и повторяем шаги для создания второго материала 'Steel' (карта материала «CalculiX-Steel») и назначаем его верхней полосе ('BooleanFragments:Solid2').
Мы закрываем окно задачи и повторяем шаги для создания второго материала 'Steel' (карта материала «CalculiX-Steel») и назначаем его верхней полосе ('BooleanFragments:Solid2').


<span id="Creating_the_mesh"></span>
=== Создание сетки ===
=== Создание сетки ===


Line 49: Line 55:
[[File:Transient FEM Bimetal (3).JPG|700px]]
[[File:Transient FEM Bimetal (3).JPG|700px]]


<span id="Assigning_boundary_conditions"></span>
=== Задание граничных условий ===
=== Задание граничных условий ===


Анализ МКЭ сейчас ни к чему не приведет, потому что с нашей моделью еще ничего не происходит. Итак, давайте добавим немного температуры: используйте [[File:FEM_ConstraintInitialTemperature.svg|20px]] начальную температуру из верстака FEM и установите температуру на 300 K. Здесь нельзя выбрать никакие части модели, так как этот параметр применяется ко всей модели.
Анализ МКЭ сейчас ни к чему не приведет, потому что с нашей моделью еще ничего не происходит. Итак, давайте добавим немного температуры: используйте [[File:FEM_ConstraintInitialTemperature.svg|20px]] начальную температуру из верстака FEM и установите температуру на 300 K. Здесь нельзя выбрать никакие части модели, так как этот параметр применяется ко всей модели.


Затем мы используем [[File:FEM_ConstraintTemperature.svg|20px]] температуру, действующую на грань. Мы выделяем две грани на одном конце полосы (Ctrl + левая клавиша мыши) и нажимаем 'add' в окне задачи. В списке должны появиться две грани объекта Boolean Fragments и маленькие значки температуры на модели. Выставляем температуру 400 К и закрываем окно задач. В начале анализа выбранные грани получат мгновенное повышение температуры от 300 до 400 К. Тепло будет проводиться по металлическим полосам и вызывать изгиб полосы.
Затем мы используем [[File:FEM_ConstraintTemperature.svg|20px]] температуру, действующую на грань. Мы выделяем две грани на одном конце полосы (Ctrl + левая клавиша мыши) и нажимаем 'Add' в окне задачи. В списке должны появиться две грани объекта Boolean Fragments и маленькие значки температуры на модели. Выставляем температуру 400 К и закрываем окно задач. В начале анализа выбранные грани получат мгновенное повышение температуры от 300 до 400 К. Тепло будет проводиться по металлическим полосам и вызывать изгиб полосы.


[[File:Transient FEM Bimetal (4).JPG|700px]]
[[File:Transient FEM Bimetal (4).JPG|700px]]
Line 61: Line 68:
[[File:Transient FEM Bimetal (5).JPG|700px]]
[[File:Transient FEM Bimetal (5).JPG|700px]]


<span id="Running_the_analysis"></span>
=== Запуск анализа ===
=== Запуск анализа ===


Анализ должен уже содержать объект решателя '[[FEM_SolverCalculixCxxtools/ru|CalculiXccx Tools]]'. Если нет, мы добавляем его, используя значок решателя [[File:FEM_SolverCalculixCxxtools.svg|20px]] на панели инструментов. (Имеются два идентичных значка, экспериментальный решатель также должен работать.) У объекта решателя есть список свойств ниже в левой части окна. Здесь мы выбираем следующие варианты (те, которые не упоминались, оставляем без изменений):
Анализ должен уже содержать объект решателя '[[FEM_SolverCalculixCxxtools/ru|CalculiXccx Tools]]'. Если нет, мы добавляем его, используя значок решателя [[File:FEM_SolverCalculixCxxtools.svg|20px]] на панели инструментов. (Имеются два идентичных значка, экспериментальный решатель также должен работать.) У объекта решателя есть список свойств ниже в левой части окна. Здесь мы выбираем следующие варианты (те, которые не упоминались, оставляем без изменений):


* Analysis Type:: мы хотим провести термомеханический анализ. Другие варианты могут быть только статическими (без температурных эффектов), частотными (колебания) или только для проверки правильности модели.
* Analysis Type: We want to run a thermomechanical analysis. Other options would be only static (no temperature effects), frequency (oscillations), or only to check the model validity.
* Thermo Mech Steady State: Устойчивое состояние означает, что решающая программа вернет один единственный результат, когда физика достигнет равновесия. Мы НЕ хотим этого делать, мы хотели бы получить множественные результаты с временным разрешением (переходный анализ). Так что установите значение false.
* Thermo Mech Steady State: Steady state means, the solver will return one single result with the physics reaching equilibrium. We do NOT want to do that, we would like to get multiple, time-resolved results (transient analysis). So set it to false.
* Time end: мы хотели бы, чтобы наш анализ остановился через 60 секунд (то есть время моделирования, а не реальное время).
* Time end: We would like our analysis to stop after 60 seconds (i.e., simulation time, not real time).


[[File:Transient FEM Bimetal (6).JPG|700px]]
[[File:Transient FEM Bimetal (6).JPG|700px]]


После двойного щелчка мышью на объекте решателя, мы проверяем, что выбрано 'Thermo mechanical', и запускаем 'Write .inp file'. Обычно это занимает несколько секунд (или намного больше для более крупных моделей) и возвращает сообщение 'Write completed' в поле ниже. Теперь мы запускаем расчет с помощью 'Run CalculiX'. Через некоторое время должны появиться два последних сообщения 'CalculiX done without error!' и 'Loading result sets...'. Когда таймер внизу остановился, мы закрываем окно задачи. (На более крупных моделях и/или более медленных компьютерах FreeCAD может зависнуть, и мы не увидим работающего таймера. Но будьте терпеливы, в большинстве случаев CalculiX по-прежнему работает в фоновом режиме и в конечном итоге даст результаты.)
After double-clicking the solver object, we check that 'thermomechanical' is selected and run 'write .inp file'. This usually takes some seconds (or a lot more for bigger models) and returns a message 'write completed' in the box below. Now we start the calculation with 'run CalculiX'. After some time, the last messages 'CalculiX done without error!' and 'Loading result sets...' should appear. When the timer at the bottom has stopped, we close the task window. (With larger models and/or slower computers, FreeCAD may freeze and we won’t see the timer running. But be patient, in most of the cases, CalculiX is still running in the background and will eventually produce results.)
Теперь у нас должно быть несколько [[File:FEM_ResultShow.svg|20px]] объектов результатов расчёта по МКЭ в списке. Двойным щелчком мы можем открыть любую из них и визуализировать рассчитанные температуры, смещения и напряжения. Мы можем визуализировать изгиб, отметив «Показать» в разделе «Смещение». Поскольку абсолютные смещения невелики, мы используем «Множитель», чтобы преувеличить значения.
We should now have multiple [[File:FEM_ResultShow.svg|20px]] FEM result objects listed. By double-clicking, we can open each one of it and visualise the calculated temperatures, displacements, and stresses. We can visualise the bending by selecting 'Show' in the 'Displacement' section. Since the absolute displacements are small, we use the 'Factor' to exaggerate the values.


[[File:Transient FEM Bimetal (7).JPG|700px]]
[[File:Transient FEM Bimetal (7).JPG|700px]]


В FreeCAD мы можем использовать [[File:FEM_PostPipelineFromResult.svg|20px]] [[FEM_PostPipelineFromResult/ru|pipelines]] для последующей обработки результатов. Как вариант, мы можем экспортировать результаты в формат VTK и импортировать их в специальные постпроцессоры, такие как ParaView. Доступен [[Macro_export_transient_FEM_results/ru|макрос]] для экспорта нескольких результатов (как в этом анализе).
Within FreeCAD, we can use [[File:FEM_PostPipelineFromResult.svg|20px]] [[FEM PostPipelineFromResult|pipelines]] to do some post-processing of the results. Alternatively, we can export the results in the VTK format and import them into dedicated post-processors like ParaView. For the export of multiple results (as for this analysis), there is a [[Macro export transient FEM results|macro]] available.


<span id="Downloads"></span>
==Загрузки==
==Загрузки==


Line 85: Line 94:
* [https://drive.google.com/file/d/157aIdVpIyfpVW9WxL-ReGz0FIsQebH_q/view?usp=sharing Файл примера с результатом (10 MB)]
* [https://drive.google.com/file/d/157aIdVpIyfpVW9WxL-ReGz0FIsQebH_q/view?usp=sharing Файл примера с результатом (10 MB)]


<span id="Other_Example"></span>
==Другие примеры==
==Другие примеры==


* [https://forum.freecadweb.org/viewtopic.php?f=18&t=43040&start=10#p366664 Analytical bimetall example]. The analytical example presented in the forum is included in FreeCAD FEM examples. It can be started by Python with
* [https://forum.freecadweb.org/viewtopic.php?f=18&t=43040&start=10#p366664 Аналитический пример с биметаллом]. Аналитический пример, представленный на форуме, включен в примеры FreeCAD FEM. Он может быть запущен Python с помощью
from femexamples.thermomech_bimetall import setup
from femexamples.thermomech_bimetall import setup
setup()
setup()




{{Tutorials navi{{#translation:}}}}
{{FEM Tools navi{{#translation:}}}}
{{FEM Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 13:18, 14 April 2023

Other languages:

This documentation is not finished. Please help and contribute documentation.

GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

Руководство
Тема
Transient FEM analysis
Уровень
Время для завершения
Авторы
FreeCAD версия
Примеры файлов
Смотрите также
None

Background

Создание модели

  1. Начав с пустого проекта FreeCAD, мы построим нашу биметаллическую полосу в верстаке Part
  2. Нарисуйте кубическое твердое тело и переименуйте его в aluminium.
  3. Дайте ему размеры 100 x 10 x 2 мм (длина x ширина x высота).
  4. Создайте второе кубическое твердое 'стальное' тело с такими же размерами
  5. Сместите эту деталь на 2 мм по оси Z (через Placement → Position → z).
  6. Выберите оба твердых тела (с помощью клавиши Shift + щелчок мышью) и создайте из них Boolean Fragments
  7. Переименуйте эти логические фрагменты в биметаллическую полосу
  8. В Редакторе свойств мы меняем режим с ВидStandard на ВидCompSolid. (Это также должно работать с использованием команды Part Compound вместо Boolean Fragments, однако с более сложными пересекающимися формами позже могут возникнуть проблемы с анализом МКЭ. Так что лучше сначала привыкнуть к использованию Boolean Fragments.) Результат должен выглядеть следующим образом:

Подготовка и выполнение расчёта по МКЭ

Назначение материалов

В верстаке FEM мы создаем новый анализ и добавляем новый материал в анализ. В появившемся окне задач выбираем один из предустановленных алюминиевых сплавов. В 'geometry reference selector' мы назначаем нижней полосе нашей модели материал, устанавливая режим выбора 'solid', щелкая 'add' и выбирая грань или край нижней полосы. В представлении списка должно появиться 'BooleanFragments:Solid1'.

Мы закрываем окно задачи и повторяем шаги для создания второго материала 'Steel' (карта материала «CalculiX-Steel») и назначаем его верхней полосе ('BooleanFragments:Solid2').

Создание сетки

Поскольку конечно-элементному анализу, очевидно, нужны элементы для работы, мы должны разделить нашу модель на так называемую сетку. Верстак FEM предлагает два инструмента построения сетки: Netgen и GMSH. Здесь мы перейдем к Netgen: с выбранным объектом Boolean Fragments биметаллической полосы мы щелкаем по значку Netgen в верстаке FEM. В появившемся окне задач нам надо сделать различные выделения, начиная сверху:

  • Max. size - это максимальный размер (в миллиметрах) элемента. Чем меньше максимальный размер элемента, тем больше элементов мы получаем - обычно результат будет более точным, но с резким увеличением времени вычислений. Мы устанавливаем его на 10.
  • Second order означает, что в каждом элементе будут созданы дополнительные узлы. Это увеличивает время вычислений, но обычно это хороший выбор, если речь идет о сгибании, как в нашем анализе. Мы оставляем это отмеченным.
  • Fineness: Выберите, насколько точно модель должна быть разрезана на элементы. Для более сложных моделей с кривизной и пересечениями мы можем увеличить количество элементов в этих областях, чтобы получить лучшие результаты (конечно, за счет большего количества вычислительного времени). Опытные пользователи также могут установить для него значение User-defined и установить следующие параметры. Для нашей простой прямоугольной модели выбор тонкости не имеет большого значения, мы оставляем его на умеренном уровне.
  • Optimize: некоторая постобработка после построения сетки. Мы оставляем это отмеченным.

Щелчок по 'Apply' запускает создание сетки, и - время зависит от вашего компьютера - на нашей модели появляется каркас. Генератор сетки должен был создать около 4000 узлов.

Задание граничных условий

Анализ МКЭ сейчас ни к чему не приведет, потому что с нашей моделью еще ничего не происходит. Итак, давайте добавим немного температуры: используйте начальную температуру из верстака FEM и установите температуру на 300 K. Здесь нельзя выбрать никакие части модели, так как этот параметр применяется ко всей модели.

Затем мы используем температуру, действующую на грань. Мы выделяем две грани на одном конце полосы (Ctrl + левая клавиша мыши) и нажимаем 'Add' в окне задачи. В списке должны появиться две грани объекта Boolean Fragments и маленькие значки температуры на модели. Выставляем температуру 400 К и закрываем окно задач. В начале анализа выбранные грани получат мгновенное повышение температуры от 300 до 400 К. Тепло будет проводиться по металлическим полосам и вызывать изгиб полосы.

Прежде чем мы сможем запустить анализ, необходимо установить дополнительное граничное условие: анализ может выполняться только в том случае, если наша модель зафиксирована где-то в пространстве. С помощью мы выбираем те же две грани, что и для 400 K выше, и добавляем их в список. На модели появятся красные полосы, визуализирующие, что эти грани зафиксированы в пространстве и не могут перемещаться во время анализа.

Запуск анализа

Анализ должен уже содержать объект решателя 'CalculiXccx Tools'. Если нет, мы добавляем его, используя значок решателя на панели инструментов. (Имеются два идентичных значка, экспериментальный решатель также должен работать.) У объекта решателя есть список свойств ниже в левой части окна. Здесь мы выбираем следующие варианты (те, которые не упоминались, оставляем без изменений):

  • Analysis Type:: мы хотим провести термомеханический анализ. Другие варианты могут быть только статическими (без температурных эффектов), частотными (колебания) или только для проверки правильности модели.
  • Thermo Mech Steady State: Устойчивое состояние означает, что решающая программа вернет один единственный результат, когда физика достигнет равновесия. Мы НЕ хотим этого делать, мы хотели бы получить множественные результаты с временным разрешением (переходный анализ). Так что установите значение false.
  • Time end: мы хотели бы, чтобы наш анализ остановился через 60 секунд (то есть время моделирования, а не реальное время).

После двойного щелчка мышью на объекте решателя, мы проверяем, что выбрано 'Thermo mechanical', и запускаем 'Write .inp file'. Обычно это занимает несколько секунд (или намного больше для более крупных моделей) и возвращает сообщение 'Write completed' в поле ниже. Теперь мы запускаем расчет с помощью 'Run CalculiX'. Через некоторое время должны появиться два последних сообщения 'CalculiX done without error!' и 'Loading result sets...'. Когда таймер внизу остановился, мы закрываем окно задачи. (На более крупных моделях и/или более медленных компьютерах FreeCAD может зависнуть, и мы не увидим работающего таймера. Но будьте терпеливы, в большинстве случаев CalculiX по-прежнему работает в фоновом режиме и в конечном итоге даст результаты.)

Теперь у нас должно быть несколько объектов результатов расчёта по МКЭ в списке. Двойным щелчком мы можем открыть любую из них и визуализировать рассчитанные температуры, смещения и напряжения. Мы можем визуализировать изгиб, отметив «Показать» в разделе «Смещение». Поскольку абсолютные смещения невелики, мы используем «Множитель», чтобы преувеличить значения.

В FreeCAD мы можем использовать pipelines для последующей обработки результатов. Как вариант, мы можем экспортировать результаты в формат VTK и импортировать их в специальные постпроцессоры, такие как ParaView. Доступен макрос для экспорта нескольких результатов (как в этом анализе).

Загрузки

Другие примеры

from femexamples.thermomech_bimetall import setup
setup()