exponenta event banner

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

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

  • Ошибки конструкции модели.

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

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

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

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

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

    sldvdemo_fuelsys_logic_simple

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

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

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

  3. Выберите Параметры обнаружения ошибок.

  4. В диалоговом окне Параметр конфигурации (Configuration Parameter) выберите Мертвая логика (Dead logic) (частичная). Очистить исчерпывающий анализ. Нажмите кнопку ОК.

  5. Щелкните Обнаружить ошибки конструкции (Detect Design Errors).

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

Просмотр результатов и отслеживание в модели

  1. Создание отчета по анализу. В окне инспектора результатов щелкните HTML.

  2. Перейдите к разделу «Мертвая логика». В таблице перечислены два экземпляра неработающей логики.

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

  4. Щелкните ссылку Элемент модели (Model Item). Simulink выделяет переход в диаграмме.

Исследовать причину неработающей логики

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

    speed==0 & press < zero_thresh
  2. Вернитесь к отчету. Выполните прокрутку до раздела «Ограничения».

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

  4. Выберите рабочее пространство модели в обозревателе моделей. В таблице содержимого выберите zero_thresh. Значение zero_thresh составляет 250.

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

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

  1. Изменение значения zero_thresh до 0,250.

  2. Повторно проанализируйте модель. На вкладке «Проверка проекта» выберите «Обнаружение ошибок проекта».

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

Связанные темы