全球旧事资料 分类
不适合用浮点数,定点数处理,就是将温度的内部运算单位放大10倍,在用于显示的时候再除以10也就是固定显示一个小数点位置。如果想让我们的控制做的更好,还可以再提高温度的内部精度,例如精确到1100度,这也是现在高级温控仪采用的精度,但在通常情况下这个精度似乎有点过剩。
PID的三个基本参数Kp,Ki,Kd,一般由试验确定,根据我们的实际工作对象去初步确定,然后在实际运行过程中进行调节,以达到相对理想的效果,为了达到比较好的控制效果,这三个参数一般不采用整数,但同时为了减轻单片机的运算量,通常采用2的整倍数放大的办法确定这些参数,在运算结果中再除以2的整倍数,因为单片机运算中可以用移位来完成,速度比较快,常用的是8倍或16倍放大,注意这三个参数采用相同的放大比例。编程的过程中自己从头到尾要清楚我的参数是经过放大了的,就不会忘记对运算结果还原。
通过怎样的运算来获得2200加温比例数据呢?很简单,为了说明这个问题,我们先假定只考虑最简单的比例控制算法,假定我们的控制范围是在200度,则设定温度与实践温度的差的最大值就是200(度),我们就用去他去输出,这时的参数Kp1,当我们为了提高加热速度,而使受控制的区域缩小,例如只控制50度范围,如目标温度设定为230,我们控制的范围就在180230范围内,这时的差值不够200,我们就把计算得到的数字乘以4就得到0200的数据了,假定当前实测温度为222,则2302228再乘以4算得32,这就作为我们的输出比例数据。当然我们这里还没有考虑超温的情况,计算产生了负数。这一部分将作为我们控制输出的基本量,上面的计算是对应于Kp4DE再加入微分和积分项,这时我们的Kp可以基本保持不变。Kp在这里基本确立了我们的起始控制点到目标值之间的控制范围,微分和积分项在这里只是作为附加部分,基本不影响控制范围。当温度突然下降一度时,我们希望补上多少比例区进行下一轮的加热呢?这就是微分系数:早我经过这么久的控制,目标温度还是低了一点,我希望用多少的比例去弥补这个长期欠温呢?这就是积分常数,我想你已经大概已经确定了这些数据了。一句话,比例常数决定我们参与在目标点以前真正控制的范围,Kp基本时间总周期控制范围。KiKd是您希望的反应对策速度,看你有没有耐心去逐步达到稳定点,过激了会起反作用的,过于胆小怕事是达不到预期目标的。
最后,在计算结果交付于输出之前,还需要进行一些修正,例如当计算结果大于200时按200输出,计算结r
好听全球资料 返回顶部