陈月光 项浞伍
摘要:用模糊推理来完成学生综合成绩评估.并在Matlab中实现。
关键词:模糊推理学生综合成绩评估Matlab
中图分类号G434文献标识码B文章编号:1002-2422(2007)03-0042-02
由于模糊控制不需要知道被控对象(过程)的数学模型。易于实现对具有不确定性的对象和具有强非线性的对象进行控制,而且对被控对象特性参数的变化具有较强的鲁棒性和抗干扰能力,因此将模糊控制应用于学生综合成绩评定是合理的。
1模糊推理系统在Matlab中的实现
要使用模糊推理来对学生的综合成绩进行评定,首先需要建立一个模糊推理系统。步骤如下:
(1)确定输入和输出:
(2)添加输入/输出变量:
(3)指定隶属度函数;
(4)确定模糊推理规则:
(5)添加模糊规则到系统中。
其中模糊规则的确定可以基于专家知识或者实际操作经验。本系统中作者是根据自己的经验来确定的。
2系统实现
系统有两个输入,分别为学生的学习成绩和德育成绩,输出为该学生的综合成绩。
(1)首先建立新的模糊推理系统
设FIS结构名为grade1:grade1=newfis(“grade1”)
这样就建立了一个Mamdani型的模糊推理系统。该系统中输入、输出、规则等未定义。
(2)添加输入/输出变量
给系统添加两个输入和一个输出,其输入变量名一个为“学习成绩”,输入范围为[0 100],一个为“德育成绩”,输入范围为[0 100],输出变量为“综合成绩”,变量范围为[0,100]。
grade1=addvar(gradel,input,学习成绩,[0 100];
grade1=addvar(gradel,input,学习成绩,[60 90];
grade1=addvar(gradel,input,学习成绩,[0 100];
(3)给输入和输出指定模糊变量,并设计隶属度函数(可以绘制输/输出图形)
先给第一个输入变量(input1)定义了5个梯形隶属度函数:“优”,“良”,“中”,“及格”,“不及格”,其参数分别为:[90 95 100 100]、[85 92]、[70 75 85]、[55 65 72]、[0 0 60 65]。
grade1=addmf(grade1,input,1,优,trapmf,[90 95 100 100];
grade1=addmf(grade1,input,1,良,trapmf,[90 95 100 100];
grade1=addmf(grade1,input,1,中,trapmf,[90 95 100 100];
grade1=addmf(grade1,input,1,及格,trapmf,[90 95 100 100];
grade1=addmf(grade1,input,1,不及格,trapmf,[90 95 100 100];
其中第一个和最后一个是梯形隶属度函数,中间的三个是三角形隶属度函数。
同样,给第二个输入变量(input2)表示的德育成绩,分了四个级别,定义了两个梯形隶属度函数和两个三角形隶属度函数:“优”,“良”,“中”,“差”参数为:[85 90 100 100],[78 85 90],[60 70 80],[0 0 58 65],对于output1,也是如此,其参数分别为:[88 95 100 100],[75 83 90],[65 7585],[0 0 60 70]。
grade1=addmf(gradel,input,2,优,trapmf,[85 90 100 100];
grade1=addmf(gradel,input,2,良,trapmf,[85 90 100 100]);
grade1=addmf(gradel,input,2,中,trapmf,[85 90 100 100]);
grade1=addmf(gradel,input,2,差,trapmf,[85 90 100 100]);
grade1=addmf(gradel,output,1,优,tmpmf,[88 95 100 100]);
grade1=addmf(gradel,output,1,良,tmpmf,[88 95 100 100]);
grade1=addmf(gradel,output,1,中,tmpmf,[88 95 100 100]);
grade1=addmf(gradel,output,1,差,tmpmf,[88 95 100 100]);
(4)设计模糊推理规则,按照设计要求,可以得到如表1的模糊推理关系