連續(xù)系統(tǒng)statespacemodel函數(shù)分析方法程序設計定稿_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  連續(xù)系統(tǒng)StateSpaceModel函數(shù)分析方法程序設計</p><p>  [摘要]采用Mathematica的StateSpaceModel分析方法,分析求解低階連續(xù)系統(tǒng)并編寫通用的低階連續(xù)系統(tǒng)解析解求解程序,用實例展示程序的用法和程序求解連續(xù)系統(tǒng)的高效率。</p><p>  [關鍵字]連續(xù)系統(tǒng);Mathematica程序;StateSpaceModel函數(shù);

2、解析解</p><p>  Continuous system StaeSpaceModel function analysis method of program design</p><p>  Abstract:Using Mathematica StateSpaceModel analysis, discussion and analysis meth

3、od of low order continuous system, and the preparation of low order general continuous system analytical solution procedure, With the example of efficient use and program solver for continuous systems </p><p&g

4、t;  Key word: Continuous System ; Mathematica program ; State Space Model function; analytical solution</p><p><b>  引言</b></p><p>  隨著科學技術的不斷進步,越來越多的儀器儀表和民用產(chǎn)品的智能化程度也越高,任何智能化設備的研發(fā),都離不

5、開對設備和產(chǎn)品進行精確的控制,這些控制大多數(shù)都是通過電子電路組成的動態(tài)LTI連續(xù)時域系統(tǒng)來實現(xiàn)的。要設計一款高性價比的產(chǎn)品,必須經(jīng)歷對控制電路的反復研究修改,也即要反復求解動態(tài)控制電路在給定類型的輸入信號激勵下的響應,以期達到最佳性價比。當控制電路比較復雜時,這樣的分析求解就變得非常復雜。于是編程完成分析就顯得十分重要。</p><p>  求解線性動態(tài)時不變系統(tǒng)的解析形式的響應,是一件非常棘手的工作,而且對于復

6、雜系統(tǒng)因為數(shù)據(jù)誤差導致解析解有可能解不出來。所以,編程求解復雜系統(tǒng)是一個必然的趨勢。為了降低編程的難度和代價,我們學習了WolfRam公司最新版的Mathematica9.0.1軟件中的系統(tǒng)分析方法相關內(nèi)建函數(shù)TransferFunctionModel、StateSpaceModel、OutputResponse、StateResponse等函數(shù),發(fā)現(xiàn)這一批函數(shù)內(nèi)部集成了世界一流的求解分析動態(tài)系統(tǒng)的優(yōu)秀算法,用來建模求解、分析LTI連續(xù)

7、、離散動態(tài)系統(tǒng)非常得心應手,于是我選擇了“連續(xù)系統(tǒng)StateSpaceModel函數(shù)分析方法程序設計”這一畢業(yè)設計題目。</p><p>  MATLAB的Simulink建模分析求解連續(xù)LTI動態(tài)系統(tǒng),一是要先構(gòu)建模塊文件并設置系統(tǒng)結(jié)構(gòu)參數(shù)和運行參數(shù),二是要編寫MATLAB程序文件,在其中調(diào)用模塊文件求解系統(tǒng),三是只能給出動態(tài)LTI連續(xù)系統(tǒng)的數(shù)值解。</p><p>  Mathemat

8、ica的建模方法就簡潔的多,一是先根據(jù)系統(tǒng)拓撲結(jié)構(gòu)和元件參數(shù)構(gòu)建或計算出系統(tǒng)的s域系統(tǒng)函數(shù)H[s],二是調(diào)用Mathematica的內(nèi)建函數(shù)TransferFunctionModel、StateSpaceModel創(chuàng)建系統(tǒng)的傳遞函數(shù)模型函數(shù)和狀態(tài)空間模型函數(shù),三是調(diào)用Mathematica的內(nèi)建函數(shù)OutputResponse分別求出系統(tǒng)的解析形式的零輸入響應yzi(t)和零狀態(tài)響應yzs(t),然后再對響應做各種必要的分析的表示。整個

9、分析求解過程不需要建立圖形化的模塊文件,也不需要設置運行參數(shù),提取分析結(jié)果相對Matlab來說極為簡單。</p><p>  正是基于以一理由,我選擇了自己的畢業(yè)設計課題。</p><p>  1 Simulink建模求解LTI系統(tǒng)的思路</p><p>  為了比較Mathematica的建模分析方法與MATLAB的建模分析方法的優(yōu)缺點,我們先簡單介紹Matlab

