基于MATLAB进行控制系统的滞后-超前校正设计.doc
《基于MATLAB进行控制系统的滞后-超前校正设计.doc》由会员分享,可在线阅读,更多相关《基于MATLAB进行控制系统的滞后-超前校正设计.doc(21页珍藏版)》请在冰点文库上搜索。
计算机控制技术
------滞后-超前校正控制器设计
系别:
电气工程与自动化
专业:
自动化
班级:
B110411
学号:
B11041104
姓名:
程万里
目录
一、滞后-超前校正设计目的和原理………………………………………………1
1.1滞后-超前校正设计目的…………………………………………………1
1.2滞后-超前校正设计原理…………………………………………………1
二、滞后-超前校正的设计过程……………………………………………………3
2.1校正前系统的参数…………………………………………………………3
2.1.1用MATLAB绘制校正前系统的伯德图……………………………3
2.1.2用MATLAB求校正前系统的幅值裕量和相位裕量………………4
2.1.3用MATLAB绘制校正前系统的根轨迹……………………………5
2.1.4对校正前系统进行仿真分析………………………………………5
2.2滞后-超前校正设计参数计算……………………………………………6
2.2.1选择校正后的截止频率………………………………………6
2.2.2确定校正参数、和………………………………………6
2.3滞后-超前校正后的验证…………………………………………………7
2.3.1用MATLAB求校正后系统的幅值裕量和相位裕量………………7
2.3.2用MATLAB绘制校正后系统的伯德图……………………………8
2.3.3用MATLAB绘制校正后系统的根轨迹……………………………9
2.3.4用MATLAB对校正前后的系统进行仿真分析…………………10
三、前馈控制
3.1前馈控制原理……………………………………………………………12
3.2控制对象的介绍及仿真…………………………………………………12
四、心得体会……………………………………………………………………16
参考文献……………………………………………………………………………17
附录…………………………………………………………………………………18
1
一、滞后-超前校正设计目的和原理
1.1滞后-超前校正设计目的
所谓校正就是在系统不可变部分的基础上,加入适当的校正元部件,使系统满足给定的性能指标。
校正方案主要有串联校正、并联校正、反馈校正和前馈校正。
确定校正装置的结构和参数的方法主要有两类:
分析法和综合法。
分析法是针对被校正系统的性能和给定的性能指标,首先选择合适的校正环节的结构,然后用校正方法确定校正环节的参数。
在用分析法进行串联校正时,校正环节的结构通常采用超前校正、滞后校正和滞后-超前校正这三种类型。
超前校正通常可以改善控制系统的快速性和超调量,但增加了带宽,而滞后校正可以改善超调量及相对稳定度,但往往会因带宽减小而使快速性下降。
滞后-超前校正兼用两者优点,并在结构设计时设法限制它们的缺点。
1.2滞后-超前校正设计原理
滞后-超前校正RC网络电路图如图1所示。
图1滞后-超前校正RC网络
下面推导它的传递函数:
令,则
其中为超前部分的参数,为滞后部分的参数。
滞后-超前校正的频域设计实际是超前校正和滞后校正频域法设计的综合,基本方法是利用滞后校正将系统校正后的穿越频率调整到超前部分的最大相角处的频率。
具体方法是先合理地选择截止频率,先设计滞后校正部分,再根据已经选定的设计超前部分。
应用频率法确定滞后超前校正参数的步骤:
1、根据稳态性能指标,绘制未校正系统的伯德图;
2、选择校正后的截止频率;
3、确定校正参数;
4、确定滞后部分的参数;
5、确定超前部分的参数;
6、将滞后部分和超前部分的传递函数组合在一起,即得滞后-超前校正的传递函数;
7、绘制校正后的伯德图,检验性能指标。
二、滞后-超前校正的设计过程
2.1校正前系统的参数
根据初始条件,调整开环传递函数:
当系统的静态速度误差系数时,。
则
满足初始条件的最小K值时的开环传递函数为
2.1.1用MATLAB绘制校正前系统的伯德图
程序:
num=[10];
den=[0.5,1.5,1,0];
bode(num,den)
grid
得到的伯德图如图2所示。
图2校正前系统的伯德图
2.1.2用MATLAB求校正前系统的幅值裕量和相位裕量
用命令margin(G)可以绘制出G的伯德图,并标出幅值裕量、相位裕量和对应的频率。
用函数[kg,r,wg,wc]=margin(G)可以求出G的幅值裕量、相位裕量和幅值穿越频率。
程序:
num=[10];
den=[0.5,1.5,1,0];
G=tf(num,den);
margin(G)
[kg,r,wg,wc]=margin(G)
得到的幅值裕量和相位裕量如图3所示。
图3校正前系统的幅值裕量和相位裕量
运行结果:
kg=0.3000r=-28.0814
wg=1.4142wc=2.4253
即幅值裕量,相位裕量=-28.0814o。
2.1.3用MATLAB绘制校正前系统的根轨迹
MATLAB中专门提供了绘制根轨迹的有关函数。
[p,z]=pzmap(num,den)的功能是绘制连续系统的零、极点图。
[r,k]=rlocus(num,den)的功能是绘制部分的根轨迹。
程序:
num=[10];
den=[0.5,1.5,1,0];
rlocus(num,den)
得到校正前系统的根轨迹如图4所示。
图4校正前系统的根轨迹
2.1.4对校正前系统进行仿真分析
Simulink是可以用于连续、离散以及混合的线性、非线性控制系统建模、仿真和分析的软件包,并为用户提供了用方框图进行建模的图形接口,很适合于控制系统的仿真。
仿真后得到的结果如图5和图6所示。
图5校正前系统的仿真图
图6校正前系统仿真的阶跃响应曲线
2.2滞后-超前校正设计参数计算
2.2.1选择校正后的截止频率
若性能指标中对系统的快速性未提明确要求时,一般对应的频率作为。
从图3中得,=1.5。
这样,未校正系统的相位裕量为0o ,与要求值仅差+45o ,这样大小的超前相角通过简单的超前校正是很容易实现的。
2.2.2确定校正参数、和
由超前部分应产生超前相角而定,即。
在本题中,,因此
取,以使滞后相角控制在-5o 以内,因此,滞后部分的传递函数为。
过,作20dB/dec直线,由该直线与0dB线交点坐标确定。
未校正系统的伯德图在=1.5处的增益是13dB。
所以过点(1.5,-13)画一条20dB/dec的直线,与0dB线的交点确定转折频率。
经计算得,转折频率,另一转折频率为。
所以超前部分的传递函数为。
将滞后校正部分和超前校正部分的传递函数组合在一起,得滞后-超前校正的传递函数为
系统校正后的传递函数为
2.3滞后-超前校正后的验证
由于校正过程中,多处采用的是近似计算,可能会造成滞后-超前校正后得到的系统的传递函数不满足题目要求的性能指标。
所以需要对滞后-超前校正后的系统进行验证。
下面用MATLAB求已校正系统的相角裕量和幅值裕量。
2.3.1用MATLAB求校正后系统的幅值裕量和相位裕量
程序:
num=[10,9.9,0.89];
den=[0.5,4.855,11.0985,6.8055,0.067,0];
G=tf(num,den);
margin(G)
[kg,r,wg,wc]=margin(G)
得到的校正后系统的幅值裕量和相位裕量如图7所示。
图7校正后系统的幅值裕量和相位裕量
运行结果:
kg=5.9195r=47.6239
wg=3.6762wc=1.2072
即校正后系统的相位裕量,满足指标。
假设验证结果不满足指标,重新选择校正后的截止频率,重复上述过程,直到满足性能指标为止。
2.3.2用MATLAB绘制校正后系统的伯德图
程序:
num=[10,9.9,0.89];
den=[0.5,4.855,11.0985,6.8055,0.067,0];
bode(num,den)
grid
得到的伯德图如图8所示。
图8校正后系统的伯德图
2.3.3用MATLAB绘制校正后系统的根轨迹
程序:
num=[10,9.9,0.89];
den=[0.5,4.855,11.0985,6.8055,0.067,0];
rlocus(num,den)
得到的校正后系统的根轨迹如图9所示。
图9校正后系统的根轨迹
2.3.4用MATLAB对校正前后的系统进行仿真分析
用Simulink对校正后的系统仿真。
仿真后得到的结果如图10和图11所示。
图10校正后系统的仿真图
图11校正后系统仿真的阶跃响应曲线
程序:
k=10;
num=conv([1,0.89],[1,0.1]);
den=conv(conv(conv(conv([1,0],[1,1]),[0.5,1]),[1,6.7]),[1,0.01]);
sys=tf(k*num,den);
Lsys=feedback(sys,1,-1);
[y,t,x]=step(Lsys);
plot(t,y);
ltiview
得到的阶跃响应曲线如图12所示。
图12校正后阶跃响应曲线
调节时间取的误差范围。
由图12可知,超调量,上升时间,峰值时间,调节时间。
对比校正前后的阶跃响应曲线可知,校正前系统是不稳定的,无法求得时域性能指标。
校正后的系统是稳定的,系统的阶跃响应曲线是衰减振荡的。
当调节时间取的误差范围时,调节时间。
18
三、前馈控制
3.1、前馈控制原理
对于存在扰动的系统,可以直接按照扰动进行控制,称作前馈控制,在理论上,它可以完全消除扰动引起的偏差。
在加有前馈控制的系统中,一旦出现扰动,前馈调节器就直接根据扰动的大小和方向,按照前馈调节规律,补偿扰动对被控量的影响。
由于惯性和纯滞后,扰动作用到系统上,被控量尚未发生变化,前馈调节器就进行了补偿,如果补偿作用恰到好处,可以使被控量不会因扰动作用而产生偏差。
前馈控制的设计依据是不变性原理。
“不变性”是指控制系统的被控量与扰动量完全无关,或在一定准确度下无关。
然而进入控制系统中的扰动必然通过被控对象的内部联系,使被控量发生偏离其给定值的变化。
而不变性原理是通过前馈控制器的校正作用,消除扰动对被控量的这种影响。
前馈控制系统原理图如图1所示。
(1-1)
由式(1-1)可见,不论原系统如何,只要能够测得干扰及干扰通道就可构造出使下式成立:
(1-2)
G1(s)
G2(s)
G3(s)
Gd(s)
Gf(s)
可测干扰M
X
Y
图13前馈控制原理图
按结构,前馈控制系统可分为静态前馈控制系统,动态前馈控制系统,前馈-反馈复合控制系统,前馈-串级控制系统。
3.2、控制对象的介绍及仿真
本文选择空调系统中空调房间部分作为被控对象,空调房间的自动控制主要是室温控制,它是空气控制系统的一个重要环节,要用到设置在室内的测温传感器测定室内空气温度信号,并将此信号传递给温度调节器进行运算放大,发出控制指令信号,以控制相应的执行控制机构,使送风温度或送风温度随偏差量的大小而发生变化,以满足空调房间温度控制的要求。
根据相关资料,在假设没有相关滞后环节后得出空调房间的温度传递函数为,选择空调房间的负荷变化作为干扰,分别加入静态前馈,动态前馈,前馈-串级控制控制技术。
在这里前馈并不是单独使用的,由于开环控制很难知道补偿的效果,往往加入反馈控制与之相结合。
图14加入静态前馈的模型结构框图
图15加入动态前馈的模型结构框图
图16加入前馈-串级的模型结构框图
图17仿真结果图
随着仿真时间的加长,我们发现动态前馈控制优于静态前馈控制,同时,对于此控制对象而言,前馈-串级控制与动态前馈控制系统的仿真曲线完全一致且与不受干扰时的曲线几乎完全一致。
其实,当扰动通道和控制通道的时间常数接近的时候,引入前馈控制可以显著提高控制性能,由于控制效果明显,通常采用静态前馈就能满足要求了。
动态前馈比静态前馈复杂,参数的整定也比较麻烦。
因此,在静态前馈能够满足工艺要求的时候,尽量不采用动态前馈。
实际工程中,通常控制通道和扰动通道的惯性时间和纯滞后时间接近,往往采用静态前馈就能获得良好的控制效果。
而对于文中的空调房间控制对象,相比航空航天的技术领域,要求的性能指标没有必要特别高,所以采用静态前馈控制即可。
而动态前馈控制前馈-串级控制只是在理论上由于静态前馈控制。
究其原因,其实动态前馈控制的前馈算式输出的不仅是扰动量的函数,而且是时间的函数,所以相比静态前馈控制更完善,而前馈-串级控制更是能因为自身的复杂结构达到完全补偿的效果
为了进一步研究前馈控制与PID控制的优劣,本文建立了加入PID控制器的模型,通过试凑法进行了PID控制器的参数整定。
图18加入PID控制器的模型结构图
图19PID控制仿真结果图
经观察得:
前馈控制优于PID控制,前馈控制的上升时间和调节时间比PID控制短,且在动态过程的振荡次数少于PID控制,最重要的是我们发现,随着时间的延长,PID的波动还是比较明显的,而前馈控制几乎没有波动。
根据控制系统的动态指标,结合自动控制原理的快速性,准确性,稳定性的要求。
我们可以得出结论:
前馈控制能达到优化控制的目的,和传统的PID控制模式相比具有一定的优越性。
四、心得体会
随着科学技术发展的日新月异,MATLAB已成为当今应用软件中空前活跃的领域,在生活中的应用可以说是无处不在,因此掌握MATLAB这个软件基本的使用方法对我们是十分有益的。
MATLAB可用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
当然,MATLAB也可以用对反馈系统进行校正。
此次课程设计的内容对一个单位反馈系统进行滞后-超前校正。
回顾此次实践的整个过程,虽然只有短短的几天,但是真的在这个自己独立学习的过程中学到了好多东西。
课程设计开始阶段比较顺利,但是做到计算校正后系统的时域性能指标这里时,遇到了不小麻烦,不会用MATLAB编程得阶跃响应曲线。
后来,在同学的帮助下,终于看懂了课件了的那段程序,于是就求出了滞后-超前校正后系统的时域性能指标。
这次的课程设计,不仅让我们更好的更深一步的了解MATLAB这个十分有用的软件,也能运用他对某一电路图进行仿真,与理论上相结合,从而进一步验证理论的正确性,也是理论运用于实践的很好的证明。
与此同时,通过此次课程设计,加深了系统进行滞后-超前设计过程的理解,还掌握了用MATLAB编程计算系统时域性能指标和系统幅值裕量、相位裕量的方法。
总而言之,这次的课程设计的确让我受益匪浅,还让我把许多新知识尽收囊中。
参考文献
[1]陈杰主.MATLAB宝典.电子工业出版.2007.
[2]吴天明,谢小竹等.MATLAB电力系统设计与分析.国防工业出版社.2004.
[3]李国勇.智能控制与其MATLAB实现.电子工业出版社.2005.
[4]胡寿松.自动控制原理.科学出版社.2007.
[5]王万良.自动控制原理.高等教育出版社.2008.
[6]黄坚.自动控制原理及其应用.高等教育出版社.2004.
[7]王晓燕/冯江.《自动控制理论实验与仿真》.华南理工大学出版社.2006.
[8]郑勇/徐继宁/胡敦利/李艳杰.《自动控制原理实验教程》.国防工业出版社.2010.
[9]何衍庆.《MATLAB语言的运用》.化学工业出版社.2003.
[10]刘叔军.《MATLAB7.0控制系统应用与实例》.机械工业出版社.2006.
[11]张德丰.MATLAB自动控制系统设计.机械工业出版.2010.
[12]师宇杰.自动控制原理——基于MATLAB仿真的多媒体授课教材(上册).国防工业出版.2007.
[13]谢仕宏.MATLABR2008控制系统动态仿真实例教程.北京:
化学工业出版社.2009.
附录
常用MATLAB函数简介
(1)step函数
用MATLAB作控制系统单位阶跃响应时,如果已知系统的传递函数的系数,则可以用step(num,den)或者step(num,den,t),就得到系统的单位阶跃响应曲线。
step(num,den)中没有指定时间t,系统会自动生成时间向量,响应曲线图的坐标也是自动标注的。
若采用命令step(num,den,t)求系统的单位阶跃响应,其中的时间t由用户指定,MATLAB会根据用户给定的时间t,算出对应的坐标值。
执行该命令不能自动画出系统的单位阶跃响应图,而要令加plot绘图命令。
除了求单位阶跃响应的step函数,MATLAB中还提供了求系统各种响应的函数,例如求脉冲响应的impluse命令、求系统零输入响应的initial命令。
(2)rlocus函数
虽然用手工精确绘制系统根轨迹是非常困难的,但用计算机很容易精确地绘制出根轨迹。
MATLAB中专门提供了绘制根轨迹的有关函数。
[p,z]=pzmap(num,den)的功能是绘制连续系统的零、极点图。
[r,k]=rlocus(num,den)和[r,k]=rlocus(num,den,k)的功能是绘制根轨迹图。
[r,k]=rlocus(num,den)是绘制k从0到无穷部分的根轨迹。
系统自动确定坐标轴的分度。
如果用户需要设置坐标的范围,只要在程序中加上指令:
v=[-x,x,-y,y];axis(v)。
如果要以给定的参数范围绘制根轨迹,则执行命令[k,poles]=rlofind(num,den,p)。
[k,poles]=rlofind(num,den)和[k,poles]=rlofind(num,den,p)的功能是确定根轨迹上poles处的根轨迹放大系数的值。
(3)bode函数
MATLAB中,绘制伯德图可用命令bode(num,den)。
如果需要给出频率w的范围,可调用指令w=logspace(a,b,n),频率w的采样点的值在十进制数10a和10b之间产生n个十进制对数分度的等距离点。
如果需要指定幅值mag和相角phase范围,则执行命令[mag,phase,w]=bode(num,den)MATLAB在频率响应范围内能够自动选取频率值绘图。