分享一个系列,关于Simulink建模与仿真,尽量整理成体系
1、Simulink特点
Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。使用Simulink来建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统),将是一件非常轻松的事情。它提供了一种图形化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编写一行代码。 该软件可以利用鼠标在模型窗口上绘制系统模型厂然后对系统进行仿真和分析。
利用Simulink进行系统的建模仿真,其最大的优点是易学、易用,并能依托MATLAB提供的丰富的仿真资源。这里对Simulink的强大功能进行简单的介绍。
-
交互式、图形化的建模环境
Simulink提供了丰富的模块库以帮助用户快速地建立动态系统模型。建模时只需使用鼠标拖放不同模块库中的系统模块并将它们连接起来。
2. 交互式的仿真环境
Simulink框图提供了交互性很强的仿真环境,既可以通过下拉菜单执行仿真,也可以通过命令行进行仿真。菜单方式对于交互工作非常方便,而命令行方 对于运行一大类仿真如蒙特卡罗仿真非常有用。
3. 专用模块库(Blocksets)
作为Simulink建模系统的补充,MathWorks公司还开发了专用功能块程序包,如DSP Blockset和 Communication Blockset等。通过使用这些程序包,用户可以迅速地对系统进行建模、仿真与分析。更重要的是用户还可以对系统模型进行代码生成,并将生成的代码下载到不同的目标机上。
Simulink的部分软件工具包
4. 提供了仿真库的扩充和定制机制
Simulink的开放式结构允许用户扩展仿真环境的功能:采用MATLAB、FORTRAN和C代码生成自定义模块库,并拥有自己的图标和界面。因此用户可以将使用FORTRAN或C编写的代码链接进来,或者购买使用第三方开发提供的模块库进行更高级的系统设计、仿真与分析。
5. 与MATLAB工具箱的集成
由于Simulink可以直接利用MATLAB的诸多资源与功能,因而用户可以直接在Simulink下完成诸如数据分析、过程自动化、优化参数等工作。工具箱提供的高级的设计和分析能力可以融入仿真过程。
简而言之,Simulink具有以下特点:
(1) 基于矩阵的数值计算。
(2) 高级编程语言。
(3) 图形与可视化。
(4) 工具箱提供面向具体应用领域的功能。
(5) 丰富的数据 I/O 工具。
(6) 提供与其它高级语言的接口。
(7) 支持多平台(PC / Macintosh / UNIX)。
(8) 开放与可扩展的体系结构。
2、Simulink的应用领域
至此,读者应该对动态系统的模型建立、系统仿真与分析有了一个比较感性的认识;同时对Simulink的强大功能也会有一定的了解。那么使用Simulink到底可以对什么样的动态系统进行仿真分析与辅助设计呢?其实,任何使用数学方式进行描述的动态系统都可以使用Simulink进行建模、仿真与分析。
由于Simulink具有强大的功能与友好的用户界面,因此它已经被广泛地应用到诸多领域之中,如:
(1) 通讯与卫星系统。
(2) 航空航天系统。
(3) 生物系统。
(4) 船舶系统。
(5) 汽车系统。
(6) 金融系统。
此外,Simulink在生态系统、社会和经济等领域也都有所应用。在科学技术飞速发展的21世纪,Simulink的应用领域也将会更加广泛。下图所示为Simulink在一些领域中的典型应用。
3、Simulink在MATLAB家族中的位置
MATLAB是一个包含数值计算、高级图形与可视化、高级编程语言的集成化科学计算环境。MATLAB Toolbox提供了面向专业的函数库,扩展了MATLAB的能力。MATLAB Compiler 自动将MATLAB中的M文件转换成C和C++代码,用于独立应用开发。Simulink是一个交互式动态系统建模、仿真和分析工具。Simulink Blockset提供了丰富的专业模块库,广泛地用于控制、DSP、通讯等系统仿真领域。Stateflow是一种利用有限状态机理论建模和仿真事件驱动系统的可视化设计工具,适合用于描述复杂的开关控制逻辑、状态转移图以及流程图等。
Real-Time Workshop 能够从Simulink模型中生成可定制的代码及独立的可执行程序。Stateflow coder能够自动生成状态图的代码,并且能够自动地结合到RTW生成的代码中。图所示为Simulink与MATLAB的层次结构示意图。