模糊控制的MATLAB实现具体过程(强势吐血推荐)..
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、模糊逻辑系统输入输出变量及隶属度函数的添加 ①函数addvar 功能:向模糊推理系统中添加语言变量。 格式:a=addvar(a, varType, varName, varBounds) 说明:参数列表中,a为模糊推理系统对应的矩阵变量名, varType用于指定语言变量的类型为字符型(如‘input’ 或‘output’); varName用于指定语言变量的名; varBounds用于指定语言变量的论域范围。 注意:对于添加到同一个模糊推理系统的语言变量,按 先后顺序自动编号,编号从1开始,逐渐递增。对于分属 于输入与输出的不同语言变量则独立地分别编号。 例:a=newfis(‘tipper’); //创建并返回一个新的FIS系统 a=addvar(a,’input’,’service’,[0 10]); getfis(a,’input’,1) //取得FIS的部分或全部属性
例:fis=readfis(‘tipper’);
out=evalfis([2 1; 4 9],fis) 输出结果:out=7.0169
19.6810
MATLAB模糊控制系统设计实例1
一、设计目的:了解用MATLAB模糊工具箱的图形界面可视化 工具实现模糊控制系统的方法。 二、系统设计要求: 1、输入变量:偏差e、偏差变化率de;输出变量:u 相应隶属度函数为:
1 2,2(1):1
6、计算模糊推理输出结果函数evalfis 格式:y=evalfis(U,FIS)
说明:参数U是输入数据,FIS是模糊推理矩阵。 U的每一行是一个特定的输入向量,Y的每一行是 一个特定的输出向量。
如果输入U是M*N矩阵,则系统是N输入的, 返回的Y是M*L矩阵,L是系统的输出的数目。
例:a=newfis(‘tipper’);
a=addvar(a,’input’,’service’,[0 10]); a=addmf(a,’input’,1,’poor’,’guassmf’,[1.5 0]); a=addmf(a,’input’,1,’good’,’guassmf’,[1.5 5]); a=addmf(a,’input’,1,’excellent’,’guassmf’,[1.5 10]);
模糊推理输入输出曲面视图Surfview (Surface)
⑴ 模糊推理系统编辑器Fuzzy 处理最顶层构建问题,例如输入输出变量的数目、变量名等 激活(进入)方法:命令窗口(command window)执行 Fuzzy命令。
激活模糊推理系统系统编辑器 :
基本属性
输入模糊变量图形框 组成 模糊规则图形框
centroid(重心法:系统默认) lom(最大隶属度函数中的取最大值法) bisector(面积平分法) mom(平均最大隶属度法) som(最大隶属度函数中的取最小值法)
4、系统图形显示函数
① 函数plotfis 功能:绘制模糊推理系统的推理过程结构框图。 例:plotfis(‘tipper’) ② 函数plotmf
mom(平均最大隶属度法)
⑵ 在命令窗口键 入mfedit可激活隶 属度函数编辑器
MATLAB的FIS结构和存储 1、FIS(模糊推理系统)结构 模糊推理系统是以一种FIS的结构来表示和存储的 ①GUI工具 访问方法 ②函数 ③结构名.成员名 2、存储( .fis文件) 访问 readfis-读 writefis-写
②函数addmf
功能:向模糊推理系统的语言变量添加隶属度函数。
格式:a=addmf(a, varType, varIndex,mfName,mfType, mfParams)
说明:隶属度函数只能为模糊推理系统中已经存在的某 一语言变量的语言值添加隶属度函数。参数列表中,a为 模糊推理系统对应的矩阵变量名, varType指定语言变量 类型的字符串(如‘input’或‘output’); varIndex指定 语言变量编号的数字;mfName指定隶属度函数名称; mfType指定隶属度函数类型; mfParams指定隶属度函数 的参数。
5、模糊规则建立 ①函数addrule 功能:向模糊推理系统添加模糊规则。 格式:a=addrule(a,rulelist) 说明:参数a为模糊推理系统对应的矩阵变量名称,rulelist 以向量的形式给出需要添加的模糊规则。如果模糊推理系 统有m个输入语言变量和n个输出语言变量,则向量rulelist 的列数必须为m+n+2,而行数等于需要添加的规则数目。
1 x c 2 ( ) 2
④函数zmf 功能:建立Z型隶属度函数。
格式:y=zmf(x,[a b])
说明:曲线在(a,b)之间是光滑的样条曲线,在a左 段为1,b右段为0,跳跃点是(a+b)/2。参数x指定变量论 域范围。 例: x=0:0.1:10; y=zmf(x, [2 8]); plot(x,y) xlable(‘zmf,P=[2 8]’)
例:a=readfis(‘tipper’);
getfis(a) 输出结果:Name=tipper Type=mamdani NumInputs=2
………
例:getfis(a,’input’,1) 注:属性为‘input’或‘output’时,后面的第三个参数 指定某一个输入或输出语言变量。
输出结果:Name=service
③ 函数gaussmf 功能:建立高斯型隶属度函数。
格式:y=gaussmf(x,[sig c])
其中:参数x指定变量论域范围,参数c决定了函数的中心 点,sig决定了函数曲线的宽度σ 。 高斯函数的表达式为: y e 例: x=0:0.1:10; y=gaussmf(x, [2 5]); plot(x,y) xlable(‘gaussmf,P=[2 5]’)
例:fismat=readfis(‘tipper’); //tipper.fis已经存在
③函数getfis
功能:取得模糊推理系统的部分或全部属性。 格式:getfis(a) //显示系统所有属性 //显示系统某一属性
getfis(a,’fisprop’)
getfis(a,’vartype’,varindex,’varprop’)
双击
双击
Mfedit Ruleedit
Mfedit
输出模糊变量图形框
双击
基本属性包括:
1. 模糊集合合成运算(连接词的运算) min(最小法) ① and prod(乘积法)
② or
max(最大法) prober(概率法)
prober(a,b)=a+b-ab
2. 蕴涵计算(Implication)
命令函数
1、隶属度函数 ①函数trimf(表示triangular membership function) 功能:建立三角形隶属度函数。 格式:y=trimf(x,[a b c])
其中:参数x指定变量论域范围,参数a,b和c指定三角形 函数的形状,该函数在b点处取最大值1,a,c点为0。 例:建立三角形隶属度函数并绘制曲线。
例:writefis(a,’my_file’)
type my_file.fis
⑥ 函数setfis
功能:设置、改变模糊推理系统的属性。 格式:FIS2=setfis(fis1,源自文库fispropname’,newPropValue) 说明:参数fis1指明模糊推理系统的名称;fispropname 指明模糊推理系统的全局属性; newPropValue指明此 属性的新值。 例:a=readfis(‘tipper’); a2=setfis(a,’DefuzzMethod’,’mom’); Defuzzification:
⑤函数smf 功能:建立S型隶属度函数。
格式:y=smf(x,[a b])
说明:曲线在(a,b)之间是光滑的样条曲线,在a左 段为0,b右段为1,跳跃点是(a+b)/2。参数x指定变量论 域范围。 例: x=0:0.1:10; y=smf(x, [2 8]); plot(x,y) xlable(‘smf,P=[2 8]’)
NumMFs=3 MFLabels=poor good excellent Range=[0 10] 例:getfis(a,’input’,1,’name’) 输出结果:service
④ 函数showfis
功能:以分行的形式显示模糊推理系统矩阵的所有属性。 格式:showfis(fismat) ⑤ 函数writefis 功能:将以矩阵形式保存在内存中的模糊推理系统的数 据写入磁盘文件中。 格式:writefis(fismat,filename)
MATLAB模糊逻辑工具箱 命令行函数(以 .m文件存放)
工具
建立模糊逻辑推理系统
图形交互工具(GUI-Graphical User Interface)
(图形用户界面)
接口仿真逻辑模块(Simulink环境) 图形交互工具箱提供的图形化工具有五类: 模糊推理系统编辑器Fuzzy 隶属度函数编辑器Mfedit (Membership function) 模糊规则编辑器Ruleedit 模糊规则观察器Ruleview
x=0:0.1:10; y=trimf(x, [3 6 8]); plot(x,y) xlable(‘trimf,P=[3 6 8]’)
②函数trapmf(trap表示trapezium梯形)
功能:建立梯形隶属度函数。
格式:y=trapmf(x,[a b c d])
其中:参数x指定变量论域范围,参数a,b, c和d指定梯形隶 属度函数的形状,该函数在b,c点处取最大值1,a,d点为0。 例: x=0:0.1:10; y=trapmf(x, [1 5 7 8]); plot(x,y) xlable(‘trapmf,P=[1 5 7 8]’)
②函数showrule
格式:showrule(fis) showrule(fis,indexlist) showrule(fis,indexlist,format) 说明:fis为模糊推理系统矩阵变量的名称;indexlist为 规则编号,可以以向量形式指定显示多条规则; format为显示方式,有三种显示方式,即语句方式 (verbose),符号方式(symbolic)和索引方式 (indexed)。 例:showrule(a,1:2,’indexed’) 输出结果:1 1,1(1):1
plot(a,’input’,1)
注意:对于每个语言变量的隶属度函数按该函数被添加的顺 序编号,编号从1开始,依次递增。
3、FIS系统相关操作
① 函数newfis
功能:创建并返回一个新的模糊推理系统。
格式:a=newfis(‘fisName’) ②函数readfis 功能:从磁盘中读出并返回模糊推理系统结构变量。 格式:Fismat=readfis(‘filename’) 说明:打开一个由filename指定的数据文件(.fis),并将 其加载到当前的工作空间(Workspace)中的变量Fismat中。
在rulelist的每一行中,前m个数字表示各输入语言 变量的语言值(隶属度函数的编号),随后的n个数字表 示输出语言变量的语言值,第n+m+1个数字是该规则的 权重,权重的值在0到1之间,一般设定为1;第n+m+2 个数字为0或1两者之一,为1表示模糊规则各输入语言 变量之间是and关系,为0则表示是or关系。
min prod (乘积法)
3. 输出的合成计算Aggregation(模糊规则综合采用的方法) max prober(a,b)=a+b-ab Aggregation sum(求和法) prober (概率法)
4. 逆模糊化计算(Defuzzification)
centroid(重心法) bisector(面积平分法) lom(最大隶属度函数中的取最大值法) som(最大隶属度函数中的取最小值法)
功能:绘制语言变量所有语言值的隶属度函数曲线。
格式:plotmf(fismat,varType,varIndex) 说明:参数fismat指明模糊推理系统的对应矩阵变量 名称;varType指明变量类型(’input’或’output’); varIndex指明输入或输出语言变量的编号。 例: plotmf(a,’input’,2)