通过前面的学习,我们已经初步了解了软件是如何进行设计实现的;这一节我们接触的PID算法不再引入C++语言方面的新知识。PID算法是控制领域极其重要的一个算法,已经有很多书中都讲述了PID算法,那么为什么这里又将PID算法单列出来一个章节进行讲述呢?例如,在许多电机控制相关的教材中,PID算法的讲述与电机相关知识结合,增加了学生理解的难度,并且PID算法的实现依赖于硬件设施,没有相关实验条件的学生很难通过实验对所学的知识进行验证。
对于所有知识的掌握,我们都秉持着循循渐进的原则。在这一章,我们通过模拟的方式,尽可能屏蔽其他学科知识的干扰,尽可能简单地通过程序对PID算法进行模拟实现,带领大家对这个算法有一个初步的认识,以便将来遇到真正地需要使用PID算法进行相关工程问题的解决的时候,能够快速入门。
9.1 PID算法思想
PID算法广泛应用于工业控制领域,这里我们以具体的电机控制为例,来慢慢进入到抽象的PID算法的数学公式中。为了让大家能够快速理解PID算法的思想,这里不严谨地以电机控制来打个比方,如果对一个小电机我们施加一个6V的电压,电机对应的转速是1000r/min;突然有电机上面加上了一个负载,电机的速度降低至500r/min,我们想让电机保持1000r/min的转速,这个时候应该怎么办呢?我们将电压提升至12V,此时电机速度转速至1100r/min;这样就超出了我们理想的1000r/min,此时我又要减小电压,让电机速度下降至1000r/min...
对以上过程进行总结:当电机转速低于我们预想的转速的时候,我们调高电压;当电机转速高于预想的转速的时候,我们调低电压;整个过程的调节依赖于实际速度和理想速度的偏差,然后人为地进行控制调节。
我们知道现今有了计算机,这一套流程可以交给计算机进行控制调节。而计算机控制依赖于数字计算,PID算法正是针对此类控制的算法。
顾名思义,PID算法的名字中的“P”、“I”、“D”分别代表“比例(proportion)”、“积分