资源描述:
《模糊控制的matlab实现具体过程(强势吐血推荐)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB模糊逻辑工具箱工具命令行函数(以.m文件存放)图形交互工具(GUI-GraphicalUserInterface)(图形用户界面)接口仿真逻辑模块(Simulink环境)建立模糊逻辑推理系统图形交互工具箱提供的图形化工具有五类:模糊推理系统编辑器Fuzzy隶属度函数编辑器Mfedit(Membershipfunction)模糊规则编辑器Ruleedit模糊规则观察器Ruleview模糊推理输入输出曲面视图Surfview(Surface)⑴模糊推理系统编辑器Fuzzy处理最顶层构建问题,例如输入输出变量的数目、变量名等激活
2、(进入)方法:命令窗口(commandwindow)执行Fuzzy命令。激活模糊推理系统系统编辑器:组成输入模糊变量图形框双击Mfedit模糊规则图形框双击Ruleedit输出模糊变量图形框双击Mfedit基本属性基本属性包括:模糊集合合成运算(连接词的运算)①andmin(最小法)prod(乘积法)②ormax(最大法)prober(概率法)prober(a,b)=a+b-ab2.蕴涵计算(Implication)minprod(乘积法)3.输出的合成计算Aggregation(模糊规则综合采用的方法)Aggregationmaxp
3、rober(概率法)sum(求和法)prober(a,b)=a+b-ab4.逆模糊化计算(Defuzzification)centroid(重心法)mom(平均最大隶属度法)som(最大隶属度函数中的取最小值法)bisector(面积平分法)lom(最大隶属度函数中的取最大值法)⑵在命令窗口键入mfedit可激活隶属度函数编辑器MATLAB的FIS结构和存储1、FIS(模糊推理系统)结构模糊推理系统是以一种FIS的结构来表示和存储的访问方法①GUI工具②函数③结构名.成员名2、存储(.fis文件)访问readfis-读writefis
4、-写命令函数1、隶属度函数①函数trimf(表示triangularmembershipfunction)格式:y=trimf(x,[abc])其中:参数x指定变量论域范围,参数a,b和c指定三角形函数的形状,该函数在b点处取最大值1,a,c点为0。例:建立三角形隶属度函数并绘制曲线。x=0:0.1:10;y=trimf(x,[368]);plot(x,y)xlable(‘trimf,P=[368]’)功能:建立三角形隶属度函数。②函数trapmf(trap表示trapezium梯形)格式:y=trapmf(x,[abcd])其中:参
5、数x指定变量论域范围,参数a,b,c和d指定梯形隶属度函数的形状,该函数在b,c点处取最大值1,a,d点为0。功能:建立梯形隶属度函数。例:x=0:0.1:10;y=trapmf(x,[1578]);plot(x,y)xlable(‘trapmf,P=[1578]’)③函数gaussmf格式:y=gaussmf(x,[sigc])功能:建立高斯型隶属度函数。其中:参数x指定变量论域范围,参数c决定了函数的中心点,sig决定了函数曲线的宽度σ。高斯函数的表达式为:例:x=0:0.1:10;y=gaussmf(x,[25]);plot(x
6、,y)xlable(‘gaussmf,P=[25]’)④函数zmf格式:y=zmf(x,[ab])功能:建立Z型隶属度函数。说明:曲线在(a,b)之间是光滑的样条曲线,在a左段为1,b右段为0,跳跃点是(a+b)/2。参数x指定变量论域范围。例:x=0:0.1:10;y=zmf(x,[28]);plot(x,y)xlable(‘zmf,P=[28]’)⑤函数smf格式:y=smf(x,[ab])功能:建立S型隶属度函数。说明:曲线在(a,b)之间是光滑的样条曲线,在a左段为0,b右段为1,跳跃点是(a+b)/2。参数x指定变量论域范围
7、。例:x=0:0.1:10;y=smf(x,[28]);plot(x,y)xlable(‘smf,P=[28]’)2、模糊逻辑系统输入输出变量及隶属度函数的添加①函数addvar功能:向模糊推理系统中添加语言变量。格式:a=addvar(a,varType,varName,varBounds)说明:参数列表中,a为模糊推理系统对应的矩阵变量名,varType用于指定语言变量的类型为字符型(如‘input’或‘output’);varName用于指定语言变量的名;varBounds用于指定语言变量的论域范围。注意:对于添加到同一个模糊推
8、理系统的语言变量,按先后顺序自动编号,编号从1开始,逐渐递增。对于分属于输入与输出的不同语言变量则独立地分别编号。例:a=newfis(‘tipper’);//创建并返回一个新的FIS系统a=addvar(a,’inpu