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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

双盘转子动力学仿真c语言程序,递归牛顿欧拉(正)动力学仿真

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双盘转子动力学仿真c语言程序,递归牛顿欧拉(正)动力学仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

遞歸牛頓-歐拉動力學算法是一種高效的動力學計算方法,它有正和逆兩種形式,我們先來看正動力學,也就是給定關節力矩求機器人的運動。下面的算法來自于論文《Lie Group Formulation of Articulated Rigid Body Dynamics》,我們更正了原文中的一處錯誤。該算法使用了李群的表述,其優點是形式簡潔、并有清晰的數學含義。該算法適用于三維空間,每步正動力學計算過程包含三個遞歸過程:1. 前向計算位姿和速度;2. 反向計算廣義慣量和偏置力;3. 前向計算加速度。

具體實現(Mathematica代碼)

(*Initialization 運動參數初始化*)

time = 2000; dt = 0.0005;

Table[mass[i] = 1; Gravity[i] = grav*mass[i]*{0, 0, -1, 0, 0, 0}, {i, 0, n, 1}];

Table[g[i, i + 1, 0] = RPToH[Id[3], {0, 0, (La[i] + La[i + 1])/2}], {i, 0, n - 1, 1}];

q = dq = ddq = ConstantArray[0, n];

Table[V[i] = dV[i] = ConstantArray[0, 6], {i, 0, n, 1}];

Table[M[i] = Id[6]; \[Tau][i] = 0, {i, n}];

F[n + 1] = ConstantArray[0, 6];

g[n, n + 1] = g[0, 0] = Id[4];

q = ConstantArray[Pi/2, n];

\[CapitalPi][n + 1] = Id[6]*0.0;

\[Beta][n + 1] = ConstantArray[0, 6];

Table[

qList = {qList, q};

gList = {gList, g[0, 4]};

(*Forward 前向遞歸*)

dq = dq + ddq*dt;

q = q + dq*dt;

For[i = 1, i <= n, i++,

g[i - 1, i] = TwistExp[\[Xi]r[i], q[[i]]].g[i - 1, i, 0];

g[0, i] = g[0, i - 1].g[i - 1, i];

V[i] = Ad[Iv[g[i - 1, i]]].V[i - 1] + \[Xi]s[i]*dq[[i]];

\[Eta][i] = ad[V[i] - \[Xi]s[i]*dq[[i]]].\[Xi]s[i]*dq[[i]];

];

(*Backward 反向遞歸*)

For[i = n, i >= 1, i--,

\[Tau][i] = 0;

Mh[i] = M[i] + T[Ad[Iv[g[i, i + 1]]]].\[CapitalPi][i + 1].Ad[Iv[g[i, i + 1]]];

Fext[i] = T[Ad[RPToH[R[g[0, i]], {0, 0, 0}]]].Gravity[i];

\[ScriptCapitalB][i] = -T[ad[V[i]]].M[i].V[i] - Fext[i] + T[Ad[Iv[g[i, i + 1]]]].\[Beta][i + 1];

\[CapitalPsi][i] = 1/(\[Xi]s[i].Mh[i].\[Xi]s[i]);

\[CapitalPi][i] = Mh[i] - \[CapitalPsi][i]*KroneckerProduct[Mh[i].\[Xi]s[i], \[Xi]s[i].Mh[i]];

\[Beta][i] = \[ScriptCapitalB][i] + Mh[i].(\[Eta][i] + \[Xi]s[i]*\[CapitalPsi][i]*(\[Tau][i] - \[Xi]s[i].(Mh[i].\[Eta][i] + \[ScriptCapitalB][i])));

];

(*Forward 前向遞歸*)

For[i = 1, i <= n, i++,

ddq[[i]] = \[CapitalPsi][i]*(\[Tau][i] - \[Xi]s[i].Mh[i].(Ad[Iv[g[i - 1, i]]].dV[i - 1] + \[Eta][i]) - \[Xi]s[i].\[ScriptCapitalB][i]);

dV[i] = Ad[Iv[g[i - 1, i]]].dV[i - 1] + \[Xi]s[i]*ddq[[i]] + \[Eta][i]];

, {t, time}];

仿真結果

