您好,欢迎访问三七文档
1第4章MATLAB/Simulink下数学模型的建立与仿真主讲教师:朱永胜24.1Simulink模块库简介在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。1990年,MathWorks软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。SIMULINK的出现,给复杂系统分析与设计带来了福音。顾名思义,该软件的名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。3SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。4采用Scope模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。除此之外,用户还可以在改变参数后来迅速观看系统中发生的变化情况。仿真的结果还可以存放到MATLAB的工作空间里做事后处理。用Simulink创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。在定义完一个模型后,用户可以通过Simulink的菜单或MATLAB的命令窗口键入命令来对它进行仿真。菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。Simulink非常实用,应用领域很广,可使用的领域包括航空航天、电子、力学、数学、通信、影视和控制等。世界各地的工程师都在利用它来对实际问题建模,解决问题。Simulink具有非常高的开放性,提倡将模型通过框图表示出来,或者将已有的模型添加组合到一起,或者将自己创建的模块添加到模型当中。Simulink具有较高的交互性,允许随意修改模块参数,并且可以直接无缝地使用MATLAB的所有分析工具。对最后得到的结果可进行分析,并能够将结果可视化显示。5启动Simulink6Simulink下常用模块1.连续系统模块组Continuous2.非线性模块组Discontinuities3.离散系统模块组Discrete4.查表模块组Look-UpTables5.数学函数模块组MathOperations6.模型验证模块组ModleVerification7.模型工具模块组Modle-WideUtilities8.端口与子系统模块组Port&Subsystems9.信号属性模块组SignalAttributes10.信号模块组SignalRouting11.输出池模块组Sinks12.输入模块组Sources13.用户自定义函数模块组User-DefinedFunctions74.1.1信号源模块组SourcesModel&SubsystemInputsSignalGeneratorsUniformRandomNumberStepSineWaveSignal1SignalBuilderSignalGeneratorRepeatingSequenceStairRepeatingSequenceInterpolatedRepeatingSequenceRandomNumberRampPulseGeneratorGrounduntitled.matFromFilesiminFromWorkspace12:34DigitalClocklimCounterLimitedCounterFree-Running1ConstantClockChirpSignalBand-LimitedWhiteNoise1In184.1.2连续模块组ContinuousContinuous-TimeLinearSystemsContinuous-TimeDelays(s-1)s(s+1)Zero-PoleTiVariableTransportDelayToVariableTimeDelayTransportDelay1s+1TransferFcnx'=Ax+Buy=Cx+DuState-Space1sIntegratordu/dtDerivative94.1.3离散模块组DiscreteSample&HoldDelaysDiscrete-TimeLinearSystemsZero-OrderHoldWeightedMovingAveragez1UnitDelayz-0.75zTransferFcnRealZeroz-0.75z-0.95TransferFcnLeadorLag0.05zz-0.95TransferFcnFirstOrder4DelaysTappedDelayMemory-4ZIntegerDelayFirst-OrderHoldKTsz-1Discrete-TimeIntegratory(n)=Cx(n)+Du(n)x(n+1)=Ax(n)+Bu(n)DiscreteState-Space11+0.5z-1DiscreteFilterK(z-1)TszDiscreteDerivative(z-1)z(z-0.5)DiscreteZero-Pole1z+0.5DiscreteTransferFcnz-1zDifference104.1.4函数与表格模块组Look-UpTables114.1.5数学运算模块组MathOperationsVector/MatrixOperationsMathOperationsComplexVectorConversionsu+TsWeightedSampleTimeMath-uUnaryMinussinTrigonometricFunctionSumofElementsSumSubtract1SliderGaintSineWaveFunctionSignfloorRoundingFunctionU(:)ReshapeReImReal-ImagtoComplexProductofElementsProductP(u)O(P)=5PolynomialuRymin(u,y)MinMaxRunningResettableminMinMaxHorizCatMatrixConcatenationeuMathFunction|.|Magnitude-AngletoComplex1GainDotProductDivideRe(u)Im(u)ComplextoReal-Imag|u|uComplextoMagnitude-Angleu+0.0BiasU1-YU2-Y(E)YAssignmentf(z)zSolvef(z)=0AlgebraicConstraintAdd|u|Abs124.1.6非线性模块组DiscontinuitiesDiscontinuitiesWrapToZeroupuloySaturationDynamicSaturationRelayupuloRateLimiterDynamicRateLimiterQuantizerHitCrossingupuloyDeadZoneDynamicDeadZoneCoulomb&ViscousFrictionBacklash134.1.7输出池模块组SinksModel&SubsystemOutputsSimulationControlDataViewers1Out1XYGraphsimoutToWorkspaceuntitled.matToFileTerminatorSTOPStopSimulationScopeFloatingScope0Display144.1.8信号与系统模块组SignalRouting154.1.9子系统模块组Port&Subsystems16除了上述的各个标准模块组之外,随着MATLAB工具箱安装的不同,还有若干工具箱模块组和模块集(blockset),其他模块组如下图所示。174.2Simulink模型的建立打开模型编辑窗口;复制相关模块;修改模块参数;模块连接;系统仿真研究。18在Simulink中打开个空白的模型窗几有几种方法:在MATLAB的命令窗口中标题栏中选择File|New|Modle菜单项;单击Simulink工具栏中的“新建模型”图标;选中Simulink菜单系统中的File|New|Modle菜单项;还可使用new_system命令来建立新模型。new_system('A')open_system('A')19模块的选取当选取单个模块时,只要用鼠标在模块上单击即可,此时模块的角上出现黑色小方块。选取多个模块时,选取拖拽鼠标的方式把要选择的模块全部包围即可,若所有被选取的模块都出现小黑方块,则表示模块被选中。模块的复制、剪切、删除、移动应用【Edit】│【copy】/【cut】/【paste】/【clear】可对选取的模块进行复制,剪切,粘贴,删除等操作,如果要在同一窗口移动模块,则在模块选中的基础上,用鼠标进行拖拽并放在合适的位置。20模块的连接直接将两个模块的输出()与输入()端口相连即可,如果想快速连接,按【ctrl】。Simulink中几乎所有模块的参数Parameters都允许用户进行设置,只要双击要设置的模块即可。模块参数的设置21模块的外形的调整•改变模块的大小•调整模块的方向•给模块加阴影•模块名的显示与消隐•修改模块名22仿真参数的选择在Simulink中建立起系统模型框图后,运行菜单【Simulation】|【Start】就可以用Simulink对模型进行动态仿真。或者点击一般在仿真运行前需要对仿真参数进行设置,运行菜单【Simulation】|【Parameters】完成设置。23算法设置(Solver)在Solver里需要设置仿真起始和终止时间、选择合适的解法(Solver)并指定参数、设置一些输出选择。1、设置起始时间和终止时间(Simulationtime)【Simulation】|【Starttime】设置起始时间,而【Stoptime】设置终止时间,单位为“秒”。2、算法设置(Solveroption)(1)算法类型设置仿真的主要过程一般是求解常微分方程组,【Solveroption】|【Type】用来选择仿真算法的类型是变化的还是固定的。变步长解法可以在仿真过程中根据要求调整运算步长,在采用变步长解法时,应该先指定一个容许误差限(【Relativetolerance】或【Absolutetolerance】),使得当误差超过误差限时自动修正仿真步长,【Maxstepsize】用于设置最大步长,在缺省情况下为“auto”,并按下式计算最大步长:最大步长=(终止时间-起始时间)/5024(2)仿真算法设置离散模型:对变步长和定步长解法均采用discrete(nocontinuousstate)。连续模型:有变步长和定步长两种解法。变步长解法有:ode45、ode23、ode113、ode15s、ode23s、ode23t,ode23stode45:四阶/五阶Runge-Kutta算法,属
本文标题:计算机仿真第四章
链接地址:https://www.777doc.com/doc-5364703 .html