初探PID控制算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yc5300891/article/details/82262675

当今的闭环自动控制技术都是基于反馈的概念以减少不确定性。反馈理论的要素包括三个部分:测量、比较和执行。测量关键的是被控变量的实际值,与期望值相比较,用这个偏差来纠正系统的响应,执行调节控制。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。


想要学 PID,让单片机能控制住对象,首先要认识几个概念

PID 控制器

PID 控制器(比例-积分-微分控制器)是一种通过控制系统的偏差来调整输入信号的线性反馈控制算法。通俗的说,它可以给出使执行器(电机)快速准确到达目标的“指导方案”。

系统

系统是具有特定功能的整体,由相互作用、相互依赖的若干组成部分结合而成。

举个栗子:步兵机器人就是一个系统,镜头、小电脑、电机等等是相互作用和相互依赖的组成部分,共同完成了击打能量机关的任务。

反馈

反馈是指将系统输出量通过恰当的检测装置,返回到输入端,与输入量进行比较,并以某种方式改变输入,进而影响系统功能的过程。

举个栗子:我们想让机器人抬头 90°,结果它偷懒只抬了 60°,检测装置发现后,命令它再抬 30°,最后达到我们想要的 90°。

开环和闭环

一般管具有反馈环节的系统称为闭环控制系统,而没有反馈环节的系统则称为开环控制系统。

举个栗子:以步兵的云台控制系统为例。

开环控制系统:假设云台电机是个闭上眼的人,需要走到指定地点,但是因为他看不到,只有主控能告诉它怎么走。但是,主控也不知道还需要走多少步。

控制器(主控)获知目标坐标后,给云台电机一个电流值,云台电机就转一转,然后主控也不知道刚刚转了多少圈,就开始凭感觉给电流值,能不能达到目标坐标,随缘吧。

闭环控制系统:主控获得云台电机的实时位置和目标位置后,告诉云台电机应该怎么走。

云台的实际坐标被陀螺仪/编码器(检测装置)记录下来实时发送给控制器(主控),控制器获知目标坐标后,通过计算得出目标电流值发送给云台电机,云台电机就运动一定角度。电机运动云台实际坐标会改变,主控就知道接下来还差多少角度,再计算发送电流值,如此循环。

PID 的组成

PID 实际上是一个作用于闭环系统的控制算法,由三个部分组成,分别是 P 比例环节,I 积分环节,D 微分环节。


P、I、D三个环节的理解(不够严谨的,但容易理解

典型的PID算法框图:

其中r(t)为设定状态量,y(t)为实际状态量,e(t)为当前误差,u(t)为控制器输出。

P-比例环节

u_{}p(t) = Kp * e(t) = Kp * [ r(t) - y(t) ]

可以看出比例环节有误差存在时才会产生输出u_{}p(t)。比例调节的过程就是即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,通过 Kp * e(t) 产生控制作用以减小偏差。所以单独的P调节系统始终会处于存在误差的情况,实际状态量≠设定状态量。

I-积分环节

u_{}i(t) = Ki * \int_{0}^{t}e(t)

可以看出积分环节的输出u_{}i(t)跟系统的误差累加和有关,即当系统存在误差积分环节就会起调节作用,直到误差为0后控制器稳定输出。积分环节可以消除系统的比例环节稳态误差,一般常用PI调节u_{}p(t)+u_{}i(t),使得实际状态量=设定状态量。

D-微分环节

u_{}d(t) = Kd * \frac{\mathrm{d}e(t) }{\mathrm{d} t}

可以看出微分环节的输出u_{}d(t)跟系统的误差斜率(变化率)有关,也就是根据现在的趋势去判断未来,进而来阻碍未来可能出现过调的趋势,相当于是提前踩点刹车,但是又不全踩刹车。 微分的作用是“阻尼”。


PID控制算法其实就是闭环系统对误差做文章,调节输出,使得被控量和设定状态量一致。调节KpKiKd三个参数值使得系统响应迅速、稳定。

关于PID参数整定:https://www.zhihu.com/question/23088613/answer/23942834

参考:http://blog.sina.com.cn/s/blog_1325a79130102wztb.html

猜你喜欢

转载自blog.csdn.net/yc5300891/article/details/82262675
今日推荐