串联超前校正设计.docx
《串联超前校正设计.docx》由会员分享,可在线阅读,更多相关《串联超前校正设计.docx(30页珍藏版)》请在冰点文库上搜索。
串联超前校正设计
成绩
课程设计报告
题目线性控制系统的校正及分析
课程名称自动控制原理
院部名称龙蟠学院
专业电力工程及其自动化
班级M09电气工程及其自动化2班
学生姓名唐洁
学号0921116063
课程设计地点
课程设计学时
指导教师陈丽换
金陵科技学院教务处制
一、设计目的.........................................................................................3
二、设计任务与要求………………………………………………….3
三、设计方案………………………………………………………….4
四、校正函数的设计………………………………………………….4
4.1、校正前系统特性…………………………………………………4
4.2、利用MATLAB语言计算出超前校正器的传递函数…………..6
4.3校验系统校正后系统是否满足题目要求…………………………7
五、函数特征根的计算………………………………………………..8
5.1校正前………………………………………………………………8
5.2校正后………………………………………………………………9
六、系统动态性能分析………………………………………………..10
6.1校正前单位阶跃响应……………………………………………...10
6.2校正前单位脉冲响应......................................................................11
6.3校正前单位斜坡信号……………………………………………...14
七、校正后动态性能分析……………………………………………...14
7.1校正后单位阶跃响应……………………………………………...15
7.2校正后单位冲击响应……………………………………………...15
7.3校正后单位斜坡响应……………………………………………...16
八、系统的根轨迹分析………………………………………………17
8.1、校正前根轨迹分析………………………………………………..17
8.2、校正后根轨迹分析………………………………………………..19
九、系统的奈奎斯特曲线分析………………………………………..21
9.1校正前奈奎斯特曲线分析…………………………………………21
9.2校正后奈奎斯特曲线分析………………………………………...22
设计小结………………………………………………………………..23
参考文献………………………………………………………………..24
一、设计目的
1)掌握自动控制原理的时域分析法,根轨迹法,频域分析法,以及各种补偿(校正)装置的作用及用法,能够利用不同的分析法对给定系统进行性能分析,能根据不同的系统性能指标要求进行合理的系统设计,并调试满足系统的指标。
2)学会使用MATLAB语言及Simulink动态仿真工具进行系统仿真与调试。
二、设计任务与要求
已知单位负反馈系统的开环传递函数
,试用频率法设计串联超前校正装置,使系统的相位裕度
,静态速度误差系数
1)首先,根据给定的性能指标选择合适的校正方式对原系统进行校正,使其满足工作要求。
要求程序执行的结果中有校正装置传递函数和校正后系统开环传递函数,校正装置的参数T,
等的值。
2)利用MATLAB函数求出校正前与校正后系统的特征根,并判断其系统是否稳定,为什么?
3)利用MATLAB作出系统校正前与校正后的单位脉冲响应曲线,单位阶跃响应曲线,单位斜坡响应曲线,分析这三种曲线的关系?
求出系统校正前与校正后的动态性能指标σ%、tr、tp、ts以及稳态误差的值,并分析其有何变化?
4)绘制系统校正前与校正后的根轨迹图,并求其分离点、汇合点及与虚轴交点的坐标和相应点的增益
值,得出系统稳定时增益
的变化范围。
绘制系统校正前与校正后的Nyquist图,判断系统的稳定性,并说明理由?
5)绘制系统校正前与校正后的Bode图,计算系统的幅值裕量,相位裕量,幅值穿越频率和相位穿越频率。
判断系统的稳定性,并说明理由?
三、设计方案
串联超前校正装置的传递函数为
1 根据对稳态误差的要求确定开环增益。
2 按已确定的K,绘制未校正系统的伯德图,并计算相角裕度
。
3 确定需要补偿的相位超前角
。
4 利用Matlab语言计算出超前校正器的传递函数。
5 校验校正后的系统是否满足题目要求。
四、校正函数的设计
.1校正前系统特性
原传递函数
具有一个积分环节,所以原系统为I型系统,则其速度误差系数
使系统的速度误差系数
即K=1000。
原传递函数
根据原系统的开环对数幅频特性的剪切频率ωc=100rad/s,求出原系统的相角裕度γ约为0度,这说明原系统在K=1000/s时处于临界稳定状态,不能满足γ>45度的要求。
为满足γ>45度的要求,串联校正装置提供的最大超前相角ϕm必须大于等于45度。
考虑到校正后系统的剪切频率ωc'会稍大于校正前的剪切频率ωc,因此,校正时应给校正装置的最大超前相角ϕm增加一个补偿角度
。
取5度
=
程序如下:
>>k=1000;
>>d1=conv(conv([10],[0.11]),[0.0011]);
>>scop=tf(k,d1);
>>w=logspace(0,4,50);
>>bode(scop,w);
>>[Gm,Pm,Wcg,Wcp]=margin(scop)
结果为:
Gm=1.0100Pm=0.0584Wcg=100.0000Wcp=99.4863
剪切频率
=99.5rad/sec,相角裕度
=0.0584deg和幅值裕度Gm=0.0864dB
4.2利用MATLAB语言计算出超前校正器的传递函数。
要计算出校正后系统的传递函数,就编写求超前校正器的传递函数的MATLAB程序,其中调用了求超前校正器传递函数的函数leadc(),leadc.m保存在matlab7.0\work\文件夹下,其中key=1时,为var=gama,是根据要求校正后的相角稳定裕度计算超前校正器;当key=2时,为var=wc,则是根据要求校正后的剪切频率计算校正器。
若已知系统的开环传递函数与要求校正后的相角稳定裕度或剪切频率,求系统串联超前校正器传递函数时,就可以调用此函数。
leadc.m编制如下:
function[Gc]=leadc(key,sope,vars)
%MATLABFUNCTIONPROGRAMleadc.m
%
ifkey==1
gama=vars
(1);gama1=gama+5;
[mag,phase,w]=bode(sope);
[mu,pu]=bode(sope,w);
gam=gama1*pi/180;
alpha=(1-sin(gam))/(1+sin(gam));
adb=20*log10(mu);
am=10*log10(alpha);
wc=spline(adb,w,am);
T=1/(wc*sqrt(alpha));
alphat=alpha*T;
Gc=tf([T1],[alphat1]);
elseifkey==2
wc=vars
(1);
num=sope.num{1};den=sope.den{1};
na=polyval(num,j*wc);
da=polyval(den,j*wc);
g=na/da;
g1=abs(g);
h=20*log10(g1);
a=10^(h/10);
wm=wc;
T=1/(wm*(a)^(1/2));
alphat=a*T;
Gc=tf([T1],[alphat1]);
elseifkey==3
gama=vars
(1);wc=vars
(2);gama1=gama+5;
num=sope.num{1};den=sope.den{1};
ngv=polyval(num,j*wc);
dgv=polyval(den,j*wc);
g=ngv/dgv;
thetag=angle(g);
thetag_d=thetag*180/pi;
mg=abs(g);
gama_rad=gama1*pi/180;
z=(1+mg*cos(gama_rad-thetag))/(-wc*mg*sin(gama_rad-thetag));
p=(cos(gama_rad-thetag)+mg)/(wc*sin(gama_rad-thetag));
nc=[z,1];dc=[p,1];
Gc=tf(nc,dc);
end
matlab程序如下:
>>k=1000;
>>d1=conv(conv([10],[0.11]),[0.0011]);
>>sope=tf(k,d1);
>>gama=46;[Gc]=leadc(1,sope,[gama])
Transferfunction:
0.01694s+1
--------------
0.002124s+1
即对于校正后系统的相角裕度
的超前校正补偿器传递函数为:
4.3校验系统校正后系统是否满足题目要求:
程序如下:
k0=1000;
n1=1;
d1=conv(conv([10],[0.11]),[0.0011]);s1=tf(k0,d1);
s1=tf(k0*n1,d1);
n2=[0.016941];
d2=[0.0021241];
s2=tf(n2,d2);
sys=s1*s2;figure
(1);
margin(sys)
剪切频率
=167rad/sec,相角裕度
=45deg和幅值裕度Gm=17.3dB
五、函数特征根的计算
5.1校正前
开环传递函数:
程序如下:
>>clear
>>k=1000;num=1;
>>den=conv(conv([10],[0.11]),[0.0011]);
>>s1=tf(k*num,den)
结果为:
Transferfunction:
1000
--------------------------
0.0001s^3+0.101s^2+s
故该系统闭环特征方程为:
Matlab程序如下:
>>clear
>>p=[0.00010.10111000];
>>roots(p)
ans=
1.0e+003*
-1.0099
-0.0000+0.0995i
-0.0000-0.0995i
由于校正前系统单位负反馈的特征方程没有右半平面的根,故校正前的闭环系统稳定。
5.2校正后
开环传递函数:
>>num=[16.941000];
>>den=[0.00000021240.00031450.103110];
>>s=tf(num,den);
>>s1=feedback(s,1)
Transferfunction:
16.94s+1000
---------------------------------------------------------
2.124e-007s^4+0.0003145s^3+0.1031s^2+17.94s+1000
校正后的闭环传递函数为:
故该系统的闭环特征方程为:
程序如下:
>>clear
>>p=[0.00000021240.00031450.103117.941000];
>>roots(p)
ans=
1.0e+003*
-1.1079
-0.1410+0.1641i
-0.1410-0.1641i
-0.0908
由于校正后系统单位负反馈的特征方程没有右半平面的根,故校正后的闭环系统稳定。
六、系统动态性能特性
校正前开环传递函数:
6.1校正前单位阶跃响应
6.2校正前单位脉冲响应
>>K=1000;
>>den=[0.00010.101010];
>>G1=tf(k,den);
>>G0=feedback(G1,1);
>>t=0:
1:
100;
>>impulse(G0,t);
>>grid;
由阶跃响应求动态性能参数
要计算出阶跃响应动态性能参数,就编写求解阶跃响应动态性能参数的MATLAB程序,其中调用了函数perf(),perf.m保存在matlab7.0\work\文件夹下,其中key=1时,表示选择5%误差带,当key=2时表示选择2%误差带。
y,t是对应系统阶跃响应的函数值与其对应的时间。
函数返回的是阶跃响应超调量sigma(即σ)、峰值时间tp、调节时间ts。
perf.m编制如下:
function[sigma,tp,ts]=perf(key,y,t)
%MATLABFUNCTIONPROGRAMperf.m
%
%Countsgmaandtp
[mp,tf]=max(y);
cs=length(t);
yss=y(cs);
sigma=(mp-yss)/yss
tp=t(tf)
%Countts
i=cs+1;
n=0;
whilen==0,
i=i-1;
ifkey==1,
ifi==1,
n=1;
elseify(i)>1.05*yss,
n=1;
end;
elseifkey==2,
ifi==1,
n=1;
elseify(i)>1.02*yss,
n=1;
end;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0,
j=j-1;
ifkey==1,
ifj==1,
n=1;
elseify(j)<0.95*yss,
n=1;
end;
elseifkey==2,
ifj==1,
n=1;
elseify(j)<0.98*yss,
n=1;
end;
end;
end;
t2=t(j);
ift2ift1>t2;
ts=t1
end
elseift2>tp,
ift2ts=t2
else
ts=t1
end
end
程序如下:
>>clear
>>globalyt;
>>s1=tf(1000,[0.00010.10111000]);
>>sys=feedback(s1,1);
>>figure
(1);
>>step(sys);
>>[y,t]=step(sys);
>>perf(1,y,t)
结果为:
sigma=-2.0943tp=0.4686ts=0.4978ans=-2.0943
6.3校正前单位斜坡信号
在Simulink窗口里菜单方式下的单位斜坡响应的动态结构图如下:
校正前单位斜坡响应曲线如图所示:
七、校正后动态性能分析
校正后开环传递函数:
7.1校正后单位阶跃响应
程序如下:
>>n1=[16.941000];
>>d1=conv(conv(conv([10],[0.11]),[0.0011]),[0.0021241]);
>>s1=tf(n1,d1);
sys=feedback(s1,1);
step(sys)
结果为:
7.2校正后单位冲击响应
程序如下:
>>n1=[16.941000];
>>d1=conv(conv(conv([10],[0.11]),[0.0011]),[0.0021241]);
>>s1=tf(n1,d1);
>>sys=feedback(s1,1);
>>impulse(sys)
结果为:
由阶跃响应求动态性能参数:
>>clear
globalyt
>>num=[16.941000];
>>den=[0.00000021240.00031450.103110];
>>s=tf(num,den);
>>sys=feedback(s,1);
>>figure
(1);
>>step(sys)
>>[y,t]=step(sys);
>>perf(1,y,t)
结果为:
sigma=0.3013tp=0.0168ts=0.0320ans=0.3013
7.3校正后单位斜坡响应
在Simulink窗口里菜单方式下的单位斜坡响应的动态结构图如下:
校正前单位斜坡响应曲线如下所示:
单位脉冲、阶跃、斜坡响应曲线的相互对应关系是:
单位脉冲响应的积分是单位阶跃响应曲线。
单位阶跃响应的积分是单位斜坡响应。
八、系统的根轨迹分析
8.1、校正前根轨迹分析
校正前的开环传递函数为:
程序如下:
>>n1=[1000];
>>d1=conv(conv([10],[0.11]),[0.0011]);
>>sys=tf(n1,d1);
>>rlocus(sys)
确定分离点坐标:
分离点坐标d=-4.99增益k*=0.00249
与虚轴的交点:
与虚轴交点0+89.3j,0-89.3j增益k*=0.804
8.2、校正后根轨迹分析
校正后开环传递函数:
程序如下:
>>n1=[16.941000];
>>d1=conv(conv(conv([10],[0.11]),[0.0011]),[0.0021241]);
>>sys=tf(n1,d1);rlocus(sys)
确定分离点坐标:
分离点坐标d=-5.2,增益K*=0.0027
确定与虚轴交点的坐标
与虚轴交点0+592j,0-592j增益k*=6.34
九、系统的奈奎斯特曲线分析
9.1校正前奈奎斯特曲线分析
校正前开环传递函数:
>>num=[1000];
>>den=conv(conv([10],[0.11]),[0.0011]);
>>s=tf(num,den);
>>nyquist(s)
由于开环传递函数中含有一个积分环节,所以从
到
顺时针补画一圈,再由上图可知,Nyquist曲线顺时针围绕点(-1,j0)0圈,所以,
,而
,所以
,所以校正后闭环系统稳定。
9.2校正后奈奎斯特曲线分析
校正后开环传递函数:
>>num=[16.941000];
>>den=conv(conv(conv([10],[0.11]),[0.0011]),[0.0021241]);
>>s=tf(num,den);
>>nyquist(s)
由于开环传递函数中含有一个积分环节,所以从
到
顺时针补画一圈,再由上图可知,Nyquist曲线顺时针围绕点(-1,j0)0圈,所以,
,而
,所以
,所以校正后闭环系统稳定。
设计小结
频率法设计校正装置主要是通过Bode图来进行,开环对数频率特性的低频段决定系统的稳态误差,根据稳态性能指标确定低频段的斜率和高度,为保证系统具有足够的稳定裕量,开环对数频率特性子剪切频率
附近的斜率应为-20dB/dec,而且应具有足够的中频宽度,为抑制高频干扰的影响,高频段应尽可能迅速衰减!
在设计、分析控制系统时,最常用的方法是频率法,应用频率法对系统进行校正,其目的是改变频率特性的形状,是改正后的系统具有合适的低频、中频、高频特性及足够的稳定裕量,从而满足系统所要求的性能指标!
串联超前校正则是利用超前校正网络的正相角来增加系统的相角裕量,以改善系统的动态特性。
本次设计正是利用频率法的串联超前校正等自动控制理论加上matlab的辅助完成的,通过这次设计,我感受到了平时所学的知识在现实生活中的应用,不再只是停留在理论知识的地方,而是能够学以致用。
参考文献
[1]程鹏编.自动控制原理[M].北京:
高等教育出版社,2010.
[2]张德丰等编.MATLAB控制系统设计与仿真.北京:
电子工业出版社,2009.
[3]赵广元编.MATLAB与控制系统仿真实践.北京:
北京航空航天大学出版社,2009.
[4]黄忠霖编.自动控制原理的MATLAB实现[M].北京:
国防工业出版社,2007.
[5]黄忠霖等编.控制系统MATLAB计算及仿真[M].北京:
国防工业出版社,2010.