模糊控制用于机器人避障

3.4.2输入输出量的模糊语言描述及模糊分割

模糊语言的确定包括由语法规则生成适当的模糊语言值,根据语义规则确定语言值的隶属度函数以及确定语言变量的论域等。这里使用连续型论域,采用简单线性化处理方法,对个输入量进行模糊语言描述,如下: 距离输入变量:d={近,远}={near,far};

目标方位输入变量:tg={左大,左中,左小,前,右小,右中,右大}

={lb,lm,ls,zo,rs,rm,rb};

输出转向角变量:sa={左转,左中转,左稍转,直走,右稍转,右中转,右转}; ={tlb,tlm,tls,tz,trs,trm,trb};

模糊分割是指模糊语言对所在论域的划分,决定了模糊控制的精细化程度。模糊分割的越多,控制越精细,但对应控制规则数目也就越多;模糊分割太粗,则难以对控制性能进行细致调整。所以,模糊分割的数目并无指导性的方法,主要根据具体情况和经验来划分。例如上面对距离输入变量的划分,通常情况下对距离变量划分为{近,中,远},但如此一来,模糊规则的数量共有33?7?189条,较难实现。因此将距离变量简单划分为{近,远},模糊规则数减少到23?7?56条。模糊规则数大幅减少,既容易实现,又未过多降低控制精度。

3.4.3 输入输出量的模糊化

模糊语言值只是一个模糊子集,语言值要通过隶属函数来描述。在论域连续是的情况下,隶属度常用函数的形式来进行描述,常见的有隶属函数有三角形,梯形,高斯型等。

通常,隶属函数的形状越陡,分辨率就越高,控制灵敏度也就越高;相反,若隶属函数变化缓慢,则控制特性也平缓,对应的系统稳定性好。因此,在选择语言值的隶属度函数是,一般在误差为零的附近区域采用分辨率较高的隶属函数,而在误差较大的区域,可采用分辨率较低的隶属函数,以获得较好的鲁棒性

[13]

此外,大多数情况下,隶属函数的选取具有较大的随意性,对同一模糊集

不同的人肯能选取不同的隶属函数去表述,并无绝对的对错。因此,在利用

- 10 -

MATLAB建立模糊控制器时,可通过改变隶属函数来观察其对输出的影响。各输入输出变量隶属函数如下图所示。

图2.8(a)dl、dc和dr的隶属函数

图2.8(b) 夹角tg的隶属函数

图2.8(c)输出转向角sa的隶属函数

3.4.4建立模糊控制规则

模糊规则的建立是模糊控制的核心问题[14]。模糊控制系统是用一系列基于专家知识的语言来描述的,用一系列模糊条件描述的模糊控制规则就构成了模糊控制规则库。根据模糊控制理论,控制规则反映了输入输出变量间的关系。本设计中包含四个定性输入信号,一个定性输出信号。

机器人移动路径是根据障碍物距离和目标点方位共同决定的。当检测到有障

- 11 -

碍物靠近时,机器人改变行进方向。机器人转向的基本原则是:当探测到机器人左(右)和前方有障碍物靠近时,机器人应及时转向右(左)方。转向角度的大小则视障碍物距离和航向与目标点到机器人连线的夹角而定:障碍物距离越近,转向角越大;夹角越大,转向角越小。

根据前面所确定的输入输出集,模糊规则的一般表述形式为“If(条件)Then(结果)”。以下将选取典型情况讨论对应模糊规则的制定。 (A) 一侧有障碍物时

机器人一侧有障碍物是最基本的情况,这里仅以右侧有障碍物的情况来说明。当机器人右侧近距离内有障碍物,而左侧和前方近距离内均无障碍物时(图2.9),根据人的驾驶经验,可编写如表2.1的控制规则。

L far C 障碍物 d R tg lb ls zo rs rb far near O dl,dc为far dr为near

tlb tls tz trs trb 图2.9右侧有障碍物 表2.1 右侧有障碍物时规则表 (B) 左右障碍物对称时

