Систему можно протестировать в средах, напоминающих приложение. Начните с моделирования модели на компьютере разработчика, а затем используйте моделирование программного обеспечения в цикле (SIL) и процессора в цикле (PIL). Тестирование в реальном времени выполняет приложение на автономном целевом компьютере, которое может подключаться к физической системе. Тестирование в реальном времени может включать эффекты синхронизации, сигнальных интерфейсов, отклика системы и производственного оборудования.
Тестирование в реальном времени включает в себя:
Быстрое создание прототипов, которое тестирует систему на автономной цели, подключенной к оборудованию завода. Тесты в реальном времени проверяются на соответствие требованиям и результатам модели. Используя результаты быстрого прототипирования, можно изменить модель и обновить требования, после чего выполнить повторное тестирование автономной цели.
Аппаратное обеспечение в цикле (HIL) с использованием Simulink ® Real-Time™, которое тестирует систему, прошедшую несколько этапов проверки, как правило, моделирование SIL и PIL.
В этом примере workflow-процесса описываются основные шаги создания и выполнения теста в реальном времени:
Создание тестовых примеров, проверяющих модель на соответствие требованиям. Выполните тесты моделирования модели и сохраните данные опорной структуры.
Настройка целевого компьютера в реальном времени.
Создание тестовых жгутов для тестирования в реальном времени или повторное использование тестовых жгутов моделирования модели. В блоках тестовой последовательности или тестовой оценки, verify операторы оценивают выполнение в реальном времени. В тестовых жгутах используйте целевые области и области хоста для отображения сигналов во время выполнения.
В диспетчере тестов создайте тестовые примеры в реальном времени.
Для тестовых примеров в реальном времени настройте целевые параметры, входы, обратные вызовы и итерации. Добавьте критерии базовой линии или эквивалентности.
Выполните тесты в реальном времени.
Проанализируйте результаты в диспетчере тестов. Сообщите о результатах.
Сравнение базовой линии или эквивалентности может завершиться неудачей из-за отсутствия данных или смещенных во времени данных с целевого компьютера в реальном времени. При исследовании сбоев тестирования в режиме реального времени следует искать временные сдвиги или отсутствующие точки данных.
Нельзя переопределить время выполнения в реальном времени для приложений, построенных из моделей, содержащих блок тестовой последовательности. Код, сгенерированный для блока тестовой последовательности, содержит жестко закодированное время выборки. Переопределение времени выборки целевого компьютера может привести к неожиданным результатам.
Нельзя регистрировать выходные порты или состояния.
Конечный компьютер должен иметь файловую систему для использования verify операторы и регистрация тестовых случаев.
На целевом компьютере должен быть запущен Simulink Real-Time.
Тестирование в реальном времени часто занимает больше времени, чем тестирование сравнительной модели, особенно при выполнении набора тестов в реальном времени, охватывающих несколько сценариев. Перед выполнением тестов в режиме реального времени выполните тестирование на основе требований с помощью моделирования рабочего стола. Использование результатов моделирования рабочего стола:
Отладка модели или внесение изменений в конструкцию, соответствующих требованиям.
Отладка тестовой последовательности. Используйте функции отладки в редакторе тестовых последовательностей. См. раздел Отладка тестовой последовательности.
Обновите свои требования и добавьте соответствующие тестовые примеры.
Для тестирования в реальном времени требуется автономный целевой компьютер. Simulink Test™ поддерживает только целевые компьютеры под управлением Simulink Real-Time. Дополнительные сведения см. в разделе:
Настройки целевого компьютера (Simulink Real-Time)
Устранение неполадок в Simulink Real-Time (Simulink Real-Time)
Приложения реального времени требуют определенных параметров конфигурации и свойств сигнала.
Для тестового случая в реальном времени требуется целевой файл системы в реальном времени. В параметрах конфигурации модели или кабеля на вкладке Приложения (Apps) в разделе Создание кода (Code Generation) щелкните Кодер Simulink (Simulink Coder). На вкладке C Code убедитесь, что системный целевой файл slrealtime.tlc. Если кнопка в разделе «Вывод» имеет значение «Пользовательский целевой объект», нажмите эту кнопку и убедитесь, что параметр «Пользовательский целевой объект» имеет значение slrealtime.tlc. Если это не так, выберите Выбрать системный целевой файл и выберите slrealtime.tlc для формирования целевого кода системы.
Если для модели требуется другой целевой системный файл, можно задать параметр с помощью тестового случая или обратного вызова набора тестов. После выполнения теста в реальном времени установите параметр в исходное значение с помощью обратного вызова очистки. Например, этот обратный вызов открывает sltestProjectorController модель и устанавливает для параметра целевого файла системы значение slrealtime.tlc .
open_system('sltestProjectorController'); set_param('sltestProjectorController',... 'SystemTargetFile','slrealtime.tlc');
Модели должны использовать формат данных, отличный от dataset. Чтобы задать формат данных:
Откройте параметры конфигурации.
Выберите панель Импорт/экспорт данных.
Выберите формат.
Чтобы настроить интересующие сигналы для тестирования в реальном времени:
Включите ведение журнала сигналов в окне Параметры конфигурации (Configuration Parameters) на панели Импорт/экспорт данных (Data Import/Export).
Подключите сигналы к блокам области из библиотеки блоков Simulink Real-Time. Задайте для свойства Scope type значение File.
Назовите каждый интересующий сигнал с помощью свойств сигнала. Неназванным сигналам может быть присвоено имя по умолчанию, которое не совпадает с именем базовой линии или сигнала эквивалентности.
В этом примере тестового жгута регистрируемые сигналы:
Иметь явные имена.
Используйте области файлов для возврата данных сигнала в диспетчер тестирования.
Используйте целевые области для отображения данных на целевом компьютере.

