基于PID的多路温度控制系统设计.docx
- 文档编号:23719392
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:58
- 大小:933.51KB
基于PID的多路温度控制系统设计.docx
《基于PID的多路温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于PID的多路温度控制系统设计.docx(58页珍藏版)》请在冰豆网上搜索。
基于PID的多路温度控制系统设计
基于PID的单片机温度控制系统
摘要:
本设计主要任务是完成电阻炉的温度测控,利用C8051单片机套件模块作为核心器件配以适当的外围电路实现温度调节,实施温度监控。
这个系统分为硬件和软件两大部分,其中硬件部分包括温度检测.转换部分的K型镍铬-镍铝热电偶,变送器,控制部分的C8051F060单片机套件模块,以及执行部分的固态继电器等。
软件部分主要包括主程序,T0中断程序以及嵌套在T0中断程序中的几个程序等几个部分。
该系统主要采用软件来实现对温度的控制。
本设计中,采用PID控制来实现对温度的控制。
当温度发生变化进而产生一个偏差量时,通过PID算法从单片机口上输出一个脉冲,偏差量的大小不同其输出脉冲的宽度也相应的改变,从而改变了固态继电器的接通时间,最终改变加热丝功率,以达到调节温度的目的。
我们将热电偶、输入输出通道、单片机模块等环节构成一个温度单回路数字闭环控制系统。
利用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。
关键词:
单片机;温度控制;PID;硬件系统;软件系统
DesignOfSCM’sTemperatureControlSystemBased
OnPID
Abstract:
Designofthemaintasksistocompletetheresistancefurnacetemperaturemonitoring,BoardsusingC8051MCUmoduleasacoredevicetemperatureregulation,theimplementationoftemperaturecontrol.Thesystemisdividedintotwoparts-hardwareandsoftware.Whichalsoincludeshardwaredetectionofnickelchromium/nickelandaluminumtwothermocoupletransmitter,controlpartC8051F060Boardsmodule,operativeandothersolid-staterelay.SomemajorsoftwarealsoincludesmainprogramandproceduresT0interruptedseveralparts.Thissystemmainlyusesoftwarecontroltemperature.IusePIDcontrolthetemperatureinthisdesign.Whenthetemperaturechangesresultinadeviationof,throughthePIDalgorithmtochangeitsoutputpulsewidth,thuschangingthesolidstaterelayson-timeandeventuallychangetheheatingwirepower,toachievethepurposeofregulatingtemperature.
Wewillthermocouple,theinputandoutputchannels;theMCUmodulelinksconstituteasingleloopdigitaltemperatureclosed-loopcontrolsystem.SCMrighttocontrolthetemperature,controlisnotonlyconvenient,simpleconfigurationflexibilityandtheadvantagesoflarge,butcansubstantiallyincreasethetemperaturewaschargedwiththetechnicalindicators,whichcangreatlyenhancethequalityandquantity.
Keywords:
MCU;PID;temperaturecontrol;systemhardware;systemsoftware
绪论
问题的提出
在工业生产中,温度、压力,流量和液位是四种最常见的过程变量。
其中温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。
温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。
尽管温度控制很重要,但是要控制好温度常常会遇到意想不到的困难。
研究的现状
随着电子技术的飞速发展,工业生产和日常生活中的智能设备日益增多,现代电子产品几乎透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快,对设计开发提出了更高的要求。
对于温度控制系统,较为传统的是实验室人员根据材料的烧成制度来调节电炉的输出电压以实现对电炉的温度控制。
一般的有两种方法:
第一种就是手动调压法,第二种控制方法在主回路中采取双向可控硅装置,并结合一些简单的仪表,使得保温阶段能够自动,但这两种方法的升温过程都是依赖于试验者的调节,并不能精确的按照给定的升降温速度来调节。
而采用以参数自整定PID控制为基础的温控系统具有自动检测、数据实时采集、处理及控制结果显示等功能,简单、可靠,具有真正的智能化和灵活性,大大提高了控制质量及自动化水平,具有良好的经济效益,对提高电炉温度的控制精度具有较好的意义。
在单片机领域,C51系列单片微机具有很强的功能,处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高,特别是其集成了A/D与D/A转换器,无须外加,使用范围广,既可构成功能很强的复杂系统,也可组成较简单的应用系统。
利用单片机通过PID的控制对电阻炉的温度控制进行改造后的系统具有控温精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。
研究的主要内容、目标与方法
主要内容:
该设计利用单片机来控制炉温,使其达到预期值温度,需要多次采样炉温值,利用PID算法来对固态继电器进行通断控制,加热电阻丝,使其温度与预期值相当。
设计结果应是实际值与设定值误差甚少,结果良好。
温度控制范围:
室温—500oC;控制精度为±1ºC。
目标与方法:
本设计采用经典算法PID控制,通过单片机来实现预期的设计需求,通过采样,A/D转换,滤波等一系列步骤,与设定值进行比较运用PID来是系统达到设定值的范围内,PID计算值来控制可控硅的导通时间,对电阻丝进行加热处理,使系统稳定工作。
第一章电阻炉温度控制系统总体设计
温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。
对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,控制方案也有所不同。
例如冶金、机械、食品、化工等各类工业生产中广泛使用的各种加热炉、热处理炉、反应炉等;燃料有煤气、天然气、油、电等。
本设计的控制对象为一箱型电阻炉,输入为加在电阻丝两断的电压,输出为电加热炉内的温度。
控温范围:
室温~500℃,控制精度:
±1℃。
系统是一个由C8051F060单片机控制的电阻炉温度闭环控制系统。
其目的在于对电阻炉的温度进行精确控制,从而得到需要的温度。
为了达到较为理想的结果,本设计采用的设计思路是:
首先利用热电偶对电阻炉的温度进行采集,通过数字滤波,并将此检测值与给定值比较,然后将其差值进行PID控制运算,其控制输出量通过C51引脚和放大电路,使其输入的高电平(固态继电器的接通时间是通过触发脉冲加以控制的)直接去控制可控硅接通时间来对电阻炉进行控制,以达到接近设定温度值。
温度控制系统组成框图如下
图1-1系统图
上图是整个系统设计的一个大致框图,其包括了整个设计思路。
第二章系统硬件设计
2.1C8051F060单片机简介
2.1.1C8051F060单片机的基本特点
图2-1C8051F060原理图
(1)内核采用流水线结构,速度可达25MIPS(25MHZ晶振),比普通的51单片机快10倍;其指令与标准系列51单片机兼容。
因而掌握开发过程非常容易;该芯片的JTAG调试方式支持在系统、全速、非插入调试和编程,且不占用片内资源。
(2)片上集成有64KBFlash、4352B内部RAM(256+4KB,可外扩至64KB)、59个I/O口、2通道16位1MSPS的可编程增益ADC、8通道10位200KSPS可编程增益ADC、2路12位DAC、3路模拟比较器、内部电压基准以及片内电源监视、降压检测和看门狗等功能。
由于C8051F060的高集成度,因而无需外扩ROM、RAM、AD、DA、WATCHDOG(看门狗定时器)、可编程I/O口和EEPROM(用片内FLASH实现),从而大大简化了硬件电路,并为构成以C8051F060为核心的单片机系统创造了条件,同时也提高了系统的可靠性。
(3)片内集成有2个UART、1个SM(兼容I2C)和1个SPI
(4)可编程的16位计数器阵列PAC有6个捕捉/比较模块和5个通用16位计数器/定时器,这一为要求定时器/计数器具有较多的测控节点提供了方便。
(5)C8051F060能满足绝大多数工业测控节点的要求,能够形成以C8051F060为核心的单片机系统,如果配以外围测量单元,还可形成完整的测控节点。
2.1.2存储器结构
图2-1是C8051F060单片机的存储器结构图。
显然,该单片机采用了标准8051的程序和数据存储器独立编址的结构,程序存储器为64KB的Flash结构,外加128字节Flash;数据RAM除包含标准51单片机256字节,还有4KB片上XRAM和可外扩64KB数据存储器的接口。
图2-2存储器结构图
(1)数据存储器
数据存储器分为内部存储器和外部存储器。
内部RAM包含256字节,其高端128字节为双映射结构,即间接寻址访问128字节通用RAM,直接寻址访问128字节的特殊功能寄存器SFR地址空间,这个空间又分为256个SFR页,由特殊功能寄存器SFRPAGE来切换。
这样,单片机就有足够的SFR来设定和配制各种接口资源,并为以后扩展预留了足够的空间,低端的128字节RAM可通过直接或间接寻址来访问,这和8051单片机的RAM完全一样。
其中前32个字节是4个通用工作寄存器区,接下来的16字节可以按字节寻址,也可以按位寻址。
C8051F060单片机还有一个4KB的片内XRAM,其寻址范围以4KB为边界覆盖整个64KB的外部数据存储器地址空间。
另外,该单片机还有一个外部存储器接口EMIF,用于访问片外数据存储器。
外部数据存储器寻址范围可以只映射为片内存储器、片外存储器或二者的组合,即4KB以内指向片内,4KB以上指向外部存储器接口EMIF,该EMIF可以配置为复用和非复用地址线/数据线两种方式。
编程步骤是:
①EMIF端口的选择和配置;②确定地址形成非复用/复用和地址/数据复用方式;③存储器方式为片内方式,不带地址选择的分片方式,有地址选择的分片方式,片外工作方式;④确定接口定时参数。
(2)程序存储器
C8051F060单片机的程序存储器为64KB的Flash存储器,它能以512字节为扇区实现在系统编程,无需提供片外专用编程电压,其中从0xFC00~0xFFFF的1024字节为保留区。
另外,从0x10000~0x1007F的128字节Flash存储器,可以作为非易失存储器,由软件来访问,它最适合用于存放系统参数等。
64KB的Flash存储器区除了可以存放程序代码外,也可以用来存放非易失数据。
既可以在开发系统中,通过JTAG接口编程,也可以用MOV指令来实现软件编程。
注意,在对Flash存储器操作时,读操作用MOVC指令,写操作用MOVX指令,若用MOVX读操作时,只能读到XRAM区。
另外,要特别搞清楚程序存储读/写控制寄存器PSCTL和Flash存储器控制寄存器FLSCL的各个位的确切含义。
图2-3C8051F060外观图
图2-4C8051F060接线图
2.1.3模数/数模转换器
C8051F060系列内部都有一个ADC子系统,由逐次逼近型ADC、多通道模拟输入选择器和可编程增益放大器组成。
ADC工作在100ksps的最大采样速率时可提供真正的8位、10位或12位精度.除了12位的ADC子系统ADC0之外,C8051F系列还有一个8位ADC子系统,即ADC1,它有一个8通道输入多路选择器和可编程增益放大器。
该ADC工作在500ksps的最大采样速率时可提供真正的8位精度。
ADC1的可编程增益放大器的增益可以设置为0.5、1、2或4。
ADC1也有灵活的转换控制机制,允许用软件命令、定时器溢出或外部信号输入启动ADC1转换;用软件可以使ADC1与ADC0同步转换。
C8051F060系列内有两路12位DAC,2个电压比较器。
CPU通过SFRS控制数模转换和比较器。
CPU可以将任何一个DAC置于低功耗关断方式。
DAC为电压输出模式,与ADC共用参考电平。
允许用软件命令和定时器2、定时器3及定时器4的溢出信号更新DAC输出。
(1)多路模拟开关切换电路
因为C8051F060只有2路高速A/D转换器,而实际上有4路模拟量需要采集,故需要一个多路模拟切换开关。
NLAS4684是两路单刀双执CMOS模拟切换开关,具有很低的导通电阻。
当ADO_CON、ADl–CON为高电平时,运放的输出OUT2进入ADO进行A/D转换,运放的输出OUT4进入ADl进行A/D转换;当ADO_CON、ADl–CON为低电平时,运放的输出OUTl进入ADO进行A/D转换,运放的输出OUT3进入AD1进行A/D转换,如图所示。
图2-5多路模拟开关切换电路
(2)模拟运算放大电路
LM134、R1、R2、D1构成恒流源电路,对桥式电路传感器提供恒流源。
桥式电路传感器输出信号INl+、INl一经INA326EA放大后送入多路模拟切换开关,然后由C805lF060的A/D电路进行A/D转换。
INA326EA是一款单电压供电、高性能、低功耗、满幅度输入输出的仪表运算放大器。
运算放大器电路放大倍数G=2K1/R3。
总共有4路模拟运算放大电路。
图6为其中一路模拟运算放大电路。
图2-6模拟运算放大电路
2.1.4定时器/计数器
CIP-51有3个与标准8051MCU兼容的16位计数器/定时器,它们可用来测量时间间隔,对外部事件计数和产生周期性的中断请求。
定时器0和1几乎完全相同,并且有4种工作方式。
定时器2提供定时器1和0没有的附加功能例如捕捉和产生波特率。
表2-1定时/计数器表
当作为定时器时计数器/定时,器寄存器在每一个定时时钟脉冲下都加1.时钟脉冲为系统时钟被1或12除。
由CKCON中的定时器时钟选择位T2M-T0M指定。
定时时钟脉冲为12个系统钟周期选项提供了与标准8051系列的兼容性。
如果需要更快的定时器可以使用1个时钟选项。
当作为计数器时计数器/定时器寄存器在选择的输入引脚P04/T0,P05/T1,P06/T2每1次从高到低跳变都加1对事件计数的最大频率为系统时钟频率的1/4输入信号不必是阶段性的但是它应该被保持在给定的电平至少2个完整的系统时钟周期来确保该电偏高取样。
定时器0和定时器1通过SFR进行访问和控制,每个计数器/定时器都是16位寄存器。
在被访问时以两个字节的形式出现:
一个低字节TL0或TL1和一个高字节TH0或TH1。
计数器/定时器控制寄存器TCON用来使能定时器0和定时器1以及指示其状态。
这两个定时器/计数器都有四种工作方式,通过设置定时器/计数器方式寄存器TMOD中的方式选择位M1-M0来选择工作方式每个定时器都可被独立配置。
(1)定时/计数器控制寄存器
图2-7TCON控制寄存器
7位:
TF1:
定时器1溢出标志
当定时器1溢出时由硬件置位这个标志能被软件清除当CPU进入定时器1中断服务程序时它被自动清除。
0定时器1未溢出。
1定时器1已溢出。
6位:
TR1:
定时器1控制
0定时器1禁止。
1定时器1允许。
5位:
TF0:
定时器0溢出标志
当定时器0溢出时由硬件置位该标志能被软件清除当CPU进入定时器0中断服务程序时它被自动清除。
0定时器0未溢出。
1定时器0已溢出。
4位:
TR1:
定时器0控制
0定时器0禁止。
1定时器0允许。
3位:
IE1外部中断1
当检测到一个IT1定义的边沿/电平时该标志由硬件置位它能被软件清除但是当IT1=1时如果CPU进入外部中断1服务程序则自动清除当IT1=0时该标志是/INT1输入信号的逻辑电平取反。
2位:
IT1:
中断1类型选择
此位选择/INT1信号检测到下降沿中断还是检测到低电平有效中断。
0/INT1是电平触发。
1/INT1是边沿触发。
1位:
IE0:
外部中断0
当检测到一个IT0定义的边沿/电平时该标志由硬件置位它能被软件清除但是当IT0=1时如果CPU进入外部中断1服务程序则自动清除当IT0=0时该标志是/INT0输入信号的逻辑电平取反。
0位:
IT0:
中断0类型选择
此位选择/INT0信号否检测到下降沿中断还是检测到低电平有效中断。
0/INT0是电平触发。
1/INT0是边沿触发。
(2)定时/计数器方式寄存器
图2-8TMOD方式寄存器
7位:
GATE1:
定时器1门控位。
0:
当TR1=1时无论/INT1如何定时器1允许。
1:
只有在TR1=1并且/INT1=逻辑1时定时器1允许。
6位:
C/T1:
计数器/定时器1选择。
0:
定时器功能T1M位CKCON.4定义的时钟使定时器1加1.
1:
计数器功能在外部输入引脚P0.5/T1上的从高到低的跳变使定时器1加1.
5-4位:
T1M1-T1M0:
定时器1方式选择。
这些位选择定时器1操作方式
表2-2定时器1选择一览表
3位:
GATE0:
定时器0门控位
0:
当TR0=1时无论/INT0如何定时器0允许
1:
只有在TR0=1并且/INT0=逻辑1时定时器0允许
2位:
C/T0:
计数器/定时器选择
0:
定时器功能T0M位CKCON.3定义的时钟使定时器0加
1:
计数器功能在外部输入引脚P0.4/T0上的从高到低的跳变使定时器0加
0-1位:
T0M1-T0M0:
定时器0方式选择
这些位选择定时器0操作方式
表2-3定时器0选择一览表
(3)时钟控制寄存器
图2-9CKCON时钟控制寄存器
7-6位:
未用读=00b,写=无关
5位:
T2M:
定时器2时钟选择
此位控制定时器2的系统时钟的分频当定时器为波特率发生方式或计数器方式即(C/T2=1)此位被忽略。
0:
定时器2使用系统时钟的12分频。
1:
定时器2使用系统时钟。
4位:
T1M:
定时器1时钟选择
此位控制定时器1的系统时钟的分频。
0:
定时器1使用系统时钟的12分频。
1:
定时器1使用系统时钟。
3位:
T0M定时器0时钟选择
此位控制计数器/定时器0的系统时钟的分频。
0:
计数器/定时器使用系统时钟的12分频。
1:
计数器/定时器使用系统时钟。
0-2位:
未用读=00b,写=无关。
2.1.5中断系统
两个外部中断源(/INT0和/INT1)可被配置为低电平触发或下降沿触发输入,由IT0(TCON.0)和IT1(TCON.2)的设置决定。
IE0(TCON.1)和IE1(TCON.3)分别为外部中断/INT0和/INT1的中断标志。
如果一个/INT0或/INT1外部中断被配置为边沿触发,CPU在转向ISR时将自动清除相应的中断标志。
当被配置为电平触发时,中断标志将跟随外部中断输入引脚的状态,外部中断源必须一直保持输入有效直到中断请求被响应。
在ISR返回前必须使该中断请求无效,否则将产生另一个中断请求。
其余的2个外部中断(外部中断6-7)为边沿触发输入,可以被配置为下降沿触发或上升沿触发。
这些中断的中断标志和配置位在端口3中断标志寄存器中。
2.2热电偶
2.2.1热电偶的工作原理
热电偶是工程上应用最广泛的温度传感器。
它具有结构简单,使用方便,准确度高,热惯性小,稳定性和复现性好,温度测量范围宽,适用于信号的远传自动记录和集中控制的优点,在温度测量中占有重要的地位。
此外,通过热辐射来测温,不会破坏被测介质的温度场。
热电偶的测温原理的以热电效应为基础的,将任意两种不同的导体A/B组成一闭合回路(图2-11)只要其连接点1、2温度不同,在回路就产生热电动势,这种现象称为热效应,我们就是利用热电偶的热效应来测量温度的。
从物理上看,热电偶回路产生的热电动势主要是由接触电动势组成的。
当两种不同导体A,B接触是时,由于导体两边的自由电子密度不同,在交界上边产生电子的互相扩散。
在开始接触的瞬间若导体A中自由电子密度大于导体B中自由电子密度,则导体A向导体B扩散的电子数将比导体B向导体A扩散的电子数多,因而使导体A失去较多的电子而带正电荷,导体B得到较多的电子而带负电荷,致使在导体A、B接触外产生电场,以阻碍电子在导体B中的进一步积累,最后达到平衡。
平衡时,在A、B两个导体间的电位差称为接触电动势。
其值决定于两个导体的材料种类和接触点的温度。
在图2-11所示的热电偶回路中,当接触1、2的温度不同时,则产生两个不同的接触电动势eAB(t)和eAB(0)。
这时回路中的总电势。
E(t,t0)=eAB(t)-eAB(t0)(2-1)
式中:
e下标字母表示电势的方向。
在实际使用热电偶时,在热电偶回路中总要接入测量仪表及导线,如图2-11所示:
1为热电偶ABC;2为测量仪表;3为连接热电偶和测量仪表的导线。
图2-10图2-11
热电偶是由两种不同导线或半导体材料焊接而成。
焊接的一端称为热端(或工作端)与导线连接的一端称为冷端。
热端插入需要测量的设备之中,冷端置于设备之外。
E(t,t0)=eAB(t)+eBC(t0)+eCA(t0)(2-2)
如果回路中各接点温度相同,即t=t0,则回路总电势E(t,t0)必为零,即
E(t,t0)=eAB(t)+eBC(t0)+eCA(t0)=0(2-3)
eBC(t0)+eCA(t0)=-AB(t0)(2-4)
2-4代入2-3可得
E(t,t0)=eAB(t)-eAB(t0)(2-5)
式2-2同式2-3完全一样,由此可见,在热电偶回路中接入第三种导体的两个接点温度相等,回路中总电势值不变。
但是,如果图2-12中导体B、C和导体C、A接点处温度不同时,回路中总电势会发生变化。
所以,在使用热电偶测温时,冷端温度应该使之相等。
一般热电偶很短(几百mm~几千mm),热电偶冷端温度会随设备和环境温度不断变化。
为了保证测量精度,必须采取措施,使热电偶冷端温度保持恒定,可以把热电偶做得很长,使冷端远离被测物体,并连同测量仪表一起放到恒温或温度波动较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PID 温度 控制系统 设计