智能水温控制系统的设计 - 范文中心

智能水温控制系统的设计

12/09

智能水温控制系统的设计

摘要:近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。本文给出了一个基于 AT89C51 单片机控制的水温智能控制系统。重点阐述了系统的硬件构成,各部分的主要作用及系统软件的设计过程。设计方案的核心部件是80C51,通过硬件及软件的合理设计,使系统能满足控制模型中不同阶段的要求。系统的采集模块采用了AD590温度传感器作为测温元件,而控制模块则通过控制可控硅的导通和截止,从而控制加热电压的通与断,使控制具有灵敏、可靠、抗干扰能力强等优点。水温直接由人工设定,并能在环境温度变化时实现自动调整以保持设定的温度基本不变,实测水温用十进制数码管显示输出。

关键词:智能控制;水温控制;数据采集;温度传感器

A Design Of Water Temperature Brainpower

Controlling System

Abstract :The paper main design a brainpower controlling system of water temperature based on MCS-51. It expounds emphatically the hardware structure of the system, the main function, and the process of the system software design. The core of the design is MCS-51. Through reasonable design of hardware and software to make the system meet the demands of different phases of the control model, the collection module of the system uses AD590 as the element of the temperature measurement, and the control module uses the optical shutter. The heating voltage is controlled by optical shutter, the control has the advantages of sensitive and dependable and strong ability of resisting disturbance. The water temperature may be set at some degree by manpower and auto-adjusted as environment is cool, so the water temperature keeps constantly and is displayed in decade.

Key Words :Brainpower controlling, water temperature controlling, date collection, temperature sensor

目 录

摘 要 ............................................ 错误!未定义书签。

绪 论 ............................................................. 3

一、总体设计 ....................................................... 3

1.1 电路实现的功能及特点 ........................................ 3

1.2 原理方框图及说明 ............................................ 4

1.3总体方案论证................................................. 5

二、硬件设计 ............................................................................................................................... 5

2.1电源模块..................................................... 5

2.2主机控制部分论证............................................. 7

2.3温度采集模块论证............................................. 7

2.4后向温度控制模块论证......................................... 8

2.5键盘显示模块论证............................................. 8

三、软件设计 ............................................................................................. 错误!未定义书签。

3.1 主程序设计 .................................................. 9

3.2 温度设定、传送和显示子程序 ................................ 22

3.3 PWM电压输出子程序......................................... 25

3.4 PID计算子程序.............................................. 27

四、设计总结 ............................................................................................................................. 36

参考文献 ...................................................................................................................................... 38

致 谢 . .......................................................................................................... 错误!未定义书签。 附 录 . .......................................................................................................... 错误!未定义书签。

绪 论

随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是今年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个未开发的领域,是与人们息息相关的一个问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景和实际意义。

温度是科学技术中最基本的物理量之一。温度常常是表征对象和过渡状态的重要物理量。各行各业对温度的要求越来越高,可见温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。

本文主要介绍单片机温度控制系统的设计过程,其中涉及系统结构设计、元器件的选取、程序的调试和系统参数的整定。在系统构建时选取了AT89c51芯片作为该控制系统的核心,温度信号由新型的可编程温度传感器(DS18B20)提供。通过软件实现对水温的控制,使用继电器作执行部件。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变, 具有较好的快速性与较小的超调。该系统为一实验系统,要求系统有控制能力,实现对主要可变参数的实时监控。使用软件编程既减少了系统设计的工作量,又提高了系统开发的速度,使用软件还可以提高所设计系统的稳定性,避免了因个人设计经验不足而产生过多的系统缺陷。

一、总体设计

1.1 电路实现的功能及特点

一个水温控制系统,对象为一升净水,加热器为1KW 的电炉。设计拟达到的主要要求:1)水温由人工设定,范围:40—90℃,最小区分度为1℃,并能在环境温度变化时实现自动调整,以保持设定的温度基本不变;2)控制精度:温度控制的静态误差小于1℃;3)用十进制数码显示实际水温;该系统的特点是

采用适当的控制方法,当设定温度突变(由40℃提高到 60℃)时,减小系统的调节时间和超调量。 能在环境温度降低时实现自动调整,以保持设定的温度基本不变。

1.2 原理方框图及说明

采用AT89C51单片机为核心,配合温度传感器,信号处理电路,显示电路,输出控制电路组成,软件选用汇编语言编程。单片机可将温度传感器检测到的水温模拟量转换成数字量,显示于数码管上。原理方框图如图1-1所示

图1-1水温控制原理方框图

1.3总体方案论证

依据课题要求, 提出三种方案

