2.1 t0中断子程序
该中断是 单片机 内部 5s定时中断,优先级设为最低,但却 是最重要的子程序。在该中断响应中,单片机要完成 a/d数据采集转换、数字滤波、判断是否越限、标度转换处理、继续显示当前温度、与设定值进行比较,调用pid算法子程序并输出控制信号等功能。
2.3 t1中断子程序
t1定时中断嵌套在t 中断之中,优先级高于t 中断,其定时初值由pid算法子程序提供,t1中断响应的时间用于输出可控硅(电炉)的控制信号。
3 运算控制模块
运算控制模块涉及标度转换、 pid算法、以及该算法调用到的乘法子程序等。
3.1 标度转换子程序
该子程序作用是将温度信号 (00h~ffh)转换为对应的温度值,以便送显示或与设定值在相同量纲下进行比较。所用线形标度变换公式为:
式中, ax: 实际测量的温度值;nx:经过a/d转换的温度量;
am =90; ao=40; nm =feh; no=01h;
单片机 运算采用定点数运算,并且在高温区和低温区分别用程序作矫正处理,温度计测量值与 led显示见图7。
3.2 pid算法子程序
系统算法控制采用工业上常用的位置型 pid数字控制,并且结合特定的系统加以算法的改进,形成了变速积分pid一积分分离pid控制相结合的自动识别的控制算法。该方法不仅大大减小了超调量(见图9),而且有效地克服了积分饱和的影响,使控制精度大大提高。pid控制算法的流程图如图8。
图 7 温度计测量值与报警方式图
图 8 pid控制算法流程图
图 9中,初始水温为26 c。 实现思想: ui(k)为第k次采样温度值,ur 为设定值。
|e(k)|≥ε 使用pd算法;
|e(k)|<ε使用变速积分pid算法。
在此只给出本算法的控制结果曲线 (见下图9)。
本文关键字:温度控制器 51单片机,单片机-工控设备 - 51单片机