温度控制系统的软件设计与仿真-支持高清浏览_第1页
温度控制系统的软件设计与仿真-支持高清浏览_第2页
温度控制系统的软件设计与仿真-支持高清浏览_第3页
温度控制系统的软件设计与仿真-支持高清浏览_第4页
温度控制系统的软件设计与仿真-支持高清浏览_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的温度控制系统的软件设计与仿真指导老师 :

勇答辩人

: 王

萍北方民族大学毕业论文答辩2009年5月20日提纲总体设计方案温度控制器的设计各部分的软件设计仿真结果设计结论致谢总体设计方案

系统控制软件包含主程序、显示子程序、

A/D转换子程序、键盘子程序、PID数字控制器子程序及纯滞后的smith预估补偿子程序、定时中断子程序(5S采样周期)、PWM子程序、中间值滤波、温度标度的转换、AD采样子程序以及显示程序等几个模块。对于纯滞后系统的smith预估器的数字运算原理在后面会详细介绍。变送器

传感器AD转换单片机键盘显示电阻炉PWM功率元件电源用MATLAB仿真来验证控制器的正确性大林算法的离散系统的仿真的方框图如下:用示波器观察其输出波形如下:PID控制系统的方框图如下所示:加有预估器的输出波形:未加预估器的输出波形:式中取整数、T为采样周期。本系统采样周期T为5S,延时时间为20s,所以l=4补偿器转化图史密斯预估器的原理如图所示:smith预估器的数字化设计GP(S)U(k)m(k)C(k)在程序中,可以用下列方法得到m(k-l):再内存中专门设置L个单元存放m(k)的历史数据,每采样一次,把m(k)存于低零号单元前,先把第0号单元的数据后移到

1号单元,同时1号单元内的数据到2号单元,依次类推,这样从L单元得到m(k-l)。数字PID控制器的输入信号为:ec(k)=e(k)-c(k)、ec(k)、ec(k-1)、ec(k-2)分别替e(k)、e(k-1)、e(k-2),就可得到带smith预估器的PID控制算式m(k-l)smith预估器方框图有了纯滞后补偿器的Z传递函数,便可以得到差分方程在计算机上实现计算C1*m(K-1)计算b1*U(K-1)计算C1*m(K-1)+b1*U(K-1)给m(K)m(K)-m(K-L)给Q(K)数据迭代预估器子程序流程图由流程图可以编写程序,其中的小数运算转换为整数运算来处理,例如0.9048*m(K-1)可以等效为9048*m(K-1)/1000。程序中其他地方用到小数的地方,处理同上。SMITH:MOV

R2,UK_1MOV

R3,UK_1+1MOV

R6,B1HMOV

R7,B1LLCALL

NMUL22MOV

B1U_1,R3MOV

B1U_1+1,R4MOV

R2,#00HMOV

R3,PKK+1MOV

R6,C1HMOV

R7,C1LLCALL

NMUL22MOV

C1P_1,R3MOV

C1P_1+1,R4MOV

A,B1U_1+1CLR

CADD

A,C1P_1+1MOV

PKK,AMOV

A,B1U_1ADDC

A,C1P_1ANL

A,#0FFHCJNE

A,#00H,XIANFU1SJMP

SS4MOV

A,PKKCLR

CSUBB

A,PKK+4MOV

DPTR,AMOV

R7,

DPHMOV

R6,DPLMOV

R5,

#03HMOV

R4,

#0E8HLCALL

DIV1MOV A,

R6SS5:MOV

QSMITH,AMOV

2EH,CMOV

R2,#4HMOV

R0,#PKK+4MOV

R1,#PKK+5MOV

A,@R0MOV

@R1,ADEC

R0DEC

R1DJNZ

R2,SS5RETXIANFU1:

MOV

PKK,#0FFHSS4:Y保护现场N调SMITH调PID定时器赋50MS定时中断返回注:每50MS产生中断AD采样T1中断子程序:1S到没?温度显示温度标度转换数字滤波温度标度变换子程序:控制系统在读入被测模拟信号并转换成数字量后,往往要转换成操作人员所熟悉的物理量。这是因为被测对象的各种数据的量纲与A/D转换的输入值不一样。被测对象的参数经传感器和A/D转换后得到一系列的数码。这些数码值并不等于原来带有量纲的参数值,仅仅对应于参数的大小,故必须把它转换成带有量纲的数值才能显示或打印输出。这种转换就是标度转换。N采样值始址送R0采样次数送R2选通IN0启动ADC延时A/D完成?所有采样结束?返回YNYAD采样子程序:使用T0定时器产生5S定时中断,作为本系统的采样周期。在中断服务程序中启动A/D转换,读入采样数据。由前面

