Рассматривается пример пошагового образования выработки. Имеется общий объем породы, из которого в несколько шагов удаляются объемы, моделируя процесс образования выработки. На все объемы действует сила тяжести. Также в задаче демонстрируются возможности языка программирования 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}
