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

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

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

Когда вы запускаете Solver Profiler на этой модели, вы видите превышающие допуск события во вкладке Solver Exception.

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

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

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

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

Отказы итерации ньютона

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

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

Когда вы запускаете Solver Profiler на этой модели, вы видите отказы итерации Ньютона во вкладке Solver Exception.

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

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

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

Состояние Бога и исключения производной Бога

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

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

Когда вы запускаете Solver Profiler для этой модели, вы видите, что InfiniteState5 и блоки InfiniteState7 имеют 188 и 152 бесконечные исключения состояния во вкладке Solver Exceptions.

Дифференциальные алгебраические отказы уравнения

Модели Most Simscape используют дифференциальные алгебраические уравнения (ДАУ), в отличие от моделей Simulink®, которые используют обыкновенные дифференциальные уравнения.

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

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

Когда вы симулируете эту модель, Simulink выводит несколько предупреждений.

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

Когда вы запускаете Solver Profiler на этой модели, вы видите отказы ДАУ во вкладке Solver Exception.

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

В качестве альтернативы этого исключения можно избежать путем удаления алгебраического ограничения. В этом примере непосредственно соединяются Check Valve и 4-Way Directional Valve. Когда их отношение потока давления изменяется быстро, решатель не может получить изменения. Вставка Hydraulic Chamber между теми двумя компонентами делает их совместимыми. Чтобы узнать больше о сухих узлах, см. документацию Simscape.