前言
PID算法在控制领域极其重要的存在,在电机的学习中也是重中之重。
一为什么使用PID算法
1简单易懂
PID算法的原理相对简单,易于理解和实现。它基于简单的反馈控制思想,适合各种控制场合。
2实时控制
PID控制器可以实时响应系统的误差,通过调整控制信号来快速纠正偏差,适用于动态变化的系统。
3稳态误差小
积分部分可以消除稳态误差,使系统在稳定状态下能够达到设定值,适合需要高精度控制的场合。
4抑制震荡
微分部分能够预测系统的变化趋势,帮助减小系统的振荡,提高系统的稳定性。
5广泛适用性
PID控制器可以用于各种类型的控制系统,如温度控制、速度控制、位置控制等,适应性强。
6调节灵活
PID控制器的参数(比例、积分、微分增益)可以根据具体系统进行调整,适应不同的控制需求。
二PID算法介绍
PID算法(比例-积分-微分控制)是一种常用的反馈控制算法,用于自动控制系统中,以实现对某一物理量(如温度、压力、速度等)的精确调节。PID控制器通过对误差的不同成分进行处理,来稳定和优化系统的输出。以下是PID算法的基本组成和工作原理:
1PID控制公式
u(t)是控制输出(电动机的速度、阀门的开度等)
e(t)是当前误差,定义为设定值(目标值)减去实际值(反馈值)。
Kp、Ki、Kd是比例、积分和微分的增益,分别控制三项的影响程度。
2PID的含义
<1>比例§
比例控制是最简单的一种控制方式,成比例的反应控制系统中输入与输出的偏差信号,只要偏差一旦产生,就立即产生控制的作用来减小产生的误差。比例控制器的输出与输入成正比关系,能够迅速的反应偏差,偏差减小的速度取决于比例系数 Kp,Kp 越大偏差减小的就越快,但是极易引起震荡;Kp 减小发生震荡的可能性减小,但是调节的速度变慢,单纯的比例控制存在不能消除的静态误差,这里就需要积分来控制。
<2>积分(I)
在比例控制环节产生了静态误差,在积分环节中,主要用于就是消除静态误差提高系统的无差度。积分作用的强弱,取决于积分时间常数 Ti,Ti 越大积分作用越弱,反之则越强。积分控制作用的存在与偏差 e(t)的存在时间有关,只要系统存在着偏差,积分环节就会不断起作用,对输入偏差进行积分,使控制器的输出及执行器的开度不断变化,产生控制作用以减小偏差。在积分时间足够的情况下,可以完全消除静差,这时积分控制作用将维持不变。Ti 越小,积分速度越快,积分作用越强。积分作用太强会使系统超调加大,甚至使系统出现振荡。
<3>微分(D)
微分环节的作用是反应系统偏差的一个变化趋势,也可以说是变化率,可以在误差来临之前提前引入一个有效的修正信号,有利于提高输出响应的快速性, 减小被控量的超调和增加系统的稳定性,虽然积分环节可以消除静态误差但是降低了系统的响应速度,所以引入微分控制器就显得很有必要,尤其是具有较大惯性的被控对象使用 PI 控制器很难得到很好的动态调节品质,系统会产生较大的超调和振荡,这时可以引入微分作用。在偏差刚出现或变化的瞬间,不仅根据偏差量作出及时反应(即比例控制作用),还可以根据偏差量的变化趋势(速度)提前给出较大的控制作用(即微分控制作用),将偏差消灭在萌芽状态,这样可以大大减小系统的动态偏差和调节时问,使系统的动态调节品质得以改善。微分环节有助于系统减小超调,克服振荡,加快系统的响应速度,减小调节时间,从而改善了系统的动态性能,但微分时间常数过大,会使系统出现不稳定。微分控制作用一个很大的缺陷是容易引入高频噪声,所有在干扰信号比较严重的流量控制系统中不宜引入微分控制作用。
小结
比例项:快速反应,适合于消减大部分误差。
积分项:消除长期的偏差,确保稳态准确性。
微分项:提高系统稳定性,防止超调和震荡。
三PID应用举例
1温度控制
2水位控制
3自动驾驶汽车
四PID算法的离散化
1.PID算法的连续状态公式
假设采集数据的间隔时间为T, 则在第 kT时刻有:
误差等于第 k 个周期时刻的误差等于输入(目标)值减输出(实际)值,则有:err(k)=rin(k)- rout(k)
积分环节为所有时刻的误差和,则有:err(k)+err(k+1)+err(k+2)+…
微分环节为第k时刻误差的变化率,则有:[err(k)-err(k-1)]/T
从而获得PID的离散形式:
则U(k)可以表示为:
到此为止,PID的基本离散表达形式就推导出来了,简化后:
目前这种表达式是位置式,也叫全量式PID。
接下来推导增量式PID:
第一步:将k-1带入到k得:
第二步:由△u=u(k)-u(k-1)得:
到此增量式公式推导完毕,从公式来看增量式PID的输出与近三次的偏差有很大关系;需要注意的是我们推导的事对于上一次来说的调节量,公式如下:
2位置式PID和增量式PID一些说明
<1>定义和输出方式
位置式PID:
定义:输出是绝对的控制量,直接指向设定值。
输出:控制信号是当前时刻的绝对值,例如,如果设定值是100,控制输出可能直接是100。
增量式PID:
定义:输出是相对于上一个控制时刻的增量,计算的是相对变化量。
输出:控制信号是相对于前一时刻的增量。例如前一输出是50,现在的输出可能增加到60,输出的增量是10。
<2>应用场景
位置式PID:
适用于需要精确定位和保持在某一绝对值的应用,如:
温度控制(保持恒定温度)。
精密的定位系统(如数控机床)。
机器人臂的角度控制。
增量式PID:
适用于需要频繁调整或变化的系统,如:
电动机控制(如速度控制)。
需要快速响应变化的系统。
一些工业自动化设备(如阀门控制)。
<3>优缺点
位置式PID:
优点:
简单易用:由于输出是绝对值,直观易于理解和调试。
稳态控制效果好:适合对位置要求较高的场合,能够保持精确的设定值。
缺点:
计算负担较重:在计算上可能需要更多的资源,尤其在大规模系统中。
对初始条件敏感:在系统启动时,可能需要较长时间才能达到稳定状态。
增量式PID:
优点:
计算效率高:只计算增量,相对于位置式更轻量。
响应迅速:适合快速变化的控制需求,能够快速调整控制输出。
缺点:
可能导致累计误差:如果增量设置不当,可能导致稳态误差的积累。
需要稳定的初始状态:对于初始条件变化可能更敏感,可能需要更复杂的算法来处理。
五编程
1位置式PID的C语言实现
<1>PID结构体
<2>PID算法实现
2增量式PID的C语言实现
<1>PID结构体
<2>PID算法实现