计算机测控系统s_第1页
计算机测控系统s_第2页
计算机测控系统s_第3页
计算机测控系统s_第4页
计算机测控系统s_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机测量与控制系统(学时数:54)参考教材:【1】 陈涛,单片机应用及C51程序设计,机械工业出版社,2008.【2】 徐爱钧,智能化测量控制仪表原理与设计(第二版),北京航空航天大学出版社,2004。【3】 马忠梅,单片机的C语言应用程序设计(3/4版),北航版,2003/2007。【4】 李刚、林凌,现代测控电路,高等教育出版社,2004。【5】 韩九强、等,现代测控技术与系统,清华大学出版社,2007。课程介绍:本课程是在本科阶段学习了有关基础课程与专业课程的基础上,进一步了解和掌握计算机测量与控制系统的硬件与软件设计方法与过程,并通过实例分析与实际应用系统的设计制作掌握基本的设计、调

2、试与操作技能。学习的重点有三个方面:第一,深入理解与掌握一种以上的单片机体系结构与基本应用技巧(目前以MCS-51兼容机为主),单片机的C语言程序设计、编程与调试方法。第二,使用计算机实现基本物理量的测量(例如,电量测量、温度测量)。第三,使用计算机实现基本物理量的控制(温度控制)。主要内容与安排(18周*3课时):1绪论,本课程的安排等一般性介绍2. 智能化测控系统中的MCU/MPU,新型MCS-51兼容单片机;电量计算软件设计。3. 集成开发环境IDE/Keil uVision2/C51编译器;电量计算软件设计。4. 实验板硬件与功能介绍/安装与使用/入门程序5. 数字时钟程序设计与调试6

3、. 同上7. 参数与操作面板8. 参数设置程序设计9. 机动安排10温度测量/数字温度传感器DS18B2011. 温度测量程序设计12. 温度控制及其算法13. 温度控制程序设计14. 同上15. 超声波测距的原理与实现16. 超声波测距(分体式)程序设计17. 同上18. 机动安排课程设计题目及要求:1 电量计算程序设计编写一个计算交流电有效值、功率与功率因数的程序。假设已经得到了电流与电压的采样数据(10位A/D转换结果),零点对应采样值为512。先按照有效值的定义编写程序,然后进行标定。标定采用峰-峰值为256的交流信号数据,对应的电流为10安培,电压为100伏特。再用直流信号的数据进行

4、验证。进一步对电流与电压信号进行谐波分析,编写FFT程序,并用模拟的标准采样数据对结果进行验证。2 数字时钟系统设计在给定的硬件系统上实现基本的数字时钟功能(含时间设定功能)。3.参数设置程序设计设计一个参数设置功能的程序。参数号为0-9,每个参数的缺省参数值、上限与下限均由表格给定,2位数值显示。发挥部分:参数号为0-99,4位数值显示,进一步实现参数的快速设定与15秒自动退出功能。4超声波测距系统设计针对给定的超声波测距硬件系统编写相应的软件,实现基本的测距功能。测量范围为10-200cm,动态显示结果。发挥部分(1):进一步增加测量范围,提高测量精度。 (2):实现基于测距原理的超声波主

5、动目标定位。5温度测量与控制系统针对给定的硬件系统编写相应的软件,实现基本的温度测量与显示功能,测量精度为0.1度。在此基础上利用电阻加温进行温度控制。利用键盘操作实现温度的设定(30-100度)。发挥部分(1):用不同的方法进行温度控制,并比较优缺点。 (2):在外界干扰下(小风扇吹风)能够尽快达到新的稳定点。(3):开机进入参数设置,退出后进行温度控制。实现具有上下限幅、快速改变数值功能的参数设定(设定参数范围为0-800)。设计报告要求:(1) 任务可行性分析(所需要的功能如何实现)。(2) 程序结构流程框图。(3) C语言程序的关键程序段及说明。(4) 总结(对自己工作的评价、改进与提

6、高的设想等)。(5) 源程序电子文档。嵌入式系统设计过程与规范一以产品开发为目标的设计过程1.技术可行性分析与论证2.原理设计/总体规划3各个独立组成部分的设计4.电路板设计/调试(一般需要经过多次反复才能完善)5.软件/硬件联合调试(也要经过若干次反复修改)6.出样机/产品试验(如果试验无法通过还要进行修改)7.技术文件汇总/移交生产部门整个过程少则几个月,多则几年时间才能完成。二硬件开发技术规范1.安全性(一票否决)2.可靠性(产品试验)EMC3实用性(标准功能/用户要求)4.标准化(企业标准、行业标准、国家标准与国际标准)三软件开发技术规范1.合理性(对于系统的各种资源如何充分合理地利用

7、)2.实用性(标准功能/用户要求/市场导向)3可靠性(评判标准)4.标准化(软件标准)其中,合理利用系统资源需要有对于系统各种功能的全面了解与使用经验的积累。就CPU系统来说,系统的资源包括:运行时间、存储器、中断以及所具有的各种功能模块(定时器/计数器、串行接口SPI、并行接口PPI、通信接口、信号控制接口、A/D与D/A接口等)。举例来说,一个超声波测量距离的程序设计,可以不使用任何其它资源,完全利用程序的查询功能实现。但是单片机本身已有的资源不用就明显是不合理的。一般来说,中断是计算机测控系统的重要资源,一个应用系统没有使用中断就不是一个好的程序(除非很简单的程序)。但是,过多地使用某一

