Анализ результатов для анализа мертвой логики

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

Рабочий процесс

Эта модель sldvexCommonCausesOfDeadLogic в качестве примера объясняют немного общих шаблонов, который часто приводит к мертвой логике в модели. Эти шаблоны объяснены пятью подсистемами, содержавшимися в sldvexCommonCausesOfDeadLogic модель.

Разделите 1: запустите мертвую логику

Выполните эти шаги, чтобы запустить анализ мертвой логики:

Шаг 1: откройте sldvexCommonCausesOfDeadLogic.

open_system('sldvexCommonCausesOfDeadLogic');

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

Шаг 3: нажмите Error Detection Settings.

Шаг 4: В диалоговом окне Configuration Parameters, на Верификаторе Проекта> панель Поиска ошибок проектирования, включают опцию Мертвой логики, и ясный | Идентифицируют активную логику | опция.

Шаг 5: нажмите Detect Design Errors.

Разделите 2: анализируйте и рассмотрите результаты

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

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

Этот раздел объясняет общие шаблоны, который приводит к мертвой логике в sldvexCommonCausesOfDeadLogic модель. Эти шаблоны могут быть категоризированы в:

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

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

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

  4. Соединенные библиотекой блоки

  5. Восходящие блоки

Нажмите результаты анализа Highlight на модели в Окне Сводных данных Результатов. Подсистемы с мертвой логикой подсвечены в красном. Это:

  1. ConditionallyExecuteInputs

  2. ShortCircuiting

  3. Параметры

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

  5. CascadingDeadLogic

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

1. Подсистема ConditionallyExecuteInputs

Если ваша модель состоит из Переключателя или Многопортовых блоков switch и Conditional input branch execution параметр устанавливается на On, условное выполнение может часто вызывать неожиданную мертвую логику. Откройте подсистему ConditionallyExecuteInputs и нажмите AND блок подсвечен в красном. Инспектор Результата отображает сводные данные мертвой логики.

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

2. Подсистема ShortCircuiting

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

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

3. Подсистема параметров

Если ваша модель содержит параметры, Simulink Design Verifier обрабатывает значения как константы по умолчанию. Эта мертвая логика причины силы в модели. Откройте подсистему ShortCircuiting и нажмите Switch блок подсвечен в красном. Инспектор Результата отображает сводные данные мертвой логики.

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

4. Подсистема библиотеки

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

Можно рассмотреть выравнивание по ширине мертвой логики, которая является результатом тех библиотечных блоков.

5. Подсистема CascadingDeadLogic

Когда конкретный блок имеет мертвую логику, это часто приводит к каскадному эффекту, который заставляет нисходящие блоки иметь мертвую логику. Откройте подсистему CascadingDeadLogic и нажмите Less Than блок подсвечен в красном. Инспектор Результата отображает сводные данные мертвой логики.

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

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

Чтобы просмотреть отчет детального анализа, в окне Results Summary, нажимают HTML. Отчет отображает сводные данные всех результатов, которые являются мертвой логикой в модели.

Программное обеспечение хранит результаты детального анализа в DeadLogic field в Файлах данных Simulink Design Verifier. Можно использовать файл данных в последующем анализе результатов.

Похожие темы