版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、系統(tǒng)辨識實驗報告學(xué)院:信息科學(xué)與技術(shù)學(xué)院專業(yè):自動化日期:2016/4/26目錄實驗14一實驗內(nèi)容及要求:4二實驗原理:4三軟件設(shè)計思想:4四程序結(jié)構(gòu)框圖:5五運行示意圖:5實驗28一實驗內(nèi)容及要求:8二實驗原理:8三軟件設(shè)計思想:9四程序設(shè)計框圖:9五程序運行流程圖:10實驗312一實驗內(nèi)容及要求:12二實驗原理:12三程序數(shù)據(jù)流程圖:12四實驗運行結(jié)果:13實驗414一實驗內(nèi)容及要求:14二實驗原理:14三數(shù)據(jù)遞推關(guān)系圖:14四實驗運行結(jié)果:15心得體會16附錄(實驗代碼)171.labwork1172.labwork2213.labwork3234.labwork426實驗1一實驗內(nèi)容及
2、要求:1.編出矩陣a與b相乘得到的矩陣r的運算計算機程序要求:(1)a和b的維數(shù)及數(shù)值可通過鍵盤及數(shù)據(jù)文件輸入(2)計算結(jié)果r可由屏幕及文件輸出2.將1改寫為子程序3查找有關(guān)的資料,讀懂及調(diào)通矩陣求逆程序,并改寫為子程序。二實驗原理:1. 兩個矩陣a、b相乘得到c矩陣,首先要滿足的條件是a的列數(shù)與b行數(shù)相等,否則不能相乘。當(dāng)滿足條件后,根據(jù)c(i,k)=ai,j*b(j,k)可以求得c矩陣。2. 當(dāng)求矩陣的逆時,首先要判斷其是否為方陣,若是則可以對其進行下一步的操作。本次實驗中求逆主要是通過構(gòu)造一個增廣矩陣(fangz | e)矩陣的初等行變換得到(e | fzni)的這樣的一個矩陣就可以求得
3、矩陣的逆。若矩陣fangz不是滿秩矩陣時,fangz沒有fzni 。通過這樣的求逆方式,避免了大方陣的求取行列式運算。三軟件設(shè)計思想:1. 確定該軟件的功能主要有:鍵盤輸入兩個矩陣然后相乘;文本data輸入兩個矩陣將結(jié)果放在文本result中;鍵盤輸入一個方陣求得其逆矩陣。其中前兩個的矩陣相乘運算部分設(shè)置為一個函數(shù)mul。2. 在main函數(shù)中提供兩個關(guān)于矩陣的選擇:multiplitation;invertion。其相對應(yīng)的子函數(shù)為mulop(a,b,c),inv()。3. 在mulop(a,b,c)子函數(shù)中,有兩種輸入矩陣的方式:way1,way2。相對應(yīng)的功能為鍵盤輸入,文本輸入。并且兩
4、者在處理矩陣時,都調(diào)用了mul函數(shù)。4. 在inv()子函數(shù)中,輸入和顯示原矩陣,和其相應(yīng)的逆矩陣。調(diào)用qiuni(double fangzm,double fznim,int n)子函數(shù),可以都得到原矩陣的逆矩陣。但當(dāng)原矩陣不可逆時,系統(tǒng)輸出為”the array is not invertible!“。四程序結(jié)構(gòu)框圖:way1鍵盤輸入矩陣mul矩陣乘積子函數(shù)mulop子函數(shù)矩陣乘積way2文本輸入矩陣main函數(shù)inv子函數(shù)矩陣求逆qiuni子函數(shù)退出程序五運行示意圖:1. main函數(shù)的主界面:2. mulop子函數(shù)的界面:3. inv子函數(shù)的界面:4. 通過鍵盤操作計算兩個矩陣的乘積:
5、5. 求方陣的逆矩陣:實驗2一實驗內(nèi)容及要求:編寫并調(diào)試動態(tài)模型仿真程序:模型:y(k)-1.5y(k-1)+0.7y(k-2)=u(k-1)+0.5u(k-2)+v(k)已知:白噪聲v(k)數(shù)據(jù)文件為dv,數(shù)據(jù)長度為l=500要求:(1) 產(chǎn)生長度為l的m序列數(shù)據(jù)文件du (2) 產(chǎn)生長度為l的模型輸出數(shù)據(jù)文件dy 二實驗原理:由于在現(xiàn)實中,白噪聲序列很難求,所以尋找到m序列在一定程度上可以代替白色噪聲序列。由l=500,所以n=9。根據(jù)m序列的特征方程:fx=c0+c1*x+c2*x2+cnxn可知9階移位寄存器的多項式為fx=x9+x4+1,及可得c=0,0,0,1,0,0,0,0,19
6、級線性移位寄存器:+c8c1c0輸出a0a1a8a7圖中ci表示反饋的兩種可能連接方式,ci=1表示連線接通,第9-i級加入反饋中;ci=0表示連線斷開,第9-i級未參加反饋。系統(tǒng)產(chǎn)生m序列的結(jié)構(gòu)流程圖:初始化寄存器a=1,1,0,0,0,1,0,1,0移位寄存器c=0,0,0,1,0,0,0,0,1m序列的長度為l=500i=1y輸出m序列ilnm序列du(i)=a(i)寄存器向前移1位an=i=0n-1ciai(mod 2)三軟件設(shè)計思想:1. 該軟件的主要功能是:產(chǎn)生m序列賦給u(k)保存在du.txt文件中;由u(k)和v(k)求得y(k)保存在dy.txt文件中。2. 在main函數(shù)
7、中給出3個選擇:求u(k);求y(k);退出程序。其相對應(yīng)的函數(shù)名稱為gener,ouput,exit。3. 在gener子函數(shù)中產(chǎn)生m序列u(k)保存到du.txt文本文件中。4. 在output子函數(shù)中,通過對input子函數(shù)(讀入v(k),u(k)的數(shù)據(jù))、deal子函數(shù)(由公式y(tǒng)(k)-1.5y(k-1)+0.7y(k-2)=u(k-1)+0.5u(k-2)+v(k)求y(k)的調(diào)用來達到生成y(k)序列并保存到dy.txt文本文件中。四程序設(shè)計框圖:gener子函數(shù)產(chǎn)生dumain函數(shù)input子函數(shù)輸入du,dvoutput子函數(shù)產(chǎn)生dydeal子函數(shù)得dy退出程序五程序運行流程圖
8、:1. main函數(shù):2. gener函數(shù):3. output函數(shù):實驗3一實驗內(nèi)容及要求:編寫并調(diào)試動態(tài)離散時間模型ls成批算法程序。要求:(1)原始數(shù)據(jù)由du和dy讀出。(2)調(diào)用求逆及相乘子程序。(3)顯示參數(shù)辨識結(jié)果。二實驗原理:1.批次處理的方法就是把所有的數(shù)據(jù)采集到一次性進行處理,但前提是白色噪聲、及m序列所共同作用而產(chǎn)生的輸出,才能使用最小二乘法。雖然這種方法的計算量龐大,但經(jīng)常用于處理時不變系統(tǒng),方法簡單。2.構(gòu)造模型y=x*sita+v3y=dy(3) dy(4) dy(499) 已知n=2,l=500,可知m=497所以有x=-y(2)-y(1)-y(3)-y(2)-y(4
9、98)-y(497)u(2)u(1)u(3)u(2)u(498)u(497)三程序數(shù)據(jù)流程圖:轉(zhuǎn)置y(m,1)列矩陣tx(4,m)矩陣x(m,4)矩陣xishu(4,1)列矩陣相乘相乘ji2(4,m)矩陣求逆相乘ni(4,4)方陣ji1(4,4)方陣四實驗運行結(jié)果:實驗4一實驗內(nèi)容及要求:編寫并調(diào)試動態(tài)離散時間模型ls遞推算法程序。要求:(1)原始數(shù)據(jù)由du和dy讀出。(2)顯示參數(shù)辨識結(jié)果。(3)設(shè)置選擇變量決定是否輸出中間結(jié)果。二實驗原理:1.基本思路:新的估計值sita(k+1)=老的估計值sita(k)+修正項1. 基本模型:y(k)=-a1y(k-1)-a2y(k-2)+b1u(k-
10、1)+b2u(k-2)+v(k)。2. 引入信息矩陣p(k),維數(shù)為4*4,初始化為1051012*e的一單位陣。gama(k)為修正系數(shù),為無窮小標(biāo)量。x(k+1)=-y(k) -y(k-1) u(k) u(k-1)。sita=a1 a2 b1 b2。y(k+1)=dyk+3。3. sita(k+1)=sita(k)+gama(k+1)*p(k)*x(k+1)*y(k+1)-x(k=1)*sita(k);4. p(k+1)=p(k)-gama(k+1)*p(k)*x(k+1)*x(k+1)*p(k);5. gama(k+1)=1/1+x(k+1)*p(k)*x(k+1);三數(shù)據(jù)遞推關(guān)系圖:四
11、實驗運行結(jié)果:1.main函數(shù)界面示意圖:6. 只顯示結(jié)果界面:7. 顯示過程的參考界面:心得體會我很喜歡這個課程的期末考核方式,不用再拘泥于在題目當(dāng)中對該課程的了解,而是通過4個c語言設(shè)計的練習(xí)來達到學(xué)習(xí)的目的,而且對以后的學(xué)習(xí)還有很大的幫助。在編寫c語言的過程中,也遇到了一些阻礙,特別是在編寫第3,4個的時候。比如:用的數(shù)組太多,并且未將其初始化,運行出來的結(jié)果經(jīng)常是很長的一段隨機數(shù);或者一模一樣的程序有時候就可以正常運行,有時候就總是出現(xiàn)報錯這些都是讓我心塞了兩周的問題。在這些問題解決之后,運行出來的結(jié)果卻與實際模型參數(shù)的出入有點大,于是又重新查找第2個實驗是否是m序列產(chǎn)生的方式有問題。
12、通過對初始化寄存器賦給不同的值,可以讓結(jié)果與真實模型參數(shù)之間的誤差達到最小。通過這學(xué)期對系統(tǒng)辨識這個課程的學(xué)習(xí),讓我了解到系統(tǒng)辨識在建立數(shù)學(xué)模型的方面的重要性。對于不了解系統(tǒng)的工作機理的人來說,也有了一個可以知道系統(tǒng)模型的構(gòu)建方法。但是也必須要我們對所構(gòu)建模型有一個較為清醒的認識,比如要知道模型的類型,如果是動態(tài)模型,則要知道模型的參數(shù)或者階次(但是權(quán)函數(shù)模型就不需要事前知道模型的參數(shù)或者階次,不知道這種方法有沒有什么我們不知道的缺陷)。在處理數(shù)據(jù)上,又一次讓我了解到世上沒有兩全其美的事情,計算的復(fù)雜程度和精度就好像魚和熊掌不能兼得。也正是因為這樣,才會成為促使人們在這方面的不斷尋找最優(yōu)化算法
13、的動力。在對模型進行研究時,都是從最簡單的模型開始研究,比如在沒有噪聲的情況下,所得到的模型參數(shù)就為系統(tǒng)模型真實參數(shù)。進一步,在白色噪聲的情況下,所得到的參數(shù)就為系統(tǒng)模型真實參數(shù)的估計通過這樣的推理,就可以得到ls在系統(tǒng)辨識問題上的普適性,不管系統(tǒng)受怎樣的干擾,只要通過一系列的變換,最后還是通過ls來解決模型參數(shù)的確定工作。雖然我們對化學(xué)工藝不怎么了解,但通過學(xué)習(xí)系統(tǒng)辨識,讓我們對已經(jīng)投運后的工業(yè)生產(chǎn)設(shè)備的性能有一個跟蹤性的了解,可以對系統(tǒng)做出一個較為完整的評估,從而來改善生產(chǎn)工藝或者是及時更換生產(chǎn)設(shè)備,從而來達到最大的經(jīng)濟效益。這學(xué)期主要就是介紹方法,雖然可以處理一些特殊情況的有噪聲和沒有噪
14、聲的系統(tǒng),但對于那些噪聲模型都不可預(yù)測的系統(tǒng)中,還是顯得無能為力。希望以后還有機會學(xué)習(xí)其他的系統(tǒng)辨識方法。附錄(實驗代碼)1. labwork1#define m 100double fangzmm=0,fznimm=0;/* 求矩陣的乘法函數(shù) */void mul(double am,double bm,double cm,int n1,int n2,int n4)int i,j,k;for(i=0;in1;i+)for(k=0;kn4;k+)for(j=0;jn2;j+)cik+=aij*bjk;/* 求方陣的逆 */void qiuni(double fangzm,double fzni
15、m,int n)double emm,value=1.0,stemp,temp=0.0,san,cmm;int i,j,row,nextrow,flag=0;int col,switchtime=0;/* 構(gòu)造原矩陣的增廣矩陣 */for(i=0;in;i+)for(j=0;jn;j+)if(j=i) eij=1;else eij=0;for(i=0;in;i+)for(j=0;jn;j+)cij=fangzij;for(j=0;j(e|fzni) */for(row=0;rown-1;row+)nextrow=row+1;if(cnextrowrow=0)while(cnextrowrow=
16、0)nextrow+;if(nextrow=n)flag=1;break;if(flag=1) continue;switchtime+;/* 交換第一個數(shù)字為0的行 */for(col=0;col2*n;col+)stemp=crowcol;crowcol=cnextrowcol;cnextrowcol=stemp;for(nextrow=row+1;nextrown;nextrow+)temp=cnextrowrow*1.0/crowrow;for(col=0;col2*n;col+)cnextrowcol+=-temp*crowcol;/* 得到前一個矩陣的對角線上元素的乘積 */for
17、(row=0;row=1;row-)for(i=row-1;i=0;i-) san=cirow*1.0/crowrow;for(col=row;col2*n;col+)cicol-=crowcol*san;/* 得到標(biāo)準(zhǔn)的(e|a) */for(row=0;rown;row+)for(col=0;coln;col+)crowcol+n/=crowrow;for(i=0;in;i+)for(j=0;jn;j+)fzniij=cij+n;2. labwork2/* 處理v(k),u(k)的數(shù)據(jù)得輸出y(k) */void deal(double dvm,double dum,double dym)
18、int k;dy0=0;dy1=0;for(k=2;k500;k+)dyk=1.5*dyk-1-0.7*dyk-2+duk-1+0.5*duk-2+dvk;/* 產(chǎn)生m序列u(k)輸出到文件 */void gener()int a9=1,1,0,0,0,1,0,1,0,c9=0,0,0,1,0,0,0,0,1,aa9;int dum,temp,sum,i,j;du0=a8;file *fp;system(cls);if(fp=fopen(du.txt,w)=null)printf(cannot open the file!n);exit(0);for(i=1;im;i+)sum=0;for(j
19、=0;j9;j+)sum+=aj*cj;aa0=sum%2;for(j=1;j9;j+)aaj=aj-1;for(j=0;j9;j+)aj=aaj;dui=a8;for(i=0;im;i+)fprintf(fp,%d ,dui);fclose(fp);printf(nnnttplease refer to the file(du.txt)!nn);system(pause);3. labwork3#define m 500#define n 4void mul1(double txm,double xn,double ji1n)int i,j,k;for(i=0;in;i+)for(k=0;k
20、n;k+)for(j=0;jm-3;j+)ji1ik+=txij*xjk;void mul2(double nin,double txm,double ji2m)int i,j,k;for(i=0;in;i+)for(k=0;km-3;k+)for(j=0;jn;j+)ji2ik+=niij*txjk;void mul3(double ji2m,double ym,double xishun)int i,j;for(i=0;in;i+)for(j=0;jm-3;j+)xishui+=ji2ij*yj;void main()system(cls);system(color 75);int i,j
21、;double dum,dym;double xmn=0,temp,ym,txnm,ji1nn=0,ninn=0,ji2nm=0,xishun=0;read(du,dy);/* 得到大矩陣x( 498 * 4 ) */for(i=0;im-3;i+)for(j=0;j2;j+)xij=-dyi+j+1;for(j=0;j2;j+)xij+2=dui+j+1;temp=0;temp=xi0;xi0=xi1;xi1=temp;temp=0;temp=xi2;xi2=xi3;xi3=temp;/* 得到y(tǒng)(498 * 1)=dy(1) dy(498)的列矩陣 */for(i=0;im-3;i+)yi
22、=dyi+3;/* 得到x(498 * 4)的轉(zhuǎn)置矩陣 tx(4 * 498) */for(i=0;in;i+)for(j=0;jm-3;j+)txij=xji; mul1(tx,x,ji1); /* 得到tx*x的乘積ji1 */qiuni(ji1,ni,n); /* 得到j(luò)i1的逆矩陣ni */mul2(ni,tx,ji2); /* 得到ni*tx的乘積ji2 */mul3(ji2,y,xishu); /* 得到j(luò)i2*y的乘積xishu */printf(tthe xishu are:nn);for(i=0;in;i+)printf(nnt %.4f n,xishui);printf(n
23、n);4. labwork4#define m 500#define n 4double sitann;void mul(double an,double bn,double cn,int n1,int n2,int n4)int i,j,k;for(i=0;in1;i+)for(k=0;kn4;k+)for(j=0;jn2;j+)cik+=aij*bjk;void trans(double dn,double en,int n5,int n6)int i,j;for(i=0;in6;i+)for(j=0;jn5;j+)eij=dji;void consult()system(cls);int
24、 i,j,k;double dum,dym;double txnn=0,pnn,y,xnn,temp,gama;double ji1nn=0,ji2nn=0;double ji3nn=0,ji4nn=0;double ji5nn=0,ji6nn=0,ji7nn=0;read(du,dy);/* 對p( 4 * 4 )和sita進行初始化 */for(i=0;in;i+)for(j=0;jn;j+)if(i=j) pij=10e9;else pij=0;for(i=0;in;i+)sitai0=0.0;/* 大循環(huán)開始 */for(i=2;im;i+)/* 求y(i+1) */y=dyi;/* 求x(i+1)的(4*1)的列陣 */for(k=0;k1;k+)for(j=0;j2;j+)xjk=-dyi+j-2;for(j=0;j2;j+)xj+2k=dui+j-2;temp=x0k;x0k=x1k;x1k=temp;temp=x2k;x2k=x3k;x3k=temp;/* 求gama(i+1)的值gama=1/(1+tx(i+1)*p(i)*x(i+1) */trans(x,tx,4,1); /* x(4 1) 到 tx(1 4) */mul(tx,p,ji1,1,4,4); /* tx(1 4)*p(4 4)=ji1(1 4)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務(wù)審核審批崗位分工制度
- 落實落細制度
- 2025高二英語期末模擬卷01(考試版A4)(人教版)含答案
- 2026福建浦盛產(chǎn)業(yè)發(fā)展集團有限公司浦城縣浦恒供應(yīng)鏈有限公司職業(yè)經(jīng)理人招聘備考考試題庫附答案解析
- 2026貴州省省、市兩級機關(guān)遴選公務(wù)員357人備考考試試題附答案解析
- 2026浦發(fā)銀行成都分行支行籌備中心社會招聘參考考試試題附答案解析
- 2026年中國科學(xué)院合肥腫瘤醫(yī)院血液透析中心醫(yī)護人員招聘7名備考考試試題附答案解析
- 2026廣東湛江市吳川市公安局招聘警務(wù)輔助人員32人(第一次)參考考試題庫附答案解析
- 2026年中國科學(xué)院合肥腫瘤醫(yī)院血液透析中心醫(yī)護人員招聘7名參考考試試題附答案解析
- 2026華南理工大學(xué)電力學(xué)院科研助理招聘備考考試試題附答案解析
- 富士康工廠設(shè)備管理制度
- JG/T 382-2012傳遞窗
- 基于深度學(xué)習(xí)的高精度鏜床參數(shù)優(yōu)化-洞察闡釋
- 供應(yīng)商評估準(zhǔn)入、管理制度
- 深圳市科學(xué)中學(xué)2023-2024學(xué)年高一(上)期末物理試卷
- 中國地理:中國地理空間定位(課件)
- 10kV小區(qū)供配電設(shè)計、采購、施工EPC投標(biāo)技術(shù)方案技術(shù)標(biāo)
- 新人教版七年級上冊初中數(shù)學(xué)全冊教材習(xí)題課件
- 2024-2025學(xué)年湖北省咸寧市高二生物學(xué)上冊期末達標(biāo)檢測試卷及答案
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- 三片飲料罐培訓(xùn)
評論
0/150
提交評論