MATLAB/Simulink/C语言/C++/VC++编程援助联系方式:QQ:993878382Email:993878382@qq.com编程博客:如果我QQ不在线,请将问题发到我的邮箱,或者在我的博客留言,第一时间答复你!还可以为公司和科研单位设计各类算法,欢迎前来咨询!郑重声明:本资源来源于网络,仅限交流使用,请勿用于商业用途!SIMULINK(1)SIMULINK(1)快速入门快速入门首先介绍计算机仿真技术和仿真建模方法的基本概念,以便对建模和仿真有个初步和整体的认识;然后对Simulink进行简单介绍,并以一个简单例子进行引导;最后介绍Simulink的工作原理,为后续的深入掌握Simulink打下基础。本章主要内容和学习目的z动态系统的计算机仿真z仿真三要素zSimulink与建模仿真zSimulink的安装z创建一个简单模型z模型基本结构1.1动态系统的计算机仿真1.1.1系统与模型1.系统系统只指具有某些特定功能、相互联系、相互作用的元素的集合。这里的系统是指广义上的系统,泛指自然界的一切现象与过程,例如工程系统如控制系统、通讯系统等,非工程系统如股市系统、交通系统、生物系统等。2.系统模型系统模型是对实际系统的一种抽象,是对系统本质(或是系统的某种特性)的一种描述。模型具有与系统相似的特性。好的模型能够反映实际系统的主要特征和运动规律。模型可以分为实体模型和数学模型。静态系统模型动态系统模型连续系统模型离散系统模型集中参数分布参数微分方程偏微分方程差分方程代数方程实体模型又称物理效应模型,是根据系统之间的相似性而建立起来的物理模型,如建筑模型等。数学模型包括原始系统数学模型和仿真系统数学模型。原始系统数学模型是对系统的原始数学描述。仿真系统数学模型是一种适合于在计算机上演算的模型,主要是指根据计算机的运算特点、仿真方式、计算方法、精度要求将原始系统数学模型转换为计算机程序。1.1.2计算机仿真仿真是以相似性原理、控制论、信息技术及相关领域的有关知识为基础,以计算机和各种专用物理设备为工具,借助系统模型对真实系统进行试验的一门综合性技术。1.仿真的概念2.仿真分类(1)实物仿真:又称物理仿真。是指研制某些实体模型,使之能够重现原系统的各种状态。早期的仿真大多属于这一类。缺点:投资巨大、周期长,难于改变参数,灵活性差。优点:直观,形象,至今仍然广泛应用。(2)数学仿真:是用数学语言去描述一个系统,并编制程序在计算机上对实际系统进行研究的过程。(3)半实物仿真:又称数学物理仿真或者混合仿真。为了提高仿真的可信度或者针对一些难以建模的实体,在系统研究中往往把数学模型、物理模型和实体结合起来组成一个复杂的仿真系统,这种在仿真环节中存在实体的仿真称为半物理仿真或者半物理仿真,如飞机半实物仿真等。优点:灵活性高,便于改变系统结构和参数,效率高(可以在很短时间内完成实际系统很长时间的动态演变过程),重复性好缺点:对某些复杂系统可能很难用数学模型来表达,或者难以建立其精确模型,或者由于数学模型过于复杂而难以求解3.计算机仿真计算机仿真是在研究系统过程中根据相似性原理,利用计算机来逼真模拟研究系统。研究对象可以是实际的系统,也可以是设想中的系统。在没有计算机以前,仿真都是利用实物或者它的物理模型来进行研究的,即物理仿真。物理仿真的优点是直接、形象、可信,缺点是模型受限、易破坏、难以重用。计算机仿真可以用于研制产品或设计系统的全过程,包括方案论证、技术指标确定、设计分析、故障处理等各个阶段。如训练飞行员、宇航员的方针工作台和仿真机舱等。1.2仿真的三要素计算机仿真的三个基本要素是系统、模型和计算机,联系着它们的三项基本活动是模型建立、仿真模型建立(又称二次建模)和仿真试验。数学仿真采用数学模型,用数学语言对系统的特性进行描述,其工作过程是:z建立系统的数学模型;z建立系统仿真模型,即设计算法,并转化为计算机程序,使系统的数学模型能为计算机所接受并能在计算机上运行;z运行仿真模型,进行仿真试验,再根据仿真试验的结果进一步修正系统的数学模型和仿真模型。1.3Simulink与建模仿真1.3.1Simulink1.3.2Simulink的应用领域Simulink是一种用来实现计算机仿真的软件工具。它是MATLAB的一个附加组件,可用于实现各种动态系统(包括连续系统、离散系统和混合系统)的建模、分析和仿真。特点:易学易用,能够依托MATLAB提供的丰富的仿真资源(1)通讯与卫星系统;(2)航空航天系统;(4)船舶系统;(6)金融系统;(3)生物系统;(5)汽车系统;(7)控制系统。1.3.3Simulink应用举例(原教材P6例子)在Matlab命令窗口中输入dblcart1DoubleMass-SpringSystem(Doubleclickonthe?formoreinfo)Tostartandstopthesimulation,usetheStart/StopselectionintheSimulationpull-downmenuIn1Out1Stateestimatorx'=Ax+Buy=Cx+DuPlantDoubleclickhereforSIMULINKHelp?Inputs&Sensors1In1In2Out1Inputs&SensorsKFeedbackgainusingLQRdesign.EstimatedPositionDemuxcrtanim2AnimationfunctionActualPosition右图所示的模型用来模拟双质量-弹簧系统在光滑平面上受一个周期力情况下的运动状态,其中周期力只作用在左边的质量块上。F(t)此模型中使用了状态判断和LQR控制。模型中还有几个“隐藏了真实身份”的子系统,如图中的Inputs&Sensors模块和Stateestimator模块。双击后可看到它们的“真实面目”。1Out1MuxInputs&Sensors2In21In11Out1x'=Ax+Buy=Cx+DuStateestimator1In1DoubleMass-SpringSystem(Doubleclickonthe?formoreinfo)Tostartandstopthesimulation,usetheStart/StopselectionintheSimulationpull-downmenuIn1Out1Stateestimatorx'=Ax+Buy=Cx+DuPlantDoubleclickhereforSIMULINKHelp?Inputs&Sensors1In1In2Out1Inputs&SensorsKFeedbackgainusingLQRdesign.EstimatedPositionDemuxcrtanim2AnimationfunctionActualPosition运行菜单选项【SimulationStart】,则屏幕上出现双质量-弹簧系统运动状态的动画图形。模型中的ActuralPosition模块和EstimatedPosition模块用来显示在一个周期内的左边质量块的位置轨迹。1.4Simulink的安装系统要求:奔腾100以上CPU,16MB以上内存,Windows9x或WindowsNT安装:随MATLAB安装或单独安装。启动Simulink:首先启动MATLAB,然后在MATLAB窗口中单击上面的Simulink按钮或在命令窗口中输入simulink。1.5创建一个简单模型两个例子例子1⎩⎨⎧==0)0()sin()(xttx&Cttx+−=)cos()(1=C1)cos()(+−=ttxC为常数利用初始条件步骤一:添加模块SineWaveScope1sIntegrator01234567891000.20.40.60.811.21.41.61.82SineWaveScope1sIntegrator步骤二:连接模块步骤三:运行仿真创建模型步骤从源模块库(Sources)中复制正弦波模块(SineWave)。连续模块库(Continuous)复制积分模块(Integrator)。输出显示模块库(Sinks)复制示波器模块(Scope)。双击示波器模块,打开Scope窗口。双击模型窗口菜单中的【SimulationStart】,仿真执行,结果如图所示。⎩⎨⎧==0)0()sin()(xttx&1)cos()(+−=ttx)cos()(ttx−=⎩⎨⎧−==1)0()sin()(xttx&如果将以上算例的初始条件改为:1)0(−=x0=C利用初始条件系统的解析解为:在仿真时,需要将积分模块的初始值设置为-1,最终可以得到标准的余弦曲线1s012345678910-1-0.8-0.6-0.4-0.200.20.40.60.81SineWaveScope1sIntegratorSimulink模型:例子20=++kxxcxm&&&0)0(,1)0(00====xxxx&&⎥⎦⎤⎢⎣⎡++=−)sin()cos()(00000txxtxetxdddtωωζωωζω&解析解为:初始条件:单自由度系统:其中:要求:采用Simulink对系统进行仿真。已知参数:1,1,1===kcmmk=0ω系统固有频率201ζωω−=d阻尼固有频率kmc2=ζ相对阻尼系数0=++kxxcxm&&&0)0(,1)0(00====xxxx&&已知参数:1,1,1===kcm0=++xmkxmcx&&&1s积分得到位移1s积分得到速度1k/m1c/mScope初值设置为1初值设置为0x&&x&x051015-0.6-0.4-0.200.20.40.60.81如果系统中没有阻尼,则动力方程为:0=+kxxm&&0)0(,1)0(00====xxxx&&)sin()cos()(00000txtxtxωωω&+=解析解为:初始条件:其中:已知参数:1,1==kmmk=0ω系统固有频率0=+kxxm&&0)0(,1)0(00====xxxx&&初始条件:已知参数:1,1==km0=+xmkx&&1s积分得到位移1s积分得到速度Scope-1-k/m初值为1初值为0x&&x&x051015-1-0.8-0.6-0.4-0.200.20.40.60.811.6模型基本结构一个典型的Simulink模型包括如下三种类型的元素:信号源模块被模拟的系统模块输出显示模块源模块系统模块显示模块Simulink模型元素关联图¾信号源为系统的输入,它包括常数信号源、函数信号发生器(如正弦波和阶跃函数波等)和用户自己在MATLAB中创建的自定义信号。¾系统模块作为中心模块是Simulink仿真建模所要解决的主要部分。¾系统的输出由显示模块接收。输出显示的形式包括图形显示、示波器显示和输出到文件或MATLAB工作空间中三种。输出模块主要在Sinks库中。SIMULINK(2)SIMULINK(2)建模方法建模方法z本章介绍一些模块的特殊操作,如模块操作、信号线操作、模型注释等,对模块和信号线有一个整体认识,以便为后续的动力学建模和仿真打下基础。本章内容和学习目的z掌握模块操作、信号线操作、模型注释的基本技巧。2.1打开模型2.2模块操作2.3信号线操作2.4模型注释2.5创建一个复杂模型2.6模型和图形拷贝到Word文档中2.1打开模型1.新建模型2.打开一个已存在的模型方法1:通过【FileOpen】命令;方法2:在MATLAB命令窗中直接键入模型名。2.2.1调整模块大小2.2模块操作2.2.2旋转模块2.2.3模块的内部复制方法1:先按Ctrl键,再单击模块方法2:右键拖曳模块方法3:【EditCopy】和【EditPaste】方法4:选中模块,Ctrl+C复制,Ctrl+V粘贴⎪⎪⎪⎩⎪⎪⎪⎨⎧选中模块,模块四角出现小方块,然后按住鼠标拖曳选中模块,然后选择菜单命令【FormatRotate】,模块将顺时针方