![电阻炉温度控制系统_第1页](http://file4.renrendoc.com/view10/M02/07/2D/wKhkGWWUpZCAGrb7AAFNtn1ETgc759.jpg)
![电阻炉温度控制系统_第2页](http://file4.renrendoc.com/view10/M02/07/2D/wKhkGWWUpZCAGrb7AAFNtn1ETgc7592.jpg)
![电阻炉温度控制系统_第3页](http://file4.renrendoc.com/view10/M02/07/2D/wKhkGWWUpZCAGrb7AAFNtn1ETgc7593.jpg)
![电阻炉温度控制系统_第4页](http://file4.renrendoc.com/view10/M02/07/2D/wKhkGWWUpZCAGrb7AAFNtn1ETgc7594.jpg)
![电阻炉温度控制系统_第5页](http://file4.renrendoc.com/view10/M02/07/2D/wKhkGWWUpZCAGrb7AAFNtn1ETgc7595.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-5"\h\z\o"CurrentDocument"摘要 2\o"CurrentDocument"温度控制系统设计 3\o"CurrentDocument"设计任务及分析 3\o"CurrentDocument"1.1设计任务和要求 3\o"CurrentDocument"1.2系统的分析 3\o"CurrentDocument"方案比较及论证 4\o"CurrentDocument"控制算法 6\o"CurrentDocument"PID控制算法 6\o"CurrentDocument"3.2积分分离PID控制算法 7\o"CurrentDocument"系统硬件设计 8\o"CurrentDocument"ADC0809芯片 8\o"CurrentDocument"DAC0832芯片 9\o"CurrentDocument"AT89C51单片机 11\o"CurrentDocument"系统滤波原理 12\o"CurrentDocument"系统仿真 13\o"CurrentDocument"simulink仿真 13\o"CurrentDocument"kp改变对系统的影响 14\o"CurrentDocument"5.3调试分析 15\o"CurrentDocument"心得与体会 16\o"CurrentDocument"参考文献 17\o"CurrentDocument"附录1 18附录2 26摘要随着科学技术的迅猛发展,各个领域对温度控制系统的精度、稳定性等要求越来越高,控制系统也千变万化,温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。采用单片机进行炉温控制,可大大地提高控制质量和自动化水平,具有良好的经济效益和推广价值。本文主要介绍了利用AT89C51为主控制电路实现的炉温调节控制系统,详细阐述了系统的功能,硬件组成以及软件设计,利用热电偶采集温度信号经A/D转换器转化后与给定信号送入微机系统,系统分析控制算法,信号再经D/A转换后控制调节可控硅控制器来改变炉内的温度。关键字:温度控制自动化单片机转换器温度控制系统设计设计任务及分析设计任务和要求被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。可控硅控制器输入为0〜5伏时对应电炉温度0—300°C,温度传感器测量值对应也为0〜5伏,对象的特性为积分加惯性系统,惯性时间常数为Tl=40秒。要求完成的主要任务:1) 设计温度控制系统的计算机硬件系统,画出框图;2) 编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及B的值;3) 计算机仿真被控对象,编写仿真程序;4) 通过数据分析Kp改变时对系统超调量的影响。5) 撰写设计说明书。系统的分析该系统利用单片机可以方便地实现对PID参数的选择与设定,实现工业过程中PID控制。它采用温度传感器热电偶将检测到的实际炉温进行A/D转换,再送入计算机中,与设定值进行比较,得出偏差。对此偏差按PID规律进行调整,得出对应的控制量来控制驱动电路,调节电炉的加热功率,从而实现对炉温的控制。利用单片机实现温度智能控制,能自动完成数据采集、处理、转换、并进行PID控制和键盘终端处理(各参数数值的修正)及显示。在设计中应该注意,采样周期不能太短,否则会使调节过程过于频繁,这样,不但执行机构不能反应,而且计算机的利用率也大为降低;采样周期不能太长,否则会使干扰无法及时消除,使调节品质下降。方案比较及论证用温度传感器来检测炉的温度,将炉温转变成毫伏级的电压信号,经温度变送器放大并转换成电流信号。由电阻网络讲电流信号变成电压信号,送入A/D转换器,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号送入计算机程序中作比较,得出给定值与实际值之间的偏差,并与B进行比较,从而确定算法。计算得到的控制量输出给可控硅控制器,改变可控硅的导通角,达到调压的目的,是电阻丝两端的电压增大或较小,进而实现对炉温的控制。方案一:热电偶温度自动控制系统。方案二:数字温度传感器温度控制系统。这两个方案都是采用单片机控制,两个方案的比较部分为温度检测部分。方案一温度检测部分检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫负,必须经过放大处理才能A/D转换和D/A转换器接口,若采用8位A/D转换器,ADC0809则输人端需采用仪用放大器,把几毫伏的电压信号放大到5伏左右。由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。这种系统具有测量温度范围可以从零下一百度到早上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。但构成系统复杂,抗干扰能力不强。方案二采用数字温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度。它具有直接输出数字信号和数据处理,并且它和单片机接口只需要一位I/O口,因此由它构成的系统简单使用,由于DS18B20,按照工业设计要求设计,抗干扰性能强。但温度测量范围从-55°C—-125°C。根据设计要求,综合考虑选择方案一。主要的控制芯片采用AT89C51,要求传感器测量的电压范围和可控硅控制器的电压在0-5C,所以A/D与D/A转换芯片采用ADC0809和DAC0832。炉温控制在0—300C内,因此采用镍铬-铜镍热电偶,同时选用运算放大器将信号放大。在系统中,利用热电偶测得电阻炉实际温度并转换成毫伏级电压信号。该电压信号经过温度检测电路转换成与炉温相对应的数字信号进入单片机,单片机进行数据处理后,通过液晶显示器显示温度,同时将温度与设定温度比较,根据设定计算出控制量,根据控制
量通过控制继电器的导通和关闭从而控制电阻丝的导通时间,以实现对炉温的控制。由以上分析控制过程,可以得到如图1的设计框图,程序流程图如图2所示。图1系统结构框图控制算法PID控制算法在PID调节中,比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,Kp的加大,会引起系统的不稳定;积分控制的作用是:只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现振荡;微分控制可以使减小超调量,克服振荡,提咼系统的稳定性,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。将P、I、D三种调节规律结合在一起,可以使系统既快速敏捷,又平稳准确,只要三者强度配合适当,便可获得满意的调节效果。模拟PID控制规律为:TOC\o"1-5"\h\z\o"CurrentDocument"u(t)二K[e(t)+—Jte(t)dt+T ]PTo DdtI式中:e(t)二r(t)-y(t)称为偏差值,可作为温度调节器的输入信号,其中r(t)为给定
值,y(t)为被测变量值;K为比例系数;T为积分时间常数;T为微分时间常数;u(t)为
p I D调节器的输出控制电压信号。因为计算机只能处理数字信号,故上述数字方程式必须加以变换。设采样周期为T,第k次采样得到的输入偏差为e(k),调节器的输出为u(k),作如下近似:de(t) e(k)一e(k一1)TOC\o"1-5"\h\zdt TJte(t)dt~为Te(i)0 i=1得到:\o"CurrentDocument"u(k)=K[e(k)+丄丈Te(i)+Te(k)一e(k一气
p T DT得到:Ii=1其中,u(k)为调节器第k次输出值;e(k)、e(k-1)分别为第k次和第k-1次采样时刻的偏差值。由式可知:u(k)是全量值输出,每次的输出值都与执行机构的位置一一对应,所以称之为位置型PID算法。在这种位置型控制算法中,由于算式中存在累加项,而且输出的控制量不仅与本次偏差有关,还与过去历次采样偏差有关,使得产生大幅度变化,这样会引起系统冲击,甚至造成事故。所以在实际中当执行机构需要的不是控制量的绝对值,而是其增量时,可采用增量型PID算法。因为要累加偏差e(i),位置式控制不够方便,不仅多占用较多存储单元,且不便于编程。在实际控制中,增量型算法要比位置算法应用更加广泛。利用位置型PID控制算法,可得到增量型PID控制算法的递推形式为:Au(k)=K[e(k)一e(k一1)]+Ke(k)+K[e(k)一2e(k一1)+e(k一2)]p I D式中,K为比例增益;K二KTT为积分系数;K二KTT为微分系数。p I pI D pD为了编程方便,整理成如下形式:Au(k)=qe(k)+qe(k一1)+qe(k一2)012式中:q二K(1+T+TD)opTTI2Tq=-K(1+—D)ptTq=K-Dp—积分分离PID控制算法在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调和长时间的波动。特别对于温度等变化缓慢的过程,这一现象更为严重,为此,可采用积分分离措施,即偏差e(k)较大时,取消积分作用;当偏差较小时才将积分作用投入。亦即当|e(k)|>0时,采用PD控制;当|e(k)|<0时,采用PID控制。积分分离阈值0应根据具体对象及控制要求。若0值过大时,则达不到积分分离的目的;若0值过小,则一旦被控量y(t)无法跳出个积分分离区,只进行PD控制,将会出现残差,为了实现积分分离,编写程序时必须从数字PID差分方程式中分离出积分项,进行特殊处理。系统硬件设计用热电偶来检测炉的温度,将炉温转变成毫伏级的电压信号,经温度变送器放大并转换成电流信号。由电阻网络讲电流信号变成电压信号,送入A/D转换器,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号都转换成数质量送入单片机进行比较,其差值即为实际炉温和给定炉温的偏差,以单片机为核心的数字PID控制器对偏差按照给定的方法运算,运算结果送DAC0832转换成模拟电压,经功率放大器放大后送入晶闸管调压器,触发晶闸管并改变其导通角的大小,从而控制电阻炉的加温电压,起到炉温调节的作用。炉温信号T通过温度检测及变送,变成电信号,与温度设定值进行比较,计算温度偏差e和温度的变化率de/dt,再由智能控制算法进行推理,并得控制量u,可控硅输出部分根据调节电加热炉的输出功率,即改变可控硅管的接通时间,使电加热炉输出温度达到理想的设定值。ADC0809芯片A/D转换器是将模拟电压或电流转换成数字量的期间或装置,它是一种模拟系统和计算机之间的接口,它在数据采集和控制系统中,得到了广泛的应用,常用的A/D转换器有ADC0809。它是一种带有8通道模拟开关的8位逐次逼近式A/D转换器,转换时间为lOOus左右,线性误差为±1/2LSB,采用28脚双立直插式封装,ADC0809由8通道模拟开关、通道选择逻辑、8位A/D转换器及三态输出锁存缓冲器组成。1)8通道模拟开关及通道选择逻辑该部分的功能是实现8选1操作,通道选择信号C、B、A与所选通道的关系如表1。表1选择逻辑功能CBA输出000Vin0001Vin1・・・・・・・・・・・・111Vin7地址锁存允许信号(ALE、正脉冲)用于通道选择信号C、B、A的锁存。加至C、B、A上的通道选择信号在ALE的作用下送入通道选择逻辑后,通道i上的模拟输入被送至A/D转换器转换。
2)8位A/D转换器ADC0B09262733ADDAADDBADDCALE2-1MSB102)8位A/D转换器ADC0B09262733ADDAADDBADDCALE2-1MSB1011STARTEOCOUTPUTENABLECLOCKvice2-8LSBGND2524232220138~\l
n
n13VREFWVREF(-1图3ADC0809引脚图IN〜IN为模拟信号的8个输入通道。VREF、VREF为基准电压的正极和负极。0 7 + -ADDA、ADDB和ADDC为模拟信号输入通道的地址选择线。ALE为地址锁存信号,由低电平到高电平正跳变时讲地址选择线的状态锁存,一选通相应的输入通道。START为启动信号,正脉冲的上升沿使内部寄存器清零,从下降沿开始进行A/D转换。OEC为转换结束信号,在START信号之后变低,转换结束为高电平,用来申请中断。OE为输出允许信号,有效时将输出寄存器中的数据放到数据总线上。2-8〜2-1为数码输出端,2-8为最低有效位,2-1为最高有效位。DAC0832芯片D/A转换器的功能是把二进制数字量电信号转换为与其数值成正比的模拟量电信号。
常用D/A转换器为DAC0832芯片。DAC0832工作在单缓冲寄存器方式,即当CT信号来
时,D〜D数据线送来的数据直通进行D/A转换,当IOW变高时,则此数据便被锁存在0 7寄存器中,因此D/A转换的输出也保持不变。DAC0832将输入的数字量转换成差动的电流输出(I和I ),为了将其编程电压输出,必须经过运算放大器,使其输出0〜5V(VOUT1 OUT2 REF为-5V)或0〜10V(V为-10V),若要形成负电压输出,则V需接正的基准电压。REF REFDAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。图4为DAC0832的引脚图。其主要参数如下:分辨率为8位,转换时间为1us,满量程误差为±1LSB,参考电压为(+10/span>-10)V,供电电源为(+5〜+15)V,逻辑电平输入与TTL兼容。在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号XFER。DAC08321ILECBY1/BY2)训R2DAC08321ILECBY1/BY2)训R2XFERDI4-DE9TdI0U12I0UT120
jg
I?16141312
TT图4DAC0832引脚图当ILE为高电平,片选信号CS和写信号WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号XFER和写信号WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。其余各引脚的功能定义如下:DI0~DI7:8位的数据输入端,DI7为最高位。IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。IOUT2:模拟电流输出端2,I0UT2与IOUT1的和为一个常数。RFB:反馈电阻引出端,DAC0832内部已有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为+10V~-10V。VREF端与D/A内部T形电阻网络相连。VCC:芯片供电电压,范围为5V〜15V。GND:模拟量地/数字量地,即模拟/数字电路接地端。AT89C51单片机AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。8951单片机的内部结构十分复杂,但封装之后,只有引脚是面向用户的,所以使用者需要熟悉各引脚的用途。常用的8951芯片是用双列直插40脚封装。卩口口卩』口PD.I.'P-DIP□那《・叱曲辽PD.t'P-DiPn.5.'u-D5PD.&^DGRSTPDT.'P-DT吃酬5P2.1JP3FSEMP2.^11ALE叮加2丽P2.5.ft13P2.T.W15P1B阳咏EP1.1卩旦1丿TX匸i"卫Pli'lHTEP1RP3^IMT1P14P3.UTI]P1.5P3.5.'T1P1.6P3.61IIJRP1.7P3.T/ED1S1(]111213-T151723572_5£7B3932022刃囚262?33怕图5AT89C51引脚图VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并作为输入时,P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,可用作对外部输出的脉冲或用于定时目的。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(OOOOH-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。系统滤波原理一般微机应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来自信号源本身、传感器、外界干扰等。噪音有两大类:一类为周期性的,另一类为不规则的。前者可采用双积分A/D转换器,有效地消除其影响。后者为随机信号,可用数字滤波方法予以消除。算术平均值法式要按输入的N个采样为周期x.(i=1〜N),寻找这样一个y,使y与各采样值间的偏差的平方和为最小,使E二min[乙(y-x)2]由一元函数求值原理可得i=1
5系统仿真simulink仿真被控对象为:采用simulink仿真,1G(S)-S(1+40S)-1S+40S2通过simulink模块实现积分分离PID控制算法。选择合适的Kp,Ki,Kd是系统的仿真效果趋于理想状态。MATLAB编写程序如下:clearall;closeall;%米样时间2s%米样时间2s%设置函数G(s)%将sys离散化%求sys多项式模型参数sys二tf([l],[40,l,0]);dsys二c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');kp=0.4;ki=0;kd=7.5;Simulink仿真图如下。图6图6Simulink仿真图kp改变对系统的影响参数设定后,得到适合的kp=0.4时波形图图7所示。图7kp=0.4时波形图保持ki,kd不变,改变参数kp=0.1,数值过小时,波形图如图8所示。1.2■□ 10 20 30 40 50 60 70 80 90 100图8kp=0.1时波形图保持ki,kd不变,改变参数kp=0.8,数值过大时,波形图如图9所示。0 10 20 30 40 50 60 70 80 90 100图9kp=0.8时波形图5.3调试分析首先只整定比例部分。即将比例系数由小变大,并观察相应的系统响应,直到得到反应快,超调小的响应曲线。如果系统么眼静差或者静差已小到允许范围内,并且响应曲线已属满意,那么只须用比例调节器即可。如果在比例调节的基础上系统的静差不能满足设计要求,则须加入积分环节,整定时首先置积分时间Ti为一较大值,并将经第一步整定得到的比例系数略为缩小,然后减小积分时间,使在保持系统良好动态性能的情况下,静差得到消除。根据响应曲线的好坏反复改变比例系数和积分时间,以期得到满意的控制过程与整定参数。若使用比例积分调节器消除了静差,但动态过程经反复调整仍不能满意,则可加入微分环节,构成比例积分微分调节器。在整定时,可先置微分时间TD为零。在第二步整定基础上,增大Td,同时相应地改变比例系数和积分时间,逐步凑试,以获得满意的调节效果和控制参数。6心得与体会经过了一个学期的计算机控制技术的学习,但是除了实验外并没有多少实际设计的机会,课程设计与理论课程和实验有着很大的区别,它是一个综合性很强的课程环节,也是我们所必须经历的一个学习阶段。在课程设计中,我们在学会学会理论知识的同时,还会加深自己对这门课程的理解,在这门课程设计当中,能学到一些软件的运用,结合一些其他课程,如matlab等软件,通过互相结合,相互渗透,来得到我们所需的数据、结论以及使我们掌握更多的知识。在此次课程设计中,很多东西以前都没有实际了解到,比如芯片ADC0809,现在经过课设,通过查阅资料,我拓宽了自己的知识面,在课设中学会了独立思考和锻炼了自己的实践动手能力。这次电力电子课程设计过程中,我参考了很多资料,发现自己现在学到的只是很小的一部分,在设计上有一定的难度。就我设计的题目而言,平时在书上介绍的只是一些原理,并没有实际的运用与操作,具体要怎么设计一个完整的架构就需要我们对现有和过去学的知识有一个大概的了解。通过课程设计的学习工作,使我接触了很多新的知识,比如相关软件的拓展,也让我对这门课有了更深的了解,培养了我们求真务实的态度。参考文献于海生.计算机控制原理.北京:机械工业出版社,2007潘新民.王燕芳.微型计算机控制技术.北京:高等教育出版社,2001何立民.单片机应用系统设计.北京:北京航空航天大学出版社,2000韩志军,沈晋源,王振波.单片机应用系统设计.北京:机械工业出版社,2005周航慈.单片机程序设计基础.北京:北京航空航天大学出版社,2000
附录1START:MOV68H,KPMOV54H,TI;分别将Kp,TI,TD,T,B送入指定的存储单元MOV55H,TDMOV56H,TMOV57H,BMOVA,68H;计算KI=KP*T/TIMOVB,56HMULABMOVB,54HDIVABMOV69H,AMOVA,68H;计算KD=KP*TD/TLOOP0:MOVB,55HMULABMOVB,56HDIVABMOV6AH,AMOVDPTR#7FF0H;读取预定温度值,送ADC0809的IN0口地址MOV@DPTR,A;启动A/D转换LOOP1JBP3.3,LOOP1;等待转换数据MOVXA,@DPTR;读取ADC0809的IN0口转换后的数据MOV5CH,A;将预定值数据放入指定的存储单元MOVDPTR,#7FF1H;读取采样温度值,送ADC0809的IN1口地址MOVX@DPTR,A;启动A/D转换LOOP2:JBP3.3,LOOP2;等待转换数据MOVXA,@DPTR;读取ADC0809的IN1口转换后的数据MOV49H,A;将采样值数据放入指定的存储单元MOVA,5CH;计算ei,先取温度给定值CLRCSUBBA,50H;温度给定值-采样值JNCAA0;判断ei的正负,如果为正,跳至AA0CPLA;ei为负,下两条指令求补AA0:ADDA,#01HMOVR0,57HSUBBA,57H;|ei|-BJNCAA1;|ei|>B跳至AA1SJMPAA2;|ei|<B跳至AA2AA1:LCALLPD;调用PD算法AA2:LCALLPID;调用PID算法MOVA,7CH;将通过DAC0832输出MOVDPTR,#7FF2HMOVX@DPTR,A
INCDPTRMOVX@DPTR,ALCALLDELAY ;调用延时子程序,等待下一次采样计算SJMPLOOP0 ;进入下一次控制计算DELAYPROCNEARDL0:MOVR6,#FFHDL1:DL2:MOVR7,#FFHMOVR5,#FFHDLS:DJNZR5,DLSDJNZR7,DL2DJNZR6DL1RETDELAYENDPPIDPROCNEARPID:MOVA,5CHCLRCSUBBA,50HJNCPID1CPLAADDA,#01HPIDPROCNEARPID:MOVA,5CHCLRCSUBBA,50HJNCPID1CPLAADDA,#01HSETB30HSJMPPID2PID1:CLR30HPID2:MOV6BH,AMOVR1,6BHMOVC,30HMOV20H,CMOVR2,6CHMOVC,31HMOV21H,CLCALLDJFMOV6EH,R3MOVC,22HMOV33H,CMOVR1,6CHMOVC,31HMOV20H,CMOVR2,6DHMOVC,32HMOV21H,CLCALLDJFMOV6FH,R3MOVC,22H;温度给定值-温度检测值;判断ej正负,如果为正,跳至PID1;ei为负,下两条指令求补;ej为负,符号位置1;ei为正,符号位置0;ei值存放在6BH单位元中;计算ej-ei-1,先将ej值,送R1;将ej的符号位值送20H位;将e“值送R2;将ej-1的符号位值送21H位;调用单字节带符号的减法子程序;将差值ej-ei1送6EH单元;将差值e「e“的符号位送33H位;计算ej-1-ei-2,先将ej-1值送R1;将ej-1符号位送20H位;将ej-2的值送R2;将ej-2的符号位值送21H位;调用单字节带符号的减法子程序;将差值ej1-ej2送6FH单元;将差值ek1-ej-2的符号位送34H位
MOV34H,CMOVR1,6EHMOVC,33HMOV20H,CMOVR2,6FHMOVC,34HMOV21H,CLCALLDJFMOV70H,R3MOVC,22HMOV35H,CMOVA,68HMOVB,6EHMOV34H,CMOVR1,6EHMOVC,33HMOV20H,CMOVR2,6FHMOVC,34HMOV21H,CLCALLDJFMOV70H,R3MOVC,22HMOV35H,CMOVA,68HMOVB,6EHMULABMOV71H,BMOV72H.AMOVA,69HMOVB,6BHMULABMOV73H,BMOV74H,AMOVA,6AHMOVB,70HMULABMOV75H,BMOV76H,AMOVR1,71HMOVR2,72HMOVC,33HMOV23H,CMOVR3,73HMOVR4,74HMOVC,30HMOV24H,CLCALLSJFMOV77H,R5MOV78H,R6MOVC,25HMOV36H,CMOVR1,77HMOVR2,78HMOVC,36HMOV23H,CMOVR3,75HMOVR4,76H;将ei-ei-1符号位送20H位;将ei-1-ei-2值送R2;将ei-1-ei-2符号位送21H位;调用单字节带符号的减法子程序;将差值(ei-ei1)-(ei1-ei2)送70H单元;将差值(e.ek1)-(ek1-ei-2)的符号位值送35H位;计算Kp*(ei-ei-1),将Kp值送A;将ei-ei-1值送B;两数相乘;Kp*(ei-ei-1)值存71H,72H单元;计算KI*ei,将KI值送A;将ei值送B;两数相乘;KI*ei值存73H,74H单元;计算KD*[(。严辺)-(e“-e卜2)],将KD送A;将(ei-ei-1)-(ei-1-ei-2)值送B;两数相乘;KD*[(ei-ei-1)-(e“-e卜2)]值存75H,76H单元;计算Kp*(ei-ei-1)+KI*ei,将Kp*(ei-ei-1)值送R1,R2;将Kp*(ei-ei-1)的符号位值送23H位;将KI*ei值送R3,R4;将KI*ei值的符号位懂24H位;调用双字节带符号加法子程序;将Kp*(e.-e「)+KI*e.值送77H,78Hii-1 i;将Kp*(e.-e)+KI*e.值的符号位送36H位ii-1 i;计算,将将Kp*(e.-e..)+KI*e.值送R1,R2...-1.;将Kp*(e.-e)+KI*e.值的符号位送23H位..-1.;将KD*[(e.-ei-1)-(e.-1-ei-2)]的值送R3,R4MOVC,35HMOV24H,CLCALLSJFMOV79H,R5MOV7AH,R6MOVC,25HMOV37H,CMOVR1,7DHMOVR2,7EHCLR23HMOVR3,79HMOVR4,7AHMOVC,37HMOV24H,CLCALLSJFJNB25H,PID3MOV7BH,#00HMOV7CH,#00HSJMPPID4PID3:MOV7BH,R5MOV7CH,R6PID4:MOV6DH,6CHMOV6CH,6BHMOV7DH,7BHMOV7EH,7CHRETPIDENDP;将KD*[(ei-ei-1)-(e“-e卜2)]的符号位送23H位;调用双字节带符号加法子程序;将值送79H,7AH;将值的符号位送37H;计算口,将Ui-1值送R1,R2;U“值的符号位值恒为0;将值送R3,R4;将值的符号位送24H;调用双字节带符号加法子程序;判断计算结果是否为负;如果是负数,则输出电压为0;否则,将计算得到的Ui值置7BH,7CH;数据迭代,ei-1值送ei-2存储单元;ei值送ei-1存储单元;Ui值送ui-1存储单元PDPROCNEARPD:MOVA,5CHCLRCSUBBA,50HJNCPD1CPLAADDA,#01HSETB30HSJMPPD2PD1:CLR30HPD2:MOV6BH,AMOVR1,6BHMOVC,30HMOV20H,C;MOVR2,6CHMOVC,31HMOV21H,C;计算ej,先取温度给定值;温度给定值-温度检测值;判断ej正负,如果为正,跳至PID1;ei为负,下两条指令求补;ei为负,符号位置1;ei为正,符号位置0;ei值存放在6BH单位元中;计算ej-ei-1,先将ej值,送R1;将ej的符号位值送20H位;将e“值送R2;将ej-1的符号位值送21H位LCALLDJFMOV6EH,R3MOVC,22HMOV33H,CMOVR1,6CHMOVC,31HMOV20H,CMOVR2,6DHMOVC,32HMOV21H,CLCALLDJFMOV6FH,R3MOVC,22HMOV34H,CMOVR1,6EHMOVC,33HMOV20H,CMOVR2,6FHMOVC,34HMOV21H,CLCALLDJFMOV70H,R3MOVC,22HMOV35H,CMOVA,68HMOVB,6EHMULABMOV71H,BMOV72H.AMOVA,6AHMOVB,70HMULABMOV75H,BMOV76H,AMOVR1,71H;调用单字节带符号的减法子程序;将差值ei-ei1送6EH单元;将差值e「e“的符号位送33H位;计算ei-1-ei-2,先将ei-1值送R1;将ei-1符号位送20H位;将e卜2的值送R2;将e卜2的符号位值送21H位;调用单字节带符号的减法子程序;将差值ei1-ei2送6FH单元;将差值ek1-ei-2的符号位送34H位;计算(。严辺)-(ei-1-ei-2),将ei-ei-1值送R1;将ei-ei-1符号位送20H位;将ei-1-ei-2值送R2;将ei-1-ei-2符号位送21H位;调用单字节带符号的减法子程序;将差值(e.-ej-(ei1-ei2)送70H单兀;将差值(e.-e.-1)-(ei-1-ei-2)的符号位值送35H位;计算Kp*(e.-ei-1),将Kp值送A;将e.-e.-1值送B;两数相乘;Kp*(e.-ei-1)值存71H,72H单元;计算KD*[(e.-ei-1)-(e.-1-ei-2)],将KD送A;将(。严辺)-(ei-1-ei-2)值送B;两数相乘;KD*[(e.-ei-1)-(e.-1-ei-2)]值存75H,76H单元;计算Kp*(e.-ei-1)+KI*e.,将Kp*(e.-ei-1)值送R1,R2MOVR2,72HMOVC,33HMOV23H,CMOVR3,75HMOVR4,76HMOVC,35HMOV24H,CLCALLSJFMOV79H,R5;将Kp*(e.-ei-1)的付号位值送23H位;将KD*[(e.-e.-1)-(e.-1-e.-2)]值送R3,R4;将KD*[(e.-ei-1)-(e.-1-ei-2)]值的付号位送24H位;调用双字节带符号加法子程序;将AU.值送79H,7AHMOV7AH,R6MOVC,25HMOV7AH,R6MOVC,25HMOV37H,CMOVR1,7DHMOVR2,7EHCLR23HMOVR3,79HMOVR4,7AHMOVC,37HMOV24H,CLCALLSJFJNB25H,PD3MOV7BH,#00HMOV7CH,#00HSJMPPID4PD3:MOV7BH,R5MOV7CH,R6PD4:MOV6DH,6CHMOV6CH,6BHMOV7DH,7BHMOV7EH,7CHRETPDENDPDJFPROCNEARDFJ:JB20H,DFJ4JB21H,DFJ2CLRCMOVA,R1SUBBA,R2MOVR3,AJCDFJ1CLR22HRETDJF1:MOVA,R3CPLAADDA,#01HMOVR3,ASETB22HRETDJF2:MOVA,R1ADDA,R2MOVR3,AJNCDFJ3MOVR3,#0FFH;将值的符号位送37H;计算口,将Ui-1值送R1,R2;U“值的符号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华三IT售前专家认证GB10-125 H3CE考试通关试题库(含答案)
- 2025年山西职教高考《职业适应性测试》考前冲刺模拟试题库(附答案)
- 专题05 名句名篇默写
- 专题07 中国开始沦为半殖民地半封建社会(练习)
- 质押借款合同格式
- 融资担保服务合同
- 航空货运物流运输合同
- 承包的合同范本
- 年互联网技术服务合同
- 房产销售分销合同模板
- 医院消防安全培训课件
- 质保管理制度
- 《00541语言学概论》自考复习题库(含答案)
- 2025年机关工会个人工作计划
- 江苏省南京市、盐城市2023-2024学年高三上学期期末调研测试+英语+ 含答案
- 2024护理不良事件分析
- 光伏项目的投资估算设计概算以及财务评价介绍
- 粮油厂食品安全培训
- 电力安全工作规程(完整版)
- 2024年湖南省公务员录用考试《行测》试题及答案解析
- 借名买车的协议书范文范本
评论
0/150
提交评论