8、种资源肯定也是不合理的。例如,在单片机应用系统中使用了3个以上的中断就很难保证系统的可靠性。软件设计的标准化也是非常重要的方面,特别是对于大型和复杂程序的设计。为了保证程序的维护性,必须遵循相应的设计规范和标准,包括流程框图和程序的注释。很多人并不重视这方面的工作,实际上会对以后的工作造成很大影响。流程框图的绘制应该是由粗到细,逐步细化,直到能够转化为程序(指令)。四典型实例实际上软件流程框图中只有两个基本元素:过程与分支。其余的元素都是些辅助元素(如入口、出口、返回等)和组合元素(如循环、散转结构等)。一个过程可以是一条语句(操作),也可以是多条语句直至一个很大的子程序。例如一个初始化过程,

9、可以是:x=0;/参数初始化也可以是:TMOD=0x01;/定时器T0初始化TL=0x00;/定时器T0计数初值TH=0xcc;还可以是:display();/调用显示子程序如此等等。分支是由判断语句和相应的操作共同组成的,其结构如下:if(条件)过程(操作)一;else过程(操作)二;有时语句中无else过程(操作)二;这实际是简化的分支。多个分支语句连续使用,就形成了散转。为了简化编程,使用switch语句,实际上最终的机器语言是一样的。各种循环语句最终也还是利用分支语句实现的。入口以下是动态显示程序的框图和相应的C语言程序。voiddisplay();重新设置初值TH0=0xee;/5m

10、STL0=0x00;if(dpt<3) dpt+;显示指针处理else dpt=0;/动态显示计数器P0 = tabdpbufdpt;输出显示内容显示第0位dpt = 0?if(dpt=0)dp1 = dp2 = dp3 = 1;dp0 = 0;dpt = 1?if(dpt=1显示第1位)dp0 = dp2 = dp3 = 1;dp1 = 0;dpt = 2?显示第2位if(dpt=2)dp0 = dp1 = dp3 = 1;dp2 = 0;显示第3位else dp0 = dp1 = dp2 = 1;dp3 = 0;出口其中的入口与出口所对应的就是函数名与括号。多重分支语句也可以用swi

11、tch语句代替,使程序更为简洁:switch(dpt)case 0:dp1 = dp2 = dp3 = 1;dp0=0;break;case 1:dp0 = dp2 = dp3 = 1;dp1=0;break;case 2:dp0 = dp1 = dp3 = 1;dp2=0;break;case 3:dp0 = dp1 = dp2 = 1;dp3=0;从事计算机开发的人需要有一定的悟性(基础反倒不是问题),更需要有“三心”:细心- 一丝不苟;耐心- 孜孜不倦;恒心- 持之以恒(积累)。有志者事竟成,大家共勉!嵌入式系统设计电量计算程序设计一技术要求:利用单片机进行基本的电量计算(电流与电压的有

12、效值、功率与功率因数,进一步再深入进行谐波分析)。假设已经得到电流与电压的10位A/D采样数据DI32和DV32。计算SI、SV、SW、SP以及PHAI(所有结果用16位整数表示,功率因数放大100倍)二功能实现:首先给出有关的公式如下:有效值计算:;视在功率:S=I×V;有功功率:;功率因数:;注意一般情况下。然后对上面的公式进行离散化,得到离散化的计算公式。;由于最后的计算结果涉及到电路和传感器的增益,因此可以将所有的系数归并后再统一进行标定处理。系数KP与KI、KV之间具有一定关系。三软件设计:这一类的程序显然应该利用循环语句实现,具体形式为:for(k=0;k<T;k+

13、) /累加计算程序中需要仔细考虑变量的类型定义,这是初学者最容易出现的问题。从应用的角度考虑,应该尽量不使用浮点计算。而定点数计算很容易出现类型转换信息丢失与数值溢出问题。将计算程序写成函数形式,以便主程序调用。四程序调试:熟悉利用调试工具观察计算结果及排查软件错误的方法。程序的调试是任何软件设计不可避免的过程。具体又分为纯软件调试和软件与硬件的联合调试。纯软件的调试不涉及硬件,主要是解决程序本身的正确性。程序编写完成后,一般可以用一些标准数据进行结果的验证。验证数据要足够多且具有代表性,例如电量计算应该有不同的采样数据大小,而且应该包含特殊情况(例如恒定的直流信号)。即使验证数据计算正确,仍

