|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用matlab编了一个微分先行的PID控制,我理解是PI对偏差作用,D只对输出起作用,PID的参数整定,我使用ZN整定4:1得到PID参数,结果得到的控制效果比普通的PID控制差。而且将输入延时时间由2改为5后,效果也是相当差,鲁棒性很差。
! c% W6 o" G% o1 l- M/ I- T$ o- N+ D% Z5 b7 W; x9 c
%清除变量,关闭其它窗口
: d5 v1 ~( f1 J8 cclear all;
6 t+ P9 L0 Z$ l1 g9 a) ?/ K%close all;. l) T1 J) T! Z9 p
%定义对象与取样时间
3 Q; ~# G5 p7 X, a. |ts=1; %定义取样时间
8 x' f0 P7 k4 A. tsys=tf(4*[2.6,1],conv([34.3,1],[6.5,1]),'inputdelay',2); %被控对象模型
# b: `+ f$ ^) B% @( ~+ c! M$ Ndsys=c2d(sys,ts,'zoh'); %离散化- ?. \1 G0 D/ ^6 v- E3 Q
[num,den]=tfdata(dsys,'v'); %取出对象的模型参数) c+ B0 a; J6 g
%初始化变量) M& ?, ^ ^2 B9 w
u_1=0;u_2=0;u_3=0;u_4=0;3 _- ]7 M1 H& e4 P @
u_5=0;u_6=0;u_7=0;6 w! P3 h" L$ K4 q9 j& J9 d* A/ v
ud_1=0;
! Q5 f2 d: f' M7 |/ Ny_1=0;y_2=0;
5 k7 x% J" ^5 t4 I D2 \5 T, h+ T. osum_err=0;
# u. S2 u% a) m3 e' g: o! O0 a. Srin=0.98;, Q) v# _; r9 }9 U: ^6 J2 I
%参数给定" N9 q: q- L/ m+ J0 a* b
km=5.29;wm=17;
3 L0 G! q! {; V9 G1 K5 e' Q2 v. qkp=km/1.7;ki=2*kp/wm-0.22;kd=kp*0.13*wm; %此处由于超调较大,把ki减小了4 [ |3 x: h; S0 b; R
%进入仿真! {6 b# r9 z5 }6 }0 `8 n
for k=1:1:400. Q1 \3 E! e0 H& R$ z! v" _
time(k)=k*ts;- u$ V+ p% e( V- L L% v
yout(k)=-den(3)*y_2-den(2)*y_1+num(2)*u_3+num(3)*u_4;4 e1 {8 a' e1 ^
error(k)=rin-yout(k);% k) R& e9 j5 E2 z; B/ p3 @
sum_err=sum_err+error(k)*ts;! z! o2 T k4 R: [9 c5 C0 b
5 B- Z- d; a4 ^; {2 Z
%计算控制器输出值u. ^0 d- J0 C& C" |2 z0 [. `
ud(k)=kd*(yout(k)-y_1)/ts; %计算D作用输出后的输出
/ P! M, C. Q% \7 V- m1 Z u(k)=kp*error(k)+ki*sum_err-ud(k);
2 j. S6 R. z5 l+ c E%限制控制器的输出值! B6 L! N% R ]( w& a1 c
if u(k)>=1101 r- { W3 d1 r* b& n: K
u(k)=110;
/ w% h% t+ N$ H) G( m3 S2 } end# c$ j$ B! s* o& D$ ^. t3 o
if u(k)<=-1105 p) a( E/ |6 S6 e
u(k)=-110;8 M# t7 Q* t& c, }4 L
end/ p( O* t9 T" s6 o. }8 ?
3 A) L4 B7 P0 t" T, B
%更新参数
5 v3 z( ~3 B. B ~. c$ U5 Ty_2=y_1;y_1=yout(k);
' Y. m4 s9 a" f& v2 Lu_7=u_6;u_6=u_5;u_5=u_4;
1 ~! d3 ^2 M" ~7 W" T" D5 Au_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
' {! _8 [4 g- P7 k2 {end
}; c1 e' h# m6 vfigure(1);
* e; f+ p; z# Eplot(time,rin,'r',time,yout,'b');. J5 t, t: |5 j# p1 C
xlabel('时间');ylabel('设定值,输出值');
M# l' h" s7 X( F( n( H! [) D4 } |
|