PID自动(反馈)控制

发布时间 2023-07-19 10:39:54作者: asandstar

自动(反馈)控制

1.1 概述

自动控制(automatic control)是指在没有人直接参与的情况下,利用外加的设备或装置,使机器、设备或生产过程的某个工作状态或参数自动地按照预定的规律运行。

1.2 来源与原始形态

自动化控制技术的广泛应用则开始于欧洲的工业革命时期。瓦特在发明蒸汽机的同时,应用反馈原理,于1788年发明了离心式调速器。当负载或蒸汽量供给发生变化时,离心式调速器能够自动调节进气阀的开度,从而控制蒸汽机的转速。

1.3 例子

空调温控,车速控制。

2  PID控制

2.1  闭环自动控制技术的基础

当今的闭环自动控制技术都是基于反馈的概念以减少不确定性。

2.2  反馈理论的要素:测量、比较和执行

测量关键的是被控变量的实际值,与期望值相比较,用这个偏差来纠正系统的响应,执行调节控制。

2.3  PID控制

在工程实际中,应用最为广泛的调节器控制规律为比例(proportion)、积分(integral)、微分(derivative)控制,简称PID控制,又称PID调节。

在闭环系统的控制中,可自动对控制系统进行准确且迅速的校正。PID算法已经有100多年历史,在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景均有应用。

2.3.1       PID控制原理

 

r(t):所需的设定值、目标值;

y(t):测量的过程输出值、实际值;eg.每0.1s得到的车轮速度。

e(t):偏差是设定值(目标值)与过程值(实际值)的差(r(t)-y(t));通过反馈慢慢使之为0。

u(t):经过计算得到的控制变量,输入到控制器中。

$u(t)=K_p·e(t)+K_d×\frac{e(t)-e(t-1)}{\delta t}$

P : proportion(非负比例系数),就是偏差乘以一个常数。

I : integral(非负积分系数),就是对偏差进行积分运算。

D : derivative(非负微分系数),对偏差进行微分运算。

 eg.控制小车:将小车速度设定值r(t)为3m/s,由光电码盘测得速度为3.2m/s,即过程输出值y(t);偏差e(t)为-0.2m/s。

P:将-0.2m/s乘以一个系数(正)输入到控制器中,以减小输出的占空比,则车轮转速将降低,向设定值靠近。KP越大则调节的灵敏度越大,但过大可能会使实际速度低于3m/s(超调)。

I:只经过比例调节的小车,可能稳定后的速度为3.1m/s,存在稳态误差-0.1m/s;虽然误差很小,但是因为积分项也会随着时间的增加而加大,它推动控制器的输出增大,从而使稳态误差进一步减小,直到等于0。

D:小车中有些组件存在较大惯性或者滞后性,其变化总是落后于误差的变化。假设经比例调节后实际速度为3.1m/s,则设定速度与实际速度的差值由-0.2m/s变为-0.1m/s,e(t)的差分为0.1m/s2,将此差分乘以系数(正)加到控制变量中,相比只有比例环节减缓了速度降低的趋势(减小超调量)

调整方式

上升时间

超调量

安定时间

稳态误差

稳定性

↑ Kp

减少 ↓

增加 ↑

小幅增加 ↗

减少 ↓

变差 ↓

↑ Ki

小幅减少 ↘

增加↑

增加 ↑

大幅减少↓↓

变差↓

↑ Kd

小幅减少 ↘

减少↓

减少↓

变动不大→

变好 ↑

 

上表是独立增加参数的影响

2.3.2  PID数学表达