14、然可能出现意想不到的问题。软件与硬件的联合调试是在纯软件调试后进行的,主要是解决系统整体的功能正确性与协调一致性。其中的难度和复杂性远远高于纯软件的调试,将在以后的课题中进一步深入。% 用MATLAB编写的有效值计算程序,用于验证程序的正确性与确定比例系数clear;A=128;t = 0:2*pi/32:2*pi-pi/16; %32点采样数据ua = A*sin(t); %产生正弦波形sgm = sum(ua.*ua); %计算平方和rms = sqrt(sgm/32);%计算有效值disp(sgm);disp(rms); %sgm=262144;rms=90.5097%F=fft(ua)

15、;%F(1)= -0.0000 - 2.0480i/33点DFT计算程序-/离散傅里叶变换的计算公式:;/分离实部与虚部后有:;k=0,1,2,32/;k=0,1,2,32/为了计算方便,将正弦余弦数值事先做成一张表,其中的数值放大1000倍。intSINTAB33=1000,982,;intCOSTAB33=0,189,;/-void DFT33(int DR,long DY)Uint16k,n,t;/实部放在DY0-DY15中;for(k=0;k<16;k+)/虚部放在DY16-DY31中;DYk=0;DYk+16=0;for(n=0;n<33;n+)t = n*k;while

16、(t >= 33)t -= 33;DYk += (long)DRn*COSTABt;DYk+16 -= (long)DRn*SINTABt;DYk=DYk/16500;/正弦余弦表系数及采样点系数DYk+16=DYk+16/16500;DY32=sqrt(DY1*DY1+DY17*DY17);/基波幅值/-嵌入式系统设计数字时钟设计(动态显示)一 技术要求:利用单片机实验箱实现数字时钟显示分:秒的数值。进一步利用键盘实现时钟的设定功能(只使用4个建即可实现设定,即:设定/返回,分/秒切换,增量和减量。设定时相应的内容闪动显示)。二 功能实现与系统结构:利用单片机的定时器中断实现5毫秒的定

17、时(动态显示处理),再利用软件对5毫秒定时进行计数。计数值为TCT,满200时即为1秒,秒计数器SCT加1,同时TCT清零。满60秒则分计数器MCT加1,同时秒计数器清零。秒计数器改变同时刷新显示。三 硬件设计:见实验指导书电路图。四 软件设计:主程序初始化后即进入等待循环,所有时钟的处理均在定时器中断中完成。动态显示频率为5*4=20毫秒(50Hz),这是比较合适的频率。每次定时中断需要更新显示位,因此需要设置一个显示位计数器(0-3)。LED数码管显示需要使用字模查表的方法实现。先建立一个字模表:codeuchar tab=0x18, ;定时器中断函数需要使用中断函数的说明,具体内容见教材

18、108页。void timer0(void) interrupt 1/<using 1>参考程序流程框图见附图。五 系统调试:利用系统提供的调试工具实现所需要的功能。具体程序可以参考教材中的例子(实验Y2与Y3)。无设置功能的程序流程框图:入口开始动态显示处理TCT+1时钟初始化TCT>=200?定时器初始化SCT+1,TCT=0原地踏步(停机)SCT>=60?MCT+1,SCT=0MCT>=60?MCT=0返回程序中的一些细节需要仔细分析和调试。程序的功能越多,发生问题(bug)的几率也越高,因此需要通过调试发现和解决问题(Debug)。开始增加设置功能的程序流

19、程框图:时钟初始化定时器初始化键按下?键抖动处理设置?设置切换为了实现时钟设置功能,需要设置若干标志:设置/运行标志,分/秒设置标志,分/秒切换?切换操作以及闪烁显示的标志(位变量set,ms,df)为了简化程序设计,在定时中断服务程序增量?中利用设置/运行标志实现分支处理。增量操作当该标志为0时,进行正常的时钟计数处理。减量?当该标志为1时,利用原来的5毫秒计数器实现0.5秒闪烁处理。减量操作入口中断服务程序流程框图如下:动态显示处理设置?设置闪烁显示正常时钟显示TCT+1TCT=0,切换dfTCT+1TCT>=200?TCT>=100?返回SCT+1,TCT=0分/秒?MCT+

