机械臂拉格朗日法逆动力学建模仿真(附MATLAB代码)
(8条消息) 机器人学回炉重造(4):动力学仿真(附牛顿-欧拉递归逆动力学算法matlab代码)_xuuyann的博客-CSDN博客_matlab动力学仿真
本文机械臂参数基于上述文章,利用拉格朗日逆动力学建模推导,通过已知关节的q,dq,ddq获取每个关节所需的tau力矩,仿真有不足或者错误之处希望大家多多提出修改意见。
自写Matlab实现代码
clc;clear;th=[10 20 30]*pi/180;I1=[0 0 0;0 0 0;0 0 0.5];I2=[0 0 0;0 0 0;0 0 0.2];I3=[0 0 0;0 0 0;0 0 0.1];m1=20;m2=15;m3=10;g=[0 ;-9.8 ;0];[M,C,G,T]=Lagrange(th);function [M3,C3,G3,T] = Lagrange(theta)syms th1 th2 th3;angle = [th1 th2 th3];d_angle=[1 ;2 ;3];dd_angle=[0.5 ;1 ;1.5];[J1,J2,J3,JW1,JW2,JW3] = jisuan(angle);I1=[0 0 0;0 0 0;0 0 0.5];I2=[0 0 0;0 0 0;0 0 0.2];I3=[0 0 0;0 0 0;0 0 0.1];m1=20;m2=15;m3=10;g=[0 ;-9.8 ;0];%% 求惯性矩阵 MM=m1*J1'*J1+JW1'*I1*JW1 + m2*J2'*J2+JW2'*I2*JW2 + m3*J3'*J3+JW3'*I3*JW3;M1 = subs(M, th1, theta(1));M2 = subs(M1, th2, theta(2));M3 = subs(M2, th3, theta(3)); digits(4)M3 = vpa(M3,8);%% 求科氏力矩阵Vfor i=1:3for j=1:3 c=0;for k = 1:3c=c+1/2*((diff( M(i,j) ,angle(k)))+(diff( M(i,k) ,angle(j)))-(diff( M(j,k) ,angle(i))))*(d_angle(k)); endC(i,j) = simplify(c);endendC1 = subs(C, th1, theta(1));C2 = subs(C1, th2, theta(2));C3 = subs(C2, th3, theta(3)); digits(4)C3 = vpa(C3,8);%% 求重力因素矩阵CG=-(J1'*m1*g +J2'*m2*g+J3'*m3*g);G1 = subs(G, th1, theta(1));G2 = subs(G1, th2, theta(2));G3 = subs(G2, th3, theta(3)); digits(4)G3 = vpa(G3,8);%% 力矩T=M3*dd_angle+C3*d_angle+G3;JT1 = subs(J1, th1, theta(1));JT2 = subs(JT1, th2, theta(2));JT3 = subs(JT2, th3, theta(3)); digits(4)JV1 = vpa(JT3,8);JT1 = subs(J2, th1, theta(1));JT2 = subs(JT1, th2, theta(2));JT3 = subs(JT2, th3, theta(3)); digits(4)JV2 = vpa(JT3,8);JT1 = subs(J3, th1, theta(1));JT2 = subs(JT1, th2, theta(2));JT3 = subs(JT2, th3, theta(3)); digits(4)JV3 = vpa(JT3,8);end%% 求雅各比矩阵function [JV1,JV2,JV3,JW1,JW2,JW3]=jisuan(angle)th(1) = angle(1);th(2)=angle(2);th(3)=angle(3);%角度a=[0 4 3];alp=[0 0 0];d=[0 0 0];T0_1=Trans(alp(1), a(1), d(1), th(1));T1_2 = Trans(alp(2), a(2), d(2), th(2)); T2_3 = Trans(alp(3), a(3), d(3), th(3));T0_2 = T0_1 * T1_2;T0_3 = T0_2 * T2_3;T1_2c = Trans(alp(1), a(2)/2, d(1), th(1));T2_3c = Trans(alp(2), a(3)/2, d(2), th(2)); T3_4c = Trans(alp(3), 2/2, d(3), th(3)); T0_1c=T0_1 * T1_2c; %到第一个杆质心处的的雅各比矩阵T0_2c=T0_2 * T2_3c; %到第二个杆质心处的的雅各比矩阵T0_3c=T0_3 * T3_4c; %到第二个杆质心处的的雅各比矩阵JW1=[0 0 0;0 0 0;1 0 0];JW2=[0 0 0;0 0 0;1 1 0];JW3=[0 0 0;0 0 0;1 1 1];for i = 1:3for j = 1:3JV1(j, i) = diff(T0_1c(j, 4), th(i));endendfor i = 1:3for j = 1:3JV2(j, i) = diff(T0_2c(j, 4), th(i));endendfor i = 1:3for j = 1:3JV3(j, i) = diff(T0_3c(j, 4), th(i));endend end%% 求齐次变换矩阵
function T = Trans(alpha, a, d, theta)
T= [cos(theta) -sin(theta) 0 a;sin(theta)*cos(alpha) cos(theta)*cos(alpha) -sin(alpha) -sin(alpha)*d;sin(theta)*sin(alpha) cos(theta)*sin(alpha) cos(alpha) cos(alpha)*d;0 0 0 1];
end
结果输出
>> TT =851.7
636.7
296.8
机械臂拉格朗日法逆动力学建模仿真(附MATLAB代码)相关推荐
- 【天文】基于matlab实现GPS卫星运动仿真附matlab代码
1 内容介绍 基于matlab实现GPS卫星运动仿真 2 部分代码 %time是个时间参数利用它可以画出一个看起来旋转的地球 function DrawEarth(time) r=6400; j1=[ ...
- 【机械】二维钢桁架分析与设计附matlab代码
1 内容介绍 主要介绍了某屋盖钢桁架结构的体系,分析条件,相关计算结果及支座节点的设计等 2 部分代码 function Plot_Results(Node,Element,Mag_Factor,R ...
- EPSON机械臂TCP通讯,实现手眼标定(附EPSON代码)
' 建立TCP_IP连接,机械手接收相机发送过来的数据从而到达对应的位置' 初始位置,查看标定板摆放位置是否正确Global String Camera_X$, Camera_Y$, Camera_Z ...
- 【机械】基于matlab模拟打桩机运动学仿真附matlab代码
1 内容介绍 分析和比较了液压打桩机的液压控制系统原理,建立了液压系统的数学模型. 2 部分代码 clear; %清除工作区 clc; %清除命令区 figure('name','打桩机 ...
- 【雷达通信】雷达探测项目仿真附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 【OFDM】多径信道下OFDM通信系统误码率仿真附matlab代码
1 内容介绍 仿真是科学研究和工程建设中非常重要的方法.交频分复用(OFDM)技术是下一代移动通信的核心技术之一.重点研究了多径瑞利衰落信道下最大多径时延对基于OFDM技术的通信系统性能的影响. 2 ...
- 密切值法解简单评价问题附matlab代码
一.密切值法 密切值法是系统工程中多目标决策的一种优选方法.多目标决策由于考虑的目标多,标准多,有些目标之间还存在着矛盾,这就使多目标问题成为一个复杂而困难的问题,密切值法是解决有限方案多目标决策的有 ...
- 【物理应用】基于傅里叶伽辽金谱法二维纳维-斯托克斯附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 【无人机】基于虚拟leader实现无人机编队仿真附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(二)6轴机械臂D-H法建模...
本文作者为我司颜值担当 精神小伙 @梁政,经授权转载,原文发布于其专栏<机器人进阶之路>,欢迎大家支持交流. T矩阵中一共有12个有效参数,然而我们只需要6个量来获取位姿,感觉很不划算,而 ...
最新文章
- 2021年大数据Kafka(九):kafka消息存储及查询机制原理
- ios开发学习-手势交互(Gesture)效果源码分享
- Nginx配置文件详细说明
- ubuntu16定时任务crontab
- 数据库-数据库的备份与恢复
- 台式机自动关机+自动重启问题
- ubuntu之find方法
- 可用资源不足excel无法完成任务_项目资源管理包括哪些内容?
- goroutine 相关知识8
- 【Spring第一篇】ClassPathXmlApplicationContext工作原理
- 深度 | EB级规模大数据平台核心技术揭秘(上)
- 如何在线查看某个地方的高程值
- JPA+QueryDSL
- 自制hdmi线一头改vga图_最全VGA、DVI、PS/2、USB等接头详解焊接方法
- IIS如何添加MIME类型.svg/.woff2/.woff
- 中国宠物经济蛋糕静候分割
- 罗振宇的跨年演讲《时间的朋友》听课笔记
- leetcode报数题
- 不想重置路由器,如何由已连接设备快速获取wifi密码?
- KeyShot 实时光线追踪三维渲染软件