方案一 此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不回热。系统受环境影响大,不能实现复杂的控制算法,不能用数码显示,不能用键盘设定。

方案二 此方案是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精提高。这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且仍不能用数码显示和键盘设定

方案三 此方案采用89C51单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制看法和逻辑控制。可实现数码显示和键盘设定等多种功能,系统电路框图如图2-1所示:

图2-1系统电路框图

方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也较麻烦。而方案三是采用以89C51为控制核心的单片机控制系统,尤其对温度控制,它可达到模拟控制所达不到的控制效果,并且可实现显示、键盘设定等多种功能,又易于扩展,大大提高了系统的智能化,也使得系统所测结果精度大大提高。故选择方案三。

二、硬件设计

2.1电源模块

在本设计中,用于控制和运算的单片机以及数码管显示器都需要在+5V直流

电压下才能工作,运算放大电路需要在±12V 直流电压下工作。因此,这里需要一个能输出+5V和±12V 的直流电压源。电压源的选择也有两个方案。

方案一:直接用干电池供电。此方法不用焊接电路,简单方便,但是由于它提供的4.5V 的电压,电压不够,提供12V 电压时需要8节干电池连接,而且供电不稳定,带负载能力不强。因此,此方案不可取。

方案二:自制一个直流稳压电源。直流稳压电源一般由电源变压器,整流电路,滤波电路和稳压电路四部分组成。其基本原理框图如图2-2:

图2-2 直流稳压电源基本组成原理及电路图

如图2-2所示直流电源的输入为220V 的电网电压,所需直流电压的数值和电网电压的有效值相差较大,因而需要通过电源变压器降压。再通过整流电路将正弦波电压转换为单一方向的脉动电压。为了减小电压的脉动,需通过低通滤波电路滤波,使输出电压平滑。理想情况下是可以将交流分量全部

滤掉,但是因为受负载影响,加之滤波电路并不能达到理想效果。还需要加入稳压电路,使输出直流电压基本不受电网电压波动和负载电阻变化的影响。

2.2主机控制部分论证

方案1:采用8031芯片,其内部没有程序存储器,需要进行外部扩展,这给电路增加了复杂度。

方案2:本方案的CPU 模块采用2051芯片,其内部有2KB 单元的程序存储器,不需外部扩展程序存储器。但由于系统用到较多的I/O口,因此此芯片资源不够用。

方案3:采用AT89C51单片机,其内部有8KB 单元的程序存储器,不需外部扩展程序存储器,而且它的I/O口也足够本次设计的要求。

比较这3种方案,综合考虑单片机的各部分资源,因此此次设计选用方案3。

2.3温度采集模块论证

方案1:采用热敏电阻,可满足35℃--95℃的测量范围,但热敏电阻精度、重复性和可靠性都比较差,对于检测精度小于1℃的温度信号是不适用的。

方案2:采用单总线可编程温度传感器测温度。DS18B20数字可编程温度传感器可测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。在9位分辨率时最多在93.75ms 内把温度转换为数字,12位分辨率时最多在750ms 内把温度值转换为数字,速度更快。测量结果直接输出数字温度信号,以" 一线总线" 串行传送给CPU ,同时可传送CRC 校验码,具有极强的抗干扰纠错能力。但是由于其编写程序过程复杂,价格也较一般传感器昂贵,所以在这里我们并不采用。

方案3:采用温度传感器AD590。:AD590具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-50℃-- +150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V 之间,稳定度为1﹪时,误差只有±0.01℃,其各方面特性都满足此系统的设计要求。此外AD590是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。

经上述比较,方案3明显优于方案1和2选用方案3。

2.4后向温度控制模块论证

方案1:采用电磁式继电器驱动电路控制,它采用较小的电流去控制较大电流,达到一种“自动开关” 在电路中起着自动调节、安全保护、转换电路等作用。电磁式继电器利用在线圈加上一定的电压, 线圈中会流过一定的电流, 产生电磁效应, 衔铁就会在电磁力作用下对触点簧片吸合、释放,从而达到了在电路中的导通、切断的目的. 其优点为抗干扰能力强, 过压过流大, 以及电路的简洁, 简单. 作为工控产品好.

方案2:温控电路要由光电耦合器MOC3041和双向可控硅BTA12组成. 由于可控硅只有导通和关断两种工作状态,所以它具有开关特性。采用脉宽调制输出控制电炉与电源的接通和断开比例,以通断控制调压法控制电炉的输入功率。

但由于采用继电器控制继电器的寿命比不上可控硅, 而且电路过于简单, 不能控制电炉的输入功率. 因此采用方案2.

