找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 3905|回复: 5

PID巡线通俗解读

  [复制链接]
发表于 2023-2-4 18:13:43 | 显示全部楼层 |阅读模式
PID( Proportional Integral Derivative)应该是系统控制中提到过的最多的一种算法了,从它的命名就知道,这是一个涉及到微分和积分的算法,因此很多帖子就是从这两个方面去讨论PID,但是对小学或者初中的学生讲微积分,真是有点为难他们。今天在这里我不讲微分,也不说积分,只是通过一个等级考试的例子让一个小学的孩子从感性的角度去理解PID控制。
是吗,我不相信.png
现假说你是一个江苏的考生,高考只考三科语数外,羡慕吧,嫉妒吧!先别羡慕,听我慢慢道来。虽然江苏的高考只考语数外,但是其它科目不是不考,而是采用等级考试的形式进行。要是想上个985以上的大学,其它科目必须全部A2020年就曾经出现过状元上不了985的情况。我们假设这个科目比较难,原始分只需要考50分你就能够A。下面我就以等级考试为例,来说明这个PID算法为什么有用。
假设你的高考目标是个985,并且选考了这个比较难的科目,那么你的目标就是50分。当前的模拟测试,你只考了30分行不行,这肯定不行啊,你必须拼命下功夫,这时你的成绩蹭蹭往上涨,这不,过不了多久你就涨到50分了;并且还有可能一下子用力过猛,考到了60分呢,开心不,开心啊!在这个过程中,你用功多,成绩就往上涨,你用功少,成绩就往下跌,这个好理解吧!我该用功多还是用功少呢,这个,这个就看你的成绩了,50分以下,你得多用功,50分以上,你可以少用功,你的考试成绩和你的用功程度成正比,这就是比例控制!
file:///C:\Users\admin\AppData\Local\Temp\ksohtml\wps6393.tmp.png 加油学习.png
高兴之余,你再仔细想一下:大哥,不对啊,50分是A60分也是A,我这有点浪费啊,有这个时间,我为啥不花在语数外上,让语数外涨10分还能计入总分呢!咱用功能能更准确一点么?
可以!不过这就要对你的历次考试成绩加以分析,假说你从30分提高到50分的过程中,中间有五个学习周期,每个周期都有一次考试,成绩分是3034404858。在你考48分时,你肯定就在想,得刹车了,再像原来那样用功了,就用力过度了。但是实际成绩48分,低于50分,可以确定我们还得用功,但是我们是不是可以放松那么一点点呢?那么该放松多少呢?这就要看我们历次考试离50分有多远了:考48分时,我们离50只有2分,考40分时,我们离50分有10分,看到没有,考48分时,我们离50更近了,2 - 10 = -8,负数说明为了考出50分,我不必像原来那样用功了,可以放松一点点。如果说我们第四次考试不是48而是383850分有12分的差距,12-10 = 2 ,正数,这说明我们还像原来一样用功是不行的,拿不到A了,必须比原来更努力。考虑本学习周期我们是不是比上一个学习周期更加用功,这就是PID中的微分,也可以称之为差分,衡量的标准就是看哪个周期离目标值更近!这下你该理解学校常说的那句话吧:考考考,老师的法宝;分分分,学生的命根!
来吧考试.png
看到没有,为了刚好考到A,我们现在至少要考虑两个因素了。可以了么?基本可以,但是还有点小风险!为什么?我们再考虑下面的一种情况:假说下次考试就是最终考试了,在最终考试之前,我已经考了4次,成绩分别是30323642。现在离最终考试的最后一个周期我该怎么用功呢? 从前面两个因素分析,考虑第一个因素,我肯定还得努力,考虑第二个因素,423650更近了,我可以不用像原来那样用功了!但是从直观上,总感觉有点不对头啊,从3642分这段时间,我这么用功,只增加了6分,依据前面的分析,我现在还放松一下,再放松一下,我能考到50分么?撸一撸,仔细撸一撸!不行啊?就是和原来一样用功,也只能再增加6分啊,最终只有48分,还是不够50分呢,到底是哪里出了问题?问题就出在这个最终考试上,按照我的规划,我要考到50分,还得再用功两三个周期才行啊?但是时不我待啊,只能说我进步的太慢了!这个因素怎么考虑进去呢?进步的太慢,这不是一两个周期慢的问题,而是一直以来都有点慢!这就需要将这几次的考试成绩进行总体分析,怎么总体分析,求和啊!对前面多次考试成绩与目标值的差值求和再乘以一个系数,这就是PID中的积分了。
你继续.png
到目前为止,PID中的比例、微分、积分三个主要的概念都讲完了,理解了这三个,算是理解了PID控制的精髓。不过在这积分中,还有点小小的bug,按照积分的求和规则,在倒数第一次考试差10分的效果和倒数第n次考试差10分的效果是一样的。这就像我马上要高考,我在小学时考40分和在高中时考试40分对我是否该用功的影响是一样的,这个肯定和实际情况肯定不相符,我小学时考40分,对我的高考成绩有没有影响,有影响,但是理论上可以忽略不计。怎么能更准确的描述这个模型呢,这里就引入了一个积分衰减系数。将每一次的积分值都乘以一个衰减系数,这样前面的影响就可以慢慢的忽略不计了。假说我的衰减系数时0.5,我们的积分初始值设置为0,以上面的历次考试成绩3034404858为例看看我们的两次积分求和结果:
0+20+16+10+2-8 = 40
(((((0+20)*0.5+16)*0.5+10)*0.5+2)*0.5-8)*0.5 = -1.25
从第二个式子可以看出20被乘了50.5,最终在积分中的影响为0.625,是不是更符合实际情况!
好像有几分道理.png
到此为止,PID所有的因素都考虑到了,从上的分析我们可以看出,设计一个PID算法需要哪些初始值呢?PID的三个系数是肯定的,然后就是积分衰减系数,从微分分析可以看出必须要提供前一次的差值,再就是积分初始值,这样就需要6个初始值了,然后就可以根据PID公式逐步推进了!
到了这里,PID巡线算是讲完了,你不是不是觉得很简单,PID原理是很简单,不过要想把PID参数调试好可不简单,为了方便PID使用和PID调参,我已经将PID写成了block,并且开发了PID自动调参程序,方便你在EV3编成中使用。我将在下一篇文章中讲解如何通过机器学习进行PID调参。
PID曲线.png
相关程序连接如下:
关于PID的实现程序详见:
链接:https://pan.baidu.com/s/1OfJtyTe3LwAMh02Z0wTOzg?pwd=euhg

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2023-2-5 08:33:37 | 显示全部楼层
牛啊,虽然还是没听懂
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2023-2-6 17:14:26 | 显示全部楼层
大佬厉害
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2023-2-7 13:34:04 | 显示全部楼层
太牛了,五体投地
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2023-2-11 18:13:39 | 显示全部楼层
牛啊~ 学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2024-1-24 16:05:19 | 显示全部楼层
反复看了好几遍,还是没看懂。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-6-22 13:46 , Processed in 0.096443 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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