Предположим, что у вас есть модель с контроллером с обратной связью в модели, на которую ссылается блок Model. Вы не записываете 100%-е покрытие для модели, на которую ссылаются. Расширение существующих тестов может помочь вам достигнуть 100%-го покрытия. Программное обеспечение Simulink® Design Verifier™ добавляет время шаги к существующим тестам при анализе контроллера, реализованного моделью, на которую ссылаются. Тесты, которые следуют из анализа реалистично, отражают непрерывное поведение времени, ожидаемое в контроллере с обратной связью.
Контроллер с обратной связью передает инструкции управляемой системе и получает информацию от среды, когда команды управления выполняются. Контроллер может адаптировать и изменить его инструкции, когда это получает эту информацию.
Этот пример использует sldemo_mdlref_basic
модель. Блок CounterA Model ссылается на модель sldemo_mdlref_counter
. Когда вы симулируете родительскую модель, sldemo_mdlref_basic
, и соберите покрытие, вы записываете только 75%-е покрытие для sldemo_mdlref_counter
. Регистрируйте данные от симуляции и расширьте те тесты, чтобы достигнуть 100%-го покрытия для модели, на которую ссылаются.
Откройте модель в качестве примера:
На вкладке Apps кликните по стреле справа от раздела Apps.
Под Model Verification, Validation, and Test нажмите Coverage Analyzer.
На вкладке Coverage нажмите Settings.
В панели Coverage Параметров конфигурации выберите Enable coverage analysis.
Выберите Referenced Models.
Обратите внимание на то, что анализ записывает покрытие только для моделей, на которые ссылаются, с набором Simulation mode к Normal
, SIL
, или PIL
. В sldemo_mdlref_basic
, блоку CounterC Model установили Simulation mode на Accelerator
, таким образом, вы не можете записать покрытие для него.
Под Coverage metrics, набор уровень структурного покрытия к Modified Condition Decision Coverage (MCDC), чтобы записать решение, условие и измененное условие/Decision Coverage.
Нажмите OK.
Нажмите Analyze Coverage.
Чтобы открыть отчет покрытия, в разделе Review Results, нажимают Generate Report.
Когда симуляция завершается, сгенерированный отчет покрытия открывается в окне браузера. Отчет показывает следующие результаты покрытия для модели, на которую ссылаются:
Условие: 50% (2/4) результаты условия
Решение: 25% (1/4) результаты решения
MCDC: 0% (0/2) условия инвертировали результат
Результаты покрытия также подсвечены в модели, на которую ссылаются, sldemo_mdlref_counter
. Можно выбрать отдельные объекты модели, чтобы просмотреть определенные результаты покрытия в диалоговом окне Coverage, как показано в следующем снимке экрана.
Регистрировать входные сигналы для блока CounterA Model в 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
модель, дважды кликните блок CounterA Model.
На вкладке Design Verifier нажмите Test Generation Settings.
В диалоговом окне Configuration Parameters, на панели 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.
Нажмите Generate Tests.
Анализ сначала загружает цели, которым удовлетворяют регистрируемые тесты. Затем это добавляет, что дополнительное время продвигается в те тесты и пытается удовлетворить любым недостающим целям. Когда анализ завершается, логарифмическое окно 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) условия инвертировали результат