2.5键盘显示模块论证

方案1:使用液晶显示屏显示水温。液晶显示屏(LED )具有轻薄短小,低耗电量,无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。但是由于只需显示温度这样的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用比较多,而且其成本也比较高。

方案2:采用可编程控制器8279与传统数码管及地址译码器74LS138组成,可编程/显示器件8279实现对按键的扫描、消除抖动、提供LED 的显示信号,

对LED 显示控制。用8279和键盘组成的人机控制平台,能够方便的进行控制单片机的输出。

方案3:采用单片机AT89C51与地址译码器74LS138组成控制和扫描系统,并用74 LS164的译码器接受片机AT89C51通过串行口输出的BCD 串行码经译码输出为BCD 码,这种方案既能很好的控制键盘及显示,又为主单片机大大的减少了程序的复杂性,而且具有体积小,价格便宜的特点。

对比两种方案可知,方案2虽然也能很好的实现电路的要求,但考虑到电路设计的成本和电路整体的性能,我们采用方案3。

三、软件设计

3.1软件设计主要完成以下的几部分任务:

初始化,设定各参数的初始值,设定各中断及定时器。

(1)(2)接收/发射数据此部分程序主要完成数据的控制及显示,其主要通过89C51单片机的全双工串行口完成和键盘部分的双向通信。

(3)温度采集和数值转换子程序,此部分程序主要完成将AD590中传送过来的数据进行各种数值的转换及数值的运算(如十进制转换成十六进制、双字节与单字节的除法运算等等) 。

(4)PID和PWM 子程序,此部分程序主要完成控制电炉加温的作用。 本系统采用的是循环查询方式[4],来显示和控制温度的。

3.1 主程序设计

主程序流程图如图4-1所示

图4-1总流程图

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INT0

ORG 0030H

MAIN: MOV SP,#70H ;

CLR P1.7

MOV R0,#40H

SETB PSW.4

SETB PSW.3

SETB IT0

SETB EA

SETB EX0

MOV TMOD,#20H ;

MOV TH1,#0FDH

MOV TL1,#0FDH

SETB TR1

MOV SCON,#50H

SETB TI

CLR 30H

CLR 01H

SETB P1.7

CLR P1.6

CLR P1.5

MOV DPTR,#0BFFFH

MOV A,#00H

MOV 2EH,#0

MOV 2DH,#0 置初值 波特率9600

MOV 2CH,#0

MOV 2BH,#0

MOV 2AH,#0

MOV 29H,#0

MOV 62H,#0

LOOP: MOV DPTR,#0BFFFH

MOVX @DPTR,A ;启动A/D转换

CLR 00H

WAIT: LCALL XUAN

CHAXUN:JNB P1.3,LOOP1 ;调整

JNB P1.4,LOOP2

JNB 00H,GG ;判断是否再启动

LJMP LOOP

GG: LJMP WAIT

;===========上限温度调整===========

LOOP1: CLR EX0

LCALL DELAY1

JNB P1.3,$

MOV 62H,2EH

MOV 61H,2DH

MOV 60H,2CH

JB P1.2,M2

MOV A,2EH

ADD A,#01

DA A

MOV 2EH,A

CJNE A,#10H,M1

MOV 2EH,#00

M1: JNB P1.2,$

M2: JB P1.1,M4

MOV A,2DH

ADD A,#01H

DA A

MOV 2DH,A

CJNE A,#10H,M3

MOV 2DH,#00

M3: JNB P1.1,$

M4: JB P1.0,M5

MOV A,2CH

ADD A,#01

DA A

MOV 2CH,A

CJNE A,#10H,M5

MOV 2CH,#00

M5: JNB P1.0,$

SETB 30H ;是否显示第一位的标志位 MOV 63H,#11H ;显示“上”

MOV 62H,2EH

MOV 61H,2DH

MOV 60H,2CH

LCALL DELAY

JNB P1.3,TUI ;再次中断时,退出

LJMP LOOP1

;==========下限温度调整===========

LOOP2: CLR EX0

JNB P1.3,$

MOV 62H,2BH

MOV 61H,2AH

JB P1.2,L2

MOV A,2BH

ADD A,#01

DA A

MOV 2BH,A

CJNE A,#10H,L1

MOV 2BH,#00

L1: JNB P1.2,$

L2: JB P1.1,L4

MOV A,2AH

ADD A,#01H

DA A

MOV 2AH,A

CJNE A,#10H,L3

MOV 2AH,#00

L3: JNB P1.1,$

L4: JB P1.0,L5

