simulink模糊逻辑控制器的使用小结

“小费系统”的计算过程

最近做一个水下四旋翼的simulink建模仿真,使用到模糊pid控制,用到simulink的Fuzzy Logic Controlle模块,关于此模块的搭建和使用网上很多,此不赘述,仅以matlab帮助文档给出的一个简单的例子分析逻辑控制的内部算法。写博客只为自己做个总结,如有不正之处,欢迎指正。
matlab帮助文档搜索“Build Mamdani Systems Using Fuzzy Logic Designer”,文档中构建了一个简单的模糊系统—“小费系统”,即根据餐厅的服务和食物决定给多少小费。关于此系统的构建文档中有详细的说明,此不赘述。此博客是基于“小费系统”讲它的计算过程。matlab帮助文档搜索“Fuzzy Inference Process”,文档中详细解释了“小费系统”的计算过程,本人在此记录,方便以后查看。

输入模糊化

simulink模糊逻辑控制器的使用小结_第1张图片
上图是food隶属函数,假设我们输入f1=8,则f1隶属于rancid模糊集的隶属度是0,隶属于delicious模糊集的隶属度是0.5。
simulink模糊逻辑控制器的使用小结_第2张图片
上图是service隶属函数(便于后面说明,把高斯隶属函数改成了三角隶属函数),假设我们输入s1=3,则s1隶属于poor模糊集的隶属度是1/7,隶属于good模糊集的隶属度是3/7,隶属于excellent模糊集的隶属度是0。
simulink模糊逻辑控制器的使用小结_第3张图片

模糊规则输入隶属度整合

图四 模糊规则
上图是“小费系统”的模糊规则,针对第一条规则,“service is poor”隶属度是1/7,“food is rancid”隶属度是0,两个输入通过"or"整合。“or”的规则在下图所示的模糊逻辑设计界面指定,max表示选择两个输入隶属度中的大者,因此此处是1/7。类似,第二条规则输入隶属度为3/7,第三条规则输入隶属度为1/2。
simulink模糊逻辑控制器的使用小结_第4张图片

输出模糊集

针对单条规则,确定输入隶属度后,有两种输出的模糊集的方法,在图五的“implication”中确定,“min”表示输出模糊集在输出隶属函数中的比重由相应规则对应的输入隶属度直接表示。如第一条隶属函数输入隶属度是1/7,所对应的输出“cheap”模糊集在整个输出模糊集中所占的比例如图
simulink模糊逻辑控制器的使用小结_第5张图片

输出模糊集整合

规则的输出模糊集整合方法在图五的“aggregation”中确定,“max”表示取重叠的模糊输出集的最大,三条规则的输出模糊集整合如下图。
simulink模糊逻辑控制器的使用小结_第6张图片

解模糊输出

解模糊输出方法由图五的“defuzzification”确定。“centroid”表示重心法求解,解的输出17.9,如图八。
simulink模糊逻辑控制器的使用小结_第7张图片
到此整个计算过程结束。

你可能感兴趣的:(simulink)