Можно настроить тестовую обвязку при помощи функции, которая выполняется после создания или восстановления тестовой обвязки. В функции напишите сценарий команд, чтобы настроить вашу тестовую обвязку. Например, функция может:
Соедините пользовательский источник или блоки приемника.
Добавьте подсистему объекта для тестирования с обратной связью.
Измените конфигурацию модели.
Включите логгирование сигнала.
Измените время остановки симуляции.
Запуски специальной функции тестовой обвязки как тестовая обвязка постсоздают коллбэк или поствосстанавливают коллбэк. Настроить тестовую обвязку с помощью функции обратного вызова:
Создайте функцию обратного вызова.
В функции используйте Simulink® программируемый интерфейс, чтобы написать сценарий команд, чтобы настроить тестовую обвязку. Для получения дополнительной информации смотрите функции, перечисленные в Программном редактировании моделей (Simulink).
Задайте функцию как постсоздавание или поствосстановите коллбэк:
Для новой тестовой обвязки,
Если вы используете пользовательский интерфейс, вводите имя функции в Post-create callback method или Post-rebuild callback method в Advanced Properties диалогового окна создания обвязки.
Если вы используете sltest.harness.create, задайте функцию как PostCreateCallback или PostRebuildCallback значение.
Для существующей тестовой обвязки,
Если вы используете пользовательский интерфейс, вводите имя функции в Post-rebuild callback method в диалоговом окне свойств обвязки.
Если вы используете sltest.harness.set, задайте функцию как PostRebuildCallback значение.
Для получения дополнительной информации о свойствах тестовой обвязки смотрите Create Test Harnesses and Select Properties.
Объявление функции обратного вызова
function myfun(x)
myfun имя функции и myfun принимает вход xX struct информации о тестовой обвязке, автоматически созданной, когда тестовая обвязка использует коллбэк. Можно выбрать функцию и имена аргумента.Например, задайте функцию обратного вызова обвязки harnessCustomization.m:
function harnessCustomization(harnessInfo) % Script commands here to customize your test harness. end
harnessInfo имя struct и harnessCustomization имя функции. То, когда создавание или восстанавливает операцию, вызывает harnessCustomization, harnessInfo заполняется с информацией о тестовой обвязке, включая указатели на модель тестовой обвязки, основную модель, и блокируется в тестовой обвязке. Например, использование harnessCustomization как коллбэк для следующей тестовой обвязки:

заполняет harnessInfo с указателями на три источника, один приемник, основная модель, модель тестовой обвязки, использует владельца, компонент под тестом и подсистемы преобразования:
harnessInfo =
struct with fields:
MainModel: 2.0001
HarnessModel: 1.1290e+03
Owner: 17.0001
HarnessCUT: 201.0110
DataStoreMemory: []
DataStoreRead: []
DataStoreWrite: []
Goto: []
From: []
GotoTag: []
SimulinkFunctionCaller: []
SimulinkFunctionStub: []
Sources: [1.1530e+03 1.1540e+03 1.1550e+03]
Sinks: 1.1630e+03
AssessmentBlock: []
InputConversionSubsystem: 1.1360e+03
OutputConversionSubsystem: 1.1560e+03
CanvasArea: [215 140 770 260]Используйте поля struct, чтобы настроить тестовую обвязку. Например:
Добавить блок Constant под названием ConstInput к тестовой обвязке получите имя модели тестовой обвязки, затем используйте add_block функция.
harnessName = get_param(harnessInfo.HarnessModel,'Name'); block = add_block('simulink/Sources/Constant',... [harnessName '/ConstInput']);
Чтобы получить указатели порта для компонента под тестом, получите 'PortHandles' параметр для harnessInfo.HarnessCUT.
CUTPorts = get_param(harnessInfo.HarnessCUT,'PortHandles');Чтобы получить время остановки симуляции для тестовой обвязки, получите 'StopTime' параметр для harnessInfo.HarnessModel.
st = get_param(harnessInfo.HarnessModel,'StopTime');Установить 16 второе время остановки симуляции для тестовой обвязки, набор 'StopTime' параметр для harnessInfo.HarnessModel.
set_param(harnessInfo.HarnessModel,'StopTime','16');
Перечислять информацию об обвязке для вашей тестовой обвязки:
В функции обратного вызова добавьте линию
disp(harnessInfo)
Создайте или восстановите тестовую обвязку с помощью функции обратного вызова.
Когда вы создаете или восстанавливаете тестовую обвязку, содержимое информационной структуры обвязки отображено на командной строке.
Эта функция обратного вызова обвязки в качестве примера соединяет блок Constant с третьим входом компонента этой тестовой обвязки в качестве примера.

