Feedback Linearization
- 又稱: exact linearization, nonlinear dynamic inversion, NDI
- 類別: Control › Feedback control
- 標籤: nonlinear-control, model-based-control, manipulator-control, dynamics, trajectory-tracking
一種非線性控制技術,利用系統模型透過狀態回饋抵消其非線性,使標準的線性控制設計可以套用到結果上。
定義
回饋線性化(feedback linearization)是一種以代數方式把非線性系統轉換成線性系統,藉此加以控制的方法。控制器利用動態模型計算出一個輸入,抵消非線性項並引入一個新的虛擬輸入,透過這個虛擬輸入,閉迴路系統的行為就像一個簡單的線性系統,通常是一串積分器。接著再為這個線性系統設計傳統的線性控制器,例如比例-微分控制律或極點配置。與在操作點附近線性化不同,只要模型成立,這種抵消就是精確的。
在機器人領域,最為人熟知的例子是機器手臂的計算力矩控制。手臂的剛體動力學為 M(q)q̈ + C(q, q̇)q̇ + g(q) = τ。選擇力矩 τ = M(q)v + C(q, q̇)q̇ + g(q),即可抵消慣性項、科氏項與重力項,讓每個關節都只剩 q̈ = v。新的輸入 v 可以是作用在關節位置與速度誤差上的 PD 控制律再加上期望加速度,得到解耦的線性誤差動態,其增益可直接依期望的響應來選定。操作空間控制則在末端執行器座標中套用同樣的想法。
理論上會區分輸入-狀態線性化(讓整個狀態變成線性)與輸入-輸出線性化(只將輸入與某個選定輸出之間的關係線性化)。在輸入-輸出的情況下,會對輸出持續微分直到輸入出現,微分的次數就是相對階數。若相對階數低於系統階數,就有一部分動態,也就是內部動態或零動態,對輸出是隱藏的,而這部分必須穩定,此方法才能奏效;這部分不穩定的系統稱為非最小相位系統。
主要的弱點是對模型的依賴。只有模型精確,抵消才會精確;質量、摩擦或致動器行為上的誤差會留下殘餘的非線性,必須由線性外迴路吸收。實務上的控制器會加入強健項或適應項、積分作用,或殘餘動態的學習模型。當所需力矩超出致動器所能提供的範圍時,輸入飽和也會破壞這種抵消。
為何重要
回饋線性化把非線性的機器人動力學與龐大的線性控制工具箱連結起來,這正是計算力矩控制至今仍是機器手臂的標準方法、許多足式與空中控制器也採用同一想法的原因。了解它的假設,既能說明以模型為基礎的控制器為何能精確追蹤,也能說明模型有誤時它們為何會表現變差。
主要應用
- 計算力矩控制 — 機器手臂的軌跡追蹤
- 操作空間控制 — 在任務座標中控制末端執行器的運動與力
- 四旋翼控制 — 抵消非線性的姿態與推力動態以進行追蹤
- 雙足行走 — 在混合零動態控制器中將選定的輸出線性化
- 移動機器人路徑跟隨 — 將輪式載具的運動學模型線性化
實際應用
控制機器手臂的團隊通常會用 Pinocchio 或 RBDL 等剛體動力學函式庫,從 URDF 建立動態模型,透過測試動作識別慣性與摩擦參數,並在即時迴圈中於關節扭矩層級實作計算力矩控制。接著,他們會為每個關節調整外迴路 PD 增益,以得到期望的剛性與阻尼,並比對指令扭矩與量測扭矩,找出模型不準確之處。當高速或負載下的追蹤表現變差時,他們會修正模型、加入摩擦補償或加入一個學習而得的殘差項,而不是單純提高回饋增益。
常見誤解
- 回饋線性化等同於在操作點附近線性化 — 它是利用完整模型,在一個區域內精確抵消非線性,而不是在某一點附近近似
- 因為閉迴路是線性的,所以結果很強健 — 它仰賴準確的模型,模型誤差會留下未被抵消的非線性項
- 每個非線性系統都能回饋線性化 — 系統結構必須滿足一些條件,而非最小相位系統無法直接處理
- 更高的回饋增益能修正模型誤差 — 它們可能掩蓋誤差,卻會放大雜訊並激發未建模的撓性;改進模型通常更有效
誰需要了解
- 從事機器手臂與足式機器人的控制工程師
- 學習非線性控制與以模型為基礎之控制的機器人學生
- 無人機飛行控制器開發者
- 將學習模型與以模型為基礎之控制結合的研究人員
相關技術
- 計算力矩控制(Computed Torque Control)
- 操作空間控制(Operational Space Control)
- Pinocchio
- 微分平坦性(Differential Flatness)
- 適應控制(Adaptive Control)
- 滑動模式控制(Sliding Mode Control)
相關術語
相關專案
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
- frax: JAX library for fast, differentiable robot kinematics, dynamics and inverse kinematics
影片
- Easy Introduction to Feedback Linearization - Control Engineering Tutorials: Aleksandar Haber PhD