exponenta event banner

Анализ результатов анализа неработоспособной логики

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

Технологический процесс

sldvexCommonCausesOfDeadLogic модель демонстрирует некоторые из общих шаблонов, которые часто приводят к мертвой логике в модели. Шесть подсистем в модели представляют различный шаблон. К этим подсистемам относятся:

  1. Условное выполнение подсистемы

  2. Короткое замыкание логического блока оператора во время анализа

  3. Значения параметров, обрабатываемые как постоянные

  4. Связанные с библиотекой блоки

  5. Блоки восходящего направления

  6. Ограничения по диапазонам сигналов

Раздел 1: Выполнение анализа неработоспособной логики

Выполните следующие действия для выполнения анализа неработоспособной логики:

1: Открытие модели sldvexCommonCausesOfDeadLogic.

open_system('sldvexCommonCausesOfDeadLogic');

2: На панели «Приложения» откройте программу Design Verifier.

3: На вкладке Design Verifier щелкните Настройки обнаружения ошибок.

4: В диалоговом окне Configuration Parameters выберите Dead logic (частичная).

5: На вкладке Design Verifier нажмите кнопку Detect Design Errors.

Раздел 2: Анализ и анализ результатов

Программа анализирует модель на наличие неработающей логики и отображает результаты в окне Сводка результатов (Results Summary). Результаты показывают, что 19 из 44 целей являются неразумными.

Раздел 3: Выделение результатов анализа в блоках подсистем

Этот раздел объясняет общие шаблоны, которые приводят к мертвой логике в sldvexCommonCausesOfDeadLogic модель. В окне Сводка результатов (Results Summary) щелкните Подсветить результаты анализа в модели (Highlight analysis results on model). Подсистемы с неработающей логикой выделены красным цветом. К этим подсистемам относятся:

  1. ConditionallyExecuteInputs

  2. ShortCircuiting

  3. Параметры

  4. Библиотека

  5. CascadingDeadLogic

  6. ConditionGreaterThan0

Подсистемы в sldvexCommonCausesOfDeadLogic модель объяснить эти закономерности. Каждый подсистемный блок, выделенный красным цветом, имеет мертвый логический красный цвет. Рассмотрим каждую подсистему поочередно, чтобы проанализировать и выделить результаты.

1. Условное выполнение подсистемы

Если модель включает блоки Switch или Multiport Switch и параметр выполнения условного входного ответвления имеет значение On, условное выполнение часто может вызвать неожиданную мертвую логику. Откройте подсистему CondingExecureInputs и щелкните выделенный красным цветом блок AND. Окно Результаты (Results) суммирует неработающую логику.

В этой подсистеме параметр Conditional input branch execution имеет значение On. Блок логического оператора И условно выполняется, что вызывает неработоспособную логику для подсистемы.

2. Короткое замыкание логического блока оператора во время анализа

Simulink Design Verifier обрабатывает логические блоки так, как будто они имеют короткое замыкание при анализе неработающей логики. Откройте подсистему ShortCircuiting и щелкните на блоке AND, выделенном красным цветом. Окно Результаты (Results) суммирует неработающую логику.

В этой модели, если In3 false, программа игнорирует третий вход из-за короткого замыкания. Это предлагается в качестве потенциального объяснения неработающей логики в окне Результаты (Results).

3. Значения параметров, обрабатываемые как константы

Если модель содержит параметры, Simulink Design Verifier по умолчанию обрабатывает значения как константы, что может привести к неработоспособности логики модели. В этих случаях рассмотрите возможность настройки этих параметров во время анализа. Откройте подсистему ShortCircuiting и щелкните на блоке Switch, выделенном красным цветом. Окно Результаты (Results) суммирует неработающую логику.

Здесь все параметры равны нулю. Это приводит к неработоспособности блока Less Than.

4. Связанные с библиотекой блоки

Библиотечная подсистема ProtectedDivide имеет защиту для деления на ноль. Библиотечные блоки могут быть записаны с защитными условиями, которые являются избыточными в некоторых местах, где они используются. В некоторых случаях это может вызвать мертвую логику. Откройте блок «Библиотека» и щелкните подсистему ProtectedDivide, выделенную красным цветом. В этом случае входы в библиотечную подсистему ProtectedDivide никогда не могут иметь деление на ноль. Это приводит к тому, что охранная логика мертва. Блок «Равно» показывает мертвую логику. Окно Результаты (Results) суммирует неработающую логику.

Рассмотрим возможность обоснования неработоспособной логики, возникающей из этих библиотечных блоков.

5. Блоки восходящего направления

Когда конкретный блок имеет мертвую логику, это часто приводит к каскадному эффекту, который приводит к тому, что дочерние блоки также имеют мертвую логику. Откройте подсистему CascadingDeadLogic и щелкните блок «Меньше чем», выделенный красным цветом. Окно Результаты (Results) суммирует неработающую логику.

Мертвая логика в блоке Меньше Чем вызывает мертвую логику в соответствующих нисходящих блоках. Поэтому часто бывает полезно просмотреть логику нечувствительности восходящего потока, прежде чем рассматривать любую логику нечувствительности нисходящего потока.

6. Ограничения на диапазоны сигналов

Блоки ввода корневого уровня с минимальными и максимальными значениями в качестве ограничений и блоки тестовых условий в тестовой генерации могут вызывать неработоспособность логики. Например, рассмотрим блок ConditionGreaterThan0 Switch, где второй блок Inport имеет минимальный и максимальный диапазоны 1 и 100 соответственно. Это приводит к тому, что блок коммутатора в этой подсистеме имеет неработоспособную логику, поскольку ограниченный диапазон означает, что сигнал всегда будет больше 0.

Раздел 4: Просмотр отчета по анализу

В окне Сводка результатов (Results summary) щелкните HTML для просмотра подробного отчета об анализе. Отчет суммирует все неработающие логические результаты в модели.

Чтобы выполнить исчерпывающий анализ неработоспособной логики, в окне Параметры конфигурации (Configuration Parameters) на панели Обнаружение ошибок конструкции (Design Error Detection) выберите Выполнить исчерпывающий анализ (Run исчерпывающий анализ). Программное обеспечение хранит подробные результаты анализа в DeadLogic field в файлах данных Simulink Design Verifier. Для дальнейшего анализа результатов можно использовать файл данных.

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