慣性穩定平台入門手冊——從一軸到多軸,把概念變成算得出來的數字

這是 LocalPapa Notes 開發紀錄系列的第二十一篇。第十八篇講怎麼量 LOS 抖動、第十九篇講量到之後控制端怎麼優化、第二十篇講機構本身怎麼設計。三篇都有同一個預設:讀者已經懂慣性穩定平台的基本語彙

這篇補上那個缺口。以 Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46 的方法論為主幹,從最基礎的概念開始,一層一層往上疊,每一層都給可以自己驗算的數字。

這份手冊怎麼用

分成七層,由淺入深。每一層都可以獨立讀,但順序是刻意的——後面每一層都用到前面的結論。

  • 第一層:在穩定什麼?(概念)
  • 第二層:感測器裝哪裡?(最早、最難改的決策)
  • 第三層:單軸要多大力矩?(核心,含完整範例計算)
  • 第四層:從力矩到一顆真實的馬達
  • 第五層:從一軸到三軸(巢狀、耦合)
  • 第六層:控制頻寬的天花板在哪
  • 第七層:怎麼驗證你做出來的東西真的達標

文章最後有一節「怎麼跟我協作」,列出你手上要準備哪些數字,我們才有辦法一起把選型做完。


第一層:在穩定什麼?

視線(Line of Sight, LOS)不是雲台的姿態

這是最容易混淆的第一個概念。LOS 是感測器光軸在慣性空間中指向的那條線,不是雲台框架相對機身的角度。

差別在哪?想像無人機在飛,機身晃了 1°。如果雲台的編碼器讀數完全沒變(框架相對機身沒動),LOS 已經跟著晃了 1°——因為整台雲台被機身帶著走了。編碼器完美地告訴你「框架沒動」,而畫面糊掉了。

穩定平台要壓制的是 LOS 在慣性空間中的抖動,不是框架相對機身的角度。這是整個領域為什麼叫「慣性」穩定平台的原因。

所以「穩定」不是把雲台鎖死

直覺會想:把馬達鎖緊、不讓它動,不就穩了?剛好相反。

機身晃 1°,如果雲台完全剛性連接(等於鎖死),LOS 就跟著晃 1°。要讓 LOS 不動,雲台框架必須相對機身反向轉 1°——它必須主動地動,而且動得跟擾動一樣快、一樣準。

這是最反直覺的一點,但想通之後後面全部都順了:馬達的工作是「抵消」,不是「固定」

為什麼需要陀螺儀,編碼器不夠

編碼器量的是「框架相對機身轉了多少」,這是相對量。陀螺儀量的是「這個東西在慣性空間中轉多快」,這是絕對量。

要穩定 LOS,你需要知道 LOS 在慣性空間中的運動——只有陀螺儀給得出這個資訊。編碼器在系統裡另有角色(知道框架指到哪、做位置迴路、限位保護),但它沒辦法單獨完成慣性穩定

擾動從哪裡來

把敵人列清楚,後面的力矩預算才有依據。主要有四類:

  • 載具運動:機身的姿態變化直接透過機構傳進來,這是最大宗。
  • 氣動力:飛行中的相對氣流打在酬載上產生的力矩。這在有外露酬載的機載雲台上通常是最大的穩態負載(第三層會用數字證明)。
  • 機構摩擦與走線阻力:軸承的黏滯、集電環的拖曳、線束的彈性回復力。這一項難以精確建模,實務上用經驗比例估算。
  • 質量不平衡:重心沒對準轉軸時,重力會產生一個隨姿態變化的力矩。這一項不在力矩預算的公式裡——因為方法論假設你已經配平掉了(第五層會詳談)。

第二層:感測器裝哪裡?

這是整個設計流程裡最早發生、也最難回頭改的決策,改它要動機構佈局、走線、集電環通道數。

依據 Kennedy, P. J., & Kennedy, R. L. (2003). Direct versus Indirect Line of Sight (LOS) Stabilization. IEEE Transactions on Control Systems Technology, 11(1), 3–15:

  • 直接量測:陀螺儀裝在酬載端,量到的就是 LOS 本身。所有機構誤差(撓性、間隙、傳動背隙)都被包在控制迴路內,控制器看得到,也就補得掉。
  • 間接量測:陀螺儀裝在雲台框架(或機身)上,再用編碼器讀數與運動學關係「推算」LOS。推算過程中,編碼器與酬載之間的撓性與間隙變成看不見的誤差——控制器不知道它存在,自然補不掉。
直接量測的精度上限比較高,代價是陀螺儀要放進會轉動的酬載艙裡(增加該軸的慣量、需要更多集電環通道)。間接量測機構簡單,但你的精度天花板被機構剛性鎖死了。

這個決策沒有標準答案,但你必須知道自己選了哪一個、代價是什麼


第三層:單軸要多大力矩?

這是 Hilkert 方法論的核心,也是馬達選型計算機實作的那條公式鏈。

四個力矩來源

馬達要對抗的東西可以拆成四項,逐項估算後相加:

  • T_wind:氣動阻力產生的力矩(穩態,馬達要持續頂住)
  • T_inertia:主動修正擾動所需的加速度力矩(動態,短時峰值)
  • T_friction:摩擦與走線阻力(經驗比例)
  • 乘上 SF 安全係數,涵蓋所有沒建模的不確定性

完整範例計算

以下用計算機的預設值走一次 Pitch 軸。你可以打開計算機對照,數字會完全一樣。