Функция выполняет процедуру:
Получите имя модели тестовой обвязки.
Добавьте блок Constant.
Получите указатели порта для блока Constant.
Получите указатели порта для входной подсистемы преобразования.
Получите указатели для линий, соединенных с входной подсистемой преобразования.
Удалите существующий блок Inport.
Удалите остающуюся линию.
Соедините новую строку от блока Constant до входа 3 из входной подсистемы преобразования.
function harnessCustomization(harnessInfo) % Get harness model name: harnessName = get_param(harnessInfo.HarnessModel,'Name'); % Add Constant block: constBlock = add_block('simulink/Sources/Constant',... [harnessName '/ConstInput']); % Get handles for relevant ports and lines: constPorts = get_param(constBlock,'PortHandles'); icsPorts = get_param(harnessInfo.InputConversionSubsystem,... 'PortHandles'); icsLineHandles = get_param... (harnessInfo.InputConversionSubsystem,'LineHandles'); % Delete the existing Inport block and the adjacent line: delete_block(harnessInfo.Sources(3)); delete_line(icsLineHandles.Inport(3)); % Connect the Constant block to the input % conversion subsystem: add_line(harnessInfo.HarnessModel,constPorts.Outport,... icsPorts.Inport(3),'autorouting','on'); end

В этом примере показано, как использовать постсоздать коллбэк, чтобы настроить тестовую обвязку. Коллбэк изменяет один источник обвязки от блока Inport до блока Constant и включает сигнал, входящий в систему тестовая обвязка.
Модель
В этом примере вы создаете тестовую обвязку для Roll Reference подсистема.
open_system('RollAutopilotMdlRef')

Получите путь к специальной функции обвязки
cbFile = fullfile(matlabroot,'examples','simulinktest','main',... 'harnessSourceLogCustomization.m');
Информация о специальной функции и тестовой обвязке
Функциональный harnessSourceLogCustomization изменяет третий исходный блок и включает сигнал, входящий в систему компонент под тестовыми воздействиями и выходными параметрами. Можно считать функцию путем ввода:
type(cbFile)
Функция использует аргумент. Аргумент является struct, перечисляющим информацию о тестовой обвязке. Информация включает указатели на блоки в тестовой обвязке, включая:
Компонент под тестом
Введите подсистемы
Источники и приемники
Владелец обвязки в основной модели
Например, harnessInfo.Sources перечисляет указатели на исходные блоки тестовой обвязки.
Создайте индивидуально настраиваемую тестовую обвязку
1. Скопируйте специальную функцию обвязки во временную рабочую директорию.
copyfile(cbFile,tempdir); cd(tempdir);
2. В RollAutopilotMdlRef модель, щелкните правой кнопкой по Roll Reference подсистема и выбирает Test Harness> Create for Roll Reference.
3. В диалоговом окне создания обвязки, для Постсоздают метод коллбэка, вводят harnessSourceLogCustomization.
4. Нажмите ОК, чтобы создать тестовую обвязку. Обвязка показывает время остановки логгирования и симуляции сигнала, заданное в функции обратного вызова.
Можно также использовать sltest.harness.create функция, чтобы создать тестовую обвязку, задавая функцию обратного вызова с 'PostCreateCallback' пара "имя-значение".
sltest.harness.create('RollAutopilotMdlRef/Roll Reference',... 'Name','LoggingHarness',... 'PostCreateCallback','harnessSourceLogCustomization'); sltest.harness.open('RollAutopilotMdlRef/Roll Reference','LoggingHarness');

close_system('RollAutopilotMdlRef',0);
sltest.harness.create | sltest.harness.set