Simulink-Stateflow学习——计数器的搭建和stateflow工作过程
2018-03-26 15:14
2991 查看
Stateflow 是一个基于有限状态机和流程图来构建组合和时序逻辑决策模型并进行仿真的环境。它可以将图形表示和表格表示(包括状态转换图、流程图、状态转换表和真值表)结合在一起,针对系统对事件、基于时间的条件以及外部输入信号的反应方式进行建模。 Stateflow 可用于设计有关监控、任务调度以及故障管理应用程序的逻辑。Stateflow 包括状态图动画及静态和运行时检查,可以在实施前测试设计的一致性和完整性。 Stateflow可以直接嵌入到Simulink模型中,并且在仿真的初始化阶段,Simulink会把Stateflow绘制的逻辑图形通过编译程序转换成C语言,使二者有机地结合在一起。 Stateflow可以在Simulink Extra模块库中找到。
下面是一个简单易学的stateflow实例:
题目:在simulink中搭建一个简单的stateflow,实现在输入的上升沿进行计数,然后输出。
[align=left] 如上图是搭建的stateflow,输入为周期为1的脉冲信号,设定最大值maxtime为18。仿真时间为10s,由于只在上升沿触发,故最后结果只有9。
[/align][align=left] 下图为stateflow的内部:[/align]
输出结果为:
下面详细讲解stateflow内部工作的过程: 首先讲解stateflow内部的工作过程。stateflow的内部有两个state,reset和count。当chart模块在第一个上升沿的条件下(注意是1s位置的上升沿,0s时没有上升沿)触发时,chart内部会首先进入到reset状态。此时output=0。state进入节点,节点在sitch,即上升沿触发时,两个state都可以传送至节点,而节点传输至哪个状态,则由输出转换线生的条件决定。由于maxtime设定为18,所以后面再2s,3s……一直到10s计数才达到9,不会进入reset。 哈哈,在刚才继续写的时候突然发现我之前如果调整仿真时间远远大于10s,也就是让计数可以达到18,突然想到为什么结果不是18呢?如下图:
然后才突然意识到output>maxtime出现了问题。。。
然后我把output>maxtime改成output>=maxtime,出来的结果就符合预期了!666
注:stateflow的详细搭建过程可参考博客:http://blog.renren.com/share/407154693/16355969210/1
下面是一个简单易学的stateflow实例:
题目:在simulink中搭建一个简单的stateflow,实现在输入的上升沿进行计数,然后输出。
[align=left] 如上图是搭建的stateflow,输入为周期为1的脉冲信号,设定最大值maxtime为18。仿真时间为10s,由于只在上升沿触发,故最后结果只有9。
[/align][align=left] 下图为stateflow的内部:[/align]
输出结果为:
下面详细讲解stateflow内部工作的过程: 首先讲解stateflow内部的工作过程。stateflow的内部有两个state,reset和count。当chart模块在第一个上升沿的条件下(注意是1s位置的上升沿,0s时没有上升沿)触发时,chart内部会首先进入到reset状态。此时output=0。state进入节点,节点在sitch,即上升沿触发时,两个state都可以传送至节点,而节点传输至哪个状态,则由输出转换线生的条件决定。由于maxtime设定为18,所以后面再2s,3s……一直到10s计数才达到9,不会进入reset。 哈哈,在刚才继续写的时候突然发现我之前如果调整仿真时间远远大于10s,也就是让计数可以达到18,突然想到为什么结果不是18呢?如下图:
然后才突然意识到output>maxtime出现了问题。。。
然后我把output>maxtime改成output>=maxtime,出来的结果就符合预期了!666
注:stateflow的详细搭建过程可参考博客:http://blog.renren.com/share/407154693/16355969210/1
相关文章推荐
- 【51单片机学习过程记录】7 中断之 定时计数器0 操作前理解过程
- golang 学习心得一(开发环境搭建过程中一些坑)
- Angular2+学习第2篇 cli 环境搭建过程
- hadoop学习过程-2013.08.20--搭建hadoop环境
- Kubernetes--学习笔记-4-Kubernetes 集群搭建过程中常用命令
- 过程改进日记之学习Scrum2010-8-24:看板第二天以及过程改进工作规划
- java三大方向及学习过程(顺带Android 开发环境搭建)
- 学习,研究,工作,灵感——学习过程其实是一张网 选择自 mechiland 的 Blog
- Centos集成GTX-1080Ti显卡搭建深度学习环境全过程
- 搭建一个ASP网站过程(Dreamwaver+Win7+IIS8)(学习笔记)
- 搭建一个ASP网站过程(Dreamwaver+Win7+IIS7)(学习笔记)
- 为学习Hadoop使用VMware准备3台一模一样的Linux虚拟机的详细搭建过程
- deepin linux 15.5 + 小米笔记本pro 下的深度学习环境tensorflow-gpu 1.4版本搭建过程
- 学习2:ROS工作目录的搭建
- windows7平台搭建Python3开发环境(本学习过程全部基于Python3.x)
- DHCP协议格式、DHCP服务搭建、DHCP协商交互过程入门学习
- 学习,研究,工作,灵感——学习过程其实是一张网
- 整理iOS工作学习过程中遇到的各种问题
- Linux内核分析第一周学习博客 --- 通过反汇编方式学习计算机工作过程
- 【51单片机学习过程记录】10 中断之定时计数器1的应用