Экспериментальные модели в реальном времени

Можно протестировать систему в окружениях, которые напоминают ваше приложение. Вы начинаете с симуляции модели на компьютере разработчика, затем используете симуляции «цикл» (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 .

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

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

Модели должны использовать формат данных, отличный от dataset. Чтобы задать формат данных:

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

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

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

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

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

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

  • Соедините сигналы с Scope блоками из библиотеки блоков Simulink Real-Time. Установите свойство Scope type равным File.

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

В этом примере тестовой обвязки сигналы:

  • Иметь явные имена.

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

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

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

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

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

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

  1. На панели инструментов Simulink, на вкладке Apps в разделе Верификация модели, валидация и тест, выберите 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.

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

Шаг выполнения теста (первый до последнего)Загрузка приложения из
МодельЦелевое приложениеЦелевой компьютер
Выполняет обратный коллбэк перед загрузкойДаДаДа
Загрузка модели 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

Итерации

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

  • Итерации Tedled из набора параметров - задайте несколько наборов параметров в Parameter Overrides разделе теста. В разделе Iterations > Table Iterations щелкните Auto Generate и выберите Parameter Set.

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

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

  • Скриптовые итерации - Используйте скрипты для итерации с помощью переменных модели или параметров. Для примера в модели 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 операторы. A verify оператор оценивает логическое выражение и возвращает результаты в диспетчер тестов. Использование verify внутри Test Sequence или Test Assessment блока или, если у вас есть Stateflow® лицензия, на диаграмме Stateflow. Смотрите Оценку Симуляции Модели Используя Операторы Проверки.

Похожие темы