exponenta event banner

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

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

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

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

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

Общий рабочий процесс

В этом примере workflow-процесса описываются основные шаги создания и выполнения теста в реальном времени:

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

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

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

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

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

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

  7. Проанализируйте результаты в диспетчере тестов. Сообщите о результатах.

Рекомендации по тестированию в реальном времени

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

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

  • Нельзя регистрировать выходные порты или состояния.

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

  • На целевом компьютере должен быть запущен Simulink Real-Time.

Завершение тестирования базовой модели

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

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

  • Отладка тестовой последовательности. Используйте функции отладки в редакторе тестовых последовательностей. См. раздел Отладка тестовой последовательности.

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

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

Для тестирования в реальном времени требуется автономный целевой компьютер. Simulink Test™ поддерживает только целевые компьютеры под управлением 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. Чтобы задать формат данных:

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

  2. Выберите панель Импорт/экспорт данных.

  3. Выберите формат.

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

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

  • Включите ведение журнала сигналов в окне Параметры конфигурации (Configuration Parameters) на панели Импорт/экспорт данных (Data Import/Export).

  • Подключите сигналы к блокам области из библиотеки блоков Simulink Real-Time. Задайте для свойства Scope type значение File.

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

В этом примере тестового жгута регистрируемые сигналы:

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

  • Используйте области файлов для возврата данных сигнала в диспетчер тестирования.

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

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

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

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

Используйте Диспетчер тестов для создания тестовых примеров в реальном времени.

  1. На панели инструментов Simulink на вкладке Apps в разделе Model Verification, Validation и Test выберите Simulink Test.

  2. Щелкните Диспетчер испытаний Simulink.

  3. В диспетчере тестов выберите 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. См. раздел Оценка моделирования модели с использованием операторов проверки.

Связанные темы