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

Создайте модель и диаграмму Stateflow

В этой теме вы создаете модель Simulink® с графиком Stateflow®, чтобы отладить. Выполните эти шаги:

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

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

  3. В вашем графике добавьте событие Switch с осциллографом Входа от Simulink и Возрастающего триггера ребра.

  4. Добавьте данные Shift с осциллографом Входа от Simulink.

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

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

Отладьте диаграмму Stateflow

Чтобы отладить график в Создают Модель и диаграмму Stateflow, выполняют эти шаги:

  1. Щелкните правой кнопкой по графику и выберите Set Breakpoint on Chart Entry.

  2. Запустите симуляцию.

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

  3. Нажмите кнопку Step In.

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

  4. Продолжите нажимать кнопку Step In и смотреть график анимации.

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

Одно продвижение показывает, что график не предоставляет желаемое поведение. Переходы от 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. Нажмите кнопку Step In неоднократно, чтобы наблюдать новое поведение.