Решение задачи пошагового образования выработки в породе из Fidesys Help

Рассматривается пример пошагового образования выработки. Имеется общий объем породы, из которого в несколько шагов удаляются объемы, моделируя процесс образования выработки. На все объемы действует сила тяжести. Также в задаче демонстрируются возможности языка программирования APREPRO для работы в CAE Fidesys.

Язык программирования APREPRO - aлгебраический препроцессор для задания параметров анализа методом конечных элементов, а именно: присваивание переменной и дальнейшая работа с ней в скрипте, в данном случае, использование цикла loop (аналог for). Благодаря использованию данного языка значительно облегчились процессы моделирования и задание активных шагов блокам.

В данном случае рассмотрим 4 объема для выработки, которые будут последовательно удаляться за  5 шагов расчета.

Построение модели

1.Введите в командную строку команду APREPRO:

#{num = 4}

Таким образом, задается переменная, обозначающая количество объемов, на которые разделится выработка.

2.Создайте параллелепипед.

На панели команд выберите модуль построения объёмной геометрии (Режим — Геометрия, Объект — Объём, Действие — Создать).

Из списка геометрических примитивов выберите Параллелепипед.

Задайте следующие параметры :

  • X (ширина): {num+1};

  • Y (высота): 10;

  • Z (глубина): 10.

Нажмите Применить.

3.Создайте цилиндр.

На панели команд выберите модуль построения объёмной геометрии (Режим — Геометрия, Объект — Объём, Действие — Создать).

Из списка геометрических примитивов выберите Цилиндр.

Задайте следующие параметры :

  • Высота: {num};

  • Круговой;

  • Радиус: 1.

Нажмите Применить.

4.Поверните цилиндр на 90 градусов вокруг оси Y.

На панели команд выберите модуль построения объёмной геометрии (Режим — Геометрия, Объект — Объём, Действие — Преобразовать).

Из списка возможных видов преобразований выберите Повернуть.

Задайте следующие параметры :

  • ID объёмов: 2;

  • Угол: 90;

  • Повернуть вокруг: Ось Y.

Нажмите Применить.

5.Переместите цилиндр.

На панели команд выберите модуль построения объёмной геометрии (Режим — Геометрия, Объект — Объём, Действие — Преобразовать).

Из списка возможных видов преобразований выберите Переместить.

Задайте следующие параметры:

  • ID объёмов: 2;

  • Выбрать метод: Расстояние;

  • Расстояник по X: 0.5.

Нажмите Применить.

6.Вычтите цилиндр из параллелепипеда.

На панели команд выберите модуль построения объёмной геометрии (Режим — Геометрия, Объект — Объём, Действие — Логические операции).

Из списка операций выберите Вычесть.

Задайте следующие параметры :

  • ID объема(ов): 1 (объёмы, из которых будут вычтены другие объёмы);

  • Вычесть тела (ID): 2 (объёмыкоторые будут вычтены).

Нажмите Применить.

7. Для упорядочивания нумерации объемов введите в командную строку команду compress all

8.При помощи цикла создайте 4 циллиндра. Высота каждого цилиндра 1, радиус 1. Поверните их на 90 градусов. Переместите каждый цилиндр на расстояние {i-num/2}. Введите в команжную строку:

#{i = 1}
#{Loop(num)}  цикл
create Cylinder height 1 radius 1 
rotate Volume {i+1} angle 90  about Y
move vol {i+1} x {i-num/2}
#{i++}
#{EndLoop}

В Дереве слева можно убедиться, что создалось 5 объема - один с общей породой и 4 с частями выработки.

9.Срастите все полученные объемы. Введите в командную строку команды:

imprint all
 merge all

Построение сетки

Введите в командную строку следующие команды:

mesh vol all

В результате на модели построится конечно-элементная сетка:

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

На панели команд выберите модуль задания свойств материала (Режим — Материал, Объект – Управление материалами).

В появившемся окне  Управление материалами выберите:

  • Упругость - Материал Гука - Модуль Юнга E = 2e+8;

  • Упругость - Материал Гука - Коэффициент Пуассона ν = 0.3;

  • Общие - Плотность ρ = 1900;

  • Когезия = 29000;

  • Пластичность -  Второй критерий Друкера-Прагера - Угол внутреннего трения = 20;

  • Пластичность -  Второй критерий Друкера-Прагера - Угол внутреннего трения = 10.

Нажмите Применить.

Задание свойств блока

1.При помощи цикла создайте 5 блоков. Введите в командную строку следующие команды:

block 1 vol 1
#{i = 1}
#{Loop(num)}
block {i+1} vol {num+2-i}
#{i++}
#{EndLoop}

Таким образом, создались 5 блоков для каждого объема.

2.Задайте параметры блока.

На панели команд выберите модуль задания свойств материала (Режим — Блоки, Объект — Блок, Действие — Свойства/параметры блока).

Задайте следующие параметры:

  • ID блока(ов): all;

  • Материал: Material 1;

  • Система координат: Глобальная декартова;

  • Категория: Объемное тело;

  • Порядок: 2.

Нажмите Применить.

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

1.Закрепите поверхность 2 по Z.

На панели команд выберите Режим — Граничные условия, Объект — Перемещение, Действие — Создать.

Задайте следующие параметры:

  • Автоматическое присвоение ID;

  • Список объектов: Поверхность;

  • ID объектов: 2;

  • Степени свободы: По Z;

  • Величина: 0.

Нажмите Применить.

2.Закрепите поверхности 3 и 5 по Y.

