|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID控制算法的C语言实现一PID 算法原理- l7 m) q# T' J% Z7 m R
最近两天在考虑- -般控制算法的C 语言实现问题,发现网络上尚没有一套完.% D, I6 N* j9 w* ^ [
整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。
- G* |( \6 {3 j+ Z0 k# D; H8 ]3 l在工业应用中PID 及其衍生算法是应用最广泛的算法之-,是当之无愧的万& I- ~; _8 K/ T4 `
能算法,如果能够熟练掌握PID 算法的设计与实现过程,对于- -般的研发人员来
/ \$ R2 j$ v/ Q" a+ z' o讲,应该是足够应对- -般研发问题了,面 难能可贵的是,在 我所接触的控制算法3 |2 O* P$ b: J( ]. F; ]7 Q
当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的
' ?+ Z2 b f: q& n5 b% m* ^. ]经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想
' P4 z O$ g1 N1 @% `: Y牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧, 何等的简单! 简单的不是( r" e, w3 c7 H
原始的,简单的也不是落后的,简单到了 美的程度。先看看PID算法的一-般形式:% q" c; p: h, G0 Y
比例环节
0 I! G1 C" i& T积分环节7 G: U/ w) `1 b' r B% H+ f. x1 z
执行器
% l, |7 g( p! Z% F7 L% W# h不
* |) \4 ~) g3 C微分环节' P6 e4 i L4 V' ]# B& \2 E' h: d, G+ N
传感器% q$ ~. H( @* y- B' D7 x; R
PID的流程简单 到了不能再简单的程度,通过误差 信号控制被控量,而控制
9 x7 w% ^% q2 k2 o器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t 时刻) :
, R( T! r1 \+ V; ^2 l- [1.输入量为 rin(t);
0 R0 t. A4 J6 W9 o+ y6 z5 L2.输出量为rout(t);5 a2 U# p/ }; y7 @( u
3.偏差量为 r(=in()rou(t);
2 s. a( U' l! B" a5 @* ]7 _: mpid的控制规律为
0 r, }8 Z9 N: z( F- a1 w" g, Zu(x)= kler(+)=J1 q2 ?2 z2 J9 Z% s! l+ }/ n
err(t)dt+-
! `( |0 |) \5 _$ P- sTpderr(t)
. k8 I2 K# j+ N" `8 zdt6 Z# x% j/ k/ ]) |7 V# Z: a
理解- -下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境5 d. ?/ o1 r; V
具体一下:
" z( Y& l+ { [2 g1.规定这个流程是用来 为直流电机调速的;
" L8 c7 E; J2 T: d( h
3 v' n8 X, Y2 q; r
- \! z1 ?" z6 M$ h* J |
|