找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 43652|回复: 16
打印 上一主题 下一主题
收起左侧

PID参数的调节方法和图示

  [复制链接]
跳转到指定楼层
楼主
为了更好的理解这个视频和PID参数的作用,特意根据多轴飞行器的原理和PID理论,编写了一个EXCEL图表,直观的来理解PID参数的作用。
在这个模型中:
1、假设输出是力,作用在一个质块上,使用加速度、速度、位移积分计算,评估输出对测量值产生的影响,跟多轴飞行器的运动模式比较接近。
2、让速度响应慢一个拍子,模拟电调和电机的响应滞后。
3、加入阻尼,模拟空气的衰减作用
4、引入偏差,用于体现I的作用,从中间加入,代表一个系统误差或外作用力

PID的作用概述:
1、P产生响应速度和力度,过小响应慢,过大会产生振荡,是I和D的基础。
2、I在有系统误差和外力作用时消除偏差、提高精度,同时也会增加响应速度,产生过冲,过大会产生振荡。
3、D抑制过冲和振荡,过小系统会过冲,过大会减慢响应速度。D的另外一个作用是抵抗外界的突发干扰,阻止系统的突变。

通过这个模型和图表,一步步演示PID参数的作用和调试方法:

1、逐步增大P,看P对响应速度和力度的影响,调到系统发生振荡,再减少一点P

当P=0.1时,响应很慢,但不会振荡

粗黑线是系统响应,洋红线是目标值。

逐步增大P,P=1,有振荡,但慢慢在衰减


继续增大P,P=3,振荡会逐步加大


取振荡但会衰减的P=1继续调整
在多轴调试时,当振荡发生时,再稍微减小一点P。

2、加入D,看D对振荡的控制能力,D过小会发生过冲,D过大会迟滞,以稍微有点过冲为最佳

D=0.5,有较大的过冲和少量振荡,衰减很快


D=1.3,基本没过冲


D=2,响应迟滞,减慢了响应速度


取以稍微有点过冲的D=1.3为最佳
在多轴调试时,用手拍一下机臂或倾斜启动,机臂在复位时有少量过冲为宜。(不过我喜欢基本没过冲时的参数,这样在悬停时更稳)

3、可以继续增大P和D,让响应更快但过冲也不大。
P=2 D=1.8


在理论上可以这样演示,但在实际多轴的调试时,这一步一般不做,这是为了更安全和稳定。

4、加入0.2的偏差,看偏差对位移的影响
从中间加入,代表一个外作用力。

可以看到,如果没有I的作用,偏差将一直存在,尽管P产生了一个抵抗力,但只是阻止了系统继续运动,但偏差一直在。
在多轴调试时,如果持续的抬起一个机臂,机臂会持续的转动,抵抗力很小,放手后也不会回复。

5、加I,看I对偏差的修正能力,I加快了响应速度,但也会导致过冲或振荡
I=0.3 基本可以消除偏差产生的影响,产生了少量过冲,但提高了在有偏差时系统的精度


I=3 进一步加快响应速度,但产生了振荡


取基本能纠正偏差的I=0.3
在多轴调试时,油门开至悬停油门,用手持续的抬起一个机臂,可以感到随着I的增加,抵抗力会逐步增大,持续时间加长。
因为多轴的长期稳定由姿态模式的LEVEL参数来解决,所以I不用太大,取缺省参数就可以了,大概可以抵抗1-2秒左右。

6、增大一点D,减小一点I产生的过冲
取消偏差,因为I的加入,有一点过冲


增大D,D=2.2,减小过冲


在实际多轴调试时,这一步一般不用,但是如果有必要,可以试一下。

好了,曲线演示完了,这同时也是多轴PID参数的调试过程,结合视频一起看,能更好的理解这一过程,希望对大家理解PID有所帮助。

附:多轴飞行器PID调试演示器.xls

另外,试了一下,下载的文件名可能有问题,自己把文件名改为"多轴飞行器PID调试演示器.xls"就可以用了


PID的代码其实也很简单,主要是要了解其中的原理,才能更好地调整参数。为了方便新手们理解,楼主建立了一个数学模型来让大家了解。(只针对新手,老手就算了)

========圆点博士小四轴之PID控制模式分析=======
PID控制的P是Proportional的缩写, 是比例的意思,I是Integral的缩写,是积分的意思,D是Derivative的缩写,是微分的意思。所以,PID就是我们常说的比例,积分,微分控制。
我们首先来看一个PID控制模型曲线图:
该图包含了比例控制,比例+积分控制,比较+积分+微分控制的电机响应图的对比。


PID模型



下面我们对曲线进行具体分析:
PID中的比例控制是最容易理解的,比例控制就是把角度的误差乘以一个常数作为输出驱动。假定我们有一个理想模型的电机,1V电压的变化会带来小四轴1度的角度改变。假定现在电机控制电压是5V,小四轴在某一轴上的偏角是5度,目标角度是100度。我们把当前的电压量定义为Vin,把输出控制量定义为Vout。假定P等于0.2,那么比例控制的结果就是:
第一次:Vout=Vin+(100-5)*P=5V+19V=24V,得到电机电压是24V,对应的小四轴角度是24度,距离目标角度的误差是100-24=76度。
第二次:Vout=Vin+(100-24)*P=24V+15V=39V, 从而引起的角度是39度。
我们看到,在这么的一个比例控制系统下,小四轴角度在慢慢地向目标角度靠近。

