您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > MATLAB仿真关键技术与应用
Step1sIntegratorx21sIntegrator1x1Scope5例2-1已知一种系统微分方程为:dx1xdtdx2u5xdt1其中,状态变量初始条件x(0)x2(0)0,输入u为阶跃函数,规定运用SIMULINK对系统建立仿真模型,并绘制时域响应曲线。在运用SIMULINK创立模型之前,先把微分方程进行拉普拉斯变换,得到每个微分方程传递函数,即用传递函数形式表达系统。Gain连接信号之后系统模型图exam2_1系统时域响应曲线例7-9一种控制系统由5个子系统构成,构成构造如下图21s+52s2+15s+6TransferFcn4s+24s2+22s+40TransferFcn2s+1Step10s+10TransferFcn1Adds2+3s+6TransferFcn3Scope0.1各子系统传递函数分别为:G(s)s25s1,G(s)4(s6),G(s)10,G(s)s1,H(s)0.112s215s62(s2)(s20)3s104s23s6试在MATLAB中分别用仿真模块建模和仿真命令编程两种办法进行仿真,并绘制系统阶跃响应曲线图。一方面在Simulink环境下将所需要仿真模块连接起来,并将各模块参数设立好。H系统仿真模型图exam7_9系统阶跃响应MATLAB程序如下:R(s)G1(s)G2(s)Y(s)G4(s)G3(s)H(s)%controlsystemsimulationclearall;clc;num1=[151];den1=[2156];G1=tf(num1,den1);z=-6;p=[-2;-20];k=4;G2=zpk(z,p,k);G3=tf(10,[110]);num4=[11];den4=[136];G4=tf(num4,den4);H=0.1;Gf=(G1*G2+G3)*G4;G=feedback(Gf,H);GG=tf(G);step(G);%axis([01000.35])gridon程序运营后得到阶跃响应曲线如图所示。系统阶跃响应程序运营成果为:Zero/pole/gain:12(s+0.3845)(s+1)(s+2.199)(s+7.054)(s+18.45)(s+19.99)(s+9.88)(s+7.077)(s+1.993)(s+0.4234)(s^2+3.137s+6.217)Transferfunction:12s^5+349s^4+2699s^3+6654s^2+5612s+1320s^7+42.5s^6+628.7s^5+4227s^4+1.441e004s^3+2.788e004s^2+2.684e004s+7332从成果可以看出,采用仿真模块建模实现仿真办法与采用仿真命令实现仿真办法得到仿真成果是完全相似。采用哪一种办法进行仿真,可以依照实际状况而定。普通说来,采用仿真模块建模实现仿真办法更简朴、以便,但采用仿真命令实现仿真办法更灵活。StepResponse0.350.30.250.2pmA0.150.10.05000.511.52Time(sec)2.533.54sin(t)XYGraph2.4.1运用输出模块分析运用SIMULINK输出模块进行仿真成果分析输出有如下几种办法:观测输出轨迹;以文献形式输出;直接显示数据输出;用表盘和量计显示输出;进行数字信号解决、分析输出。1.观测输出轨迹⑴信号输入到Scope模块或XYGraph(相轨迹示波器)模块观测输出轨迹。sin(2t)图exam2_21Step1sIntegratorx21sx1Integrator11Out15⑵将输出信号写入返回变量,并运用MATLAB命令绘图在仿真结束后,在MATLAB工作空间自动生成两个变量tout和yout,分别返回时间矢量和各个输出端子仿真成果。执行plot(tout,yout)得图示成果。Gain图exam2_230.40.350.30.250.20.150.10.050012345678910Step1sIntegratorx21sx1simoutIntegrator1ToWorkspace5x1untitled.mat⑶使用ToWorkspace模块把输出写入到MATLAB工作空间,然后通过MATLAB绘图命令绘制输出轨迹。StepIntegratorGainIntegrator1ToWorkspace图exam2_252.以文献形式输出仿真成果GainToFile运用输出模块中Tofile模块可以将仿真成果以Mat文献格式直接保存到数据文献中。3.直接显示数据输出4.表盘和量计显示输出Dials&Gauges5.信号解决、分析输出DSP模块、SIMULINKExtra模块sin(2t)图exam2_292.5子系统随着研究系统越来越大,越来越复杂,直接使用基本SIMULINK模块创立系统模型会十sin(t)AddPowerSpectralDensity1In1Kp1sIntegratorGainAdd1Out1du/dt1In1In1Out11Out11In1In1Out11Out1分庞大,并且信号传播方向也会变得十分不明显。为了简化模型以及增长它可读性,可以将某些独立功能模块化提成一组,构成子系统。2.5.1子系统创立使用子系统不但可以使仿真模型中显示模块数量减少,便于读图,并且还建立了层次化仿真模型框图,子系统模块在一种层次,构成各个子系统模块在此外一种层次。创立子系统办法有两种:一种是运用模型中已经存在模块创立子系统;另一种是通过向子系统模块加入新模块创立子系统。1.通过已有模块创立子系统Derivative图exam2_33SubsystemPIDController通过比例、微分、积分模块创立PID控制器子系统详细环节:⑴选中构成PID控制器所有模块;⑵执行Edit/Createsubsystem命令,则会把已经选中模块装入一种名为subsystem模块中。2.通过子系统模块创立子系统Simulink\CommonUsedBlocks\Subsystem复制一种Subsystem模块到仿真模型窗口,然后双击该模块,产生一种模型窗口,最后运用创立SIMULINK仿真模型办法把子系统包括所有模块复制到其中,对其进行信号连接。创立PID控制器子系统详细过程:2.5.2子系统封装运用前面简介办法创立子系统,到达了简化模型、提高模型可读性目。但是这样建立子系统要从MATLAB工作空间直接获取变量,与SIMULINK模块库中基本模块尚有很大差别,存在着不少缺陷。因而,需要对所创立子系统进行封装,进一步完善子系统。所谓子系统封装技术就是将相应子系统内部构造隐藏起来。这样在访问此子系统模块时就只浮现一种参数设立对话框,只要将所需要变量参数输入到对话框中即可。事实上,SIMULINK基本模块也是子系统封装后得到,因此子系统封装之后与基本模块是一致。子系统封装过程如下:⑴选中已创立子系统,在仿真模型窗口菜单栏执行Edit/Masksubsystem命令,将会打开MaskEditor对话框。⑵运用封装编辑器可以实现子系统对话框设计。需要设计内容重要涉及子系统图形标示、变量参数以及模块描述和协助信息。⑶关闭封装编辑器,则得到了新建封装之后子系统模块。1.封装编辑器⑴Icon选项卡①Masktype文本框:可以任意填写,它接受中、英文输入。②Drawingcommands(图形标示命令)文本框:对封装后子系统进行图形标记。可以使用plot命令绘制图形,可以使用disp命令在子系统图标上写入字符串名称,可以使用image函数进行图像显示。③Iconframe(标记边框):设立模块图标与否有边框,VisibleorInvisible。④Icontransparency(标记透明):OpaqueorTransparent。默认值Opaque:图标上图形会将子系统模块端口信息覆盖。⑤Iconrotation:FixedorRotates.默认值Fixed,表达在旋转或反转子系统模块时,图标不会随之旋转或翻转。Rotates,则表达在旋转或反转子系统模块时,图标会随之旋转或翻转。⑥Drawingcoordinates(units):Autoscal\Pixelse\Normalized.默认格式Autoscale⑵Initialization选项卡在进行子系统模块封装时,最重要一步就是设计子系统模块变量参数设立对话框,这需要在Initialization选项卡中完毕,可以对封装子系统模块参数设立对话框进行变量参数提示与设立设计。Initializationcommands,用于定义生成封装子系统模块过程中所需要变量。例如,封装系统模块过程中如果使用MATLABplot绘制模块图标,在此可以定义所需要变量。⑶Documentation选项卡Documentation选项卡提供应顾客编写封装子系统模块性质阐明和协助信息。Masktype\Blockdescription\Blockhelp2.封装实例:PID控制器子系统模块封装⑴模块显示“PIDController”:在Drawingcommands中输入disp(‘PIDController’)。PIDController⑵在Parameters(此前版本在Initialization中)选项卡中设计封装后子系统参数设立对话框,PID控制器需要传递变量参数有3个,单击Add按钮3次,即生成3个需要传递变量位置。⑶在Documentation选项卡中,为PID控制器子系统模块添加文字阐明。1In1PIDController1Out12.5.3条件执行子系统在simulink模块库中,Enable模块和Trigger模块是比较特殊模块,如果把这样模块放到某个子系统中,该子系统会在给定控制信号控制下执行,这样子系统称为条件执行子系统(conditionallyexecutedsubsystem)。1.EnabledsubsystemEnabledsubsystem只有控制信号为正时,才执行子系统,否则禁止执行。事实上,它就是数字电路中电平触发。当它处在禁止状态时,为了保持系统输出持续性,它也有信号输出。In1Out1顾客可以选取继续保持禁止前信号输出,也可以将子系统强制复位再指定输出值。⑴Simulink\Ports&Subsystems\EnabledSubsystemEnabledSubsystemIn1Out1⑵设立Enable模块参数办法:一方面双击Enable模块,然后进行设立heldorreset。⑶通过选通showoutputport复选框以设立与否容许系统输出使能控制信号。⑷EnabledsubsystemOut1模块,设立Enabledsubsystem在禁止状态下输出信号。Enable11TriggeredSubsystem在Outputwhendisabled中,如果选取held,则在禁止状态下输出将保持禁止前状态值;如果选取reset,则子系统被强制复位,并且此时输出需要在InitialOutput中设立。⑸使用Enablesubsystem模块实现半波整流系统仿真。半波整流系统在输入信号为正时,输出原信号,否则输出为零。SineWaveEnabledSubsystemScope图exam2_45In1Out1112.TriggeredsubsystemTriggeredsubsystem是在触发信号发生瞬间执行子系统,然后保持子系统输出状态,直到下一种触发信号到来。EnabledSubsystem⑴Simulink\Ports&Subsystems\TriggeredSubsystemTriggeredSubsystemIn1TriggerOut1⑵顾客可以对触发信号进行如下设立:In1Out1PulseGeneratorIn1Out1TriggeredSubsystemScope①上升沿触发:②下降沿触发:③边沿触发:当输入信号发生变化时
本文标题:MATLAB仿真关键技术与应用
链接地址:https://www.777doc.com/doc-8762321 .html