|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID控制算法的C语言实现一PID 算法原理! k \- H/ d( V6 M$ ?5 R
最近两天在考虑- -般控制算法的C 语言实现问题,发现网络上尚没有一套完.
$ r- x# q9 f+ o. ] y9 I整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。+ D5 Z9 j( f# i" I' j
在工业应用中PID 及其衍生算法是应用最广泛的算法之-,是当之无愧的万& }1 u5 V; f5 H4 |+ m7 I) I- [3 d
能算法,如果能够熟练掌握PID 算法的设计与实现过程,对于- -般的研发人员来2 b/ A( ^, M% d# T* @
讲,应该是足够应对- -般研发问题了,面 难能可贵的是,在 我所接触的控制算法! R D, x. h' ]5 R9 G. ]
当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的
) L- A* l+ ^* {( b7 u H经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想( z5 d3 w, u6 \8 q. h& g
牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧, 何等的简单! 简单的不是
7 d( B9 D( x$ K* a2 B- T. N原始的,简单的也不是落后的,简单到了 美的程度。先看看PID算法的一-般形式:
* q" i+ [9 n, c8 n" g0 D/ f6 I比例环节
$ E: _: t# u ~) D& e0 w" g( f9 {积分环节7 T7 p5 B- \) C* u
执行器4 c$ i* k# o% Y/ R
不
% X, c& j! \! t: r* f4 U8 Y微分环节7 N; _" H9 [7 w8 K4 N8 ]# M
传感器
% j9 d7 H) P! |' e7 Y; I0 ^ y; RPID的流程简单 到了不能再简单的程度,通过误差 信号控制被控量,而控制
3 E2 E* b- ^3 ~: y# F+ ~! {器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t 时刻) :# `9 _& N$ z3 y% k' \- B, @' L) H
1.输入量为 rin(t);& k" ^# k9 O% U) _9 O( Y. A
2.输出量为rout(t);
! o" @! y: P4 Z' I% K5 [- g. F+ Q3.偏差量为 r(=in()rou(t);
. m" }7 C! h# \/ @) [pid的控制规律为5 N- P6 l( x- m9 A& l
u(x)= kler(+)=J7 d" k) t y; k5 }
err(t)dt+-
; p ^( l* O8 F0 a% ]Tpderr(t)6 c. p# a" C+ y' U& x
dt4 o0 t7 R# ?4 M
理解- -下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境6 g$ ?( W D: x) }6 O9 e* i
具体一下:
( A! q- Q% M c4 w% ?( M5 u1.规定这个流程是用来 为直流电机调速的;. H- `; w5 M/ k
+ R3 l& Q9 v- n8 _, C
' p5 y; F( R0 A$ s% U2 I
|
|