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