已知條件:空氣密度 ρ = 1.225 kg/m³、飛行速度 v = 18 m/s、陣風係數 1.4、風阻係數 Cd = 0.45、迎風面積 A = 0.025 m²、力臂 L_arm = 0.050 m、轉動慣量 J = 0.0012 kg·m²、穩定頻寬 f_bw = 10 Hz、目標角偏移 θ_max = 1 mrad、摩擦比例 15%、安全係數 SF = 2.5、扭力常數 Kt = 0.18 Nm/A

步驟 1 — 設計風速。填進去的 18 m/s 不是直接拿去算的那個數字,要先乘上陣風係數:

v_design = 18 × 1.4 = 25.2 m/s

陣風係數把「持續巡航速度」放大成「含瞬間陣風的設計速度」。它跟後面的安全係數 SF 職責不同,不是重複打折扣。

步驟 2 — 氣動阻力

F_drag = ½ × 1.225 × 25.2² × 0.45 × 0.025 = 4.3758 N

步驟 3 — 風阻力矩。阻力本身不是力矩,要乘上它到轉軸的力臂:

T_wind = 4.3758 × 0.050 = 0.21879 N·m

步驟 4 — 峰值角加速度。這一步是在問:「若要在 10 Hz 的頻寬內把角偏移壓在 1 mrad 以內,需要多少加速度儲備?」用的是簡諧振動的加速度峰值公式:

α = (2π × 10)² × 0.001 = 3.9478 rad/s²

步驟 5 — 慣性力矩(牛頓第二定律的轉動版):

T_inertia = 0.0012 × 3.9478 = 0.00474 N·m

步驟 6 — 摩擦力矩(前兩項總和的經驗比例):

T_friction = (0.21879 + 0.00474) × 15% = 0.03353 N·m

步驟 7 — 總需求力矩

T_required = (0.21879 + 0.00474 + 0.03353) × 2.5 = 0.64264 N·m

步驟 8 — 換算電流

I_cont = 0.21879 / 0.18 = 1.2155 A(對應穩態風阻,馬達長時間要吃的)

I_peak = 0.64264 / 0.18 = 3.5702 A(對應總需求,短時機動的瞬間值)

從這組數字讀出三個直覺

第一:風阻主導。在這組參數下,三項的佔比是 T_wind 85.1%T_friction 13.0%T_inertia 只有 1.8%

這解釋了計算機裡那句提示「J 估錯兩倍對結果影響通常不到 5%」——實測一下:把 J 從 0.0012 加倍到 0.0024,T_required 從 0.64264 只變成 0.65626,差 2.1%。所以在氣動主導的機載雲台上,慣量估得精不精,遠不如把力臂 L_arm 量準來得重要。

第二:風速是平方關係。把設計風速加倍(25.2 → 50.4 m/s),T_wind 從 0.21879 變成 0.87516——正好四倍T_required 則變成 3.94 倍(不到四倍,因為 T_inertia 沒跟著變)。

第三:頻寬也是平方關係,但影響取決於佔比。f_bw 從 10 Hz 加倍到 20 Hz,α 從 3.95 變成 15.79(四倍),T_inertia 從 0.00474 變成 0.01895。但因為慣性項本來只佔 1.8%,T_required 只增加 6.4%。

同一個公式鏈,在不同設計上敏感度完全不同。大型防護罩、高速機體 → 風阻主導;重酬載、高頻寬、低速或室內應用 → 慣性主導。先看拆解表判斷自己屬於哪一種,再決定該把量測精力花在哪個參數上。

第四層:從力矩到一顆真實的馬達

算出 T_required 之後,還有一段路才會走到「該買哪顆馬達」。

力矩與電流:Kt

I = T / Kt

這不是工程近似,是馬達的物理特性——理想無刷馬達的輸出力矩與電流精確成正比。Kt 就是那個比例常數,單位 Nm/A

Kt 與 KV:同一件事的兩種單位

問題是廠商規格頁多半標 KV(每伏特能轉多快,rpm/V)而不是 Kt。兩者是同一件事的兩種表達:

Kt = 60 / (2π × KV) ≈ 9.5493 / KV

代進去可以得到一個很有用的關係:

I = T × KV / 9.5493

同樣的力矩需求,KV 越高,需要的電流越大。這就是為什麼雲台馬達普遍是低 KV(20~300 這個等級,比空拍機推進馬達低一個數量級)——雲台要的是「小電流出大力矩」,轉速根本不重要。

一個實務上的坑

這個換算式的常數會因為 KV 的定義慣例(相電壓 vs 線電壓)而差一個 2/√3 ≈ 1.155 的倍率,常見也有人用 8.27/KV。這不是誰算錯,是慣例不同。拿 Kt 反推的 KV 跟廠商標稱的 KV 對不起來時,先確認是不是這個原因,再懷疑資料有錯。

連續電流與峰值電流要分開比

這是選型時最容易誤判餘裕的地方:

  • 連續電流對應 T_wind——穩態風阻是馬達要長時間吃的,決定會不會過熱
  • 峰值電流對應 T_required——含慣性、摩擦、安全係數,是短時機動的瞬間需求

用峰值電流去比對馬達的連續額定,會低估馬達能力;用連續電流去比對峰值額定,會高估。兩條路徑要各自比對,取比較嚴格的那個結論。


第五層:從一軸到三軸

前四層講的都是單軸。三軸雲台不是「把單軸算三次」那麼簡單。

