Bootstrap

matlab衰减曲线法整定步骤,Matlab仿真PID控制——衰减曲线法整定参数

参考:https://blog..net/kilotwo/article/details/79828201

衰减曲线法原理

1、过渡过程的衰减曲线

本方法实际是临界比例度法一种变形,本方法操作简便,凑试时间较短。我们知道控制系统在用纯比例作用时,在比例度逐步减少的过程中,就会出现图1所示的过渡过程。

48bbc39eb51f267c0c1d44b5126bb642.png

图1   给定值阶跃变化下的过渡过程衰减曲线

这时控制过程的比例度,称为n:1衰减比例度δs,两个波峰之间的距离,称为n:1衰减周期Ts。衰减曲线法,就是在纯比例作用的控制系统中,求得衰减比例度s和衰减周期Ts,并依据这两个数据来计算出调节器的参数s、Ti和Td。

2、衰减曲线法整定口诀

衰减整定好处多,操作安全又迅速;

纯P降低比例度,找到衰减4:1;

按照公式来计算,PID序加参数;

观看运行细调整,直到找出最佳值。

3、衰减曲线法整定步骤

①先把积分时间放至最大,微分时间放至零,使控制系统运行,比例度放至较大的适当值,“纯P降低比例度”,就是使控制系统按纯比例作用的方式投入运行。然后慢慢地减少比例度,观察调节器的输出及控制过程的波动情况,直到找出4:1的衰减过程为止。这一过程就是“找到衰减4:1”。

②对有些控制对象,用4:1的衰减比感觉振荡过强时,这时可采用10:1的衰减比。但这时要测量衰减周期是很困难的,可采取测量第一个波峰的上升时间Tr,其操作步骤同上。

③根据衰减比例度s和衰减周期Ts、Tr按表1进行计算,求出各参数值。

表1  衰减曲线法调节器参数计算表

控制品质要求                       控制规律                     δ/%                     Ti/min               Td/min

衰减比为4:1                         P                                δs

衰减比为4:1                         PI                               1.2δs                    0.5Ti

衰减比为4:1                         PID                             0.8δs                    0.3Ti                 0.1Td

衰减比为10:1                       P                                δ's

衰减比为10:1                       PI                               1.2δ's                    2Tr

衰减比为10:1                       PID                             0.8δ's                    0.3Tr                0.1Tr

④先将比例度放在一个比计算值大的数值上,然后加上积分时间Ti,再慢慢加上微分时间Td。操作时一定要按“PID序加参数”,即先P次I最后D,不要破坏了这个次序。

⑤把比例度降到计算值上,通过观察曲线,再作适当的调整各参数。即“观看运行细调整”,直到找出最佳值。

4、注意事项

①要得到衰减的过渡过程,只有在系统平稳时,再加给定干扰,才有可能找出n:1的衰减过渡过程。否则,可能会有外界干扰,而影响到比例度和衰减周期数值的正确性。

②是加正干扰还是加负干扰,最好与工艺联系来商定,因为是要根据工艺生产条件来确定的。给定干扰的幅值,通常是取满量程的2%-3%,在工艺允许的情况下,可以适当的大一些。

③本方法对于变化较快的压力、流量、小容量的液位控制系统,在曲线上读出衰减比有一定难度。由于工艺负荷的变化,也会影响到本法的整定结果,因此,在负荷变化比较大的时候,就需要重新整定。

在matlab中PID控制算法

使用参考内容方法建立系统建立基本的PID控制模型,也可以使用

https://blog..net/weixin_44044411/article/details/85891109#t7

中的方法建立离散的系统。

衰减曲线法实现

step(sys);

Kpv=0;

detal=100;%两峰值之比

while(detal>4)%判断两峰值之比是否符合4:1

Kpv=Kpv+0.01;

sysp = feedback(Kpv*sys,1);

[Y, T]=step(sysp);

[val,timelabel]=findpeaks(Y);

detal=(val(1)-Y(end))/(val(2)-Y(end));

end

用matlab重点findpeaks函数找到前两个峰峰值和峰值时间,当符合条件时跳出循环,进入模式选择,根据原理经验公式,使P,PI,PID选择不同参数

key=input('Choose mode:','s');

switch key

case 'P' %P

Kp=Kpv;

sysp = feedback(Kpv*sys,1);

figure(2);

step(sysp);

case 'PI' %PI

Kp=Kpv/1.2;Ti=0.5*Tv;

G = tf([Kp,Kp/Ti],[1,0]); %这里也是(KpS+Kp/Ti)/s

syspi = feedback(G*sys,1); %前面是积分环节与系统的串联,负反馈

figure(2);

step(syspi);

case 'PID' %PID

Kp=Kpv/0.8;Ti=0.3*Tv;Td=0.1*Tv;

G=tf([Kp*Td,Kp,Kp/Ti],[0,1,0]); %(Kp*Td*S^2+Kp*s+Kp/Ti)/s=Kp(Tds+1+1/STi)

syspid = feedback(G*sys,1);

figure(2);

step(syspid);

end

完整代码下载:https://download..net/download/weixin_38952224/11171860

Ps: 今天一看竟然把下载调到11积分,我还改不了,太黑心了!!

故附上百度云链接:链接: https://pan.baidu.com/s/1CRYKcna6g_AmzHvP4H4Pnw 提取码: exdc  有多余积分的意思下也不介意:)。

;