我們選擇4個連桿的例子進行仿真試驗,連桿之間用轉動關節連接,機器人初始處于水平靜止狀態,所有關節的力矩為0,所以機器人將在重力作用下自由下落,仿真結果如下圖所示(顯示了Y-Z平面)。

正確性驗證

為了驗證算法的正確性,和第三方的仿真軟件進行對比,這里我們選取了Working Model軟件(一款商業二維動力學仿真軟件)。Working Model中的仿真過程如下圖所示。

我們選擇末端連桿(也就是第4個連桿)質心的Y坐標進行對比,結果如下圖左所示。二者的誤差(下圖右)在-0.001m~0.001m之間(每個連桿的長度為10cm,誤差<1mm),說明我們算法基本是正確的。

??

下圖中的例子是10自由度的連桿只在重力作用下(關節力矩為0)的運動,每相鄰的兩個關節旋轉軸相互垂直。聞到了一絲混沌(Chaos)的味道!這時要對比驗證可以借助三維動力學仿真軟件,例如MSC Adams。但是太繁瑣,我懶得做了:-)

總結

以上是生活随笔為你收集整理的双盘转子动力学仿真c语言程序,递归牛顿欧拉(正)动力学仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 99热99精品| 伊人久久麻豆 | 国产精品va无码一区二区 | 亚洲情se | 女生脱裤子让男生捅 | 国产人妖一区二区三区 | 久久97精品久久久久久久不卡 | 国产精品不卡视频 | 欧美a∨亚洲欧美亚洲 | 国产aⅴ一区二区三区 | 一本色道综合久久欧美日韩精品 | 国产亚洲精品精品国产亚洲综合 | 未满十八18禁止免费无码网站 | 67194少妇| 理论片中文字幕 | 成人免费看片98 | 在线看网站 | 六月婷婷综合 | 九色tv| 欧美精品在线视频观看 | 欧洲一区二区三区在线 | 成人h动漫精品一区二区无码 | 久久久精品91 | 亚洲精品高潮久久久久久久 | 手机av免费看 | av网址有哪些 | 亚洲激情图 | 青青草免费观看视频 | 亚洲区第一页 | 我不卡一区二区 | 亚洲精品国产精品国自产网站按摩 | 久草成人在线视频 | 欧美日韩大片在线观看 | 91网站免费入口 | 中文字幕韩日 | 欧美日韩成人一区二区在线观看 | 午夜精华| 正在播放木下凛凛xv99 | 久久黄网站| 欧美性受xxxx黑人 | 国内成人精品 | 亚洲av无码成人精品国产 | 永久免费快色 | 久久久久免费看 | 欧美亚洲大片 | a视频免费 | 国产精品成人3p一区二区三区 | 成人免费看片视频 | 欧美伦理在线观看 | 国产美女作爱视频 | 日韩精品成人一区二区在线 | 色伊人网 | 国产日本在线播放 | 欧美日韩中文 | 丰满少妇中文字幕 | 日本黄色片.| 免费污视频在线观看 | 玉足调教丨vk24分钟 | 在线能看的av | 国产伦精品一区二区三区高清版 | 色爽av| 欧美一级大黄 | 久久久啊啊啊 | 午夜一区二区三区 | 精品一区视频 | 动漫美女被x | 夜夜嗨av一区二区三区四区 | 日批在线视频 | 国产精品污www在线观看 | 国产精品亚洲一区二区 | 张柏芝54张无删码视频 | 色婷婷成人网 | 在线二区| 人妻一区二区三区在线 | 国产探花精品一区二区 | 日韩精品成人在线观看 | 国产性爱精品视频 | 性欧美videos另类hd | 日本中文字幕在线播放 | 动漫av网站免费观看 | 19韩国主播青草vip | 大帝av | 中文字幕99 | 最近中文字幕在线中文视频 | 欧美激情性做爰免费视频 | 日本美女久久 | 丰满女人又爽又紧又丰满 | 超碰在线网 | 中文字幕在线视频第一页 | a√天堂资源 | 人人爱国产 | 丁香婷婷深情五月亚洲 | 国产精品欧美一区二区三区 | 首尔之春在线观看 | www.黄色大片| 葵司av在线 | 大地资源在线观看免费高清版粤语 | 蜜臀人妻四季av一区二区不卡 | 久久久久亚洲精品系列色欲 |