Matlab模糊控制工具箱:
第一步:用FIS设计模糊控制器
第二部:连接到控制系统中进行仿真
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
第一步:用FIS设计模糊控制器
一:确定模糊控制器结构
1: 确定输入、输出量
实际:
Edit-Add Variable
二: 输入输出变量的模糊化
1: 把输入输出的精确量转化为对应语言变量:{青年,中年,老年};{轻,正常,肥胖};
2: 设置输入输出变量的论域:均为{-3,-2,-1,0,1,2,3}
实际:
Edit-Member Function Edit
以E为例: 设置论域范围为[-3 3]
Edit-Add MFs
添加隶属函数的个数为7
根据设计要求分别对这些隶属函数进行修改: 对应的语言变量; 隶属函数类型
三:模糊推理决策算法设计
1:根据模糊控制规则进行模糊推理,并决策出模糊输出量
实际:
首先要确定模糊规则,即专家经验
制定完之后,会形成一个模糊控制规则矩阵
然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量
四:对输出模糊量的去模糊
1: 通过去模糊化方法判决出一个确切的精确量:凡模糊化方法很多:重心法
五:然后Export to disk
1: 可得到一个.fis文件,这就是你所设计的模糊控制器
实际:
Edit-Rules
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
第二部:连接到控制系统中进行仿真
一:首先加入fuzzy模块
二:然后写入自己的模糊文件
注意:
1: 在模糊控制器的输入和输出均有一个比例系数:我们叫它量化因子
它反映的是模糊论域范围与实际范围之间的比例关系,例如,模糊控制器输入输出的论域范围均为[-3,3],而实际误差的范围是[-10,10],误差变化率范围是[-100,100],控制量的范围是[-24,24],那么我们就可以算出量化因子分别为0.3,0.03,8
2: 现在我们可以设定仿真步长:比如定步长的10ms,就可以运行了
3: 数据类型不统一问题
在simulation parameters->advanced将boolean logic signals选为off
参考:
matlab模糊控制工具箱使用和模糊控制pid实例参考