回顾这段时间的自学历程,简单地总结一下。
MATLAB知识框架
先广泛的阅读一些关于MATLAB基础知识、快速入门之类的文章,先掌握MATLAB知识框架。
从MATLAB产品上来看,MATLAB本身是基础,在此之上才有simulink仿真,再往上才有Stateflow。
因此,确定学习路线,分三个大的部分:MATLAB、SIMULINK、STATEFLOW。
再看看MATLAB主要产品及其相互关系:
MATLAB基础
理解了基本概念之后,就要动手实践,一边学习一边练习。
这是一本实践性很强的学科,只有勤动手,才会有收获。
学习并实践了以下材料:
MATLAB 快速入门
我是下载了PDF版的,也可以直接在网上学习:
MATLAB 快速入门
https://ww2.mathworks.cn/help/matlab/getting-started-with-matlab.html
这里重点要掌握:
- MATLAB中矩阵的基本概念和用法。
- 脚本和函数的运行方法。
- 变量的数据类型:boolean、数值型(int, uint,8位,16位,32位,float, double)
- 标量、向量、矩阵
- 数组、结构体、元胞数组
- 文本和字符串处理
- 简单的二维和三维绘图
- 图形对象的概念
MATLAB GUI设计
学习GUI设计有个很大的好处就是,所学即所用,所见即所得。
我学习了以下2本书,把里面的大部分例子都照着做了一遍。这2本书都有电子版,我是从图书馆借了纸质的书看的。
MATLAB GUI设计学习手记(罗华飞)
精通Matlab GUI设计(陈垚光)
练完这2本书后,就扫除了M语言的障碍,为后面的simulink仿真也打下了坚实的基础。
Simulink/Stateflow仿真
接下来就开始练习仿真了。方法说起来很简单,就是临摹帮助系统里面的例子。一边临摹一边做笔记。然后再思考一下,这些例子是什么功能,用到了哪些技术点。临摹的时候,尽自己最大的能力,做得跟demo完全一样。很多时候,你觉得这个很简单,做的时候才发现里面有很多的技术细节。一定要从零开始,一笔一划地把demo做出来。
这个过程中,可能会遇到两种问题:
1,看到demo中的某个功能,但不知道是怎么做出来的。这个时候可以找个关键字去搜索,大多数情况下都可以在官网上找到答案。有了前面的基础,这种情况不是太多,也比较容易解决。
2,demo中隐藏的某个功能,不知道从哪里下手,甚至都不知道有这回事。一般情况下,我临摹完成后都会和原始的demo用自带的模型比较工具比较一下,看看差异点有哪些,有没有隐藏的功能没有被发现的。
模型比较的方法请参见:https://blog.csdn.net/booksyhay/article/details/86571201
临摹笔记
临摹过程中遇到问题,一定要把解决的过程记录下来,有助于自己更深刻地理解模型,也有助于重新梳理思路,便于下次建模。
可以参考我的临摹笔记:
再补充一下,这个过程是我学习simulink仿真时进步最快的阶段。
一定要多动手,不要放过细节,以免眼高手低。
官方帮助
这个过程中大量地阅读了Mathworks官网上的帮助文档。
特别是模块参考和例程帮助。
模块库
General Applications
Example models illustrating general applications
https://ww2.mathworks.cn/help/simulink/general-applications.html
参考书籍
MATLAB Simulink系统仿真超级学习手册(石良臣)
Stateflow逻辑系统建模(张威)
这些电子书在csdn上都能下载到。
建模规范
到了这一步,对工具的使用已经非常熟悉了,开始考虑规范性和架构方面的内容了。
建模规范,参考MAAB:
The MathWorks Automotive Advisory Board
https://ww2.mathworks.cn/solutions/automotive/standards/maab.html
Matlab Simulink Stateflow控制算法建模规范
https://wenku.baidu.com/view/c5b7e414cd1755270722192e453610661ed95a08.html
代码生成
研究模型是怎么自动生成代码的,模型能生成怎样的代码。
参考书籍:
Simulink仿真及代码生成技术入门到精通_孙忠潇
资料下载:https://download.csdn.net/download/booksyhay/10978180
参考资料:
怎样生成我想要的 C 代码系列
(微信公众号:Simulink)