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

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

Блок SimulinkОграничения
Диаграмма StateflowИспользуйте графики Мура, чтобы предотвратить алгебраический цикл. В Property Inspector установите State Machine Type равным Moore. Графики Мура предотвращают алгебраические циклы, гарантируя, что выходы зависят только от текущего состояния.
MATLAB Function блок

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

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

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

  • Задайте выходные события вызова функции.

  • Задайте или используйте стойкие переменные.

Когда вы применяете эти ограничения, вы разрешаете Simulink® решатель, чтобы попытаться решить алгебраический цикл.

Таблица истинности

Не следует:

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

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

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

  • Задайте или используйте стойкие переменные.

  • Используйте машинно-родительские данные или события.

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

См. также

(Stateflow) | (Stateflow)

Похожие темы