先講一件重要的事:這一層不在 Hilkert 論文裡

Hilkert 2008 定義的是已配平、視為獨立的單軸力矩預算方法。巢狀軸系的質量特性怎麼量、軸間耦合怎麼處理,那是另一個層次的問題——需要的是標準剛體力學,以及(若要精確)多體動力學。這一節是本站在該方法論之上補的操作程序,不是論文原文內容。

巢狀:外層扛內層

三軸雲台的軸是巢狀的。以常見的 Yaw ⊃ Roll ⊃ Pitch 架構為例:

  • Pitch(最內層)只推酬載艙本身
  • Roll(中間層)推酬載艙 加上 Roll 機構
  • Yaw(最外層)推酬載艙 加上 Roll 機構 加上 Yaw 機構

判定方法很具體:抓住那根軸會動的那一半,用手轉一圈,凡是跟著動的零件都算進去,沒動的不算。

但三軸的 J 不能相加

這是最常見也最隱蔽的錯誤。有兩個各自獨立的理由:

  • 重複計算J_roll 裡面已經含了整個酬載艙,J_pitch 也是。相加等於把酬載算兩次。範圍是俄羅斯娃娃,不是三塊拼圖。
  • 三軸不平行:轉動慣量的完整描述是一個張量 I,你要的純量 J 是它往某個方向的投影 J = n̂ᵀ·I·n̂。三個方向互相垂直,把三個投影值相加,就像把一個力向量的 FxFyFz 直接相加當成「這個力有多大」——單位對,物理錯。

正確做法:對每一軸重新做一次獨立量測,選取範圍逐軸擴大,且每次都把量測的參考軸設成那根軸的實際軸線。CAD 的質量特性工具會自動幫你處理平行軸定理。

還有一個陷阱:外層的 J 不一定比內層大

直覺會以為越外層扛越多、J 就越大。不一定。Yaw 軸通常是垂直線,整台雲台沿著它上下堆疊,質量離軸線都很近;Roll 軸是水平線,酬載可能吊在它下方好幾公分。距離的平方比質量重要得多,所以 Roll 的 J 大於 Yaw 是很常見的情況。

姿態相依:J 是會變的

還有一件單軸世界裡不存在的事:外層軸的 J 會隨內層軸的角度改變。Roll 打到 90° 時,酬載艙從「正下方」盪到「側邊」,Yaw 軸看到的力臂完全不同——實務上 J 相差兩倍是很正常的。

選型要用最壞姿態的值,不是中立姿態。至少要在行程極限各量一次。

配平:為什麼它是前提而不是選配

力矩預算的公式鏈裡沒有重力項。這不是漏掉,是方法論的前提假設:酬載重心已經落在轉軸上

沒配平會發生兩件事:

第一,力矩嚴重低估。400 g 酬載重心偏離轉軸 1 cm,重力力矩就是 0.4 × 9.81 × 0.01 ≈ 39 mN·m——比一顆小型雲台的整個峰值需求還大,而且是馬達要持續對抗的靜態負載(會一直發熱),不是短暫峰值。

第二,兩軸的運動方程式不再解耦。文獻的共同結論是:雲台配平良好時,方位角與俯仰角的運動方程式會解耦——每一軸的角速度只取決於施加在該軸上的淨力矩。沒配平時方程式裡會多出交叉耦合項,意味著調 Pitch 的控制器會連帶影響 Yaw 的行為,兩軸沒辦法獨立設計、獨立調參。

配平不只是「減少重力力矩」的省力技巧,它是讓三軸可以被當成三個獨立系統來處理的數學前提。這也是為什麼設計流程裡它排在馬達選型之前。

靜態配平之外:動態不平衡

把合成重心調到轉軸上,只完成了一半。那叫靜態配平Σ m·u = 0):不轉的時候不會往哪邊倒。

但如果配重跟酬載沿著轉軸方向前後錯開,兩者在旋轉時會形成一對力偶——這叫動態不平衡,數學上是慣量積 P_uw = Σ m·u·w 不為零。慣量積不為零代表主慣量軸沒有跟轉軸對齊,旋轉本身就會產生把酬載往側向拉的耦合力矩,而靜態配平完全看不出這件事。

把靜態配平的條件代進去可以得到一個很乾淨的結果:

P_uw = m_p · u_p · (w_p − w_c)

也就是說,靜態配平之後,動態配平只多要求一件事:配重與酬載落在同一個垂直於轉軸的平面上。沿轉軸錯開多少,就產生多少動態不平衡,而且是線性關係(跟 ΔJ 的平方律不同)。實務上這代表配重不該掛在支臂末端往後凸出去。

配重視覺化工具把這兩個層次都即時算給你看。


第六層:控制頻寬的天花板

f_bw 是力矩預算裡唯一一個「你自己決定」的參數,也因此最容易填出一個機構根本做不到的數字。

f_bw 不能隨便填

α = (2π·f_bw)² × θ_max 這一步對 f_bw 是平方敏感。填 10 Hz 跟填 25 Hz,慣性力矩差 6.25 倍。但更嚴重的問題是:填一個機構撐不住的頻寬,計算機還是會給你一份自信的答案。

上限是機構決定的,不是你決定的

控制頻寬的天花板由第一階結構共振頻率決定。伺服慣例的經驗法則是:

  • f_res / f_bw ≥ 5:舒適
  • f_res / f_bw ≥ 3:偏緊,可行但要小心
  • f_res / f_bw < 3:超出機構能力

