Задайте и обновите данные Inport при помощи языка MATLAB

Можно создать входные порты корневого уровня и использовать язык 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'))

Прежде, чем запустить эту процедуру, перейдите к рабочей папке.

Сопоставьте Inport, чтобы использовать прямоугольную волну

  1. Открытый 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');
  2. Загрузите slrt_ex_inport_square.mat, и затем присвойте square к временной переменной рабочей области.

    load(docpath(fullfile(docroot, 'toolbox', 'slrealtime', ...
    'examples', 'slrt_ex_inport_square.mat')));
    waveform = square;
  3. Открытый slrt_ex_osc_inport/In1

    inport = [model '/In1'];
    load_system(inport);

  4. Выключите интерполяцию данных об импорте.

    set_param(inport,'Interpolate','off');
  5. Установите внешнюю входную переменную.

    set_param(model,'ExternalInput','waveform');
  6. Загрузите внешние входные данные.

    set_param(model,'LoadExternalInput','on');
  7. Можно теперь создать, загрузить и выполнить приложение реального времени.

    rtwbuild(model);
    tg = slrealtime('TargetPC1');
    load(tg,model);
    start(tg);
  8. Просмотрите сигналы в Инспекторе Данных моделирования.

    Simulink.sdi.view;

Обновите Inport, чтобы использовать пилообразную волну

Можно обновить данные об импорте, чтобы использовать различный файл данных, не восстанавливая приложение реального времени. slrt_ex_osc_inport.mldatx файл должен быть в рабочей папке.

  1. Загрузите slrt_ex_inport_sawtooth.mat, и затем присвойте sawtooth к временной переменной, которую вы использовали с Корневым Картопостроителем Inport.

    load(docpath(fullfile(docroot, 'toolbox', 'slrealtime', ...
    'examples', 'slrt_ex_inport_sawtooth.mat')));
    waveform = sawtooth;
  2. Создайте объект приложения.

    app_object = SimulinkRealTime.Application('slrt_ex_osc_inport');
  3. Обновите объект приложения.

    updateRootLevelInportData(app_object);
  4. Загрузите обновленный объект на целевой компьютер и выполните его.

    tg = slrealtime;
    load(tg, 'slrt_ex_osc_inport');
    start(tg);
  5. Просмотрите сигналы в Инспекторе Данных моделирования.

    Simulink.sdi.view;

Похожие темы