ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:333.24KB ,
资源ID:20961860      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20961860.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于PID控制算法的温度控制系统的设计与仿真之欧阳法创编Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于PID控制算法的温度控制系统的设计与仿真之欧阳法创编Word文件下载.docx

1、随着微电子技术的发展,采用功能强、体积小、价格低的智能化温度控制装置控制加热炉已成为现实。 采用单片机来对温度进行控制不仅具有控制方便、简单灵活性等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量,比过去单纯采用电子线路进行PID调节的控制效果要好的多。 微机控制系统的快速计算、灵活多样的逻辑判断和高效的信息加工能力使自动控制进入了更高一级的领域,提高了生产过程的自动化程度,减少了人工干预,并不断地完善和满足工农业生产和国防科技日益增长的需要。微机控制系统由于具有成本低、体积小、功耗小、可靠性高和使用灵活等特点,因而广泛的应用于工农业生产、交通运输、国防建设和空间技

2、术等各个领域。其控制对象已从单一的工厂流程扩展到企业生产过程的管理和控制。随着微机和单片机的推广使用,实现信息自动化与过程控制相结合的分级分布式计算机控制,使计算机控制技术的水平发展到一个崭新的阶段。 现在,许多常规的控制仪表和调节器已经为计算机所取代。计算机不断地监视整个生产过程,对生产中的各个参数进行采样,迅速进行复杂的数据处理,打印和显示工艺过程的统计数字和参数,并发出各种控制命令。 温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。2设计方案在温度测量控制系统中,实际温度值由PT100恒流工

3、作调理电路进行测量。为了克服PT100线性度不好的缺点,在信号调理电路中加入负反馈非线性校正网络;调理电路的输出电压经ADC0808转换后送入单片机AT89S51;对采样数据进行滤波及标定处理后,由3位7段数码管显示。输入的设定值由4位独立按键电路进行设定,可分别对设定值的十位和个位进行加1、减1操作。设定值送入单片机后,由另外一组3位7段数码管显示。数码管的段码由74HC05驱动,位码由三极管2N2222A驱动。为了使两组数码管实时显示,对两组数码管进行动态扫描。整体的电路原理框图如图1-1所示。图1-1整体电路原理框图系统采用PID闭环控制方案。如图1-2所示,将预置初值与温度传感器反馈信

4、号比较得到偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量的波动。在PID控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小。图1-2 系统控制方案3系统硬件仿真电路3.1 温度测量调理电路图3-1温度测量调理电路本系统采用恒流工作调理电路,铂电阻选用标称值为100的PT100作为温度传感器。A1、A2、A3采用低漂移运放OP07C,由于有电流经PT1

5、00传感器,所以当温度为0时,在PT100传感器上有电压降,这个电压为PT100传感器的偏置电压,是运放A1输出电压的一部分,使恒流工作调理电路的输出实际不为零。所以需要对这个偏置电压调零,R3为调零电阻,其作用为当温度为0时,将恒流工作调理电路的输出调到零。又因为PT100的电阻特性为非线性,PT100在0到100变化范围内非线性误差为0.4%(0.4),由于本系统无小数显示,0.4的误差本身不会对A/D量化和数码管显示造成影响,但由于软件编制中,对标度变化程序中的变换系数做了近似处理,使得非线性误差接近0.79%(0.79),就有可能对A/D量化和数码管显示造成影响,所以加进了线性化电路,

6、运放A3及电阻R1、R4和R6一同构成了负反馈非线性校正网络。R5用于调整运放A2的增益。电路的调整方法如下(用普通电阻代替PT100进行调整):(1)接入相当于0的100的电阻,用于R3调零。(2)接入相当于50的119.70的电阻,用于R5调整增益。(3)接入相当于100的139.10的电阻,用于R1或R4调整线性。 反复调整多次,在0到100温度范围内适宜为止。以温度值为横坐标,电压值为纵坐标,由表3-1分析非线性误差可知:在50时,存在最大偏差为0.005,故非线性校正后非线性误差变为0.1%(0.1),A/D量化及数码管显示不会产生误操作。表3-1 显示对照表理想温度值1020304

