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

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

  • Образцовые ошибки проектирования.

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

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

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

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

  1. Откройте модель путем ввода

    sldvdemo_fuelsys_logic_simple

    Гарантируйте, что текущая папка перезаписываема.

  2. Сконфигурируйте обнаружение мертвой логики. Откройте образцовые параметры конфигурации и выберите опции Design Verifier.

  3. Выберите опции Design Error Detection.

  4. Выберите Dead logic. Очистите Identify active logic. Нажмите OK.

  5. В меню Simulink выберите Analysis> Design Verifier> Detect Design Errors> Model.

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

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

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

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

  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. Повторно анализируйте модель. В меню Simulink выберите Analysis> Design Verifier> Detect Design Errors> Model.

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

Похожие темы