|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID控制算法的C语言实现一PID 算法原理
: t/ |, J% R p最近两天在考虑- -般控制算法的C 语言实现问题,发现网络上尚没有一套完.: u \2 ]" a ?; V* u
整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。
4 ]* W% Y2 Z t- G9 m) D) W在工业应用中PID 及其衍生算法是应用最广泛的算法之-,是当之无愧的万: S8 R" t5 O- K( L, K K* |
能算法,如果能够熟练掌握PID 算法的设计与实现过程,对于- -般的研发人员来. Z8 P& V1 y% s# U
讲,应该是足够应对- -般研发问题了,面 难能可贵的是,在 我所接触的控制算法
6 a# V9 l) F' f) v9 M6 T1 l- C+ O当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的
6 ~8 i. J7 Y. _$ Z( s经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想6 I/ {3 [; ]' L. s
牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧, 何等的简单! 简单的不是' A) C: t( Z+ f* s; @6 V" I
原始的,简单的也不是落后的,简单到了 美的程度。先看看PID算法的一-般形式:
& e- \9 v/ Y' j' P) j比例环节( W g {5 g9 A; D
积分环节8 h+ @% c! i7 W9 p
执行器
: s' u) \* ?4 s- j: x不7 H8 C. N# h* f8 P7 w
微分环节
! Z5 ]0 A# t) n传感器
+ U( ^% d% T+ G. Y; z4 [PID的流程简单 到了不能再简单的程度,通过误差 信号控制被控量,而控制( D' u$ {* L3 V0 S P: a
器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t 时刻) :3 X0 B2 A6 F4 V5 O) J3 i
1.输入量为 rin(t);
j% ?# k3 h; S% n6 u8 \2.输出量为rout(t);1 x' @ Y6 v- _
3.偏差量为 r(=in()rou(t);
& P) n2 N( S7 ~/ A1 s' Opid的控制规律为, M! j" u. |' s2 `" ^8 k7 e& u& |
u(x)= kler(+)=J
+ X; @. A5 I/ J# eerr(t)dt+-% i3 m' L: U3 y+ \0 K
Tpderr(t)
7 d) v9 y6 m9 z. G; u" m1 `5 adt4 c, i2 P% w4 Y- D6 N3 J
理解- -下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境% I" A+ F1 \* W( A( ~9 [/ m
具体一下:, E2 ?) O, O1 ?1 i d( G3 i
1.规定这个流程是用来 为直流电机调速的;* @% S% Y1 Q, l
$ G" a4 o3 }9 n! j2 N
' {5 [* c, D8 Y- I" {# A9 { r |
|