10、的Simulink建模分析連續(xù)LTI動態(tài)系統(tǒng)的基本步驟。</p><p>  Simulink簡介</p><p>  Simulink是一個用來對動態(tài)系統(tǒng)進行建模、仿真和分析的軟件包,是MATLAB的重要組成部分。它用于可視化的系統(tǒng)仿真,采用系統(tǒng)模塊直觀的描述系統(tǒng)典型環(huán)節(jié)。因此可以十分方便的建立系統(tǒng)而不需要花較多時間編程。Simulink分析和仿真各種動態(tài)系統(tǒng)(包括連續(xù)系統(tǒng)、離散系統(tǒng)和混

11、合系統(tǒng)),它提供了一種圖形化的交互環(huán)境。</p><p>  Simulink提供建立系統(tǒng)模型、選擇仿真參數(shù)和數(shù)值算法、啟動仿真程序?qū)υ撓到y(tǒng)進行仿真、設置不同的輸出方式來觀察仿真結(jié)果等功[4]。</p><p>  Simulink提供了豐富的模塊庫以幫助用戶快速的建立起動態(tài)系統(tǒng)模型。建模時只需要使用鼠標拖放不同模塊庫中的系統(tǒng)模型并將它們連接起來。它外表以方塊圖形式呈現(xiàn),且采用分層結(jié)構(gòu)。S

12、imulink框圖提供了交互式很強的仿真環(huán)境,既可以通過下拉菜單執(zhí)行,也可以通過命令進行仿真。</p><p>  Simulink的特點:</p><p>  (1)基于矩陣的數(shù)值計算;</p><p> ?。?)高級編程語言;</p><p> ?。?)圖形與可視化;</p><p> ?。?)工具箱提供面向具體應

13、用領域的功能;</p><p>  (5)豐富的I/O工具;</p><p> ?。?)提供與其他高級語言的接口;</p><p>  (7)支持多平臺(PC/Macintosh/UNIX)</p><p> ?。?)開放與可擴展的體系結(jié)構(gòu)。</p><p>  1.2 Simulink建模方法步驟</p>

14、<p>  1.2.1分離元件建模方法步驟</p><p>  一般用于結(jié)構(gòu)比較簡單的系統(tǒng)的分析計算。</p><p> ?。?)寫出系統(tǒng)的微分方程;</p><p>  (2)根據(jù)系統(tǒng)微分方程畫出系統(tǒng)框圖;</p><p> ?。?)把畫出的框圖用Simulink中的分離原件進行仿真組合(分離原件建模)。</p>

15、<p><b>  例如:</b></p><p><b>  系統(tǒng)的微分方程為</b></p><p>  畫出系統(tǒng)的框圖如圖1.1:</p><p>  圖 1.1 系統(tǒng)框圖</p><p>  分立元件仿真模塊圖如圖1.2:</p><p>  圖 1.2二

16、階系統(tǒng)分離元件仿真模塊圖</p><p>  仿真模塊圖構(gòu)造好以后設置各元件參數(shù),運行求解即可。</p><p>  1.2.2用傳遞函數(shù)建立系統(tǒng)仿真模塊文件的方法</p><p>  如果系統(tǒng)很復雜的話我們用離散建模的方法來求解系統(tǒng)的時候,我們所創(chuàng)建的模塊文件的結(jié)構(gòu)就會比較復雜,費時費力也不利于我們的研究分析。所以在系統(tǒng)比較復雜的情況下我們用以下方法:</p

17、><p> ?。?)首先寫出系統(tǒng)的微分方程;</p><p> ?。?)用拉普拉斯變換求解出系統(tǒng)S域的系統(tǒng)函數(shù)(傳遞函數(shù));</p><p>  (3)利用傳遞函數(shù)建模。</p><p>  建模主要分為三部分:</p><p>  (1)輸入信號(信號源);</p><p> ?。?)傳遞函數(shù)模塊

18、;</p><p>  (3)數(shù)據(jù)顯示或提取部分。</p><p><b>  例如:</b></p><p><b>  系統(tǒng)微分方程為:</b></p><p>  對函數(shù)取拉布拉斯變換得:</p><p><b>  由上式可得到:</b><

19、/p><p><b>  化簡上式:</b></p><p><b>  得到傳遞函數(shù):</b></p><p>  構(gòu)造傳輸函數(shù)仿真模塊如圖1.3:</p><p>  圖1.3 傳輸函數(shù)仿真模塊圖</p><p>  輸入各元件參數(shù),進行求解即可。</p>&l

20、t;p>  1.2.3用狀態(tài)空間矩陣創(chuàng)建系統(tǒng)仿真模塊文件的方法</p><p>  使用狀態(tài)空間模型的方法求解連續(xù)系統(tǒng)的優(yōu)點是,此方法可以設置系統(tǒng)的初值可以直接求得系統(tǒng)的零輸入響應,進而得到連續(xù)系統(tǒng)的完全解。</p><p>  (1)建立微分方程;</p><p> ?。?)將微分方程轉(zhuǎn)化成為狀態(tài)方程;</p><p> ?。?)利用

