码迷,mamicode.com
首页 > 其他好文 > 详细

初用PID的一点认识

时间:2017-07-27 20:13:08      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:ati   准备工作   使用   也会   数据   控制器   对象   采样   参数   

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的一点认识

标签:ati   准备工作   使用   也会   数据   控制器   对象   采样   参数   

原文地址:http://www.cnblogs.com/otaganyuki/p/7246433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!