《MATLAB 实用教程:第6章 线性控制系统分析与设计》由会员分享,可在线阅读,更多相关《MATLAB 实用教程:第6章 线性控制系统分析与设计(30页珍藏版)》请在金锄头文库上搜索。
1、第6章 线性控制系统分析与设计(Control System),6.1线性系统的描述 6.2线性系统模型之间的转换 6.3结构框图的模型表示 6.4线性系统的时域分析 6.5线性系统的频域分析 6.6线性系统的根轨迹分析,6.1线性系统的描述6.1.1状态空间描述法,G=ss(a,b,c,d) %由a、b、c、d参数获得状态方程模型 例如,二阶系统,6.1.2 传递函数描述法,G=tf(num,den) 说明:num为分子向量,num=b1,b2,bm,bm+1; den为分母向量,den=a1,a2,an-1,an。 例:最佳二阶系统 。 num=1; den=1 1.414 1; G=tf
2、(num,den) %得出传递函数,6.1.3 零极点描述法,G=zpk(z,p,k) 说明:z为零点列向量;p为极点列向量;k为增益。 部分分式法: 使用residue将传递函数表示成部分分式或留数形式。 r,p,k=residue(num,den),6.1.4 离散系统的数学描述,1.状态空间描述法 G=ss(a,b,c,d,Ts) 说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示。 2. 脉冲传递函数描述法 G=tf(num,den,Ts) 说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用z表示。 3. 零极点增益描述法 G=zpk(z,p,k,Ts)
3、%由零极点得出脉冲传递函数,6.2 线性系统模型之间的转换6.2.1 连续系统模型之间的转换,1. 系统模型的转换 (1) 状态空间模型的获得 G=ss(传递函数) %由传递函数转换获得 G=ss(零极点模型)%由零极点模型转换获得 (2) 传递函数的获得 G=tf(状态方程模型)%由状态空间转换 G=tf(零极点模型)%由零极点模型转换 (3) 零极点模型的获得 G=zpk(状态方程模型)%由状态方程模型转换 G=zpk(传递函数)%由传递函数转换,2.模型参数的获取 a,b,c,d=ssdata(G) %获取状态空间参数 num,den=tfdata(G) %获取传递函数参数 z,p,k=
4、zpkdata(G) %获取零极点参数 例: num,den=tfdata(g) num1,1(1),6.2.2 连续系统与离散系统的转换,1.c2d命令 c2d命令用于将连续系统转换为离散系统。 Gd=c2d(G,Ts,method) %以采样周期Ts和method方法转换离散系统 2.d2c命令 d2c命令用于将离散系统转换为连续系统。 G=d2c(Gd,method)%转换为连续系统 3. d2d命令 d2d命令是将离散系统改变采样频率。 Gd2=d2d(Gd1,Ts2) %转换离散系统的采样频率为Ts2,6.2.3 模型对象的属性,1. 模型对象的属性 2. get命令和set命令 (
5、1) get命令可以获取模型对象的所有属性 get(G) %获取对象的所有属性值 get(G,PropertyName,) (2) set命令用于修改对象属性名 set(G,PropertyName,PropertyValue,) 3. 直接获取和修改属性 可以直接用“.”符号来获取和修改属性。,6.3 结构框图的模型表示,1. 串联结构 G=G1*G2 G=series(G1,G2) 2. 并联结构 G=G1+G2 G=parallel(G1,G2) 3. 反馈结构 G=feedback(G1,G2,Sign) 说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。,【例
6、6.6】求出整个系统的传递函数。, G12=G1+G2%并联结构 G34=G3-G4%并联结构 G=feedback(G12,G34,-1)%反馈结构,4. 复杂的结构框图 求取复杂结构框图的数学模型的步骤: (1) 将各模块的通路排序编号; (2) 建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。 G=append(G1,G2,G3,) (3) 指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。 (4) 使用con
7、nect命令构造整个系统的模型。 Sys=connect(G,Q,INPUTS,OUTPUTS),【例6.7】, G1=tf(1,1 0); Sys=append(G1,G2,G3,G4,G5,G6,G7) Q=1 6 5; %通路1的输入信号为通路6和通路5 2 1 7; %通路2的输入信号为通路1和通路7 3 2 0; %通路3的输入信号为通路2 4 3 0; 5 4 0; 6 2 0; 7 3 0; INPUTS=1; %系统总输入由通路1输入 OUTPUTS=4; %系统总输出由通路4输出 G=connect(Sys,Q,INPUTS,OUTPUTS),6.4 线性系统的时域分析6.4
8、.1 零输入响应分析,1. 连续系统的零输入响应 initial(G,x0,Ts) %绘制系统的零输入响应曲线 y,t,x=initial(G,x0,Ts) 说明:G为系统模型,必须是状态空间模型;x0是初始条件;Ts为时间点。,6.4.2 脉冲响应分析,1. 连续系统的脉冲响应 impulse(G, Ts) %绘制系统的脉冲响应曲线 impulse(G1,G2,Ts)%绘制多个系统的脉冲响应 y,t,x=impulse(G,Ts) %得出脉冲响应 说明:G为系统模型;y为时间响应;t为时间向量;x为状态变量响应,t和x可省略;Ts为时间点可省略。 2. 离散系统的脉冲响应 离散系统的脉冲响应
9、使用dimpulse命令实现。,6.4.3 阶跃响应分析,1. 连续阶跃响应 step(G, Ts)%绘制系统的阶跃响应曲线 y,t,x=step(G, Ts) %得出阶跃响应 使用plot(t,y)可以同样实现阶跃响应曲线。 2. 离散系统的阶跃响应 离散系统阶跃响应使用dstep命令来实现,语法规则与dimpluse相同。,6.4.4 任意输入的响应,1. 连续系统的任意输入响应 lsim(G,U,Ts) %绘制系统的任意响应曲线 y,t,x=lsim(G,U,Ts) 2. 离散系统的任意输入响应 离散系统的任意输入响应用dlsim命令来实现。,输入信号为正弦信号,系统为阻尼系数变化的二阶
10、系统,输出响应,6.4.5 系统的结构参数,1. 极点和零点 (1) 计算极点 p=pole(G) (2) 计算零点和增益 z=tzero(G) %得出连续和离散系统的零点 z,gain=tzero(G)%获得零点和零极点增益 (3) 绘制零极点 pzmap(G) %绘制系统的零极点 p,z=pzmap(G) %得出系统的零极点值,2. 闭环系统的阻尼系数和固有频率 damp命令用来计算闭环系统所有共轭极点的阻尼系数和固有频率n。 wn,zeta=damp(G) 3. 时域响应的稳态增益 稳态增益可使用dcgain命令来得出。 k=dcgain(G) %获得稳态增益,6.5 线性系统的频域分析
11、6.5.1 频域特性,频域特性由下式求出:Gw=polyval(num,j*w)./polyval(den,j*w) mag=abs(Gw) %幅频特性 pha=angle(Gw) %相频特性 说明:j为虚部变量。,6.5.2 连续系统频域分析,1. bode图 bode图是对数幅频和对数相频特性曲线。 bode(G,w) %绘制bode图 Bode(num,den,w) %绘制bode图 mag,pha=bode(G,w) %得出w对应的幅值和相角 mag,pha,w=bode(G) %得出幅值、相角和频率 说明:G为系统模型,w为频率向量,也可以用wmin,wmax表示频率的范围; mag
12、为系统的幅值,pha为系统的相角。,2. nyquist曲线 nyquist(G,w)%绘制nyquist曲线 nyquist(G1,G2,w) %绘制多条nyquist曲线 Re,Im=nyquist(G,w) %得出对应w的实部和虚部 Re,Im,w= nyquist(G) %得出实部、虚部和频率 说明:Re为频率特性的实部,Im为频率特性的虚部。,3. nichols图 nichols图是对数幅相频率特性曲线。 nichols(G,w) %绘制nichols图 nichols(G1,G2,w) %绘制多条nichols图 Mag,Pha= nichols (G,w) %由w得出对应的幅值
13、和相角,6.5.3 幅值裕度和相角裕度,margin(G) %绘制bode图并标出幅值裕度和相角裕度 Gm,Pm,Wcg,Wcp=margin(G) Gm为幅值裕度,20*log10(Gm)表示幅值裕度; Wcg为幅值裕度对应的频率; Pm为相角裕度; Wcp为相角裕度对应的频率(穿越频率)。,6.6 线性系统的根轨迹分析6.6.1 绘制根轨迹,MATLAB中绘制根轨迹使用rlocus命令。 rlocus(G) %绘制根轨迹 rlocus(G1,G2,) %绘制多个系统的根轨迹 r,k=rlocus(G) %得出闭环极点和对应的K r= rlocus(G,k)%根据K得出对应的闭环极点,6.6
14、.2 根轨迹的其它工具,1. 指定点的开环增益 提供了rlocfind命令可以在绘制的根轨迹上获得定位点的增益K值。 k,p=rlocfind(G) 说明:k和p分别是定位点的增益和极点。 2. 主导极点的等线和等n线 sgrid(zeta,wn,new) %绘制指定的等线和等n线,3. 系统根轨迹的设计工具RLTool rltool(G) %打开某系统根轨迹分析的图形界面,练习:,画出最佳二阶系统当输入为脉冲、阶跃信号时的波形。 num=1 den=1 1.414 1; G=tf(num,den); t=0:0.1:20; impulse(G,t) hold on step(G,t),改变t后查看波形。,练习:,画出系统的bode图和nyquist曲线。并得出w1时的幅值和相角。 num=10 den=conv(0.5,1,0.1,1) G=tf(num,den 0) bode(G) nyquist(G) m,p=bode(G,1),