20、1,SCT=0SCT>=60?df=1?df=1?分消隐MCT=0MCT>=60?秒消隐分显示秒显示返回单片机应用系统软件的开发过程与工具单片机应用系统软件的开发过程大致如下:1. 编写程序,排除语法错误。2. 纯软件调试(无需仿真器)。3. 与硬件联合调试(需要仿真器)。4. 将程序写入CPU。5. 独立运行测试。单片机应用系统的调试需要一些开发环境与工具的支持,如下图所示。开发工作站人机交互设备调试工具(仿真器)目标板其中,目标板就是用户所设计的完整的单片机应用系统硬件电路板。用户在开发工作站上完成程序的编辑、编译、软件仿真等工作,然后将程序下载到调试工具内,由调试工具操纵目标

21、板运行程序。同时将有关的运行信息传送到开发工作站,使用户能够看到有关的运行结果。经过反复交互,完成DEBUG的过程。调试工具(仿真器)有低档简易型和高档完整型之分。前者需要占用目标板的部分资源,且一般无法对单片机的所有内部功能模块进行完整的仿真。后者则不占用目标板的任何资源,且能够对单片机的运行是实现完整的仿真。正因为如此,后者的成本也要高得多。随着电子技术和计算机技术的进步,许多微处理器已经具有了ISP(In System Programming)的功能。在这个功能的支持下,配合一定的软件,可以使一些微处理器具备简单仿真器的功能。在这样的系统中,可以不使用专用的调试工具完成一般系统的调试。我

22、们所设计的单片机实验系统就是这样的一个装置。目标板单片机在这个系统中,在单片机的内部事先已经驻留了一个监控软件(Monitor)。这个监控软件能够通过通信接口与上级计算机进行通信,接收上级计算机发出的命令与数据(程序),并将单片机中的有关信息传送回来。这个监控软件需要占用单片机的存储器空间,并占用单片机的某些内部资源:程序ROM:BLOCK1的0000-0FFFH;BLOCK0的FC00-FFFFH;内部数据RAM:8字节堆栈空间。串行通讯接口SPI及定时器T2。SST系列单片机所具有的看门狗和软件复位功能。大家在理解了这个应用系统的工作原理后,就应该明白一些简单的操作规程:在调试状态时必须保

23、证目标板的供电与联机正常;程序连续运行时不能在上级计算机上停止程序的运行;等等。嵌入式系统设计参数设置程序设计智能化测控系统经常需要设置一些参数,例如前面的数字时钟就需要设置时间和日期、闹钟等。参数的设置是通过人机接口实现的,显示器件为数码管或液晶屏。为了减少操作按键的数量,通常采用按键复用以及增量调整的方法。具体来说,不管多少个参数需要设置,通常情况下只要4个按键就可以实现。这4个按键的功能(名称)为:设置/取消、确认/转移、增量、减量。通过一些实例(例如变频器)可以清楚地了解这4个按键是如何配合工作的。参数设置程序需要解决几个方面的问题:第一,正确识别按键,包括消除按键抖动和重键,有时还要

24、识别组合键和超时未按键(空键)。同时,还要兼顾不同操作者的操作习惯(按键速度)。第二,不同的参数修改时有不同的上下限和缺省值。第三,要能够快速修改参数,以便再短时间内完成参数数值的大范围变化修改。第四,重要的参数进入设置界面需要输入密码,参数修改完成后需要确认操作才能认可。键盘处理的程序设计要根据具体的应用和要求进行。例如一个数字秒表,启动和停止秒表的按键处理就完全可以由主程序完成,且无需消除抖动处理。前面的数字时钟程序键盘的处理也比较简单,可以在主程序中完成。但是由于牵涉到动态显示,比较合理的处理方法是由主程序和中断服务程序共同完成键盘处理的所有功能。而要实现象变频器这样复杂的功能,则需要仔

25、细规划和分配主程序与中断服务程序的功能,并进行仔细和全面的调试,才能避免出现不希望的结果。一基本要求设计一个参数设置功能的程序。参数号为0-9,每个参数的缺省参数值、上限与下限由表格给定(可以如下设置)。缺省值:为参数号乘以10+5:5,15,25,;参数上限:100,110,120,。参数下限:0,10,20,30,。主程序为数字时钟程序。按下设置键后进入设置状态,此时最左位显示参数号(带小数点),右边三位显示参数值。按下增量及减量键后参数号变化,相应的参数值也随即显示出来。按下确认键后参数值闪烁,此时再按下增量及减量键则参数值改变。再次按下确认键后参数修改成功,参数值停止闪烁。若此时按下设

