粉丝1.3万获赞6.5万

快乐分享,快乐学习。大家好,我是李航,以前为大家分享过一个关于 p id 讲解的视频,叫做浅谈 p id 啊,然后现在时间过去了很久,然后对 p id, 呃,通过这些哈哈,时间的积累又有了新的认识,然后给大家再讲一遍,希望能够对大家有所帮助。 先简单来说一下, p id 控制实际上是一种啊,对未知事物的控制方式啊,一般我们乐高经常用于巡线, 就是沿着这个线走啊,其实 p id 控制,这个 p id 的意思是比例积分微分, p 的意思是比例,我们经常会说到一种循线叫做比例寻线,在比例寻线的基础上增加 了 i 积分的控制, d 微分的控制总和,就叫做 p id 控制啊。当然除了巡线以外,除了这个巡线以外, p id 控制还可以应用于其他很多的地方,比如我们啊, 寻找光明就是两个光感,看哪边光感强,也可以用 p id 控制。还有一个就是 比如沿着墙走,这有个墙,你有个超声波,我们要跟墙保持固定距离啊,沿着这个墙的轨边走,这也可以用到 p id, 也就是 p id 的应用很多。还有一种方式,比如啊,我这个线对吧?拐歪了,我希望这个车能够啊,沿着这黑线来纠正一下,或者是对齐这个黑线,都可以用到 p id 控制。总而言之, p id 的控制很多,我们这一期主要讲解了就是关于巡线相关 的内容。好的, ok, 我们先来说一下啊,嗯,先说一下最简单的比例虚线,比例虚线 啊,其实我们在寻线的过程中,寻线的过程中啊,如果我们希望沿着线走的话, 比如我个两个光杆的啊,两个反射光测,两个光杆测到了反射光数值一样的话啊,一种可能是两个都到黑色的一,最常见的可能是两个都带白色,对于这种情况呢,我们车直行就可以, 如果我们啊看我这个啊,左手的这个轮子还有对应的光感,这个离黑线近,右手了离白线近的话,我们对车的要求就是啊,离白线近的这个轮子要快点,左边这轮子慢点,让他产生一个网,这个黑色 拐的一个力,这样的话我们又回到这个交,就是这个夹着这黑线的过程,相应的如果右边这个离黑线近,那么我们左边这轮子就要快点就 达到这种效果,就可以,我们可以通过两个轮子的啊功率来控制这样这个车啊沿着线走,简单来说吧,简单来说吧,我们两个轮子,对吧?两个轮子可以 借由两个光感的差值,两个光感的反射光的差值来控制两个轮子的功率。比如这边是左 b 右 c, 我们来说一下,比如这是 b, 然后二号端口 c 三号端口,我们可以这样写一个公式, b 的功率 等于你调的一个基本速度啊,加上这个啊光感误差值, 光感误差值就是这两个差值的差,就这两个光感的差,对吧?比如我们将误差来个误差,对吧? 一啊哇加上误差,而 c 这个轮子的误差,我们就可以理解为拿一个基本的速度,看着 c c 的功率,我们就可以等于 用速度减去这个无差值。如果两个光杆的差值为零,也就是说两个光杆数值一样的话,他的差值为零的话,那等于是两个功率,是啊, v 加零, v 减零,那我们这速度就保持 v 就可以,就是执行两个速度都是 v, 比如我们两个光杆的差值是十,两个光杆的差值是十, v 是五十,那么我们一个光杆就是六十,一个光杆就是四十,相应的我们 就可以达到一个左拐右拐的一个效果,所以我们可以通过这个 v, 一个功率为基础速度加上无差,一个速度等于基础无差啊,基础速度减去无差,来达到一个巡线的效果。具体怎么编呢?我们来看一下效果。 首先我们有两个光感,他的误差实际上就是两个光感的反射光的差值。我们比如来二号测量二号的反射光,测量三号的反射光,让他们俩之间做一个差, 做差做个减法,让他们俩之间做个减法,得到了数值,我们可以定义为误差,我们用一个变量啊, 起名叫做误差一按啊勾啊,对吧?用个误差的名字写进来。然后我们可以设定一个基础的速度,基础 速度说白了就是如果是在直线的话,我要保持哪个速度,那我们可以设定一个基础的速度,比如设定一个变量 v, 基础速度我们可以写成一个五十,当然这个数值你可以慢慢调大,那这样的话,两个轮子的功率,一个轮子的功率就是微加误差,一个轮子的功率就是微减误差, ok, 这里边可能有的老师会说,那我用这个大型电机这个开启,可不可以 用大型电机这开启啊?你默认我这俩大型电机啊,因为中性电机的话,你这功率还得一正一负,太麻烦了。咱们先默认这俩是两个大型电机啊, 那个有的老师说,哎,那我这里边用哎 b 和 c 用功率开启可不可以?这个是可以的,但是我们要知道绿色模块这些大型电机直行拐弯 还有电机转动的话,这些模块里边本身就包含了算法,本身就包含了算法。你想如果要让一个电机准确的停到三百六十度, 实际上这个是挺难的,所以这个模块实际上本身就包含了算法,本身就是一个 p id 的控制,所以如果你要想啊,再做的高端一点的话,你可以用高级模块里边这有一个叫做未校准电机, 未叫准电机这个模块是不包含算法的,只是控制马达单纯的功率大小,只是控制马达单纯的功率大小。而且跟大家说一下, 如果比如我们来一个闭电机,对吧?大型电机啊,同样是一百功率,然后未叫准电机一百功率理论上来说 的话应该是未交准的电机,应该不是,理论上应该,实际测到的结果就是未交准电机的速度要快,未交准电机要比这个绿色模块运动模块这个速度要快,所以我们巡线的基础上,一个是考虑到算法,绿色模块本身就带着算法, 容易对你这个程序啊产生影响,所以我们用未叫准电机。还有一个是从速度角度上思考的话,我们用未叫准电机速度会更快,所以我们使用未叫准电机, ok, 选择一个减法,一个功率是写入啊,读取,读取数字,一个是 v, 加上我们的,加上我们的误差,这是我们的误差。读取啊,读取我们数字,一个功率是微,加上我们 的误差, ok, 一个攻略是 v 减去我们的误差, v 减去我们误差, ok, 这样的话就是一个,呃能达到巡线的效果,这样的话就是能达到一个巡线的效果, ok, 这样的话就能达到一个循线的效果,呃,两个光杆做差值,两个光杆做差值。如, 如果二号,比如我们左边这二,然后这对应的是 b, 如果二号数值大的话,证明二号在白色,二号如果比三大的话,二号在白色,三号可能接近黑多一点,减完的数值的话得正数,减完的数值的话得正数。所以的话我们需要是这边 是白,这边是黑,我们需要这车往对吧?往 c 那边拐,那相应的 b 轮的速度要快, c 轮速度慢,所以我们的 b 轮的功率就是 v 啊, v 加上我们的功率, v 加上我们的误差,因为误差讲的是正数吗? v 加上我们的误差,作为 b 多,相应的四类就是 v 啊。五十减去我们的误差,减去,比如我们这差值是十,那我们这 b 就是六十, c 就是十,这样的话就能达到一个拐弯效果。如果越靠近的话,相应的话他们俩的光值应该越接近,得到的误差数值越小,那么我们位置加,减完以后的误差就越小,那么 bc 的两个功率就越接近, 就能够达到一个直行,所以越接近于两个光感的数值越相同,越接近的话,那这车的两个功率就越相同, 越接近于直行,这样的话就能达到一个巡线的一个效果,相应的相应的如果我们希望能够对这个啊误差进行一个控制,误差进行一个控制, 我看一下这数值啊,对这误差进行一个控制,比如我们这误差的话,你两个数值相减的话,可能十二十的话,那这就是啊,五十加十,六十十,呃,五十减十四十。 如果我们想对这个误差,对吧进行一个操作的话,进行一个控制的话,我们可以乘以一个比例的系数,乘以一个比例的系数。等比例的放大或等比例的缩小,我们可以乘以一个比例的试系数。 这个比例系数我们一般用 kp 表示, kp 表示, ok, 一般用 kp 表示,这样的话,我们啊如果差距大的话,我们可以把啊 kp 改小,这样的话,每次啊 kp 乘以误差以后,他的数值就可以根据我们的需求等比例放大或等比例变小。这样的话啊, 如果过弯,在走弯的过程中,你发现这个数值比较大,对吧?这个抖动比较严重,证明你这个 kt 就大了,我们可以啊将 kt 的数值变小,这样的话他走线的话比较丝滑。如 如果拐弯的过程中,你发现这飞线了,我这比较丝滑吗?他比较温柔,拐的比较慢,但是拐拐拐比较慢的话,他容易就飞线,那我们就可以把 kp 加大, 我们先把这公式完善一下。我们先把公式完善一下,我们先写入一个 kp, kt 的话,我们可以先给他来一个默认为一默认为数之一,然后我们用的话是用我们的误差乘以 kp, ok, 这是误差 诚意 kp, 我们再来个 kp, 用误差乘以 kp, 然后再加上你的速度, 后边是误差乘以 kp 减去你的速度,其实这俩就可以删掉了,直接可以删掉了,这是速度,对吧?直接连过来减去 kp 啊, k, kp 乘以无茬就是这个值,减去这个无值值就 ok 了, ok, 对吧?这个等于是呃这个数值,这个得到结果是 kp 乘以误差,这个是攻略,然后我们壁纸等于是攻略,加上这两个乘积, 在这等于功率减去这两个成绩, ok, 这样的话就可以对我们的数值进行一个很好的操作,对我们这巡线进行一个很好的操作。然后我说一下 kp 的作用啊, kp 的作用啊, kp 的作用。如果 kp 的数值比较大,比如五啊或者六, 你会发现如果五六的话,那我们误差数值不大的情况下,那乘以五或乘以六,这数值也会变大,所以在巡线的过程中,两个轮子的差就会比较大,两个轮子的 速度功率差比较大的话,就会造成这个车的摆动比较严重,就这车的摆动比较严重,如果你的 kt 的数值太大,他的摆动幅度会大,就这比例系数, kt 实际叫做比例系数,如果数值大的话,他摆动会幅度,但是 kd 大也有它的好处,如果你在寻找拐弯的过程中,这个拐弯的弯比较急,你会发现 kd 大的话,你能够拐过来,如果 kd 值比较小的话,比如我们写个零点八或者小于一,对吧? kd 比较小的话,在你手走这弯的过程中会比较丝滑, 因为他这个数值比较小,成为成完误差以后,误差就会啊,等比例的缩小,缩小以后, x 啊,微加误差,微减误差,那相应的这俩的差值也小,这俩的销差值小的 话,那他他走线的过程中就会,我们怎么说呢?就走线的过程中比较司法就比较温柔,但是比较温柔也有他的缺点,他的缺点是什么呢?比如我们在拐弯的过程中,这个弯比较急,哎,而我们这比较司法 是个慢性子,这弯都拐过去了,我们这车还没拐过去,就容易造成了飞线, ok 啊。然后我们再说一下这个 k 值的话,你要根据你的弯来定,如果你的弯比较急,为了防止飞线,你这 kp 可能数值要大一些, 相应的如果你的弯都是比较缓的弯,比较就是柔和的弯吧,就弯的幅度不大的话,那你的 kp 可以竖直挑泄。总而言之,这个 kp 是我们要调节一个系数, kp 是我们要调节的一个系数,这个就是我们一个啊最基础 的一个比例循线,也就是我们常说的屁训的一个方式。先设定一个基础的速度,然后再设定你的 kp 值,两个功率的话,分别为 v, 加上比例系数乘以两者之间的误差,另一个功率为 v, 减去比例系数乘以我们的误差值,这样的话就能达到一个比例巡线的控制方式。比例巡线的控制方式。然后我们说一下,如果在巡线过程中,比如我们这个视频里巡线过程中怎么调? 我们可以先把比例系数调成一功率的话,速功率的话啊,可以给他来个五十,就是比较一般的速度,然后让他寻这个线,让他寻这个线。正常情况下的话啊,如果比例系数是一或者零点几的话,寻这个线的话啊,问题不大, 问题不大,都能够循下来。然后我们再慢慢的调节我们的速度,我们可以改成六十,看看比例系数一,飞线不飞线,对吧?如果不飞线, ok, 我们再调到七十,这样的话,你整体慢慢调节速度,如果飞线的话,您试试把这个比例系数, 比如加大一点,调成一点二,看看能不能给他纠正过来。总而言之是我们的速度和比例系数一个左调右调,左调右调,一个平衡的过程, 这样的话,我们要保证第一个走这个弯的过程中,你不能抖动太严重,你别为了哎,我不飞线,我把屁值调的特别高,那 气质特别高的话,这个车就会左打左右,左拐右拐,左拐右拐,那照样他耽误时间,对吧?他左右过程中就摆脱,过程中也耽误时间,所以我们要根据我们的时 线的情况,要调节一个比较好的速度,然后一个比例系数要求这个比例系数在巡线过程中你的摆动幅度不能太大,所以比例系数不要太大, 是这样一个效果,如果比例系数太大的话啊,是能够过急弯了,速度也快,但你这车最后效果是左拐右拐,还你,可能你这功率是一百,对吧?功率一百,最后比例系数是一点八, 对吧?是那速度是一百了,能能过,而且能过急弯了,但你这车走线的过程中是左抖右抖的过程中,那你最后用的时间可能还没有八十啊, 比例系数一点五,对吧?那可能这样的话啊,速度虽然不是一百,但是走线的过程中摆动幅度小,还是比较丝滑,这样的话那八十一点五要比你那一百一点八,一一点八跑的还快,所以这个是 v 和 kt 的一个平衡的过程,是这么一个平衡的过程。