21、狀態(tài)方程建模。</p><p><b>  建模主要為三部分:</b></p><p> ?。?)輸入信號(信號源);</p><p> ?。?)狀態(tài)空間模塊;</p><p> ?。?)數(shù)據(jù)的顯示或提取部分。</p><p>  用MATLAB建立狀態(tài)空間函數(shù)的方法示例:</p>

22、<p>  num = [1 2]; *系數(shù)從高到低排列*</p><p>  den = [1 7 12]; </p><p>  mytf = tf(num,den); *構(gòu)造傳遞函數(shù)*</p><p>  [A,B,C,D] = tf2ss(num,den); *構(gòu)造空間狀態(tài)模型*</p><p>  1.2.4

23、Simulink方法解的特點及其適用范圍</p><p>  Simulink方法解的特點:</p><p>  Simulink的求解方法所計算出來的系統(tǒng)所有解都為數(shù)值解,解出的是給定時間點上的響應信號的采樣值,而不是解析函數(shù)的形式,要想得到系統(tǒng)輸出信號的時域演化規(guī)律,還必須再做進一步的反復建模和數(shù)據(jù)擬合。Simulink在對連續(xù)系統(tǒng)進行求解時,其核心是對系統(tǒng)微分或者偏微分方程進行求解。

24、因此,使用Simulink對連續(xù)系統(tǒng)進行求解仿真時所得到的結(jié)果均為近似解,只要此近似解在一定的誤差范圍內(nèi)便可。該誤差是與其系統(tǒng)的采樣間隔有關系,采樣間隔大的話誤差就大,采樣間隔小了,誤差就比較小。我們可以利用Simulink求解出來的數(shù)值解的折線圖來得到系統(tǒng)隨時間變化的趨勢,無法得到系統(tǒng)的解隨著時間變化的關系或者規(guī)律。</p><p>  Simulink方法適用范圍:</p><p> 

25、 該方法可以求解線性和非線性系統(tǒng),即連續(xù)系統(tǒng)。但是因為Simulink方法求解出的是數(shù)值解,所以在使用該方法求解連續(xù)系統(tǒng)的過程中,系統(tǒng)結(jié)構(gòu)必須要是給定的,而且模型中各個部件的參數(shù)值都必須是給定的,不能含有取值待定的參數(shù)。參數(shù)給定后微分方程、系統(tǒng)函數(shù)等才能確定,才能使用該方法求解系統(tǒng)。所以,對于系統(tǒng)結(jié)果未知或者含有未知參數(shù)的系統(tǒng),該方法不適用。</p><p>  2構(gòu)造狀態(tài)空間模型的方法</p>&

26、lt;p>  2.1構(gòu)造系統(tǒng)狀態(tài)空間模型的理論方法</p><p>  狀態(tài)空間模型的理論求解法如下:</p><p>  以一個二階連續(xù)系統(tǒng)為例2.1:</p><p>  根據(jù)系統(tǒng)函數(shù)寫出系統(tǒng)的微分方程:</p><p><b>  我們令:</b></p><p><b> 

27、 可以得到:</b></p><p>  為了更加簡便的計算我們寫成如下的形式:</p><p><b>  令:</b></p><p><b>  得到:</b></p><p><b>  令</b></p><p><b>

28、  那么就得到:</b></p><p>  2.2用Matlab內(nèi)部函數(shù)構(gòu)造系統(tǒng)狀態(tài)空間矩陣的方法 </p><p>  MATLAB方法就是我們上述介紹的Simulink中的第三種方法,是通過編程語句的形式來實現(xiàn)狀態(tài)空間矩陣的構(gòu)造。</p><p>  以例2.1的系統(tǒng)函數(shù)來創(chuàng)建:</p><p>  num = [1 2];

29、 *系數(shù)從高到低排列*</p><p>  den = [1 7 12]; </p><p>  mytf = tf(num,den); *構(gòu)造傳遞函數(shù)*</p><p>  [A,B,C,D] = tf2ss(num,den); *構(gòu)造狀態(tài)空間模型*</p><p>  運行之后即輸出四個矩陣:</p><p

30、>  A = -7 -12</p><p><b>  0</b></p><p><b>  B = 1</b></p><p><b>  0</b></p><p>  C = 1 2</p><p><b>  D

31、 = 0</b></p><p>  這四個矩陣即為系統(tǒng)的狀態(tài)空間矩陣。</p><p>  2. 3 用Mathematica內(nèi)部函數(shù)構(gòu)造系統(tǒng)狀態(tài)空間模型的方法</p><p><b>  傳遞函數(shù)構(gòu)造法。</b></p><p>  在Mathematica中使用傳遞函數(shù)必須有初值,所以傳遞函數(shù)無法直接

