简单学习PID控制

 什么是PID?

PID是一种闭环自动控制系统---即通过反馈决定和校正控制行为的系统。与此相对的是开环系统。通常来讲开环系统的控制是瞬间完成的,之后便无法进行更正,比如开灯这个动作。调节水龙头这个活动中你需要通过观察水流大小来调节开关。

PID如其名分为三个部分

Proportion-比例控制

Integral-积分控制

Derivative-微分控制

下面我们来举个例子理解这些部分的作用和用法。

假使

注意积分时间,微分时间就是积分常数和微分常数,并非采样时间一样的概念

比例控制

位置PID和增量PID的区别

根据位置式离散PID公式
pwm=Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]
e(k)代表本次偏差
e(k-1)代表上一次的偏差
∑e(k)代表e(k)以及之前的偏差的累积和;其中k为1,2,,k;
pwm代表输出
**************************************************************************/
int Position_PID (int Encoder,int Target)
{
static float Bias,Pwm,Integral_bias,Last_Bias;
Bias=Encoder-Target; //计算偏差
Integral_bias+=Bias; //求出偏差的积分
Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias); //位置式PID控制器
Last_Bias=Bias; //保存上一次偏差
return Pwm; //增量输出
}

 

PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)与输出u(t)的关系为:
u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt]式中积分的上下限分别是0和t
因此它的传递函数为:G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s]
其中kp为比例系数;TI为积分时间常数;TD为微分时间常数。

用途

它由于用途广泛、使用灵活,已有系列化产品,使用中只需设定三个参数(Kp,Ti和Td)即可。在很多情况下,并不一定需要全部三个单元,可以取其中的一到两个单元,但比例控制单元是必不可少的。
首先,PID应用范围广。虽然很多工业过程是非线性或时变的,但通过对其简化可以变成基本线性和动态特性不随时间变化的系统,这样PID就可控制了。
其次,PID参数较易整定。也就是,PID参数Kp,Ti和Td可以根据过程的动态特性及时整定。如果过程的动态特性变化,例如可能由负载的变化引起系统动态特性变化,PID参数就可以重新整定。
第三,PID控制器在实践中也不断的得到改进
PID在控制非线性、时变、耦合及参数和结构不确定的复杂过程时,工作得不是太好。最重要的是,如果PID控制器不能控制复杂过程,无论怎么调参数都没用。
虽然有这些缺点,但简单的PID控制器有时却是最好的控制器。

PID控制器最大的优点是它不是基于模型的 控制方法,要知道,很多时候要得到被控对象的数学模型是很困难的,缺点就是它只能适用于一些简单的被控对象中,对于复杂的,具有大滞后,大惯性的对象则无能为力。

 

参考文章

https://blog.csdn.net/qq1205512384/article/details/72614871

https://blog.csdn.net/zhaoyuaiweide/article/details/54573676

https://www.zhihu.com/question/32678336

https://blog.csdn.net/qq229596421/article/details/51419813

Comments

Popular posts from this blog

活在当下-从尾巴摇狗的荒谬中解放自我

Metroidvania银河恶魔城游戏开发指南(一)

折衷主义建筑