|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID控制算法的C语言实现一PID 算法原理
, h! N: }1 d1 u; o4 L) c4 { \最近两天在考虑- -般控制算法的C 语言实现问题,发现网络上尚没有一套完.# B1 N' N' _8 J5 C7 G
整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。& V7 [% a" r( i, I# b! Q3 m
在工业应用中PID 及其衍生算法是应用最广泛的算法之-,是当之无愧的万, _- ]. b8 I& z# x& A
能算法,如果能够熟练掌握PID 算法的设计与实现过程,对于- -般的研发人员来
! K3 y5 O. l# M6 x讲,应该是足够应对- -般研发问题了,面 难能可贵的是,在 我所接触的控制算法
/ E* R0 u3 K$ R" c% m当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的6 k/ P! ~8 U$ z" \; ?
经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想
8 t7 \, @& X' I) z( c9 L+ V+ `' d牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧, 何等的简单! 简单的不是
- h7 B6 E( v1 J |; V' c7 v) r原始的,简单的也不是落后的,简单到了 美的程度。先看看PID算法的一-般形式: I' j x& g8 j U/ ~4 V/ F
比例环节
1 w* t6 I2 j* u0 X. y) }积分环节. w$ Z3 A$ f0 N$ H5 F
执行器
- H$ q @- C C' K. l7 o) @不( Y4 d! f% {6 p. Q1 k
微分环节+ R3 Z, S' d z
传感器
5 f r. q9 e. N; Y2 c& @PID的流程简单 到了不能再简单的程度,通过误差 信号控制被控量,而控制, @1 t0 |; R2 Y7 X' D' s
器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t 时刻) :
7 M+ @' T' e% V( S1.输入量为 rin(t);
5 L$ z7 d8 j; i( K0 f7 N2.输出量为rout(t);
4 j" ]7 K' A; t. ~6 B5 d$ Q3.偏差量为 r(=in()rou(t);! O, c0 _: c& a! b
pid的控制规律为% e& Z, k& H, L+ d
u(x)= kler(+)=J
+ B# q6 u v4 _3 nerr(t)dt+-0 E" f, q3 l& S6 d. z* I$ X
Tpderr(t)9 X" a6 S3 j# O( W7 H
dt
' E; b2 q0 Y, P3 p$ B' \( w [* o7 y理解- -下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境
7 }" o7 `$ B, N: w0 s& `6 f具体一下:
1 r( d- l0 R! l! g1.规定这个流程是用来 为直流电机调速的;- H5 [% ?1 ^9 l4 p+ K
o4 P i3 \$ Z$ h8 B3 d
3 S. u2 m1 x( u+ O) q% I |
|