Этот пример описывает, как сгенерировать тесты, которые ограничивают значения для структур и соединяют шиной сигналы в модели. Предположим, что ваша модель включает переменную под названием kpGainsStructure
, который является структурой в MATLAB® рабочая область. Модель использует блок Селектора Шины, чтобы разделить поля структуры на отдельные сигналы шины. Можно ограничить значения структуры или значения сигналов шины гарантировать, что они остаются в заданной области в процессе моделирования.
Этот пример описывает, как создать и анализировать простой Simulink® модель, затем используйте Simulink Design Verifier™ для, генерирует тесты для модели. Модель содержит входной сигнал In1
чье значение установлено между-1 к 1. kpGainsStructure
структура, которая содержит три поля, Kp1
, Kp2
, и Kp3
, и выходные параметры их с блоком Селектора Шины, который разделяет поля на отдельные сигналы шины. Блок под названием Режим имеет параметр постоянного значения, который устанавливается на mode
определяет три сигнала шины как вход к kpGain
блок.
Значение In1
умножается на d
, затем умноженный на выбранный сигнал шины. Результат передает блоку Saturation, предел которого задан между-0.5 к 0,5.
На основе mode
значение, Simulink выбирает один из трех kpGainsStructure
поля и задают ограничения. Входной сигнал с блоком Saturation должен быть ниже нижнего предела или падения выше верхнего предела, чтобы удовлетворить цели решения блока Saturation. Simulink Design Verifier затем настраивает эти параметры, чтобы достигнуть этого предела. Следующий рабочий процесс проводит вас по процессу завершения этого примера.
Предварительно загрузите значение переменной kpGainsStructure
рабочего пространства MATLAB. Структура содержит поля
Kp1
, Kp2
, и Kp3
.
На вкладке Modeling выберите Model Settings> Model Properties.
Кликните по вкладке Callbacks.
Нажмите PreLoadFcn, затем загрузите Kp1
, Kp2
, и Kp3
поля myStruct
:
load('struct_param.mat'); myStruct.Kp1 = 15; myStruct.Kp2 = -5; myStruct.Kp3 = -5; gainsParam = Simulink.Parameter(myStruct); mode = 1; d = Simulink.Parameter(0.012);
Нажмите OK, чтобы закрыть диалоговое окно Model Properties и сохранить модель.
Поскольку параметр структуры вызван блоком Constant, необходимо задать выход блока Constant как шина. Выполните эти шаги:
Дважды кликните блок Gains, чтобы открыть диалоговое окно Block Parameters.
Под Signal Attributes выберите Output data type как Bus:BusO
.
Нажмите OK.
Существует два способа ограничить значения структуры или сигналов шины в окне Configuration Parameter: при помощи таблицы параметров или конфигурационного файла параметра.
Parameter Table
Parameter configuration file
Когда возможно, таблица параметров автоматически генерирует ограничительные значения для каждого параметра, в зависимости от типа данных и местоположения параметра в модели. Для получения дополнительной информации смотрите, Задают Ограничительные Значения для Параметров.
Выполните эти шаги, чтобы сгенерировать ограничительное значение для каждого параметра:
На вкладке Apps, под Model Verification, Validation, and Test, нажимают Design Verifier.
На вкладке Design Verifier нажмите Test Generation Settings.
В диалоговом окне Configuration Parameters выберите Design Verifier> Parameters.
Выберите Enable parameter configuration.
Выберите Use parameter table.
Нажмите Find in Model.
Таблица параметров заполняет параметрами из вашей модели.
В таблице параметров, в столбце Constraint,
{1,2,3} для
mode
[-0.01 0.15] для
d
Нажмите OK.
Это - альтернативный подход, который можно использовать, чтобы задать значения ограничений вместо того, чтобы использовать Таблицу параметров. Программное обеспечение Simulink Design Verifier обеспечивает шаблон, что можно сделать копию и отредактировать ее. Для получения дополнительной информации смотрите, что Конфигурационный файл Параметра шаблона в Задает Ограничительные Значения для Параметров в Файлах кода MATLAB. По умолчанию путь к конфигурационному файлу параметра:
matlabroot/toolbox/sldv/sldv/sldv_params_template.m
Чтобы сопоставить конфигурационный файл параметра с вашей моделью прежде, чем анализировать модель, в диалоговом окне Configuration Parameters, на Design Verifier> панель Parameters, гарантируют, что Use parameter table очищен, и введите имя файла конфигурационного файла в поле Parameter configuration file.
Выполните эти шаги, чтобы задать ограничительные значения в конфигурационном файле Параметра:
В sldv_params_template.m
, Введите:
function params = params_config params.mode = {1, 2, 3}; params.d = [-.001 0.15]; params.gainsParam.Kp1 = Sldv.Interval(0, 50); params.gainsParam.Kp2 = Sldv.Interval(-10, 10); params.gainsParam.Kp3 = [-5, 5];
Сохраните файл с именем params_config.m
.
Откройте модель DemoModel
.
На панели Apps, под Model Verification, Validation, and Test, нажимают Design Verifier.
На вкладке Design Verifier нажмите Test Generation Settings.
В диалоговом окне Configuration Parameters выберите Design Verifier> Parameters.
Выберите Enable parameter configuration.
Нажмите Browse, затем выберите params_config.m
конфигурационный файл параметра, созданный сохраненный на шаге 2.
Анализируйте модель с включенными ограничениями параметра и сгенерируйте аналитический отчет:
На вкладке Design Verifier, в разделе Mode, выбирают Test Generation. Нажмите Generate Tests.
Simulink Design Verifier анализирует вашу модель, чтобы сгенерировать тесты.
Когда программное обеспечение завершит свой анализ, в окне Simulink Design Verifier Results Summary, рядом с отчетом Детального анализа, выберите HTML.
Программное обеспечение отображает отчет HTML под названием DemoModel.html
.
В оглавлении отчета Simulink Design Verifier нажмите Test Cases.
Нажмите Test Case 1, чтобы отобразить подраздел для того теста.
Тест 1 показывает, что Simulink Design Verifier настроил все параметры таким способом, которым все входные параметры, прибывающие из входного сигнала In1, блока Gain и переменной режима, или упадут ниже-0.5 или выше 0.5. При генерации тестов все ограничения удовлетворяют целям.
Точно так же параметры для Теста 2 и Теста 3 настраиваются и удовлетворяют целям.