Для отображения сигналов на целевом компьютере во время выполнения в реальном времени добавьте целевые области в тестовый жгут. Для отображения сигналов в обозревателе Simulink Real-Time добавьте области хоста. Этот тестовый жгут включает как целевую область, так и область хоста для визуализации сигнала. См. раздел Область.

Используйте Диспетчер тестов для создания тестовых примеров в реальном времени.
На панели инструментов Simulink на вкладке Apps в разделе Model Verification, Validation и Test выберите Simulink Test.
Щелкните Диспетчер испытаний Simulink.
В диспетчере тестов выберите New > Real-Time Test.
Можно выбрать базовую линию, эквивалентность или имитационный тест в реальном времени. Для типов имитационных испытаний, verify операторы служат критериями прохождения/неуспешности в результатах теста. Для типов испытаний эквивалентности и базовой линии критерии эквивалентности или базовой линии также служат критериями прохождения/неуспешного завершения.
Базовая линия - сравнивает данные сигнала, возвращенные с целевого компьютера, с базовой линией в тестовом случае. Чтобы сравнить результат выполнения в реальном времени с результатом моделирования модели, добавьте результат базовой линии модели к тестовому случаю в реальном времени и примените дополнительные допуски к сигналам.
Эквивалентность - сравнение данных сигнала от моделирования и теста в реальном времени или двух тестов в реальном времени. Чтобы выполнить тест в реальном времени на целевом компьютере, сравните результаты с моделированием модели:
Выберите Моделирование 1 на цели.
Снимите флажок «Моделирование 2» для цели.
В тестовом примере отображаются две секции моделирования: Simulation 1 и Simulation 2.
Сравнение двух тестов в реальном времени аналогично, за исключением того, что вы выбираете оба моделирования на цели. В разделе Критерии эквивалентности (Equivalence Criteria) можно фиксировать регистрируемые сигналы из моделирования и применять допуски для анализа проходов/отказов.
Моделирование: Оценка результата теста только с использованием verify операторы и выполнение в реальном времени. Если нет verify операторы завершаются неуспешно, и тест в реальном времени выполняется, тестовый случай проходит.
С помощью этого параметра укажите способ загрузки приложения в реальном времени. Приложение реального времени создается на основе модели или тестового жгута. Приложение можно загрузить из:
Модель - Выбрать Model если тест в реальном времени выполняется впервые, или модель изменилась с момента последнего выполнения в реальном времени. Model обычно занимает больше всего времени, поскольку включает сборку и загрузку модели. Model загружает приложение из модели, создает приложение в реальном времени, загружает его на целевой компьютер и выполняет на целевом компьютере.
Целевое приложение - Выбрать Target Application для отправки целевого приложения с хоста на целевой компьютер и выполнения приложения. Target Application может оказаться полезным, если вы хотите загрузить уже созданное приложение на несколько целевых объектов.
Целевой компьютер - этот параметр выполняет приложение, которое уже загружено на целевой компьютер в реальном времени. Можно обновить параметры в тестовом случае и выполнить с помощью Target Computer.
В этой таблице представлены шаги и обратные вызовы, выполняемые для каждого параметра.
| Шаг выполнения тестового случая (первый до последнего) | Загрузить приложение из | ||
|---|---|---|---|
| Модель | Целевое приложение | Целевой компьютер | |
| Выполняет обратный вызов перед загрузкой | Да | Да | Да |
| Нагрузки модели Simulink | Да | Нет | Нет |
| Выполняет обратный вызов после загрузки | Да | Нет | Нет |
| Настройка сценария редактора сигналов | Да | Нет | Нет |
| Создание приложения реального времени на основе модели | Да | Нет | Нет |
| Загрузка приложения в реальном времени на целевой компьютер | Да | Да | Нет |
| Установка параметров среды выполнения | Да | Да | Да |
| Выполнение сценариев тестовой последовательности | Да | Нет | Нет |
| Выполняет предварительный обратный вызов в реальном времени | Да | Да | Да |
| Выполняет приложение в реальном времени | Да | Да | Да |
| Выполняет обратный вызов очистки | Да | Да | Да |
Выберите модель для создания приложения реального времени.
Если тестовый электрический жгут используется для создания приложения в реальном времени, выберите тестовый электрический жгут.
Для тестов в реальном времени можно переопределить время остановки моделирования, что может быть полезно при отладке сбоя теста в реальном времени. Рассмотрим 60-секундный тест, который возвращает verify сбой оператора через 15 секунд из-за ошибки в модели. После отладки модели выполните тест в реальном времени для проверки исправления. Можно переопределить время остановки для завершения выполнения через 20 секунд, что сокращает время проверки исправления.
Тесты в реальном времени предлагают предварительный обратный вызов приложения в реальном времени, который выполняет команды непосредственно перед выполнением приложения на целевом компьютере. Обратные вызовы в режиме реального времени выполняются в последовательности с загрузкой, построением, загрузкой и выполнением модели. Обратные вызовы и выполнение шага зависят от того, как тестовый случай загружает приложение.
| Последовательность | Загрузить приложение из: Модель | Загрузить приложение из: Целевое приложение | Загрузить приложение из: Целевой компьютер |
|---|---|---|---|
| Выполняется первым | Обратный вызов перед загрузкой | Обратный вызов перед загрузкой | Обратный вызов перед загрузкой |
Обратный вызов после загрузки | — | — | |
Предварительный обратный вызов в реальном времени | Предварительный обратный вызов в реальном времени | Предварительный обратный вызов в реальном времени | |
| Выполняет последнее | Обратный вызов очистки | Обратный вызов очистки | Обратный вызов очистки |
Итерации можно выполнять в тестах реального времени. Итерации удобны для выполнения тестов в реальном времени, которые просвечивают значения параметров или сценарии редактора сигналов. Результаты будут сгруппированы по итерациям. Дополнительные сведения о настройке итераций см. в разделе Тестовые итерации. Можно создать:
Вложенные итерации из набора параметров (Tabled iterations from a parameter set) - определение нескольких наборов параметров в разделе «Переопределения параметров» (Parameter Overrides) тестового случая. В разделе Итерации (Iterations) > Итерации таблицы (Table Iterations) щелкните Автогенерация (Auto Generate) и выберите Набор параметров (Parameter Set).
Вложенные итерации из сценариев редактора сигналов (Tabled iterations from Signal Editor) - если в модели или тестовом кабельном жгуте используется входной сигнал редактора сигналов, под таблицей Итерации (Iterations) Итерации таблицы (Table Iterations) щелкните Автогенерация (Auto Generate) и выберите Сценарий редактора сигналов (Signal Editor). При использовании сценария редактора сигналов загрузите приложение из модели.
Вложенные итерации из сценариев тестовой последовательности - если тестовый жгут использует сценарии блоков тестовой последовательности, можно создать итерацию для каждого сценария в диспетчере тестов. Под таблицей Итерации (Iterations) щелкните Автогенерация (Auto Generate) и выберите Сценарий тестовой последовательности (Test Sequence Scription). При использовании сценариев тестовой последовательности загрузите приложение из модели.
Итерации по сценарию - использование сценариев для итерации с использованием переменных или параметров модели. Например, в модели sltestRealTimeOscillatorTestExample, SettlingTest harness использует блок тестовой последовательности для создания квадратного волнового тестового сигнала для системы генератора с использованием параметра frequency.


В тестовом файле SettlingTestCasesитерации с тестовым сценарием в реальном времени охватывают сдвиг частоты от 5 Гц до 35 Гц. Сценарий итерирует значение frequency в блоке Тестовая последовательность.
%% 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 заявления. A verify оператор оценивает логическое выражение и возвращает результаты в диспетчер тестов. Использовать verify внутри блока тестовой последовательности или тестовой оценки или, если у вас есть лицензия Stateflow ®, в диаграмме Stateflow. См. раздел Оценка моделирования модели с использованием операторов проверки.
