1.基本思想:
生活中经常会遇到需要根据几个变量的输入,以及一组模糊表述的规则来决定输出。如在灌溉问题中需要根据温度、湿度等变量决定灌溉时间的多少。这个决定灌溉量的过程,则需要依据一些从以往的灌溉中得到的经验,经验则往往来自领域内的专家,并且以规则的形式表述,如:当温度高而且湿度小时,灌溉时间为长。
模糊计算涉及的就是依据模糊规则,从几个控制变量的输入得到最终输出的过程。这个过程可以细分为4个模块:模糊规则库、模糊化、推理方法和去模糊化。具体定义略。
2.算法流程:
在此之前应对模糊控制算法基础知识有一定的了解,csdn上有许多优秀博文给了我很大的帮助。
修改中心点数值,将PB的隶属函数改为高斯函数后可以得到下面的运行结果:
在此案例中定义了两个输入一个输出,论域分别为[-30,30],[60,-60],[-50,50]。
模糊规则定义如下:
如1 1 1 1 1 (后两个数分别为权重以及AND OR (1为AND 0为OR))
则表示
If (first is NB) and (ec is NB) then (u is NB)(1)
1—7分别表示七项约束规则。
理解含义后,在此基础上对原有的规则进行完善:
%模糊控制器设计
a=newfis(‘fuzzf’); %创建新的模糊推理系统
%输入1
f1=10;
a=addvar(a,‘input’,‘frist’