exponenta event banner

Предотвращение ошибок алгебраического цикла в блоках функции MATLAB и потока состояний

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

Блок симулятораОграничения
Диаграмма статофлоуИспользуйте диаграммы Мура для предотвращения алгебраического цикла. В инспекторе свойств задайте для параметра «Тип конечного станка» значение Moore. Диаграммы Мура предотвращают алгебраические циклы, гарантируя, что выходные данные зависят только от текущего состояния.
Функциональный блок MATLAB

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

Если в блоке используется прямой проход, не следует:

  • Вызов импортированных функций.

  • Определение выходных событий вызова функции.

  • Определение или использование постоянных переменных.

При применении этих ограничений решатель Simulink ® может попытаться решить алгебраический цикл.

Таблица правды

Не следует:

  • Вызов импортированных функций.

  • Определите локальные или выходные события вызова функции.

  • Определите локальные данные или данные памяти хранилища данных.

  • Определение или использование постоянных переменных.

  • Использовать данные или события, зависимые от компьютера.

При применении этих ограничений решатель Simulink может попытаться решить алгебраический цикл.

См. также

(Stateflow) | (Stateflow)

Связанные темы