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