26、置键则参数不修改(取消修改),并返回原来的状态(参数值不闪烁)。再次按下设置键则返回主程序(数字时钟)。进一步的功能是实现参数值的快速修改。在参数值修改状态下,按下增量及减量键超过2秒,参数值要能够快速变化(连续加减),直至上限或下限。每次按键只要在2秒之内,数值只能变化1。同时,若15秒未按键,则自动退出当前状态,直至返回主程序。再进一步,将参数号增加到0-99,参数值的范围增加到4位数。进入参数设置时先显示“Pr.+参数号”,按下确认键后再显示参四位参数数值(闪烁)。快速增减时各位数变化达到10后,十位数快速增减;再次达到10后,百位数快速增减;直至最高位。二系统结构这个程序的基本结构与数

27、字时钟基本相同,只是键盘处理需要利用中断来实现(键盘扫描)。考虑到人手的按键操作每秒钟不会超过10次,因此键盘扫描的频率可以确定为10Hz。两次键盘扫描的间隔为100毫秒,这样也就顺便解决了消除按键抖动的问题。为了实现键盘扫描的所有功能,必须设置相应的状态与变量:1. 状态标志、指针:运行/设置/修改。2. 键盘处理的输入与输出变量,中间暂存变量3. 空键与长键的识别,必须增加相应的键盘扫描计数器。4. 各个按键的代码,空键与长键也有相应的键值代码。程序的设计分为定时器中断与主程序两个部分。键盘扫描与识别在中断服务程序中完成,然后将键值代码传送给主程序。主程序根据键值代码再进行相应的操作与处理

28、,这样两者相互配合完成参数设置的功能。三程序框图开始主程序流程框图:时钟初始化定时器初始化键操作?注意:此处是判断中断服务程序是否传送过来键值信息,并非直接判断按键。操作1键值1?键值2?操作2操作N键值N?以上仅仅是粗略的框图,实际上每个操作还要根据情况再进行细化。注意在每个操作完成后必须将传送键值的变量清除,否则会重复执行操作。键盘扫描程序与动态显示时钟程序统一使用5毫秒的定时器中断,在100毫秒时执行键盘扫描即可。在程序中采用的符号定义如下:kin:键盘输入变量,能够表示所有按键状态的数值。kout:键盘输出变量,将识别后的键值传送给主程序。ktmp:中间暂存变量。Kcnt:键盘扫描计数

29、器,用于空键与长键的识别。按键代码如下:设置/取消:KSET,确认:KENT,增量:KINC,减量:KDEC,空键:KEMP。中断服务程序流程框图如下(仅表示出键盘扫描部分,需要仔细分析与理解):键盘处理入口kin=空?无键按下YN有键按下ktmp=空?ktmp=空?YNY无按键Nktmp=kinkcnt=0kcnt+1kcnt+1键在2秒内松开kout=ktmpktmp=空kcnt=0Kcnt>40?Kcnt>200?Kout=KEMPkcnt=0Y是否+/-?kout=KINC/KDEC;kcnt-1;键盘处理出口框图中长键的处理只给出了增量键的处理,还有待完善。相应的程序请同

30、学们自己编写并进行调试。快速加减以及位切换的框图及程序也请同学们自己完成,鼓励自己创新!数据的掉电存储 参数设置完成后一般都需要存储在非易失性存储器中,这种存储器在掉电后也能长期保持数据不变。目前采用较多的是93系列和24系列的产品。1.从简单的串行转并行接口4094理解时序的概念和基本的编程方法。2.了解93C46的基本命令、时序的组成与编程方法。3.EEPROM的编程需要比较准确的时序,并且一个操作要在规定的时间内完成,否则芯片内部会超时复位。4.24系列芯片的编程请参考教材。4094操作参考程序如下:void dpout(uchar cnt)uchark;STR=1;STR=1;/重复操

