模糊控制的MTLAB实现具体过程(强势吐血推荐)

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