当前位置: 首页 > news >正文

网站建设用户使用手册建设银行官方网站网址

网站建设用户使用手册,建设银行官方网站网址,南充市建设局官方网站,太原网站建设哪家便宜文章目录 前言 项目背景 en类型 du类型 ex类型 组合类型 分析和应用 总结 参考资料 前言 见《【研发日记】Matlab/Simulink技能解锁(六)——六种Simulink模型架构》 见《【研发日记】Matlab/Simulink技能解锁(七)——两种复数移相算法》 见《【研发日记】Matlab/Simul…

文章目录

前言

项目背景

en类型

du类型

ex类型

组合类型

分析和应用

总结

参考资料


前言

        见《【研发日记】Matlab/Simulink技能解锁(六)——六种Simulink模型架构》

        见《【研发日记】Matlab/Simulink技能解锁(七)——两种复数移相算法》

        见《【研发日记】Matlab/Simulink技能解锁(八)——分布式仿真》

        见《【研发日记】Matlab/Simulink技能解锁(九)——基于嵌入式处理器仿真》

        见《【研发日记】Matlab/Simulink技能解锁(十)——PID调参技巧》

项目背景

        近期在一个嵌入式项目中用到了Stateflow中的en、du和ex,深究时遇到了一些疑惑,查阅官方文档中的说明也没有完全理解。利用周末时间亲自摸索了一下,把它们的一些基本规律和技巧总结下来。

        官方文档中的说明如下:

en类型

        当程序跳转到某个State时,进入该State后的第一个运行周期,要执行的就是en:后面的代码。如果程序在该State中连续停留多个运行周期,那么第二个周期以及后面的周期都不会执行en:后面的代码。如果程序从该State退出后再次进来,那么跟前面第一次进来是一样的效果,只在第一个运行周期,要执行的就是en:后面的代码。示例如下:

        与en作用类似的还有一个用法,是跳转线上{}里边的执行代码。当程序经过一跟跳转线进入某个state时,也是在第一个运行周期执行该代码,示例如下:

        上述两种用法都能发挥相同的作用,但是二者也有一些区别。当一个State有多根跳转进来的转换线时,如果使用en,那么不管从哪个方向进来都会执行相同的代码,如果使用跳转线上的{},那么从不同方向进来就可以执行不同的代码

du类型

        当程序进入到某个State后,要在该State中连续停留多个运行周期时,那么从第二个周期开始,以及后面的周期,都会执行一次du:后面的代码。如果程序从该State退出后再次进来,那么跟前面第一次进来是一样的效果,除了第一个运行周期不执行du,后面都要执行du:后面的代码。示例如下:

        与du作用类似的还有一个用法,是增加一个无条件的跳转线(优先级要最低)。当程序不满足跳出当前state的条件时,就会循环重复回到当前state,那么这时候放在en后面的代码也会像du一样每个运行周期都执行一遍,直到跳出该state,示例如下:

        Tip1:这次的示例中s2向s1的跳转条件没有使用after(5,tick),是因为这个函数的计数起点为进入当前State的第一个运行周期,如果退出当前State计数就会清零,本示例是循环重复进入s2,计数一直达不到5次跳出的条件。

        Tip2:每个States的跳出转换线上的条件判断,在每个运行周期都会查询,查询的时间点是在当前State中的内容先执行完之后,类似于do while()。如果条件符合发生了跳转,是会暂时停在那个跳转线上,等着下一个周期的时间到了才执行后面的State。

        上述两种用法都能发挥相同的作用,但是二者也有一些区别,区别就在于进入State的第一个运行周期是否执行目标代码。因为在一些应用中是一样在代码的最前面执行一些初始化的准备工作的,有的应用就不需要区别对待,所以就可以根据应用的差异选择适合自己的Stateflow写法。

