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

Можно создать входные порты корневого уровня и использовать язык MATLAB®, чтобы задать входные данные и обновить входные данные, не восстанавливая модель.

Зависимости от файла

Эта процедура зависит от следующих файлов:

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

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

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

    load(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', ...
        'ex_slrt_inport_square.mat')));
    waveform = square;
  3. Открытый ex_slrt_inport_osc/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);
    start(tg);
  8. Постройте вывод.

    plot(tg.TimeLog,tg.OutputLog);

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

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

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

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

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

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

    tg = slrt;
    load(tg, 'ex_slrt_inport_osc');
    start(tg);
  5. Постройте вывод.

    plot(tg.TimeLog,tg.OutputLog);

Похожие темы