系統辨識第1章_第1頁
系統辨識第1章_第2頁
系統辨識第1章_第3頁
系統辨識第1章_第4頁
系統辨識第1章_第5頁
已閱讀5頁,還剩109頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1系統辨識第一章緒論2

系統辨識課程的基本要求1、掌握系統辨識方法的基本概念、原理與方法2、針對實際的工程問題,能夠用系統辨識方法進行分析與設計3、能夠應用Matlab編程實現系統辨識,解決實際問題(研究生為重點)3授課老師王石1-16課時(1-10周,研究生)電話件:1447633352@

譚建豪17-32課時(本科)4

考試方式:開卷(大作業,研究生)作業:電子版,通過郵件(本)紙質(研究生)平時50%考試50%注意事項 SystemIdentification

系統辯識,又譯為“系統識別”,目前尚無公認的統一定義。《中國大百科全書》中記述為:系統辯識是根據系統的輸入/輸出時間函數,確定系統行為的數學模型,是現代控制理論的一個分支(中國大百科自動控制卷486-488頁)。5

通俗地說,系統辯識就是:利用對未知系統的試驗數據或在線運行數據(輸入/輸出數據)以及原理和原則建立系統的(數學)模型的科學。67

系統辨識是控制論的一個分支.系統-由多個(至少2個)有相互關聯的元素組成的集合。系統的特點:

至少包含2個(以上)元素;

具有關聯性

具有明確的界限.8910系統的模型:根據一定的目的,對現實世界的一種抽象和簡化。模型的相似:行為的相似性模型的特點:針對性(目的性),通用性結構的相似性、功能的相似、控制方式模型分類:(1)實物模型11(2)物理模型1213其中也包括半實物模型1415(3)數學模型16(4)邏輯模型17181920(1)概念模型質點動力學模型:牛頓第二運動定律物體加速度的大小跟物體受到的作用力成正比,跟物體的質量成反比,加速度的方向跟合外力的方向相同模型按進程與演化分為:21(2)形式化模型數學公式:F=ma

形式語言表達22(3)可執行模型/實現模型可執行的,可以進行測試的模型23

系統辨識理論是一門應用范圍很廣的一門學科,其應用已經遍及許多領域。系統辨識的提出24

