CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
Simulink快速入门
一.Simulink是什么
二.什么时候开始学习Simulink
三.如何学习Simulink
四.Simulink与电控技术有何关系
五.Simulink需要学习到什么程度
六.Simulink最常用的模块
七.Simulink版本的选择
八.Simulink有何缺点
回到顶部
Simulink快速入门
一.Simulink是什么
二.什么时候开始学习Simulink
三.如何学习Simulink
四.Simulink与电控技术有何关系
五.Simulink需要学习到什么程度
六.Simulink最常用的模块
七.Simulink版本的选择
八.Simulink有何缺点
回到顶部
# Simulink快速入门 ## 一.Simulink是什么?
Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统级设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。Simulink 提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。Simulink 与 MATLAB 相集成,这样不仅能够在 Simulink 中将 MATLAB 算法融入模型,还能将仿真结果导出至 MATLAB 做进一步分析。 Simulink的特点: 1. 交互式建模:提供大量功能模块便于用户快速建立模型,建模仅需利用鼠标拖放功能块并将其连接起来。 2. 交互式仿真:仿真结果可以动态显示,并可以在仿真过程中随时修改参数。 3. 扩展与定制:提供了一个开放式的环境,允许用户扩充功能,可以将C、 fortran编写的算法集成到框图中。 4. 专业的模型库:针对不同行业和领域提供了专业模型库。 ## 二.什么时候开始学习Simulink?
通常,在学习了MATLAB的基础知识之后,就可以开始学习Simulink了。关于MATLAB的基础知识,可以参考本站《[MATLAB快速参考手册](./matlabreference.html)》。 ## 三.如何学习Simulink?
初学Simulink,有3种入门路径:(1)官方文档。(2)书籍与网络资料。(3)视频。3种路径难度依次下降,但是需要的学习时间依次增加。 如果您有不错的MATLAB编程基础与较强的学习能力,比如您是一名熟练的软件工程师,从Simulink官方文档入门是最快捷有效的学习方法。 如果您有一些MATLAB编程基础,比如您是一名系统学习过MATLAB的理工科大学生,从Simulink书籍与网络资料入门是比较快捷的学习方法。 如果您没有编程基础,比如您是一名大一新生,从Simulink视频入门是难度最低的学习方法,但是需要的学习时间是比较长的。 Simulink官方中文文档链接: [Simulink 快速入门 - MathWorks 中国](https://ww2.mathworks.cn/help/simulink/getting-started-with-simulink.html) Simulink书籍也是比较丰富的,比如《控制器系统建模与仿真-基于MATLAB/Simulink的分析与实现》、《Simulink仿真及代码生成技术入门到精通》等。 网络上也有一些不错的Simulink学习资料,比如: [Simulink仿真入门到精通(一) Simulink界面介绍 - 叮叮当当sunny - 博客园 (cnblogs.com)](https://www.cnblogs.com/dingdangsunny/p/12235637.html) 这个Simulink仿真入门到精通有19个专题,可以用于Simulink仿真学习入门。 Simulink学习视频同样丰富,其中较为流行的学习视频: [Simulink 基础入门培训_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1Kz4y1r7ep/?p=1&vd_source=eee1fa96c4c50c361ee4fe7f40c0f9a8) [Simulink1.1simulink简介_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1L7411a7uL?p=1) ## 四.Simulink与电控技术有何关系?
电控系统软硬件开发遵循V型开发模式,如下图是电控系统控制器类产品常见的一种V型开发模式,在仿真验证阶段,自动代码生成阶段与硬件在环测试阶段,MATLAB/Simulink都是使用最为广泛的工具软件。可以说,MATLAB/Simulink是ECU开发与测试的标准工具。 ![](images/2022-11-28-12-21-29-image.png) ## 五.Simulink需要学习到什么程度?
Simulink是面向整个科技领域与工程领域的,因此Simulink提供的功能非常丰富。作为一名电控工程师,不需要也不可能掌握整个Simulink,只需要掌握Simulink最基础最常用的模块即可。关于Simulink最基础最常用的模块,可以参考下一章节的内容。 MATLAB/Simulink如何应用于控制系统,可以参考网站[Control Tutorials for MATLAB and Simulink]([Control Tutorials for MATLAB and Simulink - Home (umich.edu)](https://ctms.engin.umich.edu/CTMS/index.php?aux=Home)),这个网站对控制系统进行了全面的讲解,包括建模、分析、PID控制器、根轨迹、频域分析、状态空间方法、数字控制器等。网站提供了大量的实例,实例从开始的理论分析到模型构建,仿真代码撰写,仿真结果分析等,整个过程都包含了,十分详细,值得学习。 另外,针对汽车应用领域,Simulink提供了几个汽车领域专用工具箱,推荐学习: - [Powertrain Blockset](https://ww2.mathworks.cn/help/autoblks/index.html) 提供完整组合的汽车动力总成参考应用模型,包括汽油、柴油、混合动力和电力系统。 - [Vehicle Dynamics Blockset](https://ww2.mathworks.cn/help/vdynblks/index.html) 提供完整组合的参考应用模型,可在三维环境中仿真驾驶操作。 - [Automated Driving Toolbox](https://ww2.mathworks.cn/help/driving/index.html) 提供了算法和工具以用于设计、仿真和测试 ADAS 和自主驾驶系统。 - [Model-Based Calibration Toolbox](https://ww2.mathworks.cn/help/mbc/index.html) 提供了 App 和设计工具以最优地标定复杂的引擎和动力总成子系统。 ## 六.Simulink最常用的模块
Simulink提供了数百个模块,其中最常用的模块有十多个。 | 模块名称 | 模块所在的库 | 模块的功能 | | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------- | | [Function-Call Subsystem](https://ww2.mathworks.cn/help/simulink/slref/functioncallsubsystem.html) | Simulink / Ports & Subsystems | 由外部函数调用输入控制执行的子系统(比如调用周期性任务) | | [Subsystem](https://ww2.mathworks.cn/help/simulink/slref/subsystem.html) | Simulink / Commonly Used Blocks
Simulink / Ports & Subsystems | 对各模块进行分组以创建模型层次结构(层次化建模必备) | | [Constant](https://ww2.mathworks.cn/help/simulink/slref/constant.html) | Simulink / Commonly Used Blocks
Simulink / Sources | 生成常量值 | | [Inport](https://ww2.mathworks.cn/help/simulink/slref/inport.html) | Simulink / Commonly Used Blocks
Simulink / Ports & Subsystems
Simulink / Sources | 为子系统或外部输入创建输入端口 | | [Outport](https://ww2.mathworks.cn/help/simulink/slref/outport.html) | Simulink / Commonly Used Blocks
Simulink / Ports & Subsystems
Simulink / Sinks | 为子系统或外部输出创建输出端口 | | [Add, Subtract](https://ww2.mathworks.cn/help/simulink/slref/add.html) | Simulink / Math Operations | 输入信号的加减运算 | | [Product](https://ww2.mathworks.cn/help/simulink/slref/product.html) | Simulink / Commonly Used Blocks
Simulink / Math Operations | 标量和非标量的乘除运算 | | [Gain](https://ww2.mathworks.cn/help/simulink/slref/gain.html) | Simulink / Commonly Used Blocks
Simulink / Math Operations | 将输入乘以常量 | | [Relational Operator](https://ww2.mathworks.cn/help/simulink/slref/relationaloperator.html) | Simulink / Commonly Used Blocks
Simulink / Logic and Bit Operations | 对输入执行指定的关系运算
关系运算包括==、~=、<、<=、>=、> | | [Logical Operator](https://ww2.mathworks.cn/help/simulink/slref/logicaloperator.html) | Simulink / Commonly Used Blocks
Simulink / Logic and Bit Operations | 对输入执行指定的逻辑运算
逻辑运算包括AND、OR、NAND、NOR、XOR、NXOR、NOT | | [Switch](https://ww2.mathworks.cn/help/simulink/slref/switch.html) | Simulink / Commonly Used Blocks
Simulink / Signal Routing | 基于第二个输入的值在第一个输入和第三个输入之间切换输出 | | [Switch Case](https://ww2.mathworks.cn/help/simulink/slref/switchcase.html) | Simulink / Ports & Subsystems | 使用类似于 switch 语句的逻辑选择子系统执行 | | [If](https://ww2.mathworks.cn/help/simulink/slref/if.html) | Simulink / Ports & Subsystems | 使用类似于 if-else 语句的逻辑选择子系统执行 | | [Merge](https://ww2.mathworks.cn/help/simulink/slref/merge.html) | Simulink / Signal Routing | 将多个信号合并为一个信号
始终使用条件执行子系统来驱动 Merge 模块,而不涉及任何中间模块 | | [1-D Lookup Table](https://ww2.mathworks.cn/help/simulink/slref/1dlookuptable.html) | Simulink / Lookup Tables | 一维查表模块 | 对于电控系统应用软件开发来说,使用上面的十多个模块再加上Stateflow,已经可以覆盖绝大多数功能的建模需求。 ## 七.Simulink版本的选择
Simulink是与MATLAB绑定的,无法单独选择Simulink的版本,关于MATLAB版本的选择,请参考《[MATLAB快速入门](./matlab.html)》中的章节《MATLAB版本的选择》。 ## 八.Simulink有何缺点?
作为一个商业软件,Simulink的第一个缺点就是价格昂贵。 Simulink的第二个缺点是慢,对于一台普通的个人电脑,比如四核心16G内存固态硬盘,MATLAB的启动时间通常需要10秒以上,而打开Simulink还额外需要20秒以上,也就是说,对于电控行业最常用的开发测试环境Simulink,光启动就需要30秒以上。