(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代码)相关推荐

  1. 【天文】基于matlab实现GPS卫星运动仿真附matlab代码

    1 内容介绍 基于matlab实现GPS卫星运动仿真 2 部分代码 %time是个时间参数利用它可以画出一个看起来旋转的地球 function DrawEarth(time) r=6400; j1=[ ...

  2. 【机械】二维钢桁架分析与设计附matlab代码

    1 内容介绍 主要介绍了某屋盖钢桁架结构的体系,分析条件,相关计算结果及支座节点的设计等​ 2 部分代码 function Plot_Results(Node,Element,Mag_Factor,R ...

  3. EPSON机械臂TCP通讯,实现手眼标定(附EPSON代码)

    ' 建立TCP_IP连接,机械手接收相机发送过来的数据从而到达对应的位置' 初始位置,查看标定板摆放位置是否正确Global String Camera_X$, Camera_Y$, Camera_Z ...

  4. 【机械】基于matlab模拟打桩机运动学仿真附matlab代码

    1 内容介绍 ​分析和比较了液压打桩机的液压控制系统原理,建立了液压系统的数学模型. 2 部分代码 clear;   %清除工作区 clc;     %清除命令区 figure('name','打桩机 ...

  5. 【雷达通信】雷达探测项目仿真附Matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  6. 【OFDM】多径信道下OFDM通信系统误码率仿真附matlab代码

    1 内容介绍 仿真是科学研究和工程建设中非常重要的方法.交频分复用(OFDM)技术是下一代移动通信的核心技术之一.重点研究了多径瑞利衰落信道下最大多径时延对基于OFDM技术的通信系统性能的影响. 2 ...

  7. 密切值法解简单评价问题附matlab代码

    一.密切值法 密切值法是系统工程中多目标决策的一种优选方法.多目标决策由于考虑的目标多,标准多,有些目标之间还存在着矛盾,这就使多目标问题成为一个复杂而困难的问题,密切值法是解决有限方案多目标决策的有 ...

  8. 【物理应用】基于傅里叶伽辽金谱法二维纳维-斯托克斯附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  9. 【无人机】基于虚拟leader实现无人机编队仿真附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  10. 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(二)6轴机械臂D-H法建模...

    本文作者为我司颜值担当 精神小伙 @梁政,经授权转载,原文发布于其专栏<机器人进阶之路>,欢迎大家支持交流. T矩阵中一共有12个有效参数,然而我们只需要6个量来获取位姿,感觉很不划算,而 ...

最新文章

  1. 2021年大数据Kafka(九):kafka消息存储及查询机制原理
  2. ios开发学习-手势交互(Gesture)效果源码分享
  3. Nginx配置文件详细说明
  4. ubuntu16定时任务crontab
  5. 数据库-数据库的备份与恢复
  6. 台式机自动关机+自动重启问题
  7. ubuntu之find方法
  8. 可用资源不足excel无法完成任务_项目资源管理包括哪些内容?
  9. goroutine 相关知识8
  10. 【Spring第一篇】ClassPathXmlApplicationContext工作原理
  11. 深度 | EB级规模大数据平台核心技术揭秘(上)
  12. 如何在线查看某个地方的高程值
  13. JPA+QueryDSL
  14. 自制hdmi线一头改vga图_最全VGA、DVI、PS/2、USB等接头详解焊接方法
  15. IIS如何添加MIME类型.svg/.woff2/.woff
  16. 中国宠物经济蛋糕静候分割
  17. 罗振宇的跨年演讲《时间的朋友》听课笔记
  18. leetcode报数题
  19. 不想重置路由器,如何由已连接设备快速获取wifi密码?
  20. KeyShot 实时光线追踪三维渲染软件

热门文章

  1. web前端优化一些看法
  2. 会话描述协议-SDP
  3. 2000-2019全国各省分品种能源消费量
  4. hosts文件位置和修复hosts文件
  5. matlab 逆矩阵计算器,高等数学计算器
  6. 笨方法学Python3 习题 0
  7. 超市系统服务器,超市收银系统 服务器 配置
  8. 解决allwinner bootlogo.bmg 开机logo 修改 后变绿
  9. 计算机房装修对门的要求,机房建设标准要求
  10. 智慧档案库房库房一体化安全管控平台方案【转载】