此示例显示如何在状态流程图和在app Designer中创建的MATLAB®应用程序之间创建接口。有关如何将状态流程图连接到MATLAB应用程序的其他示例,请参阅电动窗控制器模型和模拟媒体播放器。有关此示例在MATLAB中使用独立图表的版本,请参阅使用独立图表为健身应用程序建模.
在本例中,MATLAB应用程序对健身跟踪器进行建模。在模拟过程中,可以调整跟踪器的设置并选择活动(睡觉,休息,走或锻炼).当你选择的时候锻炼,您还可以设置训练强度。
国家流程图应用程序界面
在MATLAB应用程序与Simulink®模型中的控制和设备系统之间提供双向连接。当您与应用程序中的小部件交互时,图表会将您的选择传达给模型中的其他图表。相反,图表使用健身跟踪器的输出来更新应用程序中金宝app的数字和文本字段。例如,当您单击休息应用程序上的按钮应用程序界面
图表设置输出的值活动
到枚举值活动,休息
.这个人体模拟器
图表的反应是生成生命体征值,模拟休息时的人。这个健康跟踪器
图表分析这些值并设置输出信号状态
到活动,休息
.这个应用程序界面
图表监控这个信号并更新地位字段在应用程序中休息
.
要运行该示例,请打开Simulink模型并单击金宝app跑. 图表应用程序界面
打开应用程序并初始化人体模拟器
和健康跟踪器
图表。当示例运行时,一秒钟的模拟表示一分钟的练习时间。要停止模拟,请单击停止或关闭应用程序。
图表应用程序界面
配置为与MATLAB应用程序通信sf_健身应用程序
.
该应用程序使用一个名为图表
与图表交互应用程序界面
. 应用程序回调使用此属性读取图表输入并写入图表输出。例如,当您更改设置窗格中,回调将更新输出结构的相应字段的值阈值
.同样的,当你选择一项新的活动或改变你的锻炼强度人体模拟器窗格中,回调设置图表输出的值活动
和强度
.最后,当你关闭应用程序时,UIFigureCloseRequest
回调设置图表输出的值停止
到真正的
.
在图表中InterfaceWithApp
运行应用程序sf_健身应用程序
并将返回值存储为本地数据对象应用程序
. 图表uses this local data object when it calls the helper functionsupdateStatus
,更新锁定
,updateText
,更新标签
,更新硬盘
.在应用程序中,这些助手函数更改活动状态、时钟和步数计数器字段的内容,并在心跳和步数显示中创建动画效果。例如,当图表接收到通知
消息,亚态主显示器
调用helper函数updateText
.这个函数用定制的通知替换时钟显示的内容。五秒钟后,substate调用helper函数更新锁定
恢复时钟显示。
有关如何在MATLAB应用程序和状态流程图之间创建双向连接的更多信息,请参见电动窗控制器模型和模拟媒体播放器.
用于与应用程序交互的函数不支持代码生成,因此金宝appInterfaceWithApp
州政府首先呼吁外部编码器
函数将它们声明为外部MATLAB代码。有关详细信息,请参阅在状态流图中调用MATLAB外部函数.
这个人体模拟器
图表模拟了参与你在应用程序中选择的活动的人的生命体征。图表使用了输出结构要害
将这些重要的信号传递给健身追踪器。结构的场代表你的心率、速度和你所走的步数。当你选择一个新的活动或调整你的锻炼强度时,图表调用这个功能过渡
为了确保这些生命体征随着时间的推移逐渐改变。为了检测活动或运动强度的变化,图表调用焕然一新
操作员。有关更多信息,请参阅检测数据和表达式值中的更改.
图表健康跟踪器
为健身追踪器的核心逻辑建模。该图表由四个子图表组成,对应于可能的活动。该图表记录了你的活动状态,基于心率和速度产生的人体模拟器
图表和这些子图表之间的转换。为了滤除信号噪声,图表使用期间
运算符来实现简单的去抖动逻辑。例如,当你休息时,你可以做出一些与锻炼不相适应的快速而突然的动作。只有当您的运动持续时间超过两分钟(或模拟时间的两秒)时,图表才会确定您正在行走或锻炼。图表监视活动子状态,并将此信息传递给应用程序界面
图表通过输出数据状态
。有关详细信息,请参阅通过活动状态数据监视状态活动.
该图表使用其他时间逻辑运算符来跟踪你在每个活动中花费的时间,并决定何时向应用程序发送通知:
停止仿真(金宝appSimulink)|之后|期间|运行|焕然一新|外部编码器
(MATLAB编码器)