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

PID算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于离散PID的大量程序中的P,I,D,参数初始值不明白怎么来的。求助大神!3 O6 z1 o- d: U
clear all;
4 @: f) W8 l- yclose all;
; |' q3 B( E- v0 J. v# H) f8 K# Wts=0.001;4 Y! n9 L, I/ f# q6 v% N  p+ P
sys=tf(400,[1,50,0]);
1 [" |1 x0 ]5 z0 ^dsys=c2d(sys,ts,'z');
- {% Y7 x7 W& g! r! A4 M[num,den]=tfdata(dsys,'v');
1 z/ ?% j" H' v% [2 zu_1=0.0;u_2=0.0;u_3=0.0;2 i2 Y) h, @- y5 ~# q5 M) [1 V
y_1=0;y_2=0;y_3=0;0 B+ `0 l2 J' d7 t3 o* n8 o! W# @
x=[0,0,0]';
4 D( j+ [& n7 C/ z+ N* o2 berror_1=0;
+ S, ?- ]% D! U- [$ W$ e6 j7 N$ X; terror_2=0;# O6 Q% }; {& D$ c  m( d. o# b
for k=1:1:10004 _0 i" b' p3 L
   time(k)=k*ts;
2 c; e  d* j) t6 o, v$ y   
4 r% H0 l1 a  B% w# }) S0 G& g6 J: a' N   yd(k)=1.0;
7 U1 W6 t% F1 F  E' o5 N+ W( l* j2 j8 l   kp=8;1 d) E  F) V& e& R  g
   ki=0.10;(请问这三个参数的初始值怎么确定的)
" R% L( Y  I4 X& q6 a   kd=10;  h, w; F, X4 ^5 e4 t4 ~( z6 W
   . e0 `3 W& ?% {7 L0 L4 F
   du(k)=kp*x(1)+kd*x(2)+ki*x(3);1 Y# B; c# N9 k- {5 ^
   u(k)=u_1+du(k);
. \2 g% Z$ ~1 m8 N/ d/ p. b+ B   if u(k)>=10: W$ z+ P9 x: R& G7 z
      u(k)=10;
0 d( m1 P8 P. I9 w   end
+ e2 [* y2 R1 g& ^   if u(k)<=-10
6 B3 s0 b6 u6 x4 i# X2 u/ Q5 V0 ?      u(k)=-10;
4 ^1 i4 y0 k  l9 |6 l* E% T- ]8 N   end   ' C- F2 O: \6 N2 w& c
   y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;) o2 s7 B+ _9 V/ p, O# |& [
   " U2 L. N3 f( B0 o* ]- m6 ~
   error=yd(k)-y(k);
% ]0 C- j. r7 G. C% {% E2 M   u_3=u_2;u_2=u_1;u_1=u(k);0 T; ~, z/ s+ E% e( r# L* E
   y_3=y_2;y_2=y_1;y_1=y(k);
& P& Q8 P. Z% j. {" N, \   
9 @$ ?$ v3 z( K3 e$ j. i   x(1)=error-error_1;             %Calculating P
# m6 b. s" i4 Q3 E; J) x* j% ^9 B   x(2)=error-2*error_1+error_2;   %Calculating D& e( B5 M& S# r1 f% N' o! h7 T" s
   x(3)=error;                     %Calculating I7 C4 _/ S. m7 G, I
   
+ d7 }! K9 V2 s/ f/ f, L   error_2=error_1;
; |/ G! y7 D0 @. E+ q3 V8 c2 j   error_1=error;) C4 U+ J( g4 J
end
4 x5 n; m2 ?. {3 D* U$ a) v0 V, A! Dfigure(1);
) Y. N; t! W) E& ^) Yplot(time,yd,'r',time,y,'k:','linewidth',2);
, U) r2 _$ t3 zxlabel('time(s)');ylabel('yd,y');
! q4 R0 O) @' _legend('Ideal position signal','Position tracking')4 L6 h, H' n9 ?1 D' a

该用户从未签到

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-6-21 18:53 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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