概述
一、函数
1.注意事项
![](https://file2.kaopuke.com:8081/files_image/2023060314/4843c5f25dff4527a9d3a172319e47c3.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/6e99df64e98a41efa0beb4c4c383be0f.jpeg)
2.函数调用
![](https://file2.kaopuke.com:8081/files_image/2023060314/8e5b2bc3d8d6437abf937b4d6807d4fc.jpeg)
注意:在编写函数时,要从函数简洁可读性出发,每个函数体有效代码不要太多,最好不要超过100行,并要写好注释和函数介绍
二、Simulink基础
![](https://file2.kaopuke.com:8081/files_image/2023060314/47aebbcc543f4a22909eeb9a8926688b.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/8b3111dab9354bcb924da38b95d1d3c8.jpeg)
1.增益模块
![](https://file2.kaopuke.com:8081/files_image/2023060314/bbeeb2941a9a4173aca266a92e72742c.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/25287b759e44422c96577c275340e73c.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/39ddd87ccfad4f6ea9b726e457a140ec.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/3e7ea5cb3ae9484f9380aa38c6bd2d8f.jpeg)
2.仿真设置
![](https://file2.kaopuke.com:8081/files_image/2023060314/b7dc80045d0f4ca59e6ecb118f5a843a.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/fc8eb805c8554b299de6ad45bf211716.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/2d69f614eb46401ea54c019cdb008aab.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/5532b4eeb25144a098713bf00aaed40a.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/e6b35f83949a44c98ddd2cc7f56e52f5.jpeg)
做软件(单片机里面)开发就选Type:Fixed-stepSlover:discrete,(定步长;离散求解),因为要放在MCU里的定时中断处,所以需要定步长离散数据
做软件开发设置如下:
![](https://file2.kaopuke.com:8081/files_image/2023060314/9512b11d1fdc434ab53baa967bb343ad.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/3ff2610ae13342158a91106a24f8ff71.jpeg)
在上面勾上自己需要记录的数据后,在DataInsopector面板下可查看记录的数据
![](https://file2.kaopuke.com:8081/files_image/2023060314/579aa6f9cf9e468aafb52a44edddcb72.jpeg)
3.选择模块
![](https://file2.kaopuke.com:8081/files_image/2023060314/855ab41d2c5549f99373f3f6797034e7.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/ef538742529f44a1bc3789b458789557.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/1eb49464062746b49d049d185994df7f.jpeg)
4.模型封装
![](https://file2.kaopuke.com:8081/files_image/2023060314/f3072c6b8d6e45beae15a14a16844417.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/ce8ac6b637de40ae98fb6c4dde6aa825.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/905a5e609fae40b5ac8418e7931d6d1b.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/6f36f78877294f1abf18014605d338c3.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/c2a5d5ec452e4d2888f5b4eb40dcc728.jpeg)
我们对子模块的输入/输出进行命名,则上一层模块对应位置也会出现相同的名子
注意:在封装过程中,要注意封装规范,相同模块进行封装,并且要对每个模块命名、对每个模块的输入输出命名以增加可读性
![](https://file2.kaopuke.com:8081/files_image/2023060314/0869796f5b7148e2896c0f1186bb2e63.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/8e0216ed522444dba7038b5b4c21e73b.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/36774fe6a6cf469d839e2fad9514376c.jpeg)
5.模型引用
调出模型引用模块,可以引用另外一个模型
![](https://file2.kaopuke.com:8081/files_image/2023060314/a72c6adef122411fa33724e82ebdf374.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/5e078da6c4c0426e8799f10488ae6f32.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/74187c194b744d55b6416ad28a5b6d7f.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/e94542c4e9984cdb8a999cc339e3a28b.jpeg)
进入模型引用的设置界面方法如下:打开设置界面后可更改被引用模型
![](https://file2.kaopuke.com:8081/files_image/2023060314/cb5ad114fc1d48e4b25fe0aaec2af188.jpeg)
打开设置界面也可以设置仿真模式:
Normal:普通模式,当作普通simulink来进行仿真
Accelerator:加速模式,将被引用 模型转成C代码然后处理成CLL文件,编译一次就可以了,可以很快提高速度
![](https://file2.kaopuke.com:8081/files_image/2023060314/0297e40ef4e84c7886cafccb8b2903b6.png)
6.模型变体/子系统变体
当我们需要simulink做两个甚至多个相似的系统而且多个系统之间只有某一小块不一样,或者说汽车系统的不同驾驶模式(不同模式之间在simulink中差别不大),如果每个模式都重新做,那可能有点麻烦,,我们可以使用Variant Model模块,来进行模式与与模式之间的切换,如下:
![](https://file2.kaopuke.com:8081/files_image/2023060314/59e27f4f6c6d406884467b6912011a4d.jpeg)
双击打开后,里面可以引用其他子模型,添加完成其他模型如下:
![](https://file2.kaopuke.com:8081/files_image/2023060314/4016d617b9d74f52ad33401534a3ea03.jpeg)
这里相当于一个swish模块,当满足条件后模块执行上边那个(Model),否则执行下面那个(Model1),我们可以右键Variant Mode块图来设置条件
![](https://file2.kaopuke.com:8081/files_image/2023060314/f1cefbb0fdef4b88a82bd9770f10b2cc.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/f5bfcc92c7c34bfb9ca1377de5d32dd4.jpeg)
注意这里触发条件要符合C语言规范:
![](https://file2.kaopuke.com:8081/files_image/2023060314/fcb3ebccbd06448bb4d5a49a5c15879f.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/434bf2cafe454f5c9c2e04b4687f6f1d.jpeg)
Variant Subsystem 功能和上一个Variant Mode差不多,Variant Mode是引用模型文件,VariantSubsystem是自建子文件,要自己画,其他功能一样。
![](https://file2.kaopuke.com:8081/files_image/2023060314/a6f2b3ccc4a34fbaa443c3af4bc7c095.jpeg)
7.自建创建模块库(不要盲目自己做,除非真的很有用)
![](https://file2.kaopuke.com:8081/files_image/2023060314/6e257f320e1e48c1868ab5534da02be3.jpeg)
在自己创建模块的时候,要把自己的模块封装一下做成子系统。
![](https://file2.kaopuke.com:8081/files_image/2023060314/a98bd1bce7b24b6192f637d097348006.jpeg)
8.工作区
在matlab主页面下右边有一个工作区,它可以用来记录一些数据,方便查看
![](https://file2.kaopuke.com:8081/files_image/2023060314/a34414b2fcf14e95af6397649de44130.jpeg)
但是它有很多不足,这个工作区会将matlab所有的数据都存在里面,很杂很乱。
matlabsimulink 提供了一个干净的工作区,可以将每个系统的工作数据分开存储,如下:
![](https://file2.kaopuke.com:8081/files_image/2023060314/46d4d6bbc46b42a89f200d6dc18dee8c.jpeg)
![](https://file2.kaopuke.com:8081/files_image/2023060314/c15a7cfc5a07428283bd80a23f9dcdc6.jpeg)
最后
以上就是默默太阳为你收集整理的Simulink新手入门的全部内容,希望文章能够帮你解决Simulink新手入门所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复