MOV A,29H

ADD A,#01

DA A

MOV 29H,A

CJNE A,#10H,L5

MOV 29H,#00

L5: JNB P1.0,$

SETB 30H ;

MOV 63H,#0FH ;

MOV 62H,2BH

MOV 61H,2AH 是否显示第一位的标示位 显示“下”

LCALL DELAY

JNB P1.4,TUI ;再次中断时,退出

LJMP LOOP2

TUI: MOV A,2BH

CLR C

CJNE A,2EH,AA ;比较上限是否低于下限 MOV A,2AH

CJNE A,2DH,AA

MOV A,29H

CJNE A,2CH,AA

LJMP XXX ;正常

AA: JNC ERRO ;上限低于下限,跳转 XXX: SETB EX0

MOV A,@R0

LCALL XUAN

LJMP WAIT

ERROR: MOV 63H,#0EH ;显示“ERROR “

MOV 62H,#15H

MOV 61H,#15H

MOV 60H,#0H

SETB 30H

SETB 01H

EEEE: LCALL DELAY

JNB P1.3,XX1 ;是否重新调整

JNB P1.4,XX2

LJMP EEEE

XX1: LJMP LOOP1

XX2: LJMP LOOP2

;==========显示数据转换=========

Xian: MOV A,@R0

MOV B,#100

MUL AB

MOV R3,A

MOV A,B

MOV B,#10

DIV AB

MOV R1,#62H

MOV @R1,A

DEC R1

MOV @R1,B

MOV A,R3

MOV B,#10

MUL AB

DEC R1

MOV @R1,B

CLR 30H

ACALL DELAY

MOV A,2EH

CJNE A,62H,E1

MOV A,2DH

CJNE A,61H,E1

MOV A,2CH

CJNE A,60H,E1

LJMP E2

E1: JC SHANG_BAO

LJMP E2

;======超上限温度======

SHANG_BAO:

SETB P1.7

SETB P1.6

CLR P1.5

LJMP X2

E2: CLR P1.5

CLR P1.6

CLR P1.7

X1: MOV A,2BH

CJNE A,62H,E3

MOV A,2AH

CJNE A,61H,E3

MOV A,29H

CJNE A,60H,E3

LJMP E4

E3: JNC XIA_BAO

LJMP E4

;======低于下限温度======

XIA_BAO:SETB P1.7

SETB P1.5

CLR P1.6

LJMP X2

E4: CLR P1.5

CLR P1.6

CLR P1.7

X2: CLR 30H

ACALL DELAY

;========串口通信=========

MOV R3,#30H ;转ASCII 码

MOV A,62H

ADD A,R3

DA A

MLP3: JBC TI,MLP2 ;当TI 为1时清0

SJMP MLP3

MLP2: MOV SBUF,A

MOV A,61H

ADD A,R3

DA A

MLP5: JBC TI,MLP4

SJMP MLP5

MLP4: MOV SBUF,A

MOV A,#46 ;小数点

MLP8: JBC TI,MLP9

SJMP MLP8

MLP9: MOV SBUF,A

MOV A,60H

ADD A,R3

DA A

MLP7: JBC TI,MLP6

SJMP MLP7

MLP6: MOV SBUF,A

MOV A,#32

MLP10: JBC TI,MLP11

SJMP MLP10

MLP11: MOV SBUF,A

RET

;==========延时加显示=========

D00: ACALL DISPLAY

DJNZ R3,D00

RET

DISPLAY:JNB 30H,DD

MOV 30H,#40

MOV DPTR,#TAB0

MOV A,63H

MOVC A,@A+DPTR

MOV DPTR,#0F8FFH

D0: MOVX @DPTR,A

DJNZ 30H,D0 ;千位

DD: MOV 30H,#40

MOV DPTR,#TAB0

MOV A,62H

MOVC A,@A+DPTR

MOV DPTR,#0F9FFH

D1: MOVX @DPTR,A

DJNZ 30H,D1 ;百位

MOV 30H,#40

MOV DPTR,#TAB0

MOV A,61H

MOVC A,@A+DPTR

JB 01H,TT

ADD A,#80H

TT: MOV DPTR,#0FAFFH

D2: MOVX @DPTR,A

DJNZ 30H,D2 ;十位

MOV DPTR,#TAB0

MOV A,60H

MOVC A,@A+DPTR

MOV DPTR,#0FBFFH

D3: MOVX @DPTR,A

DJNZ 30H,D3 ;个位

RET

TAB0:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,

; 0 1 2 3 4 5 6 7

7FH,6FH,77H,7CH,39H,5EH,79H,71H

