Тестовые модели в режиме реального времени

Можно протестировать систему в средах, которые напоминают приложение. Вы начинаете с симуляции модели на компьютере разработчика, затем используете программное обеспечение в цикле (SIL) и процессор в цикле (PIL) симуляции. Тестирование в реальном времени выполняет приложение на автономном целевом компьютере, который может соединиться с физической системой. Тестирование в реальном времени может включать эффекты синхронизации, интерфейсов сигнала, отклика системы и производственного оборудования.

Тестирование в реальном времени включает:

  • Быстрое прототипирование, которое тестирует систему на автономной цели, соединенной с оборудованием объекта. Вы проверяете тесты в реальном времени по требованиям и результатам модели. Используя результаты быстрого прототипирования, можно изменить модель и обновить требования, после которых вы повторно тестируете на автономной цели.

  • Оборудование в цикле (HIL) использование Simulink® Real-Time™, который тестирует систему, которая передала несколько этапов верификации, обычно SIL симуляций и PIL симуляций.

Полный рабочий процесс

Этот рабочий процесс в качестве примера описывает существенные шаги создания и выполнения теста в реальном времени:

  1. Создайте тесты, которые проверяют модель по требованиям. Запустите тесты симуляции модели и сохраните базовые данные.

  2. Настройте целевой компьютер в реальном времени.

  3. Создайте тестовые обвязки для тестирования в реальном времени или тестовые обвязки симуляции модели повторного использования. В Test Sequence или блоках Test Assessment, verify операторы оценивают выполнение в реальном времени.

  4. В менеджере по Тесту создайте тесты в реальном времени.

  5. Для тестов в реальном времени сконфигурируйте целевые настройки, входные параметры, коллбэки и итерации. Добавьте базовые или эквивалентные критерии.

  6. Выполните тесты в реальном времени.

  7. Анализируйте результаты в менеджере по Тесту. Сообщите о результатах.

Факторы тестирования в реальном времени

  • Базовые или эквивалентные сравнения могут перестать работать из-за недостающих данных или переключенных временем данных из целевого компьютера в реальном времени. При исследовании непройденных тестов в реальном времени ищите временные сдвиги или пропускающий точки данных.

  • Вы не можете заменить шаг расчета выполнения в реальном времени для приложений, созданных из моделей, содержащих блок Test Sequence. Код, сгенерированный для блока Test Sequence, содержит трудно закодированный шаг расчета. Переопределение шага расчета целевого компьютера может привести к неожиданным результатам.

  • Вы не можете регистрировать выходные порты или состояния.

  • Ваш целевой компьютер должен иметь файловую систему, чтобы использовать verify операторы и логгирование теста.

  • Ваш целевой компьютер должен запускать Simulink Real-Time.

Полное тестирование базовой модели

Тестирование в реальном времени часто занимает больше времени, чем сравнительное тестирование модели, особенно если вы выполняете набор тестов в реальном времени то покрытие несколько сценариев. Прежде, чем выполнить тесты в реальном времени, завершите основанное на требованиях тестирование с помощью настольной симуляции. Используя настольные результаты симуляции:

  • Отладьте свою модель или сделайте конструктивные изменения, которые удовлетворяют требования.

  • Отладьте свою тестовую последовательность. Используйте функции отладки в Тестовом Редакторе Последовательности. Смотрите Отладку Тестовая Последовательность.

  • Обновите свои требования и добавьте соответствующие тесты.

Настройте Целевой компьютер

Тестирование в реальном времени требует автономного целевого компьютера. Simulink Test™ только поддерживает целевые компьютеры рабочий Simulink Real-Time. Для получения дополнительной информации см.:

Сконфигурируйте модель или тестовую обвязку

Приложения реального времени требуют определенных параметров конфигурации и свойств сигнала.

Генерация кода

Тест в реальном времени требует конечного файла системы реального времени. В модели или параметрах конфигурации обвязки, на вкладке Apps, под Генерацией кода, нажимают Simulink Coder. Во вкладке C Code проверьте, что системным конечным файлом является slrealtime.tlc. Если кнопкой в разделе Output является Custom Target, нажмите ту кнопку и проверьте, что Custom target является slrealtime.tlc. Если это не, выберите Select system target file и выберите slrealtime.tlc чтобы сгенерировать систему предназначаются для кода.

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

