Отладка общих ошибок моделирования

В фазе 7 этого рабочего процесса вы отлаживаете график.

Отладка несоответствий состояния

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

  1. Откройте модель Stage6Simulate — или тот вы создали в предыдущих упражнениях или предоставленной модели для этапа 6.

    Чтобы открыть предоставленную модель, введите следующую команду в подсказке MATLAB®:

    addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples'))
    Stage6Simulate

  2. Сохраните модель как Stage7Debug в вашей локальной папке работы.

  3. Дважды кликните Воздушный Контроллер, чтобы открыть график.

  4. Удалите переход по умолчанию к FAN2.Off путем выбора его и нажатия клавиши Delete.

    Удаление перехода по умолчанию вызовет ошибку несоответствия состояния. (Вспомните из Проверки, Что Ваш График Соответствует Лучшым практикам, что должен быть переход по умолчанию на каждом уровне иерархии Stateflow®, которая имеет исключительный [OR] разложение.)

    Ваш график должен выглядеть так:

  5. Сохраните график и запустите симуляцию.

    Ошибка появляется в Диагностическом Средстве просмотра. Ошибка указывает что FAN2 состояния не имеет никаких путей по умолчанию к подсостоянию.

    Примечание

    Номер состояния в вашем диалоговом отображении может отличаться от того, изображенного выше.

  6. Найдите незаконное состояние в Воздушном Контроллере график путем щелчка по ссылке к имени состояния.

    FAN2 кажется подсвеченным в графике:

  7. Добавьте назад переход по умолчанию к FAN2.Off.

    Переход по умолчанию обеспечивает безусловный путь по умолчанию к одному из подсостояний FAN2.

  8. Симулируйте модель снова.

    На этот раз симуляция продолжает без любых ошибок.

  9. Сохраните Stage7Debug, и оставьте график открытым для следующего осуществления.

Нарушения области значений отладочных данных

В этом осуществлении вы будете вводить нарушение области значений данных в своем графике и диагностировать проблему. Чтобы включить проверку нарушения области значений данных, установите Simulation range checking в панели Diagnostics: Data Validity диалогового окна Configuration Parameters к error.

Выполните эти шаги:

  1. В Воздушном Контроллере график измените during действие в SpeedValue состояние путем добавления 1 к вычисленному значению, можно следующим образом:

    during: airflow = in(FAN1.On) + in(FAN2.On) + 1;

    Вспомните, что в Определении Вводов и выводов, вы устанавливаете предельную область значений от 0 до 2 для airflow. Путем добавления 1 к расчету, значению airflow превысит верхний предел этой области значений, когда два вентилятора запустятся.

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

    Симуляция делает паузу из-за ошибки данных из области значений:

    Как ожидалось ошибка происходит в during действие SpeedValue потому что значение airflow вне области значений.

  3. Чтобы изолировать проблему, дважды кликните последнюю линию в сообщении об ошибке:

    Data '#439 (0:0:0)': 'airflow'

    Model Explorer открывается на вашем рабочем столе, позволяя вам просмотреть свойства airflow в правильной, панели только для чтения (только для чтения, потому что симуляция запускается).

    Примечание

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

  4. Проверяйте предельную область значений на airflow:

  5. Наведите свой курсор на airflow просмотреть значение.

    airflow = 3

    Это значение превышает верхний предел 2.

  6. Остановите симуляцию.

  7. Восстановите during действие к его предыдущему коду, и затем перезапускает симуляцию для модели.

    Модель должна симулировать без ошибок или предупреждений.

Похожие темы