Предположим, что у вас есть модель с контроллером с обратной связью в модели, на которую ссылается блок Model. Вы не записываете 100%-е покрытие для модели, на которую ссылаются. Расширение существующих тестов может помочь вам достигнуть 100%-го покрытия. Программное обеспечение Simulink® Design Verifier™ добавляет время шаги к существующим тестам при анализе контроллера, реализованного моделью, на которую ссылаются. Тесты, которые следуют из анализа реалистично, отражают непрерывное поведение времени, ожидаемое в контроллере с обратной связью.
Контроллер с обратной связью передает инструкции управляемой системе и получает информацию от среды, когда команды управления выполняются. Контроллер может адаптировать и изменить его инструкции, когда это получает эту информацию.
Этот пример использует модель sldemo_mdlref_basic
. Блок Model CounterA ссылается на модель sldemo_mdlref_counter
. Когда вы моделируете родительскую модель, sldemo_mdlref_basic
, и собираете покрытие, вы записываете только 75%-е покрытие для sldemo_mdlref_counter
. Регистрируйте данные от симуляции и расширьте те тесты, чтобы достигнуть 100%-го покрытия для модели, на которую ссылаются.
Откройте модель в качестве примера:
В Редакторе Simulink выберите Analysis> Coverage> Settings.
В панели Coverage Параметров конфигурации выберите Enable coverage analysis.
Выберите Referenced Models
Обратите внимание на то, что анализ записывает покрытие только для моделей, на которые ссылаются, с набором Simulation mode к Normal
, SIL
или PIL
. В sldemo_mdlref_basic
блоку Model CounterC установили Simulation mode на Accelerator
, таким образом, вы не можете записать покрытие для него.
Под Coverage metrics, набор уровень структурного покрытия к Modified Condition Decision Coverage (MCDC), чтобы записать решение, условие и измененное условие/Decision Coverage.
Нажмите OK.
Моделируйте модель.
Когда симуляция завершается, сгенерированный отчет покрытия открывается в окне браузера. Отчет показывает следующие результаты покрытия для модели, на которую ссылаются:
Условие: 50% (2/4) результаты условия
Решение: 25% (1/4) результаты решения
MCDC: 0% (0/2) условия инвертировали результат
Результаты покрытия также подсвечены в модели, на которую ссылаются, sldemo_mdlref_counter
. Можно выбрать отдельные объекты модели, чтобы просмотреть определенные результаты покрытия в диалоговом окне Coverage, как показано в следующем снимке экрана.
Чтобы регистрировать входные сигналы для блока Model CounterA в sldemo_mdlref_basic
во время симуляции, в командной строке MATLAB®, вводят следующий код:
logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
Сохраните записанные данные в MAT-файле под названием existingtestcase.mat
:
save('existingtestcase.mat', 'logged_data');
Когда вы анализируете модель, на которую ссылаются в CounterA (sldemo_mdlref_counter
), чтобы расширить существующие тесты, вы задаете этот MAT-файл.
Анализируйте модель sldemo_mdfref_counter
, указывая, что анализ расширяет тесты, уже удовлетворенные:
Чтобы открыть модель sldemo_mdfref_counter
, в модели sldemo_mdlref_basic
, дважды кликают блок Model CounterA.
В Редакторе Simulink выберите Analysis> Design Verifier> Options.
В диалоговом окне Configuration Parameters, на панели Select, под Design Verifier, выбирают Test Generation.
На панели Test Generation, в поле Model coverage objectives, выбирают MCDC
.
Под Existing test cases выберите Extend existing test cases.
В поле Data file задайте имя MAT-файла, который содержит записанные данные, в этом случае, existingtestcase.mat
.
Очистите Ignore objectives satisfied by existing test cases.
Когда вы очищаете эту опцию, программное обеспечение включает тесты, зарегистрированные в файл existingtestcase.mat
в комплекте завершающего испытания.
Нажмите OK.
В Редакторе Simulink выберите Analysis> Design Verifier> Generate Tests> Model.
Анализ сначала загружает цели, удовлетворенные регистрируемыми тестами. Затем это добавляет, что дополнительное время продвигается в те тесты и пытается удовлетворить любые недостающие цели. Когда анализ завершается, логарифмическое окно Simulink Design Verifier открывает и указывает, что удовлетворены все 12 целей.
Чтобы просмотреть результаты анализа на модели, в логарифмическом окне Simulink Design Verifier, выбирают Highlight analysis results on model.
Результаты Simulink Design Verifier подсвечены в модели, на которую ссылаются, sldemo_mdlref_counter
. Можно выбрать отдельные объекты модели, чтобы просмотреть определенные результаты анализа в диалоговом окне Simulink Design Verifier Results, как показано в следующем снимке экрана.
Чтобы проверить результаты анализа и рассмотреть сгенерированные тесты, в логарифмическом окне Simulink Design Verifier, выбирают Generate detailed analysis report.
Чтобы собрать покрытие модели с помощью расширенного тестового набора, в логарифмическом окне Simulink Design Verifier, выбирают Simulate tests and produce a model coverage report.
Когда симуляция завершается, сгенерированный отчет покрытия открывается в окне браузера. Отчет теперь показывает следующие результаты покрытия для модели sldemo_mdlref_counter
, на которую ссылаются:
Условие: 100% (4/4) результаты условия
Решение: 100% (4/4) результаты решения
MCDC: 100% (2/2) условия инвертировали результат