$u(t)=K_pe(t)+K_d\frac{de(t)}{dt}+K_i\int_t^0e(t')dt'$

$K_p,K_i,K_d$都是非负的,先$K_p$(比例项,调整效果最大),再$K_d$(微分项),最后$K_i$(积分项,消除误差)

2.3.1      PID参数整定

1.PID参数调整特点

难点不是编程,而是控制器的参数整定。

输入r(t)为阶跃响应。下图为不同参数下的输出y(t)响应。

理想:稳定、振高少、收敛快

① $K_p$增加,$K_i$ 、$K_d$不变

 

②$K_p$不变,$K_i$ 增加(少量增加),$K_d$不变

 

③$K_p$、$K_i$不变,$K_d$增加

PID系统输出影响:

(1)增大比例系数 使系统反应灵敏,调节速度加快,并且可以减小稳态误差

但比例系数过大会使超调量增大,振荡次数增加,调节时间加长,动态性能变坏,比例系数太大甚至会使闭环系统不稳定

(2)增大微分系数 可以减小超调量和稳定时间

(3)增大积分系数 会减小稳态误差,但会增大超调量和稳定时间

2.3.4  离散型PID

在计算机上进行PID调节时只能用离散型PID。

假设采样间隔为T,则在第kT时刻: 

偏差$e(k) = r(k) - y(k)$

积分环节用加和的形式表示,即$e(k) + e(k-1) + …$

差分环节用斜率的形式表示,即$e(k) - e(k-1)$

从而有位置式PID :

 $u(k)=K_pe(k)+K_d\frac{e(k)-e(k-1)}{\delta t}+K_i·\sum_{j=1}^k e(j)$

由两次的u(k)相减可以得到增量式PID:

 $\delta u(k) = u(k) - u(k-1)=K_p[]+K_Ie(k)+K_D[e(k)-2e(k-1)+e(k-2)]$

(1)增大比例系数 使系统反应灵敏,调节速度加快,并且可以减小稳态误差

但是比例系数过大会使超调量增大,振荡次数增加,调节时间加长,动态性能变坏,比例系数太大甚至会使闭环系统不稳定

(2)增大微分系数 可以减小超调量和稳定时间

(3)增大积分系数 会减小稳态误差,但会增大超调量和稳定时间

PID中三个参数,大体对应于控制系统的三个最重要的方面:

P对应“稳”,即稳定性,放大控制作用;I对应“准”,消除稳态误差;D对应“快”,对误差进行预判、做出快速反应。

用控制器使一锅水的温度保持在50℃

1. Kp比例增益

Kp比例控制考虑当前误差,误差值和一个正值的常数Kp(表示比例)相乘。需要控制的量,比如水温,有它现在的当前值,也有我们期望的目标值。

①  当两者差距不大时,就让加热器“轻轻地”加热。

②  要是因为某些原因,温度降低了很多,就让加热器“稍稍用力”加热。

③ 要是当前温度比目标温度低得多,就让加热器“开足马力”加热,尽快让水温到达目标附近。

Kp越大,调节作用越激进,Kp调小会让调节作用更保守。

2. Kd微分增益

Kd微分控制考虑将来误差,计算误差的一阶导,并和一个正值的常数Kd相乘。

当比较接近目标时,P的控制作用就比较小了,越接近目标,P的作用越小。当有很多内在的或者外部的因素,使控制量发生小范围的摆动。由于P在接近目标时的作用小,整个系统不是特别稳定,总是在“抖动”,因此需要一个控制作用,让被控制的物理量的“变化速度”趋于0,即类似于“阻尼”的作用。

D的作用就是让物理量的速度趋于0,只要什么时候,这个量具有了速度,D就向相反的方向用力,尽力刹住这个变化。Kd参数越大,抑制能力就越强。

3. Ki积分增益

Ki积分控制考虑过去误差,将误差值过去一段时间和(误差和)乘以一个正值的常数Ki。设置一个积分量,只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。

即使与目标值相差不是太大,但是随着时间的推移,只要没达到目标,这个积分量就不断增加。到了目标温度后,假设没有波动,积分值就不会再变动。

Ki的值越大,积分时乘的系数就越大,积分效果越明显,所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

 【走直线的问题】

小车差分驱动(左、右轮分别用电机驱动,通过改变两个电机的转速实现小车前进和转向)仍是主流。两个电机驱动有差异且不可能完全相同,导致两个轮子转速不同,就使得小车本该直线行驶的轨迹发生偏移。运转过程中的扰动,如轮子瞬间打滑、有微小的障碍物等因素,都会导致左右轮不同速,从而“走偏”。