论文部分内容阅读
摘要:本设计采用单片机及外围元器件组成温度测控系统,运用汇编语言进行编程、并在WAVE6000环境下编译、仿真。系统具有复位、越限报警、数码管显示、PID控制等功能。
关键词:单片机;PID调节;温度传感器;数码管显示;越限报警
【中图分类号】 TP302 【文献标识码】 B【文章编号】 1671-1297(2012)09-0224-01
整个温控系统是在程序的控制下工作的,控制系统工作由实时检测(采样)、实时决策(PID控制运算)和实时控制(对加热丝通断的控制)三部分组成。因此,应用程序包括数据采集、PID运算以及输出控制三部分主干程序,这些工作有的安排在主程序中,有的安排在中断服务程序中完成。由LED数码管显示温度值,采用动态扫描的方式在主程序和定时采样等待时都可以插入显示子程序。
一 PID控制算法
在单片机应用系统中,可采用的控制算法很多,但是最常用的仍是数字PID(比例-积分-微分)算法。最优化理论可以证明,PID控制能满足相当多的工業对象的控制要求。PID调节是根据实际测量值与设定值的偏差, 按比例-积分-微分的函数关系进行运算,其运算结果用以输出控制。单片机数字控制器实现PID运算,是按照一定的算法编制相应的程序来完成的。
实现计算机的PID控制器的算法是先根据连续系统的设计方法,得到模拟调节PID的调节规律(这个调节规律可以是微分方程表示的,也可以是用传递函数的形式表示),然后把它离散化,变成适合于计算机的差分方程的形式。
以温度检测和控制为例,用微分方程表示的PID调节规律的、实现模拟PID调节的理想算式为:
式(1.1)
PID控制也称为比例-积分-微分控制。其中的比例项用于纠正偏差;积分项用于消除系统的稳态误差;微分项用于减小系统的超调量,增加系统的稳定性。PID控制器的性能就取决于Kp、Ti和Td这三个参数。设计和调试的任务就是决定这三个参数。
对式(1.1)两边进行拉氏变换可以得到PID调节器的传递函数为
式(1.2)
式(1.2)中U(s)和E(s)分别为u和e的拉氏变换。
式(1.1)中,e(t)=w(t)-y(t)是给定值与输出之间的差,称为误差或偏差,它是PID控制器的输入信号。u(t)为调节器的输出信号,即传给被控对象的操作量,因为计算机的控制是一种采样控制,它只能根据采样时刻的偏差值来计算控制量,因此,在计算机控制系统中,要想在计算机上实现PID调节规律,需要将连续系统的微分方程式化成离散形式,由描述离散系统的差分方程来代替。
增量型算法和位置型算法相比,具有以下优点:
(1)增量型算法不需要做累加,控制量增量的确定仅与最近几次误差采样值有关,计算误差或计算精度问题对控制量的计算影响较小。而位置型算法要用到过去的误差累加值,容易产生大的累加误差。
(2)增量型算法得出的是控制量的增量,输出误差小,必要时通过逻辑判断限制或禁止本次输出,不会严重影响系统的工作。
(3)采用增量型算法,易于实现手动到自动的无冲击切换。但是,当被控对象需要的是控制变量的绝对值,而不是其增量时,可以采用增量式算法,控制量输出采用位置式输出形式。
二 软件的总体设计
系统的操作过程和工作过程在程序的设计过程中起着很重要的指导作用,因此,在软件设计之前应首先分析系统的工作流程。
系统的工作流程
系统在上电复位后先处于停止加热状态,这时可以用8421BCD拨码盘设定预制温度,显示器显示设定温度;温度设定好后就可以启动系统正常工作了。温度检测系统即数字温度传感器DS18B20不断定时检测当前温度,并送往显示器显示,达到设定值后停止加热并且显示当前值;当温度下降到下限值(比设定温度值低5℃)时再启动加热。这样不断地重复上述过程,使温度保持在设定的温度范围之内。启动后不能再修改预制温度,必须按复位键回到停止加热状态再重新设定预制温度值。
1.功能模块
根据对上面工作流程的分析,系统软件可以分为以下几个功能模块:
①温度设定模块:进行温度设定。
②温度检测模块:利用数字温度传感器DS18B20完成温度的自动检测。
③温度显示模块:显示设定温度值和当前温度值。
④温度控制模块:根据检测到的温度,利用PID控制加热丝的工作与否。
⑤越限报警模块:当前温度值越限时报警。
2.主程序
主程序完成的功能是:控制整个系统工作,进行温度值设定、温度检测、温度显示、越限报警等,启动DS18B20测量温度,将测量值与设定值进行比较,然后进行自动控制。主程序开始时,先进行初始化(RAM及口地址分配见表1.1),然后进行自检,自检时让所有的二极管和数码管都亮,以便检查其是否正常。然后启动DS18B20检测温度,调取读温度子程序,经单片机转换后送显示。再调比较子程序。当测量值大于设定值上限时,相应的报警标志位置“1”,并关闭加热;当测量值小于设定值下限时,相应的报警标志位置“1”,并启动加热;当测量值在设定值的范围内时,相应的报警标志位置“0”,并且保持。然后,检测报警标志位,若有报警,就转相应的执行程序;若无报警,就返回继续读数、显示、控制等。
参考文献
[1] 王福瑞.单片微机测控系统设计大全.北京航空航天大学出版社,2000年
[2] 胡汉才编著.单片机原理及其接口技术.清华大学出版社,1996年
[3] 孙传友,孙晓斌等编著.测控系统原理与设计.北京航空航天大学出版社,2002年
[4] 何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社,1990年
作者简介: 王莹,女,1983年出生,专业为电子信息工程,研究方向为电子电气控制。
关键词:单片机;PID调节;温度传感器;数码管显示;越限报警
【中图分类号】 TP302 【文献标识码】 B【文章编号】 1671-1297(2012)09-0224-01
整个温控系统是在程序的控制下工作的,控制系统工作由实时检测(采样)、实时决策(PID控制运算)和实时控制(对加热丝通断的控制)三部分组成。因此,应用程序包括数据采集、PID运算以及输出控制三部分主干程序,这些工作有的安排在主程序中,有的安排在中断服务程序中完成。由LED数码管显示温度值,采用动态扫描的方式在主程序和定时采样等待时都可以插入显示子程序。
一 PID控制算法
在单片机应用系统中,可采用的控制算法很多,但是最常用的仍是数字PID(比例-积分-微分)算法。最优化理论可以证明,PID控制能满足相当多的工業对象的控制要求。PID调节是根据实际测量值与设定值的偏差, 按比例-积分-微分的函数关系进行运算,其运算结果用以输出控制。单片机数字控制器实现PID运算,是按照一定的算法编制相应的程序来完成的。
实现计算机的PID控制器的算法是先根据连续系统的设计方法,得到模拟调节PID的调节规律(这个调节规律可以是微分方程表示的,也可以是用传递函数的形式表示),然后把它离散化,变成适合于计算机的差分方程的形式。
以温度检测和控制为例,用微分方程表示的PID调节规律的、实现模拟PID调节的理想算式为:
式(1.1)
PID控制也称为比例-积分-微分控制。其中的比例项用于纠正偏差;积分项用于消除系统的稳态误差;微分项用于减小系统的超调量,增加系统的稳定性。PID控制器的性能就取决于Kp、Ti和Td这三个参数。设计和调试的任务就是决定这三个参数。
对式(1.1)两边进行拉氏变换可以得到PID调节器的传递函数为
式(1.2)
式(1.2)中U(s)和E(s)分别为u和e的拉氏变换。
式(1.1)中,e(t)=w(t)-y(t)是给定值与输出之间的差,称为误差或偏差,它是PID控制器的输入信号。u(t)为调节器的输出信号,即传给被控对象的操作量,因为计算机的控制是一种采样控制,它只能根据采样时刻的偏差值来计算控制量,因此,在计算机控制系统中,要想在计算机上实现PID调节规律,需要将连续系统的微分方程式化成离散形式,由描述离散系统的差分方程来代替。
增量型算法和位置型算法相比,具有以下优点:
(1)增量型算法不需要做累加,控制量增量的确定仅与最近几次误差采样值有关,计算误差或计算精度问题对控制量的计算影响较小。而位置型算法要用到过去的误差累加值,容易产生大的累加误差。
(2)增量型算法得出的是控制量的增量,输出误差小,必要时通过逻辑判断限制或禁止本次输出,不会严重影响系统的工作。
(3)采用增量型算法,易于实现手动到自动的无冲击切换。但是,当被控对象需要的是控制变量的绝对值,而不是其增量时,可以采用增量式算法,控制量输出采用位置式输出形式。
二 软件的总体设计
系统的操作过程和工作过程在程序的设计过程中起着很重要的指导作用,因此,在软件设计之前应首先分析系统的工作流程。
系统的工作流程
系统在上电复位后先处于停止加热状态,这时可以用8421BCD拨码盘设定预制温度,显示器显示设定温度;温度设定好后就可以启动系统正常工作了。温度检测系统即数字温度传感器DS18B20不断定时检测当前温度,并送往显示器显示,达到设定值后停止加热并且显示当前值;当温度下降到下限值(比设定温度值低5℃)时再启动加热。这样不断地重复上述过程,使温度保持在设定的温度范围之内。启动后不能再修改预制温度,必须按复位键回到停止加热状态再重新设定预制温度值。
1.功能模块
根据对上面工作流程的分析,系统软件可以分为以下几个功能模块:
①温度设定模块:进行温度设定。
②温度检测模块:利用数字温度传感器DS18B20完成温度的自动检测。
③温度显示模块:显示设定温度值和当前温度值。
④温度控制模块:根据检测到的温度,利用PID控制加热丝的工作与否。
⑤越限报警模块:当前温度值越限时报警。
2.主程序
主程序完成的功能是:控制整个系统工作,进行温度值设定、温度检测、温度显示、越限报警等,启动DS18B20测量温度,将测量值与设定值进行比较,然后进行自动控制。主程序开始时,先进行初始化(RAM及口地址分配见表1.1),然后进行自检,自检时让所有的二极管和数码管都亮,以便检查其是否正常。然后启动DS18B20检测温度,调取读温度子程序,经单片机转换后送显示。再调比较子程序。当测量值大于设定值上限时,相应的报警标志位置“1”,并关闭加热;当测量值小于设定值下限时,相应的报警标志位置“1”,并启动加热;当测量值在设定值的范围内时,相应的报警标志位置“0”,并且保持。然后,检测报警标志位,若有报警,就转相应的执行程序;若无报警,就返回继续读数、显示、控制等。
参考文献
[1] 王福瑞.单片微机测控系统设计大全.北京航空航天大学出版社,2000年
[2] 胡汉才编著.单片机原理及其接口技术.清华大学出版社,1996年
[3] 孙传友,孙晓斌等编著.测控系统原理与设计.北京航空航天大学出版社,2002年
[4] 何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社,1990年
作者简介: 王莹,女,1983年出生,专业为电子信息工程,研究方向为电子电气控制。