版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、加热炉燃烧模糊控制系统的设计与应用(电控学院 测控0902班 李园 0906070204)摘要:针对加热炉煤气,空气流量计的不准确,煤气发热值不真实等各种现状,设计一种基于专家经验的模糊控制程序,通过调节煤气空气调节阀,烟道闸板阀的开度来控制加热温度,并把加热温度稳定在尽可能小的设定值+20之内,达到均匀加热,降低燃耗和氧化烧损、减少待温时间和提高产能的目的。关键词:加热炉燃烧 模糊控制 The fuzzy control system design and application heating furnace burning(Electrical and control engineeri
2、ng Academy Measurement and control technology in class 0902LiYuan 0906070204)Abstract: According to the various kinds of present situation that is inaccuracy of the heating furnace and the air flow and gas calorific value is not real and so on, we design a kind of fuzzy control based on expert exper
3、ience program, which control the temperature of the heating and steadying the temperature of heating as small as possible in the setting value within + 20 through adjusting the gas air regulator and the flue damper valves opening to heat evenly, reduce fuel consumption lose oxygenation, spend less t
4、ime and increase temperature capacity. Keywords: the heating furnace burning; fuzzy control1 模糊控制的简介 1.1模糊控制原理 1.1.1模糊控制的产生在自动控制技术产生之前,人们在生产过程中只能采用手动控制方式。手动控制过程分别是由人的眼-脑-手来完成的。后来,由于科学技术的进步,人们逐渐采用各种测量装置(如传感器)代替人眼,完成对被控制量的观测任务;利用各种控制器(如PID调节器)取代人脑的作用,实现比较、综合被控制量与给定量之间的偏差,控制器所给出的输出信号相当于手动控制过程中人脑的决策;使用各
5、种执行机构(如电动机)对被控对象施加某种控制作用,这就起到了手动控制中手的调整作用。 上述由测量装置、控制器、被控对象及执行机构组成的自动测控系统,就是人们所熟知的常规负反馈控制系统。常规控制首先要建立精确数学模型,但是对一些复杂的工业过程,建立精确的数学模型是非常困难的,或者是根本不可能的。于是常规控制技术在这里就遇到了不可逾越的障碍。但是,熟练的技术操作人员,通过感官系统进行现场观察,再根据自己的经验就能很容易地实现这类控制过程,于是就产生了一个问题,能否把人的操作经验总结为若干条控制规则,并设计一个装置去执行这些规则,从而对系统进行有效的控制呢?答案是肯定的。这种装置就是模糊控制器。与传
6、统的PID控制相比,模糊控制有其明显的优越性:1.由于模糊控制实质上是用计算机去执行操作人员的控制策略,因而可以避开复杂的数学模型。2.对于非线性,大滞后及带有随机干扰的复杂工业对象,由于数学模型难以建立,因而传统的PID控制也就失效,而对这样的系统,设计一个模糊控制器,却没有多大困难。实践结果表明,在两种系统均调到最佳状态下,当工作条件大幅度变化时,经典的PID控制难以进行调整,而模糊控制对过程参数改变不灵敏,在所有工作所有工作点上都能做到较稳定的控制,这说明模糊控制本质上是非线性的,并且对于对象的参数变化适应性强,即所谓的“鲁棒性”较好。1.1.2 模糊控制系统的组成模糊控制属于计算机数字
7、控制的一种形式,通常由5个部分组成,其系统框图如图6-17所示。A/D模糊控制器D/A执行机构被控对象变送器+-r(t)e(t)u(k)e(k)u(t)g(t)y(t)1.1.3 模糊控制器的组成及各部分的工作原理模糊控制器主要包括输入量模糊化接口、知识库、推理机、输出清晰化接口四个部分,如图6-18所示。1)模糊化接口模糊控制器的输入变量(通常为偏差和偏差的变化率)的实际变化范围叫做这些变量的基本论域,显然基本论域内的量为精确量,当计算机实现模糊控制算法进行模糊控制时,每次采样得到的被控制量需经计算机计算,以便得到模糊控制器的输入变量。为了进行模糊化处理,必须将输入变量从基本论域转换到相应的
8、模糊集论域。设输入变量的基本论域为-x,x,输入变量的模糊集论域为-n,-n+1,0,n-1,n,即可以给出精确量模糊化的量化因子 k = nx (6-43)把输入变量乘以量化因子,就能实现输入变量从基本论域到模糊集论域的转换。通常,习惯上把输入变量的模糊集论域设定为-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,把在这区间的连续量模糊化为7档:“正大”(PB)多数取+6附近;“正中”(PM)多数取+4附近;“正小”(PS)多数取+2附近;“零”(0)多数取0附近;“负小”(NS)多数取-2附近;“负中”(NM)多数取-4附近;“负大”(NB)多数取-6附近。这7档对应着7个模
9、糊子集 2)知识库 数据库:存放所有输入输出变量的全部模糊子集的隶属度矢量值,若论域为连续域,则为隶属度函数。对于以上例子,须将表6-7中内容存放于数据库,在规则推理的模糊关系方程求解过程中,向推理机提供数据。 规则库:用来存放全部模糊控制规则,在推理时为“推理机”提供控制规则。模糊控制器的规则是基于专家知识或手动操作熟练人员长期积累的经验,它是按人的直觉推理的一种语言表示形式。模糊规则通常由一系列的关系词连接而成,如ifthen,else,also,end,or等,关系词必须经过“翻译”才能将模糊规则数值化。3)推理机推理机在模糊控制器中的功能是:根据输入的模糊量和知识库(数据库、规则库)完
10、成模糊推理,并求解模糊关系方程,从而获得模糊控制量。例如,若已知偏差E和偏差的变化率EC的模糊集,则控制量的模糊集U可由模糊推理的合成算法获得,即 式中,× 模糊直积运算;· 模糊合成运算; 模糊关系。 4)清晰化接口通过推理机进行模糊决策所得到的输出是模糊量,而被控对象只能接受一个控制量,因此要进行控制必须经过清晰化接口将模糊量转换为精确量。将模糊量转换为精确量通常采用以下三种方法: 最大隶属度判决法:若对应的模糊决策的模糊集中,元素u*U,且满足则取u* (精确量)作为输出控制量。u*就是该模糊子集中隶属度最大的那个元素。如果这样的隶属度最大点u*不唯一,就取它们的平均
11、值作为执行量。 加权平均判决法:该方法的输出量u*的值由下式来决定取中位数法:在最大隶属度判决法中,只考虑了最大隶属数,而忽略了其它信息的影响。中位数判决法是将隶属函数曲线与横坐标所围成的面积平均分成两部分,以分界点所对应的论域元素作为判决输出。2 加热温度模糊控制设计原理和过程2.1 基本原理: 总结专家技术人员及优秀操作工人的现场经验; 参照模糊控制结构选取误差及误差变化率作为输入,这样既可克服一维模糊控制动态性能欠佳的不足,又能避免由于维数过高而使控制规则过于复杂,实现较困难的缺点; 在上述基础上将误差、误差变化率的模糊量经合成算法,推得模糊规则表; 模糊控制规则自适应修正。加热温度设三
12、档来控制,均热段分别是1250 ± 10、1230 ± 10、1210 ± 10; 加热段分别是1230 ± 10、1190 ± 10、1150 ±10,预热段暂不作特定要求,档位的选择由毛轧主电机实际电流作为主要依据,若电流在额定电流范围内,则尽可能选择较低温度档位,若因炉膛压力过高而引起炉尾冒火,则也应选择低温档位。2.2 系统的模糊设计以均热段为例: 冷风阀和煤气调节阀,err_T = pv sv,简写为E ,误差变化率表示为EC。温度的控制精度目标为± 10。E模糊变量的集合范围为 NB,NM,NS,ZO,PS,PM
13、,PB ; EC 模糊变量的集合范围为 NB,NS,ZO,PS,PB。据现场所采集的数据,发现三段的温度变化曲线不完全相同,所以分别定义E,EC的取值范围。分析发现均热段的温度曲线较其它两段平稳,采样控制周期暂定为10s。根据温度的控制精度目标为± 10,均热段E 模糊变量各变量的取值为:E7.5NB;7.5E5NM;5E2.5NS;2.5 E2.5ZO;2.5E5PS;5E7.5PM;7.5EPB。根据现场所收集的均热段数据ECmin =0.49 /s,ECmax=0.79/s.均热段EC模糊变量各变量的取值为:EC0.28NB;0.28EC0.06NS; 0.06EC0.36ZO
14、;0.36EC0.58PS; 0.58ECPB。煤气阀门控制U 模糊变量的集合范围为 NB,NM,NS,ZO,PS,PM,PB ,对应的阀门变化开度为3%,2%,1%,0%,1%,2%,3% 。温度模糊控制规则如表一所示表一 温度模糊控制表EC UENBNSZ0PSPBNBPBPBPBPMPSNMPBPBPMPSZ0NSPBPMPSZ0NSZ0PMPSZ0NSNMPSPSZ0NSNMNBPMZ0NSNMNBNBPBNSNMNBNBNB设计一个模糊器,满足如下条件:输入误差E:-7.5-7.5范围内分为7个论域:NB NM NS Z0 PS PM PB;隶属度函数满足高斯分布;输入误差变化率Ec
15、:-0.28-0.58范围内分为5个论域:NB NS Z0 PS PB; 隶属度函数满足高斯分布;模糊推理过程:output=(输入隶属度函数值+输入误差的隶属度函数值)/2*输出论域的中心值。控制规则:% %if error input is NB and error input rate is NB, then output is PB;% % if error input is NB and error input rate is NS, then output is PB;% % if error input is NB and error input rate is Z0, then
16、 output is PB;% % if error input is NB and error input rate is PS, then output is PM;% % if error input is NB and error input rate is PB, then output is PS; % % if error input is NM and error input rate is NB, then output is PB;% % if error input is NM and error input rate is NS, then output is PB;%
17、 % if error input is NM and error input rate is Z0, then output is PM;% % if error input is NM and error input rate is PS, then output is PS;% % if error input is NM and error input rate is PB, then output is Z0; % % if error input is NS and error input rate is NB, then output is PB;% % if error inp
18、ut is NS and error input rate is NS, then output is PM;% % if error input is NS and error input rate is Z0, then output is PS;% % if error input is NS and error input rate is PS, then output is Z0;% % if error input is NS and error input rate is PB, then output is NS; % % if error input is Z0 and er
19、ror input rate is NB, then output is PM;% % if error input is Z0 and error input rate is NS, then output is PS;% % if error input is Z0 and error input rate is Z0, then output is Z0;% % if error input is Z0 and error input rate is PS, then output is NS;% % if error input is Z0 and error input rate i
20、s PB, then output is NM; % % if error input is PS and error input rate is NB, then output is PS;% % if error input is PS and error input rate is NS, then output is Z0;% % if error input is PS and error input rate is Z0, then output is NS;% % if error input is PS and error input rate is PS, then outp
21、ut is NM;% % if error input is PS and error input rate is PB, then output is NB; % % if error input is PM and error input rate is NB, then output is Z0;% % if error input is PM and error input rate is NS, then output is NS;% % if error input is PM and error input rate is Z0, then output is NM;% % if
22、 error input is PM and error input rate is PS, then output is NB;% % if error input is PM and error input rate is PB, then output is NB;% % if error input is PB and error input rate is NB, then output is NS;% % if error input is PB and error input rate is NS, then output is NM;% % if error input is
23、PB and error input rate is Z0, then output is NB;% % if error input is PB and error input rate is PS, then output is NB;% % if error input is PB and error input rate is PB, then output is NB;1. 输入误差为:程序为:x1 = (-7.5:0.1:7.5)'y0 = gaussmf(x1, 1 -7.5);y1 = gaussmf(x1, 1 -5);y2 = gaussmf(x1, 1 -2.5)
24、;y3 = gaussmf(x1, 1 0);y4 = gaussmf(x1, 1 2.5);y5 = gaussmf(x1, 1 5);y6 = gaussmf(x1, 1 7.5);plot(x1,y0 y1 y2 y3 y4 y5 y6);2. 输入误差的变化率为:程序为:X2 = (-0.28:0.1:0.58)'y0 = gaussmf(x2, 0.5 -0.28);y1 = gaussmf(x2, 0.5 -0.06);y2 = gaussmf(x2, 0.5 0.15);y3 = gaussmf(x2, 0.5 0.36);y4 = gaussmf(x2, 0.5 0.5
25、8);plot(x2,y0 y1 y2 y3 y4);3. 程序为:x1=-7.5;x2=-0.28; % define input type in fuzzy zoney0 = gaussmf(x1, 1 -7.5);y1 = gaussmf(x1, 1 -5);y2 = gaussmf(x1, 1 -2.5);y3 = gaussmf(x1, 1 0);y4 = gaussmf(x1, 1 2.5);y5 = gaussmf(x1, 1 5);y6 = gaussmf(x1, 1 7.5);a=y0 y1 y2 y3 y4 y5 y6;b=max(a);% caculate input i
26、n fuzzy zone,get input_type and input_authorityvalueif x1<=7.5 & x1>=-7.5 if b=a(1) type='NB' authorityvalue=y0; elseif b=a(2) type='NM' authorityvalue=y1;elseif b=a(3) type='NS' authorityvalue=y2;elseif b=a(4) type='Z0' authorityvalue=y3;elseif b=a(5) type=
27、'PS' authorityvalue=y4;elseif b=a(6) type='PM' authorityvalue=y5;elseif b=a(7) type='PB' authorityvalue=y6; endelseif x1>7.5 type='PB' authorityvalue=1; elseif x1<-7.5 type='NB' authorityvalue=1;endend type authorityvalue%error calculate.ey0 = gaussmf(x2
28、, 0.5 -0.28);ey1 = gaussmf(x2, 0.5 -0.06);ey2 = gaussmf(x2, 0.5 0.15);ey3 = gaussmf(x2, 0.5 0.36);ey4 = gaussmf(x2, 0.5 0.58);a=ey0 ey1 ey2 ey3 ey4;b=max(a);% caculate input in fuzzy zone,get input_type and input_authorityvalueif x2<=0.58 & x2>=-0.28 if b=a(1) etype='NB' eauthority
29、value=y0; elseif b=a(2) etype='NS' eauthorityvalue=y1; elseif b=a(3) etype='Z0' eauthorityvalue=y2; elseif b=a(4) etype='PS' eauthorityvalue=y3; elseif b=a(5) etype='PB' eauthorityvalue=y4; endelse if x2>0.58 etype='PB' eauthorityvalue=1; elseif x2<-0.28
30、 etype='NB' eauthorityvalue=1; endend etype eauthorityvalue % caculate output by if type='NB'& etype='NB' out=(authorityvalue+eauthorityvalue)/2*(0.03); % if input is NB and errorinput is NB, then output is PB; elseif type='NB'& etype='NS' out=(authori
31、tyvalue+eauthorityvalue)/2*(0.03); % if input is NB and errorinput is NS, then output is PB; elseif type='NB'& etype='Z0' out=(authorityvalue+eauthorityvalue)/2*(0.03); % if input is NB and errorinput is Z0, then output is PB; elseif type='NB'& etype='PS' out=
32、(authorityvalue+eauthorityvalue)/2*0.02; % if input is NB and errorinput is PS, then output is PM; elseif type='NB'& etype='PB' out=(authorityvalue+eauthorityvalue)/2*0.01; % if input is NB and errorinput is PB, then output is PS; elseif type='NM'& etype='NB'
33、out=(authorityvalue+eauthorityvalue)/2*0.03; % if input is NM and errorinput is NB, then output is PB;elseif type='NM'& etype='NS' out=(authorityvalue+eauthorityvalue)/2*0.03; % if input is NM and errorinput is NS, then output is PB;elseif type='NM'& etype='Z0'
34、; out=(authorityvalue+eauthorityvalue)/2*0.02; % if input is NM and errorinput is Z0, then output is PM;elseif type='NM'& etype='PS' out=(authorityvalue+eauthorityvalue)/2*0.01; % if input is NM and errorinput is PS, then output is PS;elseif type='NM'& etype='PB
35、39; out=(authorityvalue+eauthorityvalue)/2*0.000001; % if input is NM and errorinput is PB, then output is Z0;elseif type='NS'& etype='NB' out=(authorityvalue+eauthorityvalue)/2*0.03; % if input is NS and errorinput is NB, then output is PB;elseif type='NS'& etype=
36、9;NS' out=(authorityvalue+eauthorityvalue)/2*0.02; % if input is NS and errorinput is NS, then output is PM;elseif type='NS'& etype='Z0' out=(authorityvalue+eauthorityvalue)/2*0.01; % if input is NS and errorinput is Z0, then output is PS;elseif type='NS'& etype=&
37、#39;PS' out=(authorityvalue+eauthorityvalue)/2*0.000001; % if input is NS and errorinput is PS, then output is Z0;elseif type='NS'& etype='PB' out=(authorityvalue+eauthorityvalue)/2*(-0.01); % if input is NS and errorinput is PB, then output is NS;elseif type='Z0'&
38、; etype='NB' out=(authorityvalue+eauthorityvalue)/2*0.02; % if input is Z0 and errorinput is NB, then output is PM;elseif type='Z0'& etype='NS' out=(authorityvalue+eauthorityvalue)/2*0.01; % if input is Z0 and errorinput is NS, then output is PS;elseif type='Z0'&a
39、mp; etype='Z0' out=(authorityvalue+eauthorityvalue)/2*0.000001; % if input is Z0 and errorinput is Z0, then output is Z0;elseif type='Z0'& etype='PS' out=(authorityvalue+eauthorityvalue)/2*(-0.01); % if input is Z0 and errorinput is PS, then output is NS;elseif type='
40、Z0'& etype='PB' out=(authorityvalue+eauthorityvalue)/2*(-0.02); % if input is Z0 and errorinput is PB, then output is NM;elseif type='PS'& etype='NB' out=(authorityvalue+eauthorityvalue)/2*0.01; % if input is PS and errorinput is NB, then output is PS;elseif type=
41、'PS'& etype='NS' out=(authorityvalue+eauthorityvalue)/2*0.000001; % if input is PS and errorinput is NS, then output is Z0;elseif type='PS'& etype='Z0' out=(authorityvalue+eauthorityvalue)/2*(-0.01);% if input is PS and errorinput is Z0, then output is NS;else
42、if type='PS'& etype='PS' out=(authorityvalue+eauthorityvalue)/2*(-0.02); % if input is PS and errorinput is PS, then output is NM;elseif type='PS'& etype='PB' out=(authorityvalue+eauthorityvalue)/2*(-0.03); % if input is PS and errorinput is PB, then output is
43、 NB;elseif type='PM'& etype='NB' out=(authorityvalue+eauthorityvalue)/2*0.000001; % if input is PM and errorinput is NB, then output is Z0; elseif type='PM'& etype='NS' out=(authorityvalue+eauthorityvalue)/2*(-0.01); % if input is PM and errorinput is NS, then
44、 output is NS;elseif type='PM'& etype='Z0' out=(authorityvalue+eauthorityvalue)/2*(-0.02); % if input is PM and errorinput is Z0, then output is NM;elseif type='PM'& etype='PS' out=(authorityvalue+eauthorityvalue)/2*(-0.03); % if input is PM and errorinput is
45、PS, then output is NB;elseif type='PM'& etype='PB' out=(authorityvalue+eauthorityvalue)/2*(-0.03); % if input is PM and errorinput is PB, then output is NB;elseif type='PB'& etype='NB' out=(authorityvalue+eauthorityvalue)/2*(-0.01); % if input is PB and errori
46、nput is NB, then output is NS;elseif type='PB'& etype='NS' out=(authorityvalue+eauthorityvalue)/2*(-0.02); % if input is PB and errorinput is NS, then output is NM;elseif type='PB'& etype='Z0' out=(authorityvalue+eauthorityvalue)/2*(-0.03); % if input is PB an
47、d errorinput is Z0, then output is NB;elseif type='PB'& etype='PS' out=(authorityvalue+eauthorityvalue)/2*(-0.03); % if input is PB and errorinput is PS, then output is NB;elseif type='PB'& etype='PB' out=(authorityvalue+eauthorityvalue)/2*(-0.03); % if input is PB and errorinput is PB, then output is NB; end outx1-7.5-7.5-7.5-7.5-7.5x2-0.28-0.060.150.360.58t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论