|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID算法5 M" a2 _7 z0 d- G
这个是PID 公式:, n: ^5 C+ N `, S7 j, U( G
U(k+1)= U(k)+( KP"E(k)- KI"E(k-1)+ KD"E(k-2) )
. K' \8 J7 m4 V8 v/ L+ i对你的系统而言, W. k6 p; P' P
U(k)就是当前占空比。我这里先假定 你的占空比对应 定时 器寄存器设置
+ Q+ T1 k# F$ m' G: @范圈是0-85535.同时假定 定时器设置为 a 的时候,
# e$ Y5 o; o, |. X1 p7 ?占空比输出为0%, 全部是低电平,完全不加热。65535 的时候,占空比输出100%, 全速加- x- O) i, t# O
热。/ N% O% U9 }0 c9 s) Z
E(k)是当前温度和设定温度的误差值 p' _) V, S0 ]" c' v0 z! ]
E(-1)是上次计算时的误差值6 d8 \8 B1 w) d! x1 ~7 F& c
E(k-2)是上上次计算时的误差值
: D" J: z8 _. E0 H N0 R由于KP,KI, KD三个系数现在都不知道。需要整定,有自动整定,也有手动整定。我们4 {0 O( D# M. Q/ d" m
先采取手动整定的方案。. t; F; z- _. q8 @; M1 {; S& W
我们现在可以知道温度相差
6 G! w" @+ m5 R# Q& y( p8 f; V' b40C,显然,需要比较快速的加热。水温在正常系统使用的时% t2 `1 L& W9 M: k1 b
候,显然是0-100C的。0 R7 S1 @ m& c6 F. X7 _1 x
而你们这里需要目标温度是, ?$ w$ d+ S* u
30-60C,故最大加热的差值可以认为是
/ O: g- }# w+ |60-0 = 60. (假定不.
9 Q- Y4 H7 v3 |+ B& b# o是冰,是水开始加热)
' m4 ]2 L- M) E5 G/ g! ~8 f2 x我们可以认为,在需 要最大加热差值的时候,
' ^, [. y5 Z: P) Q; y仅用比例控制应当是开启全速加热。! {; `1 n0 y# [. }) Q" ]
所以我们
! y$ ]9 L' A @2 M可以得到一个KP 的估计值。
3 n4 i3 i! e# O* B- ?9 s2 ZKP = 65535/80= 1000左右。这个意思是 最大温差对 应最快加热速度。0 A; w1 e; ?# n5 Y) v( n
然后,假设KI=800, KD=300:比例系数Kp=最大寄存器差值- 实际情况巴温度等老最大差值门
5 T9 B: c8 r% h" V$ U注意,系数需要根据实际情况来整定,此为假设。
9 }8 |* j9 L' d6 n5 h a2 `好,现在假定设置
3 ?/ u+ y! w: b0 {需要温度是60C, 而当前温度是
5 D) `0 K% \, F* X20C.那么可以知道1 A5 p( ^, t9 r0 y- s" U
第一次
0 \" U/ d7 ~$ }U(k)=0
/ L) ?. n y9 m-最开始是没有占空比输出的。所以是占空比是 0
) T8 K2 e! e8 z7 ~6 t1 y ]3 fE(k)= 60-20 = 40' o7 O: E" }# Z* S% `
-一第一次的误差
M$ N) q& c. aE(k-1)=0
. p2 Y* y& w- F5 M- .还没有上次,所以初始化为 0
6 ^) F4 t) [, o- ^& m: X( vE(k-2)=00 ^9 P0 y$ K" ]3 S
-还没有上上次,所以初始化为: H0 ^6 R i% \! {8 U! C6 T) R
由于KP假定是1000, 所以
0 v* o- Z' Y% U8 d) W$ _U[(k+1)= 40"1000 = 40000
- j7 H5 R3 n7 u. L所以,现在就可以按照
6 P( z1 O. d( B) ]9 X5 `+ Y占空比40000 来加热了。
7 F% V7 M" z1 u6 v由于热系统是一个缓慢变化的系统,* z& W( r1 |- p; m" k
所以,加热需要- -段时间才可以看到效果,
1 W6 y6 o) _9 C1 u' s0 I假设采用固
, F$ x. z1 Z; I2 p9 e定间隔时间来设计。这里取- Z1 u8 \6 p5 F; ]: {0 Y
5秒。2 y3 T, s+ [# K% X. g+ J6 Q
5秒过后,假定温度上升了7 z( i9 N1 S& H" |/ K- q2 d
5C,当前温度为25C.
! E% u" ?7 `0 D( W; N! Q, s Z7 s则计算第二次占空比过程。
+ ]# v& c9 v- J- @: Y, J* _4 S# j9 R第二次
4 W: P+ ]/ v3 E! ~U(k) = 40000. ^ U- I- Y. n4 P
E(k)= 60-25=35
7 {0 B' Z0 d/ b' c1 C, k) g) m" ^5 Y! [: gE(k-1)=40
( n: _" M3 P7 W. A0 i/ K, nE(k-2)=0
) Y7 `- d$ d! u+ A1 ]- t, v/ EU(k+1) = 40000 + 35"1000 - 40*800 + 0 = 43000
' V9 \- o* v% w% Y(加热加速了)
% d$ u4 z0 s, N3 }1 s8 |1 Y2 C又过了5秒,假定温度上升了 6C.当前温度为 29C
& [1 p# h8 {, j' T- x- q6 w第三次4 `) {+ M: c0 f' Y0 \- m
5 C* @8 h* V! ^+ Z. ]9 V$ V0 J" p% z" F" i3 o
|
|