Все ответы об инженерном анализе

Многоступенчатая циклическая симметрия

Аватар пользователя Sergey Khrulev
0 1396

Всем доброго времени суток.

Относительно недавно (в зависимости от того, когда вы это читаете) прошел вебинар по новым возможностям ANSYS Mechanical версии 2022R1 в моем исполнении, где кроме бесконечного количества слайдов я постарался кое-что и продемонстрировать. Видеозапись безусловно будет (возможно уже есть, смотря когда вы это читаете), однако, независимо от нее, я решил еще и сделать текстовый вариант для задачек из демонстраций (текстовый вариант бесконечного количества слайдов здесь уже есть чуть ниже в виде аж 4х отдельных статей). Итак, здесь давайте рассмотрим мою попытку в многоступенчатую циклическую симметрию.

Многоступенчатая циклическая симметрия (Multistage Cyclic Symmetry) – это свежевозникший набор инструментов (команд, если вы любитель классики), созданный для совмещения в рамках единой циклически симметричной модели нескольких геометрий с различным количеством секторов.

Например, допустим есть вот такая геометрия (одна ее часть имеет 10 секторов, а другая -16). Ваши действия?

Рисунок 1. Исходная геометрия (нашел в сети).

Рисунок 2. Та же геометрия, но уже с разделением на секторы.

Уже на этапе формирования секторов есть некоторая хитрость – обратите внимание, что границу между секторами я провел так, чтобы толщина геометрии совпадала, а ведь есть соблазн не создавать новых поверхностей и разрезать прямо по скачку в толщине. Это сделано с умыслом и дальше по тексту мы увидим зачем оно понадобилось.

Дальше нужно задать циклическую симметрию, и, поначалу, это делается как обычно – разве что секторов у нас два, как и всех соответствующих инструментов. Цилиндрическая система координат только в единственном экземпляре.

Рисунок 3. Цилиндрическая система координат, очевидно, должна быть развернута вот так.

Рисунок 4. Свойства системы координат. Кроме направления осей, еще важна ее цилиндричность и тот факт, что ее APDL номер = 12 (увы это понадобится).

Дальше традиционно достается ветка Symmetry и внутри нее добавляются два объекта Cyclic Region по одному на каждый сектор.

Рисунок 5. Так выглядит папка Symmetry, если что. Достается на уровне ветки Model в дереве.

Рисунок 6. А это Cyclic Region (в дереве соответственно дочерний объект ветки Symmetry).

Рисунок 7. Первый Cyclic Region – внутренний сектор.

Рисунок 8. Второй Cyclic Symmetry – внешний сектор.

А дальше уже интереснее – чтобы организовать многоступенчатость нужно добавить новый специальный объект интерфейса с названием «ступень» (stage). Не трудно догадаться, что в нем мы заявляем разрозненные секторы как будущие части одного целого. Выбрать нужно само тело (объем целиком) и соответствующий ему объект дерева Cyclic Region.

Рисунок 9. Новый объект Stage на панели.

Рисунок 10. Первая ступень. Обратите внимание на ее имя.

Рисунок 11. Вторая ступень.

Рисунок 12. Итоговое наполнение ветки Symmetry.

Однако это еще не все. Контакт между ступенями становится нерабочим и его нужно удалить/подавить. А для фактического соединения ступеней потребуется соответствующий новый объект с логичным названием “Interstage” (пробовать перевести одним словом, пожалуй, не рискну). В рамках этого инструмента нужно выбрать только взаимодействующие поверхности (визуально очень похоже на контактную пару, только использованы более экзотичные цвета). Важно отметить, что в подкорке сего действия лежат MPC уравнения связи.

Рисунок 13. Контакт не нужен.

Рисунок 14. Interstage на панели инструментов Connections.

Рисунок 15. Выбранные поверхности в графическом окне.

Рисунок 16. Настройки Interstage и его положение в дереве.

Дальше задачу можно поставить как ни в чем не бывало. Конкретно здесь в качестве граничных условий было выбрано жесткое закрепление на оси, а также известная скорость вращения.

Рисунок 17. Сетка без особых претензий на точность - скорости решения ради.


Рисунок 18. Граничное условие скорости вращения (200 рад/с).

Рисунок 19. Закрепление Fixed Support.

Рисунок 20. Стандартный результат Total Deformation.

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

Рисунок 21. Активация Beta опций.

Рисунок 22. Инструмент Result Mesh для визуализации результатов.

У этого инструмента есть два режима работы и первый из них, Cyclic Expansion, позволяет просматривать контурные графики на полноценной модели. Причем в рамках самого объекта визуализируется только разворачивание сетки, однако среди настроек контурных результатов появляется специальное поле для выбора развертки.

Рисунок 23. Режим Cyclic Expansion и его результат.

Рисунок 24. Для визуализации уже конкретного контурного графика потребуется в его настройках указать соответствующий Result Mesh.

Есть в Result Mesh и другой режим – для создания пути круглой формы, также под вывод результата. Особый интерес представляет результат перемещений на границе между ступенями. Идея в том, чтобы применить результат перемещений (например Total Deformation) к одному и тому же пути, но при этом к различным телам по очереди, и сравнить два графика между собой – так можно проверить насколько перемещения по границе совместны. Именно для того, чтобы можно было приложить контурный график к одному и тому же пути со стороны каждого сектора, геометрия и была разрезана таким образом.