32、求解系統(tǒng)的零輸入響應。為了可以求解系統(tǒng)的零輸入響應,我們就要通過傳遞函數(shù)來得到系統(tǒng)的狀態(tài)空間模型。再去進一步的求解,用如下的方法:</p><p><b>  程序:</b></p><p>  Clear[mytf,y]; </p><p>  H[s_]=5(s+2)/(s^2+7s+12); </p><p>

33、  mytf=TransferFunctionModel[H[s],s]; </p><p>  ss=StateSpaceModel[mytf]; </p><p>  yzi[t_]=StateResponse[{ss,{5,2}},0,t][[1]];</p><p>  3 用StateSpaceModel方法求解LTI系統(tǒng)的思路</p>&l

34、t;p>  我們研究狀態(tài)空間模型求解連續(xù)系統(tǒng)的方法是為了方便、快捷、高效率的去解決實際生活中的問題。實際生活中的系統(tǒng)往往是很復雜的,人工求解是非常困難且費力的,所以我們從實際的問題出發(fā)去研究狀態(tài)空間模型的求解方法,希望能得到一個低成本、高效率的方法去解決實際中復雜的連續(xù)系統(tǒng)。Mathematica是一款科學計算軟件,很好地結(jié)合了數(shù)值和符號計算引擎、圖形系統(tǒng)、編程語言、文本系統(tǒng)、和與其他應用程序的高級連接。用Mathematica的

35、StateSpaceModel函數(shù)求解LTI系統(tǒng)時方便又快捷。</p><p>  3.1 StateSpaceModel函數(shù)簡介</p><p>  StateSpaceModel翻譯成中文就是空間狀態(tài)模型的意思,它是Mathematica軟件的一個內(nèi)部函數(shù),這個函數(shù)包含的內(nèi)容非常的豐富。狀態(tài)空間模型既可以求解連續(xù)系統(tǒng)也可以求解離散系統(tǒng)。這里我們主要討論的是StateSpaceModel

36、求解LTI系統(tǒng)的方法和思路。</p><p>  StateSpaceModel基本語法:</p><p>  (1)StateSpaceModel[{a,b,c,d}] </p><p>  表示狀態(tài)矩陣為a、輸入矩陣為b、輸出矩陣為 c 和轉(zhuǎn)移矩陣為 d 的狀態(tài)空間模型.</p><p>

37、 ?。?)StateSpaceModel[{a,b,c,d,e}]</p><p>  表示具有描述器矩陣 e 的描述器狀態(tài)空間模型.</p><p>  (3)StateSpaceModel[tfm]</p><p>  給出正則(proper)TransferFunctionModel 對象 tf 的狀態(tài)空間實現(xiàn)

38、.</p><p> ?。?)StateSpaceModel[{f, g}, {{x1, x10}, ...}, {{u1, u10}, ...}]</p><p>  給出通過函數(shù)  或者函數(shù) 關于點  的泰勒線性化而取得的狀態(tài)空間模型.</p><p> ?。?)

39、StateSpaceModel[eqns, {{x1, x10}, {x2, x20}, ...}, {{u1, u10}, {u2, u20}, ...}, y, ]</p><p>  給出通過輸出為 y、自變量為  的常微分或者差分方程 eqns 關于點  的

40、泰勒線性化而取得的狀態(tài)空間模型。</p><p>  (6)StateSpaceModel 可以表示連續(xù)時間或者離散時間中的標量和多變量系統(tǒng).</p><p>  時間延遲可以用任意狀態(tài)空間模型表示,通過在任意矩陣中使用 SystemsModelDelay.</p><p>  由方程  建模,并且具有狀態(tài) 控制輸入

41、  和輸出 的連續(xù)時間系統(tǒng)可以指定為 StateSpaceModel[{a, b, c, d}].</p><p>  由方程  建模,并且具有狀態(tài) 控制輸入 輸出 和采樣周期的離散時間系統(tǒng)可以指定為 StateSpaceModel[{a, b, c, d

42、},SamplingPeriod→].</p><p>  3.2求解連續(xù)LTI動態(tài)系統(tǒng)解析解的思路和步驟</p><p>  使用StateSpaceModel函數(shù)的方法求解連續(xù)系統(tǒng)的時候不需要系統(tǒng)的微分方程。而是用系統(tǒng)函數(shù)對系統(tǒng)進行求解。該方法的出發(fā)點就是通過拉普拉斯變換將實際問題映射到S域中進行求解。</p><p>  對于一般系統(tǒng)求解步驟:</p&g

