exponenta event banner

События исключения решателя

События, превышающие допуск

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

При запуске профилировщика решателя в этой модели на вкладке Исключение решателя (Solver Exception) можно увидеть события превышения допуска.

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

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

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

Статистика превышения допусков может также помочь в выявлении ошибок моделирования. Если не ожидается, что выделенные состояния изменятся так же быстро, можно проверить модель на наличие ошибок. В этом примере ошибка моделирования может заключаться в том, что жесткость более жесткой пружины указана в N/m вместо N/mm. Эта ошибка делает пружину в 1000 раз жестче, чем ожидалось.

Ошибки итерации Ньютона

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

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

При запуске профилировщика решателя в этой модели на вкладке Исключение решателя (Solver Exception) можно увидеть ошибки итерации Ньютона.

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

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

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

Исключения бесконечного состояния и бесконечной производной

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

В этом примере показан набор из двух блоков Integrator Limited, у которых начальные условия несколько меньше realmax. По мере интеграции постоянного ввода 1e305, решатель быстро достигает исключения бесконечного состояния.

При запуске профилировщика решателя для этой модели можно увидеть, что блоки InfiniteState5 и InfiniteState7 имеют 188 и 152 бесконечные исключения состояний на вкладке Исключения решателя.

Ошибки дифференциального алгебраического уравнения

В большинстве моделей Simscape используются дифференциальные алгебраические уравнения (DAE), в отличие от моделей Simulink ®, в которых используются обычные дифференциальные уравнения.

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

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

При моделировании этой модели Simulink отображает несколько предупреждений.

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

При запуске профилировщика решателя в этой модели на вкладке Исключение решателя (Solver Exception) отображаются сбои дисковой полки.

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

Альтернативно, этого исключения можно избежать, сняв алгебраическое ограничение. В этом примере непосредственно связаны Обратный клапан и Распределительный клапан С 4 путями. Когда их соотношение давление-поток быстро изменяется, решатель не может зафиксировать изменения. Установка гидравлической камеры между этими двумя компонентами делает их совместимыми. Дополнительные сведения о сухих узлах см. в документации Simscape.