exponenta event banner

Отладка ошибок времени выполнения в диаграмме

Создание модели и диаграммы потока состояний

В этом разделе описывается создание модели Simulink ® с диаграммой Stateflow ® для отладки. Выполните следующие действия.

  1. Создайте следующую модель Simulink:

  2. Добавьте в диаграмму следующие состояния и переходы:

  3. Добавьте событие в диаграмму Switch с областью ввода от Simulink и триггером Rising edge.

  4. Добавление данных Shift с объемом входных данных от Simulink.

Диаграмма имеет два состояния на самом высоком уровне иерархии, Power_off и Power_on. По умолчанию Power_off активен. Событие Switch переключает систему между Power_off и Power_on штатов. Power_on имеет три подстанции: First, Second, и Third. По умолчанию, когда Power_on становится активным, First также становится активным. Когда Shift равно 1, система переходит от First кому Second, Second кому Third, Third кому First, для каждого события Switchи затем шаблон повторяется.

В модели имеется вход события и вход данных. Блок синусоидальной волны генерирует повторяющееся входное событие, соответствующее событию Stateflow Switch. Блок Step генерирует повторяющийся шаблон 1 и 0, соответствующий объекту данных Stateflow Shift. В идеале, Switch событие происходит с частотой, которая позволяет, по крайней мере, один цикл через First, Second, и Third.

Отладка диаграммы Stateflow

Чтобы отладить диаграмму в окне Создать модель (Create the Model) и Диаграмма потока состояний (Stateflow Chart), выполните следующие действия.

  1. Щелкните правой кнопкой мыши диаграмму и выберите Задать точку останова в записи диаграммы.

  2. Запустите моделирование.

    Поскольку в записи диаграммы указана точка останова, выполнение останавливается на этой точке.

  3. Нажмите кнопку «Шаг».

    Кнопка Step In выполняет следующий шаг и останавливается.

  4. Нажмите кнопку «Шаг» и просмотрите анимационную диаграмму.

    После каждого шага просмотрите анимацию диаграммы, чтобы увидеть последовательность выполнения.

Одношаговое отображение показывает, что диаграмма не демонстрирует требуемого поведения. Переходы из First кому Second кому Third внутри государства Power_on не происходит, потому что переход от Power_on кому Power_off имеет приоритет. Вывод информации о покрытии кода также подтверждает это наблюдение.

Исправить ошибку времени выполнения

В отладке диаграммы Stateflow можно выполнить моделирование диаграммы и найти ошибку: событие Switch управляет моделированием, но время моделирования проходит слишком быстро для объекта входных данных Shift чтобы иметь эффект.

Исправьте эту ошибку следующим образом:

  1. Остановите моделирование, чтобы можно было редактировать диаграмму.

  2. Добавить условие [t > 20.0] в переход от Power_on кому Power_off.

    Теперь переход от Power_on кому Power_off не происходит до тех пор, пока время моделирования не превысит 20,0.

  3. Начните моделирование еще раз.

  4. Для просмотра нового поведения многократно нажимайте кнопку «Шаг».