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

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

График показывает выходные параметры Sine Wave и блоков Integrator в модели в качестве примера.

Совет

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

Блок-сигнал

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

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

Одна установка, которая вызывает событие сброса решателя Block Change, является параметром Reinitialize dx/dt when x reaches saturation. Эта установка необходима, чтобы правильно симулировать динамику прыгающего мяча.

Начальный сброс

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

Внутренний

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