最新消息:

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

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

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

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

说到做到,我们今天开始讲一下PID巡线。

 

在讲详细的PID巡线方法之前,我们不能够单单去抄写一个程序,还是要了解一下它的本质。不然你还是用不来。

 

这节课,很重要!

请认真阅读今天的课程!

 

读完后方便的话请给我一个留言反馈!让我知道大家是否能够理解!

 


 

PID,(比例(proportion)、积分(integral)、导数(derivative)。

 

千万别搞错,这可不是EV3编程的专用名词,而是我们生活中,方方面面都接触的到的概念。

 

比如:

家里的智能电饭煲,可能就用到这个技术,来实现温控;

工厂流水线,可能就用到这个技术,来实现操作无误差。等等……

 

看着就很高大上是不是?

甚至用到了大学生学的高等数学了是不是?

 

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

 

那么问题来了,“高大上”的东西,我们小朋友怎么学呢?

 

其实这玩意看着深奥,事实上不需要什么太强的数学能力。

 

这里我要说一句话,可能你不信。

 

数学这玩意,学的时候难的要死,学会后,在用的时候,其实是很方便的一样工具。

 

读书的时候,很多问题我都不请教老师,而是去请教身边的学霸。

这是因为,老师给我的是理论,而同学可能给我的是同年龄层消化后的通俗易懂的理解方法

 

而老丁今天,当然要给大家的是我嚼过的东西啦!

 


 

PID巡线,难点其实并不在编程上,而是在参数的设定上。

 

所以,我们这节课先不讲程序怎么写。先要了解一下必须了解的那些事。

(关于参数是什么,我在基础编程课里面有,大家自己一课课认真学这些关键词,一定是能有初步了解。)

 

参数,从一个方面来说,是表达了跟现实直接相关的物理意义

直接影响到机器的反应和人们的体验。

 

说白了,做任何的程序,你要用的舒服,要效果好,除了逻辑整理清楚外,剩下的工作,都是在调整参数。

 

所以,我们必须要了解的很清楚!

 

举个简单的例子。

 

主观上,很多人都说中国人做饭好吃,德国人做饭不好吃。(我个人觉得这是客观事实……)

 

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

 

因为德国人做饭,靠的是“数据执行”。

比如盐放多少克、味精放多少克,以搭配多少克的食材……

 

我的天,这在我们国家简直是不可想象的。是吧?

 

我们日常做饭,特别的那些大厨,他们做出来的味道几乎是“不可复制”的。

 

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

 

原因在于,中国人做菜,讲究色香味,火候的控制,各种做法的油温、时间,食材特点的把控(甚至是同一种食材产地不同,对烹饪的要求就会有区别)。

 

这些条件和把控,在我们的程序里面就是各种“参数”。而中国人做饭,靠的是“参数调整”……

 

可以想象,如此复杂的“味道”,情况会有多复杂,需要设定的参数有多么复杂,以至于根本没法完成。

 

所以我国的美食文化,几乎无可取代。

 

写到这里,想起去日本吃大师的手握寿司。

一个寿司在大师手中,捏多少秒,配以多少食材,要求食客在多少时间内吃完。

不但要求食材的新鲜感绽放,甚至要让食客能够感受到大师用手温热米饭的丝丝温度。

 

人,是一种特别复杂的动物,所以对“体验”追求是很复杂的。

 

再比如,单纯从硬件数据来说,很多品牌的手机都“超越”了苹果。但硬件和软件一旦经过适配后,用惯苹果(有3D触控技术)的朋友突然换一个安卓机,可能会觉得有点卡。

 

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

其实这不是真的卡,只是因为很细微的,甚至是精度到微米的触屏反应不同。

就能让人感受到不舒适。但习惯后,又感觉不到了。

 

以上我所说的一切,我们都可以理解为是一种“参数”调整的结果。

 

所以,大家大概可以了解制定参数的难度了吧?!

 


 

回过头来,我们继续说一下PID的另一个关键点——反馈

 

当今的闭环自动控制技术都是基于反馈的概念以减少不确定性而发展的。

 

之前朋友一直问我,EV3机器人的跟其他机器人教学用具厂商的产品有什么不同?

到今天我可以告诉你了。原因就在“反馈”上。

 

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

 

EV3机器人的系统基于Lunix开发,可以理解为,小小的EV3里面装了一个“操作系统”。这也使得它极具兼容性,可以用各种语言对其编程。

 

举个例子,我们日常使用的windows,就是一个操作系统。而Word,是一个办公自动化软件。

 

EV3就像是一个装了Windows的电脑,所以可以换各种姿势编程,为它写各种软件。

 

而大多数厂商做的产品,提供的“编程”能力,本身就是一个软件,你无法或者很难突破这个软件的限制,做出很棒的东西。

 

换句话说,就是没什么可扩展性,只是玩玩罢了。

 

另一个方面,EV3的硬件传感器、电机,都具有实时反馈功能

 

特别是电机,虽然这个电机并不是工业级。但它在旋转的时候,可以做到每转一度,一次反馈!

【 EV3基础应用 】课题五:“嚼过的”PID巡线编程概念。

这是个什么概念呢?

 

很多玩具的电机,是不具备反馈功能的。依靠电压变化和控制供电的方法,来达到控制电机旋转的目的。

 

这样一来,电机与电机之间由于客观物理的原因,误差就会非常大。

 

可能刚买的时候,新机不那么明显,但随着物理老化,慢慢的就会越来越不好使。

 

而EV3的电机,本身就是一个“输入设备”。因为它每转一步,就提供了一个旋转角度或速度数据。即便是物理老化,也能够实时反馈出数据误差,实现自动补足。

 

小实验:证明EV3电机的反向供电存在

 

你可以尝试用EV3的电机连上LED灯泡,当转动时,便能够将转动时的动能转化为少量的电能,点亮灯泡!(有条件的同学,动手试试看好了,我试过了。)

 

正是因为这个原因,所以,你会发现,现在的机器人教育产品中,只有EV3,能够很方便的直接通过乐高所提供的图形编程软件,完成PID巡线的程序设计。

 


 

PID巡线本身,说白了,是PID控制技术的一种简单的体验。

 

依靠电机的自动反馈能力,和各种参数的调整,使EV3机器人能够根据我们设定的比例参数,通过积分(高数知识)增量正负值的表现,再加入微分(高数知识)调控误差的变化速率,控制住每次运算时的误差值,甚至让误差完全消失(在参数调整的最理想的情况下)。

 

最终让机器不停地计算出跟现实匹配的值,提供给电机,达到巡线的目的。

 

洋洋洒洒写了那么一堆,就是为了先讲清楚,PID到底是个什么东西?

不要学了老半天,都不知道这是个啥。

 

请先认真看懂这篇东西,然后,我们开始讲解这个程序的设计。

最后我们再讲参数的设置。

 

不然,即便是你抄了这个程序,也不会知道参数该怎么调整参数。

 


 

后记:

 

说真的,我喜欢瑞士手表,特别崇拜手工制作手表的匠人。他们是怎么能够通过一代代的传承,将手工制表工艺达到今天的“天文级”境界的?

 

每一个小齿轮都有它存在的意义,一步步将指针的走动精确到几乎无误差的地步。

 

少年强则国强,今天我们前所未有的重视了中国少年的科技培养。

相信这帮孩子们在未来,能够强大到一个完全不同的高度。相信后浪激力。

 

如果再过一些年,中国在精工方面的能力能够走上世界一流的舞台,那会是一件多美好的事情。

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