Можно протестировать систему в средах, которые напоминают приложение. Вы начинаете с симуляции модели на компьютере разработчика, затем используете программное обеспечение в цикле (SIL) и процессор в цикле (PIL) симуляции. Тестирование в реальном времени выполняет приложение на автономном целевом компьютере, который может соединиться с физической системой. Тестирование в реальном времени может включать эффекты синхронизации, интерфейсов сигнала, отклика системы и производственного оборудования.
Тестирование в реальном времени включает:
Быстрое прототипирование, которое тестирует систему на автономной цели, соединенной с оборудованием объекта. Вы проверяете тесты в реальном времени по требованиям и результатам модели. Используя результаты быстрого прототипирования, можно изменить модель и обновить требования, после которых вы повторно тестируете на автономной цели.
Оборудование в цикле (HIL) использование Simulink® Real-Time™, который тестирует систему, которая передала несколько этапов верификации, обычно SIL симуляций и PIL симуляций.
Этот рабочий процесс в качестве примера описывает существенные шаги создания и выполнения теста в реальном времени:
Создайте тесты, которые проверяют модель по требованиям. Запустите тесты симуляции модели и сохраните базовые данные.
Настройте целевой компьютер в реальном времени.
Создайте тестовые обвязки для тестирования в реальном времени или тестовые обвязки симуляции модели повторного использования. В Test Sequence или блоках Test Assessment, verify
операторы оценивают выполнение в реальном времени.
В менеджере по Тесту создайте тесты в реальном времени.
Для тестов в реальном времени сконфигурируйте целевые настройки, входные параметры, коллбэки и итерации. Добавьте базовые или эквивалентные критерии.
Выполните тесты в реальном времени.
Анализируйте результаты в менеджере по Тесту. Сообщите о результатах.
Базовые или эквивалентные сравнения могут перестать работать из-за недостающих данных или переключенных временем данных из целевого компьютера в реальном времени. При исследовании непройденных тестов в реальном времени ищите временные сдвиги или пропускающий точки данных.
Вы не можете заменить шаг расчета выполнения в реальном времени для приложений, созданных из моделей, содержащих блок Test Sequence. Код, сгенерированный для блока Test Sequence, содержит трудно закодированный шаг расчета. Переопределение шага расчета целевого компьютера может привести к неожиданным результатам.
Вы не можете регистрировать выходные порты или состояния.
Ваш целевой компьютер должен иметь файловую систему, чтобы использовать verify
операторы и логгирование теста.
Ваш целевой компьютер должен запускать Simulink Real-Time.
Тестирование в реальном времени часто занимает больше времени, чем сравнительное тестирование модели, особенно если вы выполняете набор тестов в реальном времени то покрытие несколько сценариев. Прежде, чем выполнить тесты в реальном времени, завершите основанное на требованиях тестирование с помощью настольной симуляции. Используя настольные результаты симуляции:
Отладьте свою модель или сделайте конструктивные изменения, которые удовлетворяют требования.
Отладьте свою тестовую последовательность. Используйте функции отладки в Тестовом Редакторе Последовательности. Смотрите Отладку Тестовая Последовательность.
Обновите свои требования и добавьте соответствующие тесты.
Тестирование в реальном времени требует автономного целевого компьютера. Simulink Test™ только поддерживает целевые компьютеры рабочий Simulink Real-Time. Для получения дополнительной информации см.:
Настройки целевого компьютера (Simulink Real-Time)
Поиск и устранение проблем в Simulink Real-Time (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
. Установить формат данных:
Откройте параметры конфигурации.
Выберите панель Data Import/Export.
Выберите Format.
Сконфигурировать ваши представляющие интерес сигналы для тестирования в реальном времени:
Включите сигнал, входящий в систему Параметры конфигурации в панели Импорта/Экспорта Данных.
Назовите каждый сигнал интереса с помощью свойств сигнала. Сигналы без имени могут быть присвоены имя по умолчанию, которое не совпадает с именем базового или эквивалентного сигнала. В этой тестовой обвязке в качестве примера регистрируемые сигналы имеют явные имена.
Используйте менеджера по Тесту, чтобы создать тесты в реальном времени.
В панели инструментов Simulink, на вкладке Apps под Model Verification, Валидация и Тест, выбирают Simulink Test.
Нажмите Simulink Test Manager.
В менеджере по Тесту выберите 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
.
В тестовом файле можно использовать заданные сценарием итерации теста в реальном времени, чтобы покрыть развертку частоты от 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. Смотрите Оценивают Симуляцию модели Используя, проверяют Операторы.