2.1 MATLAB概述
经过30余年的补充与完善以及多个版本的升级换代,MATLAB现已发展成一个包含众多工程计算、仿真功能及工具的庞大系统,是目前世界上最流行的仿真计算软件。MATLAB软件和工具箱(TOOLBOX)以及Simulink仿真工具,为控制系统的计算与仿真提供了强有力的支持。
2.1.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 2012a。
MATLAB经过几十年的研究与不断完善,现已成为国际上最为流行的科学计算与工程计算软件工具之一,现在的MATLAB已经不仅是一个最初的“矩阵实验室”了,它已发展成为一种具有广泛应用前景、全新的计算机高级编程语言,可以说它是“第四代”计算机语言。
自20世纪90年代起,在美国和欧洲大学中,已将MATLAB正式列入研究生和本科生的教学计划,MATLAB软件已成为应用代数、自动控制理论、数理统计、数字信号处理、时间序列分析、系统仿真等课程的基本教学工具,成为学生所必须掌握的基本软件之一。在研究单位和工业界,MATLAB也成为工程师们必须掌握的一种工具,被认为是进行高效研究与开发的首选软件工具。
2.1.2 MATLAB系统构成
MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
1.MATLAB开发环境
MATLAB开发环境是一套方便用户使用MATLAB函数和文件的工具集,其中许多工具是图形化用户接口。它是一个集成化的工作空间,可以让用户输入、输出数据,并提供了M文件的集成编译和调试环境。它包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
2.MATLAB数学函数库
MATLAB数学函数库包括了大量的计算算法,从基本运算(如加法、正弦等)到复杂算法,如矩阵求逆、贝济埃函数、快速傅里叶变换等。
3.MATLAB语言
MATLAB语言是一个高级的基于矩阵/数组的语言,具有程序流控制、函数、数据结构、输入/输出和面向对象编程等特点。用户既可以用它来快速编写简单的程序,也可以用来编写庞大复杂的应用程序。
4.MATLAB图形处理系统
图形处理系统使得MATLAB能方便地图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强力的二维、三维图形函数,图像处理和动画显示等函数。
5.MATLAB应用程序接口(API)
MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其他高级编程语言进行交互的函数库,该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括:在MATLAB中调用C和Fortran程序,以及在MATLAB与其他应用程序间建立客户/服务器关系。
2.1.3 MATLAB常用工具箱
工具箱是MATLAB的关键部分,它是MATLAB强大功能得以实现的载体和手段,是对MATLAB基本功能的重要扩充。MATLAB每年都会增加一些新的工具箱,所以,在一般情况下,工具箱的列表不是固定不变的,有关MATLAB工具箱的最新信息可以在http://www.mathworks.com/products中看到。
较为常见的MATLAB工具箱包括以下几类。
1.控制类工具箱
·控制系统工具箱(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)
2.应用数学类工具箱
·最优工具箱(Optimization Toolbox)
·样条工具箱(Spline Toolbox)
·统计工具箱(Statistics Toolbox)
·偏微分方程工具箱(Partial Differential Equation Toolbox)
3.信号处理类工具箱
·信号处理工具箱(Signal Processing Toolbox)
·滤波器设计工具箱(Filter Design Toolbox)
·通信工具箱(Communication Toolbox)
·小波分析工具箱(Wavelet Toolbox)
·高阶谱分析工具箱(Higher Order Spectral Analysis Toolbox)
4.其他常用的工具箱
·符号数学工具箱(Symbolic Math Toolbox)
·虚拟现实工具箱(Virtual Reality Toolbox)