Matlab之State Flow

打开方式

方式一:在命令窗口输入State Flow或者简写sf就能打开,并且会自动打开State Flow 的Library。从左到右分别是图表、真值表、状态转换表、例子、顺序查看,可以加入到Simulink当中。

方式二:从Simulink Library里面添加State Flow 的元件。

Chart元件使用方法

使用基础

最基础的用法就是用来控制Function-Call Subsystem元件的执行,可以右击在Block Parameter里面设置采样时间,由于Chart元件不是simulink自己的,编译的时候要比较长的时间。

点击进去最开始是空的,点击Model Explorer,可以设置数据、信号或者事件,一个chart里面有一个Model Explorer。

周期触发

新建一个事件,起个名字,选择为output to simulink

添加一个default transition出来,按照下面用将刚才的名字写上去。

这样就实现了周期触发Function-Call Subsystem元件的执行,因为这个Chart元件继承了解算器的采样时间,内部并没有什么条件判断,就可以周期触发。

条件触发

先创造一个data,起名字,设置为input。

新建几个节点,按照逻辑链接起来,让input满足条件的时候才会执行事件。

\[\]里面的是条件

{}里面的是执行语句

可以两个同时存在或者单独存在

Subchart

有时候在chart里面还要弄多几层,那就拖动个state元件过来,右击按下图设置将state元件变成Subchart.

并行状态

并行状态就是两个状态一起执行,在chart里面用两个state元件。举个例子会比较直观很多,有个人,每天赚100元,花80元,剩下多少钱,先用几个基础元件连起来。

在Model Explorer里面把刚才的默认名字改一改,定个方向,输出值定个初始值。

在chart里面拖两个state元件出来,写上内容,把系统赠送的default transition删掉。

在空白的地方右击decomposition-->parallel将里面的state都设置成并行。

虽然说是并行执行,但在启动的时候还是会有个先后的,这里可以调整个顺序。

运行,仿真出财务自由的康庄大道。

Junction使用方法

是一个节点,让整个图的架构更加整齐,做到横平竖直,不用太多交错或者曲线。需要注意的是如果有多条支路的话就会有标号,由于优先走小标号的支路,所以小标号的支路一定要写上条件,不然就永远走那条小标号的支路了。

en du

我们经常会在别的模板里面看到en,du:代表从状态激活的第一个时刻开始执行,没有的话就从第二个时刻开始计算。

相关推荐
2zcode1 天前
项目文档:基于MATLAB图像处理与FCM聚类的骨癌X射线影像辅助检测系统设计与实现
图像处理·matlab·聚类
2zcode2 天前
项目文档:基于MATLAB深度卷积特征的多曝光图像自适应融合系统设计与实现
深度学习·计算机视觉·matlab
Promise微笑3 天前
回路电阻测试仪采购:多维度技术评估与深度避坑指南
开发语言·matlab·语音识别
程高兴4 天前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab
2zcode5 天前
项目文档:基于MATLAB低采样率ISAR成像的快速稀疏重建算法研究
开发语言·算法·matlab
matlab代码5 天前
Matlab基于主成分分析PCA人脸识别系统(GUI界面)【源码44期】
开发语言·matlab·人脸识别
Evand J6 天前
【MATLAB例程】一维EKF(扩展卡尔曼滤波)、UKF(无迹卡尔曼滤波)、CKF(容积卡尔曼滤波)、PF(粒子滤波)四种滤波方法对比
开发语言·matlab·ekf·ckf
茗创科技6 天前
CGE连接组:用基因表达解码脑疾病的异质性(附高分文献下载)
python·matlab·脑网络
EW Frontier7 天前
GRAIL-SCML:一种几何正则化自适应集成似然的波达方向估计算法【附MATLAB代码】
matlab·自适应·宽带·doa估计·波达方向估计·几何正则化·窄带