31、作,增加可靠性并延时for(k=0;k<8;k+)if(cnt&(0x80>>k)DTA=1;else DTA=0;CLK = 1;CLK = 1;CLK = 0;CLK = 0;STR=0;STR=0;关于单片机的I/O端口单片机的I/O端口用于数字量的输入与输出,但是由于单片机的引脚数量少,I/O端口都是功能复用的(即I/O端口有多种功能)。单片机的I/O端口有单向和双向之分。大部分的I/O端口都是双向口。而双向口又分为真双向口和准双向口。MCS-51系列的单片机都是准双向口(注意MCS-51单片机的教材中,对于P0口的描述容易造成理解错误)。所谓真双向口与准双向

32、口的区别,仅仅是输出电路的形式不同。真双向口为双管电路,而准双向口为单管电路。真双向口在实用前,必须进行初始化定义。对于功能复用的引脚,先要定义功能,然后再定义输入与输出(例如微芯公司的单片机)。准双向口即可用于输入,也可用于输出,且在使用前一般无需定义。但是准双向口在用于输入时必须先输出1,这是由于准双向口的电路结构造成的。准双向口在使用时要注意两个问题。一是并联问题,二是驱动能力问题。所谓并联问题,是指在实际应用中不同芯片的准双向口可以并联。而并联的结果是“与”的关系,即只要电路中有一个芯片输出低电平,结果就为低电平。真双向口与准双向口的驱动能力有很大的差异。真双向口的高电平输出驱动能力(

33、输出电流)与低电平驱动能力(输入电流)基本相同。而准双向口则不然,一般情况下,准双向口的高电平输出驱动能力(输出电流)远远低电平驱动能力(输入电流)。准双向口的高电平驱动能力取决于上拉电阻,而一般情况下这个上拉电阻还是比较大的。MCS-51单片机的I/O端口高电平驱动能力只有几毫安,而P0口则根本没有上拉电阻。所以,用户需要根据负载大小外接合适的上拉电阻。在许多实际应用中,单片机的引脚都会与各种各样的芯片连接。详细了解单片机的引脚性能,对于硬件设计与软件编程都是不可缺少的。嵌入式系统设计温度测量与控制系统一、温度测量温度测量与与控制在工业生产和日常生活中非常常见。典型的工业过程如冶金、化工、机

34、械、轻工等行业都有应用。家用电器中如热水器、空调、厨房用具中也具有此项功能。因此温度测量与控制也成为教学中的典型内容。温度测量与控制需要有相应的检测元件与执行元件,即传感器与加热器。传统的检测温度传感器有:1. 热电偶。2. 热敏电阻。3. 半导体温度敏感元件。4. 远红外检测。5. 特殊检测器件。采用传统温度检测元件需要对信号进行调理(放大、滤波、电平变换、A/D转换)才能转换为计算机能够处理的数字信号。近年来,出现了一种新型的数字温度传感器。它是将半导体温度传感器、放大、滤波、A/D转换、数字调制与通信接口集成在一个芯片内的高性能器件,大大简化了应用电路,因此在实际应用中获得非常广泛的应用

35、。典型的器件就是DALLAS公司生产的DS18B20。DS18B20的应用实例已经很多,可以从各种途径找到单片机与DS18B20的接口程序。一旦完成了温度的测量,接下来就是如何实现温度控制的问题了。温度的控制有各种不同的方法,执行元件也有不同,其中最为常见的就是电加热。二、电加热温度控制电加热通过控制电流的大小来实现加热量的控制。电加热使用的电源也有几种不同的种类:直流电源、交流电源和中频电源。电加热也有各种不同的控制方法,简单归纳如下:1. 开关控制。2. 周波数控制。3. 导通角控制。4. PWM控制。前两种属于间断控制,后两种属于连续控制。开关控制是最为简单的控制形式:当温度低于设定值时

36、,接通开关开始加热;当温度高于设定值时,断开开关停止加热。系统会通过自然散热降温。大多数家用电器的温度控制都是采用这种控制形式(冰箱、空调等)。控制元件甚至可以采用简单的双金属片即可实现。周波控制是在使用交流电源加热时的一种控制方式,通过控制电源接通的周波数来实现温度的控制。这是由于控制交流电的控制元件可以采用双向可控硅,而可控硅一旦导通就不能自己关断,必须靠交流电的过零点关断。为了减少电源导通时的冲击,采用过零点触发,因此交流电源的导通时间就是电源周期的整数倍。由于温度系统是大惯性系统,采用周波数控制能够实现对于温度的高精度控制,在工业生产中很实用(采用固态继电器作为控制元件)。导通角控制是

37、采用可控硅控制交流电源导通的角度来调节平均电流的大小。在电工学、电力电子技术等课程中已经有详细的介绍。导通角控制技术已经很成熟,只是在实际应用中容易造成对于电网的谐波干扰,因此今后的应用会越来越受到限制。PWM控制是近年来发展起来的一种新型控制技术。PWM控制的原理虽然早就有,但是由于控制器件的原因一直没有大规模的应用。随着新型电力电子技术与工艺的发展,出现了适合PWM控制的新型器件:VMOS、IGBT、GTO等等。这使得PWM技术的应用得以迅速发展。采用PWM技术的优点是非常明显的,效率高、控制容易、减少谐波污染等。目前几乎所有的电力控制系统都尽可能地使用了PWM控制技术,典型的产品如变频器

38、、开关电源等。三、单片机实现PWM控制的方法由于PWM控制的优越性,目前很多单片机都具有PWM控制的功能模块。各种单片机实现PWM控制的原理基本相同,但是在具体编程时会有比较大的差别,必须遵循各自的使用规定。对于没有PWM控制功能的单片机,也可以利用软件和现有的功能模块实现PWM控制的功能。具体来说由两种方法:方法一:利用软件实现PWM功能。先设置一个软件计数器counter,然后编程以一定的速率使counter增量(达到最大后自动归零,相当于输出一个锯齿波)。每次完成增量后即将counter的数值与给定的PWM值进行比较,如果counter大于PWM则输出低电平,反之则输出高电平。这样PWM

39、的数值越大,输出高电平的时间就越长。增量的定时可以用软件实现,也可以用中断实现。PWM值计数器PWM输出信号方法二:利用定时器实现PWM功能。方法一所实现的PWM功能有一个缺点,就是过多占用了计算机的资源,且PWM的载波频率较低。为此可以采用定时器中断来产生高效率的PWM信号。对于MCS-51系列的单片机,具体做法是将定时器设置为方式1并产生中断,每次中断时切换输出信号的电平状态,并确定到下一次中断所需要的定时时间。例如,单片机以1KHz的载波频率输出PWM信号,设单片机的时钟频率为12MHz,则可以计算出对于50%占空比的PWM信号,每次定时器中断的间隔为500微秒,则应该装入的计数器初值为

40、65536-500 = 65036。如果占空比为10%,则PWM信号输出高电平的持续时间为100微秒,相应的计数器初值为65536-100 = 65436。输出低电平的持续时间为900微秒,相应的计数器初值为65536-900 = 64636。这样就能够根据给定的PWM值(或占空比0-100)输出相应的PWM信号了。实现这个功能的程序非常简单,学生应该可以自己完成。四、温度控制的控制算法由于温度系统是大惯性系统,有时还会有明显的滞后现象(纯延时),因此在控制理论与实践中成为一个专门的研究内容。目前对于温度控制系统的控制算法有很多,具有代表性的有:开关控制、PID控制、Dahlin算法和Smit

41、h预估控制算法。温度自动控制系统的结构图如下图所示:各种形式的控制器对象输入(设定)euy 输出-传感器负反馈1. 开关控制。前面讲过开关控制是最为简单的控制形式,在对精度要求不高的应用中还是可以使用的。此时温度的变化是震荡形式的,即温度在设置的温度点附近形成震荡。如果震荡很频繁,会对开关元件的触头造成损害,使其寿命大幅缩减。为此需要加入滞环(类似施密特触发器)。2. PID控制算法与参数整定。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技

42、术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。PID自动控制系统的结构框图:PID控制器对象输入(设定)euy 输出-传感器负反馈实际系统的结构应该如下图(有干扰):干扰对象PID控制器传感器输入(设定)e u +y 实际输出-负反馈传感器输出

43、为简化可以假设传感器的输出与实际温度是相同的,即传感器的传递函数是1。PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)与输出u(t)的关系为:u(t)=Kp(e(t)+1/TIe(t)dt+TD*de(t)/dt)式中积分的上下限分别是0和t,因此它的传递函数为:G(s)=U(s)/E(s)=Kp(1+1/(TI*s)+TD*s)其中Kp为比例系数; TI为积分时间常数; TD为微分时间常数。PID是以它的三种纠正算法而命名的,这三种算法是:比例- 控制当前,误差值和一个负常数P(表示比例)相乘,然后和预定的值相加。P只是在控制器的输出和系统的误差成比例的时候成

