Производительность симуляции и оптимизация скорости расчёта в PRADIS

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

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

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


Что влияет на скорость расчёта

На производительность симуляции в PRADIS влияют:

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

Особенно большое влияние оказывают модели, в которых одновременно присутствуют быстрые и медленные процессы. Например, электрические переходные процессы могут продолжаться доли миллисекунды, а механическое движение или нагрев — секунды и минуты.


Неявные методы интегрирования

Инженерные модели, создаваемые в PRADIS, часто представляют собой жёсткие системы дифференциально-алгебраических уравнений. Для их расчёта применяются неявные численные методы.

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

  • механические элементы;
  • электрические цепи;
  • гидравлические и пневматические устройства;
  • тепловые процессы;
  • системы автоматического управления.

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

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


Автоматическое изменение шага

Во время расчёта PRADIS может изменять шаг интегрирования в зависимости от поведения модели.

Шаг уменьшается:

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

Шаг увеличивается, если состояние системы изменяется плавно и решение уверенно сходится.

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


Ограничения шага интегрирования

Для управления шагом используются параметры максимального и минимального шага.

Максимальный шаг

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

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

Слишком большое значение может привести к тому, что решатель недостаточно подробно воспроизведёт:

  • короткие импульсы;
  • быстрое переключение;
  • удар;
  • начало контакта;
  • резкое изменение управляющего сигнала;
  • высокочастотные колебания.

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

Минимальный шаг

Минимальный шаг определяет предел, до которого решатель может уменьшать интервал интегрирования.

Если для достижения сходимости требуется шаг меньше установленного минимального значения, расчёт может завершиться с ошибкой.

Частое достижение минимального шага обычно указывает на одну из следующих причин:

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

Простое уменьшение минимального шага не всегда устраняет причину проблемы. Оно может только увеличить продолжительность расчёта.


Влияние параметров точности

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

В PRADIS используются относительные и абсолютные критерии точности для различных групп переменных. При их настройке необходимо учитывать физический масштаб рассчитываемых величин.

Слишком строгие значения приводят к:

  • уменьшению шага;
  • увеличению числа итераций;
  • росту времени расчёта;
  • увеличению объёма служебных вычислений.

Слишком мягкие значения могут привести к:

  • искажению амплитуд;
  • смещению моментов переключения;
  • недостаточно точному воспроизведению переходных процессов;
  • накоплению численной погрешности.

Оптимальные допуски выбираются экспериментально путём сравнения результатов нескольких расчётов.

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


Число итераций

На каждом шаге неявного метода решатель выполняет итерационное уточнение решения.

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

Большое количество итераций может наблюдаться:

  • при контакте;
  • при сухом трении;
  • при открытии и закрытии клапанов;
  • при насыщении регуляторов;
  • при резких нелинейностях;
  • при плохо согласованных начальных условиях;
  • при чрезмерно больших шагах.

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

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


Частота вывода результатов

Скорость расчёта зависит не только от численного решения, но и от записи данных.

Если результаты сохраняются слишком часто, увеличиваются:

  • размер выходного файла;
  • количество операций записи;
  • время обработки результатов;
  • время открытия проекта в постпроцессоре;
  • потребление дискового пространства.

Параметр вывода результатов следует задавать в соответствии с характером исследуемого процесса.

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

Для коротких переходных процессов или ударов частота вывода должна быть выше.

Важно различать:

  • внутренний шаг интегрирования, выбираемый решателем;
  • интервал сохранения результатов, задаваемый пользователем.

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


Количество сохраняемых переменных

Не следует выводить все доступные переменные модели без необходимости.

Для анализа рекомендуется сохранять только те величины, которые действительно требуются:

  • перемещения;
  • скорости;
  • ускорения;
  • силы и моменты;
  • давления и расходы;
  • токи и напряжения;
  • температуры;
  • управляющие сигналы.

Большое количество ненужных каналов увеличивает объём результатов и усложняет последующий анализ.

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


Упрощение расчётной схемы

Одним из наиболее эффективных способов ускорения является упрощение самой модели.

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

Модель можно упростить следующими способами:

  • удалить неиспользуемые компоненты;
  • исключить дублирующие датчики;
  • заменить подробную подсистему эквивалентным элементом;
  • не моделировать малозначимые физические эффекты;
  • исключить ненужные степени свободы;
  • использовать одномерное представление вместо пространственного, если оно обеспечивает достаточную точность;
  • объединить повторяющиеся части схемы в суперкомпоненты.

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


Корректное задание параметров

Нереалистичные параметры часто становятся причиной медленного расчёта.

