1Matlab编程及系统仿真华中科技大学文华学院控制系余愿信息学部B3132上课认真听讲课后认真复习、加以实践独立完成不定期课堂练习,不抄袭上机是学习本课程的重要环节,珍惜上机的时间学时安排:32(讲课)/8(实验)成绩=平时成绩+考试成绩30%70%3•MATLAB语言•控制系统计算机仿真•Simulink动态仿真集成环境•基于MATLAB的控制系统分析与设计本书内容:4第一章绪论1.1系统建模与仿真1.2Matlab相关知识简介51.1系统建模与仿真1.1.1系统、模型、仿真的基本概念1.1.2仿真软件的发展状况及应用61.1.1系统、模型、仿真的基本概念系统:系统是客观世界中实体与实体之间相互作用、相互依赖所构成的具有某种特定功能的有机体。特点:系统作为一个整体存在,各个部分、元素之间相互联系、不可分割。7模型:系统模型是对实际系统的一种抽象,是对系统本质(或是系统的某种特性)的一种描述。模型可视为对真实世界中的物体或过程的信息进行形式化的结果。特点:模型具有与系统相似的特性,可以以各种形式给出我们感兴趣的信息。•实体模型:与实物按一定比例制作的物理模型,如船模•数学模型:原始系统数学模型:对系统的原始数学描述,如加速度、概率密度函数等。仿真系统数学模型:适合在计算机上演算的数学模型。主要是根据计算机的运算特点、仿真方式、计算方法、精度要求将原始数学模型转换为计算机程序。1.1.1系统、模型、仿真的基本概念81.1.1系统、模型、仿真的基本概念仿真:以相似性原理、控制论、信息技术及相关领域的有关知识为基础,以计算机和各种专用物理设备为工具,借助系统模型对真实系统进行试验研究的一门综合性技术。实际系统模型计算机建模仿真9仿真的作用:仿真技术具有很高的科学研究价值和巨大的经济利益。由于仿真技术的特殊功效,特别是安全性和经济性,使得仿真技术得到广泛的应用。首先由于仿真技术在应用上的安全性,使得航空、航天、核电站等成为方技术最早的和最主要的应用领域。1.1.1系统、模型、仿真的基本概念101.1.2仿真软件的发展状况及应用仿真软件:仿真软件是一类面向仿真用途的专业软件,它可能是面向通用的仿真,也可以是面向某个领域的仿真。功能如下:(1)为仿真提供算法支持。(2)模型描述,用来建立计算机仿真模型。(3)仿真实验的执行和控制。(4)仿真数据的显示、记录和分析。(5)对模型、实验数据、文档资料和其他仿真信息的存储、检索和管理(即用于仿真数据信息管理的数据库系统)。111.1.2仿真软件的发展状况及应用根据软件功能,仿真软件可分为以下三个层次:(1)仿真程序库:有一组完成特定功能的程序组成的集合,专门面向某一问题或某一领域。它可能是用通用的语言(C++、FORTRAN等)开发的程序软件包,也可能是依附于某种集成仿真环境的函数库或模块库。(2)仿真语言:多属于面向专门问题的高级语言,它是针对仿真问题,在高级语言的基础上研制的。(3)集成仿真环境:它是一组用于仿真的软件工具的集合,包括设计、分析、编制系统模型、编写仿真程序、创建仿真模型,运行、控制、观察仿真实验,记录仿真数据,分析仿真结果,校验仿真模型等。121.1.2仿真软件的发展状况及应用计算机仿真的一般过程:第一步:根据仿真目的确定仿真方案根据仿真目的确定相应的仿真结构和方法,规定仿真的边界条件与约束条件。第二步:建立系统的数学模型根据系统的先验知识、实验数据及机理研究,按照物理原理或者采用系统辨识的方法,确定模型的类型、结构及参数。要确保模型的准确性和经济性。13第三步:建立仿真模型根据数学模型的形式、计算机类型、采用的高级语言或其它仿真工具,将数学模型转换为能在计算机上运行的程序或其它类型,获得系统的仿真模型。第四步:实验设定实验环境、条件和记录数据,进行实验,并记录数据。第五步:进行仿真实验并输出仿真结果通过实验对仿真系统模型及程序进行校验和修改,然后按系统仿真的要求输出仿真结果。1.1.2仿真软件的发展状况及应用1415计算机仿真技术发展阶段:1.硬件发展1.1.2仿真软件的发展状况及应用模拟计算机-数字计算机-使用基于数字计算机的仿真软件说明:模拟计算机即模拟电子计算机,其各个主要部件的输入量及输出量都是连续变化着的电压、电流等物理量。模拟计算机由若干种作用及数量不同的积分器、加法器、乘法器、函数发生器等部件组成、按照待研究问题的数学模型把一个部件的输出端与另一个或几个部件的输入端连接起来,用整个计算机的输出量与输入量之间的数学关系模拟所研究问题的客观过程。1.硬件发展162.软件发展1.1.2仿真软件的发展状况及应用•软件包(softwarepackage)类似windows或MATLAB工具箱中的文件夹。包括一个或一个系列具有一定功能的程序。软件包由一个基本配置和若干可选部件构成。•早期的数学软件包:针对数值计算连续系统仿真语言CSSL(ContinuousSystemSimulationLangusge)连续系统建模语言CSMP(ContinuousSystemModelingProgram)微分分析器置换语言DARE(DifferentialAnalyzerReplacement)171.1.2仿真软件的发展状况及应用•ACSL仿真语言—需模型文件—提供命令进行仿真、分析—直接调用FORTRAN—提供系统模块•MATLAB/SIMULINK•免费高功能仿真软件181.2Matlab相关知识简介1.2.1Matlab的发展历程1.2.2Matlab语言的特色1.2.3Matlab的安装1.2.4Matlab基础操作19CleveMoler和JohnLitter等人成立了一个名叫TheMathWorks的公司,于1984年推出了第一个MATLAB的商业版,该版本已经用C语言作出了修改。1.2.1MATLAB的发展历程1980年,美国新墨西哥州大学计算机主任CleveMoler在讲授线性代数课程时,发现了用其他高级编程语言编程极为不便,便构思开发了MATLAB(即MatrixLaboratory,意为“矩阵实验室”),用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。早期只能做矩阵运算,内部数十个函数,简单的绘图功能。其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使得Matlab的功能越来越强大。20Matlab的发展1984年,Matlab1.0版(DOS版,182K,20来个函数)1992年,Matlab4.0版(93年推出Windows版本)1994年,Matlab4.2,1999年,Matlab5.32000年,Matlab6.0,2002年,Matlab6.52004年,Matlab7.0,2006年,Matlab2006a2007年,Matlab2007a、b2008年,Matlab2008a、b……最新版Matlab2011b(7.12)目前,Matlab已经成为国际上最流行的科学与工程计算的软件工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言。就影响而言,至今仍然没有一个别的计算软件可与Matlab匹敌。21Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为本科生、硕士生以及博士生必须掌握的基本技能。22数值计算功能Matlab是一个交互式软件系统给出一条命令,立即就可以得出该命令的结果Matlab以矩阵作为基本单位,但无需预先指定维数(动态定维)按照IEEE的数值计算标准进行计算提供十分丰富的数值计算函数,方便计算,提高效率Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握符号运算功能和著名的Maple相结合,使得Matlab具有强大的符号计算功能绘图功能Matlab提供了丰富的绘图命令,能实现一系列的可视化操作1.2.2Matlab的语言特色23编程功能Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。丰富的工具箱(toolbox)Matlab包含两部分内容:基本部分和根据专门领域中的特殊需要而设计的各种可选工具箱。Simulink动态仿真集成环境提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能。PDEOptimizationSymbolicMathSignalprocessImageProcessStatisticsControlSystemSystemIdentification……241.2.3Matlab的安装•硬件要求x86:•软件要求Windows:Linux:Adobeacrobatreader25学习途径•参考书目:《基于MATLAB、Simulik的系统仿真技术与应用》薛定宇•学习网站:1.Matlab官方网站:中国:中文爱好者论坛:(推荐)4.Matlab中文论坛:命令窗口当前工作目录当前工作空间输入命令的历史记录命令提示符271.2.4Matlab基础操作一、MATLAB语言的显著特点1、具有强大的矩阵运算能力:MatrixLaboratory(矩阵实验室),使得矩阵运算非常简单。2、是一种演算式语言•MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。因此MATLAB语言编程简单,使用方便。例exp2_1.m28二、MATLAB命令窗口1、启动MATLAB命令窗口•计算机安装好MATLAB之后,双击MATLAB图标,就可以进入命令窗口,此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。•MATLAB语句形式变量=表达式;通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。292、命令行编辑器(1)方向键和控制键可以编辑修改已输入的命令:回调上一行命令:回调下一行命令(2)多行命令(…)•如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。•S=1-12+13+4+…9-4-18;30三、简单的数学运算(例exp2_2.m)1、常用的数学运算符+,—,*(乘),/(右除),\(左除),^(幂)在运算式中,MATLAB通常不需要考虑空格;多条命令可以放在一行中,它们之间需要用分号隔开;逗号告诉MATLAB显示结果,而分号则禁止结果显示。2、常用数学函数abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real,sign,log,log10,conj等教材P16见表1-331四、MATLAB的工作空间1、MATLAB的工作空间包含了一组可以在命令窗口中调整(调用)的参数•who:显示当前工作空间中所有变量的一个简单列表例如:who得到结果:yourvariableare:aansbcd•whos:则列出变量的大小、数据格式等详细信息•c