|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID控制算法的C语言实现一PID 算法原理
; L0 ]! W5 C5 Y( R# O, l" {最近两天在考虑- -般控制算法的C 语言实现问题,发现网络上尚没有一套完.* a7 j) t% l5 J% V( d+ _" e! O" C
整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。0 E4 `$ x9 D; r- ?# @+ P
在工业应用中PID 及其衍生算法是应用最广泛的算法之-,是当之无愧的万3 C6 g' \" _1 T2 t [: ~9 ]& l
能算法,如果能够熟练掌握PID 算法的设计与实现过程,对于- -般的研发人员来% C% g, F/ `* D _3 W
讲,应该是足够应对- -般研发问题了,面 难能可贵的是,在 我所接触的控制算法
! d% t$ v4 b. p( T2 m当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的
9 p" q- N; I; `8 y9 B6 r6 g: f$ O经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想7 H" U9 K" z7 l) r8 B1 o
牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧, 何等的简单! 简单的不是
& j9 Z. \# h* c% b原始的,简单的也不是落后的,简单到了 美的程度。先看看PID算法的一-般形式:0 d6 P, X* Z9 [5 O' j p
比例环节
% R7 I; j. k. n; f& e8 Q4 x1 L积分环节
6 y3 ?% t( b3 F/ q' V执行器
8 A/ R4 C# Q. S N: H [不: @" H" A7 {0 B. U& G
微分环节. D$ b3 p5 e/ X, f& |# U J
传感器- O8 _2 |; g$ ^' k
PID的流程简单 到了不能再简单的程度,通过误差 信号控制被控量,而控制
8 o# O# R" K2 K9 z器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t 时刻) :: k1 M. O, p; v/ n
1.输入量为 rin(t);
" |" Y; R% J6 k$ T2.输出量为rout(t);. T2 I# `0 n$ u' {
3.偏差量为 r(=in()rou(t);
; G0 D6 Q* @9 q1 _7 z" \- B2 Fpid的控制规律为7 D4 P, k& l+ A
u(x)= kler(+)=J
' W0 c2 @( ~/ Y" M& h; G, ~err(t)dt+- h- @) V6 j1 v8 q Q7 F' g3 `
Tpderr(t)4 j2 M! u5 b e* n' |( _- G
dt2 ^' {5 m. R$ q$ ^
理解- -下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境# l/ E) y7 r( v9 [0 K* q9 E
具体一下:
1 w$ z m& }7 w5 ~" J+ {1.规定这个流程是用来 为直流电机调速的;
( P$ O# f6 W. o/ T; v, j0 P3 s$ P! ` G7 ^ B! d+ V% D& ]
9 t7 ?( r& g3 k. [* }4 C
|
|