Можно создать входные порты корневого уровня и использовать язык MATLAB®, чтобы задать входные данные и обновить входные данные, не восстанавливая модель.
Эта процедура зависит от следующих файлов:
ex_slrt_inport_osc
(open_system (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_slrt_inport_osc')))) — Ослабленный осциллятор, который берет его входные данные из входного порта In1
и отправляет его мультиплексированный вывод в выходной порт Out1
.
ex_slrt_inport_square.mat
(загрузка (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_slrt_inport_square.mat')))) — Одна секунда вывода от блока Signal Generator, который сконфигурирован, чтобы вывести прямоугольную волну.
ex_slrt_inport_sawtooth.mat
(загрузка (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_slrt_inport_sawtooth.mat')))) — Одна секунда вывода от блока Signal Generator, который сконфигурирован, чтобы вывести пилообразную волну.
Прежде, чем запустить эту процедуру, перейдите к рабочей папке.
Открытый ex_slrt_inport_osc
.
model = docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples',... 'ex_slrt_inport_osc')); open_system(model); save_system(model,'H:\workdir\ex_slrt_inport_osc.slx');
Загрузите ex_slrt_inport_square.mat
, и затем присвойте square
временной переменной рабочей области.
load(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', ... 'ex_slrt_inport_square.mat'))); waveform = square;
Открытый ex_slrt_inport_osc/In1
inport = [model '/In1'];
load_system(inport);
Выключите интерполяцию данных об импорте.
set_param(inport,'Interpolate','off');
Установите внешнюю входную переменную.
set_param(model,'ExternalInput','waveform');
Загрузите внешние входные данные.
set_param(model,'LoadExternalInput','on');
Можно теперь создать, загрузить и выполнить приложение реального времени.
rtwbuild(model); start(tg);
Постройте вывод.
plot(tg.TimeLog,tg.OutputLog);
Можно обновить данные об импорте, чтобы использовать различный файл данных, не восстанавливая приложение реального времени. Файл ex_slrt_inport_osc.mldatx
должен быть в рабочей папке.
Загрузите ex_slrt_inport_sawtooth.mat
, и затем присвойте sawtooth
временной переменной, которую вы использовали с Корневым Картопостроителем Inport.
load(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', ... 'ex_slrt_inport_sawtooth.mat'))); waveform = sawtooth;
Создайте объект приложения.
app_object = SimulinkRealTime.Application('ex_slrt_inport_osc');
Обновите объект приложения.
updateRootLevelInportData(app_object);
Загрузите обновленный объект на целевой компьютер и выполните его.
tg = slrt;
load(tg, 'ex_slrt_inport_osc');
start(tg);
Постройте вывод.
plot(tg.TimeLog,tg.OutputLog);