Можно запустить тот же тест с различными данными или конфигурациями модели при помощи итераций теста. Итерации могут использовать отличающийся:
Параметры.
Внешние входные параметры.
Конфигурации модели.
Сценарии Редактора сигнала.
Группы Signal Builder.
Базовые данные.
Настройте итерации в разделе Iterations теста. Можно использовать табличные итерации или заданные сценарием итерации. Если тест собирает покрытие с помощью Simulink® Coverage™, те же настройки покрытия применяются ко всем итерациям в тесте.
Используете ли вы таблицу или заданные сценарием итерации, вы видите итерации в тесте путем нажатия кнопки Show Iterations.
Table Iterations обеспечивает быстрый способ добавить основанные на итерациях элементы в вашем образцовом или тесте. Чтобы создать итерации с таблицей, сначала сделайте соответствующие столбцы видимыми:
Расширьте раздел Iterations > Table Iterations.
В таблице добавьте или удалите столбцы путем нажатия кнопки и выбора элементов в списке. Например, чтобы отобразить параметр и конфигурации модели, выберите элементы Configuration Set и Parameter Set.
Чтобы вручную добавить итерации, нажмите Add. Таблица показывает новую строку итерации.
Присвойте имя итерации и выберите элементы для итерации. Например, этот тест имеет четыре итерации. Каждая итерация использует различную комбинацию внешнего входа и базовых данных.
Можно также автоматически сгенерировать итерации от данных в тесте и модели:
Нажмите кнопку Auto Generate.
Выберите элементы, чтобы сгенерировать итерации.
Если вы выбираете несколько элементов, итерации создаются в последовательных соединениях. Например:
Модель sldemo_autotrans
имеет блок Signal Builder с четырьмя группами сигнала, маркировал S1, S2, S3 и S4.
Тест имеет три набора параметра, маркировал P1, P2 и P3.
Автоматически генерирующие итерации от групп Signal Builder и параметра устанавливают результаты в трех итерациях. Итерации ограничиваются тремя наборами параметра. Каждая итерация содержит одну группу Signal Builder и один набор параметра. Группа Signal Builder и набор параметра являются соответствующими в порядке, что они перечислены в блоке Signal Builder и разделе набора параметра.
Задайте дополнительное правило именования для итераций. В поле Iteration naming rule введите использование правила:
Имя каждой установки вас хочет использовать на имя с удаленными пробелами
Подчеркивание или пробел, чтобы разделить каждую установку
Например, если вы хотите включать имя набора параметра, конфигурации модели и базового имени файла, введите ParameterSet_ConfigurationSet_Baseline
.
Разделите опцию | Цель |
---|---|
Группа Signal Builder | Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданного Signal Builder Group. Каждая группа Signal Builder используется, чтобы сгенерировать итерацию. |
Сценарий Редактора сигнала | Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданного Signal Editor Scenario. Каждый сценарий Редактора Сигнала используется, чтобы сгенерировать итерацию. |
Набор параметра | Применяется к разделу Parameter Overrides симуляции, базовой линии или эквивалентного теста. Каждый набор переопределения параметра используется, чтобы сгенерировать итерацию. |
Внешний вход | Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданных наборов External Inputs. Каждый внешний входной набор используется, чтобы сгенерировать итерацию. |
Конфигурация модели | Применяется к разделу Configuration Setting Overrides симуляции, базовой линии или эквивалентного теста. Каждая итерация использует заданный параметр конфигурации. |
BaseLine | Применяется только к базовым типам теста, в частности к разделу Baseline Criteria базового теста. Каждый базовый набор критериев используется, чтобы сгенерировать итерацию. |
Симуляция 1 или 2 | Применяется только к эквивалентным типам теста. Наверху диалогового окна Auto Generate Reports существует меню для Simulation 1 или Simulation 2. Эти разделы соответствуют двум разделам симуляции в эквивалентном тесте. |
Можно запустить пользовательский набор итераций с помощью скрипта в разделе Scripted Iterations. Например, можно задать наборы параметра или настроить порядок итерации при помощи пользовательской итерации. Итерации в виде сценария сгенерированы во время выполнения, когда тест выполняется.
Скрипт итерации должен содержать определенные компоненты. Самый основной скрипт итерации содержит три элемента:
Объект итерации, созданное использование sltestiteration
.
Установка итерации, набор с помощью setTestParam
.
Регистрация итерации, добавленное использование addIteration
.
Например, этот скрипт создает итерацию, которая запускает одну группу сигнала от блока Signal Builder.
%% Iterate Using a Signal Builder Group % Set up a new iteration object testItr = sltestiteration; % Set iteration setting using Signal Builder group setTestParam(testItr,'SignalBuilderGroup',sltest_signalBuilderGroups{1}); % Add the iteration to run in this test case % The predefined sltest_testCase variable is used here addIteration(sltest_testCase,testItr);
Для получения дополнительной информации о тестовом классе итерации, смотрите sltest.testmanager.TestIteration
. Можно выполнить итерации по нескольким элементам, таким как группы Signal Builder. Можно выполнить итерации по всем группам Signal Builder в блоке путем помещения основного скрипта итерации в цикл:
%% Iterate Over All Signal Builder Groups % Determine the number of possible iterations numSteps = length(sltest_signalBuilderGroups); % Create each iteration for k = 1 : numSteps % Set up a new iteration object testItr = sltestiteration; % Set iteration settings setTestParam(testItr,'SignalBuilderGroup',sltest_signalBuilderGroups{k}); % Add the iteration to run in this test case % You can pass in an optional iteration name addIteration(sltest_testCase,testItr); end
Можно использовать предварительно определенные переменные, чтобы записать скрипты итераций. Чтобы видеть список предварительно определенных переменных в менеджере по Тесту, расширьте раздел Help on creating test iterations. Вы написали скрипт итераций в поле скрипта в разделе Scripted Iterations. Поле скрипта является функциональной рабочей областью, что означает, что базовое рабочее пространство MATLAB® не может получить доступ к информации от поля скрипта. Если вы задаете переменные в поле скрипта, то другие рабочие области не могут использовать переменную.
Предварительно определенные переменные:
sltest_bdroot
— Модель моделируется тестом, заданным как строка
sltest_sut
— Система Под Тестом, заданным как строка
sltest_isharness
— true
, если sltest_bdroot
является моделью тестовой обвязки, заданной как логическое
sltest_externalInputs
— Имя внешних входных параметров, заданных как массив ячеек строк
sltest_parameterSets
— Имя параметра заменяет наборы, заданные как массив ячеек строк
sltest_configSets
— Имя параметров конфигурации, заданных как массив ячеек строк
sltest_tableIterations
— Объекты итерации создаются в таблице итераций, заданной как массив ячеек объектов sltest.testmanager.TestIteration
sltest_testCase
— Текущий объект теста, заданный как объект sltest.testmanager.TestCase
Можно быстро сгенерировать итерации для шаблонов использования теста для групп Signal Builder, наборов параметра, внешних входных параметров, конфигураций модели и исходных наборов, если вы используете базовый тест. Шаблоны итерации в виде сценария следуют за жестко регламентированным упорядоченным расположением и соединением тестовых настроек. Для получения дополнительной информации о жестко регламентированном упорядоченном расположении, смотрите, Создают Табличные Итерации.
Например, если вы хотите запустить все группы Signal Builder в итерации в виде сценария:
Нажмите Iteration Templates.
Выберите настройки теста, которых вы хотите выполнить итерации через. Нажмите OK.
Скрипт сгенерирован и добавлен к полю скрипта ниже любых существующих скриптов.
Чтобы сгенерировать таблицу, которая дает предварительный просмотр итераций, которые выполняются, когда вы запускаете тест, нажмите Show Iterations.
Этот пример показывает, как создать базовый тест путем собирания данных от теста с табличными итерациями. Вы создаете итерации из групп Signal Builder в модели. Прежде, чем запустить пример, перейдите к перезаписываемой папке на пути MATLAB®.
1. Откройте модель. В командной строке войти
Model = 'sltestCar'; open_system(fullfile(matlabroot,'examples','simulinktest',Model));
2. Создайте тестовый файл, который содержит итерации, и откройте менеджера по Тесту. В командной строке войти
tf = sltest.testmanager.TestFile('IterationBaselineTest');
sltest.testmanager.load(tf.Name);
sltest.testmanager.view;
3. В менеджере по Тесту щелкните правой кнопкой по тесту и выберите Rename. Переименуйте Базовый Тест теста.
4. В Системе Под Экспериментальным участком, для Модели, вводят sltestCar
.
5. Выберите сигналы для базовых данных:
В разделе Simulation Outputs нажмите Add. Диалоговое окно Signal Selection появляется.
В образцовом холсте выберите сигналы vehicle speed
и output torque
. Сигналы появляются в диалоговом окне Signal Selection.
В диалоговом окне выберите оба сигнала и нажмите Add.
Сигналы появляются в таблице Logged Signals.
6. Добавьте итерации для теста:
Расширьте раздел Iterations теста.
Расширьте раздел Table Iterations и нажмите Auto Generate.
В диалоговом окне выберите Signal Builder Group. Нажать ОК.
Таблица приводит итерации, соответствующие четырем группам Signal Builder.
7. Соберите базовые данные для итераций:
В разделе Baseline Criteria кликните по стрелке рядом с Получением и выберите Capture for Iterations.
Задайте местоположение для базовых файлов данных.
Нажмите Create.
Модель моделирует для всех групп Signal Builder. Базовые данные для output_torque
и vehicle_speed
собраны в четырех файлах MAT. Кроме того, каждый базовый набор данных добавляется к своим соответствующим итерациям в таблице.
Итерации в виде сценария могут использоваться, чтобы протестировать модель путем развертки через набор параметров. Можно использовать этот скрипт, чтобы попробовать различные значения за параметр рабочего пространства модели Iei
в модели sltestCar
. Добавьте скрипт под Iterations> Scripted Iterations.
%% Iterate over Iei parameter % Set up the parameter values to sweep over IeiValues = [0.021,0.022,0.022,0.023]; numSteps = length(IeiValues); % Create each iteration for k = 1 : numSteps % Set up a new iteration object testItr = sltestiteration; % Set value of lei (parameter in model workspace) setVariable(testItr,'Name','Iei','Source','model workspace',... 'Value',IeiValues(k)); % Add the iteration to run in this test case addIteration(sltest_testCase,testItr); end
После того, как вы добавите скрипт, нажмите Show Iterations. Вы видите итерации, которые создал скрипт.
Запущение теста генерирует результат для каждой итерации.
sltest.testmanager.TestIteration