openExample('sltestProjectorController');
set_param('sltestProjectorController',...
   'SystemTargetFile','slrealtime.tlc');

Импорт/Формат экспорта данных

Модели должны использовать формат данных кроме dataset. Установить формат данных:

  1. Откройте параметры конфигурации.

  2. Выберите панель Data Import/Export.

  3. Выберите Format.

Регистрируйте сигналы от выполнения в реальном времени

Сконфигурировать ваши представляющие интерес сигналы для тестирования в реальном времени:

  • Включите сигнал, входящий в систему Параметры конфигурации в панели Импорта/Экспорта Данных.

  • Назовите каждый сигнал интереса с помощью свойств сигнала. Сигналы без имени могут быть присвоены имя по умолчанию, которое не совпадает с именем базового или эквивалентного сигнала. В этой тестовой обвязке в качестве примера регистрируемые сигналы имеют явные имена.

Test harness showing logged signals

Добавьте тесты для тестирования в реальном времени

Используйте менеджера по Тесту, чтобы создать тесты в реальном времени.

  1. В панели инструментов Simulink, на вкладке Apps под Model Verification, Валидация и Тест, выбирают Simulink Test.

  2. Нажмите Simulink Test Manager.

  3. В менеджере по Тесту выберите New> Real-Time Test.

Протестируйте тип

Можно выбрать базовую линию, эквивалентность или симуляцию тест в реальном времени. Поскольку симуляция тестирует типы, verify операторы служат критериями передачи/сбоя в результатах испытаний. Для эквивалентных и базовых тестовых типов эквивалентные или базовые критерии также служат критериями передачи/сбоя.

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

  • Equivalence — Сравнивает данные сигнала от симуляции и теста в реальном времени или двух тестов в реальном времени. Чтобы запустить тест в реальном времени на целевом компьютере, затем сравните результаты с симуляцией модели:

    • Выберите Simulation 1 on target.

    • Очистите Simulation 2 on target.

    Тест отображает два раздела симуляции, Simulation 1 и Simulation 2.

    Сравнение двух тестов в реальном времени подобно, за исключением того, что вы выбираете обе симуляции на цели. В разделе Equivalence Criteria можно получить регистрируемые сигналы от симуляции и применить допуски к анализу передачи/сбоя.

  • Simulation: Оценивает результат испытаний с помощью только verify операторы и выполнение в реальном времени. Если никакой verify сбой операторов и тест в реальном времени выполняются, передачи теста.

Загрузите приложение от

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

  • Model — Выберите Model если вы запускаете тест в реальном времени впервые или вашу модель, измененную начиная с последнего выполнения в реальном времени. Model обычно берет самое длинное, потому что это включает сборку модели и загрузку. Model загружает приложение из модели, создает приложение реального времени, загружает его на целевой компьютер и выполняет его на целевом компьютере.

  • Target Application — Выберите Target Application послать целевое заявление от хоста до целевого компьютера и выполнить приложение. Target Application может быть полезным, если вы хотите загрузить уже созданное приложение на нескольких целях.

  • Target Computer — Эта опция выполняет приложение, которое уже загружается на целевом компьютере в реальном времени. Можно обновить параметры в тесте и выполнить использование Target Computer.

Эта таблица суммирует, какие шаги и коллбэки выполняются для каждой опции.

Шаг Выполнения Теста (сначала, чтобы продлиться)Загрузите приложение от
МодельЦелевое приложениеЦелевой компьютер
Выполняет коллбэк предварительной нагрузкиДаДаДа
Модель Loads SimulinkДаНетНет
Выполняет коллбэк постзагрузкиДаНетНет
Редактор Сигнала наборов сценарийДаНетНет
Приложение реального времени сборок из моделиДаНетНет
Приложение реального времени загрузок к целевому компьютеруДаДаНет
Устанавливает параметры периода выполненияДаДаДа
Тестовые сценарии Последовательности запусковДаНетНет
Выполняется предварительно запускают коллбэк в реальном времениДаДаДа
Выполняет приложение реального времени ДаДаДа
Выполняет коллбэк очисткиДаДаДа

