PID算法实现及参数整定图解(附代码)

一、 PID含义

PID是英文单词比例(Proportion),积分(Integral),微分(Differential coefficient)的缩写。PID调节实际上是由比例、积分、微分三种调节方式组成,它们各自的作用如下:

比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

离散式PID分为位置型和增量型。

二、 PID位置式计算公式:

 (式1-1)

式中  u(n)——第k个采样时刻的控制,T  
——采样周期。

由于计算机的输出u(k)直接控制执行机构(如阀门),u(k)的值与执行机构的位置(如阀门开度)一一对应,所以通常称式(1-1)为位置式PID控制算法。

三、 PID增量式计算公式:

增量式计算公式可由(式1-1)推导得到:

由(1-1)可以得到控制器的第k-1个采样时刻的输出值为:

(1-2)

将(1-1)与(1-2)相减并整理,就可以得到增量式PID控制算法公式为:

(1-3)

其中

由(1-3)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(1-3)求出控制量。

增量式PID控制算法与位置式PID算法(1-1)相比,计算量小得多,因此在实际中得到广泛的应用。

位置式PID控制算法也可以通过增量式控制算法推出递推计算公式:

(1-4)

(1-4)就是目前在计算机控制中广泛应用的数字递推PID控制算法。

式(1-3)也即:

Δu(k)=u(k)-u(k-1) = Kp*Δe(k)+ Ki*e(k)+ Kd*[Δe(k)-Δe(k-1)] ,式中Δe(k)=e(k)-e(k-1)

= Kp*[e(k)-e(k-1) + (T/Ti)*e(k) + Td*((e(k)-2*e(k-1)+e(k-2))/T)] (式1-2)

= Kp*(1+T/Ti+Td/T)*e(k) - Kp*(1+2*Td/T)*e(k-1) + Kp*Td/T*e(k-2)

= A*e(k) - B*e(k-1) + C*e(k-2) (式1-3)

式中:

Δu(k)——控制器(也称调节器)的输出增量;

e(k)——控制器的输入(常常是设定值与被控量之差,即e(k)=r(k)-c(k));

Ki=(Kp*T)/Ti 为积分系数

Kd=(Kp*Td)/T 为微分系数

式中:

T: 计算机控制系统的采样周期,其在选定后就不再改变。其选用原则是在被控系统反馈信号的反应时间要求内,尽量小。但过小会增加运算量。

Kp——控制器的比例放大系数;

Ti——控制器的积分时间;

Td——控制器的微分时间。

四、 优缺点

a) 增量式算法优点:①算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;②计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;③手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。

b) 位置式PID控制算法的缺点:当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。

五、 区别于联系:

1、其实是位置式和增量式是一样的,增量式最后那个输出化解完和位置式一样。增量式PID可以通过 u(k) = u(k-1) + Δu(k) 得到位置式输出

2、增量型算法与位置型算法比较:

(1)增量型算法不需做累加,计算误差后产生的计算精度问题,对控制量的计算影响较小。位置型算法用到过去的误差的累加,容易产生较大的累加误差。

(2)增量型算法得出的是控制的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会影响系统的工作。位置型算法的输出是控制量的全部输出,误动作影响大。

(3)是的,增量式算法的主要优势体现在对积分环节的处理上,积分作用的累加效果会影响到输出的准确性。

(4)楼上的说法让我获益不少,一直没理解“避免误动作”的原因。另外,增量式算法易于实现手、自动的无扰动切换。

六、 增量式PID调教总结

1.负反馈

自动控制理论也被称为负反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。

2.PID调试一般原则

a.在输出不振荡时,增大比例增益P。

b.在输出不振荡时,减小积分时间常数Ti。

c.在输出不振荡时,增大微分时间常数Td。

3.一般步骤

a. 首先选取合适的采样周期T,这里先选取0.05S…待其余参数都调教好后,可再对比修改采样周期T.

% T:0.05 Kp:0.85 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

% T:0.1 Kp:0.85 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

% T:0.2 Kp:0.85 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/mi

% T:0.3 Kp:0.85 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

% T:0.01 Kp:0.85 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

b.确定比例增益P

确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。

T:0.05 Kp:3 Ti:0 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min(实验证明此时速度加不到1档)

T:0.05 Kp:3 Ti:0.3 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min(此时速度可以达到1档,但超调过大)

T:0.05 Kp:2 Ti:0.3 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

% T:0.05 Kp:1 Ti:0.3 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

c.确定积分时间常数Ti

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

% T:0.05 Kp:1 Ti:0.4 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

% T:0.05 Kp:1 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

% T:0.05 Kp:0.85 Ti:0.45 Td:0 占空比初始值(电机启动电压对应占空比):1620 速度加到一档400r/min

d.确定微分时间常数Td

积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。