在某些情况下,模糊规则的方法存在着“对称无法确定”现象。如机器人左右两侧障碍物完全对称时,根据基本规则,机器人讲无法确定行进方向而在两障碍物间来回转向,形成死锁。

在这种情况下,目标方位角tg则会决定机器人的转向,这就是局部最优选择。用模糊逻辑表示如下:

如果dc为近,dr为远,dl为远,且目标标点在机器人左侧,则机器人左转; 如果dc为近,dl为远,dr为远,且目标点在机器人右侧,则机器人右转。 按照同样的方法,针对不同方位的障碍物和目标方位角,可制定完备的控制规则。这样的规则制定方法是基于控制器行为特征的方式,将动作分为若干的基本行为,对于较复杂的行为,则分由几个较简单的行为依次构成。这样可简化模糊规则的制定,减少模糊股则的条数,避开被控对象特征的建模。模糊控制规则

- 12 -

经简化后,放入模糊规则库,供模糊控制器查询。以下为全部56条模糊规则表(为方便列表,将障碍物组合情况制成表2.2,再结合目标点方位得到模糊控制表2.3。如第ls行第d4列的tlb,对应的模糊规则为:if(dr is near)and(dc is near)and(dl is near)and(tg is ls),then(sa is tlb).)。

编号 1 2 3 4 5 6 7 8 dr far far far near far near near near dc far far near near near far near far dl far near near near far far far near 障碍物组合 d1 d2 d3 d4 d5 d6 d7 d8 表2.2 障碍物情况组合

d1

d2

d3

d4

d5

d6

d7

d8

lb tlb(1) tz(8) trs(15) tlb(22) tlb(29) tlb(36) tlb(43) tls(50) lm tlm(2) tz(9) trs(16) tlb(23) tlm(30) tlm(37) tlb(44) tz(51) ls tls(3) tz(10) trs(17) tlb(24) tls(31) tls(38) tlb(45) tz(52) zo

tz(4) tz(11) trs(18) tlb(25) tls(32) tz(39) tls(46) tz(53)

rs trs(5) trs(12) trb(19) trb(26) trs(33) tz(40) tls(47) tz(54) rm trm(6) trm(13) trb(20) trb(27) trm(34) tz(41) tls(48) tz(55) rb trb(7) trb(14) trb(21) trb(28 trb(35 tz(42) tls(49) trs(56) 表2.3 模糊控制规则表(括号内数字为规则编号)

- 13 -

3.4.5 模糊推理

模糊控制规则实际是一组多重条件语句(因果关系的集合描述)。上节模糊规则基本形式为:

if(dr is Ai)and(dc is Bi)and(dl isCi)and(tg is Di),then(sa is

Ei).

其中dr、dc、dl、tg和sa代表系统状态和控制语言变量,Ai、Bi、Ci、Di和Ei分别是对应的语言值,各变量对应的论域分别为DR、DC、DL、TG和SA。每条模糊规则的蕴涵关系为:

Ri?(AiandBiandCiandDi)?Ei

若考虑全部56条控制规则的总蕴涵关系,用连接词“also”进行取并的方法得到,即R??Ri

i?156 最后求得的推理结论为U*?(A?andB?andC?andD?)?R。合成运算“?”采用了Mamdani最大-最小法。

虽然总的蕴涵关系R由全部56个蕴涵关系Ri构成,但每一组输入量并不能把他们全部激活。为减少计算量,只根据输入量用被激活的控制规则Rj进行近似推理,而不用计算由1到56的全部Uj。

3.4..6 解模糊

通过模糊推理得到的结果是一个模糊集合,不能直接作用于被控对象。实际控制中过程中,必须要有一个确定值才能控制或驱动执行机构。这一把模糊推理结果转换为确定数值的过程就是解模糊,或是清晰化[15]。解模糊的作用就是将输出的模糊集合映射到一个个确定的点,其方法与隶属函数的选择及模糊推理方法有关。在Matlab中提供了五种解模糊的方法:面积重心法、面积等分法、最大隶属度平均法、最大隶属度取小法和最大隶属度取大法。本设计选取了重心法,

- 14 -

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4