Протестируйте итерации

Можно запустить тот же тест с различными данными или конфигурациями модели при помощи итераций теста. Итерации могут использовать отличающийся:

  • Параметры

  • Внешние входные параметры

  • Конфигурации модели

  • Сценарии Signal Editor

  • Сценарии Test Sequence

  • Базовые данные

  • Режимы симуляции

Настройте итерации в разделе Iterations теста. Можно создать итерации с помощью таблицы в разделе Iterations менеджера по Тесту или при помощи скрипта.

Чтобы использовать Тестовые сценарии Последовательности в итерациях, во-первых, в разделе Inputs, устанавливают Test Sequence Block на блок, который содержит сценарии. Затем выберите сценарий из Override with Scenario, чтобы использовать тот сценарий в качестве значения по умолчанию для каждой итерации. Если вы не выбираете сценарий, активный сценарий в блоке Test Sequence используется в качестве значения по умолчанию. Используйте столбец Test Sequence Scenario в таблице, чтобы изменить сценарий для итерации. Для получения дополнительной информации см. Тестовые Сценарии Последовательности Использования в Тестовом менеджере по Редактору и Тесту Последовательности.

Чтобы использовать различные режимы симуляции, такой как нормальные и программное обеспечение в цикле (SIL), для базовой линии или теста симуляции, во-первых, настраивает тест. Затем в таблице Iterations нажмите Auto Generate. В диалоговом окне Auto Generate Iterations выберите Simulation Modes и одну или несколько других опций. Для каждой опции количество созданных итераций удвоено, один для режима модели и один для режима SIL.

Если тест собирает покрытие с помощью Simulink® Coverage™, те же настройки покрытия применяются ко всем итерациям в тесте.

Используете ли вы таблицу или заданные сценарием итерации, вы видите итерации в тесте путем нажатия кнопки Show Iterations.

Создайте табличные итерации

Table Iterations обеспечивает быстрый способ добавить основанные на итерациях элементы в вашем или тесте модели. Чтобы создать итерации с таблицей, сначала сделайте соответствующие столбцы видимыми:

  1. Расширьте раздел Iterations > Table Iterations.

  2. В таблице добавьте или удалите столбцы путем нажатия кнопки и выбора элементов в списке. Например, чтобы выбрать параметр отображения и конфигурации модели, выберите элементы Configuration Set и Parameter Set.

    Table iterations column selection options

Добавьте итерации вручную

  1. Чтобы вручную добавить итерации, нажмите Add. Таблица показывает новую строку итерации.

  2. Присвойте имя итерации и выберите элементы для итерации. Например, этот тест имеет четыре итерации. Каждая итерация использует различную комбинацию внешнего входа и базовых данных.

    Table of iterations

Сгенерируйте табличные итерации

Можно также автоматически сгенерировать итерации из данных в тесте и модели:

  1. Нажмите кнопку Auto Generate.

  2. Выберите элементы, для которых можно сгенерировать итерации.

    Для Тестовых сценариев Последовательности итерация сгенерирована для каждого сценария для блока, который вы выбрали в Test Sequence Block в разделе Inputs.

    Если вы выбираете несколько элементов, итерации создаются в последовательных соединениях. Например:

    • Модель sldemo_autotrans имеет блок Signal Editor с четырьмя сценариями сигнала, пометил Coasting, Gradual_Acceleration, Hard_braking и Passing_Maneuver, каждый из которых имеет сигналы Дросселя и Тормоза. Чтобы открыть эту модель, введите openExample('sldemo_autotrans') в командной строке. Чтобы просмотреть Редактор Signal, дважды кликните блок ManeuversGUI, чтобы открыть диалоговое окно Параметров блоков. Затем нажмите Редактор Signal кнопка запуска под Signal Properties.

    • Тест имеет три набора параметров, пометил P1, P2 и P3.

    • Автоматически генерирующие итерации из сценариев Signal Editor и наборов параметров приводят к трем итерациям. Итерации ограничиваются этими тремя наборами параметров. Каждая итерация содержит один сценарий Signal Editor и один набор параметров. Сценарий Signal Editor и набор параметров являются соответствующими в порядке, что они перечислены в блоке Signal Editor и разделе набора параметров.

    Signal Editor with four scenarios and plot of passing maneuver throttle.

    Parameter overrides and resulting iterations

  3. Задайте дополнительное правило именования для итераций. В поле Iteration naming rule введите использование правила:

    • Имя каждой установки вас хочет использовать на имя с удаленными пробелами

    • Подчеркивание или пробел, чтобы разделить каждую установку

    Например, если вы хотите включать имя набора параметров, конфигурации модели и базового имени файла, введите ParameterSet_ConfigurationSet_Baseline.

Разделите опциюЦель

Сценарий Редактора сигнала

Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданного Signal Editor Scenario. Каждый сценарий Редактора Сигнала используется, чтобы сгенерировать итерацию.

Набор параметров

Применяется к разделу Parameter Overrides симуляции, базовой линии или эквивалентного теста. Каждый набор переопределения параметра используется, чтобы сгенерировать итерацию.

Внешний вход

Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданных наборов External Inputs. Каждый внешний входной набор используется, чтобы сгенерировать итерацию.

Конфигурация модели

Применяется к разделу Configuration Setting Overrides симуляции, базовой линии или эквивалентного теста. Каждая итерация использует заданный параметр конфигурации.

Регистрируемый набор сигнала

Применяется к разделу Logging симуляции, базовой линии или эквивалентного теста. Каждый регистрируемый набор сигнала используется, чтобы сгенерировать итерацию.

BaseLine

Применяется только к базовым типам теста, в частности к разделу Baseline Criteria базового теста. Каждый базовый набор критериев используется, чтобы сгенерировать итерацию.

