Добрый день, Алексей и читатели форума!
Я хочу в Transient расчете Maxwell промоделировать электрическую машину, которая имеет самовозбуждение. То есть, говоря общими словами, выходное напряжение одной из обмоток на следующем шаге прикладывается к другой обмотке (возможно, не само напряжение, а какая-то его функция, например, abs).
Проштудировав help и свой опыт, я пришел к выводу, что есть несколько способов:
1. Использовать внешнюю цепь в Circuit Editor.
2. Использовать косимуляцию в Simplorer.
3. Использовать опцию Advanced -> User Control Program в свойствах выполняемого Setup'а, прикрутив к ней какую-нибудь простенькую самописную программку.
У всего этого есть недостаток: между каждыми двумя шагами решателя Maxwell вызывается другой решатель, который тоже обсчитывает один шаг и выдает его результаты. Это делает моделирование медленнее. Я специально сравнивал скорость решения в Maxwell для машин без самовозбуждения в двух ситуациях: а) когда не используются никакие внешние цепи (а нагрузка задана параметрами обмотки типа Voltage, иногда в них используются аналитические функции); и б) когда абсолютно та же самая нагрузка задана внешней цепью. Без внешних цепей всегда моделирование идет быстрее, особенно если шагов много.
Таким образом, я озадачился, как в Maxwell на каждом шаге "закидывать" число с выхода на вход без использования внешних решателей. Но когда я создал в проекте Maxwell переменную Output Variable, а затем попытался прописать ее в блок Excitation, используя то же имя, меня Maxwell не понял, и создал мне с этим именем обычный параметр, который отображается в окне Design Properties, задается перед запуском на моделирование и в процессе моделирования никак не меняется, т.е. динамически завязать его на выход не получается.
Так есть ли способ связать выходы модели со входами (т.е. Output Variables с Excitations), не прибегая к внешним решателям и обеспечивая тем самым максимальную скорость счета?
И ещё момент, известны ли другие способы завязать выход на вход, которых я не указал в пп.1-3? Спасибо.
Дмитрий, добрый день
Всё так, потребность ясна, но вариантов нет. В задание возбуждения можно вписать только внутренние переменные, что-то вроде Time, Position, Speed. Предположим есть решение первого шага, останавливаем корректно, меняем входное напряжение вручную и решение пропадает, это я к тому, что я не представляю эту реализацию через постпроцессор.
1. Использовать внешнюю цепь в Circuit Editor. (для ускорения могу посоветовать использовать Set minimum time step = шагу интегрирования в настроках Setup). В ANSYS EM 18 будет возможность использовать простые схемы в TDM методе. Скорость вычислений очень серьезная, но нужны HPC.
2. Использовать косимуляцию в Simplorer.
Алексей, спасибо за комментарий, получается, подтвердились мои опасения.
О том, что с косимуляцией все работает, я знаю - попробовал.
Мои старания избежать косимуляций и ускорить счет связаны с тем, что при выборе лицензионной конфигурации компания предпочла количество индивидуальных рабочих мест Maxwell производительности решения задачи, запущенной с одного рабочего места, т.е. нет распараллеливания процесса решения ни на несколько ядер, ни на несколько ПК. Так что я для всех задач пытаюсь найти максимально "бюджетное" с точки зрения ресурсов единичного ПК решение: понизить размерность задачи, использовать в Excitations выражения с аналитическими функциями вместо присоединенных схем, уменьшить число переключений/обменов данными между выполняющими косимуляцию двумя решателями (а в идеале уйти от косимуляции), да и даже обойтись расчетом Magnetostatic вместо Transient, когда возможно.
Безусловно, я ценю все выложенные на сайте cae-club материалы с приемами по ускорению работы.
Добавить комментарий