7移动机器人的反演控制.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.7 移动机器人的反演控制
6.7.1 移动机器人运动学反演控制
独立双后轮差动驱动移动机器人通过两个后轮的不同速度来控制机器人的速度和航向。常用到两种模型,一种是运动学模型,用于解决速度和位置之间的控制问题,另一种模型是动力学模型,用于解决速度和输入力之间的控制问题。 6.7.1.1 运动学模型的建立
双后轮差动驱动时,移动机器人表现为非协调系统,在移动机器人的工作平面内建立直角坐标,非协调双后轮驱动移动机器人如图6-18所示。
机器人的状态由其两驱动轮的中点M 在坐标系的位置及航向角θ来表示。令
T (,,)x y θ=p ,T (,)v w =q ,其中(,)x y 为机器人的位置坐标,θ为方向角,即前进方向和
X 轴正方向的夹角。v ,w 分别为机器人的线速度和角速度,在运动学模型中为控制输入。
平衡轮只起支撑作用,既不影响方向也不影响力,故在建模时不考虑。
根据参考文献[4],机器人的运动学方程为:
cos 0sin 00 1x y θθθ⎛⎫⎛⎫ ⎪ ⎪
== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭
p q (6.143)
在固定坐标系内的位姿误差定义为:
e d e e d e d x x x y y y θθθ-⎛⎫⎛⎫ ⎪ ⎪
==- ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭
p (6.144)
移动机器人运动学模型的轨迹跟踪问题即通过控制输入T
(,)v w =q ,使得对于任意初始误差,e p 有界且T
e e e lim ||(,,)||0t x y θ→∞
=。
图6-18 移动机器人的位姿误差坐标
6.7.1.2 反演控制器的设计
考虑(6.143)所示的运动学系统,给定轨迹为:
d d
d
d sin cos x y θθ=⎧⎨
=-⎩ (6.145) 其中d x 和d y 表示X 轴方向和Y 轴方向的理想角度,d θ为理想的位姿角。
坐标d d (,)x y 和角度d θ不是相互独立的,三个变量有两个独立[5]
。故选择位置指令为
d d (,)x y ,位置跟踪误差为()
e e ,x y 。
反演控制器的设计步骤如下:
第一步:引入虚拟输入α,根据(6.143)式,取:
cos sin x v y v α
α
=⎧⎨
=⎩ (6.146) 令Lyapunov 函数为
22
1e e 1122
V x y =
+ (6.147) 其中e e ,x y 由(6.144)式定义。
由(6.144)和(6.146)式可得:
1e e e e e d e d (cos )(sin )V x x y y x x v y y v αα=+=-+- (6.148)
通过设计虚拟量α,使得:
d 1
e d 2e
cos sin v x c x v y c y αα=+=+ (6.149)
则
2211e 2e 0V c x c y =--< (6.150)
令1d 1e m x c x =+,2d 2e m y c y =+,如果将线速度和虚拟控制律设计为
v =(6.151)
d 2
e 2
1d 1e
arctan
arctan y c y m m x c x α+==+ (6.152) 则可保证(6.149)式成立。
可见,如果e 0x =,e 0y =,则d
d d
arctan y x αθ==。为了实现θ跟踪d θ,第二步要保证θ跟踪α。
第二步:令e αθ=-,定义Lyapunov 函数为
2211
2
V V e =+ (6.153)
则
()22
21e 2e V c x c y e w α=--+-
将角速度控制律设计为
3w c e α=+ (6.154)
则
22221e 2e 30V c x c y c e =---<
6.7.1.3 仿真实例
取()d sin x t =,()d cos y t =-,则d
d d
arctan
y x αθ==,给定轨迹为半径为1的圆。仿真之前,在Matlab 下选择初始位置[]110,取控制律为(6.151)和(6.154),控制参数取1210c c ==,350c =。被控对象初始值取[]110,仿真结果如图6-19至6-23所示。
仿真中,需要注意以下两个问题:
(1)按(6.152)式计算角度α时,由于反三角函数的值域是(π/2,π/2)-,并不能包含所有的α值。如果要包含所有的α值,至少要一个完整的周期[0,2π)。故仿真时采用
angle( )函数,该函数可以计算幅角主值,其值包含在一个周期之内,值域为(π,π]-;
(2)考虑控制律(6.154)中需要虚拟输入α的导数,故应保证α为连续。当点从第四象
限绕逆时针方向变到第一象限时,α在π附近处会产生一个跳变,此时α不连续。具体处理方法为:当α从π变到-π时加上一个2π,从-π变到π时减去一个2π,从而保证α连续;
(3)仿真程序中,p 为当前时刻的角度值,_1p 上一个时刻的角度值。当角度在π附近变化时,即从π变为-π或-π变为π时,_1p p ⨯为负,其值在2
π-附近。此时根据p 的正负分别对α值加2π或减2π,防止α在π和-π间跳动,保证α连续。
图6-19 X 轴方向位置跟踪
图6-20 Y 轴方向位置跟踪