44、立。比如说,一个电热器的控制器的比例尺范围是10°C,它的预定值是20°C。那么它在10°C的时候会输出100%,在15°C的时候会输出50%,在19°C的时候输出10,注意在误差是0的时候,控制器的输出也是0。积分 - 控制过去,误差值是过去一段时间的误差和,然后乘以一个负常数I,然后和预定值相加。I从过去的平均误差值来找到系统的输出结果和预定值的平均误差。一个简单的比例系统会振荡,会在预定值的附近来回变化,因为系统无法消除多余的纠正。通过加上一个负的平均误差比例值,平均的系统误差值就会总是减少。所以,最终这个PID回路系统会在预定值定下来。

45、导数 - 控制将来,计算误差的一阶导数,并和一个负常数D相乘,最后和预定值相加。这个导数的控制会对系统的改变作出反应。导数的结果越大,那么控制系统就对输出结果作出更快速的反应。这个D参数也是PID被称为可预测的控制器的原因。D参数对减少控制器短期的改变很有帮助。一些实际中的速度缓慢的系统可以不需要D参数。用更专业的话来讲,一个PID控制器可以被称作一个在频域系统的滤波器。这一点在计算它是否会最终达到稳定时很有用。如果数值挑选不当,控制系统的输入值会反复振荡,这导致系统可能永远无法达到预设值(例如比例系数太大时就是如此,用自动控制的术语来说就是不稳定)。PID控制器的参数整定是控制系统设计的核心

