目录
1.关于自动调节系统几个关键名词 (2)
1.1.自动调节系统 (2)
1.2.负反馈 (2)
2.什么是PID (2)
3.PID分类 (3)
3.1.模拟PID 控制 (3)
3.2.数字PID控制 (4)
3.2.1.位置式PID (4)
3.2.2.增量式PID (6)
4.P纯比例作用趋势图的特征分析 (7)
5.I 纯积分作用趋势图的特征分析 (8)
6.D 纯微分作用趋势图的特征分析 (9)
7.PID参数整定 (10)
7.1.PID参数整定方法 (10)
7.2.PID参数整定口诀 (10)
7.3.PID参数整定方法之经验试凑法 (10)
7.4.PID参数整定方法之趋势读定法 (11)
1.关于自动调节系统几个关键名词
1.1.自动调节系统
比方说桌子上放个物体,样子像块金属,巴掌大小。你心里会觉得这个物体比较重,就用较大力量去拿,可是这个东西其实是海绵做的,外观被加工成了金属的样子。手一下子“拿空了”,打到了鼻子。这是怎么回事?比例作用太强了。导致你的大脑发出指令,让你的手输出较大的力矩,导致“过调”。
还是那个桌子,还放着一块相同样子的东西,这一次你会用较小的力量去拿。可是东西纹丝不动。怎么回事?原来这个东西确确实实是钢铁做的。刚才你调整小了比例作用,导致比例作用过弱。导致你的大脑发出指令,命令你的手输出较小的力矩,导致“欠调”。
还是那个桌子,第三块东西样子跟前两块相同,这一次你一定会小心点了,开始力量比较小,感觉物体比较沉重了,再逐渐增加力量,最终顺利拿起这个东西。为什么顺利了呢?因为这时候你不仅使用了比例作用,还使用了积分作用,根据你使用的力量和物体重量之间的偏差,逐渐增加手的输出力量,直到拿起物品以后,你增加力量的趋势才得以停止。
这三个物品被拿起来的过程,就是一个很好的整定自动调节系统参数的过程。凡是具备控制思想和调节方法的系统都叫自动调节系统。
1.2.负反馈
负反馈是个对收集到的信号进行相反处理的办法叫做负反馈,要想让一个放大器稳定,需要用到负反馈。
走路的时候,眼睛看路,它会告诉你个信号:偏左了或偏右了,然后让你脑子进行修正。信号发到你脑子里面后,你脑子里要对目标信号与反馈信号相减,然后进行修正。偏左了就向右点,偏右了就向左点。对这个相减的信号就是负反馈。如果相加就是正反馈了,那样走着走着你就掉进坑里去了。
2.什么是PID
PID控制器是工业过程控制中广泛采用的一种控制算法,其特点是结构简单灵活、技术成熟、适应性强。
P、I、D分别是Proportion(比例)、Integral(积分)、Differential(微分)的英文缩写;将偏差的比例、积分和微分通过线性组合构成控制量,用该控制量对受控对象进行控制,称为PID算法。在工程实践中,一般P是必须的,所以衍生出来很多的PID控制器,如PI、PD、PID等。
通俗点讲,PID,就是对输入偏差进行比例、积分、微分运算,运算的叠加结果去控制执行机构。其中调节器就是人的大脑,就是一个调节系统的核心。任何一个控制系统,只要具备了带有PID的大脑或者说是控制方法,那它就是自动调节系统。
基本的调节器具有两个输入量:被调量和设定值:被调量就是反映被调节对象的实际波动的量值(变化);设定值就是人们设定的值,也就是人们期望被调量需要达到的值(固定)。
只要记住这三个量:设定值、被调量、输出指令。事实上,为了描述方便,习惯上精
简为两个量:输入偏差和输出指令。输入偏差是设定值和被调量之间的差值。
P就是比例,就是输入偏差乘以一个系数(提高响应速度);
I就是积分,就是对输入偏差进行积分运算(减小静差);
D就是微分,对输入偏差进行微分运算(抑制振荡)。
PID 算法的一般形式如下图所示:
控制器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t时刻):
①输入量为r(t);②输出量为c(t);③偏差量为e(t) = r(t) - c(t)。
3.PID分类
3.1.模拟PID 控制
模拟PID控制原理:如图所示是一个小功率直流电机的调速原理图。给定速度n0(t)与实际转速n(t)进行比较,其差值e(t)经过PID 控制器调整后输出电压控制信号,经过功率放大后,驱动直流电动机改变其转速。
常规的模拟PID 控制系统原理框图如下图所示:
该系统由模拟PID 控制器和被控对象组成。图中,r(t) 是给定值,y(t) 是系统的实际输出值,给定值与实
际输出值构成控制偏差e(t)。
e(t) = r(t) - y(t);
e(t) 作为PID 控制的输入,u(t)作为PID 控制器的输出和被控对象的输入。所以模拟PID 控制器的控制规律为:
其中:
Kp ――控制器的比例系数;
Ti ――控制器的积分时间,也称积分系数;
Td ――控制器的微分时间,也称微分系数。
3.2.数字PID控制
3.2.1.位置式PID
在我们的微处理器里面,因为控制器是通过软件实现其控制算法的,所以必须对模拟调节器进行离散化处理,这样它只需根据采样时刻的偏差值计算控制量。因此,我们需要使用离散的差分方程代替连续的微分方程。
由于计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量,而不能像模拟控制那样连续输出控制量,进行连续控制。由于这一特点,式中的积分项和微分项不能直接使用,必须进行离散化处理。
离散化处理的方法为:以T作为采样周期,k作为采样序号,则离散采样时间对应着连续时间,用矩形法数值积分近似代替积分,用一阶后向差分近似代替微分,最后可以得到离散的PID 表达式为:
其中:
k ――采样序号k =0、1、2、……;
uk ――第k 次采样时刻的计算机输出值;
ek ――第k 次采样时刻输入的偏差值;
ek-1 ――第k – 1 次采样时刻输入的偏差值;
Kp ――比例系数;
Ki ――积分系数,Ki =Kp * T / Ti;
Kd ――微分系数,Kd =Kp * Td / T。
算法的缺点是:由于全量输出,所以每次输出均与过去状态有关,计算时要对ek 进行累加,工作量大;并且,因为计算机输出对应的是执行机构的实际位置,所以,如果计算机出现故障,输出将大幅度变化,会引起执行机构的大幅度变化,有可能因此造成严重的生产事故,在实际生产中是不允许的。增量式PID 控制算法可以避免这种现象发生。
位置式PID 的  C 语言实现:
//①定义PID变量结构体
struct_pid
{
float SetSpeed; //定义设定值
float ActualSpeed; //定义实际值(反馈值)
float err; //定义偏差值
float err_last; //定义上一个偏差值
float Kp,Ki,Kd; //定义比例、积分、微分系数c语言基本名词概念
float voltage; //定义电压值(控制执行器的变量)
float err_sum; //定义积分累计误差
} pid;
//②初始化变量
//统一初始化变量,尤其是Kp、Ki、Kd 三个参数,在调试过程中,对于要求的控制效果,可以通过这三个量直接进行调节。
void PID_init(void)