pid调节各参数详细教程,pid参数调整口诀

首页 > 经验 > 作者:YD1662022-10-27 21:03:44

▲比赛位置示意图


此时我们的PID控制器可以派上用场了!我们先来设定一场比赛,为了增加难度,将阿喀琉斯放置在一个1000米长的速度恒定的跑步机上,假设乌龟在平地上沿跑步机爬直线,并且在阿喀琉斯前面100米。


控制模型:阿喀琉斯以PID控制的方式用在跑步机上追赶乌龟;


设定值:乌龟的位置


实际值:阿喀琉斯的位置


输出值:阿喀琉斯的跑步速度


测量传感器:裁判的眼睛


执行对象:阿喀琉斯


正执行:向前跑


反执行:向后跑


首先要解决的问题是比赛范围,在这场比赛之前要限定一下坐标系和范围,要让乌龟和阿喀琉斯在一个特定范围里来比赛,跑道只有1000米。目前已知乌龟在阿喀琉斯起跑位置前的100米,那么这个时刻,用乌龟的位置减去阿喀琉斯的位置就是绝对偏差,即100米,PID系统会依据已知条件告诉我们什么呢?先只用比例调节P参数,我们随便给一个默认初始值,比例系数是预估的比如P=2.0(没有单位)。但是问题来了,这时候难道我们要告诉阿喀琉斯去跑100米*2.0=200米吗?


当然不是,PID在运行之前是要限制乌龟位置的,需要指定乌龟只能在0到1000米的范围内进行直线活动,那么乌龟在初始时刻的100米就可以归一化为10%了,这个时候PID控制器就可以知道告诉阿喀琉斯开始要用20%的速度去跑。

pid调节各参数详细教程,pid参数调整口诀(9)

▲参数定义归一化


但是总不能让阿喀琉斯一直用20%的速度跑吧!如果几年之后再通知阿喀琉斯,即使只用20%的速度跑,阿喀琉斯可能已经绕地球一周回来了。虽然我们第一个问题做了限制,阿喀琉斯跑到终点就停了。所以,第二个要解决的问题是多长时间通知一次阿喀琉斯?


▲执行周期设定过大


在纯比例模型下P=2.0不考虑积分和微分。如果0.01毫秒通知一次阿喀琉斯,那会有两个问题:一则测量系统会很累,需要瞬间知道阿喀琉斯的精确位置,再需要知道乌龟的精确位置,姑且不说阿喀琉斯能不能在这么短的时间内的接收到命令,即便能接收到命令,在还没来得及执行的时候就收到第二条命令了。二则因为误差基本没消除,所以命令还是19.99999%的速度(解释一下这里,因为在0.01毫秒的时间后,阿喀琉斯和乌龟之间的距离,也就是误差缩小了,所以计算结果也会相应的有微小变化),然后下一个0.01毫秒收到19.99999%速度,即使发100次也许还是19.999,也许阿喀琉斯需要3秒(3秒:超级跑车百公里加速时间)才能加速到20%。所以通知的太频繁,超过了执行机构的执行能力,做的都是无用功。


pid调节各参数详细教程,pid参数调整口诀(10)


▲执行周期设定过小


所以大家看出来了,要想完成好比赛,我们需要对阿喀琉斯的加速能力有很充分的了解。他虽是古希腊英雄,但一定不是神。这就和我们玩游戏需要看一下英雄的能力面板一样,而提升能力需要不同模式的打怪升级,每次升级之后,还需要再去Check下英雄的能力值是如何提升的。


我们用两张图表,来看一下,当对阿喀琉斯下达命令之后,他会有什么样的执行能力,下边两张图示中,第一张图表中的横轴代表时间,纵轴代表对阿喀琉斯的指令。第二张图表是同一个时间范围内,阿喀琉斯的实际动作情况。


pid调节各参数详细教程,pid参数调整口诀(11)

▲执行机构能力考核


先看纵轴Y表示PID系统告诉阿喀琉斯用100%的速度去跑,X表示阿喀琉斯的实际跑步速度,看看阿喀琉斯到底能跑多快,Tu就是阿喀琉斯听到命令的起跑时间,Tg就代表阿喀琉斯从静止跑到最快的理论加速度时间,于是我们用这个比值大体评价一下阿喀琉斯到底是超能力的神还是一个普通英雄?


pid调节各参数详细教程,pid参数调整口诀(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.