




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学微型计算机控制技术课程设计说明书炉温控制系统的设计1设计要求分析设计制作和调试一个由工业控制机控制的温度测控系统。通过这个过程学习温度的采样方法,a/d变换方法以及数字滤波的方法。通过实践过程掌握温度的几种控制方法,了解利用计算机进行自动控制的系统结构。温度指标在6080之间任选,偏差最大为1。要求设计者根据设计室提供的设备及设计要求,设计出实际电路组成一个完整的计算机温度测控系统。而且根据设备情况以及被控对象,选择12种合适的控制算法,编制程序框图和源程序,并进行实际操作和调试通过。通过对设计要求的分析,我决定用51单片机经行控制,用c语言编写程序。在温度传感器的选择上,开始准备使用热敏电阻,但是考虑到热敏电阻很不精确,而且抗干扰能力太弱,在实践中应用并不好,而且在仿真上也不容易实现,所以最后选择了集成温度传感器,这样省去了很多麻烦,最后通过proteus仿真调试程序。以下为炉温控制系统的整体设计框图1-1。图1-1整体设计框图2硬件电路设计2.1温度检测显示模块采用ds18b20温度传感器。ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式;温度测量范围为55125,可编程为9位12位a/d转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出远端引入。此器件具有体积小、质量轻、线形度好、性能稳定等优点其各方面特性都满足此系统的设计要求。如图为ds18b20的封装引脚图。图2-1温度集成传感器的引脚图2.1.1 ds18b20工作时序根据ds18b20的通讯协议,主机控制ds18b20完成温度转换必须经过三个步骤:1. 每一次读写之前都必须要对ds18b20进行复位。2. 复位成功后发送一条rom指令。3. 最后发送ram指令,这样才能对ds18b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后释放,ds18b20收到信号后等待1560微秒左右后发出60240微秒的存在低脉冲,主cpu收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序。 总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7k上拉电阻将总线拉高,延时1560us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。2.1.2集成温度传感器工作时序每一片dsl8b20在其rom中都存有其唯一的48位序列号,在出厂前已写入片内rom 中。主机在进入操作程序前必须用读rom(33h)命令将该dsl8b20的序列号读出。程序可以先跳过rom,启动所有dsl8b20进行温度变换,之后通过匹配rom,再逐一地读回每个dsl8b20的温度数据。低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。2.2温度检测模块硬件电路由于ds18b20的内部结构,本题采用如下的硬件电路,让控制线与单片机的p2.2相连。然后采用了7段共阴数码管扫描电路,节约了单片机的输出端口,便于程序的编写显示温度传感器采集的温度值,直接将数码管接到了io口上,没使用锁存芯片,这样省去不少麻烦。如下图2-2为温度检测模块硬件电路图2-2温度检测模块硬件电路2.3键盘输入控制模块在单片机应用系统中,为了实现人机对话功能,键盘是必要的输入设备之一。它能随时发出各种控制命令和进行数据输出以及报告应用系统的运行状态与运行结果。独立式按键电路每一个按键开关只占一根i/o线,当按键数较多时,要占用较多的i/o口线。因此通常多采用矩阵戒键盘接口电路,通常将阵式接口电路称为行列式接口电路。行列式键盘接口电路中可以采用多种锁存器和可编程并行i/o接口芯片组成,例如用8255、8155等可编程芯片构成。采用了四乘四按键,接p3口,16个按键分别表示0到f十六个数,但是一般情况下不使用a到f这几个数。通过扫描键盘的程序,判断是那个键按下,然后通过51单片机判断是否要继续加热。如下图2-3为键盘输入控制模块。图2-3键盘输入控制模块2.4继电器加热模块通过控制单片机的输入,控制继电器是否工作,继电器被吸合时,电炉开始加热。继电器松开时,停止加热,温度下降。如下图2-4为继电器的硬件电路图图2-4为继电器的硬件电路图3软件程序设计如下为系统软件设计的流程图,见图3-1图3-1系统流程图常用的pid控制算法有:经典的比例积分微分控制算法、根据动态系统的优化理论得到的自适应控制和最优控制方法、根据模糊集合理论得到模糊控制算法等。系统算法控制采用工业上常用的位置型pid数字控制,并且结合特定的系统加以算法的改进,形成了变速积分pid积分分离pid控制相结合的自动识别的控制算法。该方法不仅大大减小了超调量,而且有效地克服了积分饱和的影响,使控制精度大大提高。自适应控制、最优控制方法以及模糊控制算法是建立在精确的数学模型基础上的,在实时过程控制中,由于控制对象的精确数学模型难于建立,系统参数经常发生变化,运用控制理论进行综合分析要花很大代价,主要是时间。同时由于所得到的数学模型过于复杂难于实现。在实时控制系统中要求信号的控制信号的给出要及时,所以在目前的过程控制系统中较少采用自适应控制、最优控制方法和模糊控制算法。目前在过程控制中应用较多的还是pi控制算法、pd控制算法和pid控制算法。炉温控制系统的控制对象具有热储存能力大,惯性也较大的特点,水在容器内的流动或热量传递都存在一定的阻力,因而可以归于具有纯滞后的一阶大惯性环节。对于大惯性系统的过渡过程控制,一般可采用以下几种控制方案:开关量控制 这种方法通过比较给定值与被控参数的偏差来控制输出的状态,开通或关断,因此控制过程十分简单,也容易实现。但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易引起反馈回路振荡,控制精度不高。而且本题中要求有具体的输入量,所以不采用此种方案比例控制 比例控制能迅速反应误差,从而反应误差,但比例不能消除稳态误差。当负荷变化时,抗干扰能力强,过渡过程时间短,但过程终了存在余差;适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。比例积分控制 当比例控制不满足要求时,再加入积分环节。只要存在系统误差,积分控制就不断积累,输出量可以消去误差。控制器的输出与偏差的积分成比例,积分的作用使过渡过程结束时无余差,但降低了系统的稳定性。比例积分控制适用于滞后较小,负荷变化不大,被控量不允许有余差的控制系统。比例积分加微分控制 微分控制可以减少超调量,克服震荡,使系统的稳定性提高,同时加强系统的动态响应。微分的作用使控制器的输出与偏差变化的速度成比例,它对克服对象的容量滞后有显著的效果;在比例基础上加入微分作用,使稳定性提高,再加上积分作用,可以消除余差;所以比例积分微分控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。本题中采用pid控制方式。一方面,由于可以采用单片机实现控制过程,无论哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案;另一方面,采用pid的控制方式可以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。可知pid调节器是一种线性调节器,这种调节器是将设定值w与实际输出值y进行比较构成偏差并将其比例、积分、微分通过线性组合构成控制量。其动态方程为:其中为调节器的比例放大系数为积分时间常数为微分时间常数pid调节器的离散化表达式为;其增量表达形式为: 其中t为采样周期。图3-1模拟pid控制可见温度pid调节器有三个可设定参数,即比例放大系数、积分时间常数、微分时间常数。以下为pid算法温度控制程序#ifndef _pid_h_#define _pid_h_#include #include #include struct pid unsigned int setpoint; / 设定目标 desired value unsigned int proportion; / 比例常数 proportional const unsigned int integral; / 积分常数 integral const unsigned int derivative; / 微分常数 derivative const unsigned int lasterror; / error-1 unsigned int preverror; / error-2 unsigned int sumerror; / sums of errors struct pid spid; / pid control structure unsigned int rout; / pid response (output) unsigned int rin; / pid feedback (input) sbit output=p34; unsigned char high_time,low_time,count=0;/占空比调节参数 unsigned char set_temper=33; void pidinit (struct pid *pp) memset ( pp,0,sizeof(struct pid); unsigned int pidcalc( struct pid *pp, unsigned int nextpoint ) unsigned int derror,error; error = pp-setpoint - nextpoint; / 偏差 pp-sumerror += error; / 积分 derror = pp-lasterror - pp-preverror; / 当前微分 pp-preverror = pp-lasterror; pp-lasterror = error; return (pp-proportion * error/比例 + pp-integral * pp-sumerror /积分项 + pp-derivative * derror); / 微分项 /* 温度比较处理子程序 */ compare_temper() unsigned char i; /ea=0;if(set_tempertemper) if(set_temper-temper1) high_time=100; low_time=0; else for(i=0;i10;i+) get_temper(); rin = s; / read input rout = pidcalc ( &spid,rin ); / perform pid interation if (high_time=100) high_time=(unsigned char)(rout/800); else high_time=100; low_time= (100-high_time); else if(set_temper0) high_time=0; low_time=100; else for(i=0;i10;i+) get_temper(); rin = s; / read input rout = pidcalc ( &spid,rin ); / perform pid interation if (high_time100) high_time=(unsigned char)(rout/10000); else high_time=0; low_time= (100-high_time);/ea=1; 心得体会最初拿到这个题目时觉得非常容易,因为涉及到51单片机,我觉得相比其他题目还是比较容易的,但是当我仔细阅读题目,看题目要求时发现对控制的要求非常多。于是我跑到图书馆查阅相关资料,又参考我手中的单片机课本,以及我的计控课本,渐渐的整理了一些思路。总之,完成这个课设是非常艰难的,因为对于一些知识的缺乏而且缺乏实战经验,最后纠结了很久才把仿真这个大难题攻克。对于我这次的课程设计,在硬件上我用了at89c52加上集成温度传感器ds18b 20以及键盘数码管等外设搭建,硬件电路相对来说比较容易,因为使用集成温度传感器比较省事,而且只占用了一个io口,然后其它模块都是比较常见的模块,所以连接也相对简单。但是在软件编程方面我就遇到了很大的难题,尤其是在集成温度传感器上,它虽然硬件非常容易,在却加大了软件的难度,ds18b20在获取温度,转换温度,传递温度时对时序要求非常严格,所以软件编程时很难,更重要的是题目中要求可以控制温度,我使用了键盘输入温度,然后与当前温度做比较,判断是否要加热。这里我遇到了课设中的又一个难题,就是如何使用pid控制,于是我参考了书上增量型pid的公式,加上在网上收集的一些资料,最终编出了程序。对于这次的计算机控制的课程设计,我从中受益良多。之前学校课本总觉得上面的知识点很散,觉得没有联系,做完课设后才发现,平时课堂上掌握的知识有多浅,而不是课本的问题。在做课程设计的过程中,我翻阅了很多资料,发现了自己的很多不足,相信在以后的学习中我更加注意知识间的相互结合。由于本次课程设计中,几个同学会做同一个题目,虽然每个人选择的方案不相同,但是有些思路还是相同的。所以我们遇到问题也会相互交流,这样节约了不少时间和精力,这让我认识到团队合作有多么重要。总之,这一次的课程设计还是克服了种种困难,最后胜利完成了,相信以后会做的更好。参考文献1于海生.微型计算机控制技术.北京:清华大学出版社,1999 2林立.单片机原理及应用.北京:电子工业出版社,2009 3潘新民. 微型计算机控制技术.电子工业出版社,20114郭天祥.新概念51单片机.电子工业出版社,20095胡寿松.自动控制原理(第四版).北京:科学出版社,20016张义和.例说51单片机.人民邮电出版社,20087 侯玉宝取 李成群. 基于proteus的51系列单片机设计与仿真 .人民邮电出版社,20088肖婧.单片机系统设计与仿真(基于proteus).北京航空航天大学出版社,20119 heider, e.r.& d.c.oliver. the structure of color space in naming and memory of two languages j. foreign language teaching and research, 1999, (3): 62 67.10 french, w. between silences: a voice from chinan. atlantic weekly, 1987-8-15(33).11 gill, r. mastering english science . london: macmillan, 1985: 42-45.附录附录一 源程序#include #include #define uchar unsigned char#define uint unsigned intsbit ds=p22; /温度传感器信号线sbit dula=p26; /数码管段选线sbit wela=p27; /数码管位选线unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /不带小数点的编码void delay(uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void dsreset(void) /18b20复位,初始化函数 uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-;bit tempreadbit(void) /读1位函数 uint i; bit dat; ds=0;i+; /i+ 起延时作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar tempread(void) /读1个字节 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在dat里 return(dat);void tempwritebyte(uchar dat) /向18b20写一个字节数据 uint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国宝螺古筝数据监测研究报告
- 2025至2030年中国婴儿床单数据监测研究报告
- 2025至2030年中国多向切割机数据监测研究报告
- 2025至2030年中国单门侦测型磁力锁数据监测研究报告
- 2025至2030年中国出口退税系统软件数据监测研究报告
- 2025至2030年中国人字纹模具数据监测研究报告
- 2025至2030年中国中英双语问路卡片/扑克数据监测研究报告
- 2025年中国静电喷粉线市场调查研究报告
- 2025年中国移相器市场调查研究报告
- 北京市西瓜种植收购合同范本
- 新疆维吾尔自治区2024年中考英语真题【附真题答案】
- 七年级英语上册(人教版2024)新教材解读课件
- NB/T 11431-2023土地整治煤矸石回填技术规范
- 继续医学教育项目申报表
- 《工程地质学》孔宪立-石振明第五章(部编)课件
- 个人股份转让合同协议
- 聚乳酸-标准规程
- 供应商对比方案报告
- 儿童支气管哮喘规范化诊治建议(2020年版)
- ISO28000:2022供应链安全管理体系
- 临床营养技术操作规范(2010版)
评论
0/150
提交评论