Если у вас есть модель, которая интегрирует код С с блоком C Caller, можно протестировать код С с менеджером по Тесту и тестовой обвязкой. Для примера смотрите Верификацию кода С с Simulink Test.
Блок 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-функции являются описаниями машинного языка блоков 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 |
На вкладке Apps, под Model Verification, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests нажмите Simulink Test Manager.
От менеджера по Тесту панель инструментов нажмите 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 |
Размер шага | 1 |
Выберите Interpret vector parameters as 1–D.
В панели Solver панели инструментов Simulink, набор Stop time к 3600
.
В тесте, в Simulation Outputs, нажимают Add. Подсветите выходную шину от диспетчера С-Фанкшна.
В диалоговом окне Signal Selection нажмите кнопку Add.
Под Baseline Criteria нажмите Capture, чтобы записать базовый набор данных от симуляции тестовой обвязки. Сохраните базовый набор данных в рабочую папку. Базовые сигналы появляются в таблице.
Запустите тест. Результаты испытаний появляются в панели Results and Artifacts.
Расширьте результаты просмотреть базовый результат критериев. Базовый тест передает, потому что симуляция выход идентична базовым данным.