注意這是經驗法則,不是特定文獻的硬性規定。

用 notch 濾波器可以把頻寬往上推一些,但陷波點會隨溫度、酬載、磨耗漂移——設計餘裕不足時,這是個脆弱的方案。

挑最低頻,不是挑最大幅值

量測到的頻率響應上通常有好幾個共振峰。約束頻寬的是最低頻的那個模態,不是幅值最大的那個。這是很容易搞錯的地方。

計算機的 f_res 欄位刻意沒有預設值——這個數字只能量測或做模態分析得到,猜一個反而會讓檢查失去意義。填了才會檢查;沒填就明說「無法檢查」,而不是假裝檢查過了。


第七層:驗證你做出來的東西真的達標

Hilkert 2008 給的是「需求端」的估計,而這篇論文自己在講穩定迴路設計時也說得很清楚:真正做出來夠不夠好,要靠實測頻率響應驗證。這一點在 Hilkert 與 Pautler 的後續論文(Reduced-Order Disturbance Observer Applied to Inertially Stabilized Line-of-Sight Control, Proc. SPIE 8052, 2011)裡講得更完整。

換句話說:

計算機回答的是「你大概需要多少力矩」。量測回答的是「你做出來的東西真的達標了嗎」。兩者缺一不可,而且後者不能用前者取代。

標準做法是把雲台裝在擾動台上,用已知的角速度輪廓激振基座,同步記錄 LOS 誤差,再用系統識別算出閉迴路抗擾頻率響應——這才是 f_bw 這個輸入欄位理論上該從哪裡量出來的地方。

還有一個容易搞錯的定義:抗擾頻寬取的是 0 dB 穿越點,不是 −3 dB。抗擾傳遞函數在低頻應該遠低於 0 dB(擾動被壓下去),穿越 0 dB 之後就代表控制器已經壓不住了。

量測完的結果會回頭修正前面的設計目標——量到的 θ_maxf_bw 與結構共振可以一鍵回填計算機。這是一個閉環,不是一條單行道。


這套方法論的邊界

誠實標示適用範圍,跟講清楚方法本身一樣重要。

Hilkert 2008 的方法論涵蓋:已配平、視為獨立單軸的力矩與頻寬需求估算。這正是「選多大馬達」這個問題的答案。

不涵蓋、但你遲早會需要的

  • 軸間耦合力矩的精確值。公式鏈把三軸當獨立系統。若沒配平好、或慣量張量主軸沒對齊轉軸,實際會有耦合項——要精確算得走 Kane 法或 Lagrange 法,或用多體動力學軟體。
  • 控制器怎麼調到最佳。這是另一整個領域,近年文獻明顯往主動抗擾控制(ADRC)與擾動觀測器集中。
  • 光學系統層級的架構設計。這是同一期期刊的姊妹論文在回答的問題:Masten, M. K. (2008). Inertially Stabilized Platforms for Optical Imaging Systems. IEEE Control Systems Magazine, 28(1), 47–64。兩篇合起來才是完整的 ISP 入門讀物。

還有一點:計算機用的是簡化的簡諧振動加速度峰值估算,不是完整動力學模型。它是設計階段的估算工具,給的是量級正確的答案,不是精確解。


怎麼跟我協作

如果你要我幫你把某顆雲台的選型做完,你手上需要準備這些數字。缺哪一項就明說缺,我不會替你猜一個填進去——猜的數字會讓整份結果失去意義。

環境條件(三軸共用)

  • 目標機體的實際飛行速度(不要用「抗風等級」,那測的是機身懸停頂風的推力,不是雲台承受的相對氣流)
  • 海拔或空氣密度(不確定就用海平面標準值 1.225)

每一軸各自需要(三軸各一組)

  • 轉動慣量 J(kg·m²)——從 CAD 質量特性量,記得逐軸重新量、範圍逐軸擴大,並取最壞姿態值
  • 迎風投影面積 A(m²)——該軸旋轉群在垂直於來流方向上的投影
  • 力臂 L_arm(m)——風壓中心到該軸軸線的垂直距離,不是外殼尺寸
  • 風阻係數 Cd——不確定就選保守值(方箱型 1.0)
  • 穩定頻寬 f_bw(Hz)——你的任務需求;若已量到結構共振,順便給我
  • 目標角偏移 θ_max(mrad)——你的精度需求

配平狀態

  • 已配平/未配平。未配平的話,給我各軸的酬載質量與重心偏移,先跑配平檢查再選型。

驅動端(如果已經有候選)

  • 驅動器的連續/峰值電流上限
  • 候選馬達的 Kt 或 KV、額定與峰值扭矩、額定與峰值電流

如果你有 CAD/STEP 檔但還沒量出這些數字,跟我說。量測程序可以先拆成逐步清單——巢狀軸系的量測範圍怎麼界定、參考軸怎麼設、怎麼用迴轉半徑 k = √(J/m) 反推檢查自己有沒有量錯,這些都是可以先講清楚再動手的。


參考文獻

  • Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46.
  • Masten, M. K. (2008). Inertially Stabilized Platforms for Optical Imaging Systems. IEEE Control Systems Magazine, 28(1), 47–64.
  • Kennedy, P. J., & Kennedy, R. L. (2003). Direct versus Indirect Line of Sight (LOS) Stabilization. IEEE Transactions on Control Systems Technology, 11(1), 3–15.
  • Hilkert, J. M., & Pautler, D. (2011). Reduced-Order Disturbance Observer Applied to Inertially Stabilized Line-of-Sight Control. Proc. SPIE 8052, Acquisition, Tracking, Pointing, and Laser Systems Technologies XXV.

