毕业设计(论文)
2 仿真软件
2.1 Matlab的简介
Matlab和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十
分相似,故用Matlab来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,Java的支持。可以直接调用,用户也可以将自己编写的实用程序导入到Matlab函数库中方便自己以后调用,此外许多的Matlab爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 Matlab的特点:
(1)、此高级语言可用于技术计算
(2)、此开发环境可对代码、文件和数据进行管理 (3)、交互式工具可以按迭代的方式探查、设计及求解问题
(4)、数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等 (5)、二维和三维图形函数可用于可视化数据 (6)、各种工具可用于构建自定义的图形用户界面
(7)、各种函数可将基于Matlab的算法与外部应用程序和语言(如 C、C++、
Fortran、Java、COM 以及 Microsoft Excel)集成[2]
(8)、不支持大写输入,内核仅仅支持小写 Matlab的优势:
(1)友好的工作平台和编程环境
Matlab由一系列工具组成。这些工具方便用户使用Matlab的函数和文件,其中许多工具采用的是图形用户界面。包括Matlab桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着
Matlab的商业化以及软件本身的不断升级,Matlab的用户界面也越来越精致,更
加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的Matlab
5
毕业设计(论文)
提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2)简单易用的程序语言
Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的Matlab语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是Matlab能够深入到科学研究及工程计算各个领域的重要原因。 (3)强大的科学计算机数据处理能力
Matlab是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用Matlab的编程工作量会大大减少。Matlab的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。 (4)出色的图形处理功能
Matlab自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表
现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的Matlab对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如:图形的光照处理、色度处理以及四维数据的表现等),Matlab同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,Matlab也有相应的功能函数,保证了用户不同层次的要求。另外新版本的Matlab还着重在
6
毕业设计(论文)
图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
Matlab对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,Matlab已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。 (6)实用的程序接口和发布平台
新版本的Matlab可以利用Matlab编译器和C/C++数学库和图形库,将自己的
Matlab程序自动转换为独立于Matlab运行的C和C++代码。允许用户编写可以和Matlab进行交互的C或C++语言程序。另外,Matlab网页服务程序还容许在Web
应用中使用自己的Matlab数学和图形程序。Matlab的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是Matlab函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。 (7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
2.2 Simulink的简介
Simulink是Matlab最重要的组件之一,它提供一个动态系统建模、仿真和综
合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Simulink是Matlab中的一种可视化仿真工具, 是一种基于Matlab的框图设
7
毕业设计(论文)
计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与Matlab 紧密集成,可以直接访问Matlab大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。 Simulink的特点:
(1)丰富的可扩充的预定义模块库
(2)交互式的图形编辑器来组合和管理直观的模块图
(3)以设计功能的层次性来分割模型,实现对复杂设计的管理
(4)通过Model Explorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码
(5)提供API用于与其他仿真程序的连接或与手写代码集成
(6)使用Embedded Matlab? 模块在Simulink和嵌入式系统执行中调用
Matlab算法
(7)使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,Rapid
Accelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型
(8)图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为 (9)可访问Matlab从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据
(10)模型分析和诊断工具来保证模型的一致性,确定模型中的错误。
8