В этой теме вы создаете Simulink® модель с Stateflow® график для отладки. Выполните следующие действия:
Создайте следующую модель Simulink:
Добавьте следующие состояния и переходы к графику:
На графике добавьте событие Switch
с возможностями входов Simulink и триггером Rising edge.
Добавьте 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
и затем шаблон повторяется.
В модели существует вход события и вход данных. Блок Sine Wave генерирует повторяющееся входное событие, которое соответствует событию Stateflow Switch
. Блок Step генерирует повторяющийся шаблон 1 и 0, который соответствует объекту данных Stateflow Shift
. В идеале, Switch
событие происходит на частоте, которая позволяет по крайней мере один цикл через First
, Second
, и Third
.
Чтобы отлажить график в Create the Model и Диаграмма Stateflow, выполните следующие шаги:
Щелкните график правой кнопкой мыши и выберите Set Breakpoint on Chart Entry.
Запустите симуляцию.
Поскольку вы задали точку останова при вводе на графике, выполнение останавливается в этой точке.
Нажмите кнопку Step In,.
Кнопка Step In выполняет следующий шаг и останавливается.
Продолжите нажимать кнопку Step In и просматривать анимационный график.
После каждого шага смотрите анимацию графика, чтобы увидеть последовательность выполнения.
Один шаг показывает, что график не показывает желаемого поведения. Переходы от First
на Second
на Third
внутри состояния Power_on
не происходят, потому что переход от Power_on
на Power_off
принимает приоритет. Выход отображение покрытия кода также подтверждает это наблюдение.
В Debug the Диаграмма Stateflow вы проходите симуляцию графика и находите ошибку: Switch события
управляет симуляцией, но время симуляции проходит слишком быстро для объекта входных данных Shift
чтобы иметь эффект.
Исправьте эту ошибку следующим образом:
Остановите симуляцию, чтобы можно было редактировать график.
Добавьте условие [t > 20.0]
на переход от Power_on
на Power_off
.
Теперь переход от Power_on
на Power_off
не происходит, пока время симуляции не превысит 20.0.
Снова начните симуляцию.
Неоднократно нажимайте кнопку Step In, чтобы наблюдать за новым поведением.