7、05060708090100对应电阻值103.9107.9111.8115.7119.7123.9127.4131.3135.2139.1实际输出电压0.0020.5021.0041.5022.0042.5053.0013.5024.0014.4984.996显示温度值注释1;温度单位/;电阻值单位/;电压单位/V。3.2 A/D转换电路本系统采用5V的电压源,用PT100电阻传感器组成的信号调理电路作为信号的输入装置,当PT100传感器置于温度场时,调理电路将根据PT100的阻值输出相应的电压值。将该输出电压送到ADC0808的模拟量输入通道IN0,经ADC0808进行模数转换,将标准的模拟

8、信号转换为等价的数字信号。本设计选用IN0作为模拟量输入通道,则将ADC0808的A、B、C三条地址线均置为低电平。转换启动信号START接到AT89S51的P2.0口,转换结束状态信号EOC接P3.7口,输出允许信号OE接P3.6口,地址锁存允许信号ALE接P3.3口,由于ADC0808内部没有时钟电路,所以用AT89S51的ALE经二分频接ADC0808的CLK端,VREF-接地,VREF+接+5V电压。ADC0808的转换结果输出到AT89S51的P0.0到P0.7口,作为AT89S51的输入信号。A/D转换接口电路如图3-2所示。 图3-2 A/D转换接口电路3.3 按键输入电路 本系

9、统采用4个按键搭建键盘电路,如图3-3所示。第一个按键用来判断是转入控制处理程序运行,还是转入键盘处理子程序运行;若未按下则转入控制处理子程序运行,按下则转入键盘处理子程序运行;若第一个按键按下,则第二个按键开始起作用,用第二个按键来判断是十位进行加减操作。若第二个按键未按下,转十位进行加减操作,否则转个位进行加减操作;第三个按键为减一操作,第四个按键为加一操作。为了方便按键操作,将个位和十位的设定值均设置为5,如果加一操作结果等于11,给加一单元重新赋值5,如果减一操作结果等于0FFH,给减一单元重新赋值5。这样考虑最坏情况,即用键盘设置离初始设定值最远的值,第三个按键最多按5次,第四个按键

10、最多按5次。从而大大减少了按键次数,且更方便地给出设定值。第一个键和第二个键的加入,也充分考虑了总程序的整体调度。图3-3 按键输入电路3.4数码管显示电路显示电路采用两个4位LED显示数码管,共阴极接法。第一个数码管显示A/D转换数据采集的采样值,选用3位显示采样值,显示范围为0到100;第二个数码管显示由键盘输入的设定值,用于显示对系统的温度设定,也选用3位显示设定值,显示范围为0到100。由于LED显示电路较多选用动态扫描方式,为了实现LED显示器的动态扫描,除了要给显示器提供段的输入外,还要对显示器的位进行控制,即段控和位控。所以需要用P1口输出8条段控线;位控线由挑选的P2.1、P2

11、.2、P2.3、P3.0、P3.1和P3.2输出,其中P2.1、P2.2和P2.3用于驱动键盘输入的设定值和数码管位控线,其余用于驱动显示A/D转换数码管的数据码位控线,位控线的数目等于数码管显示的位数。P1接口最多可连接8个LED显示器。为提高显示亮度,通常加74HC05进行段控输出驱动,与7段数码管的段码驱动输入端相连,由于位控的驱动电流较大,8段全亮需40到60mA,所以用三极管9012提高驱动能力,其集电极接到7段数码管的位码驱动输入端,三极管的发射极接地,将AT89S51的P3.0、P3.1、P3.2分别与一个2k的电阻连接到三极管的基极,用于驱动采样值显示数码管,将AT89S51的

12、P2.0、P2.1和P2.2口分别与一个2k的电阻连接到三极管的基极,用于驱动设定值显示数码管。显示电路如图3-4所示。图3-4 显示电路3.5 温度控制电路系统的电阻丝和风扇均采用如图3-5所示的电路形式。此电路采用晶体管驱动固态继电器。当P3.4为低电平,继电器RL1吸合;当P3.4或P3.5为高电平时,继电器RL1释放。采用这种控制逻辑可以使继电器在上电复位或单片机复位时不吸合。继电器由晶体管2N2222A驱动,它可以提供所需的驱动电流。图3-5 继电器控制电路PT100温度测控系统的完整电路如图3-6所示。图3-6 温度测控系统电路图4 程序设计4.1程序整体设计程序的控制思想:设置目