然后我们,哎,刚刚说了是对啊,急弯这种弯道进行控制,我们来说一下 d, d 的名字叫做积分, d 的名字叫做积分, 老生常谈了啊, d 的名字叫基本,那我们就是需要有一个 kd 啊,那那那我这个估计大家名字明白了, kd 呢?肯定是 d 的系数,是为了这个对 d 进行控制,我们增加一个变量叫做 kd 开 d, 然后我们再增加一个,呃,变量叫做 d, 叫做 d, d 是叫做积分啊,不是, d 叫做微分。微分的定义是 啊,在这个比例巡线里是两次误差的差,就是最近两次误差的差。你比如我第一次巡线时,哎,这有一个误差,下次巡过来, 这个循环在过来又有一个新的误差,地址是指最近两次误差的差。好, ok, 那么非常简单, ok, 添加变量 地质啊。对对对,不是添加面料,直接使用啊。地质,地质,地质是什么呢?两次无差的差 啊,比如我们第一次误差是零,第一次误差是零,那么在循环过来以后,第二次误差就是这个值,第二次误差新的误差就是这个值,我们用新的误差减去我们老的误差, ok, 用一个数学方法,直接用一个数学好的做个减法。新的误差在哪了?在这了啊,新的误差减去我们老的误 差,老的误差就拿地得到了结果就作为我们的误差值,作为我们的啊,地址作为我们的低值,用新的误差,这个就是我们刚运行到这,这就是新的误差,减去我们老的误差啊,得到结果就是地址, 老的误差在哪打,老的误差在哪?看这里循环,循环,循环,再循环过去,循环到尾巴了,循环到尾巴了,我们读取这一次,对吧?误差的值读取这一次误差的值,写入我们 d, 写入我们这个 d, 写入我们这个 d, 就 ok 了。举个例子啊,第一次运行的时候,第一次循环的过程中,误差一直是零,哎,我们新的误差,新的误差减去零,得到了误差,就是我们这个积分,得到这个 数值就有积分, ok, 第一次运行完以后,我们将啊这个这次第一次的误差写入我们这个地值,那这个误差就是第一次,这个地值就是我们第一次啊,循环过程中第一次的值, 循环过来,等于这就是第二次了啊,第二次了,第二次的话,那我们新的误差还是这这个值还是这个值, ok, d, 刚刚我们说了是第一次误差的值,拿第二次误差的值减去第一次误差值, 剪完的结果写入地,那么这个地得到结果还是两次的误扎值,也就是第二次减去第一次的值, 相应的循环过来,那 ok, 新的无渣是第三次,那剪这个 d 是多少? d 是第二次,因为 d 是在最后给予他的, d 是在这个程序最后给予他的,所以 d 是第二次误差值,剪完以后, ok, 等于得到了结果,是第三次减第二次,所以地值就出来了,等于是啊,两次最近两次无差的值,第三次减第二次,或者是第二次减第一次,如果再循环的话,那就是第四次减第三次, 这样就能理解了吧。 d 的名称, d 的积分的定义是两次最近两次误差的值,如果你这是第三次, 那就用他的第三次无差的值减去第二次,得到的结果就是我们这个地址就是积分值。好, ok, 老规矩,呃,我们要他给他乘以一个比例系数,读取这个数值,乘以一个比例系数,读取 d 读取数值, d 乘以一个比例系数,做一个乘法,做一个乘法, ok, 然后我们回到这公式。老规 规矩,什么东西呢?再继续加 k, d, k, d 干啥?乘以底, ok, 底下那个呢?是 k d, 对吧?也是给他加上 k、 d, 把这个变小点,这个,这有点大 一号啊,行,可以啊,把这个值用 v 减去这个值就可以了。等 b 的功率等于比利息数乘以无差加上 k, i 乘以 i 加上 k, d 乘以 d, c 的功率呢?等于 v 减去,对吧?比例系数乘以无差值加上 k, i 乘以 i, k, d 乘以 d, 好的, ok, 那么我们这里边 k, d 乘以 d 已经有了,对吧?已经有了,哈哈哈,这是 k i 乘以 i 啊,这是 a 纸, a 纸已经有 也有了, i 值也有了,等会 i 值, i 值在这了, k x 在这了,这是 i 值,然后 k d 乘以 p, 这,这是那什么值?哈哈哈,然后做加法,做加法在这了, 这里边就就就就不,这做加法在这了,这这这,这是加法。把这断开,把这断开 啊,你加你减,都都删掉啊,这是加法,把这个,把这三者加在一起啊,把这个 k, d 乘以误差, k, x 乘以 x 加在一起。这里边我就用一个高级了,直接 a 加 b, a 加 b 加 c, 对吧? a 加 b, 公式等于 a 加 b 加 c, a 是谁呢? a 是啊, k p 乘以无叉,这玩意 b 是谁呢啊? k i 乘以 i, 这玩意 d 是谁呢?嗯,在这了, kd 乘以 kd 乘以 d 在这了,好家伙, 过来 k, d 乘以 d 在这了,过来点过来等于这 a 加 b 加 c 呢?就是我们刚才看这括号里这玩意,那这功率呢?等于 b 加上这玩意, c 减去这玩意,对吧? 用 v 对吧?这是 v v 值, v 加上这玩意作为 b 的功率,作为 b 的功率,然后 v, 这是 b 减去这个 a 加 b 加 c, 做得到,结果对 c 的功率就 ok 了,这个也就是我们常说的 pid, pid 控制。 然后我再说一下,地址是干啥的?地址是干啥?地址是两次误差的差,你,比如,哎,这次误差的差,我得到的是证书,下次误差差还是证书? 那两次误差差剪完以后我就会,哎,可能在拐弯了,我猜到可能在拐弯了。误差低微分是对未来的误测啊。预测,对未来的预测,用两次对吧?两次误差的差 做一个减法,我能够猜出来下次可能往哪拐,是对未未来的预测。这玩意干啥用的? d 这玩意干啥用的? d 是主要是走直线用的, d 是走直线用的。比如我视频过程中拐弯走直线, 如果你拐弯比较顺滑的话,证明你这 k 值可能比较适合这拐弯,但是如果 k 值适合拐弯的话,相应的他就不适合直线, 所以我们用地址就。所以走直线的过程中可能他有一点点抖动,如果拐弯比较丝滑的话,他走直线可能就会有一点点抖动。这个地址是干什么用的呢? 如果你地址比如写入一个一啊,错了啊,地址的比例系数在这了,我们调的是比例系数,比如我们从写一个一或者写个几,你会发现他走直线的话,相应的话幅度会小, 相应的哈幅度会小。 d 是管直线的, i 是管拐弯的, d 是管直线的, i 是管拐弯的。也就说我们如果调完比例系数,比如我们视频里的比例系数,哎,拐弯比较丝滑了,很顺滑, 然后你走直线有一点轻微的浮动,那么你就可以在这 kd 写一个吸收,比如一啊,增加一下 kd, 这样的话,他走直线的过程中,他的拐弯幅度会小一些,拐弯幅度会小一些。 哀是干什么的?哀是如果你有时有急弯,有时管缓有缓弯,那你可以增加一个哀直,在咱拐弯的过程中,可以根据弯的幅度变大, 会变小,是这么一个作用。所以对于我视频里这个东西,视频里这个线来说, k i 你直接写零就可以,我们要 k i 也就 i 的比例系数,写零也就是 i, 我用不着直接用啊, k p 就是用这个比例加上积分就呃比例加上微分就 pd 循就 ok 了。 所以我们在巡线过程中,在巡线过程中,我们要注意一下啊,就是我们调的系数啊,一个调 ki, 一个好 kd, 一个调调 kb, 谁先调谁先调,这个 k p 先调比例系数先上来是干什么啊? k i 是零, kd 是零,对吧?这俩都是零,这俩系数我不调。速度和这 k p 先调,调成什么样的效果?就是我这不飞线,调完以后我这不飞线,对吧?就是你可能你这弯比较急或怎么样, 调完以后这不飞线,但是有点抖动,有点抖动,你这一般满足不飞线,有点抖动以后,然后你看是直线抖还是弯线抖,如果是直线抖的话,你可以加大一点 p, 那个 pd, 加大一点积分啊,不是加大一点微分,加大一点微分 调 pd。 比如 pd, 你可以从一开始调,一不行一点五,一点五不行二,你慢慢调,调到你这个左右走直线不太幅度标, ok 了,其实就 ok 了,如果都有视频里就 ok 了。如果你这又有急弯,又有缓弯,那么你就可以 调节一下这个 k i, 调节 k i, 你比如来个零点零零一千分之一调一下,然后适当的减少你的比例系数,比如从一点五变成一点四,就是加大点 k i, 减少点 k p。 就是 如果你走急弯,走缓弯的过程中,如果你发现 ok, 急弯能过去了,而且啊摆动幅度小了,那我们就 ok 了。如果你说,哎,不行,我这个 呃增加完这个,减少这 k p 了,是丝滑了,但是我急弯还是过不去,那你就可以把这 k i 从零点零零一调成零点零零二,增大点 k i 的值,看看他是否能过去玩。简总而言之吧,调的顺序是, 先调 v 和开 p, 保证这线不分线了,能在线上走了。然后如果走直线有点抖的话啊,调这个 kd 积分,调 kd 积分, 走 kd 是管管直线的,增加一点,如果直线不抖了就 ok 了。如果你是又是急弯又是缓弯的话,你这 kd 可是先先为零,你就先把这个线啊不抖 好了,对吧?能巡线了,但是抖动比较大,先调 k b 和速度,然后增加一点 k i, 对吧拐弯的幅度,然后把这个比例系数慢慢减少,对吧?这 k p 慢慢减少是这么一个过程,说白了这就是一个调参数的过程,但是对于我们 啊,比如你是 wro 一类的,或者来说的话,他的线的幅度都是很类似,就像我视频里这个幅度,所以我们基本上用不着 k i, 你 k i 是零就可以,基本上是先调 k p 和 v, 调到不飞线了,哎呀,比较丝滑啊,还比较 ok 了。然后走直线,要是有点抖就调 kd, 如果你走直线也不抖,寻线也不走你比如我视频这里边 就是一个纯的比例行线,连地都没加,你看啊,拐弯也行,直线也还凑合,这就 ok 了。连地我都不加,就直接一个比例,就是一个 k 和 v 就可以了。如果你走直线有点抖,你可以增加点 kd, 是这么一个效果好的, ok, 所以 pid 的话,你要根据情情况来调,你的线是急弯缓弯多,还是你这幅度,还是你这幅度都类似你的幅度,要都类似的话,你哎就用不上了,甚至 d 用不上了,就一个比例巡线就可以, ok, 这个就是关于 pid 的讲解,关于 pid 的讲解。再说一遍啊,再说一遍啊。 我们的公式等于基本速度加上比例系数乘以无差,加上 k i 积分, k i 的积分的系数乘以积分,微分的系数乘以微分, ok? 呃,误差的话,误差是指两个光感的差,这个大家能理解吧?两个光感的差,然后开 p 的话,就是我们最最 常用的比例系数,比例系数作为一个乘法就可以。 i 等于是误差的累积, i 等于是误差的累积, i 上来是零,零加上误差写入这个,这这块是 i 指的运算方式,上来 i 是零,对吧? 啊,加上你的误差作为指,唉,循环过来再加,再加 i 是误差的累积,然后将 i 乘以个比例系数,这个等于是 k i 乘以 i。 好, ok, 然后 d 呢? d 是指积分,积分是指两次无差的差,两次无差的差, 用我们的误差,对吧?这是最新的误差,减去我们这 d 作为我们这个积分,然后在最后最后程序,最后的话把我们这个误差,对吧?把我们这个比如第一次的误差写入我们这 d, 那我们第一就是第一次误差循环过来呢?那我们这两者差,这是第二次的误差,用第二次误差减去第一次误差,就是两个最近两次误差的差,作为我们的积分,等于积分的定义是两次最近两次误差的差,这是积分,然后积分乘以系数, ok, 然后我们最后要做的事情呢,就是把 k i 乘以误差,加上 k i, 不是 k t 乘以误差,加上 k i 乘以 i, k d 乘以 d, 这个做加法, 再然后干啥呢?用我们对面这三者做做做加法,再然后干啥呢?用 v 加上他作为 b 的功率,然后用 v 减去他作为 c 的功率,就可以达到一个 pid 控制的那么一个效果。最后最后这个为什么用那个微焦准电机呢?因为我们绿色的模块, 绿色的模块本身就带有算法,本身就带有算法,所以的话我们为了准确的话,我们就用未焦准电机,而且还说一下,未焦准电机同样是一百公里下,未焦准电机要比那绿色模块那个一百公里要快, 所以也是我们用微交警准电机的一个原因之一啊。 ok, 这是关于 pid 的第二次讲解。 pid 的第二次讲解啊,然后 这个是调的系数,就是速度,基本速度, k p, k i, k d 啊,然后系数怎么调也给大家做了一个简单的介绍,也是通过这两天的学习给大家做的一个简单的介绍。 好, ok, 关于这节课的内容就讲解到这里,然后我把这程序啊,这个 d 和 i 上来都是零,那你就可以不要他,我再把这程序 放大,然后一点点给大家捋一遍啊,再再再再再给大家走一遍,慢慢走一遍。 d 等于是误差的差, k d 乘以 d i 等于是误差的累积,然后,哦,误差的话,误差的话, 啊,对吧?用我们 k p 乘以两个误差,两个,这这两个光感的差就是 k p 乘以误差,将三者累加,然后用 v 加上它作为一个电机的功率,用 v 减去它作为一个电机的功率, 然后记着要把无差最后写入这个地啊,对吧?无差写入地,好, ok, 这就是关于这节课的内容讲解。这就是关于这节课的内容的讲解,感谢大家的收看,谢谢。


