Этот пример показывает, как выполнить тест частотной характеристики модели ex_slrt_slt_osc
(open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_slrt_slt_osc')))
).
Используя эту информацию, в стадии проектирования, можно изменить внутренние параметры модели, чтобы удовлетворить требования частоты. В производственной стадии вы можете, интервал произвел части на основе частотной характеристики.
Данные показывают представительный вывод из приложения реального времени, работающего на целевом компьютере. В низких частотах вывод блока Integrator1 обосновывается к тому же значению как вывод блока Signal Generator. В высоких частотах вывод блока Integrator1 все еще звонит в конце каждого импульса.
Тест определяет самую высокую частоту, на которой выходные значения Интегратора и блоков Генератора Сигнала в заданном критерии друг друга. Тест использует саму модель в качестве источника сигнала и использует тестовую обвязку, чтобы сравнить выходные параметры Интегратора и блоков Генератора Сигнала.
cStartFreq = частота Запуска на 15,0% развертки параметра. cStopFreq = частота Конца на 25,0% развертки параметра. cFreqIncr = шаг Частоты на 1,0%. cWOpen = Запуск на 0,90% окна времени для оценки criterion
. cWClose = Конец на 0,99% окна времени для оценки criterion
. критерий = Максимальный нормированный амплитудный % различия на 0,025% между Генератором Сигнала и % Integrator1 в окне времени.
vfreq % Frequency at each iteration. vw_open % Window opens once in each half-period. vw_close % Window closes once in each half-period.
Откройте ex_slrt_slt_osc
в перезаписываемой папке.
Откройте диалоговое окно Configuration Parameters.
Откройте Модель, Ссылающуюся на узел, и затем определите Общий номер экземпляров, позволенных на топ-модель Одной.
Откройте узел Импорта/Экспорта Данных и установите следующие настройки:
Установите Формат на Структуру со временем.
Установите флажки Time и Output.
Очистите Штаты, конечные состояния, журналирование Сигнала, Хранилища данных и Логарифмические данные о Наборе данных, чтобы зарегистрировать флажки.
В Анализе выберите Test Harness> Create for Model. Программное обеспечение создает тестовую обвязку с именем по умолчанию ex_slrt_slt_osc_Harness1
.
В панели Basic Properties установите флажок Save Test Harnesses Externally.
Для Входа к Компоненту под Тестом выберите None
.
Для Вывода от Компонента под Тестом выберите Outport
.
Выберите Add отдельное поле проверки блока оценки.
Выберите Открытую обвязку после флажка создания.
Возьмите значения по умолчанию в остающихся панелях.
8. Нажать ОК.
Тестовая обвязка выглядит так фигура.
Модель ex_slrt_slt_osc
в качестве примера хранит тестовую обвязку в модели. Получить доступ к тестовой обвязке из модели в качестве примера:
В Редакторе Simulink нажмите Analysis> Test Harness> Manage Test Harnesses.
Нажмите ex_slrt_slt_osc_Harness1
.
Чтобы возвратиться к модели в качестве примера, выберите его в перспективном представлении в правом нижнем углу тестовой обвязки.
Открытый ex_slrt_slt_osc_Harness1
.
Откройте диалоговое окно Configuration Parameters.
Откройте Модель, Ссылающуюся на узел, и затем определите Общий номер экземпляров, позволенных на топ-модель One
.
Откройте узел Импорта/Экспорта Данных.
Установите формат на Structure with time
.
Установите флажки Time и Output.
Очистите Штаты, конечные состояния, журналирование Сигнала, Хранилища данных и Логарифмические данные о Наборе данных, чтобы зарегистрировать флажки.
Откройте блок Test Assessment.
Упростить тестовую настройку оценки, в списке Вводимых символов, входе Outport
замены с входными параметрами Int1
и SigGen
.
В ex_slrt_slt_osc_Harness1
, подключение блок Demux к ex_slrt_slt_osc/Outport
.
В диалоговом окне блока Demux, определенном Номере выходных параметров к 2
.
Чтобы сделать Demux выходными параметрами видимый к блоку Test Assessment, соедините унитарные блоки Усиления с каждым блоком Demux выходные параметры.
Соедините главный блок Demux вывод с Test Assessment/Int1
и нижней частью вывод к Test Assessment/SigGen
.
На панели инструментов нажмите кнопку Model Explorer
.
Кликните по узлу ex_slrt_slt_osc_Harness1> Рабочее пространство модели.
На панели инструментов нажмите кнопку Add Simulink Parameter.
Добавьте следующий объект данных:
Имя — критерий
Значение — 0
Тип данных 'double'
Класс памяти — ExportedGlobal
5. Подобным образом добавьте параметры Simulink w_open и w_close. Поскольку эти параметры находятся в рабочем пространстве модели ex_slrt_slt_osc_Harness1
как параметры модели, вы получаете доступ к ним по наименованию непосредственно без иерархии модели.
6. Сохраните модель.
1. Откройте блок Test Assessment
2. Добавьте эти параметры в список символов Параметра:
Критерий
w_open
w_close
3. Чтобы добавить шаг, в столбце Шага, перемещают курсор в верхнюю строку, нажимают шаг Add после, и тип:
CheckSetting
4. Щелкните правой кнопкой по шагу CheckSetting
и установите Когда флажок разложения.
5. Чтобы добавить подшаг в CheckSetting
, нажмите подшаг Add и тип:
Hi when (SigGen > 0)
Когда выражение выбирает одну половину формы волны.
6. Щелкните правой кнопкой по подшагу Hi when
и установите Когда флажок разложения.
7. Чтобы подпродвинуться Hi when
, добавьте подшаг:
HiCheck when ((et >= w_open) && (et <= w_close)) verify((abs(Int1) >= abs(SigGen) * (1.0 - Criterion)) && ... (abs(Int1) <= abs(SigGen) * (1.0 + Criterion)));
Когда выражение выбирает окно времени для тестирования критерия допустимости. Проверять команда тестирует критерий допустимости.
8. Подобным образом, чтобы продвинуться CheckSetting
, добавьте подшаг:
Lo when (SigGen < 0)
9. Чтобы подпродвинуться Lo when
, добавьте подшаг:
LoCheck when ((et >= w_open) && (et <= w_close)) verify((abs(Int1) >= abs(SigGen) * (1.0 - Criterion)) && ... (abs(Int1) <= abs(SigGen) * (1.0 + Criterion)));
10. Щелкните правой кнопкой по подшагу Lo when
и установите Когда флажок разложения.
11. Чтобы удовлетворить требования Когда разложение, удалите Run
по умолчанию, продвигаются и вставляют подшаги DefaultStep
после шагов CheckSetting
, Hi when
и Lo when
. Когда разложение требует по крайней мере двух шагов на каждом уровне вложения и одного неанализируемого шага в конце каждого списка шагов.
Нажмите на подсистему ex_slrt_slt_osc
.
Открытый Анализ> Тестирует менеджера.
Выберите New> Test File.
Назовите тестовый файл realtimetest
.
Щелкните правой кнопкой по тестовому файлу и выберите New> Real-Time Test.
В новом тестовом диалоговом окне в реальном времени введите Simulation
в поле Test Type.
Нажмите Create.
Переименуйте новый тестовый набор к realtimesuite
.
Переименуйте новый тест к frequencysweep
.
В менеджере по Тесту выберите узел frequencysweep.
Выберите вкладку System Under Test.
Установите приложение загрузки от на Model
.
Установите модель на ex_slrt_slt_osc
.
Установите целевой компьютер на TargetPC1
.
Во вкладке Test Harness, Обвязке набора к ex_slrt_slt_osc_Harness1
.
Во вкладке Simulation Settings Overrides установите флажок Stop Time.
Возьмите значения по умолчанию для других полей.
В менеджере по Тесту выберите вкладку Parameter Overrides.
Нажмите кнопку Add. Диалоговое окно открывается содержащий список параметров. Если параметры не видимы, кликните по строке Обновления наверху диалогового окна. Обновление создает модель и загружает модель и параметры блоков от ex_slrt_slt_osc_Harness1
и ex_slrt_slt_osc
.
Открытый Набор Параметра 1 и выбирает Criterion, Frequency, w_close, и w_open флажки. Оставьте другие флажки очищенными.
В менеджере по Тесту выберите вкладку Iterations> Scripted Iterations.
В текстовом поле введите следующий код. Чтобы изменить размер текстового поля Scripted Iterations, перетащите нижний правый угол поля.
% Initialize constants cStartFreq = 15.0; cStopFreq = 25.0; cFreqIncr = 1.0; cWOpen = 0.90; cWClose = 0.99; cCriterion = 0.025;
% Loop through test frequencies for vfreq = cStartFreq:cFreqIncr:cStopFreq
% Create a new iteration testItr = sltest.testmanager.TestIteration();
% Calculate the time window half_period = 0.5 * (1.0/vfreq); vw_open = half_period * cWOpen; vw_close = half_period * cWClose;
% Set the parameters for the iteration testItr.setVariable('Name','Frequency','Source', ... 'ex_slrt_slt_osc/Signal Generator','Value',vfreq); testItr.setVariable('Name','w_open','Source', ... '','Value', vw_open); testItr.setVariable('Name','w_close','Source', ... '','Value', vw_close); testItr.setVariable('Name','Criterion','Source', ... '','Value', cCriterion);
% Name and add the iteration to the testcase str = sprintf('%.0f Hz', vfreq); addIteration(sltest_testCase, testItr, str); end
Создайте и загрузите ex_slrt_slt_osc
на целевой компьютер.
В менеджере по Тесту, на панели инструментов, щелкают по кнопке Run.
Чтобы просмотреть результаты испытаний, в левом столбце, нажимают Results и Artifacts. В этом случае тест привел к сбою в итерации 23 Гц.
Чтобы просмотреть провальные результаты, открытые узлы, 23 Гц> Проверяют Операторы и 23 Гц> Сим Аутпут (ex_slrt_slt_osc).
В Инспекторе Данных моделирования панель нажмите кнопку Layout.
Выберите два дисплея с горизонтальный экраном.
В ведущем Инспекторе Данных моделирования отображение установите два флажка Out
и главный флажок Test Assessment. Эта оценка соответствует подшагу HiCheck
.
В нижнем отображении установите два флажка Out
и нижний флажок Test Assessment. Эта оценка соответствует подшагу LoCheck
.
Кликните по увеличению кнопки времени и выберите область значений 4.00-4.1
.
В лучшем отображении вертикальная красная линия около 4.04
, сопровождаемого горизонтальной зеленой строкой, показывает, что тест HiCheck
перестал работать кратко перед следованием. В нижнем отображении вертикальный красный скачок около 4.02
, сопровождаемого горизонтальной зеленой строкой, показывает, что тест LoCheck
перестал работать кратко перед следованием.
Протестируйте оценку | Протестируйте последовательность