Тестовые жгуты обеспечивают среду разработки и тестирования, которая оставляет конструкцию основной модели нетронутой. Функциональную единицу модели можно протестировать изолированно, не изменяя основную модель. В этом примере показано уточнение и тестирование подсистемы контроллера с использованием тестового жгута. Основная модель - это модель контроллера-установки установки кондиционирования/теплового насоса. Контроллер должен работать в соответствии с несколькими простыми требованиями.
Доступ к модели. Войти
cd(fullfile(docroot,'toolbox','sltest','examples'))
Скопируйте этот файл модели и вспомогательные файлы в доступное для записи расположение по пути MATLAB ®:
sltestHeatpumpExample.slx sltestHeatpumpBusPostLoadFcn.mat PumpDirection.m
Откройте модель.
open_system('sltestHeatpumpExample')
В примере модели:
Контроллер принимает температуру в помещении и введенные значения температуры.
Выход контроллера представляет собой шину с сигналами, регулирующими вентилятор, тепловой насос и направление теплового насоса (тепловой или холодный).
Установка принимает шину управления. Тепловой насос и сигналы вентилятора являются булевыми, а направление теплового насоса определяется +1 для охлаждения и -1 для обогрева.
Испытание охватывает четыре температурных режима. Каждое условие соответствует одному рабочему состоянию с выходами сигнала направления вентилятора, насоса и насоса.
| Температурное состояние | Состояние системы | Команда «Вентилятор» | Команда насоса | Направление насоса |
|---|---|---|---|---|
|Troom - Tset| < DeltaT_fan | неработающий | 0 | 0 | 0 |
DeltaT_fan <= |Troom - Tset| < DeltaT_pump | только вентилятор | 1 | 0 | 0 |
|Troom - Tset| >= DeltaT_pump and Tset < Troom | охлаждение | 1 | 1 | -1 |
|Troom - Tset| >= DeltaT_pump and Tset > Troom | отопление | 1 | 1 | 1 |
Щелкните правой кнопкой мыши Controller и выберите Test Harness > Create для параметра «Controller».
Задайте свойства электрического жгута:
На вкладке Основные свойства:
Имя: devel_harness1
Снимите флажок «Сохранить тестовый электрический жгут снаружи»
Источники и поглотители: нет и область применения
Очистить Добавить отдельный блок оценки
После создания выберите «Открыть электрический жгут»

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

В тестовом кабельном жгуте дважды щелкните Controller для открытия подсистемы.
Подключите диаграмму к блокам Inport.

В тестовом электрическом жгуте нажмите кнопку «Сохранить», чтобы сохранить тестовый электрический жгут и модель.
Перейти на верхний уровень devel_harness1.
Создание тестового ввода для электрического жгута с константой Tset и изменяющийся во времени Troom. Подключите блок константы к Tset введите и установите значение 75.
Добавьте блок синусоидальной волны в модель электрического жгута для моделирования температурного сигнала. Подключите блок синусоидальной волны к входу подсистемы преобразования Troom_in.
Дважды щелкните блок синусоидальной волны и задайте параметры:
Амплитуда: 15
Смещение: 75
Частота: 2*pi/3600
Фаза (рад): 0
Время выборки: 1
Выберите Интерпретировать векторные параметры как 1-D.
Подключите блоки ввода к входам записи хранилища данных.

В диалоговом окне «Параметры конфигурации» на панели «Импорт/экспорт данных» выберите «Ввод» и введите u. u - существующая структура в базовой рабочей области MATLAB.
На панели «Решатель» установите для параметра «Время остановки» значение 3600.
Откройте область в тестовом кабельном жгуте и измените компоновку, чтобы показать три графика.
Для моделирования нажмите кнопку Выполнить (Run).
Проверьте выходные данные контроллера. fan_cmd является 1 во время состояния МГ, где |Troom - Tset| < DeltaT_fan.
Это жучок. fan_cmd должны равняться 0 в IDLE. fan_cmd управляющий выходной сигнал должен быть изменен для IDLE.

В модели кабельных трасс откройте Controller подсистема.
Открытый controller_chart.
В IDLE состояние, fan_cmd установлено на возврат 1. Изменение fan_cmd возвратиться 0. IDLE теперь:
IDLE entry: fan_cmd = 0; pump_cmd = 0; pump_dir = 0;
Снова смоделировать модель электрического жгута и наблюдать за выходными данными.

fan_cmd теперь соответствует требованию о равенстве 0 в IDLE.