找回密码
 注册
关于网站域名变更的通知
查看: 485|回复: 4
打印 上一主题 下一主题

PID算法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-22 14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于离散PID的大量程序中的P,I,D,参数初始值不明白怎么来的。求助大神!* w; v" V  P0 \' T
clear all;
* M. l" o3 F6 N. H% iclose all;
% B, ]; @: b% O7 i0 K) vts=0.001;! b) q4 o) P% \: N" x$ q
sys=tf(400,[1,50,0]);
  P5 x; S  `! G2 C: d, B# c$ pdsys=c2d(sys,ts,'z');
) P# W) n+ A  l+ ?' r0 b[num,den]=tfdata(dsys,'v');* @# L) [: a0 D* ^# j7 ~6 K; }
u_1=0.0;u_2=0.0;u_3=0.0;0 x+ {) V  K5 h; c7 i+ W
y_1=0;y_2=0;y_3=0;- J( B  @' S7 q- I* ?
x=[0,0,0]';- H& y2 k4 ^3 {; q
error_1=0;
' z7 [! e* h% @9 O) z5 Oerror_2=0;
$ j4 v( n/ Z% f7 H% J0 sfor k=1:1:1000
% Y; b# |! ]! f7 }   time(k)=k*ts;# P0 C4 n/ O& W$ o+ H, o5 R) T5 C$ H
   
) F3 o9 ~4 I0 d8 |' F   yd(k)=1.0;
+ m/ |& c7 L% i6 J/ G$ i: t   kp=8;
; |" y  {- L. p9 c   ki=0.10;(请问这三个参数的初始值怎么确定的)+ |8 I8 l3 v  K' }, c( M7 S
   kd=10;9 J2 Q* |$ G1 G3 ]! @
   / Q4 F5 j, {; Y, g+ R7 K
   du(k)=kp*x(1)+kd*x(2)+ki*x(3);
& ]( j5 R" y$ [6 Q$ A; r   u(k)=u_1+du(k);
1 d# Z& ]# k2 ?5 d- E' ^- L; r9 u   if u(k)>=10
4 ^4 t! f7 {9 H7 H2 |. `: \      u(k)=10;
6 R  x6 {% ^8 \" B   end
0 n0 C  V$ J7 l' z   if u(k)<=-10" \" N* I6 l! j5 ]  x
      u(k)=-10;
1 }! k+ m% H" N& D   end   0 [3 U# z: Q- F7 n
   y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
# h1 U: \4 C; b' D2 H: R, {) q   
/ ?! i3 h+ w$ g   error=yd(k)-y(k);- I0 v) k8 {8 s
   u_3=u_2;u_2=u_1;u_1=u(k);
" f* D7 P: O: b. m" q8 P   y_3=y_2;y_2=y_1;y_1=y(k);
# n, W1 F2 `  g6 ?' p' D* d% J4 G   3 T% ^) D% r/ B9 j, f, k
   x(1)=error-error_1;             %Calculating P# t+ i4 U/ k* A3 v* J8 q1 y7 G
   x(2)=error-2*error_1+error_2;   %Calculating D
1 J! |+ K4 w1 D5 h( M& q8 |7 X   x(3)=error;                     %Calculating I
2 d6 _) ^) m, ^3 R" I' G, D4 |% B   
4 x  s/ B8 @6 E+ I& e4 x6 k$ l   error_2=error_1;1 R  F4 |* z* ~% O
   error_1=error;. V, x/ d" m: ^8 B% z- ]4 r
end- z4 Y& A) |: ^! Y! e& Z
figure(1);1 S- N( N+ E3 G# Z0 A! F
plot(time,yd,'r',time,y,'k:','linewidth',2);+ d" u0 q# x! k4 \5 [1 w
xlabel('time(s)');ylabel('yd,y');
; P% C0 I4 N* N. A' T5 Plegend('Ideal position signal','Position tracking')
6 y# Y0 n' v6 n' |& d

该用户从未签到

2#
发表于 2020-9-22 14:29 | 只看该作者
根据经验确定,然后再根据实际图像进行调整

该用户从未签到

3#
发表于 2020-9-22 14:39 | 只看该作者
我一般都是再试

该用户从未签到

4#
发表于 2020-9-22 14:50 | 只看该作者
这个很难说,就是经验
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 12:41 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表