系統(tǒng)辨識(shí)的Matlab實(shí)現(xiàn)方法(手把手)(共16頁(yè))_第1頁(yè)
系統(tǒng)辨識(shí)的Matlab實(shí)現(xiàn)方法(手把手)(共16頁(yè))_第2頁(yè)
系統(tǒng)辨識(shí)的Matlab實(shí)現(xiàn)方法(手把手)(共16頁(yè))_第3頁(yè)
系統(tǒng)辨識(shí)的Matlab實(shí)現(xiàn)方法(手把手)(共16頁(yè))_第4頁(yè)
系統(tǒng)辨識(shí)的Matlab實(shí)現(xiàn)方法(手把手)(共16頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上最近在做一個(gè)項(xiàng)目的方案設(shè)計(jì),應(yīng)各位老總的要求,只有系統(tǒng)框圖和器件選型可不行,為了凸顯方案設(shè)計(jì)的高大上,必須上理論分析,炫一下“技術(shù)富”,至于具體有多大實(shí)際指導(dǎo)意義,那就不得而知了!本人也是網(wǎng)上一頓百度,再加幾日探索,現(xiàn)在對(duì)用matlab實(shí)現(xiàn)系統(tǒng)辨識(shí)有了一些初步的淺薄的經(jīng)驗(yàn),在此略做一小節(jié)。必須要指出的是,本文研究對(duì)象是經(jīng)典控制論理最簡(jiǎn)單最常用的線性時(shí)不變的siso系統(tǒng),而且是2階的哦,也就是具有如下形式的傳遞函數(shù):本文要做的就是,對(duì)于有這樣傳遞函數(shù)的一個(gè)系統(tǒng),要辨識(shí)得到其中的未知數(shù)T, !這可是控制系統(tǒng)設(shè)計(jì)分析的基礎(chǔ)哦,沒有系統(tǒng)模型,啥理論、算法都是白扯,在實(shí)際工程中

2、非常重要哦!經(jīng)過(guò)總結(jié)研究,在得到系統(tǒng)階躍響應(yīng)實(shí)驗(yàn)數(shù)據(jù)之后(當(dāng)然如果是其他響應(yīng),也有辦法可以辨識(shí),在此還是只討論最簡(jiǎn)單的階躍響應(yīng)實(shí)驗(yàn)曲線,誰(shuí)讓你我是菜鳥呢),利用matlab至少可以有兩種方法實(shí)現(xiàn)實(shí)現(xiàn)(目前我只會(huì)兩種,呵呵)!一、函數(shù)法二、GUI系統(tǒng)辨識(shí)工具箱下面分別作詳細(xì)介紹!一、 函數(shù)法看官別著急,先來(lái)做一段分析(請(qǐng)看下面兩排紅*之間部分),這段分析是網(wǎng)上找來(lái)的,看看活躍一下腦細(xì)胞吧,如果不研讀一下,對(duì)于下面matlab程序,恐怕真的就是一頭霧水咯!*G(s)可以分解為:其中, 、都是實(shí)數(shù)且均大于零。則有:,傳遞函數(shù)進(jìn)一步化為:因此,辨識(shí)傳遞函數(shù)就轉(zhuǎn)化為求解、。當(dāng)輸入為單位階躍函數(shù)時(shí),對(duì)上式

3、進(jìn)行拉普拉斯反變換,得系統(tǒng)時(shí)域下的單位階躍響應(yīng)為:即 令=,得 對(duì)上式兩邊取以為底的對(duì)數(shù)得當(dāng)時(shí),則上式化簡(jiǎn)為該式的形式滿足直線方程其中,=,通過(guò)最小二乘算法實(shí)現(xiàn)直線的擬合,得到,的值,即可得到、的值,進(jìn)而可得系統(tǒng)的傳遞函數(shù)。*Matlab程序代碼:clcclose allt=1 3 5 7 9 11 13 15 17 19; y=0. 0. 0. 0. 0. 0. 0. 0. 0. 0.; y2=log(1-y);plot(t,y2,'*');grid onpm=polyfit(t,y2,1)value=polyval(pm,t);hold onplot(t,value,

4、9;r')title('fontname黑體fontsize20y(t)=at+b')w2=-pm(1)w1=w2/(1-exp(-pm(2)T=1/sqrt(w1*w2)theta=(w1+w2)/(2*sqrt(w1*w2)z=;p=-w1 -w2;k=w1*w2;sys=zpk(z,p,k)figure(2)step(sys,0:0.5:20);axis(0 20 0 1.2)hold on plot(t,y,'r*')打開matlab,新建一個(gè)Function,把上述程序段拷進(jìn)去,保存,運(yùn)行,運(yùn)行結(jié)果:系統(tǒng)的傳遞函數(shù)為很順利吧?先高興一個(gè)!問(wèn)題接

5、著馬上就來(lái)了,上面這個(gè)例子,這個(gè)傳遞函數(shù)的極點(diǎn)剛好都是負(fù)實(shí)數(shù),因此辨識(shí)得很順利,但是如果系統(tǒng)是欠阻尼系統(tǒng),也就是如果傳遞函數(shù)的根是復(fù)數(shù),那么上述函數(shù)段,就無(wú)能為力咯,會(huì)出現(xiàn)說(shuō)“matlab無(wú)法處理增益為復(fù)數(shù)情況之類······”例如對(duì)于這個(gè)系統(tǒng),若果用simulink做一下階躍響應(yīng),再把實(shí)驗(yàn)數(shù)據(jù)代入上述函數(shù)段,那就不行咯!怎么辦呢,只能另辟蹊徑了!二、(System Identification Tool)系統(tǒng)辨識(shí)工具箱早聽說(shuō)matlab博大精深,神通廣大了,于是乎我確定肯定有更簡(jiǎn)單、直觀、強(qiáng)大的工具來(lái)完成這小兒科把戲。查資料琢磨之后

6、,我做了個(gè)小實(shí)驗(yàn),在simulink里驗(yàn)證了該種方法。該方法的大原則是:在確定了系統(tǒng)的輸入輸出數(shù)據(jù)(兩個(gè)列向量N×1形式,如果是1×N,會(huì)提示出錯(cuò)?。┲?,設(shè)計(jì)好一定的辨識(shí)原則(比如說(shuō)是2階?3階?,傳遞函數(shù)是零極點(diǎn)形式,還是帶阻尼形式,等等),然后就交給強(qiáng)大的matlab,得到辨識(shí)結(jié)果。Step by step,plz!Step1、 建立模型獲取系統(tǒng)輸入輸出數(shù)據(jù)圖1圖1系統(tǒng)的輸入是階躍信號(hào),用Scope1監(jiān)視,并輸出到workspace(這步不會(huì)的自己百度哦),采樣周期是0.1s,得到輸入變量u(101×1的矩陣);本人在系統(tǒng)的階躍響應(yīng)上疊加了一白噪聲,當(dāng)然也可

7、以不加噪聲,加了噪聲就是期望更真實(shí)的模擬實(shí)際情況,白噪聲參數(shù)設(shè)置見圖2圖2同樣在Scope2監(jiān)視,也將結(jié)果輸出到workspace,得到響應(yīng)數(shù)據(jù)y(同樣也是101×1的矩陣)Step 2、進(jìn)入辨識(shí)工具箱&設(shè)置辨識(shí)規(guī)則直接在command window 輸入 ident,回車,進(jìn)入辨識(shí)工具箱圖3圖3點(diǎn)擊import下拉菜單,選時(shí)域數(shù)據(jù)time domain data,見圖4圖4在下圖5紅色圈區(qū)域輸入之前得到的系統(tǒng)輸入和輸出數(shù)據(jù),u和y圖5 在下圖6綠色圈內(nèi)輸入數(shù)據(jù)的一些信息,因?yàn)橹澳P椭?,階躍起點(diǎn)我是放在0s處的,這里也設(shè)置0,如果前面模型仿真是1s,這里應(yīng)該也是1s;采樣時(shí)

8、間是0.1s,根據(jù)實(shí)際情況設(shè)置統(tǒng)一哦圖6設(shè)置完之后,點(diǎn)擊import此時(shí)界面變成圖7圖7如果在下圖8勾選紅框這個(gè)選項(xiàng),就會(huì)出現(xiàn)我們剛才設(shè)定輸入輸出數(shù)據(jù)的曲線,如圖9所示,其他勾選項(xiàng)是頻域的分析和顯示,暫不用它。圖8圖9看看與我們實(shí)際設(shè)置的輸入輸出是否符合,如果符合,那么我們離成功就不遠(yuǎn)咯,如果發(fā)現(xiàn)異常,那再好好檢查一遍,直到確保數(shù)據(jù)導(dǎo)入沒有問(wèn)題!下面兩段紅色斜杠之間的內(nèi)容,對(duì)于本實(shí)驗(yàn),可以直接跳過(guò),看一下對(duì)后續(xù)復(fù)雜模型的處理有好處哦,也算全面熟悉一下工具。/到這接著選preprocess也就是對(duì)數(shù)據(jù)進(jìn)行預(yù)處理了,下拉菜單中有很多種處理方法和手段,有這個(gè)心思的人可以挨個(gè)試一下功能。圖10圖10預(yù)

9、處理的對(duì)象是working data中的數(shù)據(jù),每進(jìn)行一種預(yù)處理在左邊就會(huì)有新的數(shù)據(jù)生成,這時(shí)只要將新的數(shù)據(jù)移動(dòng)到working data的那個(gè)方框,就可以將working data換成你所想處理的數(shù)據(jù)了,可以這樣多次進(jìn)行處理,得到你最終想用來(lái)辨識(shí)的數(shù)據(jù)和用于驗(yàn)證的數(shù)據(jù)(不需要的數(shù)據(jù)可以拖到那個(gè)trash里面刪除,就是回收站了,也可以從回收站中找回的)接下來(lái)就是辨識(shí)了,首先把辨識(shí)用的數(shù)據(jù)拖到working data那個(gè)方框,再把驗(yàn)證的數(shù)據(jù)拖到validation data那個(gè)方框,這個(gè)validation data就是最原始數(shù)據(jù)稍作處理得到的一個(gè)更接近理論模型的對(duì)象數(shù)據(jù),在這實(shí)驗(yàn)里,本人用的就是

10、默認(rèn)數(shù)據(jù),也就是不做任何preprocess處理。/點(diǎn)下拉菜單estimate,選你想要的模型,在彈出的對(duì)話框中設(shè)定參數(shù),圖11圖11這里邊的模型種類比較多,有線性的、非線性的、狀態(tài)空間的、經(jīng)典傳遞函數(shù)形式的等等,我們所選的就是圖中紅色方框process models,單擊。彈出如下界面圖12!是否有零點(diǎn)、有延遲、有積分?根據(jù)勾選,傳函自動(dòng)調(diào)整極點(diǎn)個(gè)數(shù)及其他傳遞函數(shù)圖12在本實(shí)驗(yàn)中,我們做如下設(shè)置,見圖13紅框標(biāo)出部分。圖13然后點(diǎn)擊最下方Estimate,就有模型生成了。圖14圖14先勾選上圖綠色框選項(xiàng),看到了什么?給出了擬合率,best fits 98.72有木有?傳遞函數(shù)具體的數(shù)值,雙擊上圖紅色框,見圖15?圖15在右邊的數(shù)據(jù)欄中;也就是model views中了,下面有很多可以選擇,每選一個(gè)就可以生成一幅對(duì)應(yīng)的圖,是由用于驗(yàn)證的數(shù)據(jù)生成的。把模型拖到to workspace那個(gè)方框,再去

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論