Можно запустить тот же тест с различными данными или конфигурациями модели при помощи итераций теста. Итерации могут использовать отличающийся:
Параметры.
Внешние входные параметры.
Конфигурации модели.
Сценарии Signal Editor.
Группы 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 появляется.
В холсте модели выберите output torque
и vehicle speed
сигналы. Сигналы появляются в диалоговом окне 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