二自由度机器人的位置控制.docx
《二自由度机器人的位置控制.docx》由会员分享,可在线阅读,更多相关《二自由度机器人的位置控制.docx(7页珍藏版)》请在冰豆网上搜索。
![二自由度机器人的位置控制.docx](https://file1.bdocx.com/fileroot1/2022-11/24/a0511f41-de6a-4814-97b9-3c718ecd55dc/a0511f41-de6a-4814-97b9-3c718ecd55dc1.gif)
二自由度机器人的位置控制
实验二自由度机器人的位置控制
一、实验目的
1.运用Matlab语言、Simulink及Robot工具箱,搭建二自由度机器人的几何模型、动力学模型,
2.构建控制器的模型,通过调整控制器参数,对二自由度机器人的位姿进行控制,并达到较好控制效果。
二、工具软件
1.Matlab软件
2.Simulink动态仿真环境
3.robot工具箱
模型可以和实际中一样,有自己的质量、质心、长度以及转动惯量等,但需要注意的是它所描述的模型是理想的模型,即质量均匀。
这个工具箱还支持Simulink的功能,因此,可以根据需要建立流程图,这样就可以使仿真比较明了。
把robot工具箱拷贝到MATLAB/toolbox文件夹后,打开matalb软件,点击file--setpath,在打开的对话框中选addwithsubfolders,选中添加MATLAB/toolbox/robot,保存。
这是在matlab命令窗口键入roblocks就会弹出robot工具箱中的模块(如下图)。
三、实验原理
在本次仿真实验中,主要任务是实现对二自由度机器人的控制,那么首先就要创建二自由度机器人对象,
二自由度机器人坐标配置
仿真参数如下表1:
表1二连杆参数配置
意义
符号
值
单位
杆1长
l1
0.45
m
杆2长
l2
0.55
m
杆1重心
lc1
0.091
m
杆2重心
lc2
0.105
m
杆1重量
m1
23.90
kg
杆2重量
m2
4.44
kg
杆1惯量
I1
1.27
kg.m2
杆2惯量
I2
0.24
kg.m2
重力加速度
G
9.8
m/sec2
1.运动学模型构建二连杆的运动学模型,搭建twolink模型在MATLAB命令窗口下用函数drivebot(WJB)即可观察到该二连杆的动态位姿图。
%文件名命名为自己名字的首字母_twolink
%构造连杆一
L{1}=link([00.45000],'standard');
L{1}.m=23.9;
L{1}.r=[0.09100];
L{1}.I=[000000];
L{1}.Jm=0;
L{1}.G=1;
%构造连杆二
L{2}=link([00.55000],'standard');
L{2}.m=4.44;
L{2}.r=[0.10500];
L{2}.I=[000000];
L{2}.Jm=0;
L{2}.G=1;
%(机器人的名字请用自己名字的首字母如)
WJB=robot(L);
WJB.name='WJB_twolink';%设定二连杆名字
qz=[00];
qr=[0pi/2];
2.二连杆动力学部分
实现机器人内部动力学构建,根据拉格朗日法建立机器人动力学模型(见书上P55)即下式:
仍然用matlab下M函数来实现:
%文件名命名为自己名字的首字母_dl
%二连杆动力学部分
functionqdd=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=[M11M12;M21M22];
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=[C11C12;C21C22];
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文件里,双击编辑机器人属性,将robotobject改为机器人的名字(自己名字首字母的缩写)(即运动学构建的机器人对象)。
再选中robot模块,右键菜单找到lookundermask,点开,可以找到机器人内部动力学模型,将其中的S-Function替换成Simulink下面的Matlab—Function,双击此Matlab—Function弹出对话框,将其中的函数改为动力学模型文件名。
6.添加控制器根据控制器设计的方案,在Simulink下找出构成控制系统的其他模块,其中综合点及matrixgain在mathoperations里;示波器scope和终止端terminator在输出池sinks里;常量constant在输入模块sources里;将各个模块拖拽到model文件里,可以通过鼠标拖住连线。
7、动态仿真
双击综合点,将其属性改成有一个减号,形成负反馈;常量constant给定你期望位姿(注意是二自由度机器人,需输入2*!
的矩阵),初步给定KP、KD参数(2*2的矩阵)。
在model文件菜单栏下面,点击一个箭头(startsimulation)或者在菜单栏点击Simulation,在下拉菜单中选择startsimulation,即可开始仿真,此时双击打开scope即可得到响应曲线。
调整不同的Kp、KD即可得到不同的响应曲线,不同的控制效果。
五、实验报告要求
1、手动调节机器人的位姿,抓出机器人的动态位姿图。
要求每人构建的机器人命名不能一样。
2、要求搭建完整的仿真框图,调节不同的PD参数,比较响应曲线的优劣。
至少给出两组PD参数对应的响应曲线。
3、分析PD参数对控制系统的性能影响。
THANKS
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考