13、标温度后,系统采样水温,并通过预设温度、当前温度、历史偏差等进行PID运算产生fout输出参数,通过该参数控制加热时间,从而调节加热器的平均功率,实现系统的PID控制。整体功能通过主程序和中断服务程序配合实现。主程序流程:系统首先初始化I/O、定时器,之后进入主循环,进行温度采样和相关处理。在系统运行过程中通过按键重新设置目标温度值。PT100温度测控系统的主程序流程图如图4-1所示。图4-1 温度测控系统主程序4.2子程序设计 1.PID控制的实现 (1)PID简介。PID(Proportional Integral Derivative)控制是控制工程中技术成熟、应用广泛的一种控制策略,经

14、过长期的工程实践,已形成了一套完整的控制算法和典型的结构。它不仅适用于数学模型已知的控制系统,而且对于大多数数学模型难以确定的工业过程也可以应用,在众多工业过程控制中取得了满意的应用效果。 (2)PID工作原理。由于来自外界的各种扰动不断产生,要想达到现场控制对象值保持恒定的目的控制作用就必须不断地进行。若扰动出现使得现场控制对象(以下简称被控参数)发生变化,现场检测元件就会将这种变化采集后经变送器送到PID控制器的输入端,并与其给定值(以下简称SP值)进行比较得到偏差值(以下简称e值),调节器按此偏差并以预先设定的整定参数控制规律发出控制信号,去改变调节器的开度,使调节器的开度增加或减小,从

15、而使现场控制对象值发生改变,并趋向于给定值(SP值),以达到控制的目的,如图4-2所示。其实PID的实质就是对偏差(e)值进行比例、积分、微分运算,根据运算结果控制执行部件的过程。图4-2 模拟PID控制系统原理图 PID控制器的控制规律可以描述为: (4-1)比例(P)控制能迅速反应误差,从而减小稳态误差。但是,比例控制不能消除稳态误差。比例放大系数的放大,会引起系统的不稳定。积分(I)控制的作用是:只要系统有误差存在,积分控制器就不断的积累,输出控制量,以消除误差。因而,只要有足够的时间,积分控制就能完全消除误差,使系统误差为零,从而消除稳态误差。积分作用太强会使系统超调加大,甚至使系统出

16、现震荡。微分(D)控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。根据不同被控对象的控制特性,又可以分为P、PI、PD、PID等不同的控制模型。 (3)数字PID的实现。在连续时间控制系统(模拟PID控制系统)中,PID控制器的应用非常广泛。其设计技术成熟,长期以来形成了典型的结构,参数整定方便,结构更改灵活,能满足一般的控制要求。随着计算机的快速发展,人们将计算机引入到PID控制领域,也就出现了数字式PID控制。由于计算机基于采样控制理论,计算方法也不能沿袭传统的模拟PID控制算法,所以必须将控制模型离散化。离散化的方法为:

17、以T为采样周期,k为采样序号,用求和的形式代替积分,用增量的形式(求差)代替微分,这样就可以将连续的PID计算公式离散: (4-2)式中(4-1)就可以离散为: (4-3)或者: (4-4) 这样就可以让计算机或单片机通过采样的方式实现PID控制。具体的PID控制又分为位置式PID控制和增量式PID控制,(4-4)给出了控制量的全部大小,所以称为全量式或位置式控制。如果计算机只对相邻的两次做计算,只考虑在前一次基础上计算机输出量的大小变化,而不是全部输出信息的计算,这种控制叫做增量式PID控制算法,其实质就是求的大小。而,所示将式(4-4)作自减变换有: (4-5)式中:2.温度控制PID算法

18、设计 本系统利用上面所介绍的位置式PID算法,将温度传感器采样输入作为当前输入,与设定值进行相减得到偏差ek,然后再对其进行PID运算产生输出结果fout,最后让fout控制继电器的时间进而控制加热器。为了方便PID运算,首先建立一个PID的结构体数据类型。该数据类型用于保护PID运算所需要的P、I、D系数,以及设定值、历史误差的累加和等信息。Typedef struct PID float SetPoint; float Proportion; float Integral; float Derivative; int LastError; Int SumError;PID;PIDstPID

