热度 36
2013-11-4 16:07
2021 次阅读|
10 个评论
前两天网友超发的一个国外工程师怎么精准控制飞机模型而引发的一次讨论,其实对于这个话题,就现在还只是学习了几个月程序,只做过一个测温仪校准测试项目的我来说,还谈不上有很深刻、很直观的体会,只能就我做项目的过程中所感觉到的一点隐隐约约的印象来浅显的谈谈。 因为之前我一直做的是硬件,所以养成了一就是一,二就是二,什么东西都要明明白白的思维方式,这个刚开始阻碍了软件的进度,特别是当做到用PID算法去控制温度的时候,这个过程很曲折。在刚开始做PID控制的时候,凤舞天用很简单的常识跟我解释过PID算法,tomsu也很细心的跟我分析了整个温度控制的流程和算法理论,但是我感觉还是不踏实,感觉完全懂了,但又不是很透彻,这种感觉让我很难受。后来我又在网上找了很多关于PID算法的文章和例程去看,可是越看越是迷糊,因为那些理论差不多都是基于理论的算法,在看的时候感觉明白了,可实际上根本不知道怎么着手去做,这个让我既郁闷,也着急。因为这个问题,项目就卡在这里不能继续进行,而且必须要搞明白了,才能过这个难点,整个项目也只有过了这个难题,才能继续往下做,所以,到最后我选择放弃去看那些高深的算法理论和算法例程(虽然凤舞天一开始也提醒过我不要过多的看那些理论,可是不看这些理论,总是感觉站在门外了解不到精髓,只有走进去再走出来才能够真正的了解),就是按照常识的理解,从基础的常识理论去控制。 就是:P是控制I算法介入的门限,在这之前全速加热,如果当前温度大于目标温度,就减;当前温度小于目标温度就加;在门限以内,比如说当前温度与目标温度相差100度时,就开始降低速度或者提高速度,这个就是I算法;再当温度非常接近目标温度时,比如说在2、3度左右变化了,就控制加速度的变化。结果能够控制了,而且也能够达到预期效果。 后来公司另外一同事要做高频机加热控制程序,在做到PID算法这一难点的时候,也是因为看了过多的理论和过多的算法例程,最后被套进去了,根本就跳不出来,就是满脑子的算法、控制,可是她不管怎么用理论的算法去控制,就达不到想要的效果,最后没办法她只能从东莞调试的工厂回来。在她回来后,我跟她讨论算法问题,她一开口都是那些理论,可实际上她对那些理论又都似懂非懂,完全把握不了,后来我按照我的经验,花了两天时间让她放弃之前的PID理论算法思维,用我理解的方式去控制。最后又花了一天的时间去调试,也能达到预期的效果(要知 道,光这个PID,她用她理解的标准PID算法程序调了两个多星期)。 当然,从这两个例子并不是说用复杂的算法不对,当一个产品要实现一个复杂的功能的时候肯定会需要用到复杂的算法。可是我们还必须明白一点,不管多复杂的算法都必须是基于浑厚的基础理论之上的。当基础理论都还谈不上积累的情况下去追求高深的、复杂的算法,简直是自找死路。 所以,我想在工业控制方面大部分功能需求还是比较简单的,而对于简单的需求,有基础的理论和技术再加上常识就够了。