e.系统空载、带载联调,再对PID参数进行微调,直至满足要求。

时间: 2024-08-08 03:05:13

PID算法实现及参数整定图解(附代码)的相关文章

模糊PID控温算法的具体实现(一):参数自整定模糊PID算法概念

上个学期已经基本上实现了PID的温控算法,为了撰写小论文,这个学期最先要做的事情就是实现模糊PID的温控算法. 模糊控制系统的构成与与常规的反馈控制系统的主要区别在于控制器主要是由模糊化,模糊推理机和精确化三个功能模块和知识库(包括数据库和规则库)构成的.具体实现过程如下所示: (1)预处理: 输入数据往往是通过测量设备测量得到的一个具体数据,预处理就是在它们进入控制器前对这些数据进行分类,或性质程度的定义.预处理过程也是量化过程,它是在离散空间中把输入数据划分为若干个数字级别.例如,假设一个反

第三天:SLAM智能小车DIY乐趣-小车控制PID参数整定

PID参数整定教程 1.数字PID控制算法介绍------位置型&增量型 由于是面向计算机编程实现为目的,这里就直接从数字PID切入正题,如果想要了解更多PID方面的基本知识请参阅相关理论资料. 增量型算法的优点: a. 增量算法不需要做累加,控制量增量的确定仅与最近几次误差采样值有关,计算误差或计算精度问题,对控制量的计算影响较小.而位置算法要用到过去的误差的累加值,容易产生大的累加误差. b. 增量式算法得出的是控制量的增量,例如阀门控制中.只输出阀门开度的变化部分,误动作影响小,必要时通过

一个实例说明PID 参数整定

引言:PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.  1.比例控制 有经验的操作人员手动控制电加热炉的炉温,可以获得非常好的控制品质,PID控制与人工控制的控制策略有很多相似的地方. 下面介绍操作人员怎样用比例控制的思想来手动控制电加热炉的炉温.假设用热电偶检测炉温,用数字仪表显示温度值.在控制过程中,操作人员用眼睛读取炉温,并与炉温给定值比较,得到温度的误差值.然后用

SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为底盘包含软硬件整套解决方案,是很多机器人公司的核心技术,一般不会随便公开.出于强烈的求知欲与学习热情,我想自己DIY一整套两轮差分底盘,并且将完整的设计过程公开出去供大家学习.说干就干,本章节主要内容: 1.stm32主控硬件设计 2.stm32主控软件设计 3.底盘通信协议 4.底盘ROS驱动开发

线性控制原理——PID算法应用

使用控制系统(PID)控制被控对象 PID控制的三要素:控制器,被控对象,反馈器.控制器就是一个数学模型,就PID来说,等同于PID算法.是对反馈量的一个处理与输出.通俗的说就是对于每个被控的量,我的输出量通过什么函数式算出,或者说,我如何描述我的输出量.现在我给定一个描述性的传递函数.从数学角度来看:它的自变量是反馈值,当这个函数的对应关系确定了之后,输出量就是个定值了.我的希望是:这个描述函数是一个透明的空箱--它既能反映系统外部特性,又可以看到其内部结构. 就拿比赛来说:假设我现在要构建这

形象解释PID算法

形象解释PID算法+PID算法源代码 小明接到这样一个任务: 有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水. 小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度.水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功.几次试验后,确定每10分钟来检查一次.这个检查时间就

PID算法的含义及其应用,PID基础,适合不懂PID算法的人来看!

                    先插句广告,本人QQ522414928,不熟悉PID算法的可以一起交流学习,随时在线 在正式进入正文前,补充一下本人学习PID算法的背景,先自我介绍一下:本人一名大三电子专业的学生,什么学校你就别管了,学校一般,普通的二本院校.到现在可以说我已经研究了快两年的PID,这期间做过帆板角度控制系统,做过平衡车,做过倒立摆,做过板球控制系统,做过openmv小球追踪系统,还做过四旋翼等--,可以说现在已经很熟悉PID算法,包括单级的PID算法和多级的PID算法.

PID算法(C语言)

/************ PID算法(C语言) ************/ #include <stdio.h> #include<math.h> struct _pid { int pv; /*integer that contains the process value*/ int sp; /*integer that contains the set point*/ float integral; float pgain; float igain; float dgain;

PID 算法理解

PID 算法 使用环境:受到外界的影响不能按照理想状态发展.如小车的速度不稳定的调节,尽快达到目标速度. 条件:闭环系统->有反馈 要求:快准狠 分类:位置式.增量式 增量式 输入:前次速度.前前次速度.前前前次速度 输出:pwm的增加值或减少值 位置式 输入: 输出: 公式 或 Kp 比例放大系数     Ti  积分时间    Td 微分时间 Kp比例放大系数  Ki 积分系数  Kd 微分系数