相關工具雲台馬達選型計算機雲台配重視覺化計算機

An Inertially Stabilized Platform Handbook — From One Axis to Three, Turning Concepts into Numbers You Can Compute

This is the twenty-first post in the LocalPapa Notes dev-log series. Post 18 covered measuring LOS jitter, post 19 covered tuning the control loop afterward, and post 20 covered designing the mechanism itself. All three share an assumption: the reader already speaks inertially stabilized platform.

This post fills that gap. Built around the methodology in Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46, it starts from the most basic concepts and layers upward, with numbers you can verify yourself at every level.

How to use this handbook

Seven layers, shallow to deep. Each reads standalone, but the order is deliberate — every layer uses conclusions from the ones before it.

  • Layer 1: What are you stabilizing? (concepts)
  • Layer 2: Where does the sensor go? (the earliest, hardest-to-reverse decision)
  • Layer 3: How much torque does one axis need? (the core, with a fully worked example)
  • Layer 4: From torque to an actual motor
  • Layer 5: From one axis to three (nesting, coupling)
  • Layer 6: Where the control bandwidth ceiling is
  • Layer 7: How to verify what you built actually meets the target

The last section lists exactly what numbers you need on hand for us to work through a sizing problem together.


Layer 1: What are you stabilizing?

Line of sight is not the gimbal's attitude

This is the first concept people conflate. LOS is the line the sensor's optical axis points along in inertial space — not the angle of the gimbal frame relative to the airframe.

Why does that matter? Picture a drone in flight when the airframe rolls 1°. If the gimbal's encoder reading does not change at all (the frame has not moved relative to the airframe), the LOS has just moved 1° — because the whole gimbal was carried along with the airframe. The encoder faithfully reports "the frame did not move," and the image smears anyway.

A stabilized platform suppresses LOS jitter in inertial space, not the frame angle relative to the airframe. That is why the field is called inertially stabilized platforms.

So "stabilizing" is not locking the gimbal down

The intuitive move is: clamp the motors, do not let anything move, and it will be stable. The opposite is true.

When the airframe rolls 1°, a perfectly rigid gimbal (equivalent to locked) carries the LOS along with it for the full 1°. To hold the LOS still, the gimbal frame has to rotate 1° the other way relative to the airframe — it has to actively move, as fast and as accurately as the disturbance.

This is the most counter-intuitive point, and everything downstream follows once it clicks: the motor's job is cancellation, not fixation.

Why you need a gyro, and encoders are not enough

An encoder measures how far the frame turned relative to the airframe — a relative quantity. A gyro measures how fast something is rotating in inertial space — an absolute quantity.

To stabilize LOS you need to know the LOS motion in inertial space, and only a gyro provides that. Encoders have their own roles (knowing where the frame points, closing a position loop, travel-limit protection), but they cannot achieve inertial stabilization on their own.

Where the disturbances come from

Naming the adversaries makes the torque budget meaningful. Four main categories:

  • Carrier motion: airframe attitude changes transmitted straight through the mechanism. The largest contributor.
  • Aerodynamic forces: torque from relative airflow hitting the payload in flight. On airborne gimbals with exposed payloads this is usually the largest steady-state load (Layer 3 proves it with numbers).
  • Mechanical friction and cable drag: bearing stiction, slip-ring drag, wiring-harness spring-back. Hard to model precisely; in practice estimated as an empirical fraction.
  • Mass unbalance: when the center of gravity is off the rotation axis, gravity produces an attitude-dependent torque. This term does not appear in the torque budget formulas — the methodology assumes you have already balanced it out (Layer 5 covers this in depth).

Layer 2: Where does the sensor go?

This is the earliest and hardest-to-reverse decision in the whole design flow — changing it means changing the mechanical layout, the cable routing, and the slip-ring channel count.

Per Kennedy, P. J., & Kennedy, R. L. (2003). Direct versus Indirect Line of Sight (LOS) Stabilization. IEEE Transactions on Control Systems Technology, 11(1), 3–15:

  • Direct sensing: the gyro mounts on the payload, so what it measures is the LOS. Every mechanical error (flexure, backlash, compliance) is enclosed inside the control loop — the controller sees it, so the controller can cancel it.
  • Indirect sensing: the gyro mounts on the gimbal frame (or the airframe), and LOS is inferred from encoder readings plus kinematics. In that inference, any flexure or backlash between the encoder and the payload becomes an invisible error — the controller does not know it exists, so it cannot compensate for it.
Direct sensing has the higher precision ceiling, at the cost of putting a gyro inside the rotating payload pod (adding inertia to that axis, requiring more slip-ring channels). Indirect sensing keeps the mechanism simple, but your precision ceiling is locked to your structural stiffness.

There is no universally right answer here — but you must know which one you picked and what it costs you.


Layer 3: How much torque does one axis need?

This is the core of Hilkert's methodology, and the formula chain implemented in the motor sizing calculator.

Four torque sources

What the motor fights breaks into four terms, estimated separately and summed:

  • T_wind: torque from aerodynamic drag (steady-state; the motor holds against it continuously)
  • T_inertia: acceleration torque needed to actively correct disturbances (dynamic; a short-duration peak)
  • T_friction: friction and cable drag (empirical fraction)
  • Multiplied by a safety factor SF covering all the unmodeled uncertainty

