PID控制算法的原理剖析

本文分享了作者作为00后开发者在备战电子设计竞赛中的PID控制经验,介绍了PID算法的基本原理,包括比例、积分和微分环节的作用,及其在电气、嵌入式等领域的实际应用,如倒立摆、平衡小车等。重点讲解了PID参数整定策略,强调了根据具体需求调整参数的重要性。
摘要由CSDN通过智能技术生成

我的微信公众号(ID:00后开发者)从00后的角度出发,专注但不局限于分享电气、嵌入式、机器视觉以及芯片行业的算法、技术文章和最新资讯。如果想查看更多内容,可以关注我的微信公众号。

前言
大学时期,为了备战各种电子设计竞赛,经常拿 大学生电子设计大赛 往年的题目来做练习。
2017年滚球控制系统,2013年倒立摆控制系统以及大家都调过的两轮平衡小车,四轴无人机,循迹小车、飞思卡尔赛车等,这些项目里面都包含了PID控制算法。通过这些项目,我也对PID算法有了自己的理解,希望把我的经验分享给大家。

PID算法的基本原理

PID控制算法如下图所示,输入是人为设定的方便PID控制器实现的控制量,经过比例、积分、微分环节,再由反馈环节,使得控制量无线接近于我们设定的目标量,从而达到PID控制的目的。
在这里插入图片描述
PID通过偏差信号控制被控量,控制器本身就是比例、积分、微分叠加组成。
在此,设定 t 时刻,输入量为 rin(t);输出量为 rout(t) ;偏差为 Δ(t)= rin(t) - rout(t) ;则PID控制器的公式如下:
在这里插入图片描述
比例部分P 数学表达式为 Kp×Δ(t)

在PID控制器中,比例环节的作用是对偏差迅速做出反应,比例系数Kp的值越大,比例环节的控制作用就越强,反应就越迅速,控制过程的静差就越小。Kp过大,会导致系统振荡。

对于平衡小车来说,Kp过大,系统振荡,小车就会前后摇摆,摇摆的幅度越来越大,最终会倒地不起。假如Kp的值较小,小车出现倾角,电机不能迅速反应,小车重心持续偏移(类似于比萨斜塔,重心在地基的铅直上方,就不会倾倒),此时电机反应过来也无法挽救小车的倾倒,最终也会倒地不起。 在这里插入图片描述

因此为了保证控制器的整体效果,比例系数Kp必须选择恰当,维持快速反应的同时,产生的静差小且系统稳定。

积分部分I 数学表达式为 Kp/Ti× ∫Δ(t)dt

从数学的角度来说,积分本质上就是累加的连续。从PID控制系统的角度来说,积分就是随着积分上下限的增大,即积分响应连续增加时间直到偏差为0,随着时间的增加,积分出来的值也增大。只有在理想条件下(偏差Δ=0)时,Δ的积分才是一个常数。只要存在偏差Δ,积分的控制作用就会不断增加。由此可见,积分在PID控制系统中的作用是不断减小系统的静差。

积分消除静态误差的理论分析,可以参考自动控制原理的书籍,对比静态误差函数和积分后的静态误差函数来分析。

积分环节的作用是消除静态误差,但会降低系统的反应时间,并增加系统的超调量。积分系数 Ti 越大,积分的时间累加作用就越弱,从而减缓静差的消除过程,即系统的反应变慢,可以减小超调量。 Ti 越小,积分的控制作用就越强,系统超调量增加,有可能会产生振荡。

PID参数整定先是比例后积分。对于倒立摆来说,在角度环中,如果积分系数越大,系统反应越慢,干扰稳定的摆杆,电机反应不及,摆杆就会受到重力的影响无法稳定,且偏差越来越大。积分系数越小,积分的作用效果就越强,系统超调量增加,可能产生振荡,电机就会抖动。
在这里插入图片描述

因此,为了保证积分过程尽可能的减小系统的静差,系统也能够快速反应,提高系统的鲁棒性,必须根据实际控制的具体要求来确定积分系数 Ti 。

微分部分D 数学表达式为 Kp×TD×dΔ(t)/dt

积分D,指的是Differential,微分环节作为一种“预见型”控制过程,通过计算分析出偏差的瞬时变化率,分析偏差的变化趋势,预先做出反应。微分环节响应的是偏差的变化过程, 根据偏差的变化趋势对系统进行控制。因此,引入微分环节,可以增加系统的鲁棒性,通过预知可能出现的偏差,减小超调量。

在四轴无人机的控制系统中,微分环节主要是提高系统的鲁棒性和反应快速性。当微分系数 TD 过大时,系统的噪声会放大,在无人机中的垂直升降中,无人机就会在对应的俯仰角/横滚角/偏航角上抖动;
当 TD 过小,无人机不能迅速达到稳定,同时操控方向舵和油门,可以明显看出,无人机从倾斜的姿态转为悬停稳定的时间延长。

微分会放大输入的噪声,在噪声较大的系统中,要么先进行滤波再微分,要么直接避免使用微分环节。
对于高阶控制系统,引入微分环节很有必要,方便减小超调量,克服系统振荡,使得系统迅速稳定。对于绝大多数的控制系统来说是不需要积分控制环节的。只有当某个系统存在有时间滞后的时候才加入积分环节进行修正,所以微分参数的加入要先确定系统是否存在有时间滞后。

整定PID参数的过程,实际上是通过引入PID控制器,不断调整零极点的分布,来保证系统的稳定性。具体的原理分析可以参考自动控制原理的相关书籍。

关于PID控制的相关C语言算法,将在后续的文章中介绍。

我的微信公众号(ID:00后开发者)从00后的角度出发,专注但不局限于分享电气、嵌入式、机器视觉以及芯片行业的算法、技术文章和最新资讯。如果想查看更多内容,可以关注我的微信公众号。
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alexander.Tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值