Извлеките подсистемы для анализа

Обзор экстракции подсистемы

Если у вас есть большая модель, которая замедляет ваш анализ или имеет недостижимые цели, можно хотеть анализировать атомарные подсистемы или Stateflow® атомарные субдиаграммы с помощью Simulink® Design Verifier™. Этот метод позволяет вам реализовывать подход снизу вверх к анализу большой модели, как описано в Подходе снизу вверх к Анализу модели.

Когда вы анализируете подсистему или атомарную субдиаграмму, программное обеспечение:

  • Извлекает подсистему или субдиаграмму в новую модель.

  • При необходимости добавляют блоки к недавно созданной модели, которые реплицируют контекст выполнения подсистемы или субдиаграммы в ее родительской модели.

  • Анализирует извлеченную модель и приводит к результатам.

Примечание

Программное обеспечение Simulink Design Verifier может только анализировать атомарные подсистемы и атомарные субдиаграммы.

Для получения дополнительной информации об анализе подсистем, смотрите, Генерируют Тесты для Подсистемы.

Для получения дополнительной информации об анализе атомарных субдиаграмм, смотрите, Анализируют Stateflow Атомарная Субдиаграмма.

Функция sldvextract

sldvextract функция позволяет вам извлекать подсистемы и атомарные субдиаграммы для верификации компонента. Путем извлечения подсистемы или атомарной субдиаграммы, можно проверить компонент в изоляции от остальной части системы, позволив вам протестировать алгоритм компонента. Для получения дополнительной информации смотрите то, Что Верификация Компонента? и Функции для Верификации Компонента.

Структура извлеченной модели

Когда вы анализируете подсистему или атомарную субдиаграмму, Simulink Design Verifier создает новую модель, которая содержит подсистему или атомарную субдиаграмму и любые порты ввода и вывода, которые соответствуют портам, соединенным с исходной подсистемой.

Программное обеспечение присваивает следующие свойства портам в новой модели, как определено путем компиляции исходной модели:

  • Типы данных

  • Частоты дискретизации

  • Размерности сигнала

  • Минимальные и максимальные значения диапазонов сигнала

Названия программного обеспечения новая модель subsystem_name, где subsystem_name имя подсистемы.

Следующие разделы обеспечивают примеры того, как Simulink Design Verifier извлекает и анализирует подсистемы.

Анализируйте подсистемы который чтение от устройства хранения данных глобальных данных

data store является репозиторием, к которому можно записать данные, и от которого можно считать данные, не имея необходимость соединять сигнал ввода или вывода непосредственно с хранилищем данных.

Вы создаете хранилище данных с помощью блока Data Store Memory или Simulink.Signal объект. Блок Data Store Memory или Simulink.Signal объект представляет хранилище данных и задает его свойства. Каждое хранилище данных должно иметь уникальное имя.

Когда вы анализируете подсистему, которая считывает данные из хранилища данных, к которому получают доступ вне подсистемы, анализа:

  • Добавляет блок Data Store Memory к новой модели.

  • Добавляет входной порт, который пишет в хранилище данных. Поскольку вход пишет в хранилище данных, данные могут иметь любые значения (в заданном типе данных) в целях анализа Simulink Design Verifier.

    Если хранилище данных задает минимальные и максимальные значения, те значения присвоены новому входному порту.

Следующий пример анализирует подсистему в sl_subsys_fcncall8 модель в качестве примера:

  1. Откройте sl_subsys_fcncall8 модель в качестве примера:

    Эта модель задает хранилище данных A, из которого Читатель атомарной подсистемы считывает данные с помощью блока Data Store Read.

  2. Щелкните правой кнопкой по подсистеме Читателя и выберите Design Verifier> Generate Tests for Subsystem.

    Логарифмическое окно Simulink Design Verifier показывает, что программное обеспечение извлекает подсистему в новую модель под названием Reader, анализирует извлеченную модель и предлагает вам, выбор которых заканчивается, чтобы произвести.

  3. Откройте новый Reader модель, что программное обеспечение создается в <current_folder>\sldv_output\Reader.

    Новый Inport блок записи в хранилище данных, которое используется Читателем подсистемы в новой модели.

Анализируйте подсистемы вызова функций

function-call subsystem является триггируемой подсистемой, выполнение которой определяется логикой, внутренней к S-функции MEX C вместо значением сигнала. Подсистемы вызова функций являются всегда атомарными.

Примечание

Для получения дополнительной информации смотрите Подсистемы вызова функций Реализации с S-функциями.

Когда вы анализируете модель с подсистемой вызова функций, Simulink Design Verifier создает новую модель с Inport блоком, который подражает триггеру и копии подсистемы. Программное обеспечение затем анализирует новую модель.

Следующий пример анализирует подсистему вызова функций в sl_subsys_fcncall2 модель:

  1. Откройте sl_subsys_fcncall2 модель в качестве примера:

    Эта модель содержит диаграмму Stateflow под названием График, который инициировал подсистему вызова функций f.

  2. Щелкните правой кнопкой по f подсистеме и выберите Design Verifier> Generate Tests for Subsystem.

    Программное обеспечение извлекает подсистему в новую модель под названием f0, анализирует извлеченную модель и приводит к результатам.

  3. Откройте f0 модель, что программное обеспечение создается в <current_folder>\sldv_output\f0.

    Inport блок и новый блок подсистемы подражают триггеру для подсистемы вызова функций f в новом f0 модель.

Анализируйте глобальную переменную функция Simulink

Функция Simulink является вычислительным модулем, который вычисляет набор выходных параметров, когда предоставлено набор входных параметров.

Когда вы анализируете подсистему Функции Simulink, Simulink Design Verifier создает новую модель, содержащую блок MATLAB function _SldvExportFcnScheduler и копия подсистемы. Этот блок MATLAB function вызывает Simulink Functions апериодическим образом и управляется импортом, который представляет входные параметры Функции Simulink. Дополнительный блок Inport под названием FcnTriggerPort, значение которого указывает, вызвать ли конкретную функцию во временном шаге.

Следующий пример анализирует глобальную функцию Simulink в sldvexGlobalSimFcn модель:

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

    open_system('sldvexGlobalSimFcn');
  2. Щелкните правой кнопкой по подсистеме и выберите Design Verifier> Generate Tests for Subsystem.

    Программное обеспечение извлекает подсистему в новую модель и анализирует извлеченную модель и приводит к результатам.

  3. Откройте новую модель SimulinkFunctionRunnable0 то, что программное обеспечение создает в <current_folder>\sldv_output\.

    Блок Inport FcnTriggerPort, вызывает Simulink Function SimulinkFunctionRunnable в новом SimulinkFunctionRunnable0 модель.