人们在日常生活中,辨别事物的大小和距离时一般是用眼睛,眼睛看到的信息传送给大脑,大脑对这件东西的大小或者对距离的远近进行判断,然后指使人类正常的行为活动,很少有人大脑里面有一套固定的计算公式去辨别距离的具体数值或者事物的具体大小,同样,也很少有人会因为大脑里面没有固定的计算公式就会走路撞到电线杆。在智能化日益发展的今天,很多自动化领域的最终目标就是人脑的仿真。PID控制在固定的条件下被证明能够很好的适应需求,可是,在复杂的非线性系统中,PID是不可能胜任的,所以这里就有了模糊控制的引入。因为工业自动化机器不能胜任的东西由人来操作往往会有较好的效果,而人脑就是一个最先进的模糊控制器,所以模糊控制的发展不可避免。 模糊控制器的基本流程 控制,有输入,有输出。所谓模糊控制,就是将输入控制量经过模糊化,在经过模糊推理得到输出模糊控制量,经解模糊化(反模糊化)得到输出控制量,没有复杂公式的引入,需要的是人们在控制一个系统时的操作经验,因此具有非常高的适应性。 比如小车巡线运动输入量为偏差e和偏差变化量es,输出量为控制舵机转角的值p。经过检测e的范围在(-50,50),es的范围在(-20,20),经过一个量化因子的量化后,得到他们各自的模糊论域,这里取量化因子分别为k1=10,k2=4。50/10=5,20/4=5。即他们各自的论域都为(-5,5)。 取完输入量的论域后,依据实际经验对输入量取几个语言值,比如NB(负大),NS(负中),ZE(零),PS(正中),PB(正大)。根据你自己的经验,让这几个语言值包含你论域里的值。比如,论域中,-5,-4,-3为NB上的值;-3,-2,-1为NS上的值;-2,-1,0,1,2为ZE上的值;1,2,3为PS上的值;3,4,5为PB上的值。这里就牵扯到一个隶属度函数的问题,比如1属于ZE,同时1也属于PS,这时就要根据1在隶属度函数中的函数值来计算1分别为ZE,PS的程度是多大,这里给出一个隶属度函数的例子。 file:///C:/Users/张宝林/AppData/Local/Temp/ksohtml/wps_clip_image-17952.png 上图是一个三角形作为隶属度函数的例子,最高点为1,比如横坐标为1时,它属于ZE的程度是多少,在ZE三角形中找出1所对应的函数值即可;同样,它属于PS的程度是多少,就是在PS这个三角形中找出1所对应的隶属度函数的值即可。 然后就是根据e,es各自的语言值以及工作经验去推理输出量的语言值。比如,当e很大,es为0时,这时,转角的程度应该给的大一些,于是就有一下的模糊推理。 IF e=PB && es=ZE THEN p=PB. 同理: IF e=PS && es=ZE THEN p=PS. 但是在实际中,输入量是一个具体的数值,而不是模糊地语言值,所以就有当输入量为一个值时,它既符合PB,也符合PS,只是各自的程度不用罢了。比如,e,es均取了一个定值,假设e=3,es=0;这样e就存在两个隶属度值,分别是PB情况下和PS情况下的,es只有一个ZE隶属度值。而且PB条件下e的隶属度值为0.3,PS条件下为0.7根据max-min法,先取一条模糊推理语句里的e,es隶属度值的较小值,在取另外一条模糊推理语句里的e,es隶属度值的较小值。用该较小值作为对应模糊输出的一条分界线,取线以下的阴影部分,最后将这两块阴影部分取并集,这个即使输出的模糊子集,根据一个最简单的方法解模糊化----最大平均法解出模糊输出,然后写成模糊表的形式,乘以输出的量化因子即得到输出量。 file:///C:/Users/张宝林/AppData/Local/Temp/ksohtml/wps_clip_image-54.png file:///C:/Users/张宝林/AppData/Local/Temp/ksohtml/wps_clip_image-14259.png 最大平均法:想图中 解模糊化的方法为 (-1+(-0.5))/(2)=-0.75 |