Обнаружьте мертвую логику, вызванную неправильным значением

Обнаружение мертвой логики помогает вам идентифицировать:

  • Ошибки проектирования модели.

  • Посторонние элементы модели.

  • Элементы модели, которые должны быть выполнены, но не являются.

В этом примере вы анализируете топливную модель контроллера скорости, чтобы определить, содержит ли модель мертвую логику. Обнаружение мертвой логики находит неправильное значение переменных, которое заставляет условие перехода в графике Stateflow® оставаться неактивным.

Анализируйте модель топливной системы

  1. Откройте модель.

    sldvdemo_fuelsys_logic_simple

    Убедитесь, что текущая папка перезаписываема.

  2. Сконфигурируйте обнаружение мертвой логики.

    На вкладке Design Verifier, в разделе Mode, выбирают Design Error Detection.

  3. Выберите Error Detection Settings.

  4. В диалоговом окне Configuration Parameter выберите Dead logic (partial). Очистите Run exhaustive analysis. Нажмите OK.

  5. Нажмите Detect Design Errors.

  6. Диалоговое окно результатов показывает, что существуют 2/109 цели, которые являются мертвой логикой.

Рассмотрите результаты и трассировку к модели

  1. Создайте аналитический отчет. От инспектора результатов окно нажмите HTML.

  2. Прокрутите к разделу Dead Logic. Таблица приводит два экземпляра мертвой логики.

  3. В столбце Description одним из экземпляров мертвой логики является false условие press < zero_thresh. Результат мертвой логики показывает на это в симуляции, false условие не выполнялось. Эта логика является частью Sens_Failure_Counter.INC переход.

  4. Щелкните по ссылке Model Item. Simulink подсвечивает переход в графике.

Исследуйте причину мертвой логики

  1. Логический оператор, управляющий переходом,

    speed==0 & press < zero_thresh
  2. Возвратитесь к отчету. Прокрутите к разделу Constraints.

  3. Значение входа control logic/Input Data "press" ограничивается от 0 до 2. Щелкните по ссылке, чтобы открыть вход в Model Explorer.

  4. Выберите Model Workspace в Model Explorer. В таблице содержимого выберите zero_thresh. Значение zero_thresh 250.

    Учитывая ограниченное значение press, это всегда меньше zero_thresh и поэтому, false условие никогда не осуществляется.

Обновите входное ограничение и повторно анализируйте модель

  1. Измените значение zero_thresh к 0,250.

  2. Повторно анализируйте модель. На вкладке Design Verifier нажмите Detect Design Errors.

  3. В новых результатах цель является более не мертвой логикой.

Похожие темы