Протестируйте интегрированный код

Протестируйте интегрированный код С

Если у вас есть модель, которая интегрирует код С с блоком C Caller, можно протестировать код С с менеджером по Тесту и тестовой обвязкой.

Блок C Caller использует параметры конфигурации, чтобы задать пользовательский код. Если вы изменяете параметры конфигурации, синхронизируете параметры между тестовой обвязкой и моделью. Для получения дополнительной информации смотрите, Синхронизируют Изменения Между Test Harness and Model and Create Test Harnesses and Select Properties.

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

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

    • Когда вы создадите тестовую обвязку, выберите Update Configuration Parameters and Model Workspace data on rebuild. Можно также выбрать Rebuild Harness on Open, который восстанавливает каждый раз, когда обвязка открывается.

    • Для существующих тестовых обвязок, в предварительном просмотре обвязки, избранном одном или нескольких из Rebuild Harness> Rebuild on Open, или Rebuild Harness without Compiling Model и Update Harness Configuration Settings and Model Workspace. Опция Update Harness Configuration Settings and Model Workspace обновляет настройки каждый раз, когда восстанавливание происходит.

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

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

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

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

Примечание

Этот пример работает только над 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))

Heat pump example model

В модели в качестве примера:

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

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

  • Объект принимает шину управления. Тепловой насос и сигналы вентилятора являются Boolean, и направление теплового насоса задано +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. На вкладке Apps, под Model Verification, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests нажмите Simulink Test Manager.

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

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

Создайте тестовую обвязку

  1. В модели щелкните правой кнопкой по Controller_sfcn подсистема и выбирает Test Harness > Create for ‘Controller_sfcn’.

  2. Установите свойства обвязки.

    Во вкладке Basic Properties:

    • Установите Name на test_harness_1

    • Установите Sources and Sinks на None и Scope

  3. Нажмите OK, чтобы создать тестовую обвязку.

  4. В тесте, под System Under Test, обновляют список тестовых обвязок и выбирают test_harness_1 для Harness.

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

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

  1. Соедините блок Constant с Tset введите и установите значение к 75.

  2. Добавьте блок Sine Wave в модель тестовой обвязки, чтобы симулировать температурный сигнал. Соедините блок Sine Wave с входом Troom_in подсистемы преобразования.

  3. Дважды кликните блок Sine Wave и установите параметры:

    ПараметрЗначение
    Амплитуда15
    Смещение75
    Частота2*pi/3600
    Фаза (рад)0
    Размер шага1

    Выберите Interpret vector parameters as 1–D.

    Heat pump test harness

  4. В панели Solver панели инструментов Simulink, набор Stop time к 3600.

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

  1. В тесте, в Simulation Outputs, нажимают Add. Подсветите выходную шину от диспетчера С-Фанкшна.

    Test harness with ouput bus from the controller selected

  2. В диалоговом окне Signal Selection нажмите кнопку Add.

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

    Logged signals and baseline criteria tables

Запустите тест и просмотрите результаты

  1. Запустите тест. Результаты испытаний появляются в панели Results and Artifacts.

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

    Plots of baseline criteria and simulation output, and plot of the difference between them

Смотрите также

Похожие темы