Протестируйте сценарий Последовательности

Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданного Test Sequence Block. Каждый Тестовый сценарий Последовательности используется, чтобы сгенерировать итерацию.

Режимы симуляции

Применяется к разделу таблицы Iterations симуляции или базового теста. Итерация для текущего режима симуляции модели и итерация SIL создаются друг для друга тестовая установка, выбранная в диалоговом окне Auto Generate Iterations.

Симуляция 1 или 2

Применяется только к эквивалентным типам теста. Наверху диалогового окна Auto Generate Reports существует меню для Simulation 1 или Simulation 2. Эти разделы соответствуют двум разделам симуляции в эквивалентном тесте.

Создайте итерации в виде сценария

Можно запустить пользовательский набор итераций с помощью скрипта в разделе Scripted Iterations. Например, можно задать наборы параметров или настроить порядок итерации при помощи пользовательской итерации. Итерации в виде сценария сгенерированы во время выполнения, когда тест выполняется.

Code for scripted iterations

Компоненты скрипта итерации

Скрипт итерации должен содержать определенные компоненты. Самый основной скрипт итерации содержит три элемента:

  1. Объект итерации, созданное использование sltestiteration.

  2. Установка итерации, набор с помощью setTestParam.

  3. Регистрация итерации, добавленное использование addIteration.

Например, этот скрипт создает итерацию, которая запускает один сценарий сигнала от блока Signal Editor.

%% Iterate Using a Signal Editor Scenario
 
% Set up a new iteration object
testItr = sltestiteration;

% Set iteration setting using Signal Editor scenario
setTestParam(testItr,'SignalEditorScenario',...
   sltest_signalEditorScenarios{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 Editor или Тестовые сценарии Последовательности. Можно выполнить итерации по всему Signal Editor или сценариям Test Sequence в блоке путем помещения основного скрипта итерации в цикл:

%% Iterate Over All Signal Editor Scenarios

% Determine the number of possible iterations
numSteps = length(sltest_signalEditorScenarios);
 
% Create each iteration
for k = 1 : numSteps
    % Set up a new iteration object
    testItr = sltestiteration;
 
    % Set iteration settings
    setTestParam(testItr,'SignalEditorScenario',...
      sltest_signalEditorScenarios{k});
 
    % Add the iteration to run in this test case
    % You can pass in an optional iteration name
    addIteration(sltest_testCase,testItr);
end

% Reset the path
rmpath(fullfile(matlabroot,'examples',...
     'simulink_automotive','main'));

Предварительно определенные переменные

Можно использовать предварительно определенные переменные, чтобы записать скрипты итераций. Чтобы видеть список предварительно определенных переменных в менеджере по Тесту, расширьте раздел Help on creating test iterations. Вы написали скрипт итераций в поле скрипта в разделе Scripted Iterations. Поле скрипта является функциональной рабочей областью, что означает MATLAB® базовое рабочее пространство не может получить доступ к информации от поля скрипта. Если вы задаете переменные в поле скрипта, то другие рабочие области не могут использовать переменную.

Предварительно определенные переменные:

  • sltest_bdroot — Модель симулирована тестом, заданным как строка

  • sltest_sut — Система Под Тестом, заданным как строка

  • sltest_isharness TRUE если sltest_bdroot модель тестовой обвязки, заданная как логическое

  • sltest_externalInputs — Имя внешних входных параметров, заданных как массив ячеек строк

  • sltest_parameterSets — Имя параметра заменяет наборы, заданные как массив ячеек строк

  • sltest_configSets — Имя параметров конфигурации, заданных как массив ячеек строк

  • sltest_signalEditorScenarios — Имя сценариев редактора сигнала, заданных как 2D массив ячеек из символьных векторов.

  • sltest_signalBuilderGroups — Имя групп Signal Builder, заданных как 2D массив ячеек из символьных векторов.

  • sltest_loggedSignalSets — Имя регистрируемых наборов сигнала, заданных как 2D массив ячеек из символьных векторов.

  • sltest_testSequenceScenarios — — Имя тестовых сценариев последовательности, заданных как 2D массив ячеек из символьных векторов.

  • sltest_tableIterations — Объекты итерации создаются в таблице итераций, заданной как массив ячеек sltest.testmanager.TestIteration объекты

  • sltest_testCase — Текущий объект теста, заданный как sltest.testmanager.TestCase объект

Шаблоны итерации в виде сценария

Можно быстро сгенерировать итерации для шаблонов использования теста для сценариев Signal Editor, наборов параметров, внешних входных параметров, конфигураций модели и исходных наборов, если вы используете базовый тест. Шаблоны итерации в виде сценария следуют за жестко регламентированным упорядоченным расположением и соединением тестовых настроек. Для получения дополнительной информации о жестко регламентированном упорядоченном расположении, смотрите, Создают Табличные Итерации.

Например, если вы хотите запустить все сценарии редактора сигнала в итерации в виде сценария:

  1. Нажмите Iteration Templates.

  2. Выберите настройки теста, которых вы хотите выполнить итерации через. Нажмите OK.

    Скрипт сгенерирован и добавлен к полю скрипта ниже любых существующих скриптов.

  3. Чтобы сгенерировать таблицу, которая дает предварительный просмотр итераций, которые выполняются, когда вы запускаете тест, нажмите Show Iterations.

Развернитесь через набор параметров

Итерации в виде сценария могут использоваться, чтобы протестировать модель путем развертки через набор параметров. Можно использовать этот скрипт, чтобы попробовать различные значения за параметр рабочего пространства модели 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. Вы видите итерации, которые создал скрипт.

Details of iterations, including parameter names and values, and workspace and model parameter overrides.

Запущение теста генерирует результат для каждой итерации.

Iteration results hierarchy

Смотрите также

|

Похожие темы