您的当前位置:首页正文

武汉理工大学计算机控制课程设计

2024-06-08 来源:我们爱旅游
学 号:

课 程 设 计

题 目 学 院 专 业 班 级 姓 名 指导教师

基于PID电加热炉系统设计

自动化 自动化

2013 年 6 月 27 日

武汉理工大学《计算机控制技术》课程设计

课程设计任务书

学生姓名: 专业班级:

指导教师: 工作单位: 自动化学院 题 目: 基于PID电加热炉系统设计 初始条件:

电加热炉用电炉丝提供功率,使其在预定时间内将炉内温度稳定在给定值上。本控制对象电阻加热炉功率为800W,由220V交流电源供电。本设计以单片机为控制核心,加上相应的输入输出通道,采用PID算法,将温度控制在规定范围内,并要求实时显示当前温度值。被控对象由一阶惯性和纯滞后环节组成。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等

具体要求)

1、确定系统设计方案,包括单片机的选择,输入输出通道,键盘显示电路; 2、建立被控对象的数学模型;

3、推导控制算法,设计算法的程序流程图或程序清单; 4、仿真研究,验证设计结果。

5、撰写、打印设计说明书一份;设计说明书应在4000字以上。

时间安排:

第1-2天:构建计算机控制系统框图

第3-4天:单片机、A/D、传感器选型并扩展电路 第5-6天:被控对象控制的功率部分设计和器件选型 第7天:控制算法选择,绘制流程图 第8-9天:撰写设计说明书

武汉理工大学《计算机控制技术》课程设计

指导教师签名: 年 月 日

系主任(或责任教师)签名: 年 月 日

武汉理工大学《计算机控制技术》课程设计

摘 要

电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到好的控制效果。

电加热炉加热温度的改变是由上、下两组炉丝的供电功率来调节的,它们分别由两套晶闸管调功器供电。调功器的输出功率由改变过零触发器的给定电压来调节,本设计以AT89C51单片机为控制核心,输入通道使用PT100传感器检测温度,测量变送传给ADC0809进行A/D转换,输出通道驱动执行结构过零触发器,从而加热电炉丝。本系统PID算法,将温度控制在50~350℃范围内,并能够实时显示当前温度值。

关键词:电加热炉;功率;温度范围;PID

武汉理工大学《计算机控制技术》课程设计

目录

1总体设计 ....................................................... 1

1.1概述 ................................................................. 1

1.2总框图 ............................................................... 2

2系统硬件的设计 ................................................. 3

2.1微处理器部分 ......................................................... 3 2.2电源部分 ............................................................. 4 2.3数模转换部分 ......................................................... 5 2.4采样测量部分 ......................................................... 6 2.5驱动执行部分 ......................................................... 7

2.5.1光耦驱动电路 ................................................... 7 2.5.2驱动电路有关元件的选择 ......................................... 8 2.5.3双向可控硅电路 ................................................. 8 2.6显示电路 ............................................................ 10

3系统的软件程序 ................................................ 11

3.1 主程序流程图 ....................................................... 11 3.2键盘扫描子程序流程图 ................................................ 12 3.3显示子程序流程图 .................................................... 13 3.4 A/D转换器流程图 .................................................... 14 3.5 D/A转换器流程图 .................................................... 15 3.6 pid算法的控制流程图 ................................................ 16

4仿真操作步骤及使用说明 ........................................ 17 心得体会 ........................................................ 18 参考文献 ........................................................ 19 附录1:C语言程序 ............................................... 20 附录2:电路图 .................................................. 28 本科生课程设计成绩评定表 ........................................ 29

武汉理工大学《计算机控制技术》课程设计

基于PID电加热炉温度控制系统设计

1总体设计

1.1概述

电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各

类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到好的控制效果。

单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。采用单片机进行炉温控制,可以提高控制质量和自动化水平。

在本控制对象电阻加热炉功率为800W,由220V交流电供电,采用双向可控硅进行控制。本设计针对一个温度区进行温度控制,要求控制温度范围50~350C,保温阶段温度控制精度为正负1度。选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。其对象问温控数学模型为:

Kdes G(s)

