日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机械臂动力学建模(2)- Kane凯恩算法

發布時間:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机械臂动力学建模(2)- Kane凯恩算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kane算法

  • 參考
  • 思路
  • 實現

參考

主要的參考是:

  • 鏈接: 百度文庫的ppt.
    這個ppt的思路能講明白,但是公式到了最后一步求τ的時候有問題:

    計算τ的第一項中缺少一個加速度項,應該是:
  • 文獻: 基于凱恩方程的機器人動力學遞推算法.
    里面開始就給了公式
  • 思路

    可以看參考中ppt,主要就是通過kane提出的廣義速度的偏速度:
    來表征動力學方程中的微分位移

    之后就可以把普通的動力學方程

    改寫成廣義主動力和廣義慣性力的形式。
    之后求廣義偏速度,并帶入
    最后使τ為主動力,通過廣義慣性力計算(式子可能有錯,參考前面修改意見):

    實現

  • 迭代法計算線速度,角速度,重心速度以及導數


    matlab代碼:
  • for i = 1:6if i == 1w{i} = R{i}*w0 + qd(i)*e;wd{i} = R{i}*wd0 + qdd(i)*e + cross(R{i}*w0,qd(i)*e);v{i} = R{i} * (v0 + cross(w{i},p{i}));vd{i} = R{i} * (vd0 + cross(w0, cross(w0, p{i})) + cross(wd0, p{i}));elsew{i} = R{i}*w{i-1} + qd(i)*e;wd{i} = R{i}*wd{i-1} + qdd(i)*e + cross(R{i}*w{i-1},qd(i)*e);v{i} = R{i} * (v{i-1} + cross(w{i},p{i}));vd{i} = R{i} * (vd{i-1} + cross(w{i-1}, cross(w{i-1}, p{i})) + cross(wd{i-1}, p{i}));endvc{i} = vd{i} + cross(wd{i},c{i}) + cross(w{i}, cross(w{i}, c{i}));end
  • 計算偏速度

    matlab代碼
    i=1時候自己設置一下
  • for i = 2:6for j = 1:6if j < iwp{i,j} = R{i} * wp{i-1,j};vp{i,j} = R{i} * (cross(wp{i-1,j},p{i}) + vp{i-1,j});vcp{i,j} = vp{i,j} + cross(wp{i,j},c{i});elseif j == iwp{i,j} = e;vp{i,j} = [0 0 0]';vcp{i,j} = cross(e, c{i});elsewp{i,j} = [0 0 0]';vp{i,j} = [0 0 0]';vcp{i,j} = [0 0 0]';endendend
  • 計算tau

    matlab代碼
  • for i = 1:6N{i} = I{i}*wd{i} + cross(w{i},I{i}*w{i});endtau = zeros(6,1);for j = 1:6for i = j:6tau(j) = tau(j) + M(i)*dot(vc{i},vcp{i,j}) + dot(N{i}, wp{i,j});endend

    至此計算完成

    總結

    以上是生活随笔為你收集整理的机械臂动力学建模(2)- Kane凯恩算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。