Рисунок 25. Result Mesh в режиме Path Expansion.

Рисунок 26. Было выбрано одно ребро на границе между ступенями.

Рисунок 27. Результат по пути для первой ступени.

Рисунок 28. Результат по тому же пути для второй ступени.

Рисунок 29. Наглядное сравнение при помощи результата Chart.

Видно, что не все в порядке в датском королевстве, хотя и разницу в числах в этом случае нельзя назвать большой.

Почему жизнь такова? Все дело в узловых диаметрах и гармонических индексах, которые внезапно оказывают некоторое влияние и на простой статический расчет. Гармонический индекс – это по сути способ группировки возможных форм колебаний согласно количеству узловых диаметров.  Конкретные числа зависят от количества секторов, но общие зависимости можно найти в help.

Рисунок 30. Общие соотношения гармонических индексов, количества секторов и узловых диаметров.

Таким образом, нетрудно видеть, что у моделей с различным (еще и некратным) количеством секторов при одинаковых индексах количество узловых диаметров совпадать не будет. Ну и как уже нетрудно догадаться, по умолчанию Mechanical без задней мысли считает все ступени многоступенчатой модели на одном гармоническом индексе (нулевом), что и приводит к некоторому несовпадению перемещений, т.к. уравнения связи соответствуют несовпадающему количеству узловых диаметров.

Вылечить эту интересную особенность стало возможно с выходом последней версии (2022R1), правда пока только при помощи команд APDL. Данная методика получила название мультигармонического расчета (Multiharmonic) и для ее применения в Mechanical потребуется довольно мрачный скрипт. Впрочем, его можно найти в практически готовом виде в Help документации. К слову, пример, на основе которого, я и производил эти художества называется так:

«Chapter 14: Static Analysis of a 2-stage disk with pinholes – Beta Options»

Целиком все эти команды сюда особенно нормально не вставишь, так что если будут проблемы с их поиском в help, я прикреплю либо текстовый файл либо сам проект, если вам интересно, а по ходу повествования ограничимся картинками фрагментов. Идея же скрипта в том, чтобы сначала удалить те ступени, которые мы создали в интерфейсе Mechanical, а потом создать их заново, но уже с соответствующими настройками и с соответствующим количеством дублей – по одному дублю требуется на каждый желаемый гармонический индекс.

Итак, чтобы применить новую технику, в описанной выше задаче подавляется скорость вращения и добавляется командная вставка из Help (Скорость вращения нужно подавлять, т.к. она должна идти после вставки, а значит становится ее частью).

Рисунок 31. Дерево для мультигармонического решения.

Далее скрипт редактируется под текущие нужды. Первым делом необходимо задать параметры имен ступеней (т.к. встречаются они часто их вынесли в отдельные параметры в самом начале кода).

Рисунок 32. Имена ступеней для скрипта можно найти в окне свойств объектов Stage.

Дальнейший довольно объемный блок команд посвящен созданию компонентов, удалению и созданию ступеней. Если исходных ступеней две, а также всего два индекса для каждой из них мы планируем рассматривать, то менять в огромном массиве текста не придется ничего. У меня, разумеется, как раз такой случай. Впрочем логика блоков довольно прозрачная и при необходимости дополнительное редактирование не должно стать непреодолимой преградой.

Рисунок 33. Один из типовых блоков кода для воссоздания/дублирования ступеней

Однако фрагменты для редактирования еще есть. В частности, в финальном блоке объявления ступеней указывается количество секторов и интересующий нас гармонический индекс каждого дубля. С различиями в количестве секторов моей случайной геометрии и исходного примера все очевидно (10 и 16 против 11 и 16). Но что делать с индексами?

В исходном коде можно заметить, что для дублей обоих ступеней используются пятые индексы.

Рисунок 34. Исходный скрипт для геометрии с двумя ступенями на 11 и 16 секторов.

В том же примере можно найти и объяснение такому выбору. Пятый гармонический индекс идеально подходит, т.к. для каждой ступени там содержится именно такое количество узловых диаметров, которое соответствует противоположной ступени.

Рисунок 35. Выбор гармонического индекса для каждой ступени.

В моем случае цифры и таблицы выходят другие – идеально подойдут 4й и 6й индексы соответственно.

Рисунок 36. Подбор нужных индексов для моей модели.

Рисунок 37. Итоговый вид фрагмента скрипта.

Заканчивается скрипт восстановлением граничных условий, но только на ступени с нулевым индексом – дубли не нагружаются.

Рисунок 38. Окончание скрипта с приложением граничных условий.

На этом изменения закончены и можно сравнить результаты.

Рисунок 39. Контурный график перемещений.

Рисунок 40. Перемещение первой ступени на интерфейсе.

Рисунок 41. Перемещение второй ступени на интерфейсе.

Рисунок 42. Наглядное сравнение при помощи результата Chart.

Таким образом, одного дубля каждой ступени, в текущей ситуации, оказалось достаточно для относительно неплохого совпадения перемещений по границе.

Успехов в работе!

 

Добавить комментарий

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