Tds1其中:时间常数Td=350秒 放大系数Kd=50 滞后时间=10秒 控制算法选用PID控制。

1

武汉理工大学《计算机控制技术》课程设计

1.2总框图

本系统的单片机炉温控制系统结构主要由单片机控制器、可控硅输出部分、热电偶传感器、温度变送器以及被控对象组成。

系统硬件结构框图如图1: 电源 键盘 接口 STC89C52RC A/D 测量变送 电加热炉 接口 D/A 执行机构 LCD1602

在这里单片机部分,选择STC89C52RC,显示部分选择LCD1602,键盘选择独立按键,A/D转换器选择ADC0809,D/A转换器选择DAC0832,测量变送器件选择PT100铂热电阻传感器,执行机构为光电耦合和双向可控硅。

2

图1总体框图

武汉理工大学《计算机控制技术》课程设计

2系统硬件的设计

2.1微处理器部分

MSC-51系列单片机是英特尔公司于1980年起推出的第二代产品。与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大的存贮空间,扩充了更多的硬件功能I/O功能,速度提高了2- 5倍,可完成逻辑运算等。近年来推出的一些增强的MSC-51系统单片机,片内还集成了许多特殊功能单元,只需要加一些扩展电路及必要的通道接口即可构成各种计算机应用系统。因MSC-51系统单片机在智能仪表、智能接口、功能模块等领域得到了非常广泛的应用。

主要技术特性:

①适于控制应用的8位CPU。 ②扩展的逻辑处理能力。

③64K程序存贮器空间和64K数据存贮器空间。 ④4KB片内程序存贮器。 ⑤128B片内数据RAM。

⑥32根双向和可单独寻址的输入输出线。 ⑦2个16位定时/计数器,片内时钟发生器。

⑧全双工异步发送/接收器。 ⑨6源5向量中断结构,具有两个优先级。 引脚图如图2,并作如下说明: (1)VCC:供电电压。 (2)GND:接地。

图2 51单片机引脚图