The fully worked example

Here is one pass through the Pitch axis using the calculator's default values. Open the calculator alongside and the numbers will match exactly.

Given: air density ρ = 1.225 kg/m³, flight speed v = 18 m/s, gust factor 1.4, drag coefficient Cd = 0.45, frontal area A = 0.025 m², moment arm L_arm = 0.050 m, moment of inertia J = 0.0012 kg·m², stabilization bandwidth f_bw = 10 Hz, target angular deviation θ_max = 1 mrad, friction fraction 15%, safety factor SF = 2.5, torque constant Kt = 0.18 Nm/A.

Step 1 — design airspeed. The 18 m/s you typed in is not the number that goes into the formula; it gets multiplied by the gust factor first:

v_design = 18 × 1.4 = 25.2 m/s

The gust factor scales "sustained cruise speed" up to "design speed including instantaneous gusts." It has a different job from the safety factor SF applied later — this is not double-counting.

Step 2 — aerodynamic drag:

F_drag = ½ × 1.225 × 25.2² × 0.45 × 0.025 = 4.3758 N

Step 3 — wind torque. Drag is not torque; multiply by the moment arm to the rotation axis:

T_wind = 4.3758 × 0.050 = 0.21879 N·m

Step 4 — peak angular acceleration. This step asks: "to hold angular deviation under 1 mrad within a 10 Hz bandwidth, how much acceleration reserve is needed?" It uses the simple-harmonic peak-acceleration formula:

α = (2π × 10)² × 0.001 = 3.9478 rad/s²

