通信系統(tǒng)建模_第1頁
通信系統(tǒng)建模_第2頁
通信系統(tǒng)建模_第3頁
通信系統(tǒng)建模_第4頁
通信系統(tǒng)建模_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

湖南科技實驗報告工程學(xué)院學(xué)號:201308002107姓名:陶建敏課程名稱:Matlab/Simulink通信系統(tǒng)建模班級:通信學(xué)號:201308002107姓名:陶建敏課程名稱:Matlab/Simulink通信系統(tǒng)建模班級:通信1301班實驗課時:2實驗項目:Simulink建模仿真基礎(chǔ)實驗時間:2016年4月5日1熟悉simulink工作環(huán)境。2掌握simulink仿真的步驟。3掌握用S函數(shù)編寫Simulink基本模塊。實驗環(huán)境:Windows操作系統(tǒng)下安裝了MATLAB7.X的計算機一臺實驗內(nèi)容:1教材P86實例2.15進行建模仿真。(連續(xù)系統(tǒng))2教材P99實例2.20進行建模仿真。(離散系統(tǒng))3用S函數(shù)實現(xiàn)一個限幅器,當(dāng)輸入信號值小于設(shè)定的最小門限值時,輸出為最小門限值,當(dāng)輸入信號值大于設(shè)定的最大門限值時,輸出為最大門限值,如果信號值介于最小門限和最大門限之間,則直通。(1)寫出限幅器的數(shù)學(xué)模型(最小門限用low表示,最大門限用high表示)。(2)當(dāng)限幅器輸入y(t)=5sin(t)時,求此時限幅器輸出。(3)對S函數(shù)部分進行子系統(tǒng)封裝。(要求:雙擊封裝好的子系統(tǒng)可以設(shè)置門限值low和high)(4)與Simulink基本庫中的Saturation模塊進行對比。數(shù)據(jù)及結(jié)果分析:1:連續(xù)系統(tǒng)實驗代碼:function[sys,x0,str,ts]=ch2example15Sfun(t,x,u,flag)%連續(xù)系統(tǒng)狀態(tài)方程;%x'=Ax+Bu%y=Cx+Du%定義A,B,C,D矩陣A=[010;001;-4-6-3];B=[0;0;1];C=[040];D=0;switchflag,case0%flag=0初始化[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D);%可將A,B,C,D矩陣送入初始化函數(shù)case1%flag=1計算連續(xù)系統(tǒng)狀態(tài)方程(導(dǎo)數(shù))sys=mdlDerivatives(t,x,u,A,B,C,D);case3%flag=3計算輸出sys=mdlOutputs(t,x,u,A,B,C,D);case{2,4,9}%其他作不處理的flagsys=[];%無用的flag時返回sys為空矩陣otherwise%異常處理error(['Unhandledflag=',num2str(flag)]);end%主函數(shù)結(jié)束%子函數(shù)實現(xiàn)(1)初始化函數(shù)function[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D)%sizes=simsizes;%獲取sizes.NumContStates=3;%連續(xù)系統(tǒng)的狀態(tài)數(shù)為3sizes.NumDiscStates=0;%離散系統(tǒng)的狀態(tài)數(shù),對于本系統(tǒng)此句可不用sizes.NumOutputs=1;%輸出信號數(shù)目是1sizes.NumInputs=1;%輸入信號數(shù)目是1sizes.DirFeedthrough=0;%因為該系統(tǒng)不是直通的sizes.NumSampleTimes=1;%這里必須為1sys=simsizes(sizes);str=[];%通常為空矩陣x0=[0;0;0];%初始狀態(tài)矩陣x0(零狀態(tài)情況)ts=[00];%表示連續(xù)取樣時間的仿真%初始化函數(shù)結(jié)束%子函數(shù)實現(xiàn)(2)系統(tǒng)狀態(tài)方程函數(shù)functionsys=mdlDerivatives(t,x,u,A,B,C,D)%系統(tǒng)狀態(tài)方程函數(shù)sys=A*x+B*u;%這里寫入系統(tǒng)的狀態(tài)方程矩陣形式即可%系統(tǒng)狀態(tài)函數(shù)結(jié)束%子函數(shù)實現(xiàn)(3)系統(tǒng)輸出方程函數(shù)functionsys=mdlOutputs(t,x,u,A,B,C,D)sys=C*x;%這里寫入系統(tǒng)的輸出方程矩陣形式即可%注意,如果使用語句sys=C*x+D*u;代替上句,即使D=0,%也要將初始化函數(shù)中的sizes.DirFeedthrough設(shè)為1%即系統(tǒng)存在輸入輸出之間的直通項,否則執(zhí)行將出現(xiàn)錯誤%系統(tǒng)輸出方程函數(shù)結(jié)束(2)S函數(shù)模型和仿真驗證結(jié)果S-Funotion(3)從波形仿真結(jié)果對比分析可知S函數(shù)的仿真和系統(tǒng)函數(shù)的實現(xiàn)的波形是一樣的,可見用S函數(shù)實現(xiàn)的方法正確的。2:離散系統(tǒng)(1)實驗代碼:function[sys,x0,str,ts]=ch2example20Sfun(t,x,u,flag,b,a)%離散系統(tǒng)傳遞函數(shù)的S-函數(shù)實現(xiàn)%參數(shù)b,a分別為H(z)的分母、分子多項式的系數(shù)向量[A,B,C,D]=tf2ss(b,a);%將H(z)轉(zhuǎn)換為狀態(tài)空間方程系數(shù)矩陣switchflag,case0%flag=0初始化sizes=simsizes;%獲取SIMULINK仿真變量結(jié)構(gòu)sizes.NumContStates=0;%連續(xù)系統(tǒng)的狀態(tài)數(shù)是0sizes.NumDiscStates=size(A,1);%離散系統(tǒng)的狀態(tài)數(shù)sizes.NumOutputs=size(D,1);%輸出信號數(shù)目sizes.NumInputs=size(D,2);%輸入信號數(shù)目sizes.DirFeedthrough=1;%該系統(tǒng)是直通的sizes.NumSampleTimes=1;%這里必須為1sys=simsizes(sizes);str=[];%通常為空矩陣x0=zeros(sizes.NumDiscStates,1);%零狀態(tài)ts=[-10];%采樣時間由外部模塊給出case2%flag=2離散狀態(tài)方程計算sys=A*x+B*u;case3%flag=3輸出方程計算sys=C*x+D*u;case{1,4,9}%其他作不處理的flagsys=[];%無用的flag時返回sys為空矩陣otherwise%異常處理error(['Unhandledflag=',num2str(flag)]);End在執(zhí)行仿真之前在MATLAB命令窗口中輸入關(guān)于傳遞函數(shù)和狀態(tài)空間矩陣的轉(zhuǎn)換指令,然后再啟動仿真:b=[21];a=[10.50.8];[A,B,C,D]=tf2ss(b,a);(2)S函數(shù)模型和仿真驗證結(jié)果:從仿真結(jié)果可知用S函數(shù)實現(xiàn)和用狀態(tài)變量的方法以及系統(tǒng)函數(shù)的方法實現(xiàn)的波形一樣,可見用S函數(shù)實現(xiàn)的方法是正確的。3:實驗代碼function[sys,x0,str,ts]=(t,x,u,flag,low,high)switchflag,case0sizes=simsizes;=0;=0;=1;=1;sizes.NumContStatessizes.NumDiscStatessizes.NumOutputssizes.NumInputssizes.DirFeedthrough=1;sizes.NumSampleTimes=1;sys=simsizes(sizes);str=[];x0=[];ts=[-10];%獲取%連續(xù)系統(tǒng)的狀態(tài)數(shù)為3%離散系統(tǒng)的狀態(tài)數(shù),對于本系統(tǒng)此句可不用%輸出信號數(shù)目是1%輸入信號數(shù)目是1%因為該系統(tǒng)是直通的%這里必須為1%通常為空矩陣%初始狀態(tài)矩陣x0(零狀態(tài)情況)%表示連續(xù)取樣時間的仿真case3%flag=3計算輸出ifu>highsys=high;elseifu<lowsys=low;elsesys=u;endcase{1,2,4,9}%其他作不處理的flagsys=[];%無用的flag時返回sys為空矩陣otherwise%異常處理error(['Unhandledflag=',num2str(flag)]);end(1)數(shù)學(xué)模型表達式為:ifu>highsys=high;elseifu<lowsys=low;elsesys=u;end模型及仿真結(jié)果:S-Function(2):當(dāng)限幅器輸入y(t)=5sin(t)時,求此時限幅器輸出S函數(shù)寫的限幅器模型如下:S-FunctionS函數(shù)寫的限幅器仿真結(jié)果:(3)對S函數(shù)部分進行子系統(tǒng)封裝:將S函數(shù)名稱和變量依次寫入以下以下空白處:填好如下:BlockParameters:S-Fuinction—S_FunDtionUeer-definableblc-ck.BlocksdetbewritteninC4FortrandtAdaandziustDcnforzstoS-funDticnstandards.t£Zjuandfla^areautcziaticallypassedtotheS-funDticnbySisulink.^EztxatVparhidetstedetbespecifiedintheJS_funstionparazDeterEJfield.—ParbidstexeS-FunctionNazae:|ch2ezanplel5SfunEditS-FiinctiDnParametere:lowjhi^hOKC^lcpIHelp^.Ply填好無誤后單擊OK鍵,無提示錯誤后方可進行下一步操作:

然后單擊S函數(shù)圖標(biāo)右鍵進行封裝,在然后就是editormaster,將變量寫入弄好之后單擊S函數(shù)圖標(biāo)如下:(4)與Simulink基本庫中的Saturation模塊進行對比:模型如下:S-FunctisnS函數(shù)模型和simulink的限幅模塊仿真結(jié)果如下:從波形可以看出S函數(shù)模型和simulink的限幅模塊仿真結(jié)果波形是一樣的,證明自己寫的限幅器是正確的。

結(jié)論:通過本次試驗我明白了,我們可以通過Simulink中的S函數(shù)來實現(xiàn)仿真建模,還有通過S函數(shù)可以編寫與simul

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論