; 8 9 A B C D E F

DB 76H,78H,38H,6EH,00H ,77H,

; H K L Y 无 R

DELAY12: MOV R4,00H

MOV R5,00H

X3: DJNZ R4,$

DJNZ R5,X3

RET

;-------中断0服务程序-------

INT0: PUSH A

PUSH PSW

MOV DPTR,#0BFFFH

MOVX A,@DPTR ;读A/D转换结果

MOV 2FH,#0FFH

CLR CY ;程序调整高低位

RLC A

JC N1

CLR 78H

N1: RLC A JC N2 CLR 79H N2: RLC A JC N3 CLR 7AH N3: RLC A JC N4 CLR 7BH N4: RLC A JC N5 CLR 7CH N5: RLC A JC N6 CLR 7DH N6: RLC A JC N7 CLR 7EH N7: RLC A JC N8 CLR 7FH N8: MOV A,2FH MOV @R0,A SETB 00H POP PSW POP A RETI

;=======延时=======

DELAY1: MOV R6,#60 DE1: MOV R7,#248 MOV R7,$ DJNZ R6,DE1 RET END

; 显示区地址分别为63H ,62H ,61H ,60H ; 上限温度地址分别为2EH ,2DH ,2CH ; 下限温度地址分别为2BH ,2AH ,29H ; 用到的位地址有00H ,01H ,30H 3.2 温度设定、传送和显示子程序 编程序,实现温度设定、传送和显示

图4-2 温度设定程序流程图

具体程序编写如下 SW0: MOV R6 #00H JNB P1.6 XH JNB P1.7 QH XH: MOV R7 #07 MOV DPTR #TAB MOV A #00H XH1: MOVC A A+DPTR RL A MOV P3.0 C DJNZ R7 HX1 INC DPTR AJMP SW1 QH: MOV A #00H CJNE R6 #00H QH1 CLR P2.7 CLR P2.6 ADD A #01H MOV R6 A AJMP XH

QH1: CJNE R6 #01H QH2 SETB P2.7 CLR P2.6 ADD A #01H MOV R6 A AJMP XH

QH2: CJNE R6 #02H QH3 CLR P2.7 SETB P2.6

ADD A #01H MOV R6 A AJMP XH

QH3: CJNE R6 #03H SW0 SETB P2.7 SETB P2.6 AJMP SW0

TAB :C0 0F9 0A4 0B0 99 92 80 0F8 80 98

3.3 PWM电压输出子程序

编写程序实现PWM 电压自动可调宽度脉冲波输出。

图4-3 自动可调宽度脉冲波输出流程图

POUT EQU P1.0 OUTBIT EQU 7FH ORG 0000H AJMP MAIN ORG 000BH AJMP CTC_INT ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H

SETB E

SETB ET0

WAIT:SJMP WAIT CTC_INT:PUSH ACC PUSH PSW

CLR TR0 JNB OUTBIT,OUT0 SETB POUT CLR C MOV A,#0FFH MOV A,#0FFH

SETB TR0 MOV TL0,A MOV A,#0FFH SUBB A,#0FH

MOV TH0,A CLR OUTBIT SJMP CTC_OUT OUT0: CLR POUT CLR C MOV A,#0FFH SUBB A,#0FFH MOV TL0,A MOV A,#0FFH SUBB A,#1F SUBB A,0FFH

MOV TH0,A MOV A,TL0

ADD A,#0FFH

MOV TL0,A MOV A,TH0 ADDC A,#0FH MOV TH0,A

SETB OUTBIT

CTC_OUT: SETB TR POP PSW0 POP ACC RETI

3.4 PID计算子程序

PID 调节规律的基本输入输出关系可用微分方程表示为:

u (t ) =K ⎡1t

de (t ) ⎤

P ⎢e (t ) +⎣T I ⎰e (t ) dt +T D ⎥ 0dt ⎦

式中e (t ) 为调节器的输入误差信号,且

e (t ) =r (t ) -C (t ) 4-1)

