初用PID的一点认识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初用PID的一点认识相关的知识,希望对你有一定的参考价值。
PID全称比例(proportion)-积分(integral)-微分(derivative)控制器,个人理解,说的通俗点就是根据目前及之前的状态算出P I D三个量来决定输出的大小。
实际使用都是一段时间采样一次,对象是离散的值,所以计算并不难,如下:
假设系统开始采样的数据为X1,X2,X3.....+Xk
P就是当前的误差大小,记为ek=Set-Xk Set为当前设定的值 Xk就是当前测出来的值
I就是从开始到现在误差的累加,Sk=e1+e2+....+ek
D就是变化率,dk=ek-e(k-1)
这三个量的计算不是难事,但是输出Out(k)=Kp*ek+Ki*Sk+Kd*dk 还需要三个常数来确定PID三个量的权重,这三个常数就是需要慢慢调试的
调试三个量需要了解其作用。
先说说准备工作,输出的模块需要先调试好,规定正方向,输入大于零往正方向调,小于零往负方向调,这样就保证了比例P的输出始终是往设置的状态靠近,这也就是P的作用。
I是积分,其作用是得知目前为止系统的输出造成误差的累积是如何的,然后着力于消减这个误差,所以具有使系统误差趋于零的作用。若累加误差过大,可以考虑限幅。
D是微分,这个最好理解,ek-e(k-1)=x(k-1)-x(k)=-△x/△t △t即为采样间隔时间, 可知,微分用于抑制相对于设定状态的任何变化。
PID三个量的大小算出来是差距很大的 所以三个常数的大小也都差距很大,目前我做的 一般Kp在个位数到十位数之间 而Ki一般是小数,0.几 1。几都有可能 Kd一般较大 几千几百都有可能
对于平衡小车 倒立摆 之类的题,一般无需积分i PD即可
还有一种增量式PID,名字听起来高大上,其实是自然而然的事情,如果输出模块有记忆上次输出的功能(就是给它设定输出值之后,哪怕不给输出,也会保持上次的输出),所以输出只要给变化量就行了,Dout=Out(k)-Out(k-1)
调试三个参数的经验我也没多少,目前仅有的经验是,观察PID的数据 先确定三个常量的数量级,再细调。
以上是关于初用PID的一点认识的主要内容,如果未能解决你的问题,请参考以下文章