水温自动控制系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统设计性实验报告
作者:班级:学号
摘要:
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而大大的提高产品的质量和数量。因此,单片机对温度的控制问题是工业生产中经常会遇到的控制问题.该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了基于单片机的水温自动控制系统的设计。
比例控制(P控制)
比例控制的输出与偏差成比例关系,当负荷变化时,抗干扰能力强,过渡过程时间短,但过程终了存在余差;适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。
比例积分控制(PI控制)
控制器的输出与偏差的积分成比例,积分的作用使过渡过程结束时无余差,但降低了系统的稳定性;PI控制适用于滞后较小,负荷变化不大,被控量不允许有余差的控制系统。
A/D口初始化程序:
void System_Initial (void)
{
CS = 1;
WR = 1;
RD = 1;
}
4.2.3按键程序
(1)、按键扫描:当按下一个键是,会出现所按的键在闭合位置与断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动的问题。抖动持续的时间因操作者而异,一般为5~10ms,稳定闭合时间一般为十分之几秒~几秒,由操作者的按键动作所确定。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多长识别判定。如下图:
子程序如下:
void GetAD(void)
{
CS = 0;
nop();\\空操作
WR1 = 0;
Delay(100);
WR1 = 1;
nop();
CS = 1;
while(!INTR);
nop();
CS = 0;
nop();
RD1 = 0;
nop();
dat = P2;
RD1 = 1;
nop();
结构框架如下图:
程序结构图
4.2程序流程图及程序
4.2.1主程序模块
由于模块化程序的设计,通过调用程序即可实现所需使用的功能,主程序流程图如下图:
主程序流程图
主程序如下:
//函数:主程序
//语法:int main(void)
//描述:键盘扫描、温度控制
//参数:无
//返回:无
int main(void)
四、系统软件设计流程
4.1程序框架结构
一个整体的系统软件设计是由各个在系统里起着不同作用的模块整合在一起,从而实现系统的所要实现的功能。本系统硬件接口如下:
P1--AD;
P00~P07--LEDa~LEDdp.;
P25~P27--S1~S3;
P20~P23--COM1~COM3;
此系统包括主控制程序,A/D采样数据处理程序,PID算法程序,LED显示及按键处理程序。
CS = 1;
ch = dat;
int adc_data;
if(G_ADC_flag){//判断是否有温度采样1,有;0,无
G_ADC_flag = 0;
adc_data = adc_data_cmp();
adc_data /= SET_ADC_TIME;//计算温度平均值
if(adc_data >0x0255) K = 0.079; //确定温度系数
程序:
sbit S1 = P2^5;
sbit S2 = P2^6;
sbit S3 = P2^7;
unsigned GetCh (void)
{
unsigned char s = 0,k = 0;
if(!S1) s = 1;
if(!S2) s = 2;
if(!S3) s = 3;
k = s;
if(s)
{
else K = 0.076;
fT = adc_data * K; //换算成温度值
//将温度值转换成十进制用于LED显示
guiLED_Value[0] = (int)fT/10;
2.接受数据线(RxD)7.请求发送(RTS)
3.发送数据线(TxD)8.清除发送
4.数据中断准备就绪(DTR)9.振铃指示
5.信号地(SG)
3.3键盘设置电路
我用4*4键盘设计温度输入,如上图所示,S1~S9分别对应1~9,S10对应0
3.4数码显示电路
数码管作为单片机系统最为常用的输出器件,在显示时候可以由数字和少量字母组合完成输出功能的系统中应用十分广泛。
水温控制系统的控制对象具有热储存能力大,惯性也较大的特点,水在容器内的流动或热量传递都存在一定的阻力,因而可以归于具有纯滞后的一阶大惯性环节。
对于大惯性系统的过渡过程控制,一般可采用以下几种控制方案:
开关量控制
这种方法通过比较给定值与被控参数的偏差来控制输出的状态,开通或关断,因此控制过程十分简单,也容易实现;但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易引起反馈回路振荡,控制精度不高;这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。
while(s)
{
delay(1000);
s = 0;
if(!S1) s = 1;
if(!S2) s = 2;
if(!S3) s = 3;
}
}
return k;
}
(2)键值处理:
4.2.4A/D采样数据处理
当采样到温度数据时,为了防止在采样过程中外界干扰而造成采样数据的不准确,必须调用温度均值处理程序,然后确定温度系数使采样转换得到的电压信号转换成温度值,并进行十进制转换,用于显示和PID计算。其中均值处理是一个比较重要的环节,是A/D转换前必不可少的工具,流程图如下图所示:
关键字:飞思卡尔单片机水温自动控制MC9S12DG128
前言:
温度是生活以及生产中最基本的物理量,它表征的是物体的冷热程度。自然界中任何物理、化学过程都与温度有着密切的联系。在很多生产过程中,温度的测量和控制都直接关系安全生产、生产效率、生产质量、能源利用等方面的问题。因此,温度的测量和控制在我国的很多经济领域都受到高度重视。
继电器/热电管:通过三极管控制继电器的开关来完成对热电炉的功率控制。
三、硬件设计原理及内容
3.1硬件设计原理图
硬件原理图
3.2串口通信部分电路
串口通信电路
串口电路主要用于连接具有相同接口的室内设备。本次采用的是9芯接头的串行口,引脚含义如下:
1.接收线信号检测(载波检测DCD)6.数据通信设备准备就绪(DSR)
(2)环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。
(3)用十进制数码管显示水的实际温度保留一位小数。
(4)采用适当的控制方法(如数字PID),当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。
(5)温度控制的静态误差≤0.2℃。
(6)从串口输出水温随时间变化的数值。
比例积分加微分控制(PID控制)
微分的作用使控制器的输出与偏差变化的速度成比例,它对克服对象的容量滞后有显著的效果;在比例基础上加入微分作用,使稳定性提高,再加上积分作用,可以消除余差;PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
结合本设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求;但从以上对控制方法的分析来看,PID控制方法最适合本例采用:一方面,由于可以采用单片机实现控制过程,无论哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案;另一方面,采用PID的控制方式可以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。
随着电子技术和计算机的迅速发展,计算机测量控制技术拥有操作简单、控制灵活、使用便捷以及性价比较高的优点从而得到了广泛应用。
单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可以实现对数字信息ຫໍສະໝຸດ Baidu处理和控制,因此,单片机广泛应用于现代工业控制中。此控制具有重量轻、体积小、价格低、可靠性高、耗电低和操作灵活等优点,因此利用单片机进行温度测量控制会大大提高其可靠性和准确性。单片机对温度的测量控制是基于传感器、A/D转换器以及扩展接口和执行机构来进行的。在闭环过程控制系统中,过程的实时参数由传感器和A/D转换器来进行实时采集,并由单片机自动记录、处理并控制执行机构来进行调节和控制。因此需要对单片机进行扩展和开发,来形成一个完整的单片机温度控制系统。
在实际的生产实验环境下,由于系统内部和外界的热量交换是很难控制的,而且其他干扰因素也是无法去精确计算的,因此温度量的变化往往受到不可精确预计的外界环境扰动的影响。但是正常工业生产过程中,对生产中的温度要求又是相对精确和苛刻的,工业生产中经常要保持反应炉中保持一定的温度,来促进反应的持续快速进行,同时,以前的温度控制大多是人工通过仪表的显示来调节温度的模式,然而人工控制温度的精确度不高,而且反应不灵敏,存在较大误差,因此需要更好的测温控温方法。
键盘设定:用于温度设定,一共有三个按键。
数据采样:将由传感器及相关电路采集到的温度转为电压信号,经A/D转换后,送入AT89S52相应接口中,换算成温度值,用于控制和显示。
数据显示:采用了共阴极数码管LED进行显示设置温度与测量温度。
串行口传输:将采样温度值,上传至PC机,可利用PC的端口下载程序。
1.2水温控制系统部分
水温控制系统是一个过程控制系统,组成框图如下所示,有控制器、执行器、被控对象及其反馈作用的测量变送组成。
控制系统框图
1.2.1CPU——中央处理器
采用89S52单片机实现,此单片机软件编程自由度大,可以编程实现各种控制算法和逻辑控制。进行数据转换,控制电路部分采用SSR固态继电器控制电炉丝的通断此方案电路简单可以满足题目中的各项要求的精度。下图为以AT89S52单片机为检测控制中心的水箱温度自动控制系统,总体框图如下:
if(status = temperature_control)
display_AD_temperature(); //测量温度显示、PID计算
if(Out<=0) turn_off_timer();
}
}
4.2.2系统初始化
系统初始化包括A/D口初始化、按键初始化等。对端口的初始化即是对端口相应位进行设置。
系统整体框图
本系统软件设计包括两个部分:管理程序和控制程序。管理程序包括LED显示动态刷新、控制指示灯、处理键盘的扫描和响应。用来进行掉电保护的处理、执行中断服务操作等等。另一方面,控制程序包括A/D转换、数据采样、数字处理、报警设置、中值滤波、PID计算等等。系统整体框图如上图。
该系统组成部分:
单片机:单片机是整个控制系统的核心,在此我们用AT89S52可以提供系统控制所需要的I/0口、中断、定时以及存放中间结果的RAM电路。
{ int KeyValue;
status = temperature_set;
System_Initial();
PID_Initial();//PID初始化
while(1){
KeyValue = GetCh();//键盘扫描、去抖动处理、取键值
key_value_process(KeyValue); //键值处理
1.2.3控制策略
PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差e(t):
将偏差e(t)的比例P、积分I和微分D通过线性组合成控制量,对被控对象进行控制,因此成为PID控制。
其控制规律为
或者写成传递函数形式:
式中: :比例系数
:积分时间常数
:微分时间常数
二、系统设计的功能
一.系统方案
1.1水温控制系统设计任务和要求
该系统为一实验系统,系统设计任务:
设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。同时满足以下要求:
(1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。
控制器设计总体框图
温度控制采用改进的PID数字控制算法,显示采用3位LED静态显示,该设计结构简单,控制算法新颖,控制精度高,具有较强的通用性。
1.2.2温度控制系统算法分析
常用的控制算法有以下几种:
1.经典的比例积分微分控制算法;
2.根据动态系统的优化理论得到的自适应控制和最优控制方法;
3.根据模糊集合理论得到模糊控制算法。
作者:班级:学号
摘要:
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而大大的提高产品的质量和数量。因此,单片机对温度的控制问题是工业生产中经常会遇到的控制问题.该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了基于单片机的水温自动控制系统的设计。
比例控制(P控制)
比例控制的输出与偏差成比例关系,当负荷变化时,抗干扰能力强,过渡过程时间短,但过程终了存在余差;适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。
比例积分控制(PI控制)
控制器的输出与偏差的积分成比例,积分的作用使过渡过程结束时无余差,但降低了系统的稳定性;PI控制适用于滞后较小,负荷变化不大,被控量不允许有余差的控制系统。
A/D口初始化程序:
void System_Initial (void)
{
CS = 1;
WR = 1;
RD = 1;
}
4.2.3按键程序
(1)、按键扫描:当按下一个键是,会出现所按的键在闭合位置与断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动的问题。抖动持续的时间因操作者而异,一般为5~10ms,稳定闭合时间一般为十分之几秒~几秒,由操作者的按键动作所确定。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多长识别判定。如下图:
子程序如下:
void GetAD(void)
{
CS = 0;
nop();\\空操作
WR1 = 0;
Delay(100);
WR1 = 1;
nop();
CS = 1;
while(!INTR);
nop();
CS = 0;
nop();
RD1 = 0;
nop();
dat = P2;
RD1 = 1;
nop();
结构框架如下图:
程序结构图
4.2程序流程图及程序
4.2.1主程序模块
由于模块化程序的设计,通过调用程序即可实现所需使用的功能,主程序流程图如下图:
主程序流程图
主程序如下:
//函数:主程序
//语法:int main(void)
//描述:键盘扫描、温度控制
//参数:无
//返回:无
int main(void)
四、系统软件设计流程
4.1程序框架结构
一个整体的系统软件设计是由各个在系统里起着不同作用的模块整合在一起,从而实现系统的所要实现的功能。本系统硬件接口如下:
P1--AD;
P00~P07--LEDa~LEDdp.;
P25~P27--S1~S3;
P20~P23--COM1~COM3;
此系统包括主控制程序,A/D采样数据处理程序,PID算法程序,LED显示及按键处理程序。
CS = 1;
ch = dat;
int adc_data;
if(G_ADC_flag){//判断是否有温度采样1,有;0,无
G_ADC_flag = 0;
adc_data = adc_data_cmp();
adc_data /= SET_ADC_TIME;//计算温度平均值
if(adc_data >0x0255) K = 0.079; //确定温度系数
程序:
sbit S1 = P2^5;
sbit S2 = P2^6;
sbit S3 = P2^7;
unsigned GetCh (void)
{
unsigned char s = 0,k = 0;
if(!S1) s = 1;
if(!S2) s = 2;
if(!S3) s = 3;
k = s;
if(s)
{
else K = 0.076;
fT = adc_data * K; //换算成温度值
//将温度值转换成十进制用于LED显示
guiLED_Value[0] = (int)fT/10;
2.接受数据线(RxD)7.请求发送(RTS)
3.发送数据线(TxD)8.清除发送
4.数据中断准备就绪(DTR)9.振铃指示
5.信号地(SG)
3.3键盘设置电路
我用4*4键盘设计温度输入,如上图所示,S1~S9分别对应1~9,S10对应0
3.4数码显示电路
数码管作为单片机系统最为常用的输出器件,在显示时候可以由数字和少量字母组合完成输出功能的系统中应用十分广泛。
水温控制系统的控制对象具有热储存能力大,惯性也较大的特点,水在容器内的流动或热量传递都存在一定的阻力,因而可以归于具有纯滞后的一阶大惯性环节。
对于大惯性系统的过渡过程控制,一般可采用以下几种控制方案:
开关量控制
这种方法通过比较给定值与被控参数的偏差来控制输出的状态,开通或关断,因此控制过程十分简单,也容易实现;但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易引起反馈回路振荡,控制精度不高;这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。
while(s)
{
delay(1000);
s = 0;
if(!S1) s = 1;
if(!S2) s = 2;
if(!S3) s = 3;
}
}
return k;
}
(2)键值处理:
4.2.4A/D采样数据处理
当采样到温度数据时,为了防止在采样过程中外界干扰而造成采样数据的不准确,必须调用温度均值处理程序,然后确定温度系数使采样转换得到的电压信号转换成温度值,并进行十进制转换,用于显示和PID计算。其中均值处理是一个比较重要的环节,是A/D转换前必不可少的工具,流程图如下图所示:
关键字:飞思卡尔单片机水温自动控制MC9S12DG128
前言:
温度是生活以及生产中最基本的物理量,它表征的是物体的冷热程度。自然界中任何物理、化学过程都与温度有着密切的联系。在很多生产过程中,温度的测量和控制都直接关系安全生产、生产效率、生产质量、能源利用等方面的问题。因此,温度的测量和控制在我国的很多经济领域都受到高度重视。
继电器/热电管:通过三极管控制继电器的开关来完成对热电炉的功率控制。
三、硬件设计原理及内容
3.1硬件设计原理图
硬件原理图
3.2串口通信部分电路
串口通信电路
串口电路主要用于连接具有相同接口的室内设备。本次采用的是9芯接头的串行口,引脚含义如下:
1.接收线信号检测(载波检测DCD)6.数据通信设备准备就绪(DSR)
(2)环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。
(3)用十进制数码管显示水的实际温度保留一位小数。
(4)采用适当的控制方法(如数字PID),当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。
(5)温度控制的静态误差≤0.2℃。
(6)从串口输出水温随时间变化的数值。
比例积分加微分控制(PID控制)
微分的作用使控制器的输出与偏差变化的速度成比例,它对克服对象的容量滞后有显著的效果;在比例基础上加入微分作用,使稳定性提高,再加上积分作用,可以消除余差;PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
结合本设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求;但从以上对控制方法的分析来看,PID控制方法最适合本例采用:一方面,由于可以采用单片机实现控制过程,无论哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案;另一方面,采用PID的控制方式可以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。
随着电子技术和计算机的迅速发展,计算机测量控制技术拥有操作简单、控制灵活、使用便捷以及性价比较高的优点从而得到了广泛应用。
单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可以实现对数字信息ຫໍສະໝຸດ Baidu处理和控制,因此,单片机广泛应用于现代工业控制中。此控制具有重量轻、体积小、价格低、可靠性高、耗电低和操作灵活等优点,因此利用单片机进行温度测量控制会大大提高其可靠性和准确性。单片机对温度的测量控制是基于传感器、A/D转换器以及扩展接口和执行机构来进行的。在闭环过程控制系统中,过程的实时参数由传感器和A/D转换器来进行实时采集,并由单片机自动记录、处理并控制执行机构来进行调节和控制。因此需要对单片机进行扩展和开发,来形成一个完整的单片机温度控制系统。
在实际的生产实验环境下,由于系统内部和外界的热量交换是很难控制的,而且其他干扰因素也是无法去精确计算的,因此温度量的变化往往受到不可精确预计的外界环境扰动的影响。但是正常工业生产过程中,对生产中的温度要求又是相对精确和苛刻的,工业生产中经常要保持反应炉中保持一定的温度,来促进反应的持续快速进行,同时,以前的温度控制大多是人工通过仪表的显示来调节温度的模式,然而人工控制温度的精确度不高,而且反应不灵敏,存在较大误差,因此需要更好的测温控温方法。
键盘设定:用于温度设定,一共有三个按键。
数据采样:将由传感器及相关电路采集到的温度转为电压信号,经A/D转换后,送入AT89S52相应接口中,换算成温度值,用于控制和显示。
数据显示:采用了共阴极数码管LED进行显示设置温度与测量温度。
串行口传输:将采样温度值,上传至PC机,可利用PC的端口下载程序。
1.2水温控制系统部分
水温控制系统是一个过程控制系统,组成框图如下所示,有控制器、执行器、被控对象及其反馈作用的测量变送组成。
控制系统框图
1.2.1CPU——中央处理器
采用89S52单片机实现,此单片机软件编程自由度大,可以编程实现各种控制算法和逻辑控制。进行数据转换,控制电路部分采用SSR固态继电器控制电炉丝的通断此方案电路简单可以满足题目中的各项要求的精度。下图为以AT89S52单片机为检测控制中心的水箱温度自动控制系统,总体框图如下:
if(status = temperature_control)
display_AD_temperature(); //测量温度显示、PID计算
if(Out<=0) turn_off_timer();
}
}
4.2.2系统初始化
系统初始化包括A/D口初始化、按键初始化等。对端口的初始化即是对端口相应位进行设置。
系统整体框图
本系统软件设计包括两个部分:管理程序和控制程序。管理程序包括LED显示动态刷新、控制指示灯、处理键盘的扫描和响应。用来进行掉电保护的处理、执行中断服务操作等等。另一方面,控制程序包括A/D转换、数据采样、数字处理、报警设置、中值滤波、PID计算等等。系统整体框图如上图。
该系统组成部分:
单片机:单片机是整个控制系统的核心,在此我们用AT89S52可以提供系统控制所需要的I/0口、中断、定时以及存放中间结果的RAM电路。
{ int KeyValue;
status = temperature_set;
System_Initial();
PID_Initial();//PID初始化
while(1){
KeyValue = GetCh();//键盘扫描、去抖动处理、取键值
key_value_process(KeyValue); //键值处理
1.2.3控制策略
PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差e(t):
将偏差e(t)的比例P、积分I和微分D通过线性组合成控制量,对被控对象进行控制,因此成为PID控制。
其控制规律为
或者写成传递函数形式:
式中: :比例系数
:积分时间常数
:微分时间常数
二、系统设计的功能
一.系统方案
1.1水温控制系统设计任务和要求
该系统为一实验系统,系统设计任务:
设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。同时满足以下要求:
(1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。
控制器设计总体框图
温度控制采用改进的PID数字控制算法,显示采用3位LED静态显示,该设计结构简单,控制算法新颖,控制精度高,具有较强的通用性。
1.2.2温度控制系统算法分析
常用的控制算法有以下几种:
1.经典的比例积分微分控制算法;
2.根据动态系统的优化理论得到的自适应控制和最优控制方法;
3.根据模糊集合理论得到模糊控制算法。