您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 第8章MATLAB线性控制系统的分析
第8章线性控制系统的分析8.1控制系统的数学模型8.2时域分析的MATLAB实现8.3频域分析的MATLAB实现8.4根轨迹分析的MATLAB实现8.5稳定性分析的MATLAB实现8.6稳态误差分析的MATLAB实现8.7状态分析的MATLAB实现8.8线性定常系统分析与设计的图形工具8.9综合实例介绍8.1控制系统的数学模型8.1.1创建系统的模型并相互转换1.传递函数模型sys=tf(num,den,Ts)%由分子分母得出传递函数sys=tf(num,den,Ts,‘Property1’,v1,‘Porperty2’,v2,…)%创建传递函数并设置属性nnnnmmmmasasasbsbsbsbG(s)1111121nnnnmmmmazazazbzbzbzbG(z)1111121例8-1创建连续二阶系统,已知传递函数模型为num1=5;den1=[122];sys1=tf(num1,den1)%创建传递函数2252ssG(s)sys1t=tf(num1,den1,'inputdelay',2)%创建带延迟环节的传递函数sessG(s)22225num2=[0.50];den2=[1-1.50.5];sys2=tf(num2,den2,-1)%创建脉冲传递函数5051502.z.zz.G(z)2.零极点增益模型G=zpk(z,p,k,Ts)%由零点、极点和增益创建模型G=zpk(z,p,k,'Property1',v1,'Porperty2',v2,…)%创建模型并设置属性例:创建z=-0.5;p=[-0.1+j-0.1-j];k=2;G=zpk(z,p,k)%创建zpk模型)p(s)p)(sp(s)z(s)z)(sz(sKG(s)nm2121)p(z)p)(zp(z)z(z)z)(zz(zKG(z)nm2121)1.0)(1.0()5.0(2)(jsjsssG3.状态方程模型G=ss(a,b,c,d,Ts)%由a、b、c、d参数创建模型G=ss(a,b,c,d,Ts,'Property1',v1,'Porperty2',v2,…)%创建模型并设置属性DuCxyBuAxxDu(k)Cx(k))y(kBu(k)Ax(k))x(k114.模型的转换5.连续系统与离散系统模型的转换MATLAB控制工具箱提供了c2d、d2c和d2d函数实现连续系统和离散系统的相互转换。传递函数模型(tf)状态空间模型(ss)零极点增益模型(zpk)ss2tftf2sszp2sstf2zpzp2tfss2zp例8-3创建连续系统的零极点增益模型,并转换为传递函数和状态空间模型,零极点增益模型为z=-0.5;p=[-0.1+j-0.1-j];k=2;G=zpk(z,p,k)%创建zpk模型[num,den]=zp2tf(z,p,k);G11=tf(num,den)%转换为传递函数模型)1.0)(1.0()5.0(2)(jsjsssG8.1.2系统的模型参数2.获取模型的参数(1)获取模型参数的函数tfdata、zpkdata和ssdata、dssdata函数分别用来获取传递函数模型、零极点增益模型和状态方程模型的参数,这些函数名都是在创建模型的函数名后面加“data”。(2)获取模型尺寸的函数n=ndims(sys)%获取模型的维数d=size(sys,n)%获取模型的参数d=size(sys,'order')%获取模型的阶数3.使用get和set函数(1)set函数set(sys,'property1',value1,'property2',value2,…)%设置系统属性(2)get函数value=get(sys,'property')%获取当前系统的属性8.1.3系统模型的连接和简化1.串联环节G=series(G1,G2,outputs1,inputs1)也可以直接使用G=G1*G22.并联环节G=parallel(G1,G2,in1,in2,out1,out2)也可以直接使用:G=G1+G2u(t)G1(s)G2(s)y(t)y(t)u(t)G1(s)G2(s)3.反馈环节G=feedback(G1,G2,feedin,feedout,sign)%计算反馈模型说明:G1和G2模型必须都是连续系统或采样周期相同的离散系统;sign表示反馈符号,当sign省略或=-1时为负反馈;feedin和feedout分别是G2的输入端口和G1的输出端口,可省略,当省略时G1与G2端口正好对应连接。±y(t)u(t)G1(s)G2(s)4.复杂模型的连接(1)对框图中的每个环节进行编号并建立它们的对象模型,环节是指一条单独的通路;(2)建立无连接的状态空间模型,使用append函数实现,append的命令格式如下:G=append(G1,G2,G3,…)(3)写出系统的联接矩阵QQ是联接矩阵,第一列是各环节的编号,其后各列是与该环节连接的输入通路编号,如果是负连接则加负号;(4)列出系统总的输入和输出端的编号,使用inputs列出输入端编号,outputs列出输出端的编号;(5)使用connect函数生成组合后系统的状态空间模型,connect函数的命令格式为:Sys=connect(G,Q,inputs,outputs)例8-7根据图8-6所示的模型结构框图计算模型的总传递函数,其中R1=1,R2=2,C1=3,C2=4。练习(1)有8条通路即8个环节,写出每个环节的传递函数模型;r1=1;r2=2;c1=3;c2=4;G1=1/r1;G2=tf(1,[c10]);G3=1;G4=-1;G5=1/r2;G6=tf(1,[c20]);G7=-1;G8=-1;(2)建立无连接的状态空间模型;G=append(G1,G2,G3,G4,G5,G6,G7,G8)(3)写出系统的联接矩阵Q;Q=[140%通路1的输入是通路4217%通路2的输入是通路1和7320420538650750860];(4)列出系统总的输入和输出端的编号;inputs=1;outputs=6;(5)使用connect函数生成组合后系统的状态空间模型;Sys=connect(G,Q,inputs,outputs)8.1.4将Simulink模型结构图转化为系统模型MATLAB提供了linmod和linmod2函数命令将Simulink模型转换为数学模型。例8-8根据图8-6的模型结构框图在Simulink环境中创建系统模型,使用函数命令转化为传递函数。r1=1;r2=2;c1=3;c2=4;[A,B,C,D]=linmod('ex8_8');%将mdl模型转换为状态空间模型[num,den]=ss2tf(A,B,C,D);sys=tf(num,den)8.2时域分析的MATLAB实现8.2.1使用拉氏变换和逆变换计算时域响应例8-9使用拉氏变换和逆变换计算输入信号为阶跃信号和脉冲信号的系统输出响应,已知系统的传递函数为。symsst;rs=laplace(heaviside(t));%阶跃信号fs=1/(0.5*s^2+s+1);cs=rs*fs;ct=ilaplace(cs)%阶跃响应表达式ct=-exp(-t)*cos(t)-exp(-t)*sin(t)+115.01)(2sss8.2.2线性系统的时域分析1.阶跃响应step(G,T)%绘制系统G的阶跃响应曲线[y,t,x]=step(G,T)%得出系统G的阶跃响应数据2.脉冲响应系统的脉冲响应使用impulse函数命令绘制,命令格式与step函数相同。3.斜坡响应和加速度响应斜坡响应=阶跃响应*1/s加速度响应=阶跃响应*1/s^2例8-10使用step和impulse函数绘制系统的阶跃响应和脉冲响应,已知系统的传递函数为num=1;den=[0.511];G=tf(num,den)Transferfunction:1---------------0.5s^2+s+1subplot(211);step(G)%绘制阶跃响应subplot(212);impulse(G)%绘制脉冲响应15.01)(2sss4.任意输入响应lsim(G,U,T)%绘制系统G的任意响应曲线[y,t,x]=lsim(G,U,T)%得出系统G的任意响应数据5.零输入响应initial(G,x0,T)%绘制系统G的零输入响应曲线[y,t,x]=initial(G,x0,T)%得出系统G的零输入响应的数据6.离散系统响应例8-12使用lsim函数绘制正弦响应曲线,系统的传递函数为,绘制的曲线如图8-11所示。t=0:0.1:10;u=sin(t);G=tf(1,[21])Transferfunction:1-------2s+1lsim(G,u,t)%正弦响应8.2.3线性系统的结构参数与时域性能指标1.线性系统的结构参数(1)pole和zerop=pole(G)%获得系统G的极点z=zero(G)%得出系统G的零点(2)pzmappzmap(G)%绘制系统的零极点分布图[p,z]=pzmap(G)%获得系统的零极点值(3)damp[wn,zeta,p]=damp(G)%获得G的阻尼系数、固有频率和极点(4)sgridsgrid(z,wn)%绘制s平面网格并指定z和wn例8-15获得系统的阻尼系数和固有频率,并绘制其s平面网格,系统的传递函数为。num=[1];den=[11.4141];G=tf(num,den);[wn,z,p]=damp(G)%获取阻尼系数和固有频率pzmap(G);sgrid(z,wn)1414.11)(2sssG2.时域分析的性能指标在自动控制原理中,时域分析常用的系统性能指标有超调量σp、上升时间tr、峰值时间tp和过渡时间ts,通过性能指标来分析系统暂态性能的稳定性。例:detap=exp(-pi*zeta/sqrt(1-zeta^2))*100%计算超调量tr=(pi-acos(zeta))/(wn*sqrt(1-zeta^2))%计算上升时间8.3频域分析的MATLAB实现8.3.1线性系统的频域分析1.线性系统的幅频特性和相频特性Gw=freqresp(G,w)%计算w处系统G的频率特性的实部和虚部2.nyquist曲线nyquist(G,w)%绘制系统G的nyquist曲线3.bode图bode(G,w)%绘制系统G的bode图bode(G1,'plotstyle1',G2,'plotstyle2',…w)%绘制多个系统bode图[mag,pha]=bode(G,w)%得出w处的幅值和相角4.nichols图例8-19根据传递函数绘制系统的bode图和对数幅频特性曲线,已知系统的传递函数分别为。G=tf(10,conv([11],[510]));subplot(1,2,1);bode(G)%绘制系统的bode图subplot(1,2,2);bodemag(G)%绘制对数幅频特性曲线)s)(s(sG(s)151108.3.2频域分析性能指标1.开环频率特性的相角域度和幅值域度margin(G)%绘制bode图并标出幅值裕度和相角裕度[Gm,Pm,Wcg,Wcp]=margin(G)%得出幅值裕度和相角裕度和相应的频率例:[Gm,Pm,Wcg,Wcp]=margin(G)Gm=0.1200Pm=-38.7743Wcg=0.4472Wcp=1.1395)s)(s(sG(s)151108.4根轨迹分析的MATLAB实现8.4.1线性系统的根轨迹分析1.绘制根轨迹rloc
本文标题:第8章MATLAB线性控制系统的分析
链接地址:https://www.777doc.com/doc-2112525 .html