《机器人自动化:建模、仿真与控制》一一2.4习题

2.4习题
习题21——捕食者猎物系统的向量场
捕食者猎物系统也称为LotkaVolterra系统,由下式表示:
x·1(t)=(1-x2(t))x1(t)

x·2(t)=(x1(t)-1)x2(t)
状态变量x1(t)和x2(t)表示捕食者和猎物的数目。例如,x1表示猎物以千计数量,x2表示捕食者以千计数量。即使猎物和捕食者的数目是整数,我们仍假设x1和x2是实数。该状态方程的二次项表示两者之间的相互影响。当没有捕食者时,猎物会以指数形式进行增长。同样,当没有猎物时捕食者的数目会减少。
(1)图24是在网格[0,2]×[0,2]范围内对应的演化函数的向量场:
f(x)=(1-x2)x1

(x1-1)x2
用这个图来讨论该系统的动力学行为。
(2)也利用该图,给出平衡点并通过计算进行验证。
image

图24LotkaVolterra系统在(x1, x2)平面的向量场
image

图25状态向量为x=(x1,x2)T=(θ,θ·)T的单摆

习题22——单摆的向量场
考虑由以下状态方程描述的单摆:
x·1=x2

x·2=-gsinx1
与演化函数f(x)对应的向量场如图26所示。
(1)根据图示,给出平衡状态的稳定点和不稳定点。
(2)根据欧拉法在图中画出单摆的轨迹。
image

图26单摆在相平面(x1,x2)=(θ,θ·)中的向量场

习题23——立方体模式
考虑三维立方体[0,1]×[0,1]×[0,1]。
(1)以矩阵形式给出它的模式。
(2)为了让它绕着Ox轴旋转角度θ,如何进行矩阵操作?

习题24——绘制汽车
下面要设计一个名为voiture_draw(x)的MATLAB函数,用它绘制汽车在状态x=(x,y,θ,v,δ)T的图形,其中x, y, θ分别表示汽车的位姿(位置和方向),v表示汽车的速度,而δ是前轮的角度。
1)用齐次坐标定义底盘模式和两个前轮的共同模式。
2)定义底盘,左前轮和右前轮的变换矩阵。
3)写出名为car_draw(x)的MATLAB函数,用它绘制出给定状态x下的小汽车。
习题25——单摆的仿真
考虑由以下差分方程描述的单摆:
θ··=-gsinθl
其中,θ表示单摆的角度,g=981ms-2,l=1m。在时刻t=0对单摆初始化,对应的θ=1且θ·=0rad·s-1,然后放开单摆让其自由运动。编写一个基于欧拉法的小程序(用类似MATLAB的语法),计算t=1s时单摆的角度。
习题26——Van der Pol系统
考虑由以下差分方程描述的系统:
y··+(y2-1)y·+y=0

1)选择状态向量为x=(yy·)T,给出系统的状态方程。
2)在平衡点附近对系统线性化,求出系统的极点。该系统在平衡点附近是否稳定?
3)系统在状态空间(x1, x2)的向量场如图27所示,系统初始化为x0=(010)T,在图中画出系统在状态空间的路径x(t),并给出y(t)的形式。
image

图27Van der Pol系统的向量场

4)路径可能是一个环吗?
5)对该系统进行仿真,选择欧拉法还是龙格库塔法可以得到更好的效果,抑或两者效果相当?

习题27——汽车仿真
考虑由以下状态方程描述的汽车:

θ·

δ·=vcosδcosθ
vcosδsinθ
vsinδL
u1
u2

给定状态向量x=(x,y,θ,v,δ)T,汽车初始状态为x(0)=(00070)T,即在时刻t=0,车辆在原点,方向角为0,速度为7ms-1,且前轮与车轴平行。设控制向量u(t)保持为常量且等于(0 02)T,这意味着车辆不会加速(因为u1=0),同时方向盘以恒定速度02rad·s-1旋转(因为u2=02)。编写一个MATLAB程序,要求以001s的采样步长和欧拉法仿真10s内车辆的动态变化。
习题28——用泰勒法的积分
考虑由下述状态方程描述的机器人(如坦克):
x·1
x·2
x·3
x·4
x·5=x4cosx3
x4sinx3
x5
u1
u2
试用泰勒法给出二阶积分,其输入为:
u=u1
u2=cos(t)
sin(t)
习题29——三轮车车轮的半径
考虑如图28所示三轮车的三维表示,图中的小黑点在高度为r的同一水平面上,空心小圈则在高度为0的同一个水平面上。
image

