2.2 MATLAB概述
经过30余年的补充与完善以及多个版本的升级换代,MATLAB已发展成一个包含众多工程计算、仿真功能及工具的庞大系统,是目前世界上最流行的仿真计算软件。MATLAB软件和工具箱(TOOLBOX)以及Simulink仿真工具,为自动控制系统的计算与仿真提供了强有力的支持。
2.2.1 MATLAB发展历程
MATLAB的产生是与数学计算紧密联系在一起的。1980年,美国新墨西哥州大学计算机系主任Cleve Moler在给学生讲授线性代数课程时,发现学生在高级语言编程上花费很多时间,于是着手编写供学生使用的FORTRAN子程序库接口程序,他将这个接口程序取名为MATLAB(即Matrix Laboratory的前三个字母的组合,意为“矩阵实验室”)。这个程序获得了很大的成功,受到学生的广泛欢迎。
20世纪80年代初期,Moler等一批数学家与软件专家组建了MathWorks软件开发公司,继续从事MATLAB的研究和开发,1984年推出了第一个MATLAB商业版本,其核心软件是用C语言编写的。而后,它又添加了丰富多彩的图形图像处理、多媒体、符号运算以及与其他流行软件的接口功能,使得MATLAB的功能越来越强大。
MathWorks公司正式推出MATLAB后,于1992年推出了具有划时代意义的MATLAB 4.0版本,之后陆续推出了几个改进和提高的版本,2004年9月正式推出MATLAB Release 14,即MATLAB 7/Simulink 6.0,这是非常重要的一个版本。
此后,几乎形成了一个规律,每年的3月份和9月份推出当年的a和b版本,目前的最新版本是MATLAB 2011b。
MATLAB经过几十年的研究与不断完善,现已成为国际上最为流行的科学计算与工程计算软件工具之一,现在的MATLAB已经不仅是一个最初的“矩阵实验室”了,它已发展成为一种具有广泛应用前景、全新的计算机高级编程语言,可以说它是“第四代”计算机语言。
自20世纪90年代,在美国和欧洲大学中,将MATLAB正式列入研究生和本科生的教学计划,MATLAB软件已成为应用代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的基本教学工具,成为学生所必须掌握的基本软件之一。在研究单位和工业界,MATLAB也成为工程师们必须掌握的一种工具,被认做进行高效研究与开发的首选软件工具。
2.2.2 MATLAB系统构成
MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
- MATLAB开发环境
MATLAB开发环境是一套方便用户使用MATLAB函数和文件的工具集,其中许多工具是图形化用户接口。它是一个集成化的工作空间,可以让用户输入、输出数据,并提供了M文件的集成编译和调试环境。它包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
- MATLAB数学函数库
MATLAB数学函数库包括了大量的计算算法,从基本运算(如加法、正弦等)到复杂算法,如矩阵求逆、贝塞尔函数、快速傅里叶变换等。
- MATLAB语言
MATLAB语言是一个高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。用户既可以用它来快速编写简单的程序,也可以用来编写庞大复杂的应用程序。
- MATLAB图形处理系统
图形处理系统使得MATLAB能方便地图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强力的二维、三维图形函数、图像处理和动画显示等函数。
- MATLAB应用程序接口(API)
MATLAB应用程序接口(API)是一个使MATLAB语言能与C、FORTRAN等其他高级编程语言进行交互的函数库,该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和FORTRAN程序,以及在MATLAB与其他应用程序间建立客户/服务器关系。
2.2.3 MATLAB常用工具箱
工具箱是MATLAB的关键部分,它是MATLAB强大功能得以实现的载体和手段,它是对MATLAB基本功能的重要扩充。MATLAB每年都会增加一些新的工具箱,所以,在一般情况下,工具箱的列表不是固定不变的,有关MATLAB工具箱的最新信息可以在http://www.mathworks.com/products中看到。
较为常见的MATLAB工具箱包括以下几类。
- 控制类工具箱
- 控制系统工具箱(Control System Toolbox);
- 系统辨识工具箱(System Identification Toolbox);
- 鲁棒控制工具箱(Robust Control Toolbox);
- 模糊逻辑工具箱(Fuzzy Logic Toolbox);
- 神经网络工具箱(Neural Network Toolbox);
- 频域系统辨识工具箱(Frequency Domain System Identification Toolbox);
- 模型预测控制工具箱(Model Predictive Control Toolbox);
- 多变量频率设计工具箱(Multivariable Frequency Design Toolbox)。
- 应用数学类工具箱
- 最优工具箱(Optimization Toolbox);
- 样条工具箱(Spline Toolbox);
- 统计工具箱(Statistics Toolbox);
- 偏微分方程工具箱(Partial Differential Equation Toolbox)。
- 信号处理类工具箱
- 信号处理工具箱(Signal Processing Toolbox);
- 滤波器设计工具箱(Filter Design Toolbox);
- 通信工具箱(Communication Toolbox);
- 小波分析工具箱(Wavelet Toolbox);
- 高阶谱分析工具箱(Higher Order Spectral Analysis Toolbox)。
- 其他常用的工具箱
- 符号数学工具箱(Symbolic Math Toolbox);
- 虚拟现实工具箱(Virtual Reality Toolbox)。