摘 要: 介紹了基于遞推最小二乘法進行系統辨識的基本原理,對給定的實際輸入輸出數據運用MATLAB的M語言編寫遞推最小二乘算法,最后給出相應的仿真結果和分析,并對得到的模型進行驗證。
關鍵詞: 系統辨識;遞推最小二乘;MATLAB;仿真
對于一個系統,在輸入輸出數據的基礎上,從一組給定模型類中,確定一個與所測系統等價的模型,這種方法叫做辨識。辨識是在實際應用中獲取系統模型的最為重要的手段之一,也是數學模型和實際應用聯系的紐帶。而最小二乘類辨識則是在給定的結構框架下,利用模型輸出與實際輸出間的誤差不斷糾正模型參數,最終得到最優模型的過程[1]。在使用最小二乘法進行參數估計時,為了實現實時控制,必須優化成遞推算法RLS(Recursive Least Square),主要用于在線辨識。MATLAB是一種面對科學計算、可視化以及交互式程序設計的高科技計算環境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易于使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統非交互式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平[2]。
本文使用MATLAB2009a的M語言對遞推最小二乘算法進行編程,最后使用MATLAB自帶的辨識工具箱SIT(System Identification Toolbox)對得到的仿真結果進行了驗證。
1 線性系統辨識[3]
1.1 問題描述
其對應的辨識問題的表達形式如圖2所示。
圖2中,h(k)和z(k)是模型的輸入輸出變量,在離散點上必須是可觀測的;v(k)為模型噪聲;?茲是未知模型參數。
2 仿真實例[4]
2.1 選擇輸入信號
為了準確辨識系統參數,對輸入信號有如下要求:在辨識時間內,過程的動態必須被輸入信號持續激勵。從譜分析角度看,這就意味著信號頻帶能覆蓋系統的頻帶寬度。除此之外還要求信號有可重復性,不能是不可重復的隨機噪聲,因此本文選擇滿足上述要求的M序列作為輸入信號。
2.2 先驗知識
在對給定的過程進行辨識之前,掌握如下先驗知識:純遲延d=0;模型如式(7)所示,且數據長度L=1 000,na=nb=4。
2.4 模型驗證
本文使用MATLAB自帶的辨識工具箱SIT(System Identification Toolbox)對得到的仿真結果進行驗證。在MATLAB2009a的Command Window中輸入ident命令,SIT被打開。需將給定的輸入輸出數據設置為該模塊的輸入輸出方可進行驗證。結果如圖4所示。
由圖3(c)和圖4(c)中所得的模型參數可以看出,本文編寫的遞推最小二乘算法可以快速準確地估計出系統參數,獲得較好的辨識結果。
本文介紹了基于遞推最小二乘法進行系統辨識的基本原理,對給定的實際輸入輸出數據運用MATLAB的M語言編寫遞推最小二乘算法,最后給出相應的仿真結果和分析,并對得到的模型進行了驗證。遞推最小二乘法的算法簡單,能減少計算量,減少數據在計算機中占用的內存,并實時辨識出系統動態特性以供實時控制和預報。
參考文獻
[1] 倪博溢,蕭德云.MATLAB 環境下的系統辨識仿真工具箱[J].系統仿真學報,2006,18(6):1493-1496.
[2] 石賢良,吳成富.基于MATLAB的最小二乘法參數辨識與仿真[J].微處理機,2005,26(6):44-46.
[3] 方崇智,蕭德云.過程辨識[M].北京:清華大學出版社,1988.
[4] 張志涌.精通MATLAB6.5版[M].北京:北京航空航天大學出版社,2003.