Этот пример демонстрирует, как изолировать потенциальные причины мертвой логики с помощью sldvexCommonCausesOfDeadLogic
модель в качестве примера. Обнаружение мертвой логики находит недостижимые цели в модели, которые заставляют элемент модели оставаться неактивным.
Эта модель sldvexCommonCausesOfDeadLogic
в качестве примера объясняют немного общих шаблонов, который часто приводит к мертвой логике в модели. Эти шаблоны объяснены пятью подсистемами, содержавшимися в
sldvexCommonCausesOfDeadLogic
модель.
Выполните эти шаги, чтобы запустить анализ мертвой логики:
Шаг 1: откройте sldvexCommonCausesOfDeadLogic
.
open_system('sldvexCommonCausesOfDeadLogic');
Шаг 2: На вкладке Design Verifier, в разделе Mode, выбирают Design Error Detection.
Шаг 3: нажмите Error Detection Settings.
Шаг 4: В диалоговом окне Configuration Parameters, на Верификаторе Проекта> панель Поиска ошибок проектирования, включают опцию Мертвой логики, и ясный | Идентифицируют активную логику | опция.
Шаг 5: нажмите Detect Design Errors.
Программное обеспечение анализирует модель для мертвой логики и отображает результаты в окне Results Summary. Результат показывает, что восемнадцать из этих 42 целей являются мертвой логикой.
Этот раздел объясняет общие шаблоны, который приводит к мертвой логике в sldvexCommonCausesOfDeadLogic
модель. Эти шаблоны могут быть категоризированы в:
Условное Выполнение подсистемы
Замыкание накоротко блока логического оператора во время анализа
Значения параметров, обработанные как константы
Соединенные библиотекой блоки
Восходящие блоки
Нажмите результаты анализа Highlight на модели в Окне Сводных данных Результатов. Подсистемы с мертвой логикой подсвечены в красном. Это:
ConditionallyExecuteInputs
ShortCircuiting
Параметры
Библиотека
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 вызывает мертвую логику в соответствующих нисходящих блоках. Поэтому часто полезно рассмотреть восходящую мертвую логику прежде, чем рассмотреть любую нисходящую мертвую логику.
Чтобы просмотреть отчет детального анализа, в окне Results Summary, нажимают HTML. Отчет отображает сводные данные всех результатов, которые являются мертвой логикой в модели.
Программное обеспечение хранит результаты детального анализа в DeadLogic field
в Файлах данных Simulink Design Verifier. Можно использовать файл данных в последующем анализе результатов.