evalfis
评估模糊推理系统
语法
描述
例子
评估模糊推理系统
加载金融中间人。
fis = readfis (“蒂珀”);
当第一个输入为时,求FIS值2
第二个输入是1
。
Output = evalfis(fis,[2 1])
输出= 7.0169
评估多输入组合的FIS
加载金融中间人。
fis = readfis (“蒂珀”);
使用数组指定要计算的输入组合,每个输入组合有一行。
Input = [2 1;4 5;7 8];
为指定的输入组合计算FIS。
输入输出= evalfis (fis)
输出=3×17.0169 14.4585 20.3414
每一行的输出
去模糊化的输出值对应行为输入
。
为FIS评估指定输出样本的数量
加载金融中间人。
fis = readfis (“蒂珀”);
创建一个evalfisOptions
选项集,指定输出模糊集中的样本数量。
选择= evalfisOptions (“NumSamplePoints”, 50);
使用此选项集评估FIS。
Output = evalfis(fis,[2 1],options);
模糊推理系统的评价树
创建一对Mamdani模糊推理系统。
fis1 = mamfis (“名字”,“fis1”,“NumInputs”2,“NumOutputs”1);fis2 = mamfis (“名字”,“fis2”,“NumInputs”2,“NumOutputs”1);
定义两者之间的联系。
反对= [“fis1 / output1”“fis2 / input1”];
创建一个模糊推理系统树。
Tree = fistree([fis1 fis2],con);
创建一个evalfisOptions
选项集,指定输出模糊集中的样本数量。
选择= evalfisOptions (“NumSamplePoints”, 50);
评估fistree
对象,使用指定的输入组合和此选项集。
Y = evalfis(tree,[0.5 0.2 0.7],options)
y = 0.1553
获取中间模糊推理结果
加载金融中间人。
fis = readfis (“蒂珀”);
评估FIS,并返回中间推理结果。
[output,fuzzifiedIn,ruleOut,aggregatedOut,ruleFiring] = evalfis(fis,[2 1]);
您可以检查中间结果来理解或可视化模糊推理过程。例如,查看聚合的输出模糊集,它就是那个模糊集evalfis
去模糊化寻找输出值。另外,绘制去模糊化的输出值。
fis.output.range outputRange = linspace (fis.output.range(1),(2),长度(aggregatedOut)) ';plot(outputRange,aggregatedOut,[output output],[0 1]) xlabel(“小费”) ylabel (“输出会员”)传说(“聚合输出模糊集”,“Defuzzified输出”)
的长度aggregatedOutput
对应于用于离散输出模糊集的样本点数量。
评价2型模糊推理系统
创建一个2型Mamdani模糊推理系统。
fis = mamfistype2 (“NumInputs”2,“NumOutputs”1);
当第一个输入为时,求FIS值0.4
第二个输入是0.72
。
输出= evalfis(fis,[0.4 0.72])
输出= 0.1509
2型FIS的输出是一个清晰的值。
当您获得二类FIS的中间模糊推理结果时,您将获得使用上、下MF值生成的中间结果。例如,获取中间模糊化的输入值。
[output,fuzzifiedInput] = evalfis(fis,[0.5 0.75]);
查看模糊化的输入值。
fuzzifiedInput
fuzzifiedInput =9×40000 1.0000 0 1.0000 0000 000 0.4000 0 0.2500 1.0000 0.4000 0 1.0000 0.2500 0 0.4000 0 0.2500 0 0.2500 0 0.2500 1.0000 0.4000 1.0000 0.2500 0 0.4000 0 0.2500
前两列包含基于每个输入的上MF的第一和第二输入的模糊化值。后两列包含基于每个输入的低MF的模糊化值。
输入参数
金融中间人
- - - - - -模糊推理系统
mamfis
对象|sugfis
对象|mamfistype2
对象|sugfistype2
对象|fistree
对象|均匀的结构
待评价的模糊推理系统,具体为以下之一:
mamfis
object - Mamdani模糊推理系统sugfis
对象- Sugeno模糊推理系统mamfistype2
object - Type-2 Mamdani模糊推理系统sugfistype2
对象-二类Sugeno模糊推理系统fistree
object -相互关联的模糊推理系统树使用创建的齐次结构
getFISCodeGenerationData
。举个例子,见使用MATLAB编码器为模糊系统生成代码。
输入
- - - - - -输入值
米——- - - - - -NU数组
输入值,指定为an米——- - - - - -NU数组,NU输入变量的个数在吗金融中间人
和米是要求值的输入组合的个数。
evalfis
支持双精度或单精度输入值。
选项
- - - - - -评估选择
evalfisOptions
对象
评价选项,指定为evalfisOptions
对象。
输出参数
fuzzifiedIn
-模糊化的输入值
数组
模糊化的输入值,作为数组返回。
当金融中间人
为1型模糊推理系统,fuzzifiedIn
是一个NR——- - - - - -NU数组,NR规则的个数在吗金融中间人
。元素(我,j)fuzzifiedIn
输入成员函数的值为j的输入我规则。
当金融中间人
是第二类模糊推理系统,fuzzifiedIn
是一个NR————(2 *NU)数组。第一个NU列包含每个规则的上层隶属函数的模糊化值,以及最后一个规则NU列包含来自较低成员函数的模糊化值。
如果输入
那么,指定多个输入组合fuzzifiedIn
的最后一行的组合输入
。
关于模糊化输入值的更多信息,请参见Fuzzify输入。
时不支持此输出参数金融中间人
是一个fistree
对象。
消除
——规则输出
数组
规则输出,作为数组返回。要获取每个规则的输出,evalfis
使用中指定的隐含方法将规则先行项的触发强度应用到输出隶属函数金融中间人
。
当金融中间人
为1型Mamdani系统,消除
是一个N年代————(NRNY)数组,NR为规则的个数,NY是输出的数量,和N年代是用于评估输出变量范围的样本点数量。每一列的消除
包含一条规则的输出模糊集。第一个NR列包含第一个输出变量和下一个输出变量的规则输出NR列对应第二个输出变量,以此类推。
当金融中间人
为type-2 Mamdani系统,消除
是一个N年代————(2 *NR*NY)数组。第一个NR*NY列包含使用上层成员函数生成的规则输出,以及最后一个NR*NY列包含使用较低的隶属度函数生成的规则输出。
当金融中间人
是1型Sugeno系统,每个规则输出都是一个标量值。在这种情况下,消除
是一个NR——- - - - - -NY数组中。元素(j,k)消除
是价值的k的输出变量j规则。
当金融中间人
是二类Sugeno系统,消除
是一个NR————(3 *NY)数组。第一个NY列包含规则输出级别。下一个NY列包含使用上层成员函数生成的相应规则触发强度。最后一个NY列包含使用较低成员函数生成的规则触发强度。例如,在三输出系统中,第4列和第7列包含第1列的输出级别的触发强度。
如果输入
那么,指定多个输入组合消除
的最后一行的组合输入
。
有关模糊含义的更多信息,请参见运用暗示法。
时不支持此输出参数金融中间人
是一个fistree
对象。
aggregatedOut
——聚合输出
数组|行向量
每个输出变量的聚合输出,作为N年代——- - - - - -NY数组或长度的行向量NY。对于每个输出变量,evalfis
使用中指定的聚合方法组合来自所有规则的相应输出金融中间人
。
对于1型Mamdani系统,每个输出变量的聚合结果是一个模糊集。在这种情况下,aggregatedOut
是作为一个N年代——- - - - - -NY数组,NY是产出的数量和N年代是用于评估输出变量范围的样本点数量。每一列的aggregatedOut
包含一个输出变量的聚合模糊集。
对于2型Mamdani系统,每个输出变量的聚合结果是一个模糊集。在这种情况下,aggregatedOut
是作为一个N年代————(2 *NY)数组。第一个NY列包含使用上层成员函数生成的聚合输出,最后NY列包含使用较低成员函数生成的聚合输出。
当金融中间人
为1型Sugeno系统,每个输出变量的聚合结果为一个标量值。在这种情况下,aggregatedOut
是长度的行向量NY,元素k的规则输出的总和是k输出变量。
当金融中间人
是二类Sugeno系统,aggregatedOut
是一个NR————(3 *NY)数组。aggregatedOut
包含相同的数据消除
根据输出级别对列进行排序。例如,在三输出系统中,当第1列的输出等级排序后,相应的第4列和第7列的发射强度也会相应调整。
如果输入
那么,指定多个输入组合aggregatedOut
的最后一行的组合输入
。
有关模糊聚合的更多信息,请参见聚合所有输出。
时不支持此输出参数金融中间人
是一个fistree
对象。
ruleFiring
-规则触发强度
列向量|数组
选择功能
应用程序
类可以交互式地评估类型-1和类型-2模糊推理系统模糊逻辑设计该应用程序不支持FIS树。
仿真软件块
方法可以求值FIS对象模糊逻辑控制器块。该块不支持计算FIS树。的实参映射的更多信息evalfis
到模糊逻辑控制器块,看在Simulink中模拟模糊推理系统。
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用说明和限制:
所有
evalfis
代码生成支持语法。然而,mamfis
,sugfis
,mamfistype2
,sugfistype2
,fistree
对象不受支持。使用evalfis
对于代码生成,您必须使用getFISCodeGenerationData
。不像模糊逻辑控制器块,
evalfis
不支持模拟或代码生成的定点数据。在Simulink中评估模糊推理系统时®,建议不要使用
evalfis
或evalfisOptions
在一个MATLAB函数块。相反,评估您的模糊推理系统使用模糊逻辑控制器块。
版本历史
之前介绍过的R2006aR2022b:C和c++代码生成支持,用于评估FIS树
可以生成用于计算FIS树的代码,使用MATLAB®编码器™。更多信息,请参见使用MATLAB编码器为模糊系统生成代码。
R2019b:对模糊推理系统结构的支持将被移除
将模糊推理系统表示为结构的支持将在未来的版本中删除。使用mamfis
和sugfis
使用此函数代替。要将现有的模糊推理系统结构转换为对象,请使用convertfis
函数。
此更改在R2018b中宣布。使用带有此函数的模糊推理系统结构会从r20119b开始发出警告。
R2018b:支持C和c++代码生成
R2018b:输入参数顺序改变
以前,为了评估一个模糊推理系统,金融中间人
,你指定输入变量值,输入
,作为第一个输入参数。例如:
输入,输出= evalfis (fis);输出= evalfis(输入、fis选项);
更新代码,指定模糊推理系统作为第一个输入参数。例如:
输入输出= evalfis (fis);输出= evalfis (fis、输入、选择);
R2018b:获得中级规则射击强度
在对模糊推理系统进行评估时,可以获得中间规则触发强度ruleFiring
输出参数。
R2018a:为输出模糊集指定样本点的数量evalfisOptions
对象
之前,为了指定样本点的数量,numPts
,在评估模糊推理系统的输出模糊集时使用金融中间人
,你使用了一个输入参数。例如:
输出= evalfis(输入、fis numPts);
更新你的代码,指定样本点的数量使用anevalfisOptions
对象。例如:
选择= evalfisOptions (“NumSamplePoints”, numPts);输出= evalfis(输入、fis选择);
R2018a:诊断信息行为改变
的诊断消息行为evalfis
功能已经改变了。在此之前,evalfis
函数对于诊断条件有以下行为。
诊断条件 | 先前的行为 |
---|---|
输入指定变量范围之外的值 | MATLAB的警告 |
对于当前输入值的给定输出,不触发任何规则 | MATLAB命令窗口消息 |
空输出模糊集 | MATLAB命令窗口消息 |
默认情况下,这些诊断条件以MATLAB警告的形式报告。中指定相应的选项,可以更改此行为evalfisOptions
对象。
若要禁用默认的警告消息,请更新您的代码以使用evalfisOptions
对象,并指定诊断消息选项。例如,禁用空输出模糊集消息。
选择= evalfisOptions (“EmptyOutputFuzzySetMessage”,“没有”);输出= evalfis(输入、fis选择);
R2018a:Sugeno系统的中间模糊推理输出类似于Mamdani系统的输出
当使用以下语法评估Sugeno系统时,中间模糊推理结果现在类似于Mamdani系统的中间结果。
(输出、fuzzifiedInputs ruleOutputs aggregatedOutput] = evalfis(输入、fis);
对于Sugeno系统:
ruleOutputs
现在返回一个数组,其中包含每个规则的标量输出值;即规则触发强度和规则输出级别的乘积。aggregatedOutput
现在返回每个输出变量的所有规则输出值的和。
以前,对于Sugeno模糊系统:
ruleOutputs
返回一个数组,其中包含每个规则的输出级别。aggregatedOutput
返回一个数组,其中包含每个规则的触发强度。
从R2018a开始,如果你的代码在评估使用的Sugeno系统时返回中间模糊推理结果evalfis
,修改您的代码以使用新ruleOutputs
和aggregatedOutput
结果。
R2017b:输出变量范围支持的样本点数量更少
使用numPts
输入参数,您可以指定用于评估Mamdani模糊推理系统的输出范围的样本点数量为大于的任意值1
。之前,最小值为101
。
MATLAB命令
你点击了对应这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令即可运行该命令。Web浏览器不支持MATLAB命令。
你也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。