去模糊化方法
这个例子描述了去模糊1型Mamdani模糊推理系统的输出模糊集的内置方法。
考虑下面的输出模糊集,它是三个伸缩梯形隶属函数的集合。
X = 0:0.1:20;Mf1 = trapmf(x,[0 2 8 12]);Mf2 = trapmf(x,[5 7 12 14]);Mf3 = trapmf(x,[12 13 18 19]);Mf = max(0.5*mf2,max(0.9*mf1,0.1*mf3));图(“标签”,“defuzz”)情节(x, mf,“线宽”,3) h_gca = gca;h_gca。YTick = [0.5 1];ylim ([1])
模糊逻辑工具箱™软件支持五种内置方法,用于计算这样一个模糊集万博1manbetx的单个清晰输出值。
重心
平分线
最大值中间
最大值中的最小值
最大值中的最大值
您还可以定义自己的自定义去模糊化方法。有关更多信息,请参见使用自定义函数构建模糊系统.
重心
质心去模糊化使模糊集的重心沿x轴返回。如果你把这个区域想象成一个厚度和密度都相等的平板,质心就是模糊集在x轴上平衡的点。用下面的公式计算质心 会员价值为点吗 在话语的宇宙中。
计算模糊集的质心。
xCentroid = defuzz(x,mf,“重心”);
在原图上标出质心去模糊化结果。
hCentroid = line([xCentroid xCentroid],[-0.2 1.2],“颜色”,“k”);tCentroid = text(xCentroid,-0.2,“重心”,“FontWeight”,“大胆”);
平分线
等分线法找到一条垂直线,将模糊集分成两个面积相等的子区域。它有时与质心线重合,但并不总是如此。
xBisector = defuzz(x,mf,“平分线”);
在原图上标出平分线的结果,并将质心的结果灰色化。
hBisector = line([xBisector xBisector],[-0.4 1.2],“颜色”,“k”);tBisector = text(xBisector,-0.4,“平分线”,“FontWeight”,“大胆”);灰色= 0.7*[1 1 1];hCentroid。颜色=gray; tCentroid.Color = gray;
最大值的中值、最小值和最大值
MOM、SOM和LOM分别代表最大值中的中、最小和最大。在本例中,由于聚合模糊集在其最大值处有一个平台,所以MOM、SOM和LOM去模糊化结果具有不同的值。如果聚合模糊集有唯一的最大值,则MOM、SOM和LOM都产生相同的值。
xMOM = defuzz(x,mf,“妈妈”);xSOM = defuzz(x,mf,“索玛”);xLOM = defuzz(x,mf,“lom”);
在原图上标出MOM、SOM和LOM结果,并将平分线结果灰色化。
hMOM = line([xMOM xMOM],[-0.7 1.2],“颜色”,“k”);tMOM = text(xMOM,-0.7,“妈妈”,“FontWeight”,“大胆”);hSOM = line([xSOM xSOM],[-0.7 1.2],“颜色”,“k”);tSOM = text(xSOM,-0.7,“索玛”,“FontWeight”,“大胆”);hLOM = line([xLOM xLOM],[-0.7 1.2],“颜色”,“k”);tLOM = text(xLOM,-0.7,“LOM”,“FontWeight”,“大胆”);hBisector。颜色=gray; tBisector.Color = gray;
选择去模糊化方法
一般来说,对于大多数应用程序,使用默认的质心方法就足够了。一旦您创建了初始模糊推理系统,您可以尝试其他去模糊化方法,以查看是否有任何改进推理结果的方法。
突出显示质心结果,灰色化MOM、SOM和LOM结果。
hCentroid。颜色=“红色”;tCentroid。颜色=“红色”;hMOM。颜色=灰色;tMOM。颜色=灰色;hSOM。颜色=灰色;tSOM。颜色=灰色;hLOM。Color = gray; tLOM.Color = gray;