В этом примере показано, как выполнить тест частотной характеристики модели slrt_ex_osc_sltest
.
Используя эту информацию, в стадии проектирования, можно изменить внутренние параметры модели, чтобы удовлетворить требования частоты. В производственной стадии вы можете, интервал произвел части на основе частотной характеристики.
Чтобы открыть модель, в командном окне MATLAB, введите:
open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_osc_sltest'));
Рисунок показывает представительный выход из приложения реального времени, работающего на целевом компьютере. В низких частотах выход блока Integrator1 обосновывается к тому же значению как выход блока Signal Generator. На высоких частотах выход блока Integrator1 все еще звонит в конце каждого импульса.
Тест определяет самую высокую частоту, на которой выходные значения Интегратора и блоков Генератора Сигнала в заданном критерии друг друга. Тест использует саму модель в качестве источника сигнала и использует тестовую обвязку, чтобы сравнить выходные параметры Интегратора и блоков Генератора Сигнала.
Открытая модель slrt_ex_osc_sltest
в перезаписываемой папке.
Откройте Параметры конфигурации. На вкладке Real-Time нажмите Hardware Settings.
Выберите Model Referencing> Общее количество экземпляров, позволенных на топ-модель> Один.
Выберите Data Import/Export> Format> Structure со временем.
Выберите Data Import/Export> Time.
Выберите Data Import/Export> Output.
Отмените выбор Импорта/Экспорта Данных> состояния.
Отмените выбор Импорта/Экспорта Данных> конечные состояния.
Отмените выбор Импорта/Экспорта Данных> логгирование Сигнала.
Отмените выбор Импорта/Экспорта Данных> Хранилища данных.
Отмените выбор Импорта/Экспорта Данных> Логарифмические данные о Наборе данных к файлу.
На вкладке Simulink Apps нажмите Simulink Test.
На вкладке Test нажмите Add Test Harness. Программное обеспечение создает тестовую обвязку с именем по умолчанию slrt_ex_osc_sltest_Harness1
.
Во вкладке Basic Properties, для Входа к Компоненту под Тестом, выбирают None
.
Для Выхода от Компонента под Тестом выберите Outport
.
Выберите Add отдельное поле проверки блока оценки.
Выберите Открытую обвязку после флажка создания.
Возьмите значения по умолчанию в остающихся вкладках.
8. Нажать ОК.
Модель slrt_ex_osc_sltest
в качестве примера хранит тестовую обвязку в модели. Получить доступ к тестовой обвязке из модели в качестве примера:
В Редакторе Simulink, на вкладке Test, нажимают Manage Test Harnesses.
Нажмите slrt_ex_osc_sltest_Harness1
.
Чтобы возвратиться к модели в качестве примера, выберите его в перспективном представлении в правом нижнем углу тестовой обвязки.
Открытая тестовая обвязка slrt_ex_osc_sltest_Harness1
.
Откройте Параметры конфигурации. На вкладке Real-Time нажмите Hardware Settings.
Выберите Model Referencing> Общее количество экземпляров, позволенных на топ-модель> Один.
Выберите Data Import/Export> Format> Structure со временем.
Выберите Data Import/Export> Time.
Выберите Data Import/Export> Output.
Отмените выбор Импорта/Экспорта Данных> состояния.
Отмените выбор Импорта/Экспорта Данных> конечные состояния.
Отмените выбор Импорта/Экспорта Данных> логгирование Сигнала.
Отмените выбор Импорта/Экспорта Данных> Хранилища данных.
Отмените выбор Импорта/Экспорта Данных> Логарифмические данные о Наборе данных к файлу.
Откройте блок Test Assessment.
Упростить тестовую настройку оценки, в списке Вводимых символов, входе Outport
замены с входными параметрами
Int1
и SigGen
.
В slrt_ex_osc_sltest_Harness1
, соедините блок Demux с slrt_ex_osc_sltest/Outport
.
В диалоговом окне блока Демультиплексора, определенном Номере выходных параметров к 2
.
Чтобы сделать Demux выходными параметрами видимый с блоком Test Assessment, соедините унитарные блоки Усиления с каждым блоком Demux выходные параметры.
Соедините главный блок Demux выход с Test Assessment/Int1
и нижняя часть выход к Test Assessment/SigGen
.
Откройте Model Explorer. На вкладке Modeling, выпадающей раздел Design и, нажимают Model Explorer.
Кликните по узлу slrt_ex_osc_sltest_Harness1> Рабочее пространство модели.
На панели инструментов нажмите кнопку Add Simulink Parameter.
Добавьте следующий объект данных:
Имя — критерий
Значение — 0
Тип данных 'double'
Класс памяти — ExportedGlobal
5. Подобным образом добавьте параметры Simulink w_open и w_close. Поскольку эти параметры находятся в slrt_ex_osc_sltest_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
. Когда разложение требует по крайней мере двух шагов на каждом уровне вложения и одного неанализируемого шага в конце каждого списка шагов.
Нажмите на slrt_ex_osc_sltest
подсистема.
На вкладке Apps нажмите Simulink Test.
На вкладке Test нажмите Test Manager.
Выберите New> Test File.
Назовите тестовый файл realtimetest
.
Щелкните правой кнопкой по тестовому файлу и выберите New> Real-Time Test.
В новом тестовом диалоговом окне в реальном времени введите Simulation
в поле Test Type.
Нажмите Create.
Переименуйте новый тестовый набор в realtimesuite
.
Переименуйте новый тест в frequencysweep
.
В менеджере по Тесту выберите узел frequencysweep.
Выберите вкладку System Under Test.
Установите модель на slrt_ex_osc_sltest
.
Во вкладке Test Harness, Обвязке набора к slrt_ex_osc_sltest_Harness1
.
Во вкладке Simulation Settings и Release Overrides установите флажок Stop Time.
Возьмите значения по умолчанию для других полей.
1. В менеджере по Тесту выберите вкладку Parameter Overrides.
2. Нажмите кнопку Add. Диалоговое окно открывается содержащий список параметров. Если параметры не отображаются, кликните по линии Обновления наверху диалогового окна.
Обновление создает модель и загружает модель и параметры блоков от slrt_ex_osc_sltest_Harness1
и slrt_ex_osc_sltest
.
3. Открытый Набор параметров 1 и выбирает Criterion, Frequency, w_close, и w_open флажки. Оставьте другие флажки очищенными.
Чтобы сконфигурировать и управлять выполненными с помощью итераций запусками тестовой обвязки, много констант и переменных обеспечивают вход.
Константы тестовой обвязки включают:
cStartFreq = 15.0
Запустите частоту развертки параметра.
cStopFreq = 25.0
Закончите частоту развертки параметра.
cFreqIncr = 1.0
Шаг частоты.
cWOpen = 0.90
Запустите окна времени для оценки criterion
.
cWClose = 0.99
Конец окна времени для оценки criterion
.
cCriterion = 0.025
Максимальное нормированное амплитудное различие между Генератором Сигнала и Integrator1 в окне времени.
Переменные тестовой обвязки включают:
vfreq
Частота в каждой итерации.
vw_open
Окно открывается однажды в каждый полупериод.
vw_close
Окно закрывается однажды в каждый полупериод.
В менеджере по Тесту выберите вкладку 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', ... 'slrt_ex_osc_sltest/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
Создайте и загрузите slrt_ex_osc_sltest
к целевому компьютеру.
В менеджере по Тесту щелкните по кнопке Run.
Чтобы просмотреть результаты испытаний, в левом столбце, нажимают Results и Artifacts. В этом случае тест привел к сбою в итерации 23 Гц.
Чтобы просмотреть провальные результаты, открытые узлы, 23 Гц> Проверяют Операторы и 23 Гц> Сим Аутпут (slrt_ex_osc_sltest).
В Инспекторе Данных моделирования панель нажмите кнопку Layout.
Выберите два дисплея с горизонтальный экраном.
В Инспекторе Данных моделирования лучшее отображение выберите два Out
флажки и главный флажок Test Assessment. Эта оценка соответствует HiCheck
подшаг.
В нижнем отображении выберите два Out
флажки и нижний флажок Test Assessment. Эта оценка соответствует LoCheck
подшаг.
Кликните по увеличению кнопки времени и выберите область значений 4.00-4.1
.
В лучшем отображении, вертикальной красной линии около 4.04
сопровождаемый горизонтальной зеленой линией показывает что HiCheck
тест перестал работать кратко перед следованием. В нижнем отображении, вертикальном красном скачке около 4.02
сопровождаемый горизонтальной зеленой линией показывает что LoCheck
тест перестал работать кратко перед следованием.
Test Assessment (Simulink Test) | Test Sequence (Simulink Test)