Особенно внимательно следует проверять:

  • чрезмерно большие коэффициенты жёсткости;
  • очень малые массы и моменты инерции;
  • почти нулевые объёмы гидравлических или пневматических полостей;
  • слишком малые ёмкости и индуктивности;
  • идеальные переключения без переходного участка;
  • резкие разрывные характеристики;
  • чрезмерно большие коэффициенты усиления регуляторов.

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

Параметры должны оставаться физически обоснованными и соответствовать точности исходных данных.


Начальные условия

Корректные начальные условия позволяют сократить начальный переходный процесс и уменьшить число итераций.

Если модель запускается из физически несогласованного состояния, решатель вынужден за очень короткое время устранить начальные противоречия.

Примеры несогласованности:

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

Перед длительным расчётом полезно выполнить короткий тестовый запуск и проверить начальный участок графиков.


События и переключения

Частые события могут значительно снизить скорость симуляции.

К ним относятся:

  • открытие и закрытие клапанов;
  • включение контактов;
  • удары;
  • переходы между режимами;
  • переключение передач;
  • изменение состояния логических элементов;
  • многократное срабатывание ограничителей.

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

Для его устранения можно применять:

  • гистерезис;
  • задержку переключения;
  • плавную переходную характеристику;
  • раздельные пороги включения и выключения;
  • корректную фильтрацию управляющего сигнала.

Устранение дребезга повышает устойчивость и часто значительно сокращает время расчёта.


Контактные задачи и трение

Контакты и сухое трение относятся к наиболее вычислительно сложным элементам механических моделей.

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

  • свободное движение;
  • касание;
  • удар;
  • прилипание;
  • скольжение;
  • отрыв.

Для повышения производительности рекомендуется:

  • использовать физически обоснованную контактную жёсткость;
  • не задавать чрезмерно малое проникновение любой ценой;
  • корректно определять коэффициенты демпфирования;
  • избегать одновременного возникновения большого количества контактов;
  • проверять отсутствие начального взаимного проникновения тел.

Многодоменные модели

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

Например:

  • Электроприводы + Роторная механика 1D — электрические процессы протекают быстрее механического разгона;
  • Пневматика + Линейная механика 1D — давление может изменяться быстрее положения штока;
  • Гидравлика + Механика 3D — процессы в жидкости протекают быстрее перемещения звеньев;
  • Теплопередача + Электрика — электрические процессы занимают миллисекунды, а нагрев продолжается минуты;
  • Трансмиссия + Динамика автомобиля — колебания в приводе происходят быстрее изменения скорости транспортного средства.

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


Последовательность оптимизации расчёта

Оптимизацию рекомендуется выполнять поэтапно.

1. Проверить физическую корректность модели

Необходимо исключить:

  • ошибочные соединения;
  • нереалистичные параметры;
  • несовместимые начальные условия;
  • дублирующие ограничения;
  • лишние степени свободы.

2. Выполнить короткий тестовый расчёт

Следует проверить:

  • минимальный и максимальный шаг;
  • число шагов;
  • количество итераций;
  • моменты резкого уменьшения шага;
  • участки возникновения ошибок сходимости.

3. Настроить частоту вывода

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

4. Настроить точность

Допуски изменяют постепенно, сравнивая результаты расчётов.

5. Проверить события и нелинейности

Особое внимание уделяют контактам, переключениям, клапанам, трению и ограничителям.

6. Упростить модель

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

7. Провести контрольный расчёт

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


Автоматизация серии расчётов

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

Вместо ручного изменения значений можно использовать автоматизированную подготовку и обработку серии расчётов. Пользовательские модели и вспомогательные средства на Python могут применяться для:

  • формирования наборов параметров;
  • повторного запуска одинаковых сценариев;
  • сбора результатов;
  • сравнения вариантов;
  • построения итоговых таблиц и графиков.

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


Основные рекомендации

Для повышения скорости расчёта в PRADIS рекомендуется:

  1. Использовать физически обоснованные параметры компонентов.
  2. Корректно задавать начальные условия.
  3. Не устанавливать слишком строгие допуски без необходимости.
  4. Не ограничивать максимальный шаг чрезмерно малым значением.
  5. Не сохранять результаты чаще, чем требуется для анализа.
  6. Выводить только необходимые переменные.
  7. Устранять дребезг переключений.
  8. Упрощать подсистемы, не влияющие на исследуемый процесс.
  9. Контролировать количество шагов и итераций.
  10. После каждого изменения проверять, сохранилась ли требуемая точность результатов.