Можно протестировать систему в средах, которые напоминают приложение. Вы начинаете с симуляции модели на компьютере разработчика, затем используете программное обеспечение в цикле (SIL) и процессоре в цикле (PIL) симуляции. Тестирование в реальном времени выполняет приложение на автономном целевом компьютере, который может соединиться с физической системой. Тестирование в реальном времени может включать эффекты синхронизации, интерфейсов сигнала, отклика системы и производственного оборудования.
Тестирование в реальном времени включает:
Быстрое прототипирование, которое тестирует систему на автономной цели, соединенной с оборудованием объекта. Вы проверяете тесты в реальном времени по требованиям и образцовым результатам. Используя результаты быстрого прототипирования, можно изменить модель и обновить требования, после которых вы повторно тестируете на автономной цели.
Оборудование в цикле (HIL), который тестирует систему, которая передала несколько этапов верификации, обычно SIL и PIL симуляции.
Этот рабочий процесс в качестве примера описывает существенные шаги создания и выполнения теста в реальном времени:
Создайте тесты, которые проверяют модель по требованиям. Запустите тесты симуляции модели и сохраните базовые данные.
Настройте целевой компьютер в реальном времени.
Создайте тестовые обвязки для тестирования в реальном времени или тестовые обвязки симуляции модели повторного использования. В Тестовых блоках Оценки Последовательности или Теста операторы verify
оценивают выполнение в реальном времени. В тестовых обвязках используйте цель и разместите осциллографы, чтобы отобразить сигналы во время выполнения.
В менеджере по Тесту создайте тесты в реальном времени.
Для тестов в реальном времени сконфигурируйте целевые настройки, входные параметры, коллбэки и итерации. Добавьте базовые или эквивалентные критерии.
Выполните тесты в реальном времени.
Анализируйте результаты в менеджере по Тесту. Сообщите о результатах.
Базовые или эквивалентные сравнения могут перестать работать из-за недостающих данных или переключенных временем данных из целевого компьютера в реальном времени. При исследовании непройденных тестов в реальном времени ищите временные сдвиги или пропускающий точки данных.
Вы не можете заменить шаг расчета выполнения в реальном времени для приложений, созданных из моделей, содержащих блок Test Sequence. Код, сгенерированный для блока Test Sequence, содержит трудно закодированный шаг расчета. Переопределение шага расчета целевого компьютера может привести к неожиданным результатам.
Ваш целевой компьютер должен иметь файловую систему, чтобы использовать операторы verify
и журналирование теста.
Тестирование в реальном времени часто занимает больше времени, чем сравнительное образцовое тестирование, особенно если вы выполняете комплект тестов в реальном времени то покрытие несколько сценариев. Прежде, чем выполнить тесты в реальном времени, завершите основанное на требованиях тестирование с помощью настольной симуляции. Используя настольные результаты симуляции:
Отладьте свою модель или сделайте конструктивные изменения, которые удовлетворяют требования.
Отладьте свою тестовую последовательность. Используйте функции отладки в Тестовом Редакторе Последовательности. Смотрите Отладку Тестовая Последовательность.
Обновите свои требования и добавьте соответствующие тесты.
Тестирование в реальном времени требует автономного целевого компьютера. Simulink® Test™ только поддерживает целевые компьютеры рабочий Simulink Real-Time™. Для получения дополнительной информации см.:
Setup компьютера разработчика и настройка (Simulink Real-Time)
Поиск и устранение проблем в Simulink Real-Time (Simulink Real-Time)
Приложения реального времени требуют определенных параметров конфигурации и свойств сигнала.
Тест в реальном времени требует конечного файла системы реального времени. В модели или параметрах конфигурации обвязки, в панели Code Generation, устанавливает System target file на slrt.tlc
генерировать системный целевой код.
Если ваша модель требует различного системного конечного файла, можно установить параметр с помощью коллбэка тестового набора или теста. После того, как тест в реальном времени выполняется, установите параметр на его исходную установку с коллбэком очистки. Например, этот коллбэк открывает модель и устанавливает системный параметр конечного файла на slrt.tlc
для модели sltestProjectorController
.
open_system(fullfile(matlabroot,'toolbox','simulinktest',... 'simulinktestdemos','sltestProjectorController')); set_param('sltestProjectorController','SystemTargetFile','slrt.tlc');
Модели должны использовать формат данных кроме dataset
. Установить формат данных:
Откройте параметры конфигурации.
Выберите панель Data Import/Export.
Выберите Format.
Сконфигурировать ваши представляющие интерес сигналы для тестирования в реальном времени:
Включите сигнал, входящий в систему Параметры конфигурации в панели Импорта/Экспорта Данных.
Соедините сигналы Определить объем блоков от библиотеки блоков Simulink Real-Time. Установите свойство Scope type на File
.
Назовите каждый сигнал интереса с помощью свойств сигнала. Сигналы без имени могут быть присвоены имя по умолчанию, которое не совпадает с именем базового или эквивалентного сигнала.
В этой тестовой обвязке в качестве примера, регистрируемых сигналах:
Имейте явные имена.
Используйте осциллографы файла, чтобы возвратить данные сигнала в менеджера по Тесту.
Используйте целевые осциллографы, чтобы отобразить данные по целевому компьютеру.
Чтобы отобразить сигналы на целевом компьютере во время выполнения в реальном времени, добавьте целевые осциллографы в свою тестовую обвязку. Чтобы отобразить сигналы в Simulink Real-Time Explorer, добавьте осциллографы хоста. Эта тестовая обвязка включает и цель и осциллографы хоста для визуализации сигнала. Смотрите Осциллограф.
Используйте менеджера по Тесту, чтобы создать тесты в реальном времени. В панели инструментов нажмите 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 | Да | Нет | Нет |
Выполняет коллбэк постзагрузки | Да | Нет | Нет |
Группа Signal Builder наборов | Да | Нет | Нет |
Приложение реального времени сборок из модели | Да | Нет | Нет |
Приложение реального времени загрузок к целевому компьютеру | Да | Да | Нет |
Устанавливает параметры периода выполнения | Да | Да | Да |
Выполняется предварительно запускают коллбэк в реальном времени | Да | Да | Да |
Выполняет приложение реального времени | Да | Да | Да |
Выполняет коллбэк очистки | Да | Да | Да |
Выберите модель, из которой можно сгенерировать приложение реального времени.
Если вы используете тестовую обвязку, чтобы сгенерировать приложение реального времени, выберите тестовую обвязку.
Для тестов в реальном времени можно заменить время остановки симуляции, которое может быть полезным в отладке непройденного теста в реальном времени. Рассмотрите 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 |
Можно выполниться, итерации в режиме реального времени тестирует. Итерации удобны для выполнения тестов в реальном времени, которые развертываются через группы Signal Builder или значения параметров. Результаты кажутся сгруппированными итерацией. Для получения дополнительной информации о подготовке итераций смотрите Тестовые Итерации. Можно создать:
Представленные в виде таблицы итерации от набора параметра — Задают несколько наборов параметра в разделе Parameter Overrides теста. Под Iterations> Table Iterations, нажмите Auto Generate и выберите Parameter Set.
Представленные в виде таблицы итерации от групп Signal Builder — Если ваша модель или тестовая обвязка используют вход Signal Builder под Iterations> Table Iterations, нажимают Auto Generate и выбирают Signal Builder Group. Если вы используете группу Signal Builder, загружаете приложение из модели.
Итерации в виде сценария — скрипты Использования, чтобы выполнить итерации переменных модели использования или параметров. Например, в модели sltestRealTimeOscillatorTestExample
, обвязка SettlingTest
использует блок Test Sequence, чтобы создать тестовый сигнал прямоугольной волны для системы осциллятора с помощью параметра frequency
.
В тестовом файле SettlingTestCases
заданные сценарием итерации теста в реальном времени покрывают развертку частоты от 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. Смотрите Оценивают Симуляцию модели Используя, проверяют Операторы.