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满足条件的时候才会执行事件。

\]里面的是条件 {}里面的是执行语句 可以两个同时存在或者单独存在 ![](https://file.jishuzhan.net/article/1740078291789811713/953e1b798ddcdae4ab190df8f140b7d8.webp) ## Subchart 有时候在chart里面还要弄多几层,那就拖动个state元件过来,右击按下图设置将state元件变成Subchart. ![](https://file.jishuzhan.net/article/1740078291789811713/c4d758d1c948245b9b7683c03288c773.webp) ## 并行状态 并行状态就是两个状态一起执行,在chart里面用两个state元件。举个例子会比较直观很多,有个人,每天赚100元,花80元,剩下多少钱,先用几个基础元件连起来。 ![](https://file.jishuzhan.net/article/1740078291789811713/5830c875d5ac629d046bff6fb17db8ea.webp) 在Model Explorer里面把刚才的默认名字改一改,定个方向,输出值定个初始值。 ![](https://file.jishuzhan.net/article/1740078291789811713/4279099db739aff671785915ead5d58f.webp) 在chart里面拖两个state元件出来,写上内容,把系统赠送的default transition删掉。 ![](https://file.jishuzhan.net/article/1740078291789811713/eb0a3bf9c5bec209706ddeafc34b64a3.webp) 在空白的地方右击decomposition--\>parallel将里面的state都设置成并行。 ![](https://file.jishuzhan.net/article/1740078291789811713/b09c60fb8609c4b746f9196e1bf40039.webp) 虽然说是并行执行,但在启动的时候还是会有个先后的,这里可以调整个顺序。 ![](https://file.jishuzhan.net/article/1740078291789811713/c330da9f352a070fc4f454054f87a4ff.webp) 运行,仿真出财务自由的康庄大道。 ![](https://file.jishuzhan.net/article/1740078291789811713/dfedf3558bbac09995b86ff836168fb9.webp) ## Junction使用方法 是一个节点,让整个图的架构更加整齐,做到横平竖直,不用太多交错或者曲线。需要注意的是如果有多条支路的话就会有标号,由于优先走小标号的支路,所以小标号的支路一定要写上条件,不然就永远走那条小标号的支路了。 ![](https://file.jishuzhan.net/article/1740078291789811713/5f19da586783f577c0c43655cf0e3833.webp) ## en du 我们经常会在别的模板里面看到en,du:代表从状态激活的第一个时刻开始执行,没有的话就从第二个时刻开始计算。 ![](https://file.jishuzhan.net/article/1740078291789811713/9ea412e9a10cfbf8c875137e948d56eb.webp)

相关推荐
随风飘摇的土木狗7 小时前
【MATLAB第114期】基于MATLAB的SHAP可解释神经网络分类模型(敏感性分析方法)
神经网络·matlab·分类·全局敏感性分析·gsa·敏感性分析·shap
小宁学技术10 小时前
MATLAB在工程领域的实际应用案例
开发语言·matlab·matlab实际应用案例·matlab应用案例·matlab 实际应用案例
zew10409945881 天前
MATLAB实现电池剩余放电时间预测【电子信息专业】
开发语言·matlab·课设·电池剩余放电时间预测
可编程芯片开发2 天前
基于时空相关性的风电功率预测模型matlab建模与仿真
matlab·时空相关性·风电功率预测模型
weixin_428498492 天前
使用MATIO库读取Matlab结构体(struct)数据的示例程序
matlab
阿昆的科研日常2 天前
Matlab进阶绘图第74期-带填充纹理的单组柱状图
开发语言·matlab·可视化·论文插图
tianyukun02232 天前
MATLAB学习笔记(二) 控制工程会用到的
笔记·学习·matlab
IT猿手3 天前
基于CNN-BiLSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·matlab·cnn
机器学习之心3 天前
多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测
matlab·bo-gru·贝叶斯优化门控循环单元·多输入多输出预测
硬件大脑3 天前
MATLAB如何打印一个桃心形状
matlab