simulink仿真及代码生成技术入门到精通_如何给美女解释---Simulink自动代码生成的问题!...

096f471c65415959eb9ced4cdb93dad0.png

最近,上下班迷上听一部老剧,士兵突击,上下班一直听,剧中的许三多,看似木讷,实则坚韧,自律.也许印证那句话,生活工作中,最慢的路就是最快的路。(下面这篇文章是七夕节写的,哈哈!)

最近,上下班迷上听一部老剧,士兵突击,上下班一直听,剧中的许三多,看似木讷,实则坚韧,自律.也许印证那句话,生活工作中,最慢的路就是最快的路。(下面这篇文章是七夕节写的,哈哈!)

9b4a3bda9efaca5e4d9e98341243ebb3.png

大家好,这周七夕节,就赤裸裸的蹭个热点,所以就来写个文章,给各位美女解释一下最近几个月大家问的问题,来统一作答一下,文末有资料分享彩蛋哦! 记着点赞与分享哦!

1c831a4e58d9bfbcb46fb69ecfadfc0c.png

技术类

  • Simulink库文件如何制作?

其实这个问题,可以百度,会有很多结果,那我来提取一下精髓,库文件是在模型开发的时候,可以复用的模型,比如我们经常用的,加减乘除,这里有个重点以及使用建议。

重点:库文件生成代码时候,你用几个库文件,就生成几个代码,而非调用函数的模式。

建议:若此库文件的逻辑比较少,可以应用,若里面逻辑比较多,建议不要用,这样会造成代码比较多,比较累赘。

举例:10阶迭代平均值算法,CRC的校验算法,这个都是加减乘除,这些是在进行热计算,CAN通信模块,如果用库文件,可能你的代码量会相当大。

3b86043ad19442a394e4d37595070212.png

如何实现库文件,这个代码算法很多,我就随便找个,供大家参考:

  • 先在这个路径下建立一个文件夹,名字自拟:C:MATLABR2019atoolboxxx。
  • 把你做的库文件(.mdl),放在这个文件夹内。
  • 在文件夹下面创建一个m文件。

function blkStruct = slblocks

Browser.Library = 'XXTest'; % 你的库文件的名字 XXTest.mdl

Browser.Name = 'My Library'; % 在Simulink库中显示的名字

blkStruct.Browser = Browser;

  • 把这个文件夹及它的子文件夹添加的Matlab 路径当中去, 这样就可以在这个库中找到了!

3160c88a8e1251eab4d82570a946eb8e.png

这样就搞定了! Ok

  • Simulink软件架构组建,是用Library ,还是Model Reference

这个问题真是一个美女问的,通过朋友圈看,应该是大美女,她自己也百度过,因为他们公司的项目,想要加密以及复用,所以建议她用Model Reference。

这个Model Reference 对应的生成的代码是一个函数,所有的程序如果用到这个,就进行调用,而非与library一样复制粘贴,所以对应的代码效率比较高,同时具有可以加密的优越性,所以在小公司应用比较广泛。写论文的同学一般不关心这个方法,详情如下图所示:

7c66d3182c89fd13317f76b65028e0e5.png

Simulink数据字典的模板在哪里?

这个模板,每个公司应用的都不一样,我这里的这个直接共享给大家,请大家参考,不需要分享朋友圈,也不需要赞赏,直接给!百度网盘,直接下,有效期30天!

链接:https://pan.baidu.com/s/1P6sK10WO7_P-pMW0MUEWNA

提取码:m86f

Simulink中如何进行C代码嵌套?

有个朋友问这个问题,其实问这个问题之前,应该先问自己,你为何需要C代码的嵌套?总结一下,如下所示:

  • 底层代码,OS调度与应用层模型生成的代码耦合需求。
  • 老代码与新模型的耦合需求。
  • 模型简化需求,例如if,else语句一类。

根据这三类的划分,实现C代码的嵌套方法就不一样。

第一类,老版本的Simulink可以直接在数据线上增加Get函数,新版本simulink有对应的模块可以直接设置应用,注意:这样做之后就不可以进行仿真。仿真后就会报错。而且这个新增的函数,必须要与对应的底层代码的函数名字一样,这样在集成的时候,才不会报错。

ce3a9d72ddd82018bda8ec4c21dcac82.png
方法1-老套路

333c79f25c526cadec42580432fa3641.png
方法二-高手版本

第二类,新老版本软件柔和,建议用S-Fun的方法进行柔和,这样可以进行解耦,独立进行Debug,便于后期

第三类,模型简化,建议用stateflow进行,这样方法,简单易行,而且生成代码比较简洁。

感兴趣的朋友,可以参考上面的图进行尝试一下,生成的代码到底如何?

底层软件是否适合用Simulink进行开发?

这个问题的回答不应一概而论,就像网上的回答一样,大家都不建议底层软件用simulink开发,本屌丝不这么认为。

  • 啥时候可以用?

因为如果你是初学者,对单片机不是很熟悉的话,建议你可以用simulink一些自带的底层软件配置模块,这样你就可以快速的应用simulink, 同时激发你的学习兴趣,学习这个东西的时候,就不会觉着枯燥,就会有坚持学下去的动力。

如果你是用Simulink进行写论文,做项目,写算法,仅仅是为了毕业,哈哈! 也可以用Simulink进行开发底层软件,这样你做项目的效率会比较高! 快速生成代码,快速的实现项目的目标。

目前Simulink软件支持的底层硬件,大概有一下几个,参考下图,感兴趣的可以看看学习一下。

9aa233b08014ca294468318cd7711632.png
  • 啥时候不适合用?

