智能控制作业.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、已知某一炉温控制系统,要求温度保持在600℃ 若炉温低于600 ℃ ,则升压;低得越多升压越高。 若炉温高于600 ℃ ,则降压;高得越多降压越低。 若炉温等于600 ℃ ,则保持电压不变。 设计模糊控制器为一维控制器,输入语言变量为误差,输出为控制电压。输入、输出变量的量化等级为7级,取5个模糊集。试设计隶属度函数误差变化划分表、控制电压变化划分表和模糊控制规则表。 要求有程序及注释,仿真结果和分析。 确定模糊控制器的输入输出变量 将600℃作为给定值t0 ,测量炉温为t(k),则: 输入变量:e(k)= t(k)-t0 输出变量:触发电压 u 的变化量,该 u直接控制供电电压的高低。 (2)输入输出变量的模糊语言描述 输入输出变量的语言值:{负大(NB),负小(NS),零(ZE),正小(PS),正大(PB)} 设:e的论域为X,u 的论域为Y,均量化为七个等级: X= {-3,-2,-1,0,1,2,3},Y={-3,-2,-1,0,1,2,3} 语言变量 E 和 U 的隶属函数赋值表(论域离散): 隶属度 输入量e的变化等级 -3 -2 -1 0 1 2 3 模 糊 集 PB 0 0 0 0 0 0.5 1 PS 0 0 0 0 1 0.5 0 ZE 0 0 0.5 1 05 0 0 NS 0 0.5 1 0 0 0 0 NB 1 0.5 0 0 0 0 0 隶属度 输出量u的变化等级 -3 -2 -1 0 1 2 3 模 糊 集 PB 0 0 0 0 0 0.5 1 PS 0 0 0 0 1 0.5 0 ZE 0 0 0.5 1 05 0 0 NS 0 0.5 1 0 0 0 0 NB 1 0.5 0 0 0 0 0 (3)模糊控制规则 ①if E =NB then U =PB ②if E =NS then U =PS ③if E =ZE then U =ZE ④if E =PS then U =NS ⑤if E =PB then U =NB (4)求模糊控制表 IF NBe NSe ZOe PSe PBe THEN PBu PSu ZOu NSu NBu (5)控制量转化为精确量: 采用加权平均法: (6)计算模糊关系 R=(NBe×PBu)+ (NSe×PSu)+(ZEe×ZEu)+ (PSe×NSu) +(PBe×NBu) ZEe×ZEu =(0, 0, 0.5,1, 0.5,0,0)× (0,0 , 0.5, 1 , 0.5 , 0,0) 分别计算出矩阵NBe×PBu,NSe×PSu, ZEe×ZEu,PSe×NSu ,PBe×NBu求并集得: 查询表: e -3 -2 -1 0 1 2 3 u 3 2 1 0 -1 -2 -3 实际控制时,将测量到的误差量化后,从查询表中得到控制量再乘以比例因子Kn,即作为控制的实际输出。 (7)模糊决策 模糊控制器的输出为误差向量和模糊关系的合成,即u=eR。当误差e为NB时,e=[1,0.5,0,0,0,0,0],控制器的输出u: (8)控制量的反模糊化 控制器输出为一维模糊向量,即: 如果按照“隶属度最大原则”进行反模糊化,则选择控制量为 u =3,增大压力使温度升高。这与e=NB时的实际操作经验是一致的。 程序设计及仿真 %Fuzzy Control for water tank clear all; close all; a=newfis(fuzz_temp); a=addvar(a,input,e,[-3,3]); %Parameter e a=addmf(a,input,1,NB,zmf,[-3,-1]); a=addmf(a,input,1,NS,trimf,[-3,-1,1]); a=addmf(a,input,1,Z,trimf,[-2,0,2]); a=addmf(a,input,1,PS,trimf,[-1,1,3]); a=addmf(a,input,1,PB,smf,[1,3]); a=addvar(a,output,u,[-3,3]); %Parameter u a=addmf(a,output,1,NB,zmf,[1,3]); a=addmf(a,output,1,NS,trimf,[-1,1,3]); a=addmf(a,output,1,Z,trimf,[-2,0,2]); a=addmf(a,output,1,PS,trimf,[-3,-1,1]); a=addmf(a,output,1,PB,smf,[-3,-1]); rulelist=[1 1 1 1; %Edit

您可能关注的文档

文档评论(0)

189****4123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档