《模糊综合评价方法的软件实现.pdf》由会员分享,可在线阅读,更多相关《模糊综合评价方法的软件实现.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、模糊综合评价方法的软件实现 于航;王若平;赖利国【摘 要】介绍了如何运用 MATLAB 实现快速研制系统模糊综合评价方法.对软件的主要功能模块及技术要点做了详细的叙述.该软件根据模糊变换原理,使用软件编程方法实现模糊数学计算,包括平均法、方根法及矩阵运算等.该评价方法软件能够快速准确科学地对快速研制系统的总体性能进行综合评价,减少人为评价和计算导致的误差和低效率,最终达到缩短产品研制周期的目的.【期刊名称】新技术新工艺【年(卷),期】2010(000)009【总页数】4 页(P104-107)【关键词】MATLAB;模糊评价;层次分析法;矩阵【作 者】于航;王若平;赖利国【作者单位】中国兵器工
2、业集团,长春设备工艺研究所,吉林,长春,130012;中国兵器工业集团,长春设备工艺研究所,吉林,长春,130012;中国兵器工业集团,长春设备工艺研究所,吉林,长春,130012【正文语种】中 文【中图分类】TP302 快速研制系统模糊综合评价方法是结合快速研制系统定性因素多、因素间权重关系模糊的特点,为了减少人为因素对评价的影响,充分运用专家估测法、层次分析法和模糊综合评价方法的优点,将它们结合起来,建立起的快速研制系统多因素模糊综合评价方法。由于评价方法适用范围广泛,评价的步骤比较复杂,并且其间运用了很多的模糊数学运算和模糊变换原理,包括方根法、加权平均法、矩阵的相关运算和转置等。如果运
3、用常用的面向对象的高级编程语言实现模糊矩阵运算,将使程序十分繁琐,编程的任务量繁重,并且程序容易出现错误。而 MATLAB 作为控制系统计算机辅助设计语言,其诸多特点使得它在应用科学领域具有极强的适应能力。用它进行矩阵的相关运算和操作,绘制一个二维或三维图形等只需要几条语句,而用高级语言编制程序则需要数十条甚至数百条语句,且容易出错。MATLAB 在模糊数学运算等方面有着非常强大的功能。1 模糊综合评价软件功能结构 快速研制系统模糊综合评价软件从快速研制系统的基本特征出发,按以下 6 个因素进行评价:时间性、质量、经济性、柔性、可靠性和集成性。每个因素又分成若干个子因素。模糊综合评价软件主要由
4、基础数据输入、模糊综合评价运算、评价结果查询 3 个主要功能模块组成,软件的功能结构如图 1 所示。图 1 模糊综合评价方法软件功能结构图 1)基础数据输入模块主要完成系统相关基础信息、单因素评价矩阵、因素权重分析判断矩阵和因素权重级数据的录入。通过人机交互界面,将相关数据存储到数据库中,在存取过程中完成数据类型的转换。2)模糊综合评价运算模块主要功能是通过层次分析法求子因素权重数,通过归一均值等运算,求出因素权重级的均值,并按照模糊评价方法,将各级权重矩阵与相应评价矩阵相乘,最后形成评价结果矩阵,根据设定的 5 个等级的评分标准,计算出快速研制系统的综合评分,并将结果保存到数据库中,以便查询
5、显示。同时以直观的二维条形图显示各子因素的相互关系,并以百分制分数的方式显示最终的评价运算结果。3)评价结果查询模块主要功能是对系统的相关信息、某专家的评价信息、模糊综合评价内容及评价结果的查询。可按系统序号查询以系统为对象的相关评价内容,也可按专家姓名来查询针对某系统该专家的相关评价信息等。2 软件实现技术 2.1 数据类型的转换 本方法的评价过程依赖的矩阵数据全部来自人机界面,而 M ATLAB 界面编辑控件的输入类型只有字符串型。因此采用 MATLAB 提供的字符串表达矩阵的方法在界面上输入字符串矩阵,并通过对数据库的操作将矩阵数据存储到数据库中。在矩阵运算时,通过调用字符串与矩阵的转换
6、函数,完成矩阵的生成与运算,并将矩阵运算结果转换成字符串矩阵,再存储到数据库中。2.2 运用 MATLAB 实现层次分析法求权重数 层次分析法 AHP 确定权重一般分为 4 个步骤:1)建立问题的递阶层次结构模型;2)构造两两比较判断矩阵;3)进行层次因素(指标)单排序数值的计算;4)进行 AHP 判断矩阵一致性检验;采用方根法计算判断矩阵 B 的最大特征根及其对应特征向量的步骤如下:a.计算判断矩阵每一行元素的乘积 Mi b.计算 Mi 的 n 次方根 c.对向量正规化,即 则 W=W1,W2,WnT 即为所求的特征向量。d.计算判断矩阵的最大特征根 max 式中,(AW)i 表示向量 AW
7、 的第 i 个元素。另外还要对判断矩阵进行一致性检验,采用判断矩阵最大特征根以外的其余特征根的副平均值作为度量判断矩阵偏离一致性的指标,用一致性指标 CI 检查决策者判断思维的一致性,设矩阵的阶数为 n,定义:显然,当判断矩阵具有完全一致性时,CI=0。max-n 越大,CI 越大,矩阵的一致性越差。以时间性子因素为例,首先按格式输入判断矩阵,程序取出字符型数据后进行数据类型的转换,由于进行求方根等运算,所以需先将矩阵转置,然后使用列乘函数 prod()得到一个向量,再对向量进行求方根运算。对得到的向量取值进行正规化运算得出特征向量。将公式(1)用程序实现得到判断矩阵的最大特征根 max.其中
8、 c.d.2 个步骤可以通过 MATLAB 的函数 eig(A)得到一栏向量代表 A 的特征值;而Q,d=eig(A),其中 Q 代表 A 的特征向量,d 为一对角矩阵其元素代表 A 的特征值。运用 m ax(d)即可求出向量的最大特征根。最后是对时间性子因素判断矩阵的一致性检验。主要的源码为:(其中 c_ksx、tzg_ksx 和 cr_ksx 为变量)c_ksx=1/(3-1)*(tzg_ksx-3);cr_ksx=c_ksx/1.12;if cr_ksx0.1 else errord lg(您输入的判断矩阵没有满意的一致性,请您重新输入.,提示信息,0n);set(handles.edt
9、_ksxmatrix,string,);return end 从而完成运用 MATLAB 实现层次分析法求权重数。2.3 模糊数学运算和函数的运用 模糊综合评价方法采用多级模糊综合评价法,在运用 MATLAB 实现时主要是进行矩阵的运算。子因素权重级确定后与相对应的单因素评价矩阵相乘,得到 6 个向量。根据模糊变换方法,将它们组成一个 6 行 5 列的矩阵,从而构成一级模糊评价矩阵 R。快速研制系统因素子集类(6 个因素间的权重比例)的权重集合为 W。矩阵 W 与矩阵 R 相乘得到一个向量,即为一级模糊综合评价级。为了得到明确的量化评价结果,需对评价结果进行处理。对于评价结果向量的处理,本课题
10、采用加权平均法和设定等级评分标准进行系统最后的综合评价。M ATLAB 在具体实现时显示出了它对于模糊数学和基本数学运算的强大功能。通过 MATLAB 内部封装的函数,只需按照你需要的矩阵运算和组合顺序便可轻松达到目的。2.4 软件对输入数据格式正确性的检验 单因素评价矩阵的输入规则是用“,”区分矩阵中的“列”,用“;”区分矩阵中的“行”。例如字符串矩阵“0.5,0.8,1.0,0.6,0.3;0.6,0.7,1.0,0.5,0.4”表示的是一个2 行 5 列的矩阵。表达的实际矩阵为:由于矩阵输入的数据较多,容易出现输入错误的情况,本软件采用判断输入字符串是否符合矩阵输入规则的方式来实现对数据
11、输入正确性的检验。采用的方法是判断输入矩阵的行数和列数是否正确。在输入系统基础信息时,各子因素的个数就是对应子因素评价矩阵的行数,因素等级数即为子因素评价矩阵的列数。取出它们的数据,经过判断便可实现对单因素评价矩阵数据输入的判断。以时间性子因素评价矩阵为例,主要的源码为:判断时间性评价矩阵的行数:(其中 f_row、int_subnumb 和 int_row 为变量)f_row=findstr(str_ksx,;);int_subnumb=str2num(get(handles.edt_subnumb,String);int_row=int_subnumb(1,1)-1;if length(f
12、_row)=int_row errord lg(时间性评价矩阵的行数不正确.,提示信息,0n);return end 判断时间性评价矩阵的列数:(其中 f_co lumn、int_factornumb 和 int_column 为变量)f_co lumn=findstr(str_ksx,);int_factornumb=str2num(get(handles.ed t_factornumb,String);int_column=int_subnumb(1,1)*(int_factornumb(1,1)-1);if length(f_column)=int_column errordlg(时间性
13、评价矩阵的列数不正确.,提示信息,0n);return end 由于因素权重级采用归一化处理,为了保证其符合归一化,程序对因素的权重级进行了归一化判断,以保证输入权重数的总和为 1。2.5 模糊综合评价方法软件人机交互界面 按照以上方法开发的快速研制系统模糊综合评价软件人机交互界面及运行结果如图2 所示。图 2 模糊综合评价方法软件人机交互界面 3 结语 运用 M ATLAB 编制的快速研制系统模糊综合评价软件能够方便、快速、准确地对快速研制系统的总体性能进行综合评价,减少人为计算带来的误差和低效率。运用MATLAB 编制评价软件,缩短了软件研发周期。MATLAB 作为一种计算机编程语言,把数值计算和可视化环境集成到了一起,而且提供了大量的函数,工具箱也越来越多。MATLAB 在有关数学的编程方面有着十分强大的功能和广泛的应用前景。参考文献 1李人厚,张平安.精通 MATLABM.西安:西安交通大学出版社,2000.2张志涌,徐彦琴.MATLAB 教程M.北京:北京航空航天大学出版社,2001.3王先逵.计算机辅助制造M.北京:清华大学出版社,2003.