exponenta event banner

Тестирование интегрированного кода

Тест интегрированного кода C

При наличии модели, объединяющей код C с блоком вызывающего абонента C, можно протестировать код C с помощью диспетчера тестов и тестового кабеля.

Блок C Caller использует параметры конфигурации для определения пользовательского кода. При изменении параметров конфигурации синхронизируйте параметры между тестовым кабельным жгутом и моделью. Дополнительные сведения см. в разделах Синхронизация изменений между тестовым жгутом и моделью и Создание тестовых жгутов и Выбор свойств.

  • При изменении параметров конфигурации тестового кабеля можно переместить набор конфигурации в главную модель. Нажмите кнопку Push Changes или используйте sltest.harness.push.

  • Если вы изменяете параметры конфигурации главной модели в главной модели и хотите обновить параметры тестового электрического жгута, тестовый электрический жгут должен скопировать параметры конфигурации при перестроении. Это свойство можно задать двумя способами:

    • При создании тестового электрического жгута выберите Обновить параметры конфигурации и данные рабочей области модели при перестроении. Можно также выбрать «Перестроить электрический жгут при открытии», который перестраивается при каждом открытии электрического жгута.

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

Тестовый код в S-функциях

S-Functions - это описания компьютерного языка блоков Simulink ®, написанные на MATLAB ®, C, C++ или Fortran. Код, заключенный в S-функции, можно протестировать с помощью тестовых жгутов Simulink Test™. Тестирование кода в S-Functions может быть полезно для регрессионного тестирования унаследованного кода и для тестирования кода в системном контексте.

Пример тестирования S-функции

В этом примере выполняется тестирование кода в S-функциональном блоке с использованием тестового электрического жгута. Основная модель - это модель контроллера-установки установки кондиционирования/теплового насоса. Перед началом работы измените рабочую папку по умолчанию на папку с разрешениями на запись.

Примечание

Этот пример работает только на 64-разрядной платформе Windows ®.

Настройка рабочей среды

  1. Добавьте папку-пример к пути MATLAB и задайте имена файлов-примеров.

    ep = fullfile(docroot,'toolbox','sltest','examples');
    addpath(ep);
    
    md = 'sltestHeatpumpSfunExample.slx'
    cb = 'sltestHeatpumpBusPostLoadFcn.mat'
    dt = 'PumpDirection.m'
  2. Откройте модель.

    open_system(fullfile(ep,md))

В примере модели:

  • Контроллер представляет собой S-функцию, которая принимает значения температуры в помещении и заданные значения температуры.

  • Выход контроллера представляет собой шину с сигналами, которые управляют вентилятором, тепловым насосом и направлением теплового насоса (тепловым или холодным).

  • Установка принимает шину управления. Тепловой насос и сигналы вентилятора являются булевыми, а направление теплового насоса определяется +1 для охлаждения и -1 для обогрева.

Испытание охватывает четыре температурных режима. Каждое условие соответствует одному рабочему состоянию с выходами сигнала направления вентилятора, насоса и насоса.

Температурные условияСостояние системыКоманда «Вентилятор»Команда насосаНаправление насоса
|Troom_in - Tset| < DeltaT_fanнеработающий000
DeltaT_fan <= |Troom_in - Tset| < DeltaT_pumpтолько вентилятор100
|Troom_in - Tset| >= DeltaT_pump and Tset < Troom_inохлаждение11-1
|Troom_in - Tset| >= DeltaT_pump and Tset > Troom_inотопление111

Создание тестового случая

  1. На вкладке «Приложения» в разделе «Проверка модели», «Проверка» и «Тест» выберите «Тест Simulink», затем на вкладке «Тесты» выберите «Диспетчер тестов Simulink».

  2. На панели инструментов Диспетчера тестов нажмите кнопку Создать, чтобы создать тестовый файл. Назовите и сохраните тестовый файл.

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

Создание тестового кабеля

  1. В модели щелкните правой кнопкой мыши значок Controller_sfcn и выберите «Тестовый жгут» > «Создать» для «Controller_sfcn.»

  2. Задайте свойства кабельных трасс.

    На вкладке Основные свойства:

    • Задать для имени значение test_harness_1

    • Установить для источников и приемников значение «Нет» и область действия

  3. Нажмите кнопку ОК, чтобы создать тестовый электрический жгут.

  4. В тестовом случае в разделе «Тестируемая система» обновите список тестовых кабелей и выберите test_harness_1 для электрического жгута.

Добавление входных данных и задание параметров моделирования

Создание входных данных в тестовом кабельном жгуте с константой Tset и изменяющийся во времени Troom_in.

  1. Подключите блок константы к Tset введите и установите значение 75.

  2. Добавьте блок синусоидальной волны в модель электрического жгута для моделирования температурного сигнала. Подключите блок синусоидальной волны к входу подсистемы преобразования Troom_in.

  3. Дважды щелкните блок синусоидальной волны и задайте параметры:

    ПараметрСтоимость
    Амплитуда15
    Уклон75
    Частота2 * пи/3600
    Фаза (рад)0
    Время выборки1

    Выберите Интерпретировать векторные параметры как 1-D.

  4. На панели «Решатель» панели инструментов Simulink установите для параметра «Время остановки» значение 3600.

Получение базовых данных

  1. В тестовом случае в окне Simulation Outputs (Выходные данные моделирования) щелкните Add. Выделите выходную шину контроллера S-Function.

  2. В диалоговом окне Signal Selection (Выбор сигнала) нажмите кнопку Add (Добавить).

  3. В разделе Критерии опорной структуры (Baseline Criteria) щелкните Захват (Capture), чтобы записать набор базовых данных из моделирования тестового электрического жгута. Сохраните набор базовых данных в рабочей папке. Базовые сигналы появляются в таблице.

Выполнение теста и просмотр результатов

  1. Запустите тестовый случай. Результаты теста отображаются на панели «Результаты и артефакты».

  2. Разверните результаты, чтобы просмотреть результат критериев опорной структуры. Тест базовой линии завершается успешно, поскольку выходные данные моделирования идентичны данным базовой линии.

См. также

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