4-2) ((

其中:r (t ) 为给定值,C (t ) 为被控变量; u (t ) 为调节器的输出控制信号; K P 为比例系数;

T I 为积分时间常数; T D 微分时间常数。

计算机只能处理数字信号,若采样周期为T 第n 次采样的输入误差为e n ,且e n =r (n ) =C (n ) ,输出为u (n ) ,PID 算法用的微分分⎰e (t ) dt 由∑e K T 代替,于是得到

0t

e -e n -1de

由差分n 代替,积

T dt

⎡1

u n =K P ⎢e n +

T I ⎣

写成递推形式为

△u n =u n -u n -1

∑T +T D

i =0

n

e n -e n -1⎤

⎥T ⎦

(4-3)

n -1

⎡⎤T T n

=K ⎢(e n -e n -1) +(∑e i -∑e i ) +D (e n -2e n -1+e n -2) ⎥

T I i =0T i =0⎦P ⎣

⎡⎤T T

=K P ⎢(e n -e n -1) +e n +D (e n -2e n -1+e n -2) ⎥

T I T ⎣⎦

=K P (e n -e n -1) +K P

T T

e n +K P D (e n -2e n -1+e n -2) T I T

=K P (e n -e n -1) +K I e n +K D (e n -2e n -1+e n -2)

=P P +P I +P D (4-4)

其中:P P =K P (e n -e n -1) (4-5)

P I =K P

T

e n =K I e n (4-6) T I

P D =K P

T D

(e n -2e n -1+e n -2) =K D (e n -2e n -1+e n -2) (4-7) T

显然,PID 计算△u n 只需要保留现时刻e n 以及以前的两个偏差量e n -1和e n -2。初始化程序初值e n -1=e n -2=0通过采样并根据参数K P 、K D 、K I 以及e n 、e n -1和

e n -2计算△u n 。

根据输出控制增量△u n ,可求出本次控制输出为

u

u n =u n -1+△n =u n -1+P P +P I +P D (4-8) 由于电阻炉一般是属于一阶对象和滞后的一阶对象,所以式中K P 、K D 、K I

的选择取决于电阻炉的阶跃响应曲线和实际经验,工程上已经积累了不少行之的参数整定方法。本设计采用Ziegler-Nichols 提出的 PID归一调整法,调整参数,主要是为了减少在线整定参数的数目,常常人为假定约束条件[5],以减少独立变量的个数,令:

T =0. 1T U

T I =0. 5T U

T D =0. 12T 5U

式中

T U

称为临界周期[6]。在单纯比例作用下(比例增益由小到大),是系统

K U

产生等幅振荡的比例增益,这时的工作周期为临界周期

T U [7]

,则可以得到

△u n =K P [(e n -e n -1) +0. 2e n +1. 25(e n -2e n -1+e n -2) ]

=K P (e n -e n -1) +0. 2K P e n +1. 25K P (e n -2e n -1+e n -2)

=K P (e n -e n -1) +K I e n +K D (e n -2e n -1+e n -2) (4-9) 式中K I =0.2K P ,K D =1.25K P [8] 从而可以调节的参数只有一个。可设计一个调整子程序,通过键盘输入改变K P 值,改变运行参数,使系统满足要求。 下面对PID 运算加以说明:

1、所有的数都变成定点纯小数进行处理。

2、算式中的各项有正有负,以最高位作为符号位,最高位为0表示为正数,为1表示负数。正负数都是补码表示,最后的计算以原码输出。

3、双精度运算,为了保证运算精度,把单字节8位输入采样值C n 和给定值r n 都变成双字节16位进行计算,最后将运算结果取成高8位有效值输出。

4、输出控制量u n 的限幅处理。为了便于实现对晶闸管的通断处理,PID 的输出现在在0~250之间。大于250或小于0的控制量u n 都是没有意义的,因在算法上对u n 进行限幅,即 5、

⎧u min ⎪

u n =⎨u n

⎪u ⎩max

u n ≤u min

u min

[8][9]

PID 的计算公式采用位置式算法,计算公式为

u n =u n -1+K P (e n -e n -1) +K I e n +K D (e n -2e n -1+e n -2)

=u n -1+P P +P I +P D (4-11)

图4-4 PID计算程序的流程图

参照流程图4-4编写程序,程序如下:

MOV

R5,

31H

MOV

MOV

MOV R4, 32H R3, 2AH R2, #00H

CPL1

DSUM

39H , R7 LACALL LCALL MOV

MOV 3AH ,

MOV R5,

MOV R4,

MOV R0,

LCALL MULT1

MOV R5,

MOV R4,

MOV R3,

MOV R2,

LCALL DSUM

MOV R5,

MOV R4,

MOV R0,

LCALL MULT1

MOV R5,

MOV R4,

MOV R3,

MOV R2,

LCALL DSUM

MOV 4AH ,

MOV 4BH

MOV R5,

MOV R4, R6 35H 36H #4AH 39H 3AH 3BH 3CH 33H 34H #46H 49H 48H 4DH 4CH R7 R6 39H 3AH

MOV R3,

MOV R2,

LCALL DSUM

MOV A ,

MOV R5,

MOV A ,

MOV R4,

MOV R3,

MOV R2,

LCALL DSUM

MOV A ,

MOV R5,

MOV A ,

MOV R4,

MOV R3,

MOV R2,

LCALL DSUM

MOV R5,

MOV R4,

MOV R0,

LCALL MULT1

MOV R5,

MOV R4,

MOV R3,

MOV R2,

LCALL DSUM

MOV A ,

MOV R3,

MOV A , 3DH 3EH R7 A R6 A 3BH 3CH R7 A R6 A 3BH 3CH 37H 38H #46H 49H 48H 4AH 4BH R7 A R6

MOV R2, A

MOV R5, 2FH

MOV R4, 30H

LCALL DSUM

MOV 2FH , R7

MOV 30H , R6

MOV 3DH , 3BH

MOV 3EH , 3CH

MOV 3BH , 39H

MOV 3CH , 3AH

MOV A , 2FH

JNB ACC.7 CONt1

MOV 45H, #00H

RET

CONt1: MOV A, 30H

RLC A

MOV A, 2FH

RLC A

MOV R2, A

SUBB A, #OFAH

JNC CONt2

MOV 45H, R2

RET

CONt2: MOV 45H, #0FAH

RET

负数双字节-(R3R2)求补,结果仍存放于R3R2中,其子程序如下:

CPL1: MOV A, R2

CPL A

ADD A , #01H

MOV R2, A

MOV A , R3

CPL A

ADDC A , #00H

MOV R3, A

RET

双字节加法(R5R4)+(R3R2)→(R7R6)。其子程序如下:

DSUM : MOV A , R4

ADD A , R2

MOV R6, A

MOV A , R5

ADDC A , R3

MOV R7, A

RET

双字节无符号乘法子程序:

入口(R7R6)=被乘数;

(R5R4)=乘数。

出口(R0)=乘积的4字节地址指针。

工作寄存器 R3,R2。

竖式乘法过程表示为:

R7 R6

⨯) R5 R4

H64 L64←R6⨯R4

H74 L74←R7⨯R4

H74 L74←R5⨯R6

+) H75 L75