19、; 下面是PID运算的算法程序,通过PID运算返回fout,fout的值决定是否加热、加热时间是多少。PID运算的实现代码如下:Float PIDCalc(PID *pp,int NextPoint) Int dError,Error; Error=pp-SetPoint*10-NextPoint; pp-SumError + =Error; dError =Error - pp -LastError; pp-PrevError =pp-LastError; pp-LastError = Error; return(pp-Proportion*Error +pp-Integral*pp-Sum

20、Error -pp-Derivative*dError);在实际运算时,由于水具有很大的热惯性,而且PID运算中的1(积分项)具有非常明显的延迟效应,不能保留,所以必须把积分项去掉。相反,D(微分项)有很强的预见性,能够加快反应速度,抑制超调量,因此微分作用应该适当加强才能达到较佳的控制效果,系统最终选择PD控制方案。下面是PD控制的实现过程:Float PIDCalc(PID*pp,int NextPoint) Int dError,Error; Error=pp-SetPoint*10-NextPoint; dError=Error-pp-LastError; pp-PrevError=p

21、p-LastError; pp-LastError=Error );3.温度控制的实现 通过温度的PID运算,产生结果fmin,该参数决定是否加热。加热时间多长。 stPID.Proportion=2; stPID.Integral=0; stPID.Derivative=5; fOut=PIDCalc(&stPID,(int)(fT*10); if(fOut=0) *p_IOA_Buffer&=0ff7f; Else *p_IOA_Buffer=00080;加热时间由主函数计算。主程序中通过PIDCalc函数得到fmin参数。若该参数大于零,则开启加热器。如果PIDCalc计算结果比较大说明

22、离目标温度相差较大,则加热时间比较长;如果计算结果比较小,说明离目标温度相差较小,加热时间相对较短。 4.PID参数的整定 由PID控制原理知:比例(P)控制能迅速反映误差,减小稳态误差;比例作用的加大会引起系统的稳定。积分(1)控制的作用,只要系统有偏差存在,积分作用就不断地积累,输出控制量以消除误差;微分(D)控制可以减小超调量,克服震荡,使系统的稳定性提高。同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。控制的目标就是:反应速度尽可能快,超调量尽可能小,稳态误差趋近于零。5.A/D转换子程序 先送地址锁存允许信号ALE一个上升沿,是A.B.C地址状态送入地址锁存器中,然

23、后送START一个上升沿是内部寄存器清0,再给其一个下降沿,开始进行A/D转换。之后判断转换结束状态信号EOC是否为1,为0则继续等待转换,为1则将转换好的数字量经ADC0808的8个数据输出端D0D7送到AT89S51的P0口。转换流程图如图4-3所示。 图4-3 A/D转换子程序流程图6.键盘处理子程序 按键处理子程序流程图如图4-4所示。7.温度标定转换模块 控制系统在读入被测模拟信号并转换成数字量后,需要转换成人们所熟悉的物理量,这种转换就是标度变换。线性标度变换公式为: Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin式中,Y为参数测量值;Ymax为测量范

24、围最大值;Ymin为测量范围最小值;Nmin为对应的A/D转换值;Nmin为Ymin对应的A/D转换值;X为测量值Y对应的A/D转换值。 本系统中,Ymin=0,Ymax=100,Nmin=0,Nmax=255,则 Y=(100-0)(X-0)/(255-0)+0=a1X+a0式中,a1=0.39,a0=0。由于x的系数为小数,在单片机中编制像0.39这样的小数的乘法程序很难实现,如果将其取近似值0.4,则乘以最大A/D转换值后,会产生0.01255=2.55的误差。所以设线性系数为a1,最终转化的结果为100,通过a1=100256/255=100.39可确定系数。是四舍五入取100时,显示最高只能显示99,所以选用101。 8.显示子程序 显示模块的功能为:使第1个数码管显示A/D转换数据采集的采样值,而第2个数码管显示由按键输入的设定值,用于显示对系统的温度设定,在整个系统进行测控的过程中,两个数码管同时显示,显示程序中采样值显示采用了常规的显示程序,不再赘述。这里只谈编写显示程序中键盘显示时主要注意的一点。由于最后生成的设定值是有十位或个位的加一和十位或个位的减一键输入,须严格区分才可以编制其显示程序,此处采用的方法

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1