PID中的积分控制就是把把所有角度误差相加起来,然后乘上一个常数作为输出驱动。在上述例子中,假定I=0.2, 我们来看看比例和积分控制同时起作用下的系统反应。
第一次:Vout=Vin+(100-5)*P+(100-5)*I=5V+19V+19V=43V,这时候小四轴角度为43度。
由于第一次控制前的误差是100-5=95,第二次控制前的误差是100-43=57,所以积分结果是152。
第二次:Vout=Vin+(100-43)*P+((100-5)+(100-43))*I=43V+11V+30V=84V, 这时候小四轴角度变为84度。
第三次:Vout=Vin+(100-84)*P+((100-5)+(100-43)+(100-84))*I=84+3V+33V=120V。这时小四轴角度变为120度。
我们看到,在增加了积分控制后,小四轴角度在快速向目标角度靠近。

PID中的微分控制就是把角度的变化乘上一个常数来作为电机驱动输出。在上述例子中,假定D=0.2, 我们来看看比例,积分和微分共同控制下的系统反应。假定第一次前,电机转速保持5转,那么第一次前的角度变化为0。
第一次:Vout=Vin+(100-5)*P+(100-5)*I-(5-5)*D=5V+19V+19V-0V=43V,这时候小四轴角度为43度。
和上一次相比,角度从5度变化到了43度,所以小四周角度变化是43-5=38度。
第二次:Vout=Vin+(100-43)*P+((100-5)+(100-43))*I-(43-5)*D=43V+11V+30V-7V=77V, 这时候小四周角度77度。

把上述的计算结果列出来,我们看到:

PID计算




从上面的数据,我们可以看到:
1,单独比例控制的时候,数据慢慢接近目标 (图表中的红色线)
2,加入积分控制之后,数据快速接近目标 (图表中的蓝色线)
3,微分控制起到抑制变化的作用。(图表中的绿色线)

有了这些理论基础,就可以写PID控制代码拉。

PID模型说明:
1、假设输出是力,作用在一个质块上,使用加速度、速度、位移积分计算,评估输出对测量值产生的影响,跟多轴飞行器的作用模式比较接近。
2、让速度响应慢一个拍子,模拟电调和电机的响应滞后。
3、加入阻尼,模拟空气的衰减作用
4、偏差用于体现I的作用,从中间加入,代表一个系统误差或外作用力

调试演示步骤:
1、把PID都归零,偏差归零
2、逐步增大P,到位移发生振荡,再减少一点P
3、加入D,D过小位移会发生过冲,D过大位移会迟滞,以稍微有点过冲为最佳
4、同步增大P、D,提高响应速度,但又不会过冲太多
4、加入I看看影响,可以看到,在没有偏差时,I的加入没有带来明显好处,虽然加快了响应速度,但也导致过冲或振荡
5、I=0,加入0.2的偏差,看偏差对位移的影响
6、加I,看I对偏差的修正能力,再调整D,抑制过冲反应
7、把偏差归零,看看这组参数在无偏差时的响应。

总结:
1、P产生响应速度,过小响应慢,过大会产生振荡,是I和D的基础
2、I消除偏差、提高精度(在有系统误差和外力作用时),同时增加了响应速度
3、D抑制过冲和振荡,抵抗外界的干扰,同时减慢了响应速度
作者:SZHCS  


PID.zip (23.06 KB, 下载次数: 208)

评分

参与人数 1黑币 +5 收起 理由
lemaden520 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏9 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:71535 发表于 2016-6-20 10:01 | 只看该作者
学习学习,谢谢分享。想问下如果在数控电源中控制电压和电流,怎样去运行。
回复

使用道具 举报

板凳
ID:140716 发表于 2016-10-2 21:48 来自手机 | 只看该作者
好东西啊
回复

使用道具 举报

地板
ID:140253 发表于 2018-3-13 16:09 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

5#
ID:315425 发表于 2018-4-24 15:54 | 只看该作者
好东西,不错!
回复

使用道具 举报

6#
ID:183333 发表于 2018-5-4 14:38 | 只看该作者
好东西
谢谢大佬
回复

使用道具 举报

7#
ID:501205 发表于 2019-3-30 15:06 | 只看该作者

好东西
谢谢大佬
回复

使用道具 举报

8#
ID:387410 发表于 2019-6-11 15:46 来自手机 | 只看该作者
嗯嗯,谢谢楼主分析,正道
回复

使用道具 举报

9#
ID:387410 发表于 2019-6-11 15:56 来自手机 | 只看该作者
想问一下P=1 代表什么
回复

使用道具 举报

10#
ID:387410 发表于 2019-6-12 07:17 来自手机 | 只看该作者
看起来很棒,顶起来
回复

使用道具 举报

11#
ID:511461 发表于 2019-6-12 16:06 | 只看该作者
waerdeng 发表于 2016-6-20 10:01
学习学习,谢谢分享。想问下如果在数控电源中控制电压和电流,怎样去运行。

你会了吗?我也想知道
回复

使用道具 举报

12#
ID:511461 发表于 2019-6-12 16:07 | 只看该作者
谢谢分享
回复

使用道具 举报

13#
ID:561101 发表于 2019-6-12 17:51 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
ID:474603 发表于 2019-8-15 21:14 | 只看该作者
谢谢分享! 分析的好。
回复

使用道具 举报

15#
ID:582109 发表于 2019-8-18 12:26 | 只看该作者
好东西,学习了
回复

使用道具 举报

16#
ID:602721 发表于 2019-8-23 07:43 | 只看该作者
谢谢分享 学习一下
回复

使用道具 举报

17#
ID:974794 发表于 2021-10-26 16:28 | 只看该作者
受益匪浅
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表