自动控制系统简明教程程序.docx
《自动控制系统简明教程程序.docx》由会员分享,可在线阅读,更多相关《自动控制系统简明教程程序.docx(13页珍藏版)》请在冰豆网上搜索。
自动控制系统简明教程程序
1.控制系统建模
在控制系统的分析与设计中,首先要建立系统的数学模型。
在MATLAB中,常用的系统建模方法有传递函数模型、零极点模型以及状态空间模型等。
下面结合下图予以说明:
+
+
图C-1控制系统
(1)控制系统模型描述
系统传递函数模型描述
命令格式:
其中,num,den分别为分子、分母多项式降幂排列的系数向量;Ts表示采样时间,缺省时描述的是连续传递函数。
故图中
可描述为G1=tf([1],[110])。
若传递函数的分子、分母为因式连乘形式,如图中
,则可以考虑采用conv命令进行多项式相乘,得到展开后的分子、分母多项式降幂排列的系数向量,再用tf命令建模。
如
可描述为num=1;den=conv([0.11],[13]);G2=tf(num,den)。
2)系统零点模型描述
命令格式:
sys=zpk(z,p,k,Ts)
其中,z,p,k分别表示系统的零点、极点及增益,若无零点、极点,则用[]表示;Ts表示采样时间,缺省时描述的是连续系统。
如图中
可描述为G3=zpk([-2],[0-1],1)。
3)系统状态空间模型描述。
(2)模型转换
由于在控制系统分析与设计中有时会要求模型有特定的描述形式,为此MATLAB提供了传递函数模型与零极点模型之间的转换命令。
命令格式:
[num,den]=zp2tf(z,p,k)
[z,k,p]=tf2zp(num,den)
其中,zp2tf可以将零极点模型转换成传输函数模型,而tf2zp可以将传递函数模型转换成零极点模型。
图中
转换成零极点模型为[z,p,k]=tf2zp([1],[110]),
转换成传递函数模型为[num,den]=zp2tf([-2],[0-1],1)。
(3)系统连接
一个控制系统通常由多个子系统相互连接而成,而最基本的三种连接方式为上图中的串联、并联和反馈连接形式。
两个系统的并联连接
命令格式:
sys=parallel(sys1,sys2)
对于SISO系统,parallel命令相当于符号“+”。
对于图中
和
并联组成的子系统
,可描述为G12=parallel(G1,G2)。
两个子系统的串联连接
命令格式:
sys=series(sys1,sys2)
对于SISO系统,series命令相当于符号“*”。
对于图中由
和
串联组成的系统组成的开环传递函数,可描述为G=series(G12,G3)。
两个系统的反馈连接
命令格式:
sys=feedback(sys1,sys2,sign)
其中,sign用于说明反馈性质(正、负)。
Sign缺省时,为负,即sign=-1。
由于上图中为单位负反馈系统,所以系统的闭环传递函数可描述为sys=feedback(G,1,-1)。
其中G表示开环传递函数,“1”表示是单位反馈,“-1”表示是负反馈,可缺省。
(4)综合应用:
结构图化简及其闭环传递函数的求取
例C-1:
已知多路反馈系统的结构图如图所示,求闭环传递函数
。
其中,
。
-
图C-2多路反馈系统
解MATLAB程序:
example1.m
G1=tf([1],[110]);
G2=tf([1],[11]);
G3=tf([101],[144]);
numg4=[11];
deng4=[16];
G4=tf(numg4,deng4);
H1=zpk([-1],[-2],1);
numh2=[2];denh2=[1];H3=1;%建立各个方块字系统模型
nh2=conv(numh2,deng4);dh2=conv(denh2,numg4);
H2=tf(nh2,dh2);%先将H2移至G4之后
sys1=series(G3,G4);
sys2=feedback(sys1,H1,+1);%计算由G3,G4和H1回路组成的子系统模型
sys3=series(G2,sys2);
sys4=feedback(sys3,H2);%计算由H2构成反馈回路的子系统模型
sys5=series(G1,sys4);
sys=feedback(sys5,H3)%计算由H3构成反馈主回路的系统闭环传递函数
2.控制系统时域分析
稳定性分析
稳定是控制系统的重要性能,夜视系统设计过程中的首要问题。
线性系统稳定的充分必要条件是:
闭环系统特征方程的所有跟均有负实部。
在MATLAB中可以调用roots命令求取特征方程的跟,进而判定系统的稳定性。
命令格式:
p=root(den)
其中,den为特征多项式降幂排列的系数向量;p为特征根。
动态性能分析
单位脉冲响应。
命令格式:
y=impulse(sys,t)
当不带输出变量y时,impulse命令可直接绘制脉冲响应曲线;t用于设定仿真时间,可缺省。
单位阶跃响应。
命令格式:
y=step(sys,t)
当不带输出变量y时,step命令可直接绘制阶跃响应曲线;t用于设定仿真时间,可缺省。
任意输入响应
命令格式:
y=lsim(sys,u,t,x0)
当不带输出变量y时,lsim命令可直接绘制响应曲线。
其中u表示输入,x0用于设定初始状态,缺省时为0,t用于设定仿真时间,可缺省。
零输入响应
命令格式:
y=initial(sys,x0,t)
Initial命令要求系统sys为状态空间模型。
当不带输出变量y时,initial命令可直接绘制响应曲线。
x0用于设定初始状态,缺省时为0,t用于设定仿真时间,可缺省。
综合应用(系统时域动态性能分析)
例C-2已知系统的闭环传递函数为
,其中
。
求二阶系统的单位脉冲响应、单位阶跃响应和单位斜坡响应。
解MATLAB程序:
example2.m
zeta=0.707;
num=[16];den=[18*zeta16];
sys=tf(num,den);%建立闭环传递函数模型
p=roots(den)%计算系统特征根判断系统稳定性
t=0:
0.01:
3;%设定仿真时间为3s
figure
(1)
impulse(sys,t);grid%求取系统的单位脉冲响应
xlable(‘t’);ylable(‘c(t)’);title(‘impulseresponse’);
figure
(2)
step(sys,t);grid%求取系统的单位阶跃响应
xlable(‘t’);ylable(‘c(t)’);title(‘stepresponse’);
figure(3)
u=t;%定义输入为斜坡信号
lsim(sys,u,t,0);grid%求取系统的单位斜坡响应
xlable(‘t’);ylable(‘c(t)’);title(‘rampresponse’);
3.线性系统的根轨迹
绘制零极点分布图
命令格式:
[p,z]=pzmap(sys)
当不带输出量时,pzmap命令可直接在复平面内标出传递函数的零、极点。
在图中,极点用“X”表示,零点用“O”表示。
绘制根轨迹图
利用MATLAB绘制根轨迹的一般步骤如下:
1)先将特征方程写成下列形式
,其中K为所研究的变化参数,得到等效开环传递函数
。
2)调用rlocus命令绘制根轨迹。
命令格式:
rlocus(G)
综合应用(系统性能复域分析)
例C-3已知单位负反馈系统的开环传递函数为
试画出K从零变化到无穷时的根轨迹图,并求出系统临界阻尼时对应的K值及其闭环极点。
解由题意,系统闭环特征多项式为
等效开环传递函数
下面调用rlocus命令绘制根轨迹,M文件example3如下:
G=tf([14],[1420]);%建立等效开环传递函数模型
figure
(1)
pzmap(G);%绘制零极点分布图
figure
(2)
rlocus(G);%绘制根轨迹
以上即为所得到的零极点分布图和根轨迹图。
为了计算系统临界阻尼时对应的K值和对应的闭环极点,可在上述M文件执行之后,在MATLAB命令窗口中键入下列命令:
rlocfind(G)%确定增益及其相应的闭环极点
执行rlocfind命令后,MATLAB将在根轨迹图上出现“+”提示符,通过鼠标将提示符移到根轨迹上相应的位置,然后按回车键,于是所选闭环极点及其对应的参数K就会在命令行中显示。
4.控制系统的频率分析
伯德图
命令格式:
[mag,phase,w]=bode(sys)
当缺省设输出变量时,bode命令可以直接绘制伯德图;否则,将只计算计算幅值和相角,并将计算结果分别存放在向量mag和phase中。
另外,margin命令也可以绘制伯德图,并直接得出幅值裕度、相角裕度及其对应的截止频率、穿越频率。
其命令格式如下:
命令格式:
[Gm,Pm,Wcg,Wcp]=margin(sys)
当缺省输出变量时,margin命令可直接绘制伯德图,并且将幅值裕度、相角裕度及其对应的截止频率、穿越频率标注在图形标题端。
尼柯尔斯图
命令格式:
[mag,phase,w]=nichols(sys)
当缺省输出变量时,nichols命令可直接绘制尼柯尔斯图。
奈奎斯特图
命令格式:
[re,im,w]=nyquist(sys)
当缺省输出变量时,nyquist命令可直接绘制奈奎斯特图。
综合运用(系统稳定性的频域分析)
例C-4已知单位负反馈系统的开环传递函数为
试绘制其伯德图,尼柯尔斯图和奈奎斯特图,并判别闭环系统的稳定性。
解MATLAB程序:
example4.m
G=tf([1280640],[124.21604.81320.2416]);%建立开环系统模型
figure
(1)
margin(G);%绘制伯德图,计算幅值裕度、相角裕度
figure
(2)%及其截止频率、穿越频率
nichols(G);%绘制尼柯尔斯图
axis([-2700-4040]);grid%设定尼柯尔斯图的坐标范围,并绘制网格
figure(3)
nyquist(G)%绘制奈奎斯特图
axisequal%调整纵横坐标比例,保持原形
运行程序后,个图如下所示,其中“+”表示(-1,j0)点所在位置。
由于系统无右半平面的开环极点,故奈奎斯特曲线不包围(-1,j0)点,系统稳定。
另外,系统的幅值裕度h=29.5Db、相角裕度
,相应的截止频率
、穿越频率
。
由奈氏判据知,系统闭环稳定。
5.控制系统的校正
借助于MATLAB强大的计算功能,可以进一步讨论控制系统校正网络的设计问题,以获得满意的系统性能。
下面结合实例,说明MATLAB在控制系统校正中的具体应用。
综合应用(串联校正)
例C-5设单位负反馈系统的开环传递函数为
,若要求系统在单位斜坡信号作用时,位置输出稳态误差
,开环系统截止频率
,相角裕度
,幅值裕度
,试设计串联无源超前网络。
解本题利用频域法设计无源超前网络的设计步骤如下:
1)根据稳态误差要求,确定开环增益K;
2)利用已确定的开环增益,计算待校正系统的幅值裕度、相角裕度及其对应的截止频率和穿越频率;
3)根据截止频率
的要求,计算超前网络参数a和T。
为保证系统的响应速度,并充分利用网络的相角超前特性,可选择最大超前角频率等于截止频率,即
。
其中a由
确定,然后再由
确定T值。
4)确定无源超前网络和最大超前角
。
验算已校正系统的幅值裕度、相角裕度及其对应的截止频率、穿越频率。
若验算结果不满足指标要求,需重新选择
,然后重复以上设计步骤。
MATLAB程序:
example5.m
K=1/0.1;
G0=zpk([],[0-1],K);
[h0,r,wx,wc]=margin(G0)
wm=4.4;
L=bode(G0,wm);
Lwc=20*log10(L)
a=10^(-0.1*Lwc)
T=1/(wm*sqrt(a));
phi=asin((a-1)/(a+1))
Gc=(1/a)*tf([a*T1],[T1]);
Gc=a*Gc;
G=Gc*G0;
bode(G,’r’,G0,’b--‘);grid;
[h,r,wx,wc]=margin(G)