Этот пример показывает, как выполнить тест частотной характеристики модели 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 > Общее количество образцов, разрешенных на верхнюю часть модель > One.
Выберите Импорт/Экспорт данных > Формат > Структура с течением времени.
Выберите Импорт/Экспорт данных > Формат > Время.
Выберите Импорт/Экспорт данных > Формат > Выход.
Отменить выбор Импорт/Экспорт данных > Формат > Состояния.
Отменить выбор Импорт/Экспорт данных > Формат > Окончательные состояния.
Отменить выбор Импорт/Экспорт данных > Формат > логгирование сигналов.
Отменить выбор Импорт/Экспорт данных > Формат > Хранилища данных.
Отменить выбор Импорт/Экспорт данных > Формат > Журнал данных набора данных в файл.
На вкладке Apps нажмите Simulink Test.
На вкладке «Тест» нажмите Add Тестовая обвязка for Model. Программа создает тестовую обвязку с именем по умолчанию slrt_ex_osc_sltest_Harness1
.
На панели «Основные свойства» установите флажок «Сохранить тестовые обвязки внешне».
Для параметра «Вход в компонент» в разделе «Тест» выберите None
.
Для выхода из компонента в разделе «Тест» выберите Outport
.
Установите флажок Добавить отдельный блок оценки.
Установите флажок Открыть обвязку после создания.
Примите значения по умолчанию в остальных панелях.
8. Нажмите кнопку ОК.
Пример модели slrt_ex_osc_sltest
сохраняет тестовую обвязку в модели. Для доступа к тестовой обвязке из модели примера:
В Редактор на вкладке «Тест» нажмите «Управление тестовыми обвязками».
Нажмите slrt_ex_osc_sltest_Harness1
.
Чтобы вернуться к примеру модели, выберите его в ракурсе перспектив в правом нижнем углу тестовой обвязки.
Откройте тестовую обвязку slrt_ex_osc_sltest_Harness1
.
Откройте параметры конфигурации. На вкладке Real-Time нажмите Hardware Settings.
Выберите Model Referencing > Общее количество образцов, разрешенных на верхнюю часть модель > One.
Выберите Импорт/Экспорт данных > Формат > Структура с течением времени.
Выберите Импорт/Экспорт данных > Формат > Время.
Выберите Импорт/Экспорт данных > Формат > Выход.
Отменить выбор Импорт/Экспорт данных > Формат > Состояния.
Отменить выбор Импорт/Экспорт данных > Формат > Окончательные состояния.
Отменить выбор Импорт/Экспорт данных > Формат > логгирование сигналов.
Отменить выбор Импорт/Экспорт данных > Формат > Хранилища данных.
Отменить выбор Импорт/Экспорт данных > Формат > Журнал данных набора данных в файл.
Откройте блок Test Assessment.
Чтобы упростить строение оценки теста, в списке Входных символов замените входные Outport
с входами Int1
и SigGen
.
В slrt_ex_osc_sltest_Harness1
, соедините блок Demux с slrt_ex_osc_sltest/Outport
.
В диалоговое окно блока Demux установите значение Number of выходов равным 2
.
Чтобы сделать выходы Demux видимыми для блока Test Assessment, соедините унитарные блоки Gain с каждым из выходов Demux.
Подключите верхний блок выхода Demux к Test Assessment/Int1
и нижний выход для Test Assessment/SigGen
.
Откройте Model Explorer. На вкладке Моделирование (Modeling) перетащите вниз раздел Проект (Design) и щелкните Обозреватель модели (Model Explorer).
Щелкните узел slrt_ex_osc_sltest_Harness1 > Рабочее рабочее пространство модели.
На панели инструментов нажмите кнопку Add Simulink Parameter.
Добавьте следующий объект данных:
Имя - критерий
Значение - 0
DataType - double
Класс памяти - ExportedGlobal
5. Аналогичным образом добавьте параметры Simulink w_open и w_close. Потому что эти параметры в slrt_ex_osc_sltest_Harness1
моделируйте рабочую область как параметры модели, вы получаете к ним доступ по имени непосредственно, без иерархии модели.
6. Сохраните модель.
1. Откройте блок Test Assessment
2. Добавьте эти параметры в список символов параметра:
Критерий
w_open
w_close
3. Чтобы добавить шаг, в столбце Шаг переместите курсор в верхнюю строку, нажмите Добавить шаг после и введите:
CheckSetting
4. Щелкните правой кнопкой мыши по шагу CheckSetting
и установите флажок Когда разложение.
5. Чтобы добавить подэтп к CheckSetting
, щелкните Добавить подэтапа и введите:
Hi when (SigGen > 0)
Выражение while выбирает половину формы волны.
6. Щелкните правой кнопкой мыши по Hi when
и установите флажок Когда разложение.
7. К подэтапу Hi when
, добавить substep:
HiCheck when ((et >= w_open) && (et <= w_close)) verify((abs(Int1) >= abs(SigGen) * (1.0 - Criterion)) && ... (abs(Int1) <= abs(SigGen) * (1.0 + Criterion)));
Выражение when выбирает временное окно для проверки критерия приемки. Команда verify проверяет критерий приемки.
8. Подобным образом, к шагу CheckSetting
, добавить substep:
Lo when (SigGen < 0)
9. К подэтапу Lo when
, добавить substep:
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. Чтобы удовлетворить требованиям When decomposition, удалите Run
по умолчанию шаг и вставка
DefaultStep
подэтапы после шагов CheckSetting
, Hi when
, и Lo when
. Когда разложение требует как минимум двух шагов на каждом уровне вложения и одного неразложенного шага в конце каждого списка шагов.
Нажмите на slrt_ex_osc_sltest
подсистема.
На вкладке Apps нажмите Simulink Test.
На вкладке Test нажмите Test Manager.
Выберите «Создать» > «Тестовый файл».
Назовите тестовый файл realtimetest
.
Щелкните правой кнопкой мыши тестовый файл и выберите New > Real-Time Test.
В новом диалоговом окне тестирования в реальном времени введите Simulation
в поле Тип теста.
Нажмите кнопку Создать.
Переименуйте новый тестовый набор в realtimesuite
.
Переименуйте новый тест в frequencysweep
.
В Диспетчере тестов выберите узел с частотами.
Выберите вкладку Система в процессе тестирования.
Установите значение приложения загрузки из Model
.
Установите модель в slrt_ex_osc_sltest
.
Установите целевой компьютер на TargetPC1
.
На вкладке Тестовой обвязки установите Обвязку равным slrt_ex_osc_sltest_Harness1
.
На вкладке Simulation Settings Overrides установите флажок Время Остановки.
Примите значения по умолчанию для других полей.
В Диспетчере тестов выберите вкладку Параметра». е флажок Вре
Нажмите кнопку «Добавить». Откроется диалоговое окно, содержащее список параметров. Если параметры не видны, нажмите кнопку «Обновить линию» в верхней части диалогового окна. Обновление создает модель и загружает модель и параметры блоков из slrt_ex_osc_sltest_Harness1
и slrt_ex_osc_sltest
.
Откройте Набор параметров 1 и установите флажки Критерий, Частота, 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
Окно закрывается один раз в каждом полупериоде.
В Диспетчере тестов выберите вкладку Итерации > Итерации сценариев.
В текстовом поле введите следующий код. Чтобы изменить размер текстового поля 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.
Чтобы просмотреть результаты тестирования, в левом столбце щелкните Результаты и программные продукты. В этом случае тест не прошел проверку на итерации 23 Гц.
Чтобы просмотреть результаты сбоя, откройте узлы 23 Гц > Проверить операторы и 23 Гц > Выход Sim (slrt_ex_osc_sltest).
На панели Данных моделирования Inspector нажмите кнопку Размещения.
Выберите два горизонтальных отображения.
В Данные моделирования Inspector верхней части отображения выберите два Out
флажки и верхний флажок Оценка теста. Эта оценка соответствует HiCheck
substep.
На нижнем отображении выберите два Out
флажки и нижний флажок Оценка теста. Эта оценка соответствует LoCheck
substep.
Нажмите кнопку Масштабирование во времени и выберите область значений 4.00-4.1
.
На верхнем отображении красная линия около 4.04
следующая горизонтальная зеленая линия показывает, что HiCheck
тест кратковременно завершился неуспешно. На нижнем отображении вертикальный красный шип около 4.02
следующая горизонтальная зеленая линия показывает, что LoCheck
тест кратковременно завершился неуспешно.
Test Assessment (Simulink Test) | Test Sequence (Simulink Test)