Задайте следующие параметры:

  • Автоматическое присвоение ID;

  • Список объектов: Поверхность;

  • ID объектов: 3 5;

  • Степени свободы: По Y;

  • Величина: 0.

Нажмите Применить.

3.Закрепите поверхности 4 и 8 по X.

Задайте следующие параметры:

  • Автоматическое присвоение ID;

  • Список объектов: Поверхность;

  • ID объектов: 4 8;

  • Степени свободы: По X;

  • Величина: 0.

Нажмите Применить.

4.Задайте силу гравитации.

На панели команд выберите Режим — Граничные условия, Объект — Гравитация, Действие — Создать.

Задайте следующие параметры:

  • Автоматическое присвоение ID;

  • Список сущностей: Глобально;

  • Направления по Z: -9.81.

Нажмите Применить.

Все граничные условия можно посмотреть в Дереве слева.

Запуск расчета

1.Задайте тип задачи, которую требуется решить.

На панели команд выберите Режим — Настройки расчета, Настройки расчета — Статический, Статический — Общие.

Выберите:

  • Размерность: 3D;

  • Модель: Упругость;

  • Число шагов нагружения: {num+1}.

Нажмите на кнопку   напротив поля с заданием числа шагов нагружения. В появившемся окне Настройки шагов нагружения присвойте активные шаги блокам.

  • Блок 1 (основной объем породы) участвует на всех шагах расчета. Выделите в левой колонке Block 1 и во вкладке Блок справа впишите all. Нажмите Применить.

  • Блок 2 (верхний объем выработки) участвует только на первом шаге расчета. Далее, этот объем удаляется. Выделите в левой колонке Block 2 и во вкладке Блок справа впишите 1. Нажмите Применить.

  • Блок 3 (второй объем выработки) участвует на первом и на втором шагах расчета. Далее, этот объем удаляется. Выделите в левой колонке Block 3 и во вкладке Блок справа впишите 1 2 (через пробел). Нажмите Применить.

  • Блок 4 (третий объем выработки) участвует на первом, втором и третьем шагах расчета. Далее, этот объем удаляется. Выделите в левой колонке Block 4 и во вкладке Блок справа впишите 1 2 3 (через пробел). Нажмите Применить.

  • Блок 5 (четвертый объем выработки) участвует на первом, втором, третьем и четвертом шагах расчета. Далее, этот объем удаляется. Выделите в левой колонке Block 4 и во вкладке Блок справа впишите 1 2 3 4 (через пробел). Нажмите Применить.

Таким образом, в окне Настройки шагов нагружения поля должны быть заполнены следующим образом:

Закройте окно Настройки шагов нагружениия.

Эти же действия можно осуществить при помощи цикла. Чтобы не заполнять данные для шагов нагружения вручную, введите в командную строку:

#{i = 1}
#{Loop(num)}
block {i+1} step 1 to {i}
#{i++}
#{EndLoop} 

На Панели команд нажмите Применить, а затем Начать расчет.

2.В появившемся окне выберите директорию, в которой будет сохранён результат, и введите название файла.

3.В случае успешно проведённого расчёта в консоли отобразится сообщение: “Calculation finished successfully at "date time".

Анализ результатов

1.Откройте файл с результатами.

Это можно сделать тремя способами:

  • Нажмите Ctrl+E.

  • В главном меню выберите Расчёт → Результаты. Нажмите Открыть последний результат

  • На панели команд выберите Результаты (Режим — Результаты, Результаты — Открыть Результаты).

Появится окно Fidesys Viewer, в котором вы сможете ознакомиться с результатами расчёта.

На верхней панели установите для отображения  первый шаг расчета.

Отобразите на модели Напряжения (Мизес).

Далее, переключая шаги от 1 до 5, отобразите процесс удаления объемов выработки в процессе расчета.

  

Использование консольного интерфейсa

Построение геометрии, генерацию сетки, задание граничных условий и материалов можно выполнить с использованием консольного интерфейса. Ниже приведён код программы, позволяющий выполнить шаги описанного выше руководства, необходимо только самостоятельно указать полный путь и название сохраняемого файла.

reset
set node constraint on 
#{num = 4}
brick x {num+1} y 10 z 10
create Cylinder height {num} radius 1
rotate Volume 2 angle 90 about Y
move vol 2 x 0.5
subtract volume 2 from volume 1
compress all
#{i = 1}
#{Loop(num)}
create Cylinder height 1 radius 1 
rotate Volume {i+1} angle 90 about Y
move vol {i+1} x {i-num/2}
#{i++}
#{EndLoop} 
imprint all
merge all
mesh vol all
block 1 vol 1
#{i = 1}
#{Loop(num)}
block {i+1} vol {num+2-i}
#{i++}
#{EndLoop} 
create material 1
modify material 1 set property 'MODULUS' value 2e+8
modify material 1 set property 'POISSON' value 0.3
modify material 1 set property 'DENSITY' value 1900
modify material 1 set property 'COHESION' value 29000
modify material 1 set property 'INT_FRICTION_ANGLE' value 20
modify material 1 set property 'DILATANCY_ANGLE' value 10
block all element solid order 2
block all material 1
create displacement on surface 2dof 3 fix 0 
create displacement on surface 3 5dof 2 fix 0 
create displacement on surface 4 8 dof 1 fix 0 
create gravity global
modify gravity 1 dof 3 value -9.81
analysis type static elasticity dim3
static steps {num+1}
#{i = 1}
#{Loop(num)}
block {i+1} step 1 to {i}
#{i++}
#{EndLoop}