主要内容

添加应用程序设计程序到倒立摆模型

这个例子展示了如何将信号流从Simulink®Real-Time™应用程序传输到App Designer仪表板应用程序。金宝app该示例从模型构建实时应用程序slrt_ex_pendulum_100Hz.仪表板包含以下应用程序设计器组件:

  • 目标选择器下拉列表-显示所有可用的目标计算机。

  • 连接/断开按钮-连接或断开下拉窗口中选择的目标计算机。

  • 加载按钮-将应用程序加载到目标计算机。

  • 启动/停止按钮-用于启动或停止目标计算机上的应用程序。

  • 停止时间编辑字段-显示和设置目标计算机上加载的应用程序的停止时间。

  • 状态消息框-显示目标计算机的状态信息。

  • 轴-显示两个倒立摆和推车系统的动画。

  • 轴-显示信号输出的响应中断摆。

  • 推车轻推按钮-将输入(轻推)到装有钟摆的推车上。

  • 参考位置旋钮-用于改变钟摆和推车系统的参考位置。

  • 参考变化模式旋钮-将变化模式添加到钟摆和推车系统的参考位置。

  • 振幅滑块-调整所选参考变化模式的振幅。

  • 频率滑块-修改所选参考变化模式的频率。

为了在实时应用程序和仪表板应用程序之间传输信号和参数数据,应用程序使用仪器仪表对象。

开放示例和负载模型

openExample(“SlrtAddAppDesignerAppToInvertedPendulumModelExample”);
load_system (fullfile (matlabroot,“工具箱”“slrealtime”“例子”“slrt_ex_pendulum_100Hz”));

启动目标计算机并构建实时应用程序

这些任务生成实时应用程序,将数据流传输到App Designer仪表板应用程序。

  1. 启动目标计算机。

  2. 打开模型slrt_ex_pendulum_100Hz

  3. 将开发计算机连接到目标计算机。构建slrt_ex_pendulum_100Hz模型。

  4. 将实时应用程序部署到目标计算机。

在MATLAB®命令窗口中,键入:

模型=“slrt_ex_pendulum_100Hz”;set_param(模型,“RTWVerbose”“关闭”);Tg = slrealtime;evalc (“slbuild(模型));负载(tg、模型);

运行应用程序设计器仪表板应用程序

应用程序设计器仪表板应用程序slrt_ex_pendulumApp提供启动实时应用程序并与之交互的控件slrt_ex_pendulum_100Hz

1.运行应用程序。启动app Designer应用程序slrt_ex_pendulumApp.mlapp然后创建句柄应用程序,在MATLAB命令窗口中输入:

app = slrt_ex_pendulumApp;

2.要连接到可用的目标计算机,请单击连接按钮。按钮上的文字将切换到“断开”和负载按钮将被启用。

3.要将应用程序加载到目标计算机,请单击负载按钮。在目标计算机上加载应用程序后,将开始按钮,停止时间编辑字段将被启用。

4.要设置应用程序的停止时间,请在编辑字段中键入首选的停止时间并点击输入按钮。

5.要开始运行应用程序,请单击开始按钮。

6.若要破坏每个推车上的钟摆平衡,请单击推动按钮。您可以通过使用按钮旁边的值选择来调整轻推幅度,通过调整参考位置旋转器的值来悬挂参考位置,或者为参考位置选择变化模式。

应用程序回调代码

仪表盘应用程序功能由回调代码提供。

仪表板应用程序回调代码中的注释slrt_ex_pendulumApp.mlapp描述回调操作和编程建议。要查看回调代码,请打开slrt_ex_pendulumApp.mlapp在应用程序设计器,然后单击代码视图选项卡。在命令窗口中输入:

编辑slrt_ex_pendulumApp

为信号指定阻塞路径

若要从模型中的信号传输数据,请参阅的使用connectLine的函数setupInstrumentation(应用)在应用程序中的功能。

updateAnimationCallback函数

对于每个AcquireGroup,该函数检查自上次调用回调以来是否有新的数据。如果有数据,该函数更新动画对象。

信号根据采样率和抽取率被放置在采集组中,这样采集组中的所有信号都有相同的时间向量。

使用获取组更新轴和动画

在回调代码中,此处理可见于AcquireGroupData信号群updateAnimationCallback函数。

关闭应用和模型

仪表板应用程序处理应用程序提供关闭应用程序的访问。

关闭应用程序。在MATLAB命令窗口中输入:

关上(app.UIFigure)

关闭打开的模型。在命令窗口中输入:

bdclose (“所有”);