|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用matlab编了一个微分先行的PID控制,我理解是PI对偏差作用,D只对输出起作用,PID的参数整定,我使用ZN整定4:1得到PID参数,结果得到的控制效果比普通的PID控制差。而且将输入延时时间由2改为5后,效果也是相当差,鲁棒性很差。 0 o% H2 j3 ?5 r/ \" x& ]
2 J7 d2 l) W# u# h# q
%清除变量,关闭其它窗口
0 M/ C2 |' B. c8 B5 U) Bclear all;( ~0 \9 O; R- h" I
%close all;: o, L* k5 W X! o
%定义对象与取样时间, m6 d( V5 J0 u3 K6 j7 P
ts=1; %定义取样时间: Y/ W& m* ~9 F! o+ ?; C8 ~$ ?+ d
sys=tf(4*[2.6,1],conv([34.3,1],[6.5,1]),'inputdelay',2); %被控对象模型5 H% y* e9 l: N
dsys=c2d(sys,ts,'zoh'); %离散化
, T% z* k b/ `5 y8 c0 y, i[num,den]=tfdata(dsys,'v'); %取出对象的模型参数, F$ q# }0 R: D3 n) l% \
%初始化变量. z3 c% }* |) n, U8 H8 p8 I
u_1=0;u_2=0;u_3=0;u_4=0;
* M0 A, q# A2 L; \5 U Lu_5=0;u_6=0;u_7=0;$ @, b8 M- w" v
ud_1=0;
6 i3 p& r1 c. L# D7 S: }y_1=0;y_2=0;
0 F$ ~% B M/ c7 J- E+ _, lsum_err=0;& a" n" e8 O3 p3 ` r5 g k' z
rin=0.98;
' o9 i0 w. P( W, p* i% B%参数给定# h7 T% A8 M9 h# I; b
km=5.29;wm=17;
7 X6 r7 ~. g6 h Y& B% L( n+ zkp=km/1.7;ki=2*kp/wm-0.22;kd=kp*0.13*wm; %此处由于超调较大,把ki减小了! Y8 j% v" r, x" Y
%进入仿真" [# t0 a+ u. n2 s
for k=1:1:4000 x. @, q' d* t- z, T# ]
time(k)=k*ts;3 ^5 x! ^- F) p1 Q
yout(k)=-den(3)*y_2-den(2)*y_1+num(2)*u_3+num(3)*u_4;6 ~4 r1 x3 @! _0 b! G& p' v' e
error(k)=rin-yout(k);
0 ? ~3 O: x; l8 a8 Y sum_err=sum_err+error(k)*ts;
+ q% V6 g C3 m# a' x
3 R1 u. c1 U# k7 [4 I+ c%计算控制器输出值u
* U$ Z/ n3 v0 j6 M ud(k)=kd*(yout(k)-y_1)/ts; %计算D作用输出后的输出$ ]1 _4 q$ |! q r [
u(k)=kp*error(k)+ki*sum_err-ud(k);% L% q) Z( f. G& [# d
%限制控制器的输出值
# s5 w( h0 H: ?8 U `# H1 H; ~& E if u(k)>=110
; m* m/ @1 y9 l5 e& a u(k)=110;
0 q: n) X5 n# Y) S1 w5 [7 U end
) `1 G/ s6 c& S$ ]- o% T2 ^& H if u(k)<=-110
- @8 V- c" h$ s# i% [ u(k)=-110;# I2 ?) Y. Q9 k& r6 ?
end
: } \& ?' c& J6 M5 k
* y) p' Q" d6 e" E R%更新参数
# w5 t s& j& [y_2=y_1;y_1=yout(k);6 ^8 a3 K. N! d5 B9 k
u_7=u_6;u_6=u_5;u_5=u_4;; ?9 J" P# O7 _; ]5 L
u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);3 _' ]5 d9 g( Y6 J3 W
end. K. D( b; D3 y3 z1 @+ H2 F1 L
figure(1);0 k$ o2 r( `8 o: x# c
plot(time,rin,'r',time,yout,'b');+ S( g+ j1 W- B0 P; D) e# I" o8 }
xlabel('时间');ylabel('设定值,输出值'); M$ d: N9 ]( u: h% q9 H
|
|