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

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

В этой теме вы создаете 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и затем шаблон повторяется.

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

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

Чтобы отлажить график в Create the Model и Диаграмма 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 принимает приоритет. Выход отображение покрытия кода также подтверждает это наблюдение.

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

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

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

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

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

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

  3. Снова начните симуляцию.

  4. Неоднократно нажимайте кнопку Step In, чтобы наблюдать за новым поведением.