Step 5 — inertial torque (Newton's second law, rotational form):

T_inertia = 0.0012 × 3.9478 = 0.00474 N·m

Step 6 — friction torque (an empirical fraction of the first two combined):

T_friction = (0.21879 + 0.00474) × 15% = 0.03353 N·m

Step 7 — total required torque:

T_required = (0.21879 + 0.00474 + 0.03353) × 2.5 = 0.64264 N·m

Step 8 — convert to current:

I_cont = 0.21879 / 0.18 = 1.2155 A (matches steady wind drag — what the motor carries continuously)

I_peak = 0.64264 / 0.18 = 3.5702 A (matches total demand — the instantaneous value during maneuvers)

Three intuitions from these numbers

First: drag dominates. With these parameters the split is T_wind 85.1%, T_friction 13.0%, T_inertia just 1.8%.

That explains the calculator's hint that "being off by 2× on J usually changes the result by under 5%." Test it: double J from 0.0012 to 0.0024 and T_required goes from 0.64264 to only 0.65626 — a 2.1% difference. On a drag-dominated airborne gimbal, precision on the inertia estimate matters far less than getting the moment arm L_arm right.

Second: airspeed enters squared. Double the design airspeed (25.2 → 50.4 m/s) and T_wind goes from 0.21879 to 0.87516 — exactly four times. T_required becomes 3.94× (slightly under four, because T_inertia did not change).

Third: bandwidth is also squared, but its impact depends on the share. Double f_bw from 10 Hz to 20 Hz and α goes from 3.95 to 15.79 (4×), pushing T_inertia from 0.00474 to 0.01895. But since the inertial term only held 1.8% to begin with, T_required rises only 6.4%.

The same formula chain has completely different sensitivities on different designs. Large domes and fast airframes → drag-dominated. Heavy payloads, high bandwidth, low-speed or indoor applications → inertia-dominated. Read the breakdown table first to find out which one you are, then decide where to spend your measurement effort.

Layer 4: From torque to an actual motor

Getting T_required still leaves a stretch of road before "which motor should I buy."

Torque and current: Kt

I = T / Kt

This is not an engineering approximation — it is a physical property of the motor. An ideal brushless motor's output torque is exactly proportional to current, and Kt is that constant of proportionality, in Nm/A.

Kt and KV: two units for the same thing

The problem is that vendor datasheets mostly publish KV (rpm per volt) rather than Kt. The two are the same thing expressed differently:

Kt = 60 / (2π × KV) ≈ 9.5493 / KV

Substituting gives a genuinely useful relationship:

I = T × KV / 9.5493

For the same torque demand, a higher KV means a larger current draw. That is why gimbal motors run low KV (in the 20–300 range, an order of magnitude below drone propulsion motors) — a gimbal wants lots of torque from little current, and speed is irrelevant.

One practical trap

The constant in that conversion shifts by a factor of 2/√3 ≈ 1.155 depending on the KV definition convention (phase vs line-to-line voltage), and 8.27/KV is also commonly seen. Nobody's arithmetic is wrong — the conventions differ. When a KV you derived from Kt does not match the vendor's stated KV, check this before suspecting the data is bad.

Continuous and peak current must be compared separately

This is where sizing margins get misjudged most often:

  • Continuous current matches T_wind — steady drag is what the motor carries indefinitely, and it determines whether it overheats
  • Peak current matches T_required — including inertia, friction, and safety factor; the instantaneous demand during a short maneuver

Comparing peak current against a motor's continuous rating understates the motor; comparing continuous current against a peak rating overstates it. Walk both paths independently and take the stricter conclusion.


Layer 5: From one axis to three

Everything so far has been single-axis. A three-axis gimbal is not "run the single-axis calculation three times."

First, an important disclosure: this layer is not in Hilkert's paper

Hilkert 2008 defines a torque budget for a balanced axis treated in isolation. How to measure mass properties on a nested axis set, and how to handle cross-axis coupling, are a different level of problem — requiring standard rigid-body mechanics, and (for precision) multibody dynamics. This section is a procedure this site adds on top of that methodology, not content from the paper.

Nesting: outer axes carry inner ones

The axes of a three-axis gimbal are nested. Taking the common Yaw ⊃ Roll ⊃ Pitch arrangement:

  • Pitch (innermost) drives only the payload pod
  • Roll (middle) drives the payload pod plus the Roll mechanism
  • Yaw (outermost) drives the payload pod plus the Roll mechanism plus the Yaw mechanism

The determination method is concrete: grab the moving half of that axis, turn it by hand, and every part that comes along counts; every part that stays still does not.

But you cannot add the three J values together

This is the most common and most insidious error. Two independent reasons:

  • Double counting: J_roll already contains the entire payload pod, and so does J_pitch. Adding them counts the payload twice. The scopes are Russian dolls, not three puzzle pieces.
  • The three axes are not parallel: the complete description of rotational inertia is a tensor I, and the scalar J you want is its projection onto a direction, J = n̂ᵀ·I·n̂. Three mutually perpendicular directions; adding the three projections is like adding a force vector's Fx, Fy and Fz to get "how big the force is" — the units work, the physics does not.

The correct approach: perform an independent measurement for each axis, with the selection scope expanding axis by axis, and each time set the measurement reference axis to that axis's actual line in space. Your CAD mass-properties tool handles the parallel-axis theorem for you.

Another trap: the outer axis does not necessarily have larger J

Intuition says the outer axis carries more, so its J must be bigger. Not necessarily. The Yaw axis is usually vertical with the whole gimbal stacked along it, so mass sits close to the axis line; the Roll axis is horizontal with the payload possibly hanging several centimeters below it. The square of the distance matters far more than the mass, so Roll's J exceeding Yaw's is entirely common.

Attitude dependence: J is not a constant

Here is something that does not exist in the single-axis world: an outer axis's J changes with the inner axes' angles. When Roll swings to 90°, the payload pod moves from "directly below" to "out to the side," and the Yaw axis sees a completely different moment arm — a 2× difference in J is entirely normal.

Size for the worst-case attitude, not the neutral one. At minimum, measure once at each travel limit.

Balancing: why it is a prerequisite, not an option

The torque budget formula chain has no gravity term. That is not an omission — it is the methodology's premise: the payload's center of gravity already sits on the rotation axis.

Skipping it causes two problems:

First, torque gets badly underestimated. A 400 g payload whose CG sits 1 cm off-axis produces a gravity torque of 0.4 × 9.81 × 0.01 ≈ 39 mN·m — larger than the entire peak demand of a small gimbal, and unlike a peak it is a static load the motor holds continuously, generating heat the whole time.

Second, the equations of motion for two axes stop being decoupled. The shared conclusion across the literature is that when a gimbal is properly balanced, the azimuth and elevation equations of motion decouple — each axis's angular rate depends only on the net torque applied to that axis. Without balancing, cross-coupling terms appear, meaning tuning the Pitch controller inadvertently affects Yaw behavior, and the two axes can no longer be designed or tuned independently.

Balancing is not merely a labor-saving trick for reducing gravity torque. It is the mathematical premise that lets three axes be treated as three independent systems. That is why it sits before motor sizing in the design flow.

Beyond static balance: dynamic unbalance

Driving the combined CG onto the rotation axis only gets you halfway. That is static balance (Σ m·u = 0): it will not tip one way when standing still.

But if the counterweight sits fore or aft of the payload along the rotation axis, the pair forms a couple as soon as it spins — that is dynamic unbalance, mathematically a non-zero product of inertia P_uw = Σ m·u·w. A non-zero product of inertia means the principal axes of inertia are not aligned with the rotation axis, so rotation itself generates a cross-coupling torque pulling the payload sideways — and static balancing gives you no visibility into it at all.

Substituting the static-balance condition gives a very clean result:

P_uw = m_p · u_p · (w_p − w_c)

In other words, once statically balanced, dynamic balance asks for only one more thing: the counterweight and the payload must lie in the same plane perpendicular to the rotation axis. However far apart they sit along the axis is how much dynamic unbalance you get — a linear relationship, unlike the square law governing ΔJ. In practice this means the counterweight should not stick out behind on the end of an arm.

The balance visualizer computes both layers live.


Layer 6: The control bandwidth ceiling

f_bw is the only parameter in the torque budget that you choose, which is exactly why it is the easiest one to fill in with a number the mechanism cannot actually deliver.

f_bw is not a free parameter

The step α = (2π·f_bw)² × θ_max is squared-sensitive to f_bw. Entering 10 Hz versus 25 Hz changes the inertial torque by 6.25×. But the more serious problem is: enter a bandwidth the structure cannot support and the calculator will still hand you a confident answer.

The ceiling is set by the mechanism, not by you

The control bandwidth ceiling is determined by the first structural resonance frequency. The servo rule of thumb:

  • f_res / f_bw ≥ 5: comfortable
  • f_res / f_bw ≥ 3: tight but workable, with care
  • f_res / f_bw < 3: beyond what the mechanism can do

Note that this is a rule of thumb, not a hard requirement from any specific paper.

A notch filter can push the bandwidth up somewhat, but the notch frequency drifts with temperature, payload and wear — with thin design margin, that is a fragile solution.

Pick the lowest frequency, not the largest amplitude

A measured frequency response typically shows several resonant peaks. The one that constrains bandwidth is the lowest-frequency mode, not the highest-amplitude one. This is easy to get backwards.

The calculator's f_res field deliberately has no default value — this number can only come from measurement or modal analysis, and guessing one would make the check meaningless. Fill it in and it checks; leave it blank and it says plainly that it cannot check, rather than pretending it did.


Layer 7: Verifying what you built actually meets the target

Hilkert 2008 provides a demand-side estimate, and that paper is itself explicit when discussing stabilization-loop design: whether what you built is actually good enough has to be verified with a measured frequency response. The follow-up paper by Hilkert and Pautler (Reduced-Order Disturbance Observer Applied to Inertially Stabilized Line-of-Sight Control, Proc. SPIE 8052, 2011) develops this further.

In other words:

The calculator answers "roughly how much torque do you need." Measurement answers "does what you built actually meet the target." You need both, and the second cannot be substituted by the first.

The standard approach mounts the gimbal on a rate table, excites the base with a known angular-rate profile, records LOS error simultaneously, and uses system identification to derive the closed-loop disturbance rejection frequency response — which is where the f_bw input field should, in principle, have come from in the first place.

One definition that is easy to get wrong: disturbance rejection bandwidth is taken at the 0 dB crossing, not −3 dB. The disturbance transfer function should sit well below 0 dB at low frequency (disturbance suppressed); crossing 0 dB is where the controller has stopped keeping up.

Measurement results feed back into the earlier design targets — measured θ_max, f_bw and structural resonance all backfill into the calculator in one click. This is a loop, not a one-way street.


Where this methodology stops

Marking the boundary honestly matters as much as explaining the method.

Hilkert 2008's methodology covers: torque and bandwidth demand estimation for a balanced axis treated in isolation. That is precisely the answer to "how big a motor."

Not covered, but you will eventually need it:

  • Precise cross-axis coupling torque. The formula chain treats the three axes as independent systems. If balancing falls short, or the inertia tensor's principal axes are not aligned with the rotation axes, real coupling terms appear — computing them precisely means Kane's method, Lagrangian mechanics, or multibody dynamics software.
  • How to tune the controller optimally. That is an entire separate field; recent literature clusters heavily around Active Disturbance Rejection Control (ADRC) and disturbance observers.
  • Optical-system-level architecture design. That is what the companion paper in the same journal issue answers: Masten, M. K. (2008). Inertially Stabilized Platforms for Optical Imaging Systems. IEEE Control Systems Magazine, 28(1), 47–64. The two together are the actual complete ISP primer.

One more: the calculator uses a simplified simple-harmonic peak-acceleration estimate, not a full dynamic model. It is a design-stage estimating tool that gives order-of-magnitude-correct answers, not exact solutions.


How to work through this with me

If you want help sizing a specific gimbal, here is what you need on hand. Say so plainly if something is missing — I will not guess a value and fill it in, because a guessed number makes the whole result meaningless.

Environment (shared across all three axes)

  • The target airframe's actual flight speed (do not use a "wind resistance rating" — that measures the airframe's thrust against headwind while hovering, not the relative airflow the gimbal sees)
  • Altitude or air density (use the sea-level standard 1.225 if unsure)

