二自由度机器人的位置控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二自由度机器人的位置控制

一、实验目的

1. 运用Matlab语言、Simulink及Robot工具箱,搭建二自由度机器人的几何

模型、动力学模型,

2. 构建控制器的模型,通过调整控制器参数,对二自由度机器人的位姿进行控

制,并达到较好控制效果。

二、工具软件

1.Matlab软件

2.Simulink动态仿真环境

3.robot工具箱

模型可以和实际中一样,有自己的质量、质心、长度以及转动惯量等,但需要注意的是它所描述的模型是理想的模型,即质量均匀。这个工具箱还支持Simulink的功能,因此,可以根据需要建立流程图,这样就可以使仿真比较明了。

把robot 工具箱拷贝到MATLAB/toolbox文件夹后,打开matalb软件,点击file--set path,在打开的对话框中选add with subfolders,选中添加MATLAB/toolbox/robot,保存。这是在matlab命令窗口键入roblocks就会弹出robot 工具箱中的模块(如下图)。

三、实验原理

在本次仿真实验中,主要任务是实现对二自由度机器人的控制,那么首先就要创建二自由度机器人对象,

二自由度机器人坐标配置仿真参数如下表1:

表1 二连杆参数配置

1.运动学模型构建二连杆的运动学模型,搭建twolink模型在MATLAB命令窗口下用函数drivebot(WJB)即可观察到该二连杆的动态位姿图。

%文件名命名为自己名字的首字母_twolink

%构造连杆一

L{1}=link([0 0.45 0 0 0],'standard') ;

L{1}.m=23.9 ;

L{1}.r=[0.091 0 0] ;

L{1}.I=[0 0 0 0 0 0] ;

L{1}.Jm=0 ;

L{1}.G=1 ;

%构造连杆二

L{2}=link([0 0.55 0 0 0],'standard') ;

L{2}.m=4.44 ;

L{2}.r=[0.105 0 0] ;

L{2}.I=[0 0 0 0 0 0] ;

L{2}.Jm=0 ;

L{2}.G=1 ;

%(机器人的名字请用自己名字的首字母如)

WJB=robot(L) ;

='WJB_twolink' ; %设定二连杆名字

qz=[0 0] ;

qr=[0 pi/2] ;

2.二连杆动力学部分

实现机器人内部动力学构建,根据拉格朗日法建立机器人动力学模型(见书上P55)即下式:

)q *)q ,q (C )q (G (M q .

.1

..

--τ=-

仍然用matlab 下M 函数来实现:

%文件名命名为自己名字的首字母_dl %二连杆动力学部分

function qdd=WJB_dl(u) %自己名字的首字母 q=u(1:2); qd=u(3:4); tau=u(5:6); g=9.8;

m1=23.9 ; m2=4.44 ; l1=0.45 ; l2=0.55 ; lc1=0.091 ;lc2=0.105 ; I1=1.27 ; I2=0.24 ;

M11=m1*lc1^2+m2*(l1^2+lc2^2+2*l1*lc2*cos(q(2)))+I1+I2 ; M12=m2*(lc2^2+l1*lc2*cos(q(2)))+I2 ; M21=m2*(lc2^2+l1*lc2*cos(q(2)))+I2 ; M22=m2*lc2^2+I2 ; M=[M11 M12 ;M21 M22] ;

C11=-(m2*l1*lc2*sin(q(2)))*qd(2) ; C12=-m2*l1*lc2*sin(q(2))*(qd(1)+qd(2)) ; C21=m2*l1*lc2*sin(q(2))*qd(1); C22=0 ;

C=[C11 C12 ;C21 C22] ;

G1=(m1*lc1+m2*l1)*g*sin(q(1))+m2*lc2*g*sin(q(1)+q(2)) ; G2=m2*lc2*g*sin(q(1)+q(2)) ; G=[G1 ;G2] ;

qdd=inv(M)*(tau-G-C*qd)

最后,还需将机器人动力学和几何学联系在一起。通过机器人学工具箱中的robot模块实现。

3.控制器设计(任选一二)

(1)简单PD控制率,结构图如下,此种方法没有加任何补偿,存在较大稳态误差,但是控制算法非常简单。

(2)PD加重力补偿

带有重力补偿的PD控制可设计成

t=Kp(q期望值-q)-Kd*qd+G(q)重力项

3.PD加前馈补偿控制

加了一个逆动力学模块

t=Kp(q期望值-q)+Kd*(q期望值一阶导-q一阶导)+M(q)*q二阶导+C*q 一阶导+G(q)

四、实验步骤

1.运动学模型在matlab菜单file下新建一个M-file,将机器人运动学模型添加进去(注意更改自己的机器人命名,自己名字的首字母缩写_twolink),并将此M-file命名后保存在work文件夹下,备用。

2.在matlab命令窗口调用函数drivebot(机器人名字—自己名字首字母的缩写,不加twolink),出现机器人的动态位姿图,调节q1、q2可直观的看出二自由度机器人的位姿在改变。

3.动力学模型在matlab菜单file下再新建一个M-file,将机器人动力学学模型添加进去,并将此M-file命名后(自己名字首字母_mdl)保存在work 文件夹下,备用。

4,将机器人运动学模型和动力学模型联系起来

在matlab命令窗口输入命令roblocks调出robot工具箱,再输入simulink 调出SImulink动态仿真环境。

5、在Matlab菜单file下新建一个model,将robot工具箱中的robot模块拖拽到model文件里,双击编辑机器人属性,将robot object改为机器人的名字(自己名字首字母的缩写)(即运动学构建的机器人对象)。再选中robot模块,右键菜

相关文档
最新文档