代码解析
输入1
%输入1
f1=10;
a=addvar(a,'input','e',[-3*f1,3*f1]);
%添加 e 的模糊语言变量
a=addmf(a,'input',1,'NB','zmf',[-3*f1,-1*f1]);
%添加 e 的模糊语言变量的隶属度函数(z型)
a=addmf(a,'input',1,'NM','trimf',[-3*f1,-2*f1,0]);
% %隶属度函数为三角形
a=addmf(a,'input',1,'NS','smf',[-2*f1,3*f1]);
a=addmf(a,'input',1,'Z','trapmf',[-2.8*f1,0,5,2*f1]);
a=addmf(a,'input',1,'PS','trimf',[-1.3*f1,6,3*f1]);
a=addmf(a,'input',1,'PM','trimf',[5,2*f1,2.7*f1]);
a=addmf(a,'input',1,'PB','trapmf',[-2.5*f1,-10,-7,2.3*f1]);
设置输入变量为e,有7个模糊子集:NB,NM,NS,Z,PS,PM,PB。范围是[-30,30]
NB为z型的隶属度函数,-3f1和-1f1分别是该z型曲线的上下限,PS函数同理。
NM为形状为三角形的隶属度函数,中括号里的三个参数分别代表它的三个顶点的位置,PM同理。
Z为形状为梯形的隶属度函数,它有四个参数分别代表四个顶点的位置。
PB为S型的隶属度函数,参数与z型相同都为两个。
输入2
%输入2
f2=2;
a=addvar(a,'input','ec',[-9*f2,9*f2]);
% 添加 ec 的模糊语言变量
a=addmf(a,'input',2,'NB','zmf',[-9*f2,-7*f2]);
a=addmf(a,'input',2,'NM','trimf',[-8*f2,-6*f2,-5]);
a=addmf(a,'input',2,'NS','smf',[-5*f2,9*f2]);
a=addmf(a,'input',2,'Z','trimf',[-3.4*f2,-2,1*f2]);
a=addmf(a,'input',2,'PS','trapmf',[-2*f2,0,4,3*f2]);
a=addmf(a,'input',2,'PM','trimf',[0,3*f2,5*f2]);
a=addmf(a,'input',2,'PB','trapmf',[-6.5*f2,8,14,7*f2]);
输入2ec的隶属度函数的编写与输入1一样。ec有7个模糊集:NB,NM,NS,Z,PS,PM,PB,范围是[-18,6]。
输出
%输出
f3=2.8;
a=addvar(a,'output','u',[-4*f3,6*f3]);
% 添加 u 的模糊语言变量
a=addmf(a,'output',1,'NB','zmf',[-3*f3