matlab模糊控制实现文档格式.doc
- 文档编号:1449148
- 上传时间:2023-04-30
- 格式:DOC
- 页数:8
- 大小:162KB
matlab模糊控制实现文档格式.doc
《matlab模糊控制实现文档格式.doc》由会员分享,可在线阅读,更多相关《matlab模糊控制实现文档格式.doc(8页珍藏版)》请在冰点文库上搜索。
根据系统输入变量个数可知,应采用采用双输入单输出模糊控制器。
(如图2所示)模糊控制器主要包含三个功能环节:
用于输入信号处理的模糊量化和模糊化环节,模糊控制算法功能单元,以及用于输出解模糊化的模糊判决环节。
二维
模糊
控制器
e
d/dt
图2双输入单输出模糊控制器
3、确定各变量的模糊语言取值及相应的隶属函数,即进行模糊化
模糊化是将模糊控制器输入量的确定值转换为相应模糊语言变量值的过程,此相应语言变量均由对应的隶属度函数来定义。
对纸浆浓度偏差e、纸浆浓度偏差变化率ec、阀门开度的增量u进行模糊化,分别用模糊语言变量X、Y、Z进行表示,语言值集合均为{负大,负中,负小,零,正小,正中,正大},用英文缩写进行表示分别为:
X={NBe,NMe,NSe,ZOe,PSe,PMe,PBe}
Y={NBec,NMec,NSec,ZOec,PSec,PMec,PBec}
Z={NBu,NMu,NSu,ZOu,PSu,PMu,PBu}
模糊化包括两个任务:
第一个任务是进行论域变换,过程参数的实际范围称为基本论域,可以通过变换系数(量化因子)实现由基本论域到量化论域的变换;
第二个任务是求得输入对应于语言变量的隶属度。
取三角形隶属函数,并取为均非均匀间隔。
a.任务一:
求量化因子
e、ec和u的基本论域分别为[-1.2%~1.2%]、[-0.6%~0.6%]和[-12~12],量化论域分别为[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7]。
纸浆浓度偏差e的量化因子Ke=6/0.012=500,纸浆浓度偏差变化率ec的量化因子Kec=6/0.006=1000,通过量化因子即可实现由基本论域到量化论域的变换。
b.任务二:
取隶属度函数
选用三角形隶属度函数,如图所示:
图2-1纸浆浓度偏差e的隶属度函数
图2-2纸浆浓度偏差变化率ec的隶属度函数
图2-3阀门开度增量u的隶属度函数
这样对于纸浆浓度偏差e、纸浆浓度偏差变化率e的不同输入值,可以根据对应的隶属度函数,把它模糊化成不同的语言值,这样就完成了模糊化。
4、建立模糊控制规则或控制算法
根据人的直觉思维推理,由系统输出的误差和误差变化趋势来消除系统的误差的模糊控制规则,对于不同的被控对象,误差E,误差变化率EC及控制量U有不同的意义。
在本设计中分别为纸浆浓度偏差e、纸浆浓度偏差变化率ec、阀门开度的增量u。
建立模糊控制规则是指规则的归纳和规则库的建立,是从实际控制经验过渡到模糊控制器的中心环节。
控制律通常由一组if-then结构的模糊条件语句构成,或总结为模糊控制规则表。
例如:
If(input1isNBe)and(input2isNBec)then(output1isPBu)
(1)
即是模糊条件语句
5、确定模糊推理和解模糊化方法
输出的解模糊化就是将语言表达的模糊量恢复到精确的数值,也就是根据输出模糊子集的隶属度计算出确定数值。
一、设计过程及步骤
1、模糊控制器的设计
a.对系统的输入和输出进行设定
对输入和输出的个数,词集个数和名称,量化论域进行设定。
Input2与output1的设定方法类似。
设定完毕后保存到workspace.
如下图所示。
b.控制规则的设置
双击上图中zfm出现控制规则编辑窗口,根据设计任务书上所给的控制规则与模糊控制表编写控制规则,并在matable命令窗口中导出控制规则,如下所示:
>
a=readfis('
zfm'
);
showrule(a)
ans=
1.If(input1isNBe)and(input2isNBec)then(output1isPBu)
(1)
2.If(input1isNMe)and(input2isNBec)then(output1isPBu)
(1)
3.If(input1isNSe)and(input2isNBec)then(output1isPMu)
(1)
4.If(input1isZOe)and(input2isNBec)then(output1isPMu)
(1)
5.If(input1isPSe)and(input2isNBec)then(output1isPSu)
(1)
6.If(input1isPMe)and(input2isNBec)then(output1isZOu)
(1)
7.If(input1isPBe)and(input2isNBec)then(output1isZOu)
(1)
8.If(input1isNBe)and(input2isNMec)then(output1isPBu)
(1)
9.If(input1isNMe)and(input2isNMec)then(output1isPBu)
(1)
10.If(input1isNSe)and(input2isNMec)then(output1isPMu)
(1)
11.If(input1isZOe)and(input2isNMec)then(output1isPMu)
(1)
12.If(input1isPSe)and(input2isNMec)then(output1isPSu)
(1)
13.If(input1isPMe)and(input2isNMec)then(output1isZOu)
(1)
14.If(input1isPBe)and(input2isNMec)then(output1isZOu)
(1)
15.If(input1isNBe)and(input2isNSec)then(output1isPBu)
(1)
16.If(input1isNMe)and(input2isNSec)then(output1isPBu)
(1)
17.If(input1isNSe)and(input2isNSec)then(output1isPMu)
(1)
18.If(input1isZOe)and(input2isNSec)then(output1isPSu)
(1)
19.If(input1isPSe)and(input2isNSec)then(output1isZOu)
(1)
20.If(input1isPMe)and(input2isNSec)then(output1isNMu)
(1)
21.If(input1isPBe)and(input2isNSec)then(output1isNMu)
(1)
22.If(input1isNBe)and(input2isZOec)then(output1isPBu)
(1)
23.If(input1isNMe)and(input2isZOec)then(output1isPBu)
(1)
24.If(input1isNSe)and(input2isZOec)then(output1isPMu)
(1)
25.If(input1isZOe)and(input2isZOec)then(output1isZOu)
(1)
26.If(input1isPSe)and(input2isZOec)then(output1isNMu)
(1)
27.If(input1isPMe)and(input2isZOec)then(output1isNBu)
(1)
28.If(input1isPBe)and(input2isZOec)then(output1isNBu)
(1)
29.If(input1isNBe)and(input2isPSec)then(output1isPMu)
(1)
30.If(input1isNMe)and(input2isPSec)then(output1isPMu)
(1)
31.If(input1isNSe)and(input2isPSec)then(output1isZOu)
(1)
32.If(input1isZOe)and(input2isPSec)then(output1isNSu)
(1)
33.If(input1isPSe)and(input2isPSec)then(output1isNMu)
(1)
34.If(input1isPMe)and(input2isPSec)then(output1isNBu)
(1)
35.If(input1isPBe)and(input2isPSec)then(output1isNBu)
(1)
36.If(input1isNBe)and(input2isPMec)then(output1isZOu)
(1)
37.If(input1isNMe)and(input2isPMec)then(output1isZOu)
(1)
38.If(input1isNSe)and(input2isPMec)then(output1isNSu)
(1)
39.If(input1isZOe)and(input2isPMec)then(output1isNMu)
(1)
40.If(input1isPSe)and(input2isPMec)then(output1isNMu)
(1)
41.If(input1isPMe)and(input2isPMec)then(output1isNBu)
(1)
42.If(input1isPBe)and(input2isPMec)then(output1isNBu)
(1)
43.If(input1isNBe)and(input2isPBec)then(output1isZOu)
(1)
44.If(input1isNMe)and(input2isPBec)then(output1isZOu)
(1)
45.If(input1isNSe)and(input2isPBec)then(output1isNSu)
(1)
46.If(input1isZOe)and(input2isPBec)then(output1isNMu)
(1)
47.If(input1isPSe)and(input2isPBec)then(output1isNMu)
(1)
48.If(input1isPMe)and(input2isPBec)then(output1isNBu)
(1)
49.If(input1isPBe)and(input2isPBec)then(output1isNBu)
(1)
保存到workspace,这样就完成了模糊控制器的设计。
2、组成控制系统
利用设计的模糊控制器,控制纸浆浓度调节系统,并进行仿真分析
simulink包含多个子模型库,每个子模型库又包括多个功能模块,利用鼠标可直观地“画”出系统模型,然后直接进行仿真。
其框图如下图所示:
三结果
仿真曲线如下图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 模糊 控制 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)