Можно создать входные порты корневого уровня и использовать 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');
Теперь можно создавать, загружать и выполнять приложение реального времени.
slbuild(model);
tg = slrealtime('TargetPC1');
load(tg,model);
start(tg);
Просмотрите сигналы в Данные моделирования Inspector.
Simulink.sdi.view;
Можно обновить входные данные, чтобы использовать другой файл данных, не перестраивая приложение реального времени. The slrt_ex_osc_inport.mldatx
файл должен находиться в рабочей папке.
Загрузка slrt_ex_inport_sawtooth.mat
, а затем назначьте sawtooth
к временной переменной, которую вы использовали с Root Inport Mapper.
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);
Просмотрите сигналы в Данные моделирования Inspector.
Simulink.sdi.view;