Solver Profiler регистрирует события, которые заставляют решатель сбрасывать свои параметры, потому что сброс решателя действительно несет вычислительные расходы. В дополнение к общему количеству сброса можно также видеть отказ типом события сброса.
Событие сброса решателя может иметь несколько причин. В результате количество событий Total solver reset в панели Statistics может быть меньше, чем сумма сброса решателя каждого типа.
Некоторые нулевые события пересечения имеют место в разрывах в сигнале. Рассмотрите модель в качестве примера прыгающего мяча от раздела Zero-Crossing Events.
Solver Profiler записывает сброс решателя 67
, вызванный нулевыми пересечениями от блока switch в модели. Сравните неродной размер и выделение Solver Reset с выводом x блока Second-Order Integrator, который является высотой шара от земли. Заметьте, что сброс решателя происходит, когда шар возвращается от земли.
Сброс решателя также происходит, когда ваша модель имеет дискретный сигнал, управляющий блоком с непрерывными состояниями, как замечено в этой модели в качестве примера.
Дискретный блок Sine Wave выводит синусоиду на 1 рад/с с дискретным шагом расчета ts = 2.
Отчет Solver Profiler показывает, что четыре сброса решателя происходит из-за дискретных сигналов, управляющих непрерывным блоком. Этот сброс происходит при каждом выполнении блока Sine Wave.
Этот тип сброса решателя происходит, когда блок вывод не выполняется во время испытательного или незначительного временного шага и обновляется только во время интегрирования или главного временного шага. В результате блок вывел изменения с перерывами от одного главного временного шага до другого. В результате сброс решателя. Смотрите Фиксированный в шаге расчета Незначительного шага.
Эта модель в качестве примера показывает простой объект и контроллер, который отслеживает синусоидальный ссылочный сигнал. Источник этого сигнала является блоком Sine Wave, шаг расчета которого задан, чтобы быть зафиксированным на незначительном шаге.
Заметьте от результатов профильного сеанса, что существует 80
сброс решателя ZOH Signal в симуляции.
Когда вы выбираете Continuous States для журналирования или включаете параметр SaveStates
, производной непрерывного блока, управляемого Фиксированным в сигнале Незначительного шага, является NaN
.
Это вызвано тем, что управление, Фиксированное в блоке Minor-Step, обновляет свое значение только на каждом главном временном шаге. Сигнал, до которого доводят, непрерывный блок поэтому прерывист, и состояние не дифференцируемо.
График показывает выходные параметры блоков Синусоиды и Интегратора в модели в качестве примера.
Сброс решателя вызвал из-за сигналов ZOH, серьезны по сравнению с событиями сброса решателя, вызванными дискретными сигналами, и может значительно замедлить симуляцию. Это вызвано тем, что события сброса сигнала ZOH имеют место на каждом существенном шаге решателя. Реконфигурируйте свою симуляцию, чтобы избежать этого сброса в случае необходимости.
Иногда, блок может быть сконфигурирован, чтобы сбросить решатель, когда определенные обстоятельства удовлетворены во время его выполнения. Рассмотрите модель sldemo_bounce
прыгающего мяча.
Заметьте от профильных результатов, что существует сброс решателя 130
, инициированный блоком. Событие сброса решателя может иметь несколько причин. В этом случае нулевые пересечения и изменения блока вызывают событие сброса решателя.
Одна установка, которая вызывает событие сброса решателя Block Change, является параметром Reinitialize dx/dt when x reaches saturation. Эта установка необходима, чтобы правильно моделировать динамику прыгающего мяча.
Когда вы запускаете симуляцию, решатель должен сбросить свои параметры впервые. Это событие показывается событием Initial Reset в отчете Solver Profiler. Это происходит однажды в начале симуляции.
Существуют некоторые события сброса, которые являются внутренними к механизму Simulink®. Эти события сброса необходимы для механизма, чтобы правильно сконфигурировать себя для точной симуляции.