【控制理論】【Matlab】利用System identification App辨識對象模型

做控制的時候有一個對象的數學模型非常重要,有時候對機理搞不太清楚或者很難得建立一個模型的時候可以藉助實驗數據直接做黑箱建模。MATLAB中提供了System identification工具可以很方便地做模型辨識,下面具體講一下怎麼操作的。

數據導入

打開matlab->App中的System identifacation:
在這裏插入圖片描述
導入的數據可以包括時域的,也可以包括頻域的。填入相應的輸入變量名,輸出變量名,採樣時間。import導入後在主界面的data views中會生成對應的圖形。
在這裏插入圖片描述
按下主界面中的time plot可以顯示數據,檢查數據是否正確很方便。
有時候可能需要把數據拉到零附近,preprocess中提供了remove means。
在這裏插入圖片描述
要對數據進行操作時,都要把數據拖到working data中才能生效
preprocess中提供了select range可以把數據分成兩個部分,一個用來辨識模型,一個用來驗證模型。
我的數據一共有1000個採樣點,分成兩個部分,選擇第一個用來辨識的數據爲1-500,第二個用來驗證的部分爲501-1000,修改名字後insert。
在這裏插入圖片描述
重新調整一下組件:
在這裏插入圖片描述

數據建模

1、使用Quick start估算線性模型
它將自動生成包括imp的階躍響應、spad的頻率響應、以及arxqs的四階ARX模型。mathworks的官方解釋如下:

imp — Step response over a period of time using the impulseest algorithm.
spad — Frequency response over a range of frequencies using the spa algorithm. The frequency response is the Fourier transform of the impulse response of a linear system.By default, the model is evaluated at 128 frequency values, ranging from 0 to the Nyquist frequency.
arxqs — Fourth-order autoregressive (ARX) model using the
arx algorithm.

Model output窗口會產生一個擬合效果的列表,89.44代表辨識的模型和數據之間的擬合程度是89.44%。
Quick start的主要目的是通過觀察step輸出,頻率響應是否具有線性特性,以便決定是否可以用線性模型來對數據建模。
在這裏插入圖片描述
2、利用ARX確定模型的階次
選擇Estimate中的Polynomial models,orders中的階次na nb nk分別代表系統的極點、零點以及時延。這裏選取一個範圍1:10用來找到一個比較好的階次。
在這裏插入圖片描述
點擊Estimate後將彈出下面的窗口,縱軸是Unexplained output variance,值越低表示當前階次配比能更好地擬合模型。紅色、綠色、藍色分別代表三種不同評價指標下最好的階次選擇。
在控制理論中傾向於選擇低階的模型,第三個條形圖的效果和綠色條形圖的效果差不多,階次比較合理,na =2,nb=2,bk=3。
在這裏插入圖片描述
3、辨識傳遞函數模型
有了模型階次的大概範圍之後,可以選擇傳遞函數模型進行辨識。
延時時間等於(nk1)Ts=(31)0.08=0.16(n_k-1)*T_s=(3-1)*0.08=0.16,Ts是數據的採樣時間
在這裏插入圖片描述
4、用狀態空間對模型進行辨識
選擇模型的階次,修改Estimation options->focus爲用以優化輸出仿真的模型
在這裏插入圖片描述
5、根據模型辨識的效果選擇一個模型
在這裏插入圖片描述
雙擊對應的圖表就可以看到對應模型的參數。
在這裏插入圖片描述

有了模型之後設計控制器或者用來分析對象的動態特性就非常方便了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章