Тестирование приложения реального времени

Этот пример показывает, как выполнить тест частотной характеристики модели slrt_ex_osc_sltest.

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

Откройте модель

Чтобы открыть модель, в Командном Окне MATLAB, введите:

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_osc_sltest'));

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

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

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

  1. Откройте slrt_ex_osc_sltest модели в папке с возможностью записи.

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

  3. Выберите Model Referencing > Общее количество образцов, разрешенных на верхнюю часть модель > One.

  4. Выберите Импорт/Экспорт данных > Формат > Структура с течением времени.

  5. Выберите Импорт/Экспорт данных > Формат > Время.

  6. Выберите Импорт/Экспорт данных > Формат > Выход.

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

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

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

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

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

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

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

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

  3. На панели «Основные свойства» установите флажок «Сохранить тестовые обвязки внешне».

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

  5. Для выхода из компонента в разделе «Тест» выберите Outport.

  6. Установите флажок Добавить отдельный блок оценки.

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

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

8. Нажмите кнопку ОК.

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

  1. В Редактор на вкладке «Тест» нажмите «Управление тестовыми обвязками».

  2. Нажмите slrt_ex_osc_sltest_Harness1.

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

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

  1. Откройте тестовую обвязку slrt_ex_osc_sltest_Harness1.

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

  3. Выберите Model Referencing > Общее количество образцов, разрешенных на верхнюю часть модель > One.

  4. Выберите Импорт/Экспорт данных > Формат > Структура с течением времени.

  5. Выберите Импорт/Экспорт данных > Формат > Время.

  6. Выберите Импорт/Экспорт данных > Формат > Выход.

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

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

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

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

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

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

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

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

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

  4. В диалоговое окно блока Demux установите значение Number of выходов равным 2.

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

  6. Подключите верхний блок выхода Demux к Test Assessment/Int1 и нижний выход для Test Assessment/SigGen.

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

  1. Откройте Model Explorer. На вкладке Моделирование (Modeling) перетащите вниз раздел Проект (Design) и щелкните Обозреватель модели (Model Explorer).

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

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

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

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

  • Значение - 0

  • DataType - double

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

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

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

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

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

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

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

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

  4. Выберите «Создать» > «Тестовый файл».

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

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

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

  8. Нажмите кнопку Создать.

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

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

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

  1. В Диспетчере тестов выберите узел с частотами.

  2. Выберите вкладку Система в процессе тестирования.

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

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

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

  6. На вкладке Тестовой обвязки установите Обвязку равным slrt_ex_osc_sltest_Harness1.

  7. На вкладке Simulation Settings Overrides установите флажок Время Остановки.

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

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

  1. В Диспетчере тестов выберите вкладку Параметра».е флажок Вре

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

  3. Откройте Набор параметров 1 и установите флажки Критерий, Частота, 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. В Диспетчере тестов выберите вкладку Итерации > Итерации сценариев.

  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', ...
       '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

Этап 11. Запуск теста

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

  2. В Диспетчере тестов нажмите кнопку Run.

  3. Чтобы просмотреть результаты тестирования, в левом столбце щелкните Результаты и программные продукты. В этом случае тест не прошел проверку на итерации 23 Гц.

  4. Чтобы просмотреть результаты сбоя, откройте узлы 23 Гц > Проверить операторы и 23 Гц > Выход Sim (slrt_ex_osc_sltest).

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

  1. На панели Данных моделирования Inspector нажмите кнопку Размещения.

  2. Выберите два горизонтальных отображения.

  3. В Данные моделирования Inspector верхней части отображения выберите два Out флажки и верхний флажок Оценка теста. Эта оценка соответствует HiCheck substep.

  4. На нижнем отображении выберите два Out флажки и нижний флажок Оценка теста. Эта оценка соответствует LoCheck substep.

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

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

См. также

(Simulink Test) | (Simulink Test)

Похожие темы