43、t;<p> ?。?)用拉普拉斯變換寫出系統(tǒng)的象域代數(shù)方程;</p><p>  (2)對信號源取拉普拉斯變換;</p><p> ?。?)解代數(shù)方程,得到信號源與要研究對象的關系式;</p><p> ?。?)寫出傳遞函數(shù)并用傳遞函數(shù)構(gòu)造狀態(tài)空間模型;</p><p> ?。?)求解系統(tǒng)響應;</p><p

44、>  (6)畫出各響應部分的圖形。</p><p><b>  對于LC電路來說:</b></p><p>  (1)將系統(tǒng)映射到S域;</p><p>  (2)寫出電路各部分的等效電阻;</p><p>  (3)計算得到信號源與要研究對象的關系式;</p><p>  (4)計算求解出

45、系統(tǒng)的傳遞函數(shù);</p><p> ?。?)用傳遞函數(shù)構(gòu)造狀態(tài)空間模型;</p><p>  (6)使用狀態(tài)空間模型求解系統(tǒng)。</p><p>  下面,我們以一個二階系統(tǒng)為例理論上來討論求解LTI系統(tǒng)的思路:</p><p>  二階系統(tǒng)的微分方程為:</p><p>  我們將求解步驟中的1、2兩步同時進行,對等式

46、兩邊同時取拉普拉斯變換,如下所示:</p><p>  整理上式得到代數(shù)方程:</p><p>  化簡代數(shù)方程得到傳遞函數(shù):</p><p>  最后,我們用求解出來的傳遞函數(shù)構(gòu)造狀態(tài)空間模型,并用狀態(tài)空間模型以及傳遞函數(shù)來求解系統(tǒng)的響應。</p><p>  4用StateSpaceModel方法求解LTI系統(tǒng)的程序設計思路</p&

47、gt;<p>  上一個部分我們主要討論的事理論上求解LTI系統(tǒng)的思路,下面我們來整理程序設計的思路,對于求解LTI系統(tǒng)來設計一個通用的程序。</p><p>  程序設計主演分為兩大部分。</p><p>  程序設計的第一部分為求解系統(tǒng)的傳遞函數(shù),省去繁瑣的手動計算過程,將所有的繁瑣計算全部利用編碼交給計算機來做,用Mathematica強大的計算功能來代替人力計算得到系

48、統(tǒng)的傳遞函數(shù)。</p><p>  程序的第二部分為求解系統(tǒng)的響應:</p><p>  連續(xù)系統(tǒng)的完全響應也可以分為零輸入響應和零狀態(tài)響應。</p><p>  零輸入響應是激勵為零時僅由系統(tǒng)的初始狀態(tài){x(0)}所引起的響應,用表示。</p><p>  零狀態(tài)響應是系統(tǒng)的初始狀態(tài)為零時,僅由輸入信號引起的響應,用表示。</p>

49、;<p>  如果系統(tǒng)的初始狀態(tài)不為零,在激勵的作用下,LTI系統(tǒng)的響應為全響應,它是零輸入響應與零狀態(tài)響應之和。</p><p>  在第二部分程序設計中,我們利用第一部分程序求解出來的傳遞函數(shù)調(diào)用TransferFunctionModel函數(shù)來構(gòu)造系統(tǒng)的傳遞函數(shù)模型。然后,我們調(diào)用StateSpaceModel函數(shù)用系統(tǒng)的傳遞函數(shù)模型來進一步構(gòu)造系統(tǒng)的狀態(tài)空間函數(shù)模型。最后,我們就可以調(diào)用Out

50、putResponse函數(shù)直接使用系統(tǒng)的狀態(tài)空間函數(shù)模型來求解系統(tǒng)的零輸入響應、用傳遞函數(shù)模型或者狀態(tài)空間函數(shù)模型求解系統(tǒng)的零狀態(tài)響應,最后得到系統(tǒng)的完全響應,再對系統(tǒng)進行分析研究。</p><p>  整理完編程思路我們就可以進行完整的程序設計。</p><p>  以下是求解三階連續(xù)LTI系統(tǒng)的完整程序設計:</p><p>  Clear["y*&q

51、uot;, "t*", "s*", H];(*清除定義的符號及其數(shù)值*)</p><p>  {R1, R2, R3, c1, c2, L} = {10, 70, 1000, 10^-3, 2*10^-3, 0.1}</p><p>  {p, q, r} = {0.1, 0.2, -0.1};</p><p>  z1 =

52、R3/(1 + R3 c2 s);</p><p>  z2 = z1 + R2 + L s;</p><p>  z3 = z2/(z2 c1 s + 1);</p><p>  u1 = z3/(z3 + R1) us;</p><p>  u2 = z1/z2 z3/(z3 + R1) us;</p><p> 

