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

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

  • Моделируйте ошибки проектирования.

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

  • Моделируйте элементы, которые должны выполняться, но не являются.

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

Анализ топливной Системной модели

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

    sldvdemo_fuelsys_logic_simple

    Убедитесь, что текущая папка доступна для записи.

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

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

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

  4. В диалоговом окне Параметра конфигурации выберите 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. В новых результатах цель уже не является мертвой логикой.

Похожие темы