全球旧事资料 分类
果小于零时按零输出。
处理上的一些常用方法为了提高测温的准确性,往往需要进行多次测温。然后剔除测得结果中的最大值和最小值。把剩余值的数值相加在计算平均值,这样比较有利于抗干扰,或者由于其他原因引起的测量值波动,初期的处理是很必要的。测温工作和PID计算一般安排在上一个输出周期的最后阶段就提前进行的最后阶段就提前进行,测温次数一般在713次,去掉最大最下数以后保留511次用于运算,均值运算的累加部分将安排在每一次测温以后逐步进行,不会过多占用系统时间。只有系统的时间允许,尽可能的测多几次,所得到的结果也会相对精确点。运算将会占用很长的时间,这是相对于我们的一个基本定时周期来讲的,一个系统定时周期内我们的系统还要处理很多事情,例如显示的刷新、键盘的扫描、键盘码的处理执行等等,如果我们的运算占用很多时间的话那么就会出现一个系统定时周期内完不成的情况。所以如果您的
f系统仅仅是一台温控仪的话,就可以将运算部分放到主程序中进行,而常规的刷新扫描之类的才放在定时中断里处理,这样编制的主程序就非常清晰明了,这是比较理想的情况。如果温度控制仅仅作为您的系统中的一部分小插曲,那就需要认真考虑程序的布局了,主程序有更重要的任务要处理,温度控制运算部分就只能委托系统定时器来承担了,时间不够用怎么办?假定我们的定时周期是10ms,显示刷新部分要用1ms,键盘扫描处理要1ms,PID运算要2ms(假定),留给主程序的时间可能不够了,我们就需要对我们的PID运算进行任务的分割,把运算分成几个部分进行,每一次进入运算程序只计算其中的一小部分,经过N次的调才完成一个完整的PID运算,这样就不会影响整个系统的运作了,这里面需要细细的推敲、分割,这是面对一个较大系统的一般处理方法,对其他任务也可以采用分割的办法进行细化,例如对显示刷新,现在液晶屏用得比较多,环境的干扰,数据的变化都会引起花屏或反应迟钝,而刷新需要占用很长的时间,我们也可以采用分片刷新的办法处理,把每次刷新所占用的时间减到最短。
PID的输出部分可以放到系统定时中断里处理,这部分占用的时间不长,可以随带完成。前面我们讲到将时间作200等分记作Tset,这就是将一个约定时间200级不同的输出时间比例,通过我们的计算得到一个介于0200之间的数Tout,然后每次在我们的PID基本定时时间中对这个Tout减1,当等分计数器Tset也达到零时进行下一轮控制循环,重新计算Tout。这样我们就完成一个r
好听全球资料 返回顶部