53、 H[s_] = Simplify[u2/us];</p><p>  Plot[{Abs[H[I 2π f]], 0.5}, {f, 0, 10}, PlotRange→All, </p><p>  AxesLabel→{"f/Hz", "|H(f)|"}, AxesOrigin→{0, 0}]</p><p>  f[t

54、_] = 10 Cos[2πt +π/4] + 5 Cos[4πt +π/4] + </p><p>  2 Cos[20πt +π/4] + 2 Cos[80πt +π/4] + 1.1 Cos[200πt +π/4];</p><p>  F[s_] = LaplaceTransform[f[t], t, s];</p><p>  Plot[f[t], {t,

55、 0, 1}, AxesLabel→{"t/sec", "f(t)"}]</p><p>  tfun = TransferFunctionModel[H[s], s](*連續(xù)系統(tǒng)傳遞函數(shù)模型*)</p><p>  ss = StateSpaceModel[tfun](*連續(xù)系統(tǒng)狀態(tài)空間函數(shù)模型*)</p><p>  yz

56、i[t_] = Chop[Expand[OutputResponse[{ss, {p, q, r}}, 0, t][[1]]], 10^-6];(*零輸入*)</p><p>  Print["yzi(t)=", yzi[t]];</p><p>  Plot[yzi[t], {t, 0, 1}, PlotRange→All, AxesLabel→{"t&qu

57、ot;, "yzi(t)"}]</p><p>  yzs[t_] = Chop[OutputResponse[tfun, f[t], t][[1]] // ExpandAll, 10^-6];</p><p>  Print["yzs(t)=", yzs[t]];</p><p>  Plot[yzs[t], {t, 0,

58、1}, PlotRange→All, AxesLabel→{"t", "yzs(t)"}]</p><p>  Plot[yzi[t] + yzs[t], {t, 0, 1}, PlotRange→All, </p><p>  AxesLabel→{"t", "y(t)"}]</p><p

59、>  5 StateSpaceModel求解LTI系統(tǒng)程序的應用</p><p><b>  5.1程序應用示例</b></p><p>  程序設計完后我們就可以將其應用于實例當中去求解相應的連續(xù)LTI系統(tǒng),下面我們以一個三階的LC電路為實例,對此三階系統(tǒng)進行求解分析。如下圖:</p><p>  Us(t)

60、 U(t)</p><p>  圖5.1 系統(tǒng)電路圖</p><p>  這是一個比較復雜的三階系統(tǒng),為了便于分析求解我們要將電感以及電容等效為電阻,畫出這個電路的S域等效電路圖,如下圖5.2所示:</p><p>  圖5.2 三階系統(tǒng)S域等效電路圖</p>

61、;<p>  根據(jù)等效電路圖得到電路各部分等效電阻為:</p><p><b>  節(jié)點①的電壓為:</b></p><p><b>  節(jié)點②的電壓即為:</b></p><p>  傳遞函數(shù)(系統(tǒng)函數(shù))為:</p><p>  以上分析思路的求解過程我們用編碼的方式完成,交給計算機

62、去計算。</p><p>  電路各部件參數(shù)分別為:</p><p><b>  程序運行結(jié)果:</b></p><p>  以下是求解上述三階電路的程序運行各結(jié)果圖:</p><p>  圖5.3 幅頻特性曲線圖 圖5.4 系統(tǒng)輸入信號圖</p><

63、p>  由圖5.3可以看出此三階系統(tǒng)是一個低通濾波器,而且通頻帶很小,不到2Hz。超過2Hz的都逐漸開始衰減。留下的頻率成分很小都是不超過2Hz的,超過2Hz的頻率成分都舍去不要。</p><p>  如圖5.4所示是這個三階系統(tǒng)的輸入信號,可以看出信號中摻雜著很多高頻成分,是個比較復雜的信號源。我們要對這個復雜的輸入信號進行處理。</p><p>  圖5.5 系統(tǒng)傳遞函數(shù)和系統(tǒng)狀

64、態(tài)函數(shù)模型矩陣圖</p><p>  如圖5.5所示,是Mathematica程序計算出的該三階系統(tǒng)的傳遞函數(shù)H[s]以及經(jīng)過傳遞函數(shù)方法構(gòu)造的該系統(tǒng)的狀態(tài)空間函數(shù)模型。</p><p>  圖5.6 系統(tǒng)零輸入響應圖 圖5.7 系統(tǒng)零狀態(tài)響應圖</p><p>  如圖5.6所示是系統(tǒng)的零輸入響應計算結(jié)

65、果與零輸入響應曲線圖。此程序設計中我們是利用傳遞函數(shù)創(chuàng)建系統(tǒng)狀態(tài)空間模型來對零輸入狀態(tài)進行求解的。</p><p>  如圖5.7所示是系統(tǒng)零狀態(tài)響應曲線圖,我們可以看出經(jīng)過此低通濾波器,過濾掉高頻成分之后的信號曲線看起來光滑了很多。我用程序設計的方法使這個三階系統(tǒng)實現(xiàn)了自己低通濾波的功能,我們在實際的應用中也可以使用該系統(tǒng)對信號進行處理。</p><p>  5.2 StateSpace

