Matlab/Simulink 模型介绍

近期由于刚换工作,所以把上家公司整理的一些再次上传到网上,防止后续丢失。第一篇先简单介绍下MATLAB/Simulink模型介绍及仿真吧。

先简单介绍下什么是matlab,Matlab功能强大,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。由于个人主要使用matlab的simulink功能,现在主要对模型搭建进行介绍。

这里分两部分来写,我们先从模型的概况来理解,后面再细讲怎么去搭建。

模型概况(状态机):下图是模型最外层的一个状态机图,左边是输入端口,右边是输出端口。这个图是可以在matlab的图形库拖出来的,后续会讲。搭建模型第一步是要把这个状态机从库里图拖出来。

模型概况(状态交换):状态机图双击进去可以开始拖一些箭头和函数框开始搭建函数模型。

双击状态机进入下图:下图有两个大状态DISABLEENABLEENABLE里又有两子状态NORMALONGOING

 模型概况(函数实体)

双击双兔中的函数进入下图(箭头处可以填写判断逻辑)。这里是逻辑实现地方,后续生成代码都跟这里会一一对应。

模型搭建:上面大概讲了一个模型的结构,下面具体去讲怎么搭建模型。

 

 上图是把状态机拖出来后,再双击状态机后进去的一张图。上图左侧已经列出常用的搭建模型的按键,以下对我们常用的按键解释下

状态:创建状态机的状态

节点:系统不能停在节点上,但可以停在状态中

:一般和节点配合使用

函数:由于我们是simlink建模,所以我们用Simlink Fcn

历史状态:对于某些问题而言,我们返回一个状态的时候不能总返回默认状态,而是要返回离开前的最后一个状态,这就是历史状态的用处。

以上按键按需拖动到需要处即可。

模型搭建之函数搭建:

常拖动函数按键后如上图,函数名 可以点击命名。这里命名为TestFunction。

一般拖出来的函数实体在这个框里写不下,然后我们可以创建子模块来写。如下图。创建后双击函数块即可进入子模块。我们主要函数一般都在子模块完成。

 

 打开Matlab并添加状态机:最外层的状态机怎么拖出来搭建?

请看下图: 下图是打开matlab软件会出现的,在命令窗口输入state flow就会新建状态机。

 Note:有时候状态机的输入或输出端口太多,状态机可能不会在可视范围。这时候可以下滑滚轮或者点击fit to view按钮让状态机剧中显示

添加输入端口:点击Library Browser按钮,在sources中选中In1输入端口。找到In1并拖到状态机图上即可。

 同理添加输出端口:输出端口在Sinks

添加输入及输出数据:按照Model Explorer->Add Data序添加数据。添加完数据需要在Scope列选择属性是inputoutputLocal还是其他。DataType列选择类型。

Note1:需要先选中状态机标志才能添加数据。如本模型状态机名为IPC_CompassDisp,所以要先选中该状态机。

Note2:这里的Port列一般在添加端口模型时自动排列。但是有时候可能连续添加很多端口,这边Port排序排好了,但是又把中间某一个或者某几个端口删除了,这时候Port会再自动排序。则会造成模型端口与这里的Port不匹配。这样会对后期的UT测试造成错误。所以这里Port号需要检查与前面模型号保持一致。

 端口颜色设置:有时候,我们想把标定输入变量和其他输入变量分开,除了命名区分外,也可以如图在端口出右击,调出Format/Background Color选不同颜色

上图完成了模型的搭建,下面需要配合脚本生成报告。

 报告查看:运行相应的脚本生成.c.h文件及报告

点击上图的.c.h文件可以查看生成的代码报告

 

生成代码可读性很差,所以需要代码和模型结合一起看。可以点击报告中的Transition找到模块对应的位置 。

 以上写的比较笼统,适合有一定基础的朋友观看。有疑问可以一起讨论,谢谢!

 

 

  • 10
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值