(R0+3) (R0+2) (R0+1) RO←乘积存储单元

MULT : MOV A , R6

MOV

MUL

MOV

MOV

MOV

MOV

MUL

ADD

MOV

MOV

ADDC

MOV

MOV

MOV

MUL

ADD A,

INC

MOV

CLR

MOV A,

ADDC A,

MOV R2,

JNC LAST

SETB F0

LAST: MOV A,

MOV

MUL AB

ADD A,

INC RO B , R4 AB @RO, A R3, B A, R4 B , R7 AB A, R3 R3, A A, B A, #00H R2, A A, R6 B, R5 AB R3 R0 @RO, A F0 R2 B A R7 B, R5 R2

MOV @RO, A

MOV A, B

ADDC A, #00H

INC R0

MOV @R0, A

RET

双字节带符号数乘法子程序:

带符号数用补码表示, 最高位1表示负数, 为0表示正数.

入口(R7R6)=被乘数;

(R5R4)=乘数;

SIGN1标号位地址5CH ;

SIGN2标号位地址5DH 。

出口(R0)=乘积的4字节地址指针

四、设计总结

该系统主要根据目前节省能源的发展趋势和国内实际的应用特点和要求,采用了自动化的结构形式,实现对水温的自动检测和控制。

系统以单片机AT89C51为核心部件,单片机系统完成对水温信号的采集、处理、显示等功能; 用Protel 软件绘制电路原理图和PCB 电路印刷板图,可以在电路板厂制作控制主板; 利用MCS-51汇编语言编制, 运行程序该系统的主要特是:

1) 适用性强,用户只需对界面参数进行设置并启动系统正常运行便可满足不同用户水温的要求,实现对水温的实时监控。避免了电力力资源的浪费,节省了能源。

2) 将单片机以及温度传感器引入对水温的分析和处理中,单片机控制决策无需建立被控对象的数学模型,系统的鲁棒性强,适合对非线性、时变、滞后系统的控制,对水温控制系统采用单片机控制非常适合。

3) 系统成本低廉,操作非常简单,可扩展性强,只要稍加改变,即可增加其他使用功能。 本系统对现代化的发展具有十分重要的意义:

首先,节省了能源,特别是最近几年,我国东部沿海地区电力资源缺口十分巨大,可以缓解部分电力资源压力。

其次,由于我过大部分电力资源是火力发电,因而从一定程度上节省了自然资源,以及保护了环境。

宝鸡文理学院2014毕业论文

参考文献

