最新消息:

【 EV3基础应用 】课题七:PID巡线的 I ,到底是什么?

乐高 少儿编程 4082浏览 0评论
EV3基础应用

如果需要学习本阶段课程,建议先学习本号内《基础硬件篇和基础编程篇》。

学习本篇请下载 LEGO Mindstorms 教育版软件

大家久等了,我们继续说PID巡线。

再次说明一点,其实PID的控制,是应用在很多很多方面的,而不是乐高机器人巡线。所以,当我们学习一样东西,处于“身在此山中”的感觉时,有时候会很难理解。

上周我们说了P是什么。这周我们说 I


 

I 积分(integral的首字母)

完了,没学过高数的可能已经崩溃。

我们会发现,很多朋友即便是拿到了现成的PID程序,也不知道该怎么来调节参数

别急,我们先来理解一下。

PID控制是基于反馈而成立的一种根据时长自动调节误差的控制方法。

我们需要完成的最主要的人工工作,就是基于“经验”来调整参数

说白了,用眼睛看,用脑子想,然后根据实际情况调节到一个合适的位置

选择用移动转向模块的程序编法,是为了给大家解释的清楚一些。

因为移动转向模块本身内置PID控制电机速度差实现转向控制,所以,我们利用它,就可以先不考虑“时间常数”的问题。

这边我们把概念重新正规化一下。

上周我们的内容为了方便大家的理解,所以我们把E解释为“行动”。这节课开始,我们让它的概念回到正规的解释:

E也就是误差error


因为P是一切的基础,没有P,其他参数的存在将毫无意义,

如果我们把PID当做是一个公司的工作分工,那么它就是老板,它控制的是大方向

【 EV3基础应用 】课题七:PID巡线的 I ,到底是什么?

老板一般会设置一个赚钱的指标,对吧。

那么E就是当前赚到的钱和指标的差距,也就是误差。

这个误差决定了工作强度的分配。对吧。

没钱,当然要快点赚,加班加点加任务;

有钱了,大家可以休息休息。

当然,这个例子不适合讲,因为一般老板只会制定指标,但不会限制超额完成指标……


换个角度,生活中,我们会去游泳,游泳池的水需要过滤更新,以前有是人工控制水泵,现在很多高级的泳池都是电脑控制水位,这就是个PID的应用。

【 EV3基础应用 】课题七:PID巡线的 I ,到底是什么?

 

假设我们有个缸,缸里面的水位有规定的限度,达到水位线是一个完美状态的话。

P要做的事情就是,误差很大的时候,加快放水,水龙头开足。

然后随着越来越接近水位线,逐渐减速放水,最终到达水位线,然后停止。

这个时候P=Kp*E,Kp不等于0,是正比例的。

所以,增大Kp,可以让误差越大时,水量更大,也就加快的装水的速度。反之则是减小。

所以,在调节Kp的时候,我们就可以理解为:

增大比例系数一般会加快系统响应。

(也就是对误差的反应速度越快。)

机器人移动的行为,举个例子,当你要左转解决一个角度误差,误差为60度,那么直接转60度,肯定比每次转30度转2次的响应速度快,是不是?当然,动作幅度也会加大。

这个理解了吧?!


那么继续回到缸的例子里面。

如果这个缸一边蓄水一边放水呢?

貌似小学奥数老有这种无聊的题目,在我看来,总结为“浪费水资源”问题。

首先,P可以解决我们的基本问题。

如果Kp调整的到位,那么其实P就已经可以完成控制放水的功能了,对吧。

现在杀出个程咬金,我们把它叫作C吧。这家伙出来“搞事情”!

【 EV3基础应用 】课题七:PID巡线的 I ,到底是什么?

 (Chengyaojin,职业,肉盾、战士)

 

这个时候,P=Kp*E-C(C是放水的量,是个常量,以固定速度放水)

这家伙严重影响了P老板的大事。

如果P老板不作调整按照原来的情况放水,那么离目标水位永远会差一个C。

其实这个C是有个名字的,叫作“静差”,也就是一个稳定的误差。

这个可以理解吗?不理解的给我留言……

那么这个时候,PID的“I”就登场了。

要帮P老板解决这个问题,也很容易。

我们弄个再弄个水龙头,叫作 I,让 I = 不就可以了?

(机智如我,其实是更严重的浪费……)

两个水龙头一起放水,P老板解决大方向I解决这个程咬金C

P还是管P的事情,这样这个公式就变成了。

P=Kp*E + I - C

I = C 的话,公式就又变回了 P = Kp*E。

这样P老板又可以安心“处理大事”了。

这就是所谓的:

积分环节可以消除系统静差。

I = C = Ki*E,Ki I 的系数

所以,PI 的控制,我们可以先写出来了吧。

PI = Kp*E + Ki*E

要不要那么简单?!

调整Ki的数据,可以帮助P解决静差。

巡线里面的静差在哪里?

在实践中用眼睛看一下转弯角度和反应速度你就知道了。

所以,我们程序可以这样做。

(这个程序是在上个星期程序的 P 基础上再加入 I 的部分来完成的,放大看!)

【 EV3基础应用 】课题七:PID巡线的 I ,到底是什么?

由于这种静差其实是很小的,所以Ki的取值,用0.05这种数据来上下一点点调整,就会有很明显的效果!

 

千万别上手就来个1、2这种值!数据大了,你只会看到EV3在原地打转~

但是,这个程序有问题!

我们下周继续说!哈哈哈哈。请先理解上面哦!最好是动手试试看。

您必须 登录 才能发表评论!