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

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

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

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

  • Если вы изменяете параметры конфигурации тестовой обвязки, можно продвинуть конфигурацию модели к основной модели. Выберите Analysis> Test Harness> Push Component and Parameters to Main Model или используйте sltest.harness.push.

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

    • Когда вы создадите тестовую обвязку в Advanced Properties, выберите Update Configuration Parameters and Model Workspace data on rebuild.

    • Для существующих тестовых обвязок, в предварительном просмотре обвязки, кликают по значку Harness operations, чтобы открыть свойства обвязки. В свойствах обвязки выберите Update Configuration Parameters and Model Workspace data on rebuild.

Тестовый код в 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))

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

  • Контроллером является 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. Откройте менеджера по Тесту путем выбора Analysis> Test Manager из меню Simulink.

  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
    'SampleTime' 1

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

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

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

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

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

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

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

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

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

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