В фазе 7 этого рабочего процесса вы отлаживаете график.
В этом осуществлении вы будете вводить ошибку несоответствия состояния в своем графике и диагностировать проблему. Выполните эти шаги:
Откройте модель Stage6Simulate
— или тот вы создали в предыдущих упражнениях или предоставленной модели для этапа 6.
Чтобы открыть предоставленную модель, введите следующую команду в подсказке MATLAB®:
addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples')) Stage6Simulate
Сохраните модель как Stage7Debug
в вашей локальной папке работы.
Дважды кликните Воздушный Контроллер, чтобы открыть график.
Удалите переход по умолчанию к FAN2.Off
путем выбора его и нажатия клавиши Delete.
Удаление перехода по умолчанию вызовет ошибку несоответствия состояния. (Вспомните из Проверки, Что Ваш График Соответствует Лучшым практикам, что должен быть переход по умолчанию на каждом уровне иерархии Stateflow®, которая имеет исключительный [OR] разложение.)
Ваш график должен выглядеть так:
Сохраните график и запустите симуляцию.
Ошибка появляется в Диагностическом Средстве просмотра. Ошибка указывает что FAN2
состояния не имеет никаких путей по умолчанию к подсостоянию.
Примечание
Номер состояния в вашем диалоговом отображении может отличаться от того, изображенного выше.
Найдите незаконное состояние в Воздушном Контроллере график путем щелчка по ссылке к имени состояния.
FAN2
кажется подсвеченным в графике:
Добавьте назад переход по умолчанию к FAN2.Off
.
Переход по умолчанию обеспечивает безусловный путь по умолчанию к одному из подсостояний FAN2
.
Симулируйте модель снова.
На этот раз симуляция продолжает без любых ошибок.
Сохраните Stage7Debug
, и оставьте график открытым для следующего осуществления.
В этом осуществлении вы будете вводить нарушение области значений данных в своем графике и диагностировать проблему. Чтобы включить проверку нарушения области значений данных, установите Simulation range checking в панели Diagnostics: Data Validity диалогового окна Configuration Parameters к error
.
Выполните эти шаги:
В Воздушном Контроллере график измените during
действие в SpeedValue
состояние путем добавления 1 к вычисленному значению, можно следующим образом:
during: airflow = in(FAN1.On) + in(FAN2.On) + 1;
Вспомните, что в Определении Вводов и выводов, вы устанавливаете предельную область значений от 0 до 2 для airflow
. Путем добавления 1 к расчету, значению airflow
превысит верхний предел этой области значений, когда два вентилятора запустятся.
Запустите симуляцию.
Симуляция делает паузу из-за ошибки данных из области значений:
Как ожидалось ошибка происходит в during
действие SpeedValue
потому что значение airflow
вне области значений.
Чтобы изолировать проблему, дважды кликните последнюю линию в сообщении об ошибке:
Data '#439 (0:0:0)': 'airflow'
Model Explorer открывается на вашем рабочем столе, позволяя вам просмотреть свойства airflow
в правильной, панели только для чтения (только для чтения, потому что симуляция запускается).
Примечание
Идентификационный номер данных, которые появляются в сообщении об ошибке, может варьироваться от показанного значения.
Проверяйте предельную область значений на airflow
:
Наведите свой курсор на airflow
просмотреть значение.
airflow
= 3
Это значение превышает верхний предел 2.
Остановите симуляцию.
Восстановите during
действие к его предыдущему коду, и затем перезапускает симуляцию для модели.
Модель должна симулировать без ошибок или предупреждений.