ex类型

        当程序要从某个State中退出时,退出后紧挨着的第一个运行周期就执行ex后面的代码,而且只执行一次,后续就跟这个State没有关系了。如果程序从该State退出后再次进来,那么退出的时候跟前面是一样的效果,在退出后紧挨着执行一次ex后面的代码。示例如下:

        与ex作用类似的还有一个用法,是跳转线上{}里边的执行代码。当程序经过一根跳转线退出当前state时,也是在退出后紧挨的第一个运行周期执行该代码,示例如下:

        上述两种用法都能发挥相同的作用,但是二者也有一些区别。当一个State有多根跳转出去的转换线时,如果使用ex,那么不管从哪个方向出去都会执行相同的代码,如果使用跳转线上的{},那么从不同方向出去就可以执行不同的代码

组合类型

        前面分别介绍了en、du和ex的单独应用,但是在一些应用中一个State需要同时使用其中的两个类型,简单的方法就是把相同的代码分别在两种类型后面都写一遍。但是还有的应用是三种类型都要用上,那么相同的代码写三遍就会显得很臃肿,这里官方就提供了一种高效的组合使用方法,示例如下:

        与上述组合用法作用类似的还有一个隐藏用法,是直接在State里边不写任何en、du和ex,这种用法就是默认的en和du组合。示例如下:

        上述两种用法都能发挥相同的作用,但是二者也有一些细微区别。当一个State中的代码前面没有任何类型限定时,虽然代码足够简洁,但是代码的可读性也大大降低了,适合于经验丰富的编程人员,对于普通的程序员不太友好。

分析和应用

        在使用Simulink开发软件时,如果能熟练地使用Stateflow,灵活和精准运用en、du、ex和跳转线,就能给软件的复杂度降低非常多,也能减少很多不必要的隐形Bug

总结

        以上就是本人在研发中使用Stateflow中的en、du、ex和跳转线时,一些个人理解和分析的总结,主要介绍了en、du、ex和跳转线的基本规律和技巧,展示了仿真运行的效果,并分析了它们的特点和适用场景。

        后续还会分享另外几个最近解锁的Matlab/Simulink新技能,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

        另外,上述例程使用的Demo工程,可以到笔者的主页查找和下载。

参考资料

    Mathworks Help -> Stateflow

        版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!

http://www.yayakq.cn/news/946323/

相关文章:

  • 建设一个网站选择的服务器wordpress微信底部导航菜单
  • 怎样做买东西的网站网站收录查询方法
  • 先进网站申通e物流的网站建设
  • 龙岗开发公司网站建设网站关键词排名外包
  • 土特产网站模板 织梦触屏网站建设
  • 代理网站系统企业网站建设具体步骤
  • 新乡网站seo优化建网站选号域名
  • 浙江新华建设有限公司官方网站设计漂亮的网站
  • 怎么做微信钓鱼网站可以和朋友合资做网站吗
  • 做网站怎么修改网址logo素材网站有哪些
  • 响应式网站无法做联盟广告佛山网站建设有哪些
  • 优化比较好的网站动画制作过程
  • 一站式做网站相城网站建设
  • 长沙网站seo技巧建筑人才网哪些
  • 网站建设实训经验总结制作网页游戏引擎
  • 网站开发的路径是什么o2o网站建设最好公司排名
  • wordpress旅游类网站模板网站备案时要不要关闭
  • 永川网站建设WordPress 推酷 主题
  • 辽阳建设网站找哪家广告学
  • 免费网页设计制作网站网站建设不一定当地
  • wordpress关闭站点网站推广效果怎么样
  • 巴中市做网站根据网站集约化建设的要求
  • 网站建设整体解决方案山西网站推广公司
  • 建设厅查询网站进网站备案
  • 建站模板招募设计师外贸是做什么的经营范围
  • 邢台做网站信息春花直播
  • 济宁网站建设软件建设协会官方网站
  • 做网站论坛赚钱住建部网站村镇建设管理平台
  • 建设企业网站专业服务php 网站部署后乱码
  • 杭州网站建设技术企业站系统