移動機器人中的現代控制理論之狀態空間表示式
狀態空間表示式一般是現代控制理論的第一章,關於課程可以詳細檢視:
https://zhangrelay.blog.csdn.net/article/category/6161998
所有課程相關資料連結如下:
https://zhangrelay.blog.csdn.net/article/details/51195007
在講述課程時,發現部分學生對於狀態空間模型概念並沒有非常形象的認知,機械的記憶公式,從而失去學習課程的樂趣,探索控制理論的熱情。其實,現代控制理論非常簡單,整本書都圍繞如下這個公式展開:
$$\left\{\begin{matrix}
\dot{x}=Ax+Bu
\\
y=Cx+Du
\end{matrix}\right.$$
然後,一般而言,教材會有R-L-C電路或者帶彈簧阻尼的機械運動模型,刷一波上述公式,嗯,沒辦法都是這樣的。
放個圖,大家感受一下:
然後,經過一系列推導,得到如下公式:
對應公式:$$ \dot{x}=Ax+Bu $$
想要了解更多資訊,參考如下連結:
http://www.mbstudent.com/control-theory-state-space-representation-RLC-circuit-example-1.html
但是,不生動不形象啊~講的人痛苦,聽的人無趣。索性換一個例子吧:
上圖中有兩個機器人,相對座標系等先不講,此處只關注單個機器人在地面上的運動特性。
機器人左輪和右輪的運動使得機器人在環境空間狀態發生變化。大部分低成本平地兩輪機器人都是類似的模型,如掃地機器人,巡邏機器人等。
具體公式推導,可以參考:
http://planning.cs.uiuc.edu/node659.html
更具體過程稍後補充:
第一種(全域性座標系):
$$\begin{pmatrix}
\dot{x}
\\
\dot{y}
\\
\dot{\theta}
\end{pmatrix}
=
\begin{pmatrix}
\cos \theta & 0 \\
\sin \theta & 0\\
0 & 1
\end{pmatrix}
\begin{pmatrix}
\upsilon \\
\omega
\end{pmatrix}$$
第二種(機器人座標系):
$$\begin{pmatrix}
\upsilon _{x}
\\
\upsilon _{y}
\\
\dot{\theta}
\end{pmatrix}
=
\begin{pmatrix}
r/2 & r/2 \\
0 & 0\\
-r/L & r/L
\end{pmatrix}
\begin{pmatrix}
\omega _{l}\\
\omega _{r}
\end{pmatrix}$$
上述圖片為引用。
這時候會發現?說好的狀態空間模型怎麼不對勁呢???只有:$$ \dot{x}= Bu $$
這是分割線
思考一下,機器人難道沒有慣性嗎?當停止電機供電,機器人是立刻停止,還是需要滑行一小段距離?
上述模型是運動學模型,是經過簡化的,更真實的模型如下:
$$\left\{\begin{matrix}
\dot{x}=Ax+Bu
\\
y=Cx
\end{matrix}\right.$$
其中:
$$A=\begin{bmatrix}
a _{1} & 0 & 0\\
0 & 0 & 1\\
0 & 0 & a _{2}
\end{bmatrix} $$
$$B=\begin{bmatrix}
b _{1} & b _{1}\\
0 & 0\\
b _{2} & -b _{2}
\end{bmatrix}$$
$$C=\begin{bmatrix}
1 & 0 & 0\\
0 & 1 & 0
\end{bmatrix}$$
$$a_{1}=-2c/(Mr^{2}+2I_{\omega }), a_{2}=-2cl^{2}/(I_{\upsilon }r^{2}+2I_{\omega }l^2)$$
$$b_{1}=kr/(Mr^{2}+2I_{\omega }), b_{2}=krl/(I_{\upsilon }r^{2}+2I_{\omega }l^2)$$
各變數具體含義:
Iv 機器人重心的轉動慣量 Moment of inertia around the C.G. of robot
M 機器人質量 Mass of the robot
l 左右輪與機器人重心之間的距離 Distance between left and right wheel and the c.g. of robot
Iw 車輪轉動慣量 Moment of inertia of wheel
c 粘滯摩擦係數 Viscous friction factor
r 車輪半徑 Radius of wheel
k 驅動增益係數 Driving gain factor
思考:為何A為系統矩陣,B為控制(輸入)矩陣,C為輸出(感知)矩陣?
此文目前為草稿,待後續完善。
相關文章
- 機器人系統的方程求解(現代控制理論2)機器人
- 順序控制和狀態機之間的差別
- Python動態引數、名稱空間、函式巢狀、global和nonlocalPython函式巢狀
- [C# Expression] 之動態建立表示式C#Express
- Spring Security實現基於RBAC的許可權表示式動態訪問控制Spring
- C++ 接受狀態變數的lambda表示式C++變數
- oracle 表移動表空間Oracle
- Oracle表移動表空間Oracle
- 人工智慧之機器學習線代基礎——核空間(Kernel Space)人工智慧機器學習
- 演算法~簡單的計算器(驗證數學表示式是否合法~“狀態機思想”)演算法
- 動態拼接表示式——ExpressionExpress
- Ubuntu 20.04.2 KVM虛擬機器動態遷移實現(下)Ubuntu虛擬機
- Ubuntu 20.04.2 KVM虛擬機器動態遷移實現(上)Ubuntu虛擬機
- 笛卡爾空間力反饋的關節速度控制之機器人運動學庫KDL安裝及使用機器人
- 遇見山河 預見空間大資料移動互聯時代!大資料
- 國防機器人中的精密微電機機器人
- 通過建立動態型別 動態構建Expression Select表示式來控制Property可見性型別Express
- 數字樣機:飛行器狀態控制系統模擬
- 個人中心釋出狀態無法同步到QQ
- Android 沉浸式狀態列的實現Android
- JS 控制 兩個ListBox之間選擇移動項 (轉發)JS
- 利用 DynamicLinq 實現簡單的動態表示式構建查詢
- 給虛擬機器的增加空間虛擬機
- 現代 ABAP 程式語言中的正規表示式
- 文章 | 吃透 <正規表示式>(理論+多圖示例)
- 2022-05-07-無條件、空間靜態、空間動態kernel核密度工具
- 橫版遊戲的攝像機移動理論與實踐(上)遊戲
- 函式的動態引數 及函式巢狀函式巢狀
- Android-沉浸式狀態列的實現Android
- 2022-05-18-空間靜態kernel核密度、空間動態kernel核密度工具更新
- 利用正規表示式提取固定字元之間的字串字元字串
- 線性代數應該這樣學6:積空間,商空間,多項式
- 動態規劃——用二進位制表示集合的狀態壓縮DP動態規劃
- Telegram 聊天機器人中獲取照片機器人
- 計算機系統3-> 現代計算機基石 | 圖靈機理論計算機圖靈
- 分散式設計理論之CAP分散式
- Virtualbox 《虛擬機器空間整理》虛擬機
- Ts + React + Mobx 實現移動端瀏覽器控制檯React瀏覽器