EDA365电子论坛网

标题: PID算法 [打印本页]

作者: pTDbn25    时间: 2020-9-22 14:05
标题: PID算法
关于离散PID的大量程序中的P,I,D,参数初始值不明白怎么来的。求助大神!3 R" t) c- d" h: [
clear all;
" Z% [; Y) j5 {: d) vclose all;, c  q  Z% V% |4 H. y
ts=0.001;/ F, o  _* V# m1 {
sys=tf(400,[1,50,0]);
+ o# ?8 R5 U9 L4 w7 T# G( Odsys=c2d(sys,ts,'z');% a7 c/ x2 _1 M1 r# `0 g
[num,den]=tfdata(dsys,'v');
1 b1 `7 T' X( t, q% @+ X; Y9 Wu_1=0.0;u_2=0.0;u_3=0.0;
  N3 V. m" F5 u# d# `- a: Xy_1=0;y_2=0;y_3=0;9 C3 H! h1 @! G+ B- K
x=[0,0,0]';$ O4 N' D$ s, Z6 ^7 u6 |, e; N
error_1=0;& w' a9 z; K- f4 R- L' I" I
error_2=0;
% r, U' q$ C1 M- e7 R6 n# Zfor k=1:1:1000
; ?" h* I0 o, s2 e/ u4 u   time(k)=k*ts;
% P* r* d4 h; m   1 f7 H5 ?2 d( L
   yd(k)=1.0;( J# b( R& L  @3 j1 D: p
   kp=8;! F5 g- N" E6 z8 V
   ki=0.10;(请问这三个参数的初始值怎么确定的)' P/ m# P' N& t
   kd=10;' \# v9 l" R$ S  \0 ], o
   
( q/ t) B6 D% m4 k0 w  h5 B   du(k)=kp*x(1)+kd*x(2)+ki*x(3);
: A& [" `' x2 z6 H4 E% S   u(k)=u_1+du(k);( \0 \2 _! E1 F" h. m- j, {& T2 \
   if u(k)>=10' I9 \8 l: G) z: p, R
      u(k)=10;
0 j7 B: \7 {0 a3 b4 w5 Y   end+ C% z2 `# y) F' f
   if u(k)<=-10
2 j- z' G' t3 h! _0 v      u(k)=-10;/ H; \9 s* l; I* @$ x- s! f, ?
   end     e- b/ F' H/ R3 A- X3 y7 _
   y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;# u8 N/ K$ D$ ?( n2 H
   
1 I! v. I# J8 V   error=yd(k)-y(k);
/ t9 \5 ?- x0 G9 O% `1 k   u_3=u_2;u_2=u_1;u_1=u(k);
* ]- n' f" X, b- k6 d   y_3=y_2;y_2=y_1;y_1=y(k);
( |/ p# i. F! y: X, L2 H8 a   
9 h6 x. W8 ]# p) O8 F   x(1)=error-error_1;             %Calculating P- O! W! ~; H3 N6 E3 Q1 L
   x(2)=error-2*error_1+error_2;   %Calculating D( n  O) ~2 m% }- J  o; t
   x(3)=error;                     %Calculating I
$ u+ S! y% i- p* _   ! {% t& {+ e* B& {( F$ a
   error_2=error_1;
/ D- C# ^; ^  Y   error_1=error;6 \* x; S2 J7 B4 V; A
end
* R! O* U6 h2 ]4 rfigure(1);
  {: L+ |2 I- c* {; Bplot(time,yd,'r',time,y,'k:','linewidth',2);$ [& s3 \; X- X- E$ R% z# v* [  V
xlabel('time(s)');ylabel('yd,y');
- K* V8 e' ^3 V2 w0 A% Z$ ^6 i8 elegend('Ideal position signal','Position tracking')5 l9 f& b6 n5 ^3 u) f4 S, t3 \

作者: zzz.dan    时间: 2020-9-22 14:29
根据经验确定,然后再根据实际图像进行调整
作者: IBB-EUT    时间: 2020-9-22 14:39
我一般都是再试
作者: zaiyiaaaa    时间: 2020-9-22 14:50
这个很难说,就是经验
作者: Uifhjvv    时间: 2020-9-22 16:51





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2