陳月光 項浞伍
摘要:用模糊推理來完成學生綜合成績評估.并在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的模糊推理關系