(3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。 (4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

(5) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

(6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:

3

武汉理工大学《计算机控制技术》课程设计

P3口管脚 备选功能 P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 /INT0 (外部中断0) P3.3 /INT1 (外部中断1) P3.4 T0 (记时器0外部输入) P3.5 T1 (记时器1外部输入) P3.6 /WR (外部数据存储器写选通) P3.7 /RD (外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。

(7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 (10) /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

(11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 (12)XTAL2:来自反向振荡器的输出。

2.2电源部分

本系统所需电源有220V交流市电、直流5V电压和低压交流电,故需要变压器、整流装置和稳压芯片等组成电源电路。电源变压器是将交流电网220V的电压变为所需要的电压值,然后通过整流电路将交流电压变为脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。但这样的电压还随电网电压波动(一般有+-10%左右的波动)、负载和温度的变化而变化。因而在整流、滤波电路之后,还需要接稳压电路。稳压电路的作用是当电网电压波动、负载和温度变化时,维持输出直流电压稳定。整流装置采用二极管桥式整流,稳压芯片采用78L05,配合电容将电压稳定在5V,供控制电路、测量电路和驱动执行电路中弱电部分使用。除此之外,220V交流市电还是加热电阻两端的电压,通过控制双向可控硅的导通与截止来控制加热电阻的

4

武汉理工大学《计算机控制技术》课程设计

功率。低压交流电即变压器二次侧的电压,通过过零检测电路检测交流电的过零点,送入单片机后,由控制程序决定双向可控硅的导通角,以达到控制加热电阻功率的目的。

2.3数模转换部分

8位D/A转换器DAC0832

DAC0832芯片为20引脚,双列直插式封装。其引脚排列如图3所示。 (1)数字量输入线D7~D0(8条) (2)控制线(5条) (3)输出线(3条) (4)电源线(4条) DAC0832的技术指标 (1)分辨率: 8位 (2)电流建立时间:

1µS

(3)线性度(在整个温度范围内)8、9或10位 (4)增益温度系数: (5)低功耗: 20mW (6)单一电源:

0.0002% FS/℃

+5 ~ +15V

图3 DAC0832引脚图

图4 ADC0809引脚图

5

武汉理工大学《计算机控制技术》课程设计

ADC0809采用双列直插式封装,共有28条引脚。 (1)IN7~IN0:8条模拟量输入通道 (2)地址输入和控制线:4条 (3)数字量输出及控制线:11条 (4)电源线及其他:5条 其引脚排列如图4所示。

2.4采样测量部分

在检测装置中,温度检测用WZP-231铂热电阻(Pt100),采用三线制接法,采样电路为桥式测量电路,其输入量程为50~350°C,经测量电路采样后输出2~5V电压,再经模数转换芯片ADC0809进行转换,变为数字量后送入单片机进行分析处理。

铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200℃~650℃)范围的温度测量中。

PT100是一种广泛应用的测温元件,在-50~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。由于铂电阻的电阻值与温度成非线性关系,所以需要进行非线性校正。校正分为模拟电路校正和微处理器数字化校正,模拟校正有很多现成的电路,其精度不高且易受温漂等干扰因素影响,数字化校正则需要在微处理系统中使用,将Pt电阻的电阻值和温度对应起来后存入EEPROM中,根据电路中实测的AD值以查表方式计算相应温度值。

常用的Pt电阻接法有三线制和两线制,其中三线制接法的优点是将PT100的两侧相等的的导线长度分别加在两侧的桥臂上,使得导线电阻得以消除。常用的采样电路有两种:一为桥式测温电路,一为恒流源式测温电路。在本系统设计中,采用了第一种方法,即桥式测温。

测温原理:电路采用TL431和电位器VR1调节产生4.096V的参考电源;采用R1、R2、VR2、Pt100构成测量电桥(其中R1=R2,VR2为100Ω精密电阻),当Pt100的电阻值和VR2的电阻值不相等时,电桥输出一个mV级的压差信号,这个压差信号经过运放LM324放大后输出期望大小的电压信号,该信号可直接连AD转换芯片。差动放大电路中R3=R4、 R5=R6、放大倍数=R5/R3,运放采用单一5V供电。

设计及调试注意点:

6

武汉理工大学《计算机控制技术》课程设计

1. 同幅度调整R1和R2的电阻值可以改变电桥输出的压差大小;

2. 改变R5/R3的比值即可改变电压信号的放大倍数,以便满足设计者对温度范围的要求

3. 放大电路必须接成负反馈方式,否则放大电路不能正常工作 。

4. VR2也可为电位器,调节电位器阻值大小可以改变温度的零点设定,例如Pt100的零点温度为0℃,即0℃时电阻为100Ω,当电位器阻值调至109.885Ω时,温度的零点就被设定在了25℃。测量电位器的阻值时须在没有接入电路时调节,这是因为接入电路后测量的电阻值发生了改变。

5. 理论上,运放输出的电压为输入压差信号×放大倍数,但实际在电路工作时测量输出电压与输入压差信号并非这样的关系,压差信号比理论值小很多,实际输出信号为

4.096*(RPt100/(R1+RPt100)- RVR2/(R1+RVR2)) (1) 式中电阻值以电路工作时量取的为准。

6. 电桥的正电源必须接稳定的参考基准,因为如果直接VCC的话,当网压波动造成VCC发生波动时,运放输出的信号也会发生改变,此时再到以VCC未发生波动时建立的温度-电阻表中查表求值时就不准确。

2.5驱动执行部分

硬件输出通道主要包括加热电阻的控制环节,而此控制环节的核心是双向可控硅,但电路的关键是设计双向可控硅的驱动电路。双向可控硅的通断直接决定加热电阻的工作与不工作,本部分用带过零触发的光耦MOC3061来驱动。

2.5.1光耦驱动电路

在驱动电路中,由于是弱电控制强电,而弱电又很容易受到强电的干扰,影响系统的工作效率和实时性,甚至烧毁整个系统,导致不可挽回的后果,因此必须要加入抗干扰措施,将强弱电隔离。光耦合器是靠光传送信号,切断了各部件之间地线的联系,从根本上对强弱电进行隔离,从而可以有效地抑制掉干扰信号。此外,光耦合器提供了较好的带宽,较低的输入失调漂移和增益温度系数。因此,能够较好地满足信号传输速度的要求,且光耦合器非常容易得到触发脉冲,具有可靠、体积小、等特点。所以在本系统设计中采用了带过零检测的光电隔离器MOC3061,用来驱动双向可控硅并隔离控制回路和主回路。MOC3061是一片把过零检测和光耦双向可控硅集成在一起的芯片。其输出端的额定电压是400V,最大重复浪涌电流为1.2A,最大电压上升率dv/dt为1000v/us,输入输出隔离电压

7

武汉理工大学《计算机控制技术》课程设计

为7500V,输入控制电流为15mA。

在图2-2驱动执行电路中,当单片机的P2.0、P2.1、P2.2发出逻辑数字量为高电平时,经过三极管放大后驱动光耦合器的放光二极管,MOC3061的输入端导通,有大约15mA的电流输入。当MOC306的输出端6脚和4脚尖电压稍稍过零时,光耦内部双向可控硅即可导通,提供一个触发信号给外部晶闸管使其导通;当P2.0、P2.1、P2.2为低电平时,MOC3061截止,双向可控硅始终处于截止状态。

2.5.2驱动电路有关元件的选择

R25,C10组成吸收电路,并接在双向可控硅的两极之间。吸收回路组成缓冲器。有了吸收回路,可控硅通断过程中电源电压的变化率受到R25,C10的限制。R25可以抑制双向可控硅通断时产生的浪涌电流。R25和C10根据经验公式选,一般C10取0.01~1.0uF,R25取几欧到几十欧,本电路中R25取39欧,C10取0.01 uF。

R27为限流电阻,用来限制MOC3061的输出驱动电流,其数值为电源电压峰值除以双向可控硅的允许重复电流。在本电路中R27取300欧。

R26:由于MOC3061在输出关断状态下也有小于或等于500mA的输出电流,所以加入R26分流消除这个电流对双向可控硅的影响,以防止双向可控硅误触发,提高了系统的可靠性。

在此电路中可以看出单片机的输出通道采用了MOC3061进行驱动有以下优点: (1)控制简单。可用SETB或CLR指令直接控制P2.0、P2.1、P2.2以控制加热电阻的工作与否。

(2)MOC3061由于采用了过零触发电路大大简化了双向可控硅的触发电路,把SCR一向控制变为实用的数字脉冲控制。

(3)MOC3061与双向可控硅实际组成了一个固态继电器,实现了无触电控制。 (4)输出通道实现了光电隔离,防止了射电干扰。

(5)输出通道用P2.0、P2.1、P2.2口直接控制双向可控硅,省去了的D/A转换电路,简化了接口电路。

2.5.3双向可控硅电路

(1)双向可控硅

这种可控硅具有双向导通功能,在交流电的正负半周都可以导通。其英文名TRIAC即三级交流开关的意思,并把它的两极称为MT1和MT2,其电路符合如图所示。

8

武汉理工大学《计算机控制技术》课程设计

双向可控硅的通断情况由控制极栅极(G)决定,当栅极无信号时MT1和MT2成高阻态,管截止;而当MT1与MT2之间加一个阈值电压(一般大于1.5V)的电压时,就可以利用控制极栅极电压来使可控硅导通。但需要注意的是,当双向可控硅接感性负载时,电流和电压之间有一定的相位差。在电流为零时,反向电压可能不为零,且超过转换电压,使管子反向导通,故要管子能承受这种反向电压,并在回路中加入RC网络加以吸收。

(2)触发方式

控制双向可控硅从高阻态(阻断区)转换到低阻态(导通区)可以用不同的方式实现。相应的分为四种方式:

MT1相对于MT2为正,控制脉冲电压Ug相对于MT1为正 MT1相对于MT2为负,控制脉冲电压Ug相对于MT1为负 MT1相对于MT2为正,控制脉冲电压Ug相对于MT1为负 MT1相对于MT2为负,控制脉冲电压Ug相对于MT1为正

双向可控硅通常工作在控制方式(1)和控制方式(2)。在这两种控制方式下,控制灵敏度特别高。另外两种控制方式下,要求高一倍的触发电流。在本设计中,选择了控制方式(1)和(2)。

如同晶闸管的控制极那样,双向可控硅的控制极在触发后便失去了作用。双向可控硅长期维持低阻态,直到低于维持电流I H,然后在转换到高阻态。在控制交流电压时,每次电源电压过零双向可控硅都会自动截止,所以双向可控硅每半个周期都需要重新触发。

在本设计中,考虑到电网电压的稳定和现在市场上销售的双向可控硅型号,选择了工作电压为400V,通态电流为4A的双向可控硅BT136。利用单片机控制双向可控硅的导通角。在不同时刻利用单片机给双向可控硅的控制端发出触发信号,使其导通或关断,实现负载电压有效值的不同,以达到调压控制的目的。具体如下:

由硬件完成过零触发环节,即在工频电压下,每10ms进行一次过零触发信号,由此信号来达到与单片机的同步。

过零检测信号接至单片机的P2.3口,由单片机对此口进行循环检测,然后进行延时触发。

9

武汉理工大学《计算机控制技术》课程设计

2.6显示电路

液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB 线路板、背光源、 结构件装配在一起的组件.英文名称叫“LCD Module”,简称“LCM”,中文一般 称为“液晶显示模块”。

液晶显示模块以其显示信息量大、微功耗、超薄轻巧的诸多优点,在小型、便携、 数字、智能化仪表中得到了广泛的应用。 1602 引脚定义如下: 1-GND(地)

2-VCC(电源正极5V)

3-V0(对比度调节端,通常直接接地) 4-RS(读控制) 5-RW(写控制) 6-E(使能端)

7-DB0(数据端口最低端) 8-DB1 9-DB2 10-DB3 11-DB4 12-DB5 13-DB6

14-DB7(数据端口最高端) 15-BLA(背光正极) 16-BLK(背光负极)

使用液晶根据实际需要调节对比度,使显示达到最佳。

10

武汉理工大学《计算机控制技术》课程设计

3系统的软件程序

3.1 主程序流程图

主程序流程图如图5。

开始 初始化 键盘扫描 有信号? Y A/D转换 N PID控制算法 D/A转换 LCD显示 结束 图5 主程序流程图

首先初始化各个变量,启动LCD1602,进行显示。然后进行键盘扫描,更新设定温度。

等待ADC0809产生信号,当产生了信号之后,进行A/D转换,将转换后的数字量,更新LCD1602,同时和设定值相减得出误差信号,对误差信号进行处理,通过调节PID参数,得出输出量。再将输出量,通过DAC0832,转行成模拟量。

11

武汉理工大学《计算机控制技术》课程设计

3.2键盘扫描子程序流程图

键盘扫描子程序流程图如图6。

这里以加1键为例,

检测加1键是否按下,延时去抖,之后再检测加1键是否按下,如果按下,则设定温度加1。

Y 设定温度加1 UP键按下? N Y 延时去抖 UP键按下? N 图6 键盘扫描子程序流程图

图7 独立键盘按键过程

键盘中的一个按键为一个机械弹性开关,用一个电压信号(0,1)代表开关触点的合、断。机械开关触点的弹性作用使得按键的闭合过程不会马上稳定地接通,断开时也不会瞬

12

武汉理工大学《计算机控制技术》课程设计

时断开,会出现所谓的“抖动”现象,其抖动时间一般为5---10ms。

抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。 按键过程如图7。

在这里我采用了软件去抖动的方法,即检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。

3.3显示子程序流程图

显示子程序流程图如图8。

更新设定温度 有键按下? Y N 写第一行 初始化

图8 显示子程序流程图

更新真实温度 AD转换结束? Y N 写第二行 更新第一行 更新第二行 首先,进行初始化,然后开始写LCD1602的第一行,检测是否有键按下,如果有键按下,则更新设定温度,如果没有,则等待。之后更新LCD1602的第一行。使第一行显示为“Set temp: XXXC”“XXX”为设定温度。然后再写第二行,检测AD转换器是否转换结

13

武汉理工大学《计算机控制技术》课程设计

束,如果没有转换结束,则等待。当转换结束时,更新真实温度,即LCD1602的第二行。使其显示“Rel temp:YYYC”“YYY”为设定温度。

3.4 A/D转换器流程图

A/D转换器流程图如图9。

图如图10。

图9 AD转换器子程序流程图

START产生正脉冲,延时等待,当EOC=1时,读取数据,再启动。ADC0809时序

再次启动 EOC=1? Y 取数据 N START产生正脉冲

图10 ADC0809时序图

14

武汉理工大学《计算机控制技术》课程设计

3.5 D/A转换器流程图

D/A转换器流程图如图11。

时序图如图12。

15

WR1=1 写数据 WR1=0 延时 WR1=1 图11 DA转换器子程序流程图

WR1产生高电平,写数据,WR1产生低电平,延时,WR1产生高电平。DAC0832

图12 DAC0832时序图

武汉理工大学《计算机控制技术》课程设计

3.6 pid算法的控制流程图

pid算法的控制流程图如图13。

图13 PID子程序流程图

Y Uk=10 PID控制 N Y uk=255 REL-SET>10? SET-REL>20? N 当设定值比实际值高20时,输出最大255,当实际值比设定值高10时,输出最小10,其他情况对误差信号进行处理,通过调节PID参数,得出输出量。

16

武汉理工大学《计算机控制技术》课程设计

4仿真操作步骤及使用说明

一.各部件说明:

触点开关S0为温度自加1键 触点开关S1为温度自减1键 键LCD1显示时间 OV1显示电热炉加热情况 二.操作说明

上电之后LCD第一行显示Set temp: 200 C,LCD第二行显示Set temp:000 C (1)按下触点开关S0,设定温度自加1,按下触点开关S1,设定温度自减1。 (2)实时采集电热炉温度,进行显示,并进行PID计算。 (3)输出控制量,改变给电热炉加热的电压。

17

武汉理工大学《计算机控制技术》课程设计

心得体会

通过为期一周的课程设计,让我学习了很多,也了解了很多,真的可以说是受益匪浅。 此次课程设计中,我做的课题是《基于数字PID的电加热炉温度控制系统》。整个系统分为四个部分:测量检测模块,控制调节模块,驱动执行和电源模块。查阅了很多资料并且对以前学习的专业知识系统并有针对性的复习设计出了自己满意作品,进而得到同学和老师的肯定,也只有这样才能起到此次课程设计的目的。

通过各方面的努力,最终设计出了自己较为满意的系统。虽然这一周过得很辛苦,但是自己付出的努力得到了回报,那种成就感是任何事物都无法代替的。还有在设计过程中,我们积累的经验,对我们以后的学习和工作会有莫大的帮助。

18

武汉理工大学《计算机控制技术》课程设计

参考文献

[1] 康华光编著.电子技术基础(模拟部分).高等教育出版社,2000 [2] 于海生编著.计算机控制技术.机械工业出版社,2003 [3] 李晓莹编著.传感器与测设技术.高等教育出版社,2002 [4] 付家才编著.单片机实验与实践.高等教育出版社,2004 [5] 谭浩强编著.MCS-51单片机应用教程.清华大学出版社,2001

19

武汉理工大学《计算机控制技术》课程设计

附录1:C语言程序

1.adc0809.h #include #define uint unsigned int #define uchar unsigned char sbit EOC=P2^6; sbit start=P2^7;

uchar measure,table[3]; uchar voltage; extern uchar s_xian2[];

void delay1() { uchar i=50; while(i--);

}

void adc_init() {

// EOC=1; delay1(); if(!EOC) { start=1; delay1(); start=0;

}

while(!EOC);

delay1();

20

武汉理工大学《计算机控制技术》课程设计

}

start=1; delay1(); start=0; voltage=P1;

uchar adc0809() { }

2. LCD1602.h #include #define uint unsigned int #define uchar unsigned char sbit rs=P2^0; sbit rw=P2^1; sbit e=P2^2;

uchar dat,t; adc_init();

dat=voltage*300/255; table[0]=dat/100; t=dat%100; table[1]=t/10; table[2]=t%10;

s_xian2[9] =table[0]+0X30; s_xian2[10]=table[1]+0X30; s_xian2[11]=table[2]+0X30;

measure=table[0]*100+table[1]*10+table[2]; return measure;

void delay(uchar i)

21

武汉理工大学《计算机控制技术》课程设计

{ uchar j,m; for(j=0;j<=i;j++)

for(m=0;m<100;m++);

}

void write_com(uchar com) { rs=0; rw=0; P0=com; delay(5); e=1; delay(5); e=0;

}

void write_data(uchar date) { rs=1; rw=0; P0=date; delay(5); e=1; delay(5); e=0;

}

void lcd_init() { e=0;

write_com(0x38);

22

武汉理工大学《计算机控制技术》课程设计

}

write_com(0x06); write_com(0x0c); write_com(0x01);

void display(uchar *s) { } 3. PID.h

#include #include #define uint unsigned int #define uchar unsigned char #define DA_data P3 sbit DA_wr1=P2^3; uchar uk;

void DAC0832();

void PID_control(uchar set,uchar rel);

void PID(uchar set,uchar rel) {

uchar i;

for(i=0;*s!=0;i++) { }

write_data(*s); s++;

uchar D_value=0; //设定值与实际值的差值

23

武汉理工大学《计算机控制技术》课程设计

}

if(set>rel) { } else { }

DAC0832();

D_value=rel-set; if(D_value>10)

uk=10; D_value=set-rel; if(D_value>20)

uk=255;

else

PID_control(set,rel);

else

PID_control(set,rel);

void PID_control(uchar set,uchar rel) { }

24

uchar Kp=200,Ki=3,Kd=5; char e2=0,e1=0,e0=0; uint u0=0,u=0; e2=set-rel;

u=Kp*(e2-e1)+Ki*e2+Kd*(e2-2*e1+e0)+u0; uk=u;

e0=e1;e1=e2;u0=u;

武汉理工大学《计算机控制技术》课程设计

void DAC0832() { DA_wr1=1; DA_data=uk; DA_wr1=0;

_nop_();_nop_();_nop_();_nop_(); DA_wr1=1;

}

4. temper_test.c #include #include \"PID.h\" #include \"LCD1602.h\" #include \"adc0809.h\" #define uint unsigned int #define uchar unsigned char sbit up =P2^4; sbit down=P2^5;

uchar s_xian1[]= {\"Set temp: C\uchar s_xian2[]= {\"Rel temp: C\uchar value;

uchar set_temp=200,rel_temp;

void delay_ms(uchar ms) {

uchar i,j; for(i=0;ifor(j=0;j<120;j++);

//设定值25

和 测量值

武汉理工大学《计算机控制技术》课程设计

}

void key_up_down() {

if(up==0)

delay_ms(1);

if(up==0)

set_temp++;

while(!up); if(down==0)

delay_ms(1);

}

if(down==0)

set_temp--;

while(!down);

s_xian1[9] =set_temp/100+0X30; s_xian1[10]=(set_temp%100)/10+0X30; s_xian1[11]=(set_temp%100)%10+0X30;

void main() {

lcd_init(); while(1) {

key_up_down();

rel_temp=adc0809(); PID(set_temp,rel_temp); write_com(0x80); display(s_xian1);

26

武汉理工大学《计算机控制技术》课程设计

}

}

write_com(0xc0); display(s_xian2);

27

武汉理工大学《计算机控制技术》课程设计

附录2:电路图

28

武汉理工大学《计算机控制技术》课程设计

本科生课程设计成绩评定表

姓 名 专业、班级 性 别 课程设计题目:基于PID电加热炉控制系统 课程设计答辩或质疑记录: 成绩评定依据: 评定项目 1.选题合理、目的明确 (10分) 2.设计方案正确、具有可行性、创新性 (20分) 3.设计结果 (20分) 4态度认真、学习刻苦、遵守纪律 (10分) 5.设计报告的规范化、参考文献充分 (20分) 6.答辩 (20分) 7.总分 (100分) 最终评定成绩(以优、良、中、及格、不及格评定)

指导教师签字:

年 月 日

29

武汉理工大学《计算机控制技术》课程设计

30

因篇幅问题不能全部显示,请点此查看更多更全内容