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

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

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

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

  • Кнопка загрузки - Чтобы загрузить приложение на целевой компьютер.

  • Кнопка start/stop - Чтобы запустить или остановить приложение на целевом компьютере.

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

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

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

  • Кнопка подталкивания - Для применения входа (подталкивания) к тележке, которая удерживает маятник.

  • Ссылка положение счетчика - для изменения ссылки положения маятника и системы тележки.

  • Ручка шаблона изменения ссылки - Чтобы добавить шаблон изменения к исходному положению маятника и системы тележки.

  • Амплитудный ползунок - Чтобы настроить амплитуду выбранной ссылки шаблона изменения.

  • Ползунок частоты - для изменения частоты выбранного шаблона изменения ссылки.

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

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 Инструментальной панели App

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

1. Запустите приложение, Чтобы запустить приложение App Designer slrt_ex_pendulumApp.mlapp и создайте указатель app, в Командном Окне MATLAB введите:

openExample('SlrtAddAppDesignerAppToInvertedPendulumModelExample');
app = slrt_ex_pendulumApp;

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

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

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

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

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

Код коллбэка приложения

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

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

edit slrt_ex_pendulumApp

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

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

функция updateAnimationCallback

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

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

Обновление осей и анимации при помощи Acquire Group

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

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

Указатель на приложение инструментальной панели app предоставляет доступ для закрытия приложения.

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

close(app.UIFigure)

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

bdclose ('all');