|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID控制算法的C语言实现一PID 算法原理% o, t& {/ e3 |/ i
最近两天在考虑- -般控制算法的C 语言实现问题,发现网络上尚没有一套完.
2 F- M7 ^" |: v! z( O3 H整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。
+ K u7 H: T- g- Y在工业应用中PID 及其衍生算法是应用最广泛的算法之-,是当之无愧的万8 C# y: k' L) C0 H8 q! U
能算法,如果能够熟练掌握PID 算法的设计与实现过程,对于- -般的研发人员来# s% _! n; @- w& z9 J: z- X
讲,应该是足够应对- -般研发问题了,面 难能可贵的是,在 我所接触的控制算法
2 Y1 f- u5 D. n$ I* ~+ c% ~* v当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的
9 e0 X# L- o8 q, J `5 h; q9 M+ ~经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想2 p" e; }/ C) [& K8 O" j: V
牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧, 何等的简单! 简单的不是
! _: v/ W- M* i" }+ @. d原始的,简单的也不是落后的,简单到了 美的程度。先看看PID算法的一-般形式:
6 |# @1 n0 f% R5 _9 L9 E比例环节
3 ]& q, q6 D: R' n积分环节
) v8 q/ O% f# h. ?执行器5 Z, A& U+ S% @( _* U5 u$ q
不
% s- O0 ]" v4 y! \6 F微分环节) }" ^! l: v4 e- P" G
传感器
& v7 n/ q4 B% i! N4 S" NPID的流程简单 到了不能再简单的程度,通过误差 信号控制被控量,而控制
% Q; } c- a3 P0 D9 {4 P8 ~/ s. {器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t 时刻) :
1 b9 |: U3 G' m8 B M+ @4 ~, X& {% |1.输入量为 rin(t);0 ]3 W: Y( [9 ?5 ~
2.输出量为rout(t);; l4 v, Y5 b8 Z
3.偏差量为 r(=in()rou(t);; \% F1 h2 y) j& D- e- g. P
pid的控制规律为% J. u. k2 p& [, P( X
u(x)= kler(+)=J" o3 r& K% ?( N5 F& W
err(t)dt+-, X7 I7 H' l: G: l) h) ^
Tpderr(t)
. g& t# K% ~8 v1 F& z; Odt# h' X6 L0 H! f0 ?. T: }
理解- -下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境
# H& X# v7 K V5 C/ F. i8 K6 \具体一下:: o0 X ^% U W; X) Y. G @% Q
1.规定这个流程是用来 为直流电机调速的;! I! n/ E. s% Q8 E" b
7 k) D" d. C, t5 t" z- v7 r p! U
|
|