Типовые численные проблемы при моделировании в PRADIS

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

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

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


1. Нарушение балансовых соотношений

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

В зависимости от используемой библиотеки это может быть:

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

Например, для электрического узла должен выполняться первый закон Кирхгофа:

\sum_{i=1}^{n} I_i = 0

где:

  • I_i — ток в i-й ветви;
  • n — количество ветвей, подключённых к узлу.

Для механического узла аналогично должен выполняться баланс сил:

\sum_{i=1}^{n} F_i = 0

где:

  • F_i ​ — сила, действующая со стороны соответствующего компонента.

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

Возможные причины

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

Как проявляется проблема

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

Что необходимо проверить

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


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

Перед началом динамического расчёта необходимо определить начальное состояние всех элементов модели.

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

Например:

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

Как проявляется проблема

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

Рекомендации

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


3. Сингулярная или вырожденная система уравнений

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

Обычно это происходит, когда в модели:

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

Примеры

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

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

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

Как проявляется проблема

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

Рекомендации

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


4. Избыточные и противоречивые связи

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

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

Другие примеры:

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

Как проявляется проблема

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

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


5. Чрезмерная жёсткость модели

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

Например:

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

Характерное время механической системы можно оценить как

T \sim \sqrt{\frac{m}{k}}

где:

  • m — масса;
  • k — коэффициент жёсткости.

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

Как проявляется проблема

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

Рекомендации

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


6. Плохая обусловленность системы

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

Это часто происходит, если значения коэффициентов уравнений различаются на много порядков.

Например, в одной модели могут одновременно присутствовать:

  • сила порядка 10^{−6}\text{Н};
  • сила порядка 10^{8}\text{Н};
  • масса порядка 10^{−9}\text{кг};
  • масса порядка 10^{4}\text{кг}.

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

Как проявляется проблема

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

Рекомендации

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


7. Ошибки в единицах измерения

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

Типичные примеры:

  • жёсткость задана в \text{Н/мм}, хотя требуется \text{Н/м};
  • давление введено в барах вместо паскалей;
  • момент инерции задан в неправильных единицах;
  • температура в градусах Цельсия используется вместо абсолютной температуры;
  • частота вращения в оборотах в минуту передана как угловая скорость в радианах в секунду;
  • миллисекунды используются вместо секунд.

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

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


8. Нелинейности и плохая сходимость итераций

Многие компоненты PRADIS имеют нелинейные характеристики.

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

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

На каждом шаге решатель должен найти согласованное решение нелинейной системы уравнений.

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

Как проявляется проблема

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

Рекомендации

Следует избегать необоснованно резких нелинейных характеристик. Там, где это допустимо, полезно использовать плавный переход между режимами.


9. Разрывные характеристики

Разрывная характеристика мгновенно изменяет выходную величину при пересечении некоторого порога.

Например:

y = \begin{cases} 0, & x < x_{lim} \\ 1, & x \geq x_{lim} \end{cases}

где:

  • x_{\text{lim}} ​ — порог переключения;
  • y — состояние элемента.

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

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

Как проявляется проблема

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

Рекомендации

Для устранения дребезга применяют:

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

10. Проблемы контактных моделей

Контактные задачи часто являются одними из наиболее сложных для численного расчёта.

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

Упрощённая контактная зависимость может иметь вид

F_c = \begin{cases} 0, & \delta \leq 0 \\ k_c \delta, & \delta > 0 \end{cases}

где:

  • F_c ​ — контактная сила;
  • \delta — величина проникновения;
  • k_c ​ — контактная жёсткость.

Большое значение k_c ​ уменьшает проникновение, но одновременно повышает жёсткость математической системы.

Типичные причины проблем

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

Рекомендации

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


11. Проблемы сухого трения

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

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

Как проявляется проблема

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

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


12. Слишком строгие критерии точности

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

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

Как проявляется проблема

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

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


13. Слишком мягкие критерии точности

Чрезмерно мягкие допуски также могут привести к проблемам.

В этом случае решатель использует крупные шаги и может недостаточно точно воспроизводить:

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

Результат может выглядеть гладким и устойчивым, но быть физически неточным.


14. Неправильный выбор максимального шага

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

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

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

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


15. Постоянное достижение минимального шага

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

Возможные причины:

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

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


16. Накопление численной погрешности

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

Это особенно заметно в консервативных системах с малым демпфированием.

Например, в идеальной колебательной системе полная механическая энергия должна оставаться постоянной:

E = \frac{m v^2}{2}+\frac{kx^2}{2}

где:

  • m — масса;
  • v — скорость;
  • k — жёсткость;
  • x — перемещение.

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

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


17. Нефизические колебания

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

Возможные причины:

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

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


18. Ошибки в пользовательских компонентах

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

Наиболее типичные ошибки:

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

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


19. Физически некорректный, но численно успешный расчёт

Успешное завершение симуляции не гарантирует правильность результата.

Решатель может корректно решить систему уравнений, которая была неправильно составлена или получила неверные параметры.

Например:

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

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


Исследование сходимости

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

Для этого выполняют несколько расчётов с постепенно изменяющимися настройками:

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

После этого сравнивают:

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

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

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


Рекомендуемая последовательность поиска проблемы

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

1. Проверить сообщения решателя

Необходимо определить:

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

2. Проверить начальные условия

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

3. Проверить параметры компонентов

Особенно тщательно проверяются:

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

4. Проверить структуру схемы

Необходимо найти:

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

5. Найти момент возникновения проблемы

Если расчёт устойчив до определённого времени, следует определить, какое событие происходит непосредственно перед ошибкой:

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

6. Временно упростить модель

Сложную модель полезно разделить на подсистемы и проверить каждую отдельно.

Можно временно:

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

7. Изменить настройки расчёта

После проверки физической модели можно временно:

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

Изменение настроек должно использоваться для диагностики, а не для маскировки ошибок модели.