为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

水温控制系统

2018-01-13 50页 doc 473KB 43阅读

用户头像

is_682974

暂无简介

举报
水温控制系统水温控制系统 电气信息工程学院毕业设计(论文) 水温控制系统 水温控制系统 文 摘 为了实现高精度的水温控制,本文介绍了一种以SPCE061A单片机为控制核心、以PID算法控制以及PID参数整定相结合的控制方法来实现的水温控制系统。文章着重介绍核心器件的选择、控制算法的确定、各部份电路及软件的设计。SPCE061A单片机完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统的特点:电路结构简单、程序简短、系统可靠性高等。本次设计还充分利用了SPCE061A单片机成熟的语音处理技术和PC机的图形处理功能,来实现了...
水温控制系统
水温控制系统 电气信息工程学院毕业设计(论文) 水温控制系统 水温控制系统 文 摘 为了实现高精度的水温控制,本文介绍了一种以SPCE061A单片机为控制核心、以PID算法控制以及PID参数整定相结合的控制来实现的水温控制系统。文章着重介绍核心器件的选择、控制算法的确定、各部份电路及软件的设计。SPCE061A单片机完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统的特点:电路结构简单、程序简短、系统可靠性高等。本次设计还充分利用了SPCE061A单片机成熟的语音处理技术和PC机的图形处理功能,来实现了语音播报温度和打印温度变化曲线的要求。 关键词 SPCE061A单片机;Pt1000;PID 自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。 目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。 温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。目前,我国在这方面总体技术水平处于20世纪80年代中后期水平。成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且适应于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。现在,我国在温度等控制仪表业与国外还有着一定的差距。 温度、压力,流量和液位是四种最常见的过程变量,其中温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。温度控制在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。尽管温度控制很重要,但是要控制好温度常常会遇到意想不到的困难。 随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。 1 电气信息工程学院毕业设计(论文) 水温控制系统 本文主要介绍单片机温度控制系统的软件设计过程,其中涉及系统结构设计、元器件的选取和控制算法的选择、程序的调试和系统参数的整定。在系统构建时选取了凌阳科技公司提供的一款新产品SPCE061A芯片作为该控制系统的核心。温度信号由PT1000和电压放大电路提供。通过PID算法实现对电炉功率和水温控制。使用SSR固态继电器作执行部件。同时,具有温度数字语音播报和显示啊功能。 系统控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变,具有较好的快速性与较小的超调。该系统为一实验系统,要求系统有控制能力,实现对主要可变参数的实时监控。因此系统控制部分程序设计在µ‘nSPTM集成开发环境中编辑、编译、链接、调试以及仿真的。使用软件编程既减少了系统设计的工作量,又提高了系统开发的速度,使用软件还可以提高所设计系统的稳定性,避免了因个人设计经验不足而产生过多的系统缺陷。 1 系统 1.1 水温控制系统设计任务和要求 该系统为一实验系统,系统设计任务: 设计一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。 系统设计具体要求: ? 温度设定范围为40,90?。 ? 环境温度降低时(例如用电风扇降温)温度控制的静态误差?1?。 ?采用适当的控制方法,当设定温度突变(由40?提高到60?)时,减小系统的调节时间和超调量。 ?用十进制数码管显示水的实际温度。 ? 在设定温度发生突变(由40?提高到60?)时,自动打印水温随时间变化的曲线。 1.2 水温控制系统关键部分确定 水温控制系统是一个过程控制系统,在设计的过程中,必须明确它的组成部分。过程控制系统的组成部分有:控制器、执行器、被控对象和测量变送单元,其框图如图1所示。 图1 过程控制组成框图 2 电气信息工程学院毕业设计(论文) 水温控制系统 由图可知,在这个系统的设计中,主要设计如图几个部分。除此之外,根据题目要求,还要选取合适的控制算法来达到系统参数的要求。对于执行器件、测量变送元件将在部分电路设计中有说明。在这个部分我主要是对控制器的确定和控制算法的选择作一个详细的介绍。因为这两部分是实现本系统控制目的的关键。它们选取的好坏将直接影响着整个系统实现效果的优劣,所以这是一项不容怱视的工作。 1.2.1 CPU(Computer processing Unit)中央处理器 ? 方案一:此方案采用SPCE061A单片机实现。SPCE061A单片机除具有体积小,集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点外,内置8路ADC,2路DAC。在实现控制系统中,采用SPCE061A为前端采集单元,具有较好的同步性和实时性。且内嵌32K字闪存FLASH,处理速度高,集成开发环境中,配有很多语音播报函数,实现语音播报极为方便。另外,比较方便的是该芯片内置在线仿真、编程接口,可以方便实现在线调试,这大大加快了系统的开发与调试。 ? 方案二:此方案采用89C51单片机实现,此单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。但在数据采集时必须使用A/D(数/模转换),且在选择A/D时需考虑3个方面的内容:一是如何针对系统的需求,选择合适的A/D器件;二是如何根据所选的A/D器件设计外围电路与单片机的接口电路;三是编写控制A/D器件进行数据采集的单片机程序,这些大大加大了工作量。若要增加语音播报功能,还需要外接语音芯片及接口,加繁了外围电路设备,大大增加了软件实现难度。此外51单片机内部无在线仿真、编程接口,就需要用仿真器来实现软硬件调试,较为繁琐。 将两个方案一比较便可得出一个结论,采用凌阳单片机来实现本题目,不管是从结构上,还是从工作量上都占有很大的优势,所以最后决定用SPCE061A作为该控制系统的核心。 1.2.2 常用温度控制系统分析 温度是一个普通而又重要的物理量,在许多领域里人们需对温度进行测量和控制。长期以来国内外科技工作者对温度控制器进行了广泛深入的研究,产生了大批温度控制器,如性能成熟应用广泛的PID调节器、智能控制PID调节器、自适应控制等。此处主要对一些控制器特性进行分析以便选择适合的控制方法应用于改造。 ? 常规PID PID在温度控制中已使用数十年,是一种成熟的技术,它具有结构简单、易于理解和实现,且一些高级控制都是以PID为基础改进的。在工业过程控制中90%以上的控制系统回路具有PID结构,在目前的温度控制领域应用十分广泛,即使在科技发达的日本,PID在其温度控制应用中仍然占80%的比例。其主要构成如图2所。 由图可知PID调节器是一种线性调节器,这种调节器是将设定值w与实际输出值y进行比较构成偏差 3 电气信息工程学院毕业设计(论文) 水温控制系统 图2 模拟PID控制 e,w,y 并将其比例、积分、微分通过线性组合构成控制量。其动态方程为: det()utKetKetdtK,,,()()()pid,dt (1) K其中---为调节器的比例放大系数 p Ki---为积分时间常数 Kd---为微分时间常数 PID调节器的离散化表达式为 Kdu(k),Ke(k),KTe(k),[e(k),e(k,1)] piT 其增量表达形式为: ,u(k),u(k),u(k,1) Kd,K[e(k),e(k,1)],KTe(k),[e(k),2e(k,1),e(k,2)] piT 其中T为采样周期。 KK可见温度PID调节器有三个可设定参数,即比例放大系数、积分时间常数、微分时间常piK数。 d 比例调节的作用是使调节过程趋于稳定,但会产生稳态误差; 积分作用可消除被调量的稳态误差,但可能会使系统振荡甚至使系统不稳定; 微分作用能有效的减小动态偏差。 在实际使用中,在满足生产过程需要的前提下,应尽量选择简单的调节器,这样,既节省投资,又 便于维护. 常规PID控制调节器是一种应用广泛技术成熟的控制方法,它能满足一般工业控制的要 4 电气信息工程学院毕业设计(论文) 水温控制系统 求,其优点是原理简单、使用方便、适应性广。采用PID控制,控制效果的好坏很大程度上取决于PID三个控制参数的确定。对一个控制系统而言, 只要参数选择适当,都能取得较好的控制效果。 ? 自动控制方式 为了实现温度的自动控制,必须要组成一定的系统结构。如图3,该控制系统是把输出量检测出来,经过物理量的转换,再反馈到输入端去与给定量进行比较(综合),并利用控制器形成的控制信号通过执行机构SSR对控制对象进行控制,抑制内部或外部扰动对输出量的影响,减小输出量的误差,达到控制目的。在此控制系统中单片机就相当于常规控制系统中的运算器控制器,它对过程变量的实测值和设定位之间的误差信号进行运算然后给出控制信息。单片机的运算规则称为控制法则或控制算法。 图3 自动控制框图 常用的控制算法有以下几种 ? 经典的比例积分微分控制算法。 ? 根据动态系统的优化理论得到的自适应控制和最优控制方法。 ? 根据模糊集合理论得到模糊控制算法。 自适应控制、最优控制方法以及模糊控制算法是建立在精确的数学模型基础上的,在实时过程控制中,由于控制对象的精确数学模型难于建立,系统参数经常发生变化,运用控制理论进行综合分析要花很大代价,主要是时间。同时由于所得到的数学模型过于复杂难于实现。在实时控制系统中要求信号的控制信号的给出要及时,所以在目前的过程控制系统中较少采用自适应控制、最优控制方法和模糊控制算法。目前在过程控制中应用较多的还是PI控制算法、PD控制算法和PID控制算法。 2 系统硬件设计 2.1 总体设计框图及说明 本系统是一个简单的单回路控制系统。为了实现温度的自动测量和控制,本系统采用了SPCE061A单片机作为系统的控制中心,由数据采集模块检测到的温度信号传入单片机,并根据接收到的数据进行处理和控制运算,同时将数据保存,以便与下一次采样值进行比较,通过软件对所测电压进行数字非线性校正,同时由显示器进行实时显示。根据系统程序控制,进行PID运算以及输出控制, 5 电气信息工程学院毕业设计(论文) 水温控制系统 最终由CPU控制加热回路SSR的通断,达到调功的目的。系统还提供了键盘设定模块及打印机接口,便于用户与系统之间的对话。系统的硬件结构较简单,由若干个功能模块组成。具体结构图及说明如下, 图4 系统结构框图 键盘设定:用于温度设定,共三个按键。 数据采样:将由传感器及相关电路采集到的温度转为电压信号,送入SPCE061A相应接口中,经AD转换后,换算成温度值,用于播报和显示。 数据显示:采用了共阴极数码管LED5641A进行显示设置温度与测量温度。 串行口传输:将采样温度值,上传至PC机,以利用PC的图形处理功能来描绘曲线并打印。 继电器/热电炉:通过三极管控制继电器的开关来完成对热电炉的功率控制。 语音播放:语音播放水温设置温度,并播报整数温度变化。 2.2 部分外部电路设计 由总体框图可以看到,整个系统的设计都离不开SPCE061A的输入/输出接口。在单片机中,I/O口就是单片机与外设交换信息的主要通道。输入端口从外界接收检测的输入信号、键盘信号等各种开关量信号;输出端口向外部输出处理结果、显示信息、控制命令、驱动信号等。SPCE061A内部有并行和串行两种方式的I/O口。两个16位通用的并行I/O端口即A口和B口,这两个口的每一位都可通过编程单独定义为输入或输出口,通常对某一位的设定包括三个基本项:数据向量Data、属性向量Attribution和方向控制向量Direction,三个向量的每个对应位组合在一起形成一个控制字,用来定义相应I/O口位的输入、输出状态和工作方式。A口的IOA0,IOA7用作输入口时具有唤醒功 6 电气信息工程学院毕业设计(论文) 水温控制系统 能,常用于键盘输入。B口除常规的输入输出功能外,还具有特殊功能。比如后面串行通信用到的IOB7口和IOB10口,它们在此电路中就充当的是串行数据的接收和发送端口。具体的用法将在后面的电路设计中用到。 2.2.1 键盘设置电路 IOA0接KEY1,IOA1接KEY2,IOA2接KEY3。 KEY1: 设置温度的十位数;0—9 KEY2: 设置温度的个位数;0—9 KEY3: 工作模式选择键,共有三种工作模式:正常工作状态、温度重新设置、语音播报设置。 图5 键盘电路 系统上电后,数码管全部显示为零,根据按KEY1次数,十位的数码管顺序增加。同样KEY2,也如此。按KEY3后,系统开始测温,并与采集的温度进行比较,通过软件来控制电炉的开关。同时语音播报变化的整数值温度。 2.2.2 测温部分电路 如图6所示,运放采用HT9274集成芯片,温度传感器使用Pt电阻。 HT9274是微功率运算放大器,利用 CMOS 制成,提供与 LM324 、TL274 及 WT274 等相似产品完全兼容的接脚。其低操作电压及稳定的品质特性,提供了完美的输出驱动能力。HT9274 适用于低功率操作的应用,如电话局线界面、传感器放大器及一些电池操作的携带式电子产品。 采用温度传感器铂电阻Pt1000,是因为铂电阻的物理和化学性能在高温和氧化介质中很稳定、价格又便宜,常用作工业测量元件,以铂电阻温度计作基准器。此元件线性较好,在0,100摄氏度 R,R(1,At,Bt)时,最大非线性偏差小于0.5摄氏度。铂热电阻与温度关系式,其中: t02 R——温度为t摄氏度时的电阻; t R——温度为0摄氏度时的电阻; 0 A、B——温度系数 A=3.94*102/? B=-5.84*10-7/? T——任意温度 7 电气信息工程学院毕业设计(论文) 水温控制系统 因为Pt电阻在0摄氏度时,阻值为1千欧姆,在100摄氏度时,阻值为1380欧姆,则表示阻值变换从0—380欧姆,电压从0V---3.3V。 采用差动运放,通过可调分压电阻可以满足零点调节。因为Pt电阻中电流基本为1—2mA,则Pt电阻电压就在0—380mV波动。因此采用10倍电压放大。基本满足SPCE061A数模转换。 图6 测温电路 2.2.3 控制电路 此部份用于在闭环控制系统中对被控对象实施控制,此处被控对象为电炉丝,采用对加在电炉丝两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的。 对电炉丝通断的控制采用SSR固态继电器,SSR是半导体继电器,所以较小的驱动功率即可使SSR工作。它的使用非常简单,只要在控制台端加上一TTL、CMOS电平或一晶体管,即可实现对继电器的开关。 图7 热电炉控制电路 8 电气信息工程学院毕业设计(论文) 水温控制系统 图8 过零控制方式SSR工作波形 图7为通过三极管NPN8050来控制继电器的开关的,继电器采用的是带光电隔离的过零型双向可控硅AC-SSR常开式(常闭式)固态继电器,为使其实现过零控制,就是要实现工频电压的过零检测,并给出脉冲信号,由单片机控制双向可控硅过零脉冲数目。当在其输入端加入(撤离)控制信号时,输出端接通(断开),从而控制电炉与电源的通断,来达到加热或冷却炉丝的目的,最终实现使碗中水温度稳定在设定值上。 2.2.4 音频输出电路 SPCE061A提供了双通道音频输出方式。数字量分别写入P_DAC1和P_DAC2单元。DAC1、DAC2转换输出的模拟量为电流信号,分别通过DAC1和DAC2管脚输出。 图9 音频输出电路 SPCE061A内置两路10位DAC,只需要外接功放电路即可完成语音的播放.音频部分的原理图9所示,在图中可以看到两个跳线,其作用在于可以测量DAC的输出波形;另外拔掉跳线,可以断开DAC到喇叭放大的通路,使得DAC通道处于开路状态。这样便于用DAC做其他用途,用户可以用过这个跳线来加入自己的外围电路。 9 电气信息工程学院毕业设计(论文) 水温控制系统 SPY0030是凌阳的芯片,相当于LM386,但是比386音质好,它可以工作在2.4,6.0V范围内,最大输出功率可达700mW(386必须工作在4V以上,而且功率只有100mW)。 用凌阳Compress Tool事先把所需要的语音信号录制好,本系统共包括十多个语音资源,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,SPCE061A单片机具有32k闪存,使用内部flash即可满足要求。凌阳SPCE061A单片机自带双通道DAC音频输出, DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出, DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路如图所示,可以接喇叭,也可以接耳机,这为单片机的音频设计提供了极大方便。音频的具体功能主要通过程序来实现。 2.2.5 数码显示电路 图10 显示电路 本图采用了共阴极数码管LED5641A进行显示,LED5641A具有四位数码管,这四个数码管的段选a、b、c、d、e、f、g分别接在一起,每一个都拥有一个共阴的位选端。IOB0—IOB2口分别接三极管的p端,通过三极管来控制LED的片选。IOA8—IOA15口传输要显示的数据,利用其串/并转换功能,送入数码管显示。在此外接了两个电阻R-PACK4来保护LED。数据线也可直接接凌阳SPCE061A 10 电气信息工程学院毕业设计(论文) 水温控制系统 单片机的I/O口,因为I/O口输出电流很小,一般不会对LED造成很大的损坏,而它的电压值却足以驱动LED,这不像别的单片机还要外接驱动电路和电阻。采用凌阳SPCE061A单片机,将大大减化了设计过程和硬件电路. 2.2.6 串行通讯部分电路 系统设计要求控制系统能同PC联机通信,以利用PC图形处理能力打印显示温度曲线,故使用了SPCE061A的异步串行端口UART实现与PC通信。由于SPCE061A串行口电平和PC不一致,(SPCE061A的I/O为TTL电平,PC串行口为RS232电平),使用一片MAX232为进行电平转换驱动。通信速率为9600波特率。数据5秒传输一次。电路图如图11所示,MAX232的RXD1和TXD1分别接SPXEO61A的IOB10(TX)和IOB7(RX)。 图11 串行通讯电路 UART模块提供了一个全双工标准通信口,用于完成SPCE061A与外设之间的串行通信。根据RS-232的标准,SPCE061A单片机也是按照字节传输数据的。利用IOB口的特殊功能和UART IRQ中断,可以同时完成UART接口数据的接收和发送。此外,UART还可以带缓冲接收数据,即可以在读取缓存器数据之前接收新的数据。但是,如果新的数据被接收到缓存器之前一直未从中读取,先前的数据会发生数据丢失。P_UART_Data(7023H)单元用于接收和发送数据的缓存,向该单元写入数据,将发送的数据送入缓存器;读该单元取数据,可以从缓存器读出接收到的单字节数据。UART模块的接收管脚Rx和发送管脚Tx分别与IOB7和IOB10共用。 11 电气信息工程学院毕业设计(论文) 水温控制系统 3 系统软件设计 3.1 程序结构说明 任何一个系统的软件设计都离不开硬件电路的连接,所以本课题硬件设计的高度模块化决定了软件设计的模块化。硬件接口连接如下: IOA0--IOA2---KEY1---KEY3 IOA3----ADC IOA4----Relay IOA8-15----LEDa--dp. IOB0-IOB2----LEDcs1-cs3 IOB7 IOB10---UART 由此可知其程序结构应包括:主控程序模块、键盘扫描及处理子程序、采样数据处理子程序、 。 PID算法子程序、语音播报及显示等子程序几个部分。结构框图如图12 图12 程序结构图 主控程序模块在整个结构中充当管理者,管理所有子程序的调用,就相当于个人计算机的操作系统。它主要负责初始化各个I/O口,等待键盘事件的发生,并作出相应的处理。并在适当的时候调用数据采样程序,并将采样到的数据与键盘设定值比较。再通过PID计算后用以控制继电器的开断,从而控制电炉的输出功率,来达到水温的调整,并调用语音播报程序,播放水的温度。 3.2 程序流程图及部分程序 3.2.1 主程序 程序按照模块化设计,所有功能都可通过调用子程序完成,主程序较简单,流程图如图13所示。 12 电气信息工程学院毕业设计(论文) 水温控制系统 SPCE061A单片机A口的IOA0,IOA7用作输入口时具有唤醒功能,即具有输入电平变化中断功能(当输入的电平发生变化,电平由高变低或由低变高时),唤醒处于睡眠状态的CPU。对于用电池供电的追求低能耗的应用场合,可以通过软件设置应用CPU的睡眠模式以降低功耗,需要时用按键来唤醒CPU使其进入工作状态。 图13 主程序流程图 在程序编写过程中,首先还有一系列的准备工作。在这个程序中涉及到了许多的库和组成文件,主要有:main.c 、isr.asm、 key.asm、hardware.asm、 led.asm、system.asm 、sacm_user_a2000.h。 由于篇幅原因,在这篇文章中只给出了部分程序。 //===================================================================== //函数: 主程序 //语法:int main(void) //描述:语音播报、键盘扫描、温度控制 //参数:无 13 电气信息工程学院毕业设计(论文) 水温控制系统 //返回:无 //===================================================================== int main(void){ int iKeyValue; status = system_temperature_set; guifgSpeechPlay = 0; System_Initial(); PIDinit(); while(1){ System_ServiceLoop(); //键盘扫描、去抖动处理 iKeyValue = SP_GetCh(); //取键值 key_value_process(iKeyValue); //键值处理 if(guifgSpeechPlay) temperature_speech_play( ); //语音播放 if(status == system_temperature_control) display_speech_ADC_temperature(); //测量温度显示、温度播报、PID计算 Clear_WatchDog(); //清看门狗 System_ServiceLoop(); //键盘扫描 if(fOut<=0) turn_off_timerB(); } } 从主程序中可以看出,在进行一系列程序调用之前对系统进行初始化,然后再对键盘程序有所反应。进而判断是否有温度采集到,有就进行A/D转换和PID计算,将其结果用来控制继电器。 SPCE061A内置的看门狗监视器,其作用就是监测系统是否正常运行。它实际上是一个计数器,它每隔一段时间必须被人为清除(SPCE061A提供的清除周期为0.75s),否则,将产生计数溢出,使系统运行异常,导致系统复位且重新开始执行程序。看门狗监视器可以通过指令设置或屏蔽。看门狗清除寄存器P_Watchdog_Clear在SPCE061A系统正常运行时,只要每隔小于0.75s 向P_Watchdog_Clea单元写入XXXX XXXX XXXX XX01B即可清除看门狗计数器,这样便不会发生看门狗计数溢出,在正常运行时就不会导致系统被复位了。本程序中使用了Clear_WatchDog()函数,其目的就是屏蔽它的定时复位,而造成重新从开始执行程序。 3.2.2 系统初始化 系统的初始化主要包括I/O口的初始化、键盘初始化、A/D初始化等。对端口的初始化,就是 14 电气信息工程学院毕业设计(论文) 水温控制系统 对端口寄存器的相应位进行设置。在前面已经说过,要定义相应I/O口位的输入、输出状态和工作 方式,就要对三个基本项设置:数据向量Data、属性向量Attribution和方向控制向量Direction。 其控制组合如表1所示。 表1 I/O端口控制器设置 Dir AttrData 功能 唤醒功能 功能描述 ib 0 0 0 下拉 是 带下拉电阻的输入管脚 0 0 1 上拉 是 带上拉电阻的输入管脚 0 1 0 悬浮 是 悬浮式输入管脚 0 1 1 悬浮 否 悬浮式输入管脚 1 0 反相输出 否 Data数据位反相输出 1 1 同相输出 否 Data数据位同相输出 根据本系统端口A、B的不同运用,A口的高八位都是作为高电平输出与显示部分的数据端相连, 低八位的IOA0,IOA3用于键盘输入端,IOA4为输出端。B口只用到了低几位作为LED的片选输入端。 由此可以得出下列设置: IOA15-IOA12 IOA11-IOA8 IOA7-IOA4 IOA3-IOA0 Dir: 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 FF10 Attr: 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 FF10 data : 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 FF00 IOA15-IOA12 IOA11-IOA8 IOA7-IOA4 IOA3-IOA0 Dir: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 000F Attr: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 000F data : 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 000F 由此有以下I/O口初始化程序: //===================================================================== //函数: L_User_Init_IO //语法:L_User_Init_IO() //描述:初始化A口低八位为下拉电阻输入,高八位为同相高电平输出 // 初始化B口低四位为同相高电平输出, 15 电气信息工程学院毕业设计(论文) 水温控制系统 //参数:无 //返回:无 //===================================================================== .PUBLIC L_User_Init_IO; L_User_Init_IO: .PROC r1 = 0xff10; [P_IOA_Attrib] = r1; [P_IOA_Dir] = r1; r1 = 0xff00; [P_IOA_Data] = r1; r1 = 0x000F; [P_IOB_Attrib] = r1; [P_IOB_Dir] = r1; [P_IOB_Data] = r1; RETF .ENDP; 3.2.3 键盘程序 ? 键盘扫描 由于机械触点有弹性,在按下或弹起按键时会出现抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图所示。为了保证探险键识别的准确性,必须消除抖动。消抖处理有硬件和软件两种方法:硬件消抖是利用加支抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。 图14 键按下的过程 SPCE061A提供了丰富的键盘API函数,在程序编写的过程中,我们可以直接调用这些函数来完 16 电气信息工程学院毕业设计(论文) 水温控制系统 成键盘的初始化、扫描、防拌动处理和获取键值。常用的键盘API函数如下: CallF_Key_Scan_initial //键初始化 CallF_Key_Scan_ServiceLoopl //键盘扫描 CallF_Key_DebounceCnt_Down //键盘防抖动处理 CallF_SP_GetCh() //获取键值 由于SPCE06A单片机提供了一个系统资源模块,,这是建立在上述诸多模块之上的一个模块,其中许多子程序都调用了在它之下模块中的子程序,为了让上一级的程序调用本模块System.asm文件中的子程序,设有一个接口文件System.inc ,一般只需要三条调用语句。具体实现可参考图15。 图15 System.asm模块框图 //======================================================================== // 函数: System_ServiceLoop(); // 语法: System_ServiceLoop(); // 描述: 程序扫描键盘、按键去抖调度 // 参数: 无 // 返回: 无 //======================================================================== .PUBLIC _System_ServiceLoop; _System_ServiceLoop: .PROC call F_Key_Scan_ServiceLoop; //扫描键盘 call F_Key_DebounceCnt_Down; //按键去抖 RETF; .ENDP ? 键值处理 17 电气信息工程学院毕业设计(论文) 水温控制系统 图16 键值处理 3.2.4 A/D转换值处理 如图17可知,当有温度数据采样到时,调用温度均值处理程序,以防在采样过程中外界干扰而造成采样数据的不准确。然后确定温度系数,使采样转换得到的电压信号转换成温度值,并进行十进制转换,用于显示、语音播报和PID计算。其中均值处理是一个比较重要的过程,是A/D转换前必须进行的工作。下面是A/D处理子程序。 //======================================================================== //函数:void display_speech_ADC_temperature(void) //语法:void display_speech_ADC_temperature(void) //描述:整理温度显示值、语音播放资源、PID控制 //参数:无 //返回:无 //======================================================================== void display_speech_ADC_temperature(void) { float fT,K; 18 电气信息工程学院毕业设计(论文) 水温控制系统 图17 A/D转换流程图 int adc_data; static int siTlast = 0; if(G_ADC_flag){ //判断是否有温度采样 1,有 0,无 G_ADC_flag = 0; adc_data = adc_data_cmp(); adc_data /= SET_ADC_TIME; //计算温度平均值 if(adc_data >0x0255) K = 0.079; //确定温度系数 else K = 0.076; fT = adc_data * K; //换算成温度值 //将温度值转换成十进制用于LED显示 guiLED_Value[0] = (int)fT/10; guiLED_Value[1] = (int)fT%10; guiLED_Value[2] = (int)(fT*10)%10; if((int)fT != siTlast){ //判断温度的整数值是否变化 temperature_speech_index(guiLED_Value); //温度整数值语音播放排序 19 电气信息工程学院毕业设计(论文) 水温控制系统 SACM_A2000_Initial(0); //非自动方式播放的初始化 SACM_A2000_InitDecoder(DAC2); //开始对A2000的语音数据以非自动方式解码 SP_INT_IRQ6(); iAddrSpeech = speech_start_address(iaSpeech_index[0]);//语音播放始地址 guifgSpeechPlay = 1; //设置语音为播放状态 siTlast = (int)fT; } stPID.Proportion = 1; // 设置PID比例值 stPID.Integral = 0.5; // 设置PID积分值 stPID.Derivative = 0.0; // 设置PID微分值 fOut = 100*PIDCalc ( &stPID,(int)(fT*10) ); // PID计算 active(); } } 下图是数据采样的中断服务程序,此中断程序采用的是2Hz中断定时0.5秒钟采样一次。 图18 数据采样的中断程序 //======================================================================== //函数: int adc_data_cmp() //语法: int adc_data_cmp() //描述: ADC采样数据的均值处理,抗干扰作用 20 电气信息工程学院毕业设计(论文) 水温控制系统 //参数: 无 //返回: 无 //======================================================================== int adc_data_cmp() { int max; int min; int Sum; int i; max = giADC_DataSave[0]; for(i=0;i<10;i++){ if(giADC_DataSave[i]>max) max = giADC_DataSave[i]; //取出最大值 } min = giADC_DataSave[i]; for(i=0;i<10;i++){ if(giADC_DataSave[i]SetPoint*10 - 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 // 微分项 ); } 3.2.6 继电器控制 继电器是和SPCEO61A单片机的IOA4口相连的,它的开断完全取决于IOA4口的输出,即PID计 算的结果。当输出小于零说明设定值小于实际输出值,这是就要关闭电炉,同时关闭定时器B的计 时。否则如果输出值大于设定值2摄氏度时就可以开电炉对水开始加热。如果设定值与实际输出值 差值在2摄氏度以内时,我们就调用中断程序定时加热。 //======================================================================== //函数: void active() //语法:void active() //描述:PID输出值的处理 //参数:无 //返回:无 //======================================================================== void active() { if(fOut<=0){ turn_off_relay(); //温度高于设定值,关闭电炉 turn_off_timerB(); //停止计时 } else{ if(fOut>30*stPID.Proportion) //温度低于设定值2摄氏度 turn_on_relay(); //开电炉加热 else { turn_on_relay();SP_INT_TIMEB()} ;//初始化定时器,开始定时加热 } 23 电气信息工程学院毕业设计(论文) 水温控制系统 } 图19是控制程序的中断服务程序,用来对继电器定时加热。它利用中断定时器10ms确定加热时间,当加热时间未到时,继续时间累积,若加热时间到时,就调用关定时器子程序,停止计时。 图19 控制程序中断程序 3.2.7 语音播放 ? 凌阳音频简介 A 音频信号 我们所说的音频是指频率在20Hz,20KHz的声音信号,分为波形声音信号、语音信号和音乐信号三种。其中波形声音就是自然界是的声音,是声音数字化的基础。语音也可以表示为波形声音,但波形声音表示不出语言语音学的内涵,语音是对讲话声音的一种抽象,是语言的载体,是人类社会特有的一种信息交流系统,是社会交际工具的符号。音乐与语音相比更一些,是符号化了的声音。但音乐不能对所 的声音进行符号化,乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息。 B 音频信号的抽样和量化 要将音频模拟信号进行数字化处理,就必须将模拟信号转换为数字信号。模拟信号数字化有多种方法,目前采用最多的是信号波形的A/D变换法(波形编码)。它直接将时域信号 波形变换为数字序列,接收恢复的信号质量高。此外,还 参量编码等。常用的波形编码方法有脉冲编码调制(PCM调制)和增量调制(DM).数字音频信号的质量取决于采样频率和量化位数这两个重要参数。此外, 24 电气信息工程学院毕业设计(论文) 水温控制系统 声道的数目、相应的音频设备质量也会影响音频质量。 C 凌阳音频压缩算法的编码标准 下表是不同音频质量等级的编码技术标准响应频率。凌阳音频压缩算法处理的语音信号的范围 是200Hz,3.4KHz的电话话音。 表2 编码技术标准频响 信号类型 频率范围(Hz) 采样率(kHz) 量化精度(位) 电话话音 200~3400 8 8 宽带音频 50~7000 16 16 (AM质量) 调频广播 20~15k 37.8 16 (FM质量) 高质量音频 20~20k 44.1 16 (CD质量) D 压缩分类 压缩分无损压缩和有损压缩。无损压缩一般指:磁盘文件,压缩比低:2:1,4:1。而有损压缩 则是指:音,视频文件,压缩比可高达100:1。 凌阳音频压缩算法根据不同的压缩比分为以下几种 (具体可参见语音压缩工具一节内容): SACM-A2000:压缩比为8:,,8:1.25,8:1.5 SACM-S480: 压缩比为80:3,80:4.5 SACM-S240: 压缩比为80:1.5 按音质排序:A2000>S480>S240 E 常用的应用程序接口API的功能介绍及应用 表3 SACM-lib库中模块及其算法类型 模块名称语音压缩编码率类型 资料采样率 (Model-Index) SACM_A2000 16Kbit/s,20 Kbit/s,24 Kbit/s 16KHz SACM_S480/S720 4.8 Kbit/s,7.2 Kbit/s 16KHz SACM_S240 2.4 Kbit/s 24KHz SACM_MS01 音乐合成(16Kbits/s,20 Kbits/s,24 Kbits/s) 16KHz SACM_DVR(A2000) 16Kbit/s的资料率,8 K的采样率,用于ADC通道录音功16KHz 能 25 电气信息工程学院毕业设计(论文) 水温控制系统 我们知道对于语音处理大致可以分为A/D、编码处理、存储、解码处理以及D/A等见图20所示。然而,通过前面介绍我们知道麦克风输入所生成的WAVE文件,其占用的存储空间很大,对于单片机来说想要存储大量的信息显然是不可能的,而凌阳的SPCE061A提出了解决的方法,即SACM-LIB,该库将A/D、编码、解码、存储及D/A作成相应的模块,对于每个模块都有其应用程序接口API,所以您只需了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可实现该功能。 图20 单片机对语音处理过程 本文主要用到的是SACM_A2000,下面对此作一简单介绍。 F SACM_A2000 该压缩算法压缩比较小(8:1)所以具有高质量、高码率的特点适用于高保真音乐和语音。 其相关API函数如下所示: void SACM_A2000_Initial(int Init_Index) //初始化 void SACM_A2000_ServiceLoop(void) //获取语音资料,填入译码队列 void SACM_A2000_Play(int Speech_Index, int Channel, int Ramp_Set) //播放 void SACM_A2000_Stop(void) //停止播放 void SACM_A2000_Pause (void) //暂停播放 void SACM_A2000_Resume(void) //暂停后恢复 void SACM_A2000_Volume(Volume_Index) //音量控制 unsigned int SACM_A2000_Status(void) //获取模块状态 凌阳音频压缩算法 void SACM_A2000_InitDecode(int Channel) //译码初始化 void SACM_A2000_Decode(void) //译码 void SACM_A2000_FillQueue(unsigned int encoded-data)//填充队列 unsigned int SACM_A2000_TestQueue(void) //测试队列 Call F_FIQ_Service_ SACM_A2000 //中断服务函数 ? A2000的非自动方式语音播放 26 电气信息工程学院毕业设计(论文) 水温控制系统 图21 A2000非自动方式程序流程图 图22 语音播报的中断服务程序流程图 4 SPCE061A单片机简介 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的µ’nSP?(Microcontroller and Signal Processor)16位微处理器芯片(以下简称µ’nSP?)。围绕µ’nSP?所形成的16位µ’nSP?系列单片机(以下简称µ’nSP?家族)采用的是模块式集成结构,它以µ’nSP?内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件。SPCE061A 是继µ’nSP?系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的 27 电气信息工程学院毕业设计(论文) 水温控制系统 较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度,使µ’nSP? 能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以µ’nSP?为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。其结构如图23所示: 图23 SPCE061A的模块式结构 4.1 µ’nSP?的内核结构 µ’nSP?家族有以下特点: ? 体积小、集成度高、可靠性好且易于扩展。 µ’nSP?家族把各功能部件模块化地集成在一个 芯片里,内部采用总线结构,因而减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力。另外,模块化的结构易于系统扩展,以适应不同用户的需求。 ? 具有较强的中断处理能力。 µ’nSP?家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。 ? 高性能价格比。 µ’nSP?家族片内带有高寻址能力的ROM、静态RAM和多功能的I/O口。另外,µ’nSP?的指令系统提供具有较高运算速度的16位×16位的乘法运算指令和内积运算指令,为其应用增添了DSP功能,使得µ’nSP?家族运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价。 ? 功能强、效率高的指令系统。 µ’nSP?指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。 ? 低功耗、低电压。 µ’nSP?家族采用CMOS制造工艺,同时增加了软件激发的弱振方式、空 28 电气信息工程学院毕业设计(论文) 水温控制系统 闲方式和掉电方式,极大地降低了其功耗。另外,µ’nSP?家族的工作电压范围大,能在低电压供电时正常工作,且能用电池供电。这对于其在野外作业等领域中的应用具有特殊的意义。 图24 µ’nSP?的内核结构 4.2 SPCE061A的结构图 图25 SPCE061A的结构 29 电气信息工程学院毕业设计(论文) 水温控制系统 SPCE061A有两种封装片,一种为84个引脚,PLCC84封装形式;另一种为80个引脚,LQFP80 封装。在此我们用 PLCC84封装形式,它的排列如图26所示 图26 SPCE061A的PLCC84封装形式 在PLCC84封装中,有15个空余脚,用户使用时这15个空余脚悬浮。在LQFP80封装中有9个 空余脚,用户使用时这9个空余脚接地。 此处以LQFP84封装管脚功能介绍。 表4 管脚描述表 管脚名称 管脚功能 IOA0,IOA15 (41,48,53,60) I/OA口,16个 IOB0,IOB15 (51,81,76,68,64) I/OB口,16个 OSCI 13 振荡器输入,采用石英振时,接晶振 OSCO 12 振荡器输出,采用石英振时,接晶振 RES,B 6 复位信号输入,低电平有效 ICE_EN 16 ICE使能端,接在线调试器PROBE的使能脚ICE_EN ICE_CLK 17 ICE时钟脚,接在线调试器PROBE的时钟脚ICE_CLK ICE_SDA 18 ICE数据脚,接在线调试器PROBE的数据脚ICE_SDA PVIN 20 程序保密设定电源输入脚 PFUSE 29 程序保密设定输入脚 DAC1 21 音频输出通道1 30 电气信息工程学院毕业设计(论文) 水温控制系统 DAC2 22 音频输出通道2 VREF2 23 2V参考电压输出脚 AGC 25 语音输入自动增益控制引脚 OPI 26 Microphone第二级运放输入脚 MICOUT 27 Microphone第一级运放输出脚 MICN 28 Microphone正向输入脚 MICP 33 Microphone负想输出脚 VRT 35 A/D转换参考电压输入脚 VCM 34 ADC参考电压输出脚 VMIC 37 Microphone电源 SLEEP 63 睡眠状态指示,当CPU进入睡眠状态时,输出高电平 VCP 8 锁相环压控振荡器阻容输入端 XROMT PVPP XTEST(61.69.14) 出厂测试管脚,使用时悬空即可 VDDH 51.52.75 I/O电平参考电压输入端,当输入参考电压为 5V/3.3V时,I/O输入、输出高电平为5V/3.3V VDD 7 锁相环PLL电源 VSS 9 锁相环PLL地 VSS 19.24 模拟信号地 VSS 38.49.50.62 数字信号地 VDD 15.36 数字信号电源 表5 SPCE061A系统特性参数 SRAM 容量 2K字 ROM容量 32闪存ROM 并行I/O端口A IOA15~0 并行I/O端口B IOB15~0 音频输出方式 DAC*2 中断源 TimerA/B 唤醒源 IOA7~0其它中断源 时基信号发生器 定时器/计数器 双16位加计数定时器/计数器节 双通道PWM输出 外部中断 UART 具备 触键唤醒 31 电气信息工程学院毕业设计(论文) 水温控制系统 ADC 通道10位电压模-数转换器(ADC)和单通道声音模, 数转换器(ADC) 串行SRAM接口 具备(凌阳格式) 晶振 具备 低电压复位 具备 低电压监测 具备 内置ICE接口 具备 上电复为位 具备 麦克风放大器 和自动增益单通道 控制 节点功能 具备 中断控制功能 具备 触键唤醒功能 具备 4.3 SPCE061A单片机性能 总结起来,SPCE061A单片机的主要有如下性能: ? 16位µ ’nSP微处理器; ? 工作电压:VDD为2.4,3.6V(cpu), VDDH为2.4,5.5V(I/O); ? CPU时钟:32768Hz,49.152MHz ; ? 内置2K字SRAM、内置32K FLASH; ? 可编程音频处理; ? 32位通用可编程输入/输出端口; ? 32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号; ? 2个16位可编程定时器/计数器(可自动预置初始计数值); ? 2个10位DAC(数-模转换)输出通道; ? 7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器; ? 声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能; ? 系统处于备用状态下(时钟处于停止状态)耗电小于2mA@3.6V; ? 14个中断源:定时器A / B,2个外部时钟源输入,时基,键唤醒等; ? 具备触键唤醒的功能; ? 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; ? 具备异步、同步串行设备接口; ?具有低电压复位(LVR)功能和低电压监测(LVD)功能; 32 电气信息工程学院毕业设计(论文) 水温控制系统 ?内置在线仿真电路接口ICE(In- Circuit Emulator); ?具有保密能力; ?具有WatchDog功能(由具体型号决定)。 4.4 SPCE061A最小系统 最小系统接线如图27所示,在OSC0、OSC1端接上石英晶体振荡器及谐振电容,在复位端接复位电路,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上0.1µF的去藕电容提高抗干扰能力。 图27 SPCE061A最小系统 4.5 SPCE061A开发方法 SPCE061A的开发是通过在线调试器PROBE实现的。它既是一个编程器(即程序烧写器),又是一个实时在线调试器。用它可以替代在单片机应用项目的开发过程中常用的软件工具——硬件在线实时仿真器和程序烧写器。它利用了SPCE061A片内置的在线仿真电路ICE(In- Circuit Emulator) 33 电气信息工程学院毕业设计(论文) 水温控制系统 接口和凌阳公司的在线串行编程技术。PROBE工作于凌阳IDE集成开发环境软件包下,其5芯的仿真头直接连接到目标电路板上SPCE061A相应管脚,直接在目标电路板上的CPU---SPCE061A调试、运行用户编制的程序。PROBE的另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在线调试功能。图28是计算机、PROBE、用户目标板三者之间的连接示意图。 图28 用户目标板、PROBE、计算机三者之间的连接图 5 系统调试及参数整定 5.1 继电器测试 ? 测触点电阻 用万能表的电阻档,测量常闭触点与动点电阻,其阻值应为0;而常开触点与动点的阻值就为无穷大。由此可以区别出那个是常闭触点,那个是常开触点。 ? 测线圈电阻 可用万能表R×10Ω档测量继电器线圈的阻值,从而判断该线圈是否存在着开路现象。 ? 测量吸合电压和吸合电流 找来可调稳压电源和电流表,给继电器输入一组电压,且在供电回路中串入电流表进行监测。慢慢调高电源电压,听到继电器吸合声时,记下该吸合电压和吸合电流。为求准确,可以试多几次而求平均值。 ? 测量释放电压和释放电流 也是像上述那样连接测试,当继电器发生吸合后,再逐渐降低供电电压,当听到继电器再次发生释放声音时,记下此时的电压和电流,亦可尝试多几次而取得平均的释放电压和释放电流。一般情况下,继电器的释放电压约在吸合电压的10~50,,如果释放电压太小(小于1/10的吸合电压), 34 电气信息工程学院毕业设计(论文) 水温控制系统 则不能正常使用了,这样会对电路的稳定性造成威胁,工作不可靠。 5.2 PID参数整定 控制系统的控制质量与被控制对象的特性、干扰信号的形式和幅值、控制方案及控制器的参数等因素有着密切的关系。对象的特性和干扰情况是受工艺操作和设备的特性限制的,不可能随意改变,这样,一旦控制方案确定了,对象各个通道的特性就成定局,这时控制系统的控制质量就只取决于控制器的参数。因此,参数的整定是过程控制系统设计的核心内容。所谓控制器的参数整定, KK就是通过一定的方法和步骤,确定系统处于最佳过渡过程时控制器的比例度、积分时间 和微pi K分时间的具体数值。所谓最佳过渡过程,就是在某质量指标下,系统达到最佳调整状态,此时d 的控制器参数就是所谓的最佳整定参数。 在简单过程控制系统中,调节器参数整定通常以系统瞬态响应的衰减率=0.75,0.9(对应衰减, 比为4:1,10:1)为主要指标,以保证系统具有一定的稳定裕量(对于大多数过程控制系统来说,系统过渡过程的瞬态响应曲线达到4:1的衰减比状态时,则为最佳的过程曲线)。此外,在满足主,要指标的条件下,还应尽量满足系统的稳态误差(又称静差、余差)、最大动态偏差(超调)和过渡过程时间等其它指标。由于不同的过程控制系统对控制品质的要求有不同的侧重点,也有用系统响应的平方误差积分(ISE)、绝对误差积分(IAE)、时间乘以绝对误差的积分(ITAE)分别取极小作为指标来整定调节器参数的。 调节器参数整定的方法很多,概括起来可以分为两大类:一是理论计算整定法。它主要是依据系统的数学模型,采用控制理论中的根轨迹法,频率特性法等,经过理论计算确定调节器参数的数值。二是工程整定方法,它主要依靠工程经验,直接在过程控制系统的实验中进行,且方法简单、易于掌握。由于本系统有别于工业实际系统因此对于参数整定来说,使用工程参数整定法效果不是很好,该系统参数整定采用经验凑试法。 经验凑试法是通过模拟或闭环运行观察系统的响应曲线,然后根据各调节参数对系统响应的大致辞影响,反复凑试参数,以达到满意的响应,从而确定PID调节参数。 K增大比例系数,一般将加快系统的响应,在有静差的情况下有利于减小静差。但过大的比p 例系数会使系统有较大的超调,并产生振荡,使稳定性变坏。 K增大积分时间,有利于减小超调,减小振荡,使系统更加稳定,但系统静差的消除将随之减i 慢。 K增大微分时间,亦有利于加快系统响应,使用权超调减小,稳定性增加,但系统对扰动的d 抑制能力减弱,对扰动有较敏感的响应。 在凑试时,可参考以上参数对控制过程的影响趋势,对参数实行下述比例、后积分、再微分的整定步骤: 35 电气信息工程学院毕业设计(论文) 水温控制系统 ? 整定比例部分 将比例系数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。如果系统没有静差或静差已小到允许范围内,并且响应曲线已属满意,那么只需用比例调节器即可,比例系数可由此确定。 ? 加入积分环节 如果在比例调节的基础上系统的静差不能满足设计要求,则须加入积分环节。整定时首先置积 Ki分时间为一较大值,并将经第一步整定得到的比例系数略微缩小(如缩小为原来的0.8倍),然后减小积分时间,使在保持系统良好动态性能的情况下,静差得到消除。在此过程中,可根据响应曲线的好坏反复改变比例系数与保持时间,以期得到满意的控制过程与整定参数。 ? 加入微分环节 若使用比例积分调节器消除了静差,但动态过程经反复调整仍不能满意,则可加入微分环节, KK构成比例积分微分调节器。在整定时,可先置微分时间为零。在第二步整定的基础上,增大,dd同时相应地改变比例系数和积分时间,逐步凑试,以获得满意的调节效果和控制参数。 所谓“满意”的调节效果,是随不同的对象和控制要求而异的。此外PID调节器的参数对控制质量的影响不十分敏感,因而在整定中参数的先定并不是唯一的。事实上,在比例、积分、微分三部分产生的控制作用中,某部分的减小往往可由其它部分的增大来补偿。因此,用不同的整定参数完全有可能得到同样的控制效果。从应用的角度看,中要被控过程主要指标已达到设计要求,那么即可选定相应的调节器参为有效的控制参数。表6给出了一些常见被调量的调节器参数选择范围。 表6 常见被调量的调节器参数选择范围 被调量 特点 K Ki/min Kd/min 流量 对象时间常数小,并有噪声,故K较短,不用微分 1,2.5 0.1,1 温度 对象为多容系统,有较大滞后,常用微分 1.6,5 3,10 0.5,3 压力 对象为容量系统,滞后一般不大,不用微分 1.4,3.5 0.4,3 液位 在允许有静差时,不必用积分,不用微分 1.25,5 5.3 系统测试 5.3.1 测试环境 ? 环境温度28摄氏度; ? 测试仪器: 数字万用表; ? 温度计0---100摄氏度; ? 打印机; 36 电气信息工程学院毕业设计(论文) 水温控制系统 5.3.2 测试方法 ? 在搪瓷器皿中存放1L净水,放置在1KW的电炉上,打开控制电源,系统工程进入准备工作状态; ? 用温度计标定测温系统。分别使水温稳定在40?、50?、60?、70?、80?、90?观察系统测量温度值与实际温度值,校准系统使测量误差在1?以内。 ? 动态测试:设定温度为60?,系统由低温开始进入升温状态。开始数据,观察超调量、调节时间和稳态误差;系统进入稳态后,用电风扇吹凉,观察系统的抗扰能力。设定温度为90?系统由低温开始进入升温状态。开始记录数据,观察超调量、调节时间和稳态误差;系统进入稳态后,用电风扇吹凉,观察系统的抗扰动能力。 ?检验系统的显示、打印、报警、设定等功能。 5.3.3 系统误差分析 从整个电路原理框图来看,系统的主要误差来源于以下几个方面: ? 在PID控制算法中,我们采用的是理想PID数这控制器,虽然其算法较实际PID更为简单,更易实现,但其控制品质较差,原因在于其微分作用只局限于第一个采样周期输出,一般执行机构无法在较短采样周内跟踪较大的微分作用输出,须综合考虑多方面因素。 ? 固态继电器SSR引起的误差。SSR是半导体继电器,当有交流负载时有漏电流。随着对电炉的加热,环境温度升高,流经SSR的电流将减小。交流电源线上的负载可能增加许多干扰信号,这些干扰信号有可能使SSR误导通。 ? 由于实验所用测量工具(如温度计)本身精度以及所带来的视觉误差,加上温度变化惯性较大,动态测量时准确控制测量精度略有难度。 6 结束语 我的毕业设计课题是温度控制系统,此课题要求我设计一个试验温度控制系统。对系统设计的要求为,首先系统要有良好的控制效果;其次系统的构成要简单实用;实时监控系统状态参数。因此我选取了SPCE061A单片机来设计,使用SPCE061A单片机的优势在于其完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统的特点:电路结构简单、程序简短、系统可靠性高等。另外本次设计还充分利用了SPCE061A单片机成熟的语音处理技术和PC机的图形处理功能,来实现了语音播报温度和打印温度变化曲线的要求。而且系统控制部分程序设计在µ‘nSPTM集成开发环境中编辑、编译、链接、调试以及仿真的。使用软件编程既减少了系统设计的工作量,又提高了系统开发的速度,使用软件还可以提高所设计系统的稳定性,避免了因个人设计经验不足而产生过多的系统缺陷。 此次系统设计中主要难题为控制系统输出控制和PID控件,系统PID输出为模拟信号而该系统 37 电气信息工程学院毕业设计(论文) 水温控制系统 的控制对象为一电炉,因此一般的执行器无法满足控制需求,而使用普通的触点式继电器会因频繁 开关而产生电弧,可能导致实验事故发生。所以在系统执行部分选取了SSR固态继电器作执行部件, 从而克服了触点式继电器的不足。PID控件的难题在于参数整定,对于本系统来说参数整定只能使 用经验凑试。 在这次毕业设计中获得了难得的理论联系实践的机会,在系统设计及开发过程中,对理论知识 进一步的加深了理解,使得我对过程控制规律有了更深层次了概念,系统设计中多次方案论证和修 改,使得自己逐步建立了工程设计的思想,对今后进入工作岗位奠定了一定的理论基础,进而认识 到了自己知识的缺陷,以及对系统设计的概念性的错误等等,总之本次系统设计我受益匪浅。 参考文献 1 全国大学生电子设计竞赛组委会. 全国大学生电子设计竞赛获奖作品汇编. 北京:北京理工大学出版社,2004 2 薛钧义. 凌阳16位单片机原理及应用. 北京:北京航空航天大学出版社,2003 3 谢剑英、贾青. 微型计算机控制技术. 北京:国防工业出版社,2004 4 侯志林. 过程控制与自动化仪表. 北京:机械工业出版社,2003 5 谭浩强. C程序设计. 北京:清华大学出版社,2002 Water temperature control system Xiao Hongmei Electric Information Engineering Institute of Panzhihua Institute, Panzhihua 617000 Abstract This text has recommended one kind regards SPCE061A one-chip computer as core of controlling, algorithm control and PID parameter whole control method to combine together definitely temperature control system that realized comes with PID, Art In order to realize high-accuracy temperature control. icle recommend key choice of device , control sureness , every circuit and design of software of algorithm emphatically. SPCE061A one-chip computer's perfect inside structure , fine performance and strong one stop dealing with ability , have determined the characteristic of this control system: The circuit is of simple structure, the brief , systematic dependability of procedure is high. This design has also fully utilized SPCE061A one-chip computer's ripe pronunciation treatment technology and graph processing function of the PC , to realize the pronunciation report temperature and type the demand for changing the curve of temperature. Key words SPCE061A single-chip computer; Pt1000; PID 38 电气信息工程学院毕业设计(论文) 水温控制系统 致谢 大学的最后一课——毕业设计已经结束了,这篇论文也就是我们大学四年学习和生活的总结。在我做毕业设计,完成毕业论文的自始至终得到了冯明琴老师的悉心指导和热情关怀。冯明琴老师渊博的知识、高尚的品格、严谨的治学态度感染着我。不但在做学问上,更在做人上让我受益匪浅。在此,谨此向冯明琴老师表示最衷心的感谢和最诚挚的敬意! 在本次毕业设计中,得到了实验室等很多老师的悉心教导,得到了同学、室友的热情帮助和支持,使我能顺利完成毕业设计,我对他们表示衷心感谢~ 最后,感谢所有给我指导、关心、帮助和支持的人们! 39
/
本文档为【水温控制系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索