基于Segbot動態(tài)模型如何實現(xiàn)控制器設計和軌跡跟蹤
去年,一個ME 461小組的Segbot項目專注于自適應平衡,并沒有明確使用Segbot動態(tài)的完整模型;這個項目的目標是基于模型的控制器設計和軌跡跟蹤,以及自平衡。我們推導出Segbot的動態(tài)模型,對其進行線性化,并支持游戲控制器的實時控制。
LQR控制器提供了比同類手動調(diào)諧PID控制器更強的魯棒性保證,并確保無限增益裕度和至少60度相位裕度。此外,L1控制器有助于自動補償未建模的動力學和干擾的影響,例如不平坦的地形、質(zhì)量變化和質(zhì)心的移動。首先,我們想推導出Segbot的動態(tài)模型。由于Segbot的不對稱結構和復雜的幾何形狀,我們通過實驗測量了關鍵參數(shù)。特別地,我們通過基于鐘擺的測量來估計轉動慣量。我們還通過直流電機模型測量了電機電壓與車輪輸出轉矩之間的關系。在我們的模型中測量Segbot的基本參數(shù)后,我們得到了它的非線性動力學。從那里,我們線性化了關于直立平衡的模型,產(chǎn)生了Segbot動力學的連續(xù)時間狀態(tài)空間表示,這將用于以下部分的控制設計。
然后,我們擴展了LabVIEW框架,以支持使用游戲控制器(有線或無線)進行實時控制。操縱桿運動和按鍵的用戶輸入通過Windows API捕獲,并映射到高級Segbot命令,從而實現(xiàn)對機器人行為的直觀手動控制。該界面允許用戶在實驗過程中交互式地命令Segbot,并便于在用戶指定的輸入下測試平衡和軌跡跟蹤。
在我們的最終系統(tǒng)中,Segbot在不平坦的地形、質(zhì)量變化和質(zhì)心變化的條件下表現(xiàn)出了更大的穩(wěn)定性。我們設置了不同高度的木板來制造不平坦的地形,Segbot通過這些木板而不會翻倒。我們還在Segbot運行過程中不斷添加電池(而不是一開始就添加電池),Segbot沒有翻轉或崩潰。
傳感器和執(zhí)行器
算法(L1 +等)
Segbot被建模為一個欠驅動的兩輪倒立擺,其中:
1)線性化模型用于控制設計
線性化關于直立(零)平衡的segbot動力學:
狀態(tài)和輸入:
η = [x, x_dot, θ, θ_dot, ψ, ψ_dot]^T
u = [T_L, T_R]^T
線性狀態(tài)空間形式:
η_dot = A η + B u,其中A和B是基于隔離機器人物理參數(shù)的矩陣值
2)積分LQR基線(軌跡跟蹤)
定義跟蹤誤差積分狀態(tài):
Z_dot = η?η_ref
增廣狀態(tài):
X_aug = [z;η)
等方面目標:
J =∫(x_aug^ tq x_aug + u^ tr u) dt
LQR反饋律(連續(xù)時間):
u_LQR =?K x_aug
在代碼中,這被實現(xiàn)為兩個增益行(每個車輪一個):
u_b_left = -K_left·x
u_b_right = -K_right·x
控制器狀態(tài)直接由板載傳感+集成商構建,例如:
傾斜度和傾斜率來自IMU處理(卡爾曼估計+短平均),車輪編碼器給出速度和車輪差(轉向),積分狀態(tài)累積跟蹤誤差以獲得更好的穩(wěn)態(tài)跟蹤。
代碼使用梯形積分的積分狀態(tài):
I[k] = I[k-1] + Ts * (e[k-1] + e[k]) / 2
增益K來自于最小化
J =∫(x^ tq x + u^ tr u) dt
從代數(shù)里卡第方程解得到K。
3) L1自適應增強(擾動魯棒性)
模型擾動/不確定性:
η_dot = A η + B u + B σ(t)
完全控制:
u = u_LQR + u_L1
核心L1思想:在保持魯棒性的同時允許快速適應
u_L1(s) =?C(s) σ_hat(s)
發(fā)送給電機的總命令:
u_left = u_b_left + u_L1_left
u_right = u_b_right + u_L1_right
狀態(tài)預測器(離散時間更新每個樣本):
x_hat[k] = x_hat[k-1] + Ts * x_hat_dot[k-1]
帶有以下形式的預測導數(shù):
x_hat_dot = A x + Bm (x_b + u_L1 + sigma_m_hat) + Bum sigma_um_hat + Ae (x_hat - x)
不確定性估計(來自預測誤差):
x_x = x_hat - x
sigma_hat = G * x_tilde
分為“匹配”(影響輸入通道)和“不匹配”部分:
Sigma_m_hat = sigma_hat的前兩個分量
sigma_um_hat =剩余組件(通過B_um映射)
帶低通濾波器的帶寬限制自適應控制
u_L1 [k] = -(α* u_L1 (k - 1) +(1 -α)* sigma_m_hat [k])
= exp(- * Ts)
這種低通濾波使快速估計和濾波控制動作能夠保持魯棒性裕度。
本文編譯自hackster.io





