Можно создать входные порты корневого уровня и использовать язык MATLAB ® для определения входных данных и обновления входных данных без перестроения модели.
Эта процедура имеет следующие зависимости от файлов:
slrt_ex_osc_inport - Гасящий генератор, принимающий входные данные из входного порта In1 и отправляет свои мультиплексированные выходные данные в выходной порт Out1. Чтобы открыть эту модель, в окне команды MATLAB введите:
open_system(fullfile(matlabroot, 'toolbox', 'slrealtime', ... 'examples', 'slrt_ex_osc_inport'))
slrt_ex_inport_square.mat- Одна секунда выходного сигнала от блока генератора сигналов, который сконфигурирован для вывода прямоугольной волны. Чтобы загрузить эти данные, в окне команд MATLAB введите:
(load(fullfile(matlabroot, 'toolbox', 'slrealtime', ... 'examples', 'slrt_ex_inport_square.mat'))
slrt_ex_inport_sawtooth.mat - Одна секунда выхода блока генератора сигналов, который сконфигурирован для вывода пилообразной волны. Чтобы загрузить эти данные, в окне команд 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');
Теперь можно создавать, загружать и выполнять приложения реального времени.
slbuild(model);
tg = slrealtime('TargetPC1');
load(tg,model);
start(tg);Просмотрите сигналы в инспекторе данных моделирования.
Simulink.sdi.view;
Можно обновить данные ввода, чтобы использовать другой файл данных, не перестраивая приложение реального времени. slrt_ex_osc_inport.mldatx файл должен находиться в рабочей папке.
Груз slrt_ex_inport_sawtooth.mat, а затем назначить sawtooth к временной переменной, используемой с сопоставителем корневого ввода.
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;