目前不僅工程控制對象需要建立數學模型,而且在其它領域,如生物學、生態學、醫`學、天文學以及社會經濟學等領域也需要建立數學模型,并根據數學模型來確定最終控制決策。對于上述各個領域,由于系統比較復雜,不能用理論分析的方法獲得數學模型。

25(1)理論分析法這種方法主要是通過分析系統的運動規律,運用已知的定律、定理和原理,例如力學原理、生物學定律、傳熱傳質原理等,利用數學方法進行推導,建立系統的數學模型。

1.1建立數學模型的基本方法

理論分析方法只能用于較簡單系統的建模,并且對系統的機理要有較清楚的了解。對于比較復雜的實際系統,這種建模方法有很大的局限性。26根據力學原理,n關節機械手方程為

其中為n×n階正定慣性矩陣,為n×n離心和哥氏力項,為n×1

階重力項。27理論分析法實例:機器人動力學建模為控制輸入,為外加干擾。28(2)測試法(I/O模型)

系統的輸入輸出一般總是可以測量的。由于系統的動態特性必然表現于這些輸入輸出數據中,故可以利用輸入輸出數據所提供的信息來建立系統的數學模型。這種建模方法就是系統辨識。

與理論分析方法相比,測試法的優點是不需要深入了解系統的機理,不足之處是必須設計一個合理的試驗以獲取所需要的大量信息,而設計合理的試驗是很困難的。在實際研究中,往往將理論分析方法和測試法相結合,機理已知部分(名義模型)采用理論分析方法,機理未知部分采用測試方法。2930比較典型的幾個定義為:(1)L.A.Zadeh定義(1962年):辨識就是在輸入和輸出數據的基礎上,從一組給定的模型類中,確定一個與所測系統等價的模型;(2)P.Eykhoff定義(1974年):辨識問題可以歸結為用一個模型來表示客觀系統(或將要構造的系統)本質特征的一種演算,并用這個模型把客觀系統的理解表示成有用的形式;1.2系統辨識的定義(3)L.Ljung定義(1978年):辨識有三個要素,即數據、模型類和準則。辨識就是按照一個準則在一組模型類中選擇一個與數據擬合得最好的模型。31我的定義(廣義的系統辨識):根據信息(數據、原理以及經驗)確定系統模型。3233(1)系統仿真為了研究不同輸入情況下系統的輸出情況,最直接的方法是對系統本身進行實驗,但實際上是很難實現的。例如,利用實際系統進行實驗的費用太大;實驗過程中系統可能會不穩定,從而導致實驗過程帶有一定的危險性;系統的時間常數可能會很大,以致實驗周期太長。為此,需要利用系統辨識建模,利用模型仿真系統的特性或行為,從而間接地對系統進行仿真研究。1.3系統辨識的研究目的

如導彈、飛機、核反應堆、大型化工和動力裝置以及大型傳動機械等。343536373839(2)系統預測無論在自然科學領域還是在社會科學領域,往往需要研究系統未來發展的規律和變化趨勢,才能預先做出決策,采取措施。科學地定量預測大多需要采用模型方法,即首先建立所預測系統的數學模型,根據模型對系統中的某些變量的未來狀態進行預測。404142(3)系統設計和控制在工程設計中,必須掌握系統中所包括的所有部件的特性或者子系統的特性,一項完善的設計,必須使系統各部件的特性與系統的總體設計要求(如產量指標、誤差、穩定性、安全性和可靠性等)相適應。為此,需要建立數學模型,在設計中分析、考察系統各部分的特性以及各部分之間的相互作用和它們對總體系統特性的影響。43(4)系統分析根據試驗數據建立起系統的數學模型之后,可以將所研究的系統的主要特征及其主要變化規律表達出來,并將所要研究的系統中主要變量之間的關系比較集中地揭示出來,從而為分析該系統提供線索和依據。4445(5)故障診斷許多復雜的系統,如導彈、飛機、核反應堆、大型化工和動力裝置以及大型傳動機械等,需要經常監視和檢測可能出現的故障,以便及時排除故障。這就要求必須不斷地收集系統運行過程中的信息,通過建立數學模型,推斷過程動態特性的變化情況。然后,根據動態特性的變化情況判斷故障是否已經發生、何時發生、故障大小以及故障的位置等。4647(6)驗證機理模型根據試驗數據建立起系統的數學模型之后,將非常有利于理解所獲得的試驗數據,從而可以探索和分析不同的輸入條件對該系統輸出變量的影響,以檢驗所提出的機理模型,更全面地理解系統的動態行為。48(1)按提供的實驗信息分:黑箱、灰箱、白箱

如果系統的結構、組成和運動規律是已知的,適合于通過機理分析進行建模,則系統可以稱為“白箱”。如果對系統的客觀規律不清楚,只能從系統的試驗中測量系統的響應數據,應用辨識方法建立系統的數學模型,則稱系統為“黑箱”。如果已知系統的某些基本規律,但又有些機理還不清楚,則稱系統為“灰箱”。1.4數學模型的分類(2)按概率角度分:確定性的、隨機性的確定性模型所描述的系統,當狀態確定后,其輸出響應是唯一確定的。而隨機性模型所描述的系統,當狀態確定后,其輸出響應是不確定的。4950(3)按模型與時間的關系分:靜態的、動態的靜態模型用于描述系統處于穩態時(各狀態變量的各階導數為零)的各狀態變量之間的關系,一般不是時間的函數。動態模型用于描述系統處于過渡過程時的各狀態變量之間的關系,一般為時間的函數。(4)按時間刻度分:連續的、離散的用來描述連續系統的模型有微分方程、傳遞函數等,用來描述離散系統的模型有差分方程、狀態方程等。51(5)按參數與時間的關系分:定常的、時變的定常系統的模型參數不隨時間的變化而改變,而時變系統的模型參數隨時間的變化而改變。5253(6)按參數與輸入輸出關系分:線性的、非線性的線性模型用來描述線性系統,其顯著特點是滿足疊加原理和均勻性,而非線性模型用來描述非線性系統,一般不滿足疊加原理。(7)按模型的表達形式分:參數的、非參數的

非參數模型是指結構模型,例如通過階躍響應、脈沖響應、頻率響應來建立的模型都屬于反映該系統特性的非參數模型。采用參數表達所建立的模型則為參數模型,例如狀態方程和差分方程。5455(8)按參數的性質分:集中參數、分布參數的

當系統的狀態參數僅是時間的函數時,描述系統特性的狀態方程組為常微分方程組,系統稱為集中參數系統。當系統的狀態參數是時間和空間的函數時,描述系統特性的狀態方程組為偏微分方程組,則系統稱為分布參數系統。(9)按輸入輸出個數分:單輸入單輸出(SISO),多輸入多輸出(MIMO)。(10)按模型的使用形式分:離線的、在線的、實時的、成批的。(i)實時系統(ii)非實時系統56

對系統進行試驗,獲取全部數據后,運用辨識算法對數據進行集中處理,以得到模型參數的估計值,這種方法稱為離線辨識;(在模型運行過程中)獲得當前的輸入輸出數據之后,采用遞推辨識法對參數估計值進行修正,得到新的參數估計值。57581.5幾種常見的數學模型的數學表示1、脈沖響應函數

SISO系統的離散脈沖響應函數是指當初始條件為零時,線性系統對于單位脈沖序列產生的輸出響應。

在任意輸入的作用下,系統的輸出表示為其中為時延因子,。59對于穩態系統,有上式稱為移動平均(MovingAverage)模型,簡稱MA模型。記對于隨機系統,考慮噪聲項的影響,則其中為噪聲項。602、線性差分方程

差分方程是離散系統最基本的一種模型,動態的離散系統輸入、輸出采樣值序列和之間的關系可表示成如下的n階線性差分方程該方程稱為自回歸滑動平均(Auto-RegressiveMovingAverage)模型,簡稱為ARMA模型。613、狀態空間模型線性時不變連續系統的狀態空間描述為其中為系統的狀態變量,、分別表示輸出量和輸入量,、和是具有適當維數的矩陣,分別稱為系統矩陣、輸入矩陣和輸出矩陣。62離散系統的狀態空間模型為其中,、;、、;系數矩陣、、的參數個數分別為、、。631.6系統辨識常用的誤差準則

辨識時所采用的誤差準則是辨識問題的3個要素之一,是用來衡量模型接近實際系統的標準。誤差準則常被表示為誤差的泛函數,即式中,為的函數,是定義在區間上的誤差函數,一般指模型與實際系統的誤差。其中64誤差的確定分為輸出誤差準則、輸入誤差準則和廣義誤差準則。一般采用輸出誤差準則,即當實際系統的輸出和模型的輸出分別為和時,輸出誤差為65另外的準則還有(1)匹配真實數據和產生數據,進行組合,看看有沒有顯著區別,如構造Wilcoxon秩和統計量。(2)符合實際規章制度,符合人性和實際的規范游戲規則體育規則66

系統辨識的分類方法很多,根據描述系統數學模型的不同可分為線性系統和非線性系統辨識、集中參數系統和分布參數系統辨識;根據系統的結構可分為開環系統與閉環系統辨識;根據參數估計方法可分為離線辨識和在線辨識等。另外還有經典系統辨識和近代系統辨識、系統結構辨識和系統參數辨識等分類。其中離線辨識與在線辨識是系統辨識中常用的2個基本概念。1.7系統辨識的分類671.7.1離線辨識如果系統的模型結構已經選好,階數也已確定,在獲得全部數據之后,用最小二乘法、極大似然法或其它估計方法,對數據進行集中處理后,得到模型參數的估計值,這種方法稱為離線辨識。離線辨識的優點是參數估計值的精度較高,缺點是需要存儲大量數據,運算量也大,難以適用于實時控制

。681.7.2在線辨識在線辨識時,系統的模型結構和階數是事先確定好的。當獲得一部分新的輸入輸出數據后,在線采用估計方法進行處理,從而得到模型的新的估計值。在線辨識的優點是所要求的計算機存儲量較小,辨識計算時運算量較小,適合于實時控制,缺點是參數估計的精度較差。為了實現自適應控制,必須采用在線辨識,要求在很短的時間內把參數辨識出來。69(1)明確辨識的目的,它決定模型的類型、精度要求和所采用的辨識方法;(2)掌握先驗知識,如系統的非線性程度、時變或非時變、比例或積分特性、時間常數、過渡過程時間、截止頻率、時滯特性、靜態放大倍數、噪聲特性等,這些先驗知識對預選系統數學模型種類和辨識試驗設計將起到指導性的作用;1.8辨識的內容和步驟(3)利用先驗知識。選定和預測被辨識系統的數學模型種類,確定驗前假定模型;(4)試驗設計。選擇試驗信號、采樣時間、數據長度等,記錄輸入和輸出數據;(5)數據預處理。輸入和輸出數據中常含有的低頻成分和高頻成分對辨識精度都有不利的影響,需要采用濾波器等方法進行去除;7071(6)模型結構辨識。在假定模型結構的前提下,利用辨識方法確定模型結構參數,如差分方程中的階次、純延遲等。(7)模型參數辨識。在假定模型結構確定之后,選擇估計方法,利用測量數據估計模型中的未知參數;(8)模型檢驗。從不同的側面檢驗模型是否可靠,檢驗模型的實際應用效果,驗證所確定的模型是否恰當地表示了被辨識的系統。

如果所確定的系統模型合適,則辨識結束。否則,改變系統的驗前模型結構,重新執行辨識過程,即執行第(4)步至第(8)步,直到獲得一個滿意的模型為止。7273附錄A:Matlab語言Matlab編程的基本知識A.1:數據類型A.1.1:常量與變量變量2.常量piepsinfNaNi(j)74>>pians=3.1416>>formatlong,pians=3.1415926535897975A.1.2:Matlab數據類型數字變量abs(x)sqrt(x)real(x)image(x)round(x)sin(x)cos(x)tan(x)asin(x)accos(x)atan(x)atan2(x,y)變量的顯示格式:formatlongformatshort……762.字符串>>s='Iamastudent's=Iamastudent>>s=char('b','a','b','y');>>s'ans=baby773向量(1)向量的生成直接輸入法:>>x=[2468]x=2468冒號:>>a=1:2:7a=1357函數命令:>>x=linspace(0,10,6)x=024681078(2)向量的引用X(n)X(n1:n2)>>x=[12345];>>x(1:3)ans=12379Isvector():判斷是否為向量length():dot(a,b):cross(a,b):803矩陣(1)矩陣的生成直接輸入法:>>A=[123;456;789]A=12345678981利用M文件創建在M文件:as36中輸入:AA=[123456789];>>as36>>AAAA=12345678982利用文本文件創建在文本文件(txt文件):asas中輸入:123456789>>loadasas.txt>>asasasas=12345678983特殊矩陣的創建zeros(m)zeros(m,n)eye(m)eye(m,n)ones(m)ones(m,n)rand(m)rand(m,n)……….84>>zeros(3)ans=000000000>>zeros(2,3)ans=00000085(2)矩陣元素的引用A(n,:)A(:,m)A(n,m)>>A=[123;456;789]>>A(:,3)ans=36986(3)矩陣元素的修改D=[A;BC]A(n,:)=[]A(:,m)=[]A(n,m)=aA(n,:)=[a,b,…]A(:,m)=[a,b,…]>>A=[123;456];>>B=eye(2);>>BB=1001>>C=zeros(2,1)C=00>>D=[A;BC]D=1234561000108788(4)矩陣的變維>>A=1:12;B=reshape(A,3,4)B=147102581136912>>B=reshape(A,2,6)B=13579112468101289矩陣AD=size(A)[V,D]=eig(A)det(A)inv(A)rank(A)90例:>>A=magic(3)A=816357492>>D=size(A)D=33>>det(A)ans=-36091>>[V,D]=eig(A)V=-0.5774-0.8131-0.3416-0.57740.4714-0.4714-0.57740.34160.8131D=15.00000004.8990000-4.8990注意:每一列為特征向量>>E=eig(A)E=15.00004.8990-4.899092>>inv(A)ans=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.1028>>rank(A)ans=393A.2:運算符A.2.1:算術運算符+-*/^A.2.2:關系運算符==~=><>=<=A.2.3:邏輯運算符&~|xor94A.3:數值運算向量運算dot(a,b)cross(a,b)>>a=[246];>>b=[367];>>c=cross(a,b)c=-84095A.4:符號運算>>f=sym('sin(x)')

f=

sin(x)

>>symsxy>>f=sin(x)+sin(y)

f=

sin(x)+sin(y)96>>findsym(f)ans=x,y>>symsab;>>f1=subs(a+b,a,3)

f1=

3+b>>symsx>>f=sin(x^2);>>diff(f)

ans=

2*cos(x^2)*x

>>diff(f,x)

ans=

2*cos(x^2)*x9798Jacobian矩陣>>symsxyz;>>f=[x*y*z;y;x+z];>>v=[xyz];>>R=jacobian(f,v)

R=

[y*z,x*z,x*y][0,1,0][1,0,1]99symse1e2A=sym('[cos(e1)(-1)*sin(e1);sin(e1)cos(e1)]');B=sym('[cos(e2)(-1)*sin(e2);sin(e2)cos(e2)]');C=A*B;CD=simple(C);D求得結果C=[cos(e1)*cos(e2)-sin(e1)*sin(e2),-cos(e1)*sin(e2)-sin(e1)*cos(e2)][sin(e1)*cos(e2)+cos(e1)*sin(e2),cos(e1)*cos(e2)-sin(e1)*sin(e2)]D=[cos(e1+e2),-sin(e1+e2)][sin(e1+e2),cos(e1+e2)]<=矩陣相乘100n=4;t='1/(i+j-1)';a=zeros(n);fori=1:nforj=1:na(i,j)=eval(t);endenda求得結果a=1.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.16670.25000.20000.16670.1429<=符號函數賦值程序101A.5:M文件命令文件(腳本文件):s=1;fori=2:10s=s*i;enddisp('10的階乘為:');s>>as3310的階乘為:s=3628800>>whosNameSizeBytesClassi1x18doublearrays1x18doublearray102103函數文件:functions=jiecheng(n)%此函數用來求非負整數n的階乘,參數n要求非負ifn<0error('輸入參數不能為非負值');return;elseifn==0s=1;elses=1;fori=1:ns=s*i;endendendreturn;>>jiecheng(10)ans=3628800>>jiecheng(-10)???Errorusing==>jiecheng輸入參數不能為非負值>>helpjiecheng

此函數用來求非負整數n的階乘,參數n要求非負104105順序結構:逐條運行命令例:求的根a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a)(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),'x2=',num2str(x(2))]);a=?4b=?78c=?54x1=-0.7188x2=-18.7812A.6:程序設計106選擇結構:if表達式執行語句end

(1)條件判斷(2)分支選擇結構switch表達式

case數值1

程序模塊1;

case數值2

程序模塊2;……otherwise

程序模塊end

functionz=Atan(y,x)%此函數為帶象限的反正切函數ify==0&x==0z=0;elseifx==0&y>0z=pi/2;elseifx==0&y<0z=(-1)*pi/2;elseifx>0z=atan(y/x);elseifx<0z=atan(y/x)+sign(y)*pi;endreturn;

107108>>formatlong,2*Atan(2,0)ans=3.14159265358979>>formatlong,4/3*Atan(-1,-1)ans=-3.14159265358979>>formatlong,4/3*Atan(1,-1)ans=3.14159265358979>>helpAtan

此函數為帶象限的反正切函數109clearn=input('輸入n=');switchfix(n/10)case

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論