前两天网友超发的一个国外工程师怎么精准控制飞机模型而引发的一次讨论,其实对于这个话题,就现在还只是学习了几个月程序,只做过一个测温仪校准测试项目的我来说,还谈不上有很深刻、很直观的体会,只能就我做项目的过程中所感觉到的一点隐隐约约的印象来浅显的谈谈。
因为之前我一直做的是硬件,所以养成了一就是一,二就是二,什么东西都要明明白白的思维方式,这个刚开始阻碍了软件的进度,特别是当做到用PID算法去控制温度的时候,这个过程很曲折。在刚开始做PID控制的时候,凤舞天用很简单的常识跟我解释过PID算法,tomsu也很细心的跟我分析了整个温度控制的流程和算法理论,但是我感觉还是不踏实,感觉完全懂了,但又不是很透彻,这种感觉让我很难受。后来我又在网上找了很多关于PID算法的文章和例程去看,可是越看越是迷糊,因为那些理论差不多都是基于理论的算法,在看的时候感觉明白了,可实际上根本不知道怎么着手去做,这个让我既郁闷,也着急。因为这个问题,项目就卡在这里不能继续进行,而且必须要搞明白了,才能过这个难点,整个项目也只有过了这个难题,才能继续往下做,所以,到最后我选择放弃去看那些高深的算法理论和算法例程(虽然凤舞天一开始也提醒过我不要过多的看那些理论,可是不看这些理论,总是感觉站在门外了解不到精髓,只有走进去再走出来才能够真正的了解),就是按照常识的理解,从基础的常识理论去控制。
就是:P是控制I算法介入的门限,在这之前全速加热,如果当前温度大于目标温度,就减;当前温度小于目标温度就加;在门限以内,比如说当前温度与目标温度相差100度时,就开始降低速度或者提高速度,这个就是I算法;再当温度非常接近目标温度时,比如说在2、3度左右变化了,就控制加速度的变化。结果能够控制了,而且也能够达到预期效果。
后来公司另外一同事要做高频机加热控制程序,在做到PID算法这一难点的时候,也是因为看了过多的理论和过多的算法例程,最后被套进去了,根本就跳不出来,就是满脑子的算法、控制,可是她不管怎么用理论的算法去控制,就达不到想要的效果,最后没办法她只能从东莞调试的工厂回来。在她回来后,我跟她讨论算法问题,她一开口都是那些理论,可实际上她对那些理论又都似懂非懂,完全把握不了,后来我按照我的经验,花了两天时间让她放弃之前的PID理论算法思维,用我理解的方式去控制。最后又花了一天的时间去调试,也能达到预期的效果(要知道,光这个PID,她用她理解的标准PID算法程序调了两个多星期)。
当然,从这两个例子并不是说用复杂的算法不对,当一个产品要实现一个复杂的功能的时候肯定会需要用到复杂的算法。可是我们还必须明白一点,不管多复杂的算法都必须是基于浑厚的基础理论之上的。当基础理论都还谈不上积累的情况下去追求高深的、复杂的算法,简直是自找死路。
所以,我想在工业控制方面大部分功能需求还是比较简单的,而对于简单的需求,有基础的理论和技术再加上常识就够了。
用户1584489 2013-11-18 17:43
用户1406868 2013-11-17 15:38
用户1584489 2013-11-7 21:24
用户1584489 2013-11-7 21:22
用户1584489 2013-11-7 21:19
用户1584489 2013-11-7 21:18
用户1677338 2013-11-5 13:11
用户1039176 2013-11-5 09:58
用户3809340 2013-11-5 09:16
真实遗憾啊,这么多智力最强的科学家做出的理论,本来也是来源于某些具体工程问题的实践的,做好了理论就是让它能够方便地回到实践去的、指导工程实践的、方便工程师的,但是如今的局面是带来了工程师们的两难:自己也去彻底搞懂算法的原理,几乎不可能,费了大劲,无功而返;完全不懂原理只看执行代码,又只能应对完全相同的外界情况、稍微变化就无力自己修改,因此心里没底!怎么办?
还是有办法的,或者说循序渐进的学习“进路”要自己摸索,而确实存在很多前人的经验可以借鉴。包括LZ已经说到的先定性(温度大了就减),在定性的框架内再定量(减多少、减速多少、减的路径线性还是怎样)的思路,比较容易达到一些令人愉快的“直觉”:那样你的直觉指导你的操作、你的操作与它产生的信号或数据就直接联系起来了。经常说做事要做有兴趣的事,但是工程师的兴趣是从哪里来呢、甚至说怎样保持长久呢?就是自己思维方式的科学巧妙带来的。因为外界世界对所有人是相同的,而里面的美妙和自己创造改变带来的奇妙,只有靠自己。努力吧。。。
以上不包括那些极少数的少年发烧友出身的工程师,他们的原始智力发育就和分析外界物理世界、以及一些工程操作直接联系起来了,不需要这样经历这样痛苦的过程。他们如果成长在中国,就必须是有2个脑袋,一个用来应对所有的应试给家长看和立命于这个社会,另一个做真正大脑该做的事情。。。
用户1702504 2013-11-5 08:17