Сброс решателя

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.

Сигнал ZOH

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

Эта модель в качестве примера показывает простой объект и контроллер, который отслеживает синусоидальный ссылочный сигнал. Источник этого сигнала является блоком 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®. Эти события сброса необходимы для механизма, чтобы правильно сконфигурировать себя для точной симуляции.