66、Model方法與LapLace逆變換方法的比較</p><p>  求解此連續(xù)系統(tǒng)的零狀態(tài)響應除了我們程序中所展示的方法之外還有另外一種方法可以對此連續(xù)系統(tǒng)的零狀態(tài)進行求解,即LapLace的逆變換求解方法,我們對這兩種方法求解連續(xù)系統(tǒng)進行一個簡單的比較。</p><p>  LapLace逆變換的求解方法部分代碼如下:</p><p>  yzs2[t] = In

67、verseLaplaceTransform[H[s] F[s], s, t] // Simplify</p><p>  p1 = Chop[Take[yzs2[t], {1, 3}], 10^-6];</p><p>  p2 = Simplify[TrigReduce[ExpToTrig[yzs2[t] - p1]] // Chop]</p><p>  p =

68、 p1 + p2</p><p>  我們用該方法求解連續(xù)系統(tǒng)的零狀態(tài)響應,并且將其結(jié)果與狀態(tài)空間模型方法的求解結(jié)果進行比較分析,看看兩種方法的不同。</p><p>  圖5.8拉布拉斯逆變換方法結(jié)果圖</p><p>  從結(jié)果圖5.8中我們可以看出,通過拉布拉斯逆變化的方法求解出來的計算結(jié)果是非常復雜的,含有大量的復函數(shù),程序設計中我們沒有辦法利用代碼對其結(jié)果

69、進行簡化,計算機無法識別其同類項。但是我們觀察其結(jié)果可以看出,對于這個結(jié)果的簡化我們?nèi)斯さ倪M行會更加的省時省力,運用程序設計反而使其變得更加的麻煩費力。所以對于求解連續(xù)系統(tǒng)的零狀態(tài)響應來說,程序設計方法的求解我們還是傾向于狀態(tài)空間模型的方法,求解起來更省時省力,得到的計算結(jié)果也更加的簡單。</p><p><b>  6結(jié)語</b></p><p>  本次畢業(yè)設計至

70、此已經(jīng)接近尾聲,在這幾個月的時間里,我通過利用Mathematica強大的數(shù)據(jù)運算功能對于連續(xù)時間的復頻域分析進行深入的研究。在整個設計過程中,我首先對于所學的基礎信號知識進行溫習鞏固,比如S域、拉布拉斯變化、時域采樣、信號頻譜分析等;其次,整個實現(xiàn)過程是通過Mathematica軟件完成的,Mathematica軟件數(shù)學實現(xiàn)方法特別的強,并且內(nèi)容豐富,操作簡便。最后,通過此次畢業(yè)設計,我對設計所用到的軟件有了更加深刻的認識,Mathe

71、matica不僅在數(shù)值計算方面的功能十分強大,而且其圖形仿真功能能夠滿足各個領域的需要,因此Mathematica已經(jīng)成為我們工作學習中不可或缺的軟件。</p><p>  由于Mathematica軟件是專業(yè)性較強的軟件,所以剛開始使用是比較困難的,通過老師的指導、翻閱了大量的相關資料,不能說已經(jīng)掌握了Mathematica軟件的應用,但是對一些基本知識是有所了解的, 在學習的過程中我們進一步對Mat

72、hematica編程中的常用語句、過程已經(jīng)有了初步掌握。</p><p>  這次畢業(yè)設計,使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。這次課程設計終于順利完成,在設計中遇到的運行和調(diào)試問題,最后在老師的耐心指導下,終于游逆而解。在以后的學習過程中我要不段的學習,不斷豐富自己

73、的知識。</p><p><b>  致謝</b></p><p>  歷時將近兩個月的時間終于將這篇論文寫完,在論文的寫作過程中遇到了許多的困難和障礙,都在老師和同學的幫助下克服了。尤其是要感謝指導老師—龍姝明老師,在我寫畢業(yè)論文之前有些需要運用的知識還不是非常的清楚,老師在百忙之中對我們的程序以及我們的學習狀況都有很詳細的指導,對以后的論文起到了很大的幫助。另外,

74、在校圖書館查找資料的時候,圖書館的老師也給我提供了很多方面的支持與幫助。在此向幫助和指導過我的各位老師、各位同學表示最衷心的感謝!感謝這篇論文所涉及到的各位學者。你們思想與成果給我極大多的幫助與啟發(fā),要不然將很難完成本篇論文的寫作。感謝我的朋友,在我寫論文的過程中給予我了很多你問素材,還在論文的撰寫和排版燈過程中提供熱情的幫助。 由于我的學術水平有限,所寫論文難免有不足之處,懇請各位老師和學友批評和指正!</p><