章节中所讲的,采样周期选

5S控制效果最好。定时器T0采用方式1,定时50ms,50ms的100次即为5S。因为采样可能会因为偶然因素产生误差,为了采样值的精确我们采样

三次,然后用中间值滤波对

三次采样数据处理,从而可

以求得较为精确一点的采样

值。定时与滤波在这里不详

细叙述。数字PID算法PID调节即比例(proportional)、积分(integral)、微分(derivative)调节是连续控制系统中技术最成熟、应用最广泛的一种调节控制方式。在模拟控制系统中,

PID算法的表达式为:将上式离散化,用离散的PID表达式如下:增量式PID表达式如下所示:通过上述推导,似乎PID控制算法的程序设计并不复杂,只要将给定值与每次所得到

的温度检测值相减,得到偏差e(k),在与上次偏差e(k-1)(设初始值为0)相减,得到

e(k)-e(k-1),又通过上次偏差e(k-1)与前次偏差e(k-2)(初始值也设为0)相减,得到e(k-1)-e(k-2).有了e(k),e(k)-e(k-1),e(k-1)-e(k-2)及、、三个常数,通计算可得到U(K),然而,事实上,运算并非那么简单,这是由于e(k),e(k)-e(k-1),e(k-1)-e(k-2)均可能为正或负。计算E(K)=给定值-SMITH(QK)计算KP[E(K)-E(K-1)]计算KD{[E(K)-E(K-1)]–[E(K-1)-E(K-2)]}U=计算KP[E(K)-E(K-1)]+

KD{[E(K)-E(K-1)]

]+KIE(K)+[E(K-1)-E(K-2)]}计算KP[E(K)-E(K-1)]+KIE(K)计算输出U(K)数据迭代计算PWM的Ton和Toff并计算对应的定时器所装入的初值PID算法子程序对偏差进行PID算法处理,并输出控制脉冲信号,脉冲宽度由T0定时器中断计算E(K)-E(K-1),E(K-1)-E(K-2),[E(K)-E(K-1)]

–[E(K-1)-E(K决-2定)]。在本程序计算中,例如在PID运算中由于KP、KI、KD、CI、BI都为小数,要用到浮点小数的运算,浮点小数的运算比较复杂,并且存放大量的浮点数需要很大的内存空间,势必会影响CPU的运算速度,故在此,不用浮点运算,对需要用浮点运算的地方做一定处理。如KI*EK,KI=0.15,这里可以用15*EK/100来处理,文中需要用到浮点运算的地方都作此处理。保护现场逐行扫描判键位置送位置码送对应键数值给KEYBUF1键值存储单元移位,空出KEYBUF1转BCD码(显示用)转HEX(PID的设定值)调键盘设定值的显示子程序YKEYBUF全部置0Y中断返回外部中断0子程序(键盘)为RESET键?N为ENTER键N?用外部中断INT0来控制键盘。当

有键按下时,产

生中断,然后

CPU去处理中断

程序,找到键码,输入设定温度,另外送显示。键

盘上设定有0-9的数字键,以及清

零键,同时有回

车键,在设置数

字键时,让LED

显示BCD数,故

需要将键值转换为BCD数。本系统设计结论通过本系统的软件与硬件系统进行联调仿真可以看出,本系统可以实现对锅炉温度的控制,用键盘给定某一温度时,在一定的时间内锅炉的实际温度与给定温度基本一致。论文中存在的问题:程序基本可以实现所需要的控制功能,但由于在数据的处理问题上,小数部分的舍去,以及除法运算的余数的舍去,可能会使系统的控制功能存在一定得误差。由仿真结果可知,虽然有误差存在,基本上还是可用的。同时本系统采用的是基于smith预估补偿的PID控制算法,它的被控对象(这里的加热炉)的模型必须是可知的,而在PROTEUS仿真时,软件中的

温馨提示

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

评论

0/150

提交评论