大家好,欢迎来到IT知识分享网。
模糊控制是一种基于模糊逻辑和隶属度理论的控制方法。它可以很好地描述控制对象的语言变量,如“速度快”、“温度高”等,从而实现了语言控制。
在模糊控制中,隶属度函数(Membership Function)起到将语言量化的重要作用。它使用概念如“高”、“低”来描述系统,更接近人的思考方式。通过调整隶属度函数的参数,如形状、位置等,可以灵活描述输入和输出变化,有利于建立人机智能系统。因此,隶属度函数是模糊控制的核心组成部分之一。它使控制系统能够处理不确定信息,在智能控制中有广泛应用前景。
常用的六种隶属度函数分别对应图中六张图形
如上图,探究六种隶属度函数中各个参数的值的意义。
(1)高斯型隶属度函数:
由于取对应不同c值,图示中两条线呈现不同的结果可知,同样c值时,sigma越大,对应相同x值,隶属度越高;在c值不同时,两条曲线的水平位置发生平移。
(2)广义钟形隶属度函数:
取对应不同的c值,两条曲线发生水平方向上的平移;a和b取值的改变可以改变隶属度函数大于零点五部分的 “水平宽度”。
(3)S型隶属度函数:
a的取值正负决定了隶属度函数的开口方向,而a的绝对值大小决定了隶属度函数的陡峭程度,c决定了隶属度函数在水平方向上的平移初值。
(4)梯形隶属度函数:
a和d确定梯形的左右和x轴相交两点的位置,b和c确定梯形两腰的斜率,通过改变这些参数可以改变梯形隶属度函数的图像。
(5)三角形隶属度函数:
a和c可以确定三角形两边与x轴相交的位置,而参数b可以确定三角形“峰”的水平位置,此时两腰的斜率也会随之改变。
(6)Z形隶属度函数:
A可以确定函数下降的初始点,b可以确定函数交汇到水平线的交汇点。
附录 MATLAB代码
x=-10:0.01:10; figure; sigma1=3;sigma2=4;c11=2;c12=1; y11=gaussmf(x,[sigma1,c11]); y12=gaussmf(x,[sigma2,c11]); y13=gaussmf(x,[sigma2,c12]); subplot(2,3,1); plot(x,y11,'-',x,y12,'--',x,y13,'--'); grid; legend('sigma=3,c=2','sigma=4,c=2','sigma=4,c=1'); axis([-10 10 0 1.1]); a21=5;a22=2;b21=2;b22=4;c21=0;c22=1; y21=gbellmf(x,[a21,b21,c21]); y22=gbellmf(x,[a21,b21,c22]); y23=gbellmf(x,[a22,b21,c22]); y24=gbellmf(x,[a21,b22,c21]); subplot(2,3,2); plot(x,y21,'-',x,y22,'-',x,y23,'-',x,y24,'-'); grid; legend('a=5,b=2,c=0','a=5,b=2,c=1','a=3,b=2,c=0','a=5,b=4,c=0'); axis([-10 10 0 1.1]); a31=2;a32=-2;a33=-1;c3=0; y31=sigmf(x,[a31,c3]); y32=sigmf(x,[a32,c3]); y33=sigmf(x,[a33,c3]); subplot(2,3,3); plot(x,y31,'-',x,y32,'--',x,y33,'--'); grid; legend('a1=2','a2=-2','a3=-1'); axis([-10 10 0 1.1]); a4=-8;a41=-6;b4=-4;b41=-6;c4=4;c41=6;d4=8;d41=6; y4=trapmf(x,[a4,b4,c4,d4]); y41=trapmf(x,[a41,b4,c4,d4]); y42=trapmf(x,[a4,b41,c4,d4]); y43=trapmf(x,[a4,b4,c41,d4]); y44=trapmf(x,[a4,b4,c4,d41]); subplot(2,3,4); plot(x,y4,'-',x,y41,'-',x,y42,'-',x,y43,'-',x,y44,'-'); grid; legend('a=-8,b=-4,c=4,d=8','a=-6,b=-4,c=4,d=8','a=-8,b=-6,c=4,d=8','a=-8,b=-4,c=6,d=8','a=-8,b=-4,c=4,d=6'); axis([-10 10 0 1.1]); a5=-4;a51=-2;b5=2;b51=4;c5=7;c51=5; y5=trimf(x,[a5,b5,c5]); y51=trimf(x,[a51,b5,c5]); y52=trimf(x,[a5,b51,c5]); y53=trimf(x,[a5,b5,c51]); subplot(2,3,5); plot(x,y5,'-',x,y51,'-',x,y52,'-',x,y53,'-'); grid; legend('a=-4,b=2,c=7','a=-2,b=2,c=7','a=-4,b=4,c=7','a=-4,b=2,c=5'); axis([-10 10 0 1.1]); a6=-4;a61=-2;b6=7;b61=5; y6=zmf(x,[a6,b6]); y61=zmf(x,[a61,b6]); y62=zmf(x,[a6,b61]); subplot(2,3,6); plot(x,y6,'-',x,y61,'-',x,y62,'-'); grid; legend('a=-4,b=7','a=-2,b=7','a=-4,b=5'); axis([-10 10 0 1.1]);
Reference
[1] Liu, J. K. (2021). Intelligent Control (5th ed.). Beijing: Electronic Industry Press.
[2] Zadeh, L. A. (1965). Fuzzy sets. Information and control, 8(3), 338-353.
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128414.html