如果你是公司的项目,这个方法就不靠谱,公司项目考虑的是便宜,可扩展,质量稳定,代码可控,所以一般情况下,这些代码都是手写,或者买第三方的成熟代码。

工作类:

Simulink好学吗,初学者如何入门?

这个问题是个小学妹问的,机械专业,想学习这个,听说学这个,工作好找!哈哈!

学习这个东西,贵在练习,你首先要有一个目标,然后进行学习,这样学习会更加快一些。同时推荐一个其它的方法,没事的话,百度一些感兴趣的模型,自己看看学习,如果你是学霸,其实看Matlab的help文档,会更加专家!不过这个方法是学霸专属,一般屌丝估计看不下去,太枯燥了!

e25405c5163f16d22d8a346d502a2f6b.png

与此同时,任何学习没有捷径可走,冬练三九,夏练三暑,虚心学习,方可成为你心中那个MBD大神。

工业领域用Simulink 自动代码生成吗?

Simulink自动代码生成的兴起是从汽车电子行业,但是最近咨询本屌丝的很多都是做工业控制,风电,产线控制,工艺控制,自动化控制等各个方向。

同时咨询了Matlab公司的相关人员,他们的自动代码模块的购买咨询以及项目咨询,越来越多,所以本屌丝认为,如果你是工控领域,或者自动化领域的人员,Simulink应用这个趋势是无法阻挡,应用越早越好!

Simulink自动代码生成在实际的汽车电子公司中,应用广泛吗?主机厂用的多,还是零部件公司用的多?

自动代码生成这个方法,在汽车电子公司,不能说应用广泛不广泛,现在应该是每个公司都用这个,每个公司都应用,不管是大公司,还是小公司,都是这样。

Simulink的应用,在主机厂,零部件公司应用都差不多,具体要看项目,以及哪些控制单元。

比如发动机控制单元,这个技术的Know-How主要掌握在供应商,所以很多主机厂都是提需求,不进行simulink的建模开发。

如果是电动车的VCU,这个相对比较简单,供应商一般主要提供底层软件与硬件,主机厂进行应用层软件开发建模,然后进行集成,所以这类控制器的开发主机厂占领主动,所以应用simulink的机会就比较多!

Simulink专家级别的人都在哪些公司,及哪些对应的岗位上?

如果你想成为Simulink的专家,其实去Matlab公司最好,因为这都是simulink大师级别的人物! 哈哈!

965c8bd763d1cbc793a957e56b177cf5.png

但是如果你去主机厂或者零部件公司,一般情况做策略开发的人,需要对Simulink建模更加熟悉些!比如VCU,BMS应用层策略开发工程师!如果你想当领导,就需要对Simulink级别的软件项目管理,测试管理,验证比较熟悉! Simulink这个topic还是比较大,还是要具体看你在那个岗位,应用的方面可能就不一样!

资料类:

自己之前的资料如何下载?

自己做过两个资料,一个是Simulink资料第一季, 一个是Simulink资料第二季,如果你需要,请参考下文,如果需要第一季,关注公众号回复“1”如果需要第二季,关乎公众号,回复“2”.

屌丝小蚂蚁:Simulink建模及代码生成资料分享---第二季​zhuanlan.zhihu.com
ed64b59ad3578f686448531b3499203a.png
屌丝小蚂蚁:Simulink 建模及代码生成资料分享​zhuanlan.zhihu.com
9828e89e04e8700bade2474bdcce9116.png

前方高能,请注意,自己用的公用资料合集!

  • Matlab Support Compier---For C code,MinGW-w64
MATLAB Support for MinGW-w64 C/C++ Compiler​www.mathworks.com
6d28ca16bd8725fa3ef0da844a941740.png
  • 嵌入式代码生成,支持的硬件,Texas Instruments C2000 Processors
Embedded Coder Support Package for Texas Instruments C2000 Processors​www.mathworks.com
c1a65122aebcb196da9e868901ee619a.png
  • DC 电机控制的 PID设计参考
PID Controller Design for a DC Motor​www.mathworks.com
7f1e2377400343082b7d8ecb35ff075b.png

Matab Style Guidelines 2.0

MATLAB Style Guidelines 2.0​www.mathworks.com
327f94ce135d1de84be7e994d2b36dc1.png

Matlab的整车示例模型

MATLAB and Simulink Racing Lounge: Vehicle Modeling​www.mathworks.com
c5d02bfd84e5bf419085b4fc6e3f34dc.png

Matlab官方的电动车模型

Electric Vehicle Model​www.mathworks.com
2aac93ca294e690fdc28cc1156884dc6.png

如果需要对应的资料,请参考上面链接,自己下载即可!

小结

今天的问题回答就到这里,上面有链接的资料都是免费的,刚兴趣,自己下载就可以! 这篇文章可能我写的最“长”的文章,起始于七夕,完成与国庆后!横跨将近一个月!哈哈! 太漫长! 希望对大家有些帮助!哈哈!

在文章写完的时候,突然想到许三多一个问题,如果在实际的职场中,如果他没有遇见,像班长,团张,老A这样帮助的贵人,他真的可以成功吗?你是如何想的呢,你在职场上有遇见贵人吗?

f3cb6acd0d44e53b79be31fa3ba84f54.png

ce52bb1b44331882794c38d08bf032d7.png

如果觉着本文不错,请点个赞!关注一下知乎专栏与偶的公众号,或转发一下朋友圈,你的举手之劳将是对我的莫大鼓励!

文中配图来源于网络,在此谢过啦!若有问题,随时联系小编!

Live名称:电池管系统BMS 技术,市场,工作现状与挑战

微信公众号: 新能源控制系统及MBD开发

dfea699aded20c0e81b63f9a9ced1c1d.png
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值