exponenta event banner

Добавление приложения App Designer в модель перевернутого маятника

В этом примере показано, как передавать сигналы в приложение панели приборов App Designer из приложения Simulink Real-Time. Пример построения приложения реального времени из модели slrt_ex_pendulum_100Hz. Панель приборов содержит следующие компоненты App Designer:

  • Раскрывающееся окно - отображение всех доступных целевых компьютеров.

  • Кнопка подключения/отключения - для подключения или отключения целевого компьютера, выбранного в раскрывающемся окне.

  • Кнопка Load (Загрузить) - загрузка приложения на целевой компьютер.

  • Кнопка «Пуск/остановка» - запуск или остановка приложения на целевом компьютере.

  • Поле редактирования времени остановки - отображение и установка времени остановки приложения, загруженного на целевой компьютер.

  • Оси (Axes) - отображение анимации для двух перевернутых маятников и системы тележек.

  • Оси (Axes) - отображение на выходе сигнала реакции на нарушение работы маятника.

  • Кнопка «Подтолкнуть» (Nudge) - используется для ввода (подталкивания) в тележку, удерживающую маятник.

  • Исходное положение вращателя (Reference position spinner) - изменение исходного положения маятника и системы тележки.

  • Ручка эталонного шаблона изменения (Reference variation pattern knob) - добавление шаблона изменения к эталонному положению системы маятника и тележки.

  • Регулятор амплитуды (Amplitude slider) - для регулировки амплитуды выбранной эталонной модели изменения.

  • Регулятор частоты (Frequency slider) - изменение частоты выбранного шаблона изменения привязки.

Для потоковой передачи данных о сигналах и параметрах между приложением реального времени и приложением панели приборов приложение использует объект instrumentation.

load_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_pendulum_100Hz'));

Запуск целевого компьютера и создание приложения в реальном времени

Эти задачи создают приложение реального времени, которое передает данные в приложение панели инструментов App Designer.

  1. Запустите целевой компьютер.

  2. Открытие модели slrt_ex_pendulum_100Hz.

  3. Подключите компьютер разработки к целевому компьютеру. Построить slrt_ex_pendulum_100Hz модель.

  4. Развертывание приложения реального времени на целевом компьютере.

В окне команды MATLAB введите:

set_param('slrt_ex_pendulum_100Hz', 'RTWVerbose', 'off');
tg = slrealtime;
slbuild('slrt_ex_pendulum_100Hz');
load(tg,'slrt_ex_pendulum_100Hz');
### Generated code for 'slrt_ex_pendulum_100Hz' is up to date because no structural, parameter or code replacement library changes were found.
### Successful completion of build procedure for: slrt_ex_pendulum_100Hz
### Created MLDATX ..\slrt_ex_pendulum_100Hz.mldatx

Build Summary

0 of 1 models built (1 models already up to date)
Build duration: 0h 0m 4.901s

Запустить приложение панели инструментов конструктора приложений

Приложение панели инструментов App Designer slrt_ex_pendulumApp предоставляет средства управления для запуска и взаимодействия с приложением в реальном времени slrt_ex_pendulum_100Hz.

1. Запустите приложение. Начать приложение Проектировщика Приложения slrt_ex_pendulumApp.mlapp и создайте дескриптор app, в окне команд MATLAB введите:

openExample('SlrtAddAppDesignerAppToInvertedPendulumModelExample');
app = slrt_ex_pendulumApp;

2. Чтобы подключиться к доступному целевому компьютеру, нажмите кнопку подключения. Текст на кнопке переключится в состояние «disconnect», и кнопка загрузки будет включена.

3. Чтобы загрузить приложение на целевой компьютер, нажмите кнопку загрузки. После загрузки приложения на целевой компьютер будут включены кнопка запуска и поле редактирования времени остановки.

4. Чтобы задать время остановки приложения, введите предпочтительное время остановки в поле редактирования и нажмите кнопку Enter.

5. Чтобы запустить приложение, нажмите кнопку запуска.

6. Чтобы нарушить равновесие маятника на каждой тележке, нажмите кнопку «Надавить». Можно скорректировать величину выталкивания с помощью выбора значения рядом с кнопкой, изменить положение привязки, настроив значение вращателя положения привязки, или выбрать шаблон изменения для положения привязки.

Код обратного вызова приложения

Функциональность приложения панели приборов обеспечивается кодом обратного вызова.

Комментарии в коде обратного вызова в приложении панели приборов slrt_ex_pendulumApp.mlapp описывать операции обратного вызова и предложения по программированию. Чтобы просмотреть код обратного вызова, откройте slrt_ex_pendulumApp.mlapp в конструкторе приложений и перейдите на вкладку Просмотр кода. В окне команд введите:

edit slrt_ex_pendulumApp

Определение путей блоков для сигналов в ссылочных моделях

Для потоковой передачи данных из сигналов в модели см. использование connectLine функции в setupInstrumentation(app) функция в приложении.

Функция «Обратный вызов» (startAnimationAnimationCallback)

Для каждой группы AcquureGroup эта функция проверяет, имеются ли свежие данные с момента последнего вызова обратного вызова. При наличии данных функция обновляет объекты анимации.

Сигналы помещаются в группы получения на основе частоты дискретизации и прореживания, так что все сигналы в группе получения имеют одинаковый временной вектор.

Обновление осей и анимации с помощью групп получения

В коде обратного вызова эта обработка видна как AcquireGroupData группы сигналов в updateAnimationCallback функция.

Закрыть приложение и модели

Ручка приложения панели приборов app предоставляет доступ для закрытия приложения.

Закройте приложение. В окне команд MATLAB введите:

close(app.UIFigure)

Закройте открытые модели. В окне команд введите:

bdclose ('all');