Per axis (one set for each of the three)

  • Moment of inertia J (kg·m²) — from CAD mass properties; remeasure per axis with expanding scope, and take the worst-case attitude value
  • Frontal projected area A (m²) — the projection of that axis's rotating group perpendicular to the airflow direction
  • Moment arm L_arm (m) — the perpendicular distance from the center of pressure to that axis's line, not the housing dimension
  • Drag coefficient Cd — pick the conservative value (boxy 1.0) if unsure
  • Stabilization bandwidth f_bw (Hz) — your mission requirement; if you have measured the structural resonance, send that too
  • Target angular deviation θ_max (mrad) — your precision requirement

Balance state

  • Balanced or not. If not, send the payload mass and CG offset per axis and we run the balance check before sizing.

Drive side (if you already have candidates)

  • The driver's continuous and peak current limits
  • Candidate motors' Kt or KV, rated and peak torque, rated and peak current

If you have a CAD/STEP model but have not extracted these numbers yet, say so — the measurement procedure can be broken into a step-by-step checklist first.


References

  • Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46.
  • Masten, M. K. (2008). Inertially Stabilized Platforms for Optical Imaging Systems. IEEE Control Systems Magazine, 28(1), 47–64.
  • Kennedy, P. J., & Kennedy, R. L. (2003). Direct versus Indirect Line of Sight (LOS) Stabilization. IEEE Transactions on Control Systems Technology, 11(1), 3–15.
  • Hilkert, J. M., & Pautler, D. (2011). Reduced-Order Disturbance Observer Applied to Inertially Stabilized Line-of-Sight Control. Proc. SPIE 8052, Acquisition, Tracking, Pointing, and Laser Systems Technologies XXV.

Related tools: Gimbal Motor Sizing Calculator · Gimbal Balance Visualizer

探索 61 個隱私優先的瀏覽器工具
全程本地運算、檔案不上傳。
前往 LocalPapa →
Explore 61 privacy-first browser tools
Everything runs locally — your files never leave your device.
Visit LocalPapa →

想看英文版?點右上角 EN 切換語言。

Prefer Chinese? Tap at the top-right to switch.