46、内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际

47、运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期(一般为对象纯延时时间的十分之一以下)让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数Ks和临界振荡周期Tk;(3)选择控制度。所谓控制度就是以模拟调节器为基准,用数字控制器进行控制的控制效果。例如,当控制度为1时,就是指数字控制器与模拟控制器的控制效果一样;控制度为2时,则数字控制器的控制效果仅为模拟控制器的一半。(4)在一定的控制度下通过查表得到PID控制器的参数。控制度控制规律TKpTiTd1.05PI

48、0.03 Tk0.53/Ks0.88 TkPID0.014 Tk0.63/Ks0.49 Tk0.14 Tk1.2PI0.05 Tk0.49/Ks0.91 TkPID0.043 Tk0.47/Ks0.47 Tk0.16 Tk1.5PI0.14 Tk0.42/Ks0.99 TkPID0.09 Tk0.34/Ks0.43 Tk0.20 Tk2.0PI0.22 Tk0.36/Ks1.05 TkPID0.16 Tk0.27/Ks0.40 Tk0.22 Tk*Kp所对应的应该是控制量的大小(PWM占空比0-100%)。在实际调试中,只能先大致设定一个经验值,然后根据调节效果修改。对于温度系统:P(%)20

49、-60,I(分)3-10,D(分)0.53对于流量系统:P(%)40-100,I(分)0.11对于压力系统:P(%)30-70,I(分)0.43对于液位系统:P(%)20-80,I(分)15在编写PID控制程序时,还要对控制问题进行具体分析,确定具体的控制过程和数据范围。对于我们所控制的温度系统,实际上要分为三段进行控制:全开;温度低于规定值u = PWM(PID)控制;温度低于设定值,但在规定值内关闭;高于设定值,自然降温上面所说的规定值是根据具体应用和实际经验设计的。例如我们可以在温度低于设定值5度的范围内进行PID控制。低于设定值5度以下时直接进行全开控制。在具体实施PID控制时还有所谓

50、的位置型和增量型算法。两者在本质上是相同的,只是在实际应用时,增量法的计算量小(不用计算累加和),抗干扰能力强,因此更为实用。位置型算法:增量型算法:在编写控制程序时要先进行数据核算。数据核算的目的在于根据实际的传感器输出数据范围确定合理的控制比例系数,以使系统在最大误差时正好能够具有最大的控制输出。例如,我们如果规定在温度低于设定值5度的范围内进行PID控制,则最大的温度误差就是5。但是如果我们要求控制精度达到0.1度,则温度值也应该取1位小数。这样最大温度误差值就是50(注意在单片机中尽量不使用浮点数)。如果比例控制的系数取值范围为0-100,则最大的计算控制量就可达5000。如果PWM控

51、制量的取值范围为0-255(这样便于增量操作),则在程序中就需要将计算控制量除以5000/255=19.6,然后再作为PWM控制量输出。对于微分控制和积分控制,也需要采用同样的方法。由于微分,特别是积分容易出现饱和,在实际处理时还必须进行限幅处理。在实际应用中会有3个计算控制量,即比例控制量、微分控制量和积分控制量。这三个量可以相互叠加(同号),也可以相互抵消(异号)。为了避免出现超过最大允许值的情形出现,通常要对最后的计算输出量再进行限幅处理。最后,首次进入PID控制时需要对有关变量(累加和、前次误差值)进行初始化,一般情况下是清零。由于我们进行的是单边控制,一旦温度达到设定值就关闭加热电源。温度降低后再次启动PID控制时也需要重新进行初始化(此处保留以前的数据是不合理的)。例题:设定温度为60度,T=0.2秒,Kp=0.47,Ti=2.35秒,Td=0.8秒。对于如下的采样数据序列,计算采用增量型PID控制算法的控制输出序列。解题:先计算系数Q0=4.81,Q1=8.44和Q2=3.72,再计算控制量增量。序列k0123456789采样s55.656.056.256.656.957.257.758.258.859.6误差e4440383431282318124u212-1787u=u0+312134141其中误差放大了10倍,最后一行的控制输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论