Модель

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

Тестовая обвязка

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

Переопределения настроек симуляции

Для тестов в реальном времени можно заменить время остановки симуляции, которое может быть полезным в отладке непройденного теста в реальном времени. Рассмотрите 60-секундный тест, который возвращает verify отказ оператора в 15 секунд из-за ошибки в модели. После отладки вашей модели вы выполняете тест в реальном времени, чтобы проверить фиксацию. Можно заменить время остановки, чтобы отключить выполнение в 20 секунд, которое уменьшает время, которое требуется, чтобы проверить фиксацию.

Коллбэки

Тесты в реальном времени предлагают коллбэк Pre-start real-time application, который выполняет команды непосредственно перед тем, как приложение выполняется на целевом компьютере. Тестовые коллбэки в реальном времени выполняются в последовательности наряду с загрузкой модели, сборкой, загружают и выполняют шаги. Выполнение коллбэков и шага зависит от того, как тест загружает приложение.

Последовательность

Загрузите приложение от:

Модель

Загрузите приложение от:

Целевое приложение

Загрузите приложение от:

Целевой компьютер

Выполняется сначала

Preload callback

Preload callback

Preload callback

 

Post-load callback

 

Pre-start real-time callback

Pre-start real-time callback

Pre-start real-time callback

Выполняется в последний раз

Cleanup callback

Cleanup callback

Cleanup callback

Итерации

Можно выполниться, итерации в режиме реального времени тестирует. Итерации удобны для выполнения тестов в реальном времени, которые развертываются через значения параметров или сценарии Редактора Сигнала. Результаты кажутся сгруппированными итерацией. Для получения дополнительной информации о подготовке итераций смотрите Тестовые Итерации. Можно создать:

  • Представленные в виде таблицы итерации от набора параметров — Задают несколько наборов параметров в разделе Parameter Overrides теста. Под Iterations> Table Iterations, нажмите Auto Generate и выберите Parameter Set.

  • Представленные в виде таблицы итерации из сценариев Редактора Сигнала — Если ваша модель или тестовая обвязка используют вход Signal Editor ниже таблицы Iterations Table Iterations, нажимают Auto Generate и выбирают Signal Editor Scenario. Если вы используете сценарий Редактора Сигнала, загружаете приложение из модели.

  • Представленные в виде таблицы итерации из Тестовых сценариев Последовательности — Если ваша тестовая обвязка использует сценарии блока Test Sequence, можно создать итерацию для каждого сценария в менеджере по Тесту. Ниже таблицы Iterations нажмите Auto Generate и выберите Test Sequence Scenario. Если вы используете Тестовые сценарии Последовательности, загружаете приложение из модели.

  • Итерации в виде сценария — скрипты Использования, чтобы выполнить итерации переменных модели использования или параметров. Например, примите, что вы тестируете систему генератора и используете блок Test Sequence, чтобы создать тестовый сигнал прямоугольной волны с помощью параметра frequency.

    Test sequence scenario

    В тестовом файле можно использовать заданные сценарием итерации теста в реальном времени, чтобы покрыть развертку частоты от 5 Гц до 35 Гц. Скрипт выполняет итерации значения frequency в блоке Test Sequence.

    %% Iterate over frequencies to determine best oscillator settings
    
    % Create parameter sets
    freq = 5.0:1.0:35.0;
    
    for i_iter = 1:length(freq)
        % Create iteration object
        testItr = sltestiteration();
        
        % Set parameters
        setVariable(testItr,'Name','frequency','Source',...
        'Test Sequence','Value',freq(i_iter));
        
        % Register iteration
        addIteration(sltest_testCase, testItr);
    end
    

Оцените выполнение в реальном времени Используя verify Операторы

В дополнение к базовой линии и сравнениям сигнала эквивалентности, можно оценить выполнение теста в реальном времени с помощью verify операторы. verify оператор оценивает логическое выражение и возвращает результаты менеджеру по Тесту. Используйте verify в блоке Test Sequence или Test Assessment или, если у вас есть Stateflow® лицензия, в диаграмме Stateflow. Смотрите Оценивают Симуляцию модели Используя, проверяют Операторы.

Test results for verify statements

Похожие темы