Если у вас есть модель, которая интегрирует код С с блоком 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-функции являются описаниями машинного языка блоков Simulink®, написанных в MATLAB®, C, C++ или Фортране. Вы можете тестовый код, перенесенный в S-функции с помощью тестовых обвязок Simulink Test™. Тестирование кода в S-функциях может быть полезным для регрессионного тестирования унаследованного кода и для тестирования вашего кода в системном контексте.
В этом примере, вы тестовый код в Блоке s-function с помощью тестовой обвязки. Основная модель является моделью объекта управления контроллера кондиционера / модуль теплового насоса. Прежде чем вы начнете, измените значение по умолчанию рабочая папка на одну с полномочиями записи.
Этот пример работает только над 64-битной платформой Windows®.
Добавьте папку в качестве примера в путь MATLAB и установите имена файлов в качестве примера.
ep = fullfile(docroot,'toolbox','sltest','examples'); addpath(ep); md = 'sltestHeatpumpSfunExample.slx' cb = 'sltestHeatpumpBusPostLoadFcn.mat' dt = 'PumpDirection.m'
Откройте модель.
open_system(fullfile(ep,md))
В модели в качестве примера:
Контроллером является S-функция, которая принимает комнатную температуру и задала температурные входные параметры.
Контроллер вывел, шина с сигналами, которые управляют вентилятором, тепловым насосом и направлением теплового насоса (тепло или холодный).
Объект принимает шину управления. Тепловой насос и сигналы вентилятора являются булевской переменной, и направление теплового насоса задано +1
для охлаждения и -1
для нагревания.
Тест покрывает четыре температурных условия. Каждое условие соответствует одному операционному состоянию с вентилятором, насосом, и направление насоса сигнализирует о выходных параметрах.
Температурное условие | Системное состояние | Команда вентилятора | Накачайте команду | Накачайте направление |
---|---|---|---|---|
|Troom_in - Tset| < DeltaT_fan | неактивный | 0 | 0 | 0 |
DeltaT_fan <= |Troom_in - Tset| < DeltaT_pump | вентилятор только | 1 | 0 | 0 |
|Troom_in - Tset| >= DeltaT_pump and Tset < Troom_in | охлаждение | 1 | 1 | -1 |
|Troom_in - Tset| >= DeltaT_pump and Tset > Troom_in | нагревание | 1 | 1 | 1 |
Откройте менеджера по Тесту путем выбора Analysis> Test Manager из меню Simulink.
От менеджера по Тесту панель инструментов нажмите New, чтобы создать тестовый файл. Назовите и сохраните тестовый файл.
В тесте, под System Under Test, нажимают кнопку, чтобы загрузить текущую модель в тест.
В модели щелкните правой кнопкой по подсистеме Controller_sfcn
и выберите Test Harness > Create for ‘Controller_sfcn’.
Установите свойства обвязки.
Во вкладке Basic Properties:
Установите Name на test_harness_1
Установите Sources and Sinks на None и Scope
Нажмите OK, чтобы создать тестовую обвязку.
В тесте, под System Under Test, обновляют список тестовых обвязок и выбирают test_harness_1
для Harness.
Создайте входные параметры в тестовой обвязке с постоянным Tset
и изменяющимся во времени Troom_in
.
Соедините блок Constant с входом Tset
и установите значение к 75
.
Добавьте блок Sine Wave в модель тестовой обвязки, чтобы моделировать температурный сигнал. Соедините блок Sine Wave с входом Troom_in
подсистемы преобразования.
Дважды кликните блок Sine Wave и установите параметры:
Параметр | Значение |
---|---|
Амплитуда | 15 |
Смещение | 75 |
Частота | 2*pi/3600 |
Фаза (рад) | 0 |
'SampleTime' | 1 |
Выберите Interpret vector parameters as 1–D.
В панели Solver панели инструментов Simulink, набор Stop time к 3600
.
В тесте, в Simulation Outputs, нажимают Add. Подсветите выходную шину от диспетчера С-Фанкшна.
В диалоговом окне Signal Selection нажмите кнопку Add.
Под Baseline Criteria нажмите Capture, чтобы записать базовый набор данных от симуляции тестовой обвязки. Сохраните базовый набор данных в рабочую папку. Базовые сигналы появляются в таблице.
Запустите тест. Результаты испытаний появляются в панели Results and Artifacts.
Расширьте результаты просмотреть базовый результат критериев. Базовый тест передает, потому что симуляция вывод идентична базовым данным.