好,接下来说一下 pid 巡线这个单光感巡线的一个升级的课程,然后这节课是放在初中生属于第二年的一个课程,然后签到一个 算法,然后是一个 p 的一个算法,这个至少孩子得学会乘法,然后建议放到进阶课程,然后搭电的话没啥太好说的,就是这本 一个万向轮,再加上前边啊他这个器材,我昨天看 b 站上面一个老师介绍的, 然后用这个器材去做,然后这样的话随便我们在一个梁上都可以固定,可以看看这个器材,这个器材比较巧妙,高度还是啊?控制在我们一个手指的高度,光圈的话,这个光圈就可以了。接下来重点啊,这节课的话是说程序, 然后可以先让孩子先做一个单光杆巡线,就是之前我们做的二分法的那种,然后让他看见白色区域向左转,黑色区域向右转,先让他写完,写完以后我们发现他那个晃的特别厉害。那接下来的话我们就开始介绍批寻线, 拼音线的话,这个程序的话比较简单,但是也需要理解。然后采集的光线值给中间值先做一个 减法,然后呢再乘一个,我们这样一个比例系数一般都是从零点八开始,然后然后 a 代表着我们原始的一个给定的一个速度,然后的话 这个最后算出来的数据给我们这个未校准电机,当然你要用这个里边的这个单电机也可以啊, 用这个的话,根据网上的说法,这个的话这个数据可以让我们这个反应的更快一点,然后另外一个的话是用 a 减去它就是四十啊,原始的速度减去它,然后再乘一个比例系数,然后给 c 电机就可以了。接下来我来说说这个程序的一个运算, 这个没有用移动转向模块,其实用移动转向模块也可以做,不过我看了很多按钮,感觉还是这个更容易理解一些。然后我们可以算下数据啊,现在根据我这个光线数值测量,然后的话在地面上的话大概就是 三十二,然后在黑色区域的话,大概是五的一个数值,我的地面是黄色的,然后的话取一个平均值,大概就是三十二加 三十七,三十七除以二,然后大概就是接近二十吧,接近二十的一个数值,我把中间值是乘二十一,然后的话用当前状态下的一个光感值减去二十一,再乘一个比例系数。 为什么这个东西是三呢?我们可以算一算,比如说在光色在这个白色区域的时候, b 他是三十二吧,三十二减去二十一是十,十乘以三是三十,三十加四是七十,也就是说 b 电机是转七十的速度,那 c 电机转多少呢? 用四十减去,就是我们那个三十减二十,十乘以三十,然后也就四十减去三十,相当于是十,也就是说这个时候在白色区的时候呢,他是 七十的速度,他是十的速度,这样速度差是六十,这样的话他就向右转。那同样如果说是在五的数值的时候呢,这个五减去二十等于负十五,负十五乘以三等于负四十五,负负得正四十五,四十五加四十等于八十五, 然后的话,也就是说这个 c 电机是转八十五,速度在这个黑色区的时候,那这个的话就是四十加上, 然后的话那个是五减二十,一负十五,负十五乘以三负四十五负四十五加四十等于负五,也就是说这个是向后反转,也就是说是 c 正转, b 反转,这样话也可以控制转向,他就是这样一个原理。然后具体的话,老师们可以具体去看看那个李航老师的,还有 b 站上面啊,有一个老师的一个视频, 然后好好的去理解一下这几个参数的设置,以及这种程序写法它的特点是什么?为什么要用 p、 a、 d 算法?它这个跟我们那个两分法的一个区别在什么地方?然后接下来话我们进行程序看下效果。 好,这个是我的那个区域,我大致写了一个啊赛图上面那个区,我这个初始的功率不是说特别高,开始的话建议放到二十或者四十。 好, 这个参数需要调整,看看哪一个更好?我这是把速度调的非常的慢,所以说看着比较 平滑一点,可以这样子。

我发现是传感器的问题,我把传感器更换了,线还是二十,就是二十毫米。 然后呢?这个地方路口这边是只有白色、绿色,白色,绿色,但是这地方我本来有标志的,我拿掉改成纸就可以了,否则的话这个标志会影响我的运行的,那么这个时候就随便跑吧,运行 这样就 ok 了,稍微有点抖,其他都还好。




小姐,请问一下有没有卖半岛铁盒?有啊,你从前面右转的第二排架子上就有了。

先看一下 p i d 巡线部分代码,再测试一下官方巡线又路口程序, 最后测试自制 p i d 巡线右路口程序,屏幕上的数字代表着偏离黑线左右的程度, 最后再来一个难度大的路线,车身也是非常稳定。

我们用 pid 算法来做一个测试,目前速度是三十,启动 巡线的时候很稳定,两个灯光直接沿着黑线到拐弯处加速,拐弯已经做了修正,拐弯处随便拐大拐弯都没问题,到这里就结束。