[1] 华成英 童诗白 >高等教育出版社,2006.1

[2] >北京理工大学出版社:2004.8

[4] 徐建军 >人民邮电出社,2002.6

[6] 陈可中 >清华大学出版社,2003.1

[7] 陶永华 >上海机械工业出版社,1998

[8] 张福学 >北京电子工业出版社,1991

[9] 何立民 >北京航空航天大学出版社,1991

[10] 吴金 >清华大学出版社,2002.9

[11] 高光天 >北京科学出版让,2001

[12] 蔡惟铮 >哈尔滨工业大学出版社,1998

[13] 赵茂泰 >北京电子工业出版社,2004

[14] 丁元杰 >上海机械工业出版社,1999

[15] 李广第 《单片机原理及应用》北京航天航空大学出版社 2008.2

[16] 潘新民 《微型计算机控制技术>> 电子工业出版社 2008.5

[17] 梅丽凤 《C 语言程序设计案例教程》 西安电子科技大学出版社 2004.6

[18] 谭浩强 《C 程序设计》 清华大学出版社 2000.1

[19] 江思敏 陈明>(第二版). 清华大学出版社.

[20]何小艇.>(第三版)[M].浙江:浙江大学出版社,2004:

[24] 吴金戎.>.北京:清华大学出版社,2001:126-134

[25] 赵晶.>.人民邮电出版社.2000:201-218

[26] 胡汉才.>. 北京:清华大学出版社,1996:106-142

宝鸡文理学院2014毕业论文


相关内容

  • 皇威足浴盆推荐
    足浴,一种绿色的保健方法, 在我国已有三千多年历史.民谣有云:"春天洗脚,升阳固脱:夏天洗脚,暑湿可祛:秋天洗脚,肺润肠濡:冬天洗脚,丹田温灼".<黄帝内经>中的经络学说认为:足部分布着人体六十六个穴位,拥有 ...
  • 综合电子设计题目
    题目一: 题目一:多功能计数器设计 一.任务 设计并制作一台测量正弦信号的频率.周期和相位差的多功能计数器. 二.要求 1.频率测量 a.测量范围:1Hz-10MHz:信号幅度范围:0.5Vrms-5Vrms. -6 b.测量误差≤10 . ...
  • 模糊控制设计论文
    本科生毕业论文(设计)册 学院 职业技术学院 专业 应用电子技术教育 班级 2011届 学生 孙名卉 指导教师 邸敏艳 河北师范大学本科毕业论文(设计)任务书 编 号:职业技术学院2011届2011162 论文(设计)题目: 模糊控制洗衣机 ...
  • 小型饮水机设计说明书
    饮水机结构设计 姓名: 学号:专业: 学院:完成日期:说明书[1**********]设计11-2班 目录 一.饮水机设计背景以及意义------------------------------- 二.工作原理--------------- ...
  • 空气源热泵方案
    业务联系人:韩京伟 [1**********] 中央空调工程 [空气源热泵设计方案书] 山东世纪昌龙新能源有限公司 Shandong Shiji Changlong New Energy Co.,Ltd., 2015-4-14 目 录 01 ...
  • 智能连栋温室方案
    智能连栋温室方案 连栋温室优点:20世纪90年代以来,轻钢结构应用于现代化连栋温室建设,已成为现代化连栋温室设计的新潮流.目前,在我国现代化连栋温室设计中,通常应用矩形管.方管等型材焊接温室梁.柱.檩条.桁架等.顶部和四周通常采用PC板(碳 ...
  • 商业综合体设计说明
    商业综合体设计说明书 一.规划背景 1.项目概况 该商业综合体项目地处蜜蜂张办事处辖区,位于中原东路以南.京沙快速以西. 康复后街以北.康复中街以东区域.地铁1号线.京沙快速路.火车站西广场出口交 通便利,环境优越. 设计采用"新 ...
  • 地暖设计管径确定-secret
    地暖设计管径确定 1.地暖盘管管径的确定 3.1.1一般说来,地暖盘管管径不需要计算,在大多数民用建筑中,用De20(DN15)的管径就可以满足要求.查<地面辐射供暖技术规程>附录A "单位地面面积的散热量和向下传热损 ...
  • 膨胀水箱容积计算及安装
    暖通空调HV&AC 2004年第34卷第2期 专题研讨・13・ 膨胀水箱容积计算与安装接管问题 哈尔滨工业大学 邹平华☆ 孙宗宇 李祥立 摘要 分析了常用计算公式存在的问题,给出了膨胀水箱容积计算公式.分析了水箱最低 安装高度与系统 ...