75、p><b>  參考文獻</b></p><p>  [1] 孫云龍,張衛(wèi)東;深入Mathematica編程[J].淄博學院學報(自然科學與工程版).2000年02期</p><p>  [2] 龍姝明,朱杰武.《數(shù)學物理方法》. 陜西人民教育出版社 2002年09月[3] 周麗杰,徐彬.δ函數(shù)匹配法在分析LTI系統(tǒng)中的應用[J].

76、0;張家口師專學報 2003年06期 [4] 馬智超,羅春婭.利用MATLAB實現(xiàn)系統(tǒng)的頻域分析[J]. 大慶師范學院學報 2007年05期 [5] 王本周,基于狀態(tài)空間模型的時序數(shù)據(jù)的處理與分析研究.西南交通大學 2009年 [6] 劉玉瑩,張雋.淺談連續(xù)LTI系統(tǒng)數(shù)學模型的幾種求解方法[J]. 江西科技師范學院學報 2006年06期

77、60;[7] 李昌利,沈玉利.“信號與系統(tǒng)”課程教學中的幾點思考[J]. 高教論壇 2008年03期 [8] 焦方源.《信號與系統(tǒng)》理論教學中的幾種實用方法[J]. 綿陽師范學院學報 2007年08期 [9] 高曉燕,劉曉燕.高職信號與系統(tǒng)教學研究[J]. 中國教育技術裝備 2009年14期 [10] 劉翠響,王寶珠,吳煥麗.信號與系統(tǒng)精品

78、課程建設的探索與實踐[J]. 河北工業(yè)大學成人教育學院學報 2006年03期 [11] 張睿.“信號與系統(tǒng)”輔導課的教學研究與實踐[J]. 合肥工業(yè)大學學報(社會</p><p>  [13] Oppenheim, Alan V. Signals and Systems[M].Prentice Hall.2011年8月.</p><p>  [14

79、] Min Q,Shizhen H. Research on Wavelet Threshold DENOISING Method Based on MATLAB[J].電子器件 ,2012年. </p><p><b>  附錄:</b></p><p>  Clear["y*", "t*", "s*",

80、H];(*清除定義的符號及其數(shù)值*)</p><p>  {R1, R2, R3, c1, c2, L} = {10, 70, 1000, 10^-3, 2*10^-3, 0.1}</p><p>  {p, q, r} = {0.1, 0.2, -0.1};</p><p>  z1 = R3/(1 + R3 c2 s);</p><p>

81、  z2 = z1 + R2 + L s;</p><p>  z3 = z2/(z2 c1 s + 1);</p><p>  u1 = z3/(z3 + R1) us;</p><p>  u2 = z1/z2 z3/(z3 + R1) us;</p><p>  H[s_] = Simplify[u2/us];</p>&

82、lt;p>  Plot[{Abs[H[| 2π f|], 0.5}, {f, 0, 10}, PlotRange→All, </p><p>  AxesLabel→{"f/Hz", "|H(f)|"}, AxesOrigin→{0, 0}]</p><p>  f[t_] = 10 Cos[2πt +π/4] + 5 Cos[4πt +π/4

83、] + </p><p>  2 Cos[20πt +π/4] + 2 Cos[80πt +π/4] + 1.1 Cos[200πt +π/4];</p><p>  F[s_] = LaplaceTransform[f[t], t, s];</p><p>  Plot[f[t], {t, 0, 1}, AxesLabel→{"t/sec",

84、"f(t)"}]</p><p>  tfun = TransferFunctionModel[H[s], s](*連續(xù)系統(tǒng)傳遞函數(shù)模型*)</p><p>  ss = StateSpaceModel[tfun](*連續(xù)系統(tǒng)狀態(tài)空間函數(shù)模型*)</p><p>  yzi[t_] = Chop[Expand[OutputResponse[{ss

85、, {p, q, r}}, 0, t][[1]]], 10^-6];(*零輸入*)</p><p>  Print["yzi(t)=", yzi[t]];</p><p>  Plot[yzi[t], {t, 0, 1}, PlotRange→All, AxesLabel→{"t", "yzi(t)"}]</p>&

86、lt;p>  yzs[t_] = Chop[OutputResponse[tfun, f[t], t][[1]] // ExpandAll, 10^-6];</p><p>  Print["yzs(t)=", yzs[t]];</p><p>  Plot[yzs[t], {t, 0, 1}, PlotRange→All, AxesLabel→{"t&

87、quot;, "yzs(t)"}]</p><p>  Plot[yzi[t] + yzs[t], {t, 0, 1}, PlotRange→All, </p><p>  AxesLabel→{"t", "y(t)"}]</p><p><b>  附錄:</b></p>

溫馨提示

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

評論

0/150

提交評論