Можно запустить тот же тест с различными данными или конфигурациями модели при помощи итераций теста. Итерации могут использовать отличающийся:
Параметры.
Внешние входные параметры.
Конфигурации модели.
Сценарии 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.
В этом примере показано, как создать базовый тест путем собирания данных от теста с табличными итерациями. Вы создаете итерации из сценариев Редактора Сигнала в модели. Прежде, чем запустить пример, перейдите к перезаписываемой папке на пути MATLAB®.
1. Откройте модель. В командной строке войти
Model = 'sltestCar';
open_system(Model);
2. Откройте менеджера по Тесту и создайте тестовый файл. В командной строке введите sltestmgr
3. В менеджере по Тесту нажмите Test File from Model от Нового выпадающего списка.
4. Задайте тестовый файл.
Введите sltestCar
как Модель.
Введите имя тестового файла или полный путь в Месте.
Выберите Baseline
как тестовый тип.
5. Выберите тест. Расширьте тестовый файл и выберите sltestCar/Inputs тест.
6. Выберите сигналы для базовых данных:
В разделе Simulation Outputs нажмите Add.
В холсте модели выберите output torque
предупредите и в диалоговом окне Подключения, установите флажок для того сигнала. Выберите vehicle speed
предупредите и установите его флажок в диалоговом окне.
В Тесте менеджер передает диалоговое окно, нажимает Done.
Сигналы появляются в таблице Logged Signals.
7. Просмотрите итерации для теста:
Расширьте Итерации и Табличные разделы Итераций. Итерации для выбранного теста автоматически появляются. Итерации соответствуют четырем сценариям Редактора Сигнала.
8. Соберите базовые данные для итераций:
В разделе Baseline Criteria кликните по стреле рядом с Получением.
Выберите MAT как Формат файла.
Задайте местоположение, чтобы сохранить базовые файлы данных в поле File.
Выберите Capture Baselines for Iterations.
Нажмите Capture.
Модель симулирует для всех сценариев Редактора Сигнала. Базовые данные для output_torque
и vehicle_speed
получены в четырех файлах MAT. Кроме того, каждый базовый набор данных добавляется к своим соответствующим итерациям в таблице.
Итерации в виде сценария могут использоваться, чтобы протестировать модель путем развертки через набор параметров. Можно использовать этот скрипт, чтобы попробовать различные значения за параметр рабочего пространства модели Iei
и параметр модели UpperSaturationLimit
в модели 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]; UprSatValues = [2000,3000,4000,5000]; 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)); % Set value of UpperSaturationLimit model parameter testItr.setModelParam('sltestCar/Engine/Integrator',... 'UpperSaturationLimit',UprSatValues(k)); % Add the iteration to run in this test case addIteration(sltest_testCase,testItr); end
После того, как вы добавите скрипт, нажмите Show Iterations. Вы видите итерации, которые создал скрипт.
Запущение теста генерирует результат для каждой итерации.
setModelParam
| sltest.testmanager.TestIteration