墨客小说网 > 学霸的科技荣耀 > 第12章 惊人的精度

第12章 惊人的精度

推荐阅读:神印王座II皓月当空深空彼岸明克街13号弃宇宙最强战神全职艺术家第九特区龙王殿重生之都市仙尊财运天降

一秒记住【墨客小说网 www.mksxs.com】,精彩小说无弹窗免费阅读!

    【注:本章所述的PID理解真实有效,可作为教材学习】

    接下来,刘牧又举了一个烧锅炉的例子,现在需要把温度保持在38度。

    假定有一个锅炉工人,他需要看着温度计调整锅炉的阀门,温度低了,他就加大阀门;温度高了,他就减小阀门。

    这其实就是最原始的P调节。

    但是问题来了,如果温度是30度、35度,那对应调节多大量的阀门呢?

    同样现在是30度,跟目标相差8度,那么春天、夏天、秋天、冬天,调节阀门的量相同吗?如果不同,区别又在哪?

    一个控制系统,影响参量很多。

    刘牧说:“所以,这样一个锅炉调温系统,需要一位多年经验、且心思细腻的老师傅才能很好地调节阀门;这还只是一个简单的案例,如果更复杂呢?参量更多呢?我们不可能穷尽每一个细节;这就是PID的意义。”

    “我此前说过,PID是构建输入与输出的函数关系,现在我只要把温度差输入到PID这个黑盒子里,不管是什么天气、什么季节、什么影响参数,都不管,这时候PID必然有一个控制阀门的输出值,所以PID可以适应各种系统。”

    “那为什么PID就可以不考虑具体细节,只需要合适的三个参量即可,却能适应各种系统呢?”

    “这就是因为世间万物都可以用比例、积分、微分来逼近,就好像数学中每一个函数都能展开为级数形态。”

    高屋建瓴!周峰越听越觉得上头,听小牧牧讲课太享受。

    形而上、浅入浅出。

    接着,刘牧就展示了一副PID逼近目标的动图。

    能够非常清晰地看到P、I、D的作用。

    观看了10次,差不多10分钟之后,六名本科生都大受震撼。

    刘牧解说:“P其实是能够逼近目标的关键,P太小,无法逼近目标,而P太大,会导致严重超调,所以P根据系统能够接受的最大超调量确定就行。”

    “D就很有意思了,就像我们开车,想要沿着一条直线走,新手总是一会向左、一会向右,D就是到达目标后的波动,而我们需要做的是:别浪。”

    配图也很有意思。

    章涵没抬头,漠然问道:“有些动态性要求很高的系统,只采用PD控制,PD会有什么问题?”

    这问题很考验理解深度。

    “章师兄这个问题很好。”刘牧不紧不慢说,“我先说一个小故事,古时候有很吝啬的地主,为了让驴子一刻不停的干活,会在驴子嘴边放一个萝卜,驴子看到萝卜就会一直往前追,但是一直吃不到萝卜,章师兄所说的PD控制就会出现这个问题。”

    哦!六名本科生一下懂了。

    韩开云说:“就是始终保持一个距离,却死活达不到。”

    “对的,韩师兄总结很好,这就是静差,而积分环节就是消除静差的关键,下面就来说说积分I。”

    “古语有云,不积跬步无以至千里,积累的效果超乎想象,曾经老师们说过的鸡汤,每天进步一点点,1.01的365次方就能达到惊人的37.8,这就是积分的力量。在PID中,积分就是不断累积误差,把一点点小静差累积放大,从而消除静差。”

    ……

    一个小时讲完自动控制PID。

    你听懂了吗?

    周峰副教授带头鼓掌,讲得太好了。

    金榜啧啧也用力拍手。

    沉浸在思考中的六位本科生反应过来也羞涩的认可。

    窦真很激动地鼓掌,喊道:“太优秀了。”

    章涵抬头看了一眼,又看回电脑屏幕,从电脑包里拿出一个小盒子,推了出去,说:“实际调参一个项目,成功了再说吧。”

    电机连接着角速度传感器,角速度传感器的轴上挂着一个如时针的大箭头,大箭头上有几块不规则的配重;另外一侧,则是红外距离传感器。

    输入信号是距离,转化为电压,作为目标值。

    控制量则是角度传感器的位置。

    控制器是小巧的ArduinoMicro。

    章涵把小设备通电,然后手掌放在红外测距传感器前面,随着他手掌与测距传感器的距离变化,角度传感器轴上的指针就稳稳停在对应的位置。

    响应快速,且无抖动。

    由于指针的不同位置设置了不规则配重块,也就是说指针的任何角度受力都差异很大。

    这无疑是极为优越的自控算法程序。

    刷掉了程序,留下一句话:“后天上午电赛选题了,想做自控题,先在明天晚上之前把参数和代码调试出来再说。”

    说完,章涵抱着电脑,潇洒而去。

    金榜心说,章师兄强是强的,就是爱装B。

    六名本科生有些发憷。

    短短一周半的接触,对章博士产生PTSD。

    周峰说道:“刘牧,你带他们六个调试一下,金榜,你还是当助教。”

    “好的,周老师。”

    金榜很愉快地答应下来。

    这一段程序代码其实很复杂。

    刘牧思索片刻,就开始动手尝试。

    先写一个完整的PID控制程序,很简单,AI端口采集距离传感器的电压作为目标;拿出三个DO端口作为电机驱动模块TB6612的控制信号。

    这是常规操作。

    在控制器ArduinoMicro与电机之间,必须增加电机驱动模块。

    因为控制器的端口输出电流很弱,只有20mA。

    而电机在刚通电的一瞬间相当于短路,瞬时电流会非常大。

    那么,电机驱动模块就相当于一个电流放大器。

    写代码花了20分钟,调试PID参数大概30分钟。

    指针总算能够随着手掌距离变化而转动起来。

    只是不够顺滑,且指针有很明显的抖动现象。

    章涵夹着电脑又走了进来,看了一会儿刘牧的调试过程。

    他哼了一声,嗤之以鼻道:“我之前的代码是花了一周时间,反复修改优化,达到了产品级的动态性和稳定性,你这代码仅仅是实现功能,你要知道实现功能和产品级之间,有条巨大的鸿沟;不过,你一个高二学生做到功能实现,也比他们七个废柴强很多了。”

    七个?金榜很不爽,为什么要带上我。

    六名本科生顿时脸色一黑。

    章涵不管别人看法,继续问:“你们知道这其中的难点在哪儿吗?难在哪儿都不知道,会让你们坐井观天,幼稚而不自知。”