图28三轮车一个轮子半径的示意图
image
image

图中用粗线表示的前轮半径与水平面之间的夹角为α。给出x, y, θ, δ, α, L, r的函数和在Ox轴上的半径(粗线)位置与前轮之间的变换矩阵表达式(用齐次坐标),表达式应为矩阵乘法的形式。
习题210——用MATLAB对三轮车进行三维仿真
图29中三轮车的驱动程序有两个控制:前轮的加速度及方向盘的旋转速度。该系统的状态变量由位置坐标(后桥中心的坐标(x, y)、三轮车的方向角θ以及前轮的角度δ)和前轮中心的速度v组成。从习题111可知,三轮车的演化方程(与汽车类似)为:
image

其中,L=3为后桥和前轮中心的距离,状态向量为x=(x, y, θ, v, δ)T,每个后轮与三轮车轴的距离为e=2m,轮子半径为r=1m。

image

图29用于仿真的三轮车机器人

1)建立三轮车车体的模式,用齐次坐标和Rodrigues公式在3维空间对其进行旋转和平移。
2)创建tricycle_draw函数,参考图210,画出带有轮子的三轮车的三维图形。这个函数以状态向量x作为参数。
3)用速度合成法,计算每个轮子的速度。
4)根据三轮车行驶过程中轮子(对应图中的编号1到3)的旋转状态,增加3个状态变量α1、α2、α3,分别对应三个轮子的角度,给出系统新的状态方程,并用MATLAB对该系统进行仿真。

image

习题211——机械臂
图211所示的机器人操作手由三个机械臂串联构成。第一个臂长度为3,可绕Oz轴旋转。第二个臂长度为2,位于第一个臂的末端,也绕Oz轴旋转。第三个臂长度为1,位于第二个臂的末端,可绕第二个臂的轴旋转。该机器人有3个自由度x=(α1, α2, α3),其中αi表示每个机械臂的角度。选择单位立方体来表示每个机械臂的基本模式,假设每个机械臂是一个厚度为03的平行六面体。为了符合机械臂的形式,其模式必须是类似的,用对角阵来表示。其次,为了获得正确的位置,它还可以进行旋转和平移。设计一个MATLAB程序对该系统进行仿真,并具有图中类似的3D显示。
image

图211由三个机械臂构成的机器人操作手

习题212——用MATLAB对溜冰机器人进行仿真和控制
图212所示的溜冰车有5只冰鞋,可在结冰的湖面上滑动[JAU 10]。该系统有两个输入:前冰鞋角度β的正切值u1(为了避免奇异点,选择正切值作为输入)和夹角为δ的两个雪橇结合处的转矩u2。推力仅仅来源于转矩u2,它与蛇或鳗鱼的推力模式相似[BOY 06]。而对u1的控制并不能给系统任何能量。
image

图212溜冰机器人

1)证明:系统可以由以下状态方程描述。
image

式中,v是前轴中心的速度。这是一个简化和归一化模型,为简化起见,统一选取单位系数(质量、黏性摩擦、轴间距等)。
2)用欧拉法对系统仿真2s,初始状态为x=(0, 0, 0, 3, 05)T,采样周期为dt=005s,输入为u=(1, 0)T,并对结果进行讨论。
3)尝试用仿生学控制该系统,如重现蛇的推进方式,选取u1为以下形式:
u1=p1cos(p2t)+p3
其中,p1是幅度,p2是脉冲,p3是偏差。选取推进转矩u2为推动力,即δ··u2≥0,δ··u2对应机器人的能量,它被转换为动能。对该控制进行编程,并且选择恰当的参数以保证有效的推进,在你的电脑中再现如图213的两种行为。
image

图213受控溜冰机器人的仿真

4)增加第二个控制环去控制控制器参数pi,使机器人能够跟踪一个期望的航向角θ。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值