创建一个应用程序模拟触发数据采集使用状态流图表
这个例子展示了如何通过使用Stateflow®,data acquisition Toolbox™和app Designer来创建一个模拟触发的数据采集应用程序。
数据采集工具箱提供了从DAQ设备或音频声卡获取测量数据的功能。对于某些应用,建议采用模拟触发采集,根据测量的模拟信号中的条件开始捕获或记录数据。软件模拟触发采集使您能够从连续的测量数据流中仅捕获感兴趣的部分。例如,当信号级别超过某个阈值时,您可以捕获音频记录。
这个示例应用程序,由应用设计器和状态流创建,展示了如何实现这些操作:
通过使用状态流程图来控制应用程序的状态逻辑。
发现可用的DAQ设备并选择要使用的设备。
配置设备采集参数。
在获取过程中,在应用程序UI中显示实时情节。
基于可编程触发条件执行触发数据捕获。
将捕获的数据保存到MATLAB®基本工作空间变量中。
默认情况下,应用程序在应用程序设计器中以设计模式打开。要运行应用程序,请单击运行按钮或从命令行执行应用程序:
AnalogTriggerAppStateflow
需求
这个示例应用程序需要:
MATLAB R2020a或更高版本。
数据采集工具箱(仅支持Windows®)。金宝app
状态流(仅用于创建和编辑图表)。
支持金宝app的数据采集设备或声卡。例如,任何支持模拟输入的国家仪器或测量计算设备金宝app
电压
或IEPE
测量和背景采集。相应的硬件支持包和设备驱动程序。金宝app
应用状态和状态流程图
当创建一个具有复杂逻辑的应用程序时,请考虑与应用程序的运行模式相对应的各种状态。您可以使用状态流图来可视化和组织这些应用程序状态。使用状态之间的转换来实现应用程序的控制逻辑AnalogTriggerAppLogic.sfx
定义控制此应用逻辑的状态流图。该图表可以基于应用UI中的操作或数据驱动的条件在状态之间转换。例如,如果单击开始按钮时,图表将从配置
向…陈述收购
状态。如果信号的值越过指定的触发电平,则图表从LookingForTrigger
向…陈述CapturingData
状态。
将应用程序与状态流图集成
要在MATLAB应用程序和状态流图之间建立双向连接,请在startupFcn
函数,创建一个图表对象并将其句柄存储在应用程序属性中。
app.Chart = AnalogTriggerAppLogic(“应用程序”、应用程序);
应用程序使用这个句柄来触发图表中的状态转换。例如,当您单击开始,StartButtonPushed
App回调函数调用acquisitionStart
为图表输入事件。此事件触发从配置
向…陈述收购
状态。
为了评估图表中非事件的过渡条件,应用程序调用一步
函数用于图表对象。例如,在从设备获取数据时dataAvailable_Callback
App函数定期调用一步
函数。当检测到触发条件时,图表从LookingForTrigger
向…陈述CapturingData
状态。
在状态流图表中,将应用对象句柄存储为图表本地数据。为了共享公共属性和调用应用程序的公共函数,状态流图可以在状态动作、转换条件或转换动作中使用这个句柄。