Протестируйте приложение реального времени

В этом примере показано, как выполнить тест частотной характеристики модели ex_slrt_slt_osc (open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_slrt_slt_osc')))).

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

Рисунок показывает представительный выход из приложения реального времени, работающего на целевом компьютере. В низких частотах выход блока Integrator1 обосновывается к тому же значению как выход блока Signal Generator. В высоких частотах выход блока Integrator1 все еще звонит в конце каждого импульса.

Тест определяет самую высокую частоту, на которой выходные значения Интегратора и блоков Генератора Сигнала в заданном критерии друг друга. Тест использует саму модель в качестве источника сигнала и использует тестовую обвязку, чтобы сравнить выходные параметры Интегратора и блоков Генератора Сигнала.

Шаг 1. Установите параметры конфигурации модели

  1. Открытая модель ex_slrt_slt_osc в перезаписываемой папке.

  2. Откройте Параметры конфигурации. На вкладке Real-Time нажмите Hardware Settings.

  3. Выберите Model Referencing> Общее количество экземпляров, позволенных на топ-модель> Один.

  4. Выберите Data Import/Export> Format> Structure со временем.

  5. Выберите Data Import/Export> Format> Time.

  6. Выберите Data Import/Export> Format> Output.

  7. Отмените выбор Импорта/Экспорта Данных> Формат> состояния.

  8. Отмените выбор Импорта/Экспорта Данных> Формат> конечные состояния.

  9. Отмените выбор Импорта/Экспорта Данных> Формат> логгирование Сигнала.

  10. Отмените выбор Импорта/Экспорта Данных> Формат> Хранилища данных.

  11. Отмените выбор Импорта/Экспорта Данных> Формат> Логарифмические данные о Наборе данных к файлу.

Шаг 2. Создайте тестовую обвязку

  1. На вкладке Apps нажмите Simulink Test.

  2. На вкладке Test нажмите Add Test Harness for Model. Программное обеспечение создает тестовую обвязку с именем по умолчанию ex_slrt_slt_osc_Harness1.

  3. В панели Basic Properties установите флажок Save Test Harnesses Externally.

  4. Для Входа к Компоненту под Тестом выберите None.

  5. Для Выхода от Компонента под Тестом выберите Outport.

  6. Выберите Add отдельное поле проверки блока оценки.

  7. Выберите Открытую обвязку после флажка создания.

  8. Возьмите значения по умолчанию в остающихся панелях.

8. Нажать ОК.

Тестовая обвязка выглядит так фигура.

Модель ex_slrt_slt_osc в качестве примера хранит тестовую обвязку в модели. Получить доступ к тестовой обвязке из модели в качестве примера:

  1. В Редакторе Simulink, на вкладке Test, нажимают Manage Test Harnesses.

  2. Нажмите ex_slrt_slt_osc_Harness1.

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

Шаг 3. Установите параметры конфигурации тестовой обвязки

  1. Открытая тестовая обвязка ex_slrt_slt_osc_Harness1.

  2. Откройте Параметры конфигурации. На вкладке Real-Time нажмите Hardware Settings.

  3. Выберите Model Referencing> Общее количество экземпляров, позволенных на топ-модель> Один.

  4. Выберите Data Import/Export> Format> Structure со временем.

  5. Выберите Data Import/Export> Format> Time.

  6. Выберите Data Import/Export> Format> Output.

  7. Отмените выбор Импорта/Экспорта Данных> Формат> состояния.

  8. Отмените выбор Импорта/Экспорта Данных> Формат> конечные состояния.

  9. Отмените выбор Импорта/Экспорта Данных> Формат> логгирование Сигнала.

  10. Отмените выбор Импорта/Экспорта Данных> Формат> Хранилища данных.

  11. Отмените выбор Импорта/Экспорта Данных> Формат> Логарифмические данные о Наборе данных к файлу.

Шаг 4. Сконфигурируйте тестовую обвязку

  1. Откройте блок Test Assessment.

  2. Упростить тестовую настройку оценки, в списке Вводимых символов, входе Outport замены с входными параметрами Int1 и SigGen.

  3. В ex_slrt_slt_osc_Harness1, соедините блок Demux с ex_slrt_slt_osc/Outport.

  4. В диалоговом окне блока Демультиплексора, определенном Номере выходных параметров к 2.

  5. Чтобы сделать Demux выходными параметрами видимый с блоком Test Assessment, соедините унитарные блоки Усиления с каждым блоком Demux выходные параметры.

  6. Соедините главный блок Demux выход с Test Assessment/Int1 и нижняя часть выход к Test Assessment/SigGen.

Шаг 5. Сконфигурируйте параметры Simulink

  1. Откройте Model Explorer. На вкладке Modeling, выпадающей раздел Design и, нажимают Model Explorer.

  2. Кликните по узлу ex_slrt_slt_osc_Harness1> Рабочее пространство модели.

  3. На панели инструментов нажмите кнопку Add Simulink Parameter.

  4. Добавьте следующий объект данных:

  • Имя — критерий

  • Значение — 0

  • Тип данных 'double'

  • Класс памяти — ExportedGlobal

5. Подобным образом добавьте параметры Simulink w_open и w_close. Поскольку эти параметры находятся в ex_slrt_slt_osc_Harness1 рабочее пространство модели как параметры модели, вы получаете доступ к ним по наименованию непосредственно без иерархии модели.

6. Сохраните модель.

Шаг 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. Когда разложение требует по крайней мере двух шагов на каждом уровне вложения и одного неанализируемого шага в конце каждого списка шагов.

Шаг 7. Инициализируйте тестовый набор

  1. Нажмите на ex_slrt_slt_osc подсистема.

  2. На вкладке Apps нажмите Simulink Test.

  3. На вкладке Test нажмите Test Manager.

  4. Выберите New> Test File.

  5. Назовите тестовый файл realtimetest.

  6. Щелкните правой кнопкой по тестовому файлу и выберите New> Real-Time Test.

  7. В новом тестовом диалоговом окне в реальном времени введите Simulation в поле Test Type.

  8. Нажмите Create.

  9. Переименуйте новый тестовый набор к realtimesuite.

  10. Переименуйте новый тест к frequencysweep.

Шаг 8. Инициализируйте систему под тестом

  1. В менеджере по Тесту выберите узел frequencysweep.

  2. Выберите вкладку System Under Test.

  3. Установите приложение загрузки от на Model.

  4. Установите модель на ex_slrt_slt_osc.

  5. Установите целевой компьютер на TargetPC1.

  6. Во вкладке Test Harness, Обвязке набора к ex_slrt_slt_osc_Harness1.

  7. Во вкладке Simulation Settings Overrides установите флажок Stop Time.

  8. Возьмите значения по умолчанию для других полей.

Шаг 9. Инициализируйте переопределения параметра

  1. В менеджере по Тесту выберите вкладку Parameter Overrides.

  2. Нажмите кнопку Add. Диалоговое окно открывается содержащий список параметров. Если параметры не отображаются, кликните по линии Обновления наверху диалогового окна. Обновление создает модель и загружает модель и параметры блоков от ex_slrt_slt_osc_Harness1 и ex_slrt_slt_osc.

  3. Открытый Набор Параметра 1 и выбирает Criterion, Frequency, w_close, и w_open флажки. Оставьте другие флажки очищенными.

Шаг 10. Создайте итерации в виде сценария

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

Константы тестовой обвязки включают:

  • 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 Окно закрывается однажды в каждый полупериод.

  1. В менеджере по Тесту выберите вкладку Iterations> Scripted Iterations.

  2. В текстовом поле введите следующий код. Чтобы изменить размер текстового поля 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

Шаг 11. RunTest

  1. Создайте и загрузите ex_slrt_slt_osc к целевому компьютеру.

  2. В менеджере по Тесту щелкните по кнопке Run.

  3. Чтобы просмотреть результаты испытаний, в левом столбце, нажимают Results и Artifacts. В этом случае тест привел к сбою в итерации 23 Гц.

  4. Чтобы просмотреть провальные результаты, открытые узлы, 23 Гц> Проверяют Операторы и 23 Гц> Сим Аутпут (ex_slrt_slt_osc).

Шаг 12. Отображение результатов

  1. В Инспекторе Данных моделирования панель нажмите кнопку Layout.

  2. Выберите два дисплея с горизонтальный экраном.

  3. В Инспекторе Данных моделирования лучшее отображение выберите два Out флажки и главный флажок Test Assessment. Эта оценка соответствует HiCheck подшаг.

  4. В нижнем отображении выберите два Out флажки и нижний флажок Test Assessment. Эта оценка соответствует LoCheck подшаг.

  5. Кликните по увеличению кнопки времени и выберите область значений 4.00-4.1.

В лучшем отображении, вертикальной красной линии около 4.04 сопровождаемый горизонтальной зеленой линией показывает что HiCheck тест перестал работать кратко перед следованием. В нижнем отображении, вертикальном красном скачке около 4.02 сопровождаемый горизонтальной зеленой линией показывает что LoCheck тест перестал работать кратко перед следованием.

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

|

Похожие темы