pid控制器matlab仿真
- 格式:doc
- 大小:546.00 KB
- 文档页数:20
基于MATLAB的PID控制系统参数调节的仿真分析
1、引言
PID控制是最早发展的自动控制策略之一,PID控制系统由比例单元(P)、积分单元(I)和微分单元(D)组成。具有简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。PID控制的参数自动调整是通过智能化调整或自校正、自适应算法来实现。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
本文首先从PID理论出发,建立模型,讨论系统的稳定性,快速性,准确性。利用MATLAB对PID控制的参数进行仿真,设计不同的参数,以使系统满足所要求的性能指标。
2、 控制领域有一个很重要的概念是反馈, 它通过各种输出值和它们各自所需值的实时比较的度量—各种误差,再以这些误差进行反馈控制来减少误差。这样形成的因果链是输入、动态系统、输出、测量、比较、误差、输入构成的一个环路,因而也构成了包含原动态系统在内的一个新的动态闭环系统。 采用反馈的基本原因是要在不确定性存在的条件下达到性能目标。许多情况下,对于系统的了解是不全面的,或者可用的模型是基于许多简化的假设而使它们变得不透彻。系统也可能承受外界干扰,输出的观测常受噪声干扰。有效的反馈能减少这些不确定性的影响,因为它们可以补偿任何原因引起的误差。反馈概括了很广泛的概念,包括当前系统中的许多回路、非线性和自适应反馈,以及将来的智能反馈。广义的讲,反馈可以作为描述和理解许多复杂物理系统中发生的循环交互作用的方式。
在实际的过程控制和运动控制系统中,PID占有相当的地位,据统计,工业控制中 PID 类控制器占有 90%以上。PID 控制器是最早出现的控制器类型,因其结构简单,各个控制器参数有着明显的物理意义,调整方便,所以深受工程技术人员的喜爱。而且PID控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好、可靠性高,被广泛应用于过程控制和运动控制中,尤其适用于可建立精确数学模型的确定性控制系统中。
自计算机进入控制领域以来, 用数字计算机代替模拟计算机调节器组成的计算机控制系统,不仅可以用软件实现 PID 控制算法[65],而且可以利用计算机的逻辑功能,使 PID控制更加灵活。数字PID控制是生产过程普遍采用的一种控制方法,在机电、冶金、机械、化工等行业获得广泛的应用。将偏差的比例(P) 、积分(I)和微分(D)通过线性组合构成的控制量,对被控对象进行控制。
模拟 PID控制系统原理框图如图1, 系统由模拟 PID控制器和被控对象组成。
PID 控制器是一种线性控制器,它根据给定值 rin(t)和实际输出值 yout(t)构成控制偏差:err(t)=rin(t)-yout(t)。通过对误差信号进行比例,积分或微分运算和结果的加权处理,得到控制系统的输出u(t) 其控制规律为
构成传递函数为
上式中,kp 为比例系统,T1 积分时间常数,Td 微分时间常数。 简单来说,PID各校正环节的作用如下: 比例环节:成比例的反映控制系统的偏差信号
err(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差。
积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于时间常数 T1,T1 越大,积分作用越弱,反之越强。 微分环节:反映偏差信号的变化趋势(变化速率) ,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。
3、PID控制系统仿真分析
MATLAB语言具有简单易懂,运算功能强大,界面友好等优点,同时具有大量的工具箱,广泛应用于控制系统的仿真和分析。以下利用MATLAB对系统做分析和研究。PID控制的难点在于控制器的参数整定。一般先通过理论计算来确定控制器参数,同时结合工程经验对实际运行中的系统进行最后的调整和完善。
本文首先通过系统等幅振荡整定得到PID参数,然后通过改变各个参数的取值,利用MATLAB仿真得到各参数对系统的影响。从而为现实的工业操作应用提供参考。
建立数学模型:
设被控对象等效传递函数为
)5)(1(1)(ssssG
分析控制器的参数对系统静态误差的影响。
程序 num=1;
den=conv([1 1 0],[1 5]);
G0=tf(num,den);
rlocus(G0)
axis([-5 5 -10 10])
可以得到原系统根轨迹图如图2所示:
Root LocusReal AxisImaginary Axis-5-4-3-2-1012345-10-8-6-4-20246810System: G0Gain: 29.7Pole: 0.00531 + 2.22iDamping: -0.00239Overshoot (%): 101Frequency (rad/sec): 2.22
当开环增益约小于29.7的时候,系统处于稳定状态。
由图可以得原系统在临界稳定时,取30'pK,8.222.2/2/2'cwP
利用等幅震荡整定法,可以确定控制器对应的参数。
控制器类型 等幅震荡整定
P '5.0ppKK
PI '45.0ppKK,'833.0PTi
PID '6.0ppKK,'5.0PTi,'125.0PTd
1、首先可以得到没有加PID控制时候原系统以及添加PID控制器的阶跃响应其中参数
1830*6.06.0'ppKK 4.18.25.05.0'PTi
35.08.2125.0125.0'PTd
程序:
t=0:0.01:25;
num=1;
den=conv([1 1 0],[1 5]);
G0=tf(num,den);
step(feedback(G0,1),t)
hold on
k0=30;
p0=2.8;
k1=0.6*k0;
ti=0.5*p0;
td=0.125*p0;
s=tf('s');
Gc=k1*(1+1/ti/s+td*s);
step(feedback(G0*Gc,1),t)
% title('原系统与添加PID控制系统的对比图')
gtext('原闭环系统响应曲线')
gtext('PID控制系统响应曲线')
051015202500.20.40.60.811.21.41.61.8原闭环系统响应曲线PID控制系统响应曲线Step ResponseTime (sec)Amplitude
从图可以看出,通过PID实施控制可以减少系统的静态误差,改善系统的稳态性能。 2、分析比例控制作用,设35.0dT、4.1iT、Kp= 0.1*30 ~ 1*30.输人信号阶跃函数,分别进行仿真,如图3 所展示的系统的阶跃响应曲线
t=0:0.01:25;
num=1;
den=conv([1 1 0],[1 5]);
G0=tf(num,den);
k0=30;
p0=2.8;
a1=0.1:0.4:1;
k1=a1*k0;
ti=0.5*p0;
td=0.125*p0;
s=tf('s');
Gc=k1*(1+1/ti/s+td*s);
G=G0.*Gc;
step(feedback(G(1),1),t)
hold on
step(feedback(G(2),1),t)
hold on
step(feedback(G(3),1),t)
axis([0 16 0 1.9])
hold off
legend('Kp=3','Kp=15','Kp=27')
text(6.5,1.4,'Kp=3' )
text(4,0.65,'Kp=15' )
text(4.1,1.1,'Kp=27' ) 024681012141600.20.40.60.811.21.41.61.8
Kp=3Kp=15Kp=27Step ResponseTime (sec)AmplitudeKp=3Kp=15Kp=27
图3 显示的仿真结果表明:系统的超调量会随着Kp值的增大而加大,系统响应速度也会会随Kp值的增大而加快。但是系统的稳定性能会随着Kp的增大而变差。
3、分析积分控制作用,设35.0dT,8.2*1~8.2*2.0iT、Kp= 18.输人信号阶跃函数,分别进行仿真,如图所示系统的阶跃响应曲线
012345678910-1-0.500.511.522.533.54
Ti=0.56Ti=1.68Ti=2.8Step ResponseTime (sec)Amplitude
系统的超调量会随着Ti值的加大而减小,系统响应速度随着Ti值的加大会略微变慢。
t=0:0.01:25;
num=1;
den=conv([1 1 0],[1 5]);
G0=tf(num,den);
k0=30;
p0=2.8;
a1=linspace(0.2,1,3);
k1=0.6*k0;
ti=a1*p0
td=0.125*p0;
s=tf('s');
Gc=k1*(1+1./ti/s+td*s);
G=G0.*Gc;
step(feedback(G(1),1),t)
hold on
step(feedback(G(2),1),t)
hold on
step(feedback(G(3),1),t)
axis([0 10 -1 4])
hold off
legend('Ti=0.56','Ti=1.68','Ti=2.8')
gtext('Ti=0.56' )