Matlab仿真應用詳解 講義_第1頁
Matlab仿真應用詳解 講義_第2頁
Matlab仿真應用詳解 講義_第3頁
Matlab仿真應用詳解 講義_第4頁
Matlab仿真應用詳解 講義_第5頁
已閱讀5頁,還剩108頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Matlab仿真應用詳解一、基本概念11、什么是計算機仿真1、仿真定義基本思想:仿真的基本思想是利用物理的或數(shù)學的模型來類比模仿現(xiàn)實過程,以尋求過程和規(guī)律。它的基礎是相似現(xiàn)象,相似性一般表現(xiàn)為兩類:幾何相似性和數(shù)學相似性。當兩個系統(tǒng)的數(shù)學方程相似,只是符號變換或物理含義不同時,這兩個系統(tǒng)被稱為“數(shù)學同構”。 仿真的方法可以分為三類: (1)實物仿真。它是對實際行為和過程進行仿真,早期的仿真大多屬于這一類。物理仿真的優(yōu)點是直觀、形象,至今在航天、建筑、船舶和汽車等許多工業(yè)系統(tǒng)的實驗研究中心仍然可以見到。比如:用沙盤仿真作戰(zhàn),利用風洞對導彈或飛機的模型進行空氣動力學實驗、用圖紙和模型模擬建筑群等都

2、是物理仿真。但是要為系統(tǒng)構造一套物理模型,不是一件簡單的事,尤其是十分復雜的系統(tǒng),將耗費很大的投資,周期也很長。此外,在物理模型上做實驗,很難改變系統(tǒng)參數(shù),改變系統(tǒng)結構也比較困難。至于復雜的社會、經(jīng)濟系統(tǒng)和生態(tài)系統(tǒng)就更無法用實物來做實驗了。 (2)數(shù)學仿真。就是用數(shù)學的語言、方法去近似地刻畫實際問題,這種刻畫的數(shù)學表述就是一個數(shù)學模型。從某種意義上,歐幾里德幾何、牛頓運動定律和微積分都是對客觀世界的數(shù)學仿真。數(shù)學仿真把研究對象(系統(tǒng))的主要特征或輸入、輸出關系抽象成一種數(shù)學表達式來進行研究。數(shù)學模型可分為: 解析模型(用公式、方程反映系統(tǒng)過程); 統(tǒng)計模型(蒙特卡羅方法);(一種基于隨機數(shù)的計

3、算方法)表上作業(yè)演練模型。(用列表的方法求解線性規(guī)劃問題中運輸模型的計算方法。是指線性規(guī)劃一種求解方法。當某些線性規(guī)劃問題采用圖上作業(yè)法難以進行直觀求解時,就可以將各元素列成相關表,作為初始方案,然后采用檢驗數(shù)來驗證這個方案,否則就要采用閉回路法、位勢法或矩形法等方法進行調整,直至得到滿意的結果。這種列表求解方法就是表上作業(yè)法。)然而數(shù)學仿真也面臨一些問題,主要表現(xiàn)在以下幾個方面:現(xiàn)實問題可能無法用數(shù)學模型來表達,即刻畫實際問題的表達式不存在或找不到;找到的數(shù)學模型由于太復雜而無法求解;求出的解不正確,可能是由模型的不正確或過多的簡化近似導致的。(3)混合仿真。又稱為數(shù)學物理仿真,或半實物仿真

4、,就是把物理模型和數(shù)學模型以及實物聯(lián)合在一起進行實驗的方法,這樣往往可以獲得較好的效果。2、計算機仿真計算機仿真也稱為計算機模擬,就是利用計算機對所研究系統(tǒng)的結構、功能和行為以及參與系統(tǒng)控制的主動者人的思維過程和行為,進行動態(tài)性的比較和模仿,利用建立的仿真模型對系統(tǒng)進行研究和分析,并可將系統(tǒng)過程演示出來。12計算機仿真模型與方法1、系統(tǒng)系統(tǒng)是指相互聯(lián)系又相互作用的元素之間的有機組合。這里所指的系統(tǒng)是廣義的,它包含所有的工程系統(tǒng)和非工程系統(tǒng)。電氣、機械和通信系統(tǒng)都是工程系統(tǒng),而經(jīng)濟、交通、管理和生物系統(tǒng)等都是非工程系統(tǒng)。 任何系統(tǒng)都存在三方面需要研究的內容: 實體:組成系統(tǒng)的具體對象。 屬性:實

5、體的特性(狀態(tài)和參數(shù))。即實體、屬性和活動。由于組成系統(tǒng)的實體之間相互作用而引起實體屬性的變化,通常用“狀態(tài)”的概念來描述。研究系統(tǒng)就是研究系統(tǒng)狀態(tài)的改變,即系統(tǒng)的轉變。系統(tǒng)具有四個特性:(1)目的性 (2)集合性(3)相關性 (4)環(huán)境適應性2、模型模型建立的任務是要確定模型的結構和參數(shù)。建立模型有三種途徑: (1)對內部結構和特性清楚的系統(tǒng),即所謂的白箱(多數(shù)的工程系統(tǒng)都屬于這一類),可以利用已知的一些基本規(guī)律,經(jīng)過分析和演繹導出系統(tǒng)模型。 (2)對那些系統(tǒng)結構和特性不清楚或不很清楚的系統(tǒng),即所謂的黑箱或灰箱,如果允許直接進行試驗性觀測,則可以先猜想模型再通過試驗驗證和修正之。 (3)對那

6、些系統(tǒng)結構和特性不清楚或不很清楚但又不允許直接實驗觀測的系統(tǒng)(非工程系統(tǒng)多屬于這一類),則采用數(shù)據(jù)收集和統(tǒng)計歸納的方法來假設模型。 在選擇模型結構時,要以方便達到模型研究的目的為前提。通常遵循下述原則: (1)相似性。即模型與被研究系統(tǒng)具有相似的數(shù)學報述或物理特征。相似原則是選擇模型最重要的原則。 (2)簡單性。一般而言,在實用的前提下,模型越簡單越好。 (3)切題性。模型應該針對研究目的的有關方面,而不是一切方面。 (4)吻合性。模型結構的選擇,應盡可能對利用的數(shù)據(jù)作合理的描述,通常其實驗數(shù)據(jù)應盡可能由模型來解釋。 (5)綜合精度。它是模型框架、結構和參數(shù)集合的一種指標。若有限的信息限制了模

7、型的精度,則應進行各方面精度的平衡和折中。 (6)可辨識性。模型結構必須選擇可辨識的形式。若一個結構具有無法估計的參數(shù),則此結構無實用價值。1.1.3 計算機仿真的步驟 計算機仿真,概括地說是一個“建模一實驗一分析”的過程,即仿真不單純是對模型的實驗,還包括從建模到實驗再到分析的全過程。因此進行一次完整的計算機仿真有以下步驟: (1)列舉并列項目每一項研究都應從說明問題開始,問題由決策者提供,或由熟悉問題的分析者提供。 (2)設置目標及完整的項目計劃目標表示仿真要回答的問題,系統(tǒng)方案的說明,項目計劃包括人數(shù),研究經(jīng)費以及每一階段工作所需要的時間。(3)建立模型和收集數(shù)據(jù)模型和實際系統(tǒng)沒有必要一

8、一對應型開始,然后建立更復雜的模型。 (4)編制程序和驗證只需描述實際系統(tǒng)的本質。利用數(shù)學公式、邏輯公式和算法等來表示實際系統(tǒng)的內部狀態(tài)和輸入輸出的關系。建模者必須決定是采用通用語言如Fortran、C還是專用仿真語言來編制程序。在本書中,我們的選擇是Matlab和其動態(tài)仿真工具simulink,在以下的章節(jié)中,我們會逐步展示使用MATLAB的好處。(5)確認確認指確定模型是否精確地代表實際系統(tǒng)。它不是特性的差異,不斷對模型進行校正的迭代過程。 (6)實驗設計次完成,而是比較模型和實際系統(tǒng)確定仿真的方案、初姑化周期的長度、仿真運行的長度以及每次運行的重復次數(shù)。 (7)生產(chǎn)性運行和分析通常用于估

9、計被仿真系統(tǒng)設計的性能量度。利用理論定性分析、經(jīng)驗定性分析或系統(tǒng)歷史數(shù)據(jù)定量分析來檢驗模型的正確性,利用靈敏度分析等手段來檢驗模型的穩(wěn)定性。 (8)文件清單和報表結果(9)實現(xiàn)表示為框圖為:1.2 仿真實例:報童問題仿真1、報童問題報童每賣一份報紙賺a元,若訂報后賣不出去,則可退回,此時每退一份賠b元,雖然每天賣出的報數(shù)是隨機的,但報童可以根據(jù)以往賣報情況的統(tǒng)計來獲得每天賣k份的概率p(k),試求報童每天期望受益達到最大的訂報量z2、數(shù)學模型設報童每天訂報z份,每天賣出y份,設y的分布為考慮到報童每天的損失情況有如下兩種:(1)供過于求,因退貨造成的平均損失為(2)供不應求,因缺貨造成的平均損

10、失為:所以每天的期望損失費為目標是使得每天期望損失最小的訂報量。反之,就是使報童的每天期望總收益達到最大,寫成目標函數(shù)為:約束條件z受到報童資本的限制。要求解此模型可以用的方法:(1)如果知道p的概率分布?;蛘撸?)枚舉法,但是搜索范圍有限。3、計算機仿真求解對于給定每天訂報量Z值,利用離散隨機變量采樣算法產(chǎn)生給定分布的隨機數(shù)R,用來表示報童每天賣出的報紙數(shù),從而可以計算出一天的損失以及一個階段的平均損失。(key:如何產(chǎn)生服從給定分布的隨機變量?)而且在實際應用中分布并非總是給定的,需要搜集數(shù)據(jù),從中辨識分布,進行參數(shù)估計。4、計算機仿真程序注:假設在均勻分布條件下5、仿真結果與分析z,s=

11、baotong(5,10,0.2,0.4)6、報童問題模擬系統(tǒng)的推廣(1)求每天的賣出報數(shù)服從任意分布的情況下,使報童受益最大的最優(yōu)訂報量Z(2)對報紙總發(fā)行量進行測算(3)適當修改仿真系統(tǒng),可將其用于企業(yè)的訂貨和庫存策略研究1.3 隨機變量的產(chǎn)生這一節(jié)假定分布函數(shù)已經(jīng)確定,而主要介紹產(chǎn)生具有這種分布的隨機變量的方法。這些方法的基礎是獨立均勻分布U(0,1)的隨機源,在MATLAB中提供了產(chǎn)生U(0,1)分布的隨機數(shù)的函數(shù)。此外還提供了產(chǎn)生各種分布隨機數(shù)的函數(shù)。1.3.1均勻分布隨機數(shù)的產(chǎn)生大多數(shù)隨機數(shù)發(fā)生器是各種同余發(fā)生器,由Lehmer在1951年提出的產(chǎn)生0到m-1之間的數(shù)C=0時為乘同

12、余法,不為零時為混合同余法。對于二進制機器,可以按照下面規(guī)則選擇a和m1.3.2、隨機變量的產(chǎn)生1、反函數(shù)法理論基礎是概率積分變換原理:設X是一個0到1間均勻分布的隨機變量U(0,1)其采樣值為x, 為滿足概率分布F(y)的隨機變量。因此產(chǎn)生變量Y的隨機數(shù)y可以分為兩步:例如:產(chǎn)生U(a,b)隨機數(shù)y韋伯分布,在可靠性問題中有廣泛的應用。2、卷積法3、產(chǎn)生正態(tài)分布的隨機數(shù)有兩種方法:(1)近似法理論基礎為概率論中的中心極限定理,可以用多種相互獨立的均勻分布隨機數(shù)來產(chǎn)生正態(tài)分布,比較著名的是隨機數(shù)的個數(shù)選12個,即:該方法缺點是精度不夠.(2)直接變換法因為正態(tài)分布的反函數(shù)無法用解析式表達,所以

13、不能用反函數(shù)方法產(chǎn)生,直接變換法的步驟如下:4、離散隨機變量采樣的直接變換法5、泊松分布隨機數(shù)的產(chǎn)生泊松分布在排隊論和軍事運籌學中是一種常見的隨機數(shù)。它的產(chǎn)生當然可以采用直接變換法,但其計算量會很大。這里不作證明地介紹一種簡單的算法:注意:不管使用哪種方法產(chǎn)生何種分布的隨機數(shù),都應該對所產(chǎn)生的隨機數(shù)進行統(tǒng)計檢驗。1.4 輸入數(shù)據(jù)的分析輸入數(shù)據(jù)時仿真實驗的動力,如在排隊系統(tǒng)中,典型的輸入數(shù)據(jù)是到達的時間間隔和服務時間的分布。要得到一個正確的輸入數(shù)據(jù)模型需要4個步驟:(1)收集原始數(shù)據(jù) (2)基本統(tǒng)計分布的辨識,如用頻數(shù)分布或直方圖的方法作出分布假設;(3)在上面所作的假設分布前提下,估測分布的參

14、數(shù);(4)進行擬合度檢驗,以確定所假設的分布形式是否與收集到的數(shù)據(jù)吻合。如果不吻合,返回到第(2)步重新作出假設。若實驗多次仍不吻合,則使用經(jīng)典的分布形式。說明:分布的辨識:這一步的目的是對所收集的數(shù)據(jù)的概率分布形式作出假設,以便進行后面的參數(shù)估計和分布的假設檢驗。首先要畫出頻數(shù)分布或直方圖。直方圖的數(shù)據(jù)取值范圍一般是等寬的,當然有時也用到不等寬的區(qū)間。在畫直方圖中,分組區(qū)間的組數(shù)依賴于觀察次數(shù)以及數(shù)據(jù)的分散程度。經(jīng)驗的法則是選擇樣本量的平方根。對于連續(xù)數(shù)據(jù)的直方圖,一般可以將每一區(qū)間頻數(shù)中點連接起來便于觀察。說明:常用估計量說明:擬合度檢驗常用的檢驗方法:卡方分布個科學的完整的仿真研究,還應

15、包括對輸出結果的分析。輸出分析就是對仿真中所產(chǎn)生的數(shù)據(jù)進行分析,其目的在于預測一個系統(tǒng)的性能或比較兩個甚至多個不同系統(tǒng)設計的性能。1.5 離散系統(tǒng)仿真1.5.1離散系統(tǒng)概述 若系統(tǒng)中狀態(tài)的變化是在某些離散點或量化區(qū)間上發(fā)生,這樣的模型稱為離散事件模型,對應的系統(tǒng)稱為離散事件系統(tǒng)??陀^現(xiàn)實中,這樣的系統(tǒng)是大量存在的。它不僅存在于工程系統(tǒng)之中,而且還大量出現(xiàn)于非工程系統(tǒng)(如經(jīng)濟、社會和生物)領域之中。例如,市場貿易、庫存管理、設備裝修、人口控制和交通管理等系統(tǒng)。在這種系統(tǒng)的研究、開發(fā)、設計和規(guī)劃等工作中,人們經(jīng)常需要了解哪些是系統(tǒng)的控制因素以及它們對系統(tǒng)穩(wěn)定性和發(fā)展進程等方面的影響。例如,在經(jīng)濟領

16、域中,商品的價格可能會在平均價格水平上發(fā)生周期性波動或者臨時出現(xiàn)對商品價格的控制失靈。人們希望能夠預測這些現(xiàn)象并對他們進行控制。1離散系統(tǒng)的基本要素 離散系統(tǒng)的基本要素主要有: (1)實體。一般指系統(tǒng)所研究的對象。用系統(tǒng)的術語說,它是系統(tǒng)邊界內的對象,系統(tǒng)中流動的或活動的元素都可以成為實體。例如,企業(yè)生產(chǎn)經(jīng)營系統(tǒng)中,采購部、北京時間、制造車間和銷售部門等均可稱為實體。 (2)屬性。實體由它的屬性來描述,屬性反映實體的某些性質。例如,在商店系統(tǒng)中的顧客是一個實體,性別、年齡、優(yōu)先權、購物時間、排隊時間、服務時間以及購物費用等便是它的屬性。 (3)時刻。在系統(tǒng)的某個時間數(shù)值上,至少有一個實體的屬性

17、被改變,則稱此時間數(shù)值為時刻。 (4)間隔。相鄰兩個時刻之間的持續(xù)時間稱為間隔。 (5)狀態(tài)。在某個確定時刻,對系統(tǒng)實體和屬性的描述稱為狀態(tài)。(6)事件。在某個時刻,系統(tǒng)狀態(tài)變化的產(chǎn)生,稱為一個時間, “事件”是改變系統(tǒng)狀態(tài)的實體的瞬間行為。(7)活動。文體的一個持續(xù)期間稱為活動。活動的開始或結束的瞬間則是一事件。 (8)進程。進程由若干事件及若干活動組成,一個進程描述了它所包括的事件及活動間的相互邏輯關系及時序關系。如,一個顧客到達系統(tǒng),經(jīng)過排隊,直到服務員為其服務完畢后離去可稱為一個進程。2、離散系統(tǒng)仿真模型的結構FEL:未來事件表,存放表示所有當前正在進行的活動的結束事件,每一個事件記錄

18、至少包含兩項:事件時間和事件類型。一般有如下組成部分:(1)系統(tǒng)狀態(tài)。它是由一組系統(tǒng)狀態(tài)變量構成,用它來描述系統(tǒng)在不同時刻的狀態(tài)。(2)模擬時鐘。用來提供模擬模型當前時刻的變量,它描述系統(tǒng)內部的時間變化。(3)時間表。在模擬過程中按時間順序所發(fā)生的事件類型和時間對應關系的表,稱為時間表。(4)統(tǒng)計器。在計算機仿真中往往設計一些工作單元,用來控制和存儲仿真過程中結果的統(tǒng)計信息,并進行統(tǒng)計計數(shù)。(5)定時子程序。該子程序可依據(jù)時間表來確定下一個事件,并將模擬時鐘報移到卜個事件的發(fā)生時間。(6)初姑子程序。在開始仿真時對系統(tǒng)進行初姑化的子程序。(7)事件子程序。一個事件子程序對應于一種類型的事件,它

19、在相應事件發(fā)牛時,就轉入該事件:子程序進行處理,更新系統(tǒng)狀態(tài)。 (8)仿真報告子程序。它在仿真結束時,用來計算與打印仿真結果。 (9)主程序。它用來調用定時子程序,控制整個系統(tǒng)的仿真過程,并確定下一事件,傳遞控制給各事件子程序以更新系統(tǒng)狀態(tài)。3、模擬時鐘模擬時鐘和實際時鐘的區(qū)別在于:前者是離散的,后者是連續(xù)的。模擬時鐘的讀數(shù)應與現(xiàn)實系統(tǒng)中事件發(fā)生的時間·一致,但模擬時鐘的時間決不等于計算機進行模擬運行的時間。仿真運行時間完全取決于被仿真系統(tǒng)的特點、模型復雜的程度,以及模擬時鐘所取單位的大小。例如,當模擬一個經(jīng)濟系統(tǒng)時,模擬時鐘的單位可以取月或年。這樣,即使現(xiàn)實系統(tǒng)運行了幾年甚至幾百年

20、,而高速計算機用于仿真的運行可以在幾分鐘內完成。1.5.2離散系統(tǒng)仿真的基本方法1、基本策略 離散系統(tǒng)仿真的基本策略有三種,分別是事件調度法(Event Scheduling)、活動掃描法(Activity Scanning)和進程交互法(ProcessInteraction)。(1)事件調度法離散系統(tǒng)中最基本的概念是事件。用事件的觀點來分析真實系統(tǒng),通過定義事件及每個事件發(fā)生引起系統(tǒng)狀態(tài)的變化,按時間順序確定并執(zhí)行每個事件發(fā)生時相關的邏輯事仍:,這就是事件調度法的基本思想。按這種策略建立模型時,所有事件均放在事件表中。模型中設有一個時間控制成分,該成分從事件表中選擇具有最早發(fā)生時間的事件,并

21、將模擬時鐘修改到該事件發(fā)生的時間,再調用與該事件相應的事件處理模塊,該事件處理完后返回時間控制成分。這樣,事件的選擇與處理不斷地進行,直到仿真終止的條件滿足或程序事件產(chǎn)生為止。 (2)活動掃描法有時,事件發(fā)生不僅與時間有關,而且與其他條件有關,即只有滿足某些條件時才會發(fā)生。在這種情況下,采用事件調度法就顯示出這種策略的弱點。原因在于,這類系統(tǒng)的活動持續(xù)時間具有不確定性,因而無法預定活動的開始或終止時間?;顒訏呙璺ㄊ轻槍哂猩鲜鎏攸c的系統(tǒng)產(chǎn)生的,這種策略的基本思想:系統(tǒng)由成分組成,而成分包含活動,這些活動必須滿足某些條件,每一個成分均有一個相應的活動子進程;仿真過程中,活動的發(fā)生時間作為條件之一

22、,而且具有較高的優(yōu)先權。(3)進程交互法離散系統(tǒng)仿真的第三種方法是進程交互法。我們知道,一個進程包含若干個有序事件及有序活動。進程交互法采用進程描述系統(tǒng),將模型中的主動成分歷經(jīng)系統(tǒng)時所發(fā)生的事件及活動按時間順序進行組合,從而形成進程。一個成分一旦進入進程,它將完成該進程的全部活動。進程交互法既可預定事件,又可對條件求值,因而它兼有事件調度法及活動掃描法兩者的特點。一般很少采用這種方法。該方法被廣泛采用。但實現(xiàn)和設計復雜。第二章 用MATLAB實現(xiàn)靜態(tài)仿真2.1、MATLAB中的程序設計2、決策:控制流2.2 仿真應用:輸入數(shù)據(jù)分析2.2.1 隨機變量的產(chǎn)生兩個基本的函數(shù)用于產(chǎn)生隨機數(shù):1、ra

23、nd產(chǎn)生(0,1)之間的均勻分布的隨機數(shù)或向量。2、randn 產(chǎn)生標準正態(tài)分布的隨機數(shù)如何利用rand和randn產(chǎn)生泊松分布的隨機數(shù)。我們可以利用Matlab提供的統(tǒng)計工具箱生成各種分布的隨機數(shù)。4、randomx1 = random('Normal',0,1,2,4);產(chǎn)生2*4的正態(tài)分布序列x2 = random('Poisson',1:6,1,6);分別產(chǎn)生參數(shù)為1到6的泊松分布數(shù)值Y = random(name,A) returns random numbers Y from the one-parameter family of distribut

24、ions specified by name. Parameter values for the distribution are given in A.2.2.2輸入數(shù)據(jù)的分析收集畫出直方圖參數(shù)估計擬合度檢驗 的分析方法1、Matlab中畫直方圖的函數(shù) Nhist(Y), 其中Y指輸入的數(shù)據(jù)向量,(這里既可以行向量,也可以是列向量),但如果Y為矩陣則看成幾個列向量分別處理。由于沒食指定區(qū)間如何劃分,函數(shù)缺省的將輸入數(shù)據(jù)的范圍等寬的劃分為10塊。輸出N返回一頻數(shù)矢量。 Nhist(Y, M),其小M足一個標量,指定分塊的個數(shù)。 N=hist(Y,X),其中x是個向量,用以指定每塊的中心值,這就

25、使得用戶具有定義非等寬分塊的能力,如果想更隨意的定義塊的邊界就要使用histc函數(shù)。此外,hist還可以返回每個小塊的中心值,調用形式為X,N=hist(),如果調用時沒有輸出參量,則函數(shù)僅畫直方圖。注意:All elements in vector Y or in one column of matrix Y are grouped according to their numeric range. Each group is shown as one bin.函數(shù)bar(n)用來畫出直方圖。比較高斯分布和泊松分布的直方圖,不難發(fā)現(xiàn)它們之間形狀上的差別,高斯分布的直方圖 一般關于某條軸對稱,

26、而泊松分布稍微向左邊偏一點。這些特征分別與各自的概率密度函數(shù)圖像相對應。至此就可以對輸入數(shù)據(jù)的分布形式作出判斷,再進行參數(shù)估計。2、參數(shù)估計Matlab中計算兩個統(tǒng)計量均值和樣本方差的函數(shù)分別是mean和std。當?shù)?個下標不變,第二個下標變化時說明列不變,行數(shù)一直變化。因此是對每一行求平均。Mean(d,1)表示對每一列求平均,當dim維數(shù)超過2時,則結果為d。對矩陣求標準方差使用std函數(shù)。這些函數(shù)缺省情況下都是按列向量進行的,但都可以自定義成按行向量進行分析。例如:I就是向量Y按元素值升序排列后下標的相應排序。Matlab統(tǒng)計工具箱中有許多專門的函數(shù)用來進行參數(shù)估計。如poissfit,

27、 betafit, binofit, expfit, gamfit, mle, normfit, unifit, weibfit等,其中mle是極大似然估計。以poissfit為例:3、擬合度檢驗有以下幾個步驟:(3)根據(jù)樣本的自由度以及檢驗前給定的顯著性水平,在卡方表例查出作出判決的閾值,并將檢驗統(tǒng)計量與之相比較。若大于閾值,則擬合不好,需要重新假設,否則說明合理。理論頻數(shù)的計算需要一些技巧。計算理論頻數(shù)的步驟:diff用來求差分和近似導數(shù)。Y = diff(X) calculates differences between adjacent elements of X. If X is a

28、 vector, then diff(X) returns a vector, one element shorter than X, of differences between adjacent elements:X(2)-X(1) X(3)-X(2) . X(n)-X(n-1)If X is a matrix, then diff(X) returns a matrix of row differences:X(2:m,:)-X(1:m-1,:)In general, diff(X) returns the differences calculated along the first n

29、on-singleton (size(X,dim) > 1) dimension of X.Y = diff(X,n) applies diff recursively n times, resulting in the nth difference. Thus, diff(X,2) is the same as diff(diff(X).Y = diff(X,n,dim) is the nth difference function calculated along the dimension specified by scalar dim. If order n equals or

30、exceeds the length of dimension dim, diff returns an empty array.2.3 仿真應用之輸出分析2.3.1圖形函數(shù)Figure,plot,xlabel,ylabel,legend,title等。子圖繪制subplot2.3.3曲線插值與擬合1、曲線擬合2、一維插值長度。3、三次樣條插值繪制一個圓的過程。2.4 靜態(tài)仿真應用實例2.4.1二進制通信系統(tǒng)的蒙特卡洛仿真1、問題通信理論中對某種通信方式的誤碼率的估算。2、模型建立二進制通信中,0和1組成的二進制數(shù)據(jù)采用兩個波形傳播,設數(shù)據(jù)率為R bit/s,發(fā)送每個比特更具如下規(guī)則映射為相應

31、的波形:Tb為事件間隔,這個映射的過程也稱為脈沖調制。通信理論中,假定數(shù)據(jù)比特中0和1出現(xiàn)的概率相同,各為0.5對于傳輸信號的信道通常用加性高斯白噪聲信道(AGWN)來近似。即在傳輸?shù)男盘柹席B加一個高斯隨機過程,因此得到接收波形為:最佳接收機的組成結構:選擇不同的傳輸信號,相關器的輸出就會有不同的結果,如,傳輸信號s0,s1滿足下面的條件:第一個表達式的意思是指兩個信號正交,后一個等式要求兩個信號的能量相同,這種情況下可以導出:在0被發(fā)送的前提下:(如何導出?)1被發(fā)送的前提下:相關器的判決準則是當r0>r1時判定接收波形代表的比特為0,否則為1。如果判斷錯誤,就產(chǎn)生了誤碼。誤碼率的解析

32、式為:在通信理論中通常定義信噪比參數(shù)作為系統(tǒng)的一個參數(shù),定義為:3、二進制通信系統(tǒng)的蒙特卡洛仿真根據(jù)前面導出的模型,可以畫出仿真的系統(tǒng)模型。分為四個部分:二進制數(shù)據(jù)源產(chǎn)生模塊,信道干擾模塊,判決器模塊,統(tǒng)計誤碼率的比較計數(shù)模塊。二進制序列的產(chǎn)生過程:首先使用隨機數(shù)發(fā)生器生成一個(0,1)均勻分布的隨機數(shù),小于0.5的為0,大于0.5的為1.信道干擾模塊的作用是根據(jù)數(shù)據(jù)源的輸出時0還是1來確定判決變量r0,r1的輸出。噪聲的產(chǎn)生:產(chǎn)生兩個相互對立的高斯分布的隨機數(shù)序列,均值為0。整個模塊的效果為:如果數(shù)據(jù)源的輸出為0,則r0=n0+E,r1=n1;如果輸出為1,z則r0=n0,r1=n1+E。仿

33、真的目的是畫出誤碼率和信噪比的關系曲線,并最終和理論計算的結果比較。需要在仿真中不斷改變信噪比SNRMatlab仿真程序為:計算結果如下:2.4.2 排隊系統(tǒng)仿真動態(tài)仿真需要使用動態(tài)系統(tǒng)建模和仿真工具Simulink。1、排隊系統(tǒng)簡介如超市付款,病人在醫(yī)院看病,銀行取款,計算機網(wǎng)絡中數(shù)據(jù)的存儲轉發(fā),電話局的占線問題,交通樞紐的車船堵塞和疏導,水庫的存儲調節(jié)等都屬于排隊現(xiàn)象。數(shù)學上,研究排隊系統(tǒng)的理論是排隊論。排隊系統(tǒng)有三個基本組成部分: (1)到達模式指動態(tài)文體按怎樣的規(guī)律到達,描寫實體到達的統(tǒng)計特性。到達模式按顧客到來的方式可能是一個一個的也可能是成批的;按相繼到達的間隔時間可以是確定的,也

34、叫以是隨機的;到達過程可以是平穩(wěn)的也可以是非平穩(wěn)的。 (2)服務機構指同一時刻有多少服務設備可以接納動態(tài)實體,它們的服務需要多少時間。它也具有一定的分布服務機構除了指服務時間外,還應該考慮到不同的排列方式。 (3)排隊規(guī)則指對下一個實體服務的選擇原則。通用的排隊規(guī)則包括先進先出(FIFO)、后進先出(LIFO)和隨機服務等(SIRO)。研究排隊系統(tǒng)人們關系的特性有:隊列長度,顧客等待時間,服務機構空閑時間或服務率。根據(jù)上面三個組成部分的不同可以對排隊系統(tǒng)進行分類,用符號表示為X/Y/Z其中X代表間隔時間的分布,Y代表服務時間的分布,Z代表丙類的服務設備數(shù)目。表示相繼到達時間間隔或服務時間的分布

35、的符號是:如:M/M/1表示到達時間為負指數(shù)分布,服務時間為負指數(shù)分布,單服務設備的排隊系統(tǒng)排隊系統(tǒng)的理論分析過程相當復雜難懂,很多情況只有近似結果。計算機仿真時研究排隊系統(tǒng)的一種方式,以M/M/K的仿真為例介紹此方法。2、M/M/K的計算機仿真排隊系統(tǒng)是典型的離散動態(tài)系統(tǒng)。用一種靜態(tài)仿真的思想實現(xiàn)M/M/1的計算機仿真排隊系統(tǒng)的每個動態(tài)實體的狀態(tài)可以有三個量來反映:與前一個實體到達的時間間隔,在排到自己服務前的等待時間以及服務時間。其中服務時間和到達時間間隔服從指數(shù)分布,不受其他因素影響。開始服務前的等待時間則要受到排在前面的動態(tài)實體的狀態(tài)影響。更新算法的偽代碼為:其中wait_time(i

36、)表示實體i從到達起到開始接收服務的等待時間,server_time(i)表示實體i接收服務的時間,arr_interval(i)表示i與前一個的到達間隔時間。Matlab仿真程序為:仿真結果與理論推導的結果相比較,會發(fā)現(xiàn)在實體數(shù)很大的情況下,兩者很接近。3、仿真程序的改進與推廣盡管上面程序是針對M/M/1的,但只需要很小的改動就可以變成其他情況,如采用不同的隨機數(shù)發(fā)生器,可轉換成G/M/1,D/M/1,G/M/1等對于多服務器的情況如何?改成以時間為參數(shù)的情況?第三章 Simulink入門3.1 simulink簡介3.1.1 什么是SimulinkSimulink是Matlab提供的實現(xiàn)動

37、態(tài)系統(tǒng)建模和仿真的一個軟件包。使用戶把精力從編程轉向模型的構造。使用Simulink構造好模型后,用戶可以進行仿真,等待結果,或者改變參數(shù),再運行。至于像各個模塊在運行時如何執(zhí)行,時間是如何采樣,時間是如何驅動等細節(jié)性問題根本不用操心,Simulink都已經(jīng)替我們做好了。3.1.2 Simulink模型特點以dblcart1模型為例,這是一個雙質量彈簧系統(tǒng)在光滑平面上受一個周期力情況下的運動狀態(tài)的程序Simulink的三個特性:(1)和實際示波器輸出相似的圖形化顯示結果的功能(2)層次性。頂層系統(tǒng)和子系統(tǒng)的概念(3)SImulink為用戶提供了一種封裝子系統(tǒng)的功能,用戶自定義系統(tǒng)的圖標和設置參

38、數(shù)對話框。如上面模塊的State estimator和inputs &sensors模塊3.2 創(chuàng)建一個簡單的模型正弦波發(fā)生器在source子庫,積分器在連續(xù)系統(tǒng)子庫,復用器在信號和系統(tǒng)子庫,示波器在sinks子庫。運行結果如下:3.3 熟悉Simulink模型窗口信號線和信號模塊的標注,通過在附近雙擊的方法輸入標簽3.4鍵盤和鼠標操作Ctrl鍵的作用只需要在模型窗口中雙擊就可以添加注釋。3.5 模塊庫簡介(1)Sources模塊:包含了產(chǎn)生信號的模塊,如Sine Wave,Random Number等等(2)Sinks模塊:包含的模塊用于顯示或者寫模塊的輸出,如Scope模塊,該庫中

39、的模塊還可以把輸出寫入文件中或者是保存變量到MATLAB空間中。(3) Discrete庫,包含了描述離散時間系統(tǒng)組件的模塊。典型的有Discrete Transfer Fcn模塊(實現(xiàn)離散傳遞函數(shù)),Discrete Filter模塊(實現(xiàn)IIR和FIR濾波器)等(4)Continuous庫,包含了描述線性函數(shù)的模塊,典型的代表有Derivative模塊(輸出輸入信號的微分),Integrator模塊(對輸入信號進行積分),State-Space模塊(實現(xiàn)線性狀態(tài)空間系統(tǒng))等(5)Nonlinear庫,包含的模塊描述非線性函數(shù)。如Quantizer模塊(將一個信號按一定間隔進行離散化),sw

40、itch模塊(在兩個信號之間進行切換)(6)Math庫,包含了描述一般數(shù)學函數(shù)的模塊,其中的模塊的功能就是將輸入信號按照模板塊所描述的數(shù)學運算函數(shù)計算,并把結果作為輸出信號輸出,如Abs模塊,Complex to Magnitude-Angle模塊(求一個復數(shù)信號的相位和模)等(7)Functions&Tables模塊,包含了描述通用函數(shù)和查詢表的模塊。如S-Function模塊(將S函數(shù)文件和Simulink模型結合的模塊)。Matlab Fcn模塊(將Matlab函數(shù)或者表達式作用于輸入信號)(8)Signal & Systems庫,它里面的模塊允許服用信號(MUX)或者分

41、離信號(Demux),實現(xiàn)外部的輸入和輸出(Import Outport),傳遞數(shù)模到模型中的其他部分,建立子系統(tǒng)等功能。各個庫中詳細的模塊:第四章 Simulink詳解4.1.1 Simulink里面的模塊1、Simulink里的模塊分為最基本的兩類:非虛擬模塊和虛模塊。非虛擬模塊在一個系統(tǒng)仿真中扮演重要角色,向模型里添加或刪除一個非虛擬模塊會改變仿真的行為。虛模塊的作用有助于用戶圖形化的組織好模型,不影響模型的行為。還有一類模塊,在不同的場合表現(xiàn)不同,這稱為條件虛模塊。等價于Mux模塊在圖形組織上的作用就是減少了連線的數(shù)目和scope模塊的數(shù)目。2、標量信號和向量信號向量信號是多個信號的集

42、合,它對應著實際系統(tǒng)中幾條并行連線的合成。在Simulink中充當信號傳遞的直線只是一個圖形化的虛擬形式,實際上信號的傳遞時依賴變量的,向量信號實際上指輸入變量是一個向量。讓模塊輸出為向量,需要設置參數(shù)。通過雙擊模塊進行相應的設置。有的模塊有多個輸入,如果不同的輸入分別對應著標量和向量時,Matlab的處理:輸出為向量,對標量進行擴展,稱為輸入信號的標量擴展。還有一種稱為參數(shù)的標量擴展:Sine wave的幅度設成1 2 3,而gain模塊的gain屬性也設置為1 2 3,意思是把輸入向量信號的三個信號按順序分別放大1,2,3倍。而當gain屬性設置成一個標量時,Simulink會將該參數(shù)自動

43、擴展成和輸入同長度的向量,這里是1 1 1.4.1.2 Simulink的模塊庫幾個概念:當用戶從庫里用拖曳操作將庫模塊拷貝到用戶的模型里時,Simulink會在模型里建立一個參考模塊。同時建立了一個參考模塊到它對應的原庫模塊的鏈接。這個鏈接的作用是在參考模塊里保存了它的原模塊的信息,以便用戶在更新視圖表時,Simulink能按照模型中引用模塊的保存的信息,搜尋它對應的庫模塊,并根據(jù)它重新產(chǎn)生一個參考模塊來代替原模塊。參考模塊和庫模塊是靠名稱連接起來的,也就是參考模塊所連接的特定模塊在進行復制時的名稱才有效。(即拷貝的同時也拷貝了對應的模塊信息)可以按下向的幾種方法來修復無法確定的鏈接: (1

44、)刪除未鏈接的參考模塊,將庫模塊重新復制到模型里。 (2)把包含所要求模塊的目錄加到MATLAB的搜索路徑里,然后再從模型選擇窗口選擇Update Datagram命令更新圖表。 (3)雙擊參考模塊,在彈出的設置對話框里改正路徑按Apply按鈕關閉對話框。 可以使用命令libinfo查看庫信息。例如:每一部分對應的含義為:LibData(n).Block = 'Name' or handle of block with library link LibData(n).Library = 'Name' of library MDL file LibData(n).

45、ReferenceBlock= 'Full path name to linked block in library' LibData(n).LinkStatus = 'resolved', 'unresolved' or 'inactive'LibData是一個結構,可以像結構體一樣訪問結構體的成員。如LibData.Block可以使用Edit 菜單中的Link Options中的Disabled Link/Restore Link來去掉/恢復參考模塊的鏈接,這樣庫模塊的任何改變將不會影響用戶模型中的模塊(已經(jīng)不是參考模塊了)也

46、可以使用命令set_param命令來實現(xiàn)。4.2 模擬方程1、將攝氏溫度轉化為華氏溫度首先考慮所需要的模塊:(1)Ramp模塊,用來產(chǎn)生溫度信號,位于Source庫(2)Constant模塊,用來產(chǎn)生一個常數(shù)32,位于Source庫(3)Gain模塊,將輸入信號乘上9/5,來自Math庫(4)Sum模塊,將兩個量相加,來自Math庫(5)Scope模塊,顯示輸出結果,來自Sink庫然后將這些模塊復制到模型窗口中給Gain模塊和Constant模塊設置合適的參數(shù),通過雙擊模塊打開參數(shù)設置對話框輸入相應的數(shù)值然后連接各模塊。如下圖所示:2、簡單連續(xù)系統(tǒng)的建模如何對微分方程進行建模,如下方程:其中u

47、(t)是幅度為1,頻率為1rad/s的方波信號,積分模塊將x(t)的微分信號積分來獲得x(t)。需要用到的模塊有Gain模塊,Sum模塊,Signal Generator模塊(Square方波),Integrate模塊,Scope模塊。增益模塊通過format菜單中的Flip Block命令進行翻轉。X是Integrator模塊的輸出,它同樣計算x的模塊的輸出,這個關系是通過模型中的環(huán)路實現(xiàn)的。運行結果如下該例可以表示為傳遞函數(shù)的形式,將上面的微分左右取拉式變換,得到:這樣就可以用Transfer Fcn模塊來進行建模了。首先指定對應的傳遞函數(shù),可以在模塊參數(shù)對話框中設置Numerator(分

48、子)參數(shù),Denumerator(分母)參數(shù)分別為11 2,即該模塊是用傳遞函數(shù)的分式形式表示,且系數(shù)從左至右按s的降冪排列,因此可以簡化為下圖所示:4.3 Simulink中的數(shù)據(jù)類型Simulink中能夠指定模型的信號和模塊參數(shù)的數(shù)據(jù)類型,這種能力在實時控制中非常有用。Simulink在開始仿真之前以及仿真過程中,會進行一個額外的額檢查,以確認運行的模型的類型安全性。模型的類型安全性是指從該模型產(chǎn)生的代碼不會出現(xiàn)上溢或下溢,并且因此產(chǎn)生不精確的結果。4.3.1Simulink支持的數(shù)據(jù)類型還有布爾類型,取值0或1,內部表示是uint8;所有的Simulink模塊都缺省的接受double類型

49、的信號。Simulink中支持復數(shù)的模塊:在設置模塊參數(shù)時,指定一個值為特殊數(shù)據(jù)類型時,可以使用type(value)的方法,例如把常數(shù)模塊的參數(shù)設置為1.0單精度,可以在參數(shù)對話框中輸入single(1.0)4.3.2 數(shù)據(jù)類型傳播主要用來處理數(shù)據(jù)類型沖突的情形。用戶可以通過Simulation Parameters對話框的Diagnostics頁,去除Relax Boolean type checking 選項的選中狀態(tài),來時Simulink實施嚴格的布爾類型檢驗。4.3.3 在模型里使用復數(shù)信號下面幾種方法把復數(shù)引入到模型中:4.4. 建立子系統(tǒng)4.4.1建立子系統(tǒng)主要用來簡化模型。(1

50、)可以減少顯示在模型窗口的模塊數(shù)。(2)將功能相關的模塊放在一起,建立自己的庫模塊(3)可以生成層次化得模型圖標,即子系統(tǒng)在一層,組成子系統(tǒng)的模塊在另一層。創(chuàng)建子系統(tǒng)的方法:(1)增加一個子系統(tǒng)模塊到模型中,然后打開創(chuàng)建(2)先把模塊鏈接好,然后再把這些模塊組成子系統(tǒng)。1、通過子系統(tǒng)模塊建立子系統(tǒng)展開之后7.3版本里的輸入輸出端口已經(jīng)為我們畫好。2、組合已經(jīng)存在的模塊建立子系統(tǒng)生成子模塊將所有模塊框選之后,從Edit菜單中找到Create Subsystem命令點擊即可生成子模塊。注:模型里的模塊標簽必須是唯一的。4.4.2 用子系統(tǒng)自定義庫(還需要繼續(xù)閱讀)將生成的子系統(tǒng)添加到Simulin

51、k extras節(jié)點的transformation子庫里面。封裝技術:選擇好初始建立的子系統(tǒng),從Edit菜單選擇mask the subsystem命令,選擇document頁,在blocks description中輸入文字,按OK即可。4.5 封裝子系統(tǒng)4.5.1 子系統(tǒng)封裝示例 (認真閱讀該示例)建立如圖所示子系統(tǒng)并設置參數(shù)1、產(chǎn)生提示對話框選擇該系子系統(tǒng),從Edit菜單中選擇Mask SubSystem命令,出現(xiàn)如下封裝編輯器:2、建立模塊的描述信息以及幫助文檔3、生成模塊的圖標4.5.2 initialization頁1、assignment屬性Evaluate和literal兩個值

52、可供選擇。若設置為evaluate,那么模塊使用者在模塊參數(shù)設置對話框里輸入的值,在被賦給變量之前,首先由Matlab進行估值。若設置為literal,則輸入的值不經(jīng)過估值,而是直接作為字符串傳給變量。(eval命令用來對字符串進行估值,如eval(abs(-2)2、控件類型3、可調參數(shù)(Tunable Parameters)只能夠在運行時動態(tài)修改的封裝參數(shù)。通過模塊的MaskTunableValues屬性來控制封裝參數(shù)是否可調。具體步驟如下:(1)解除庫鎖定狀態(tài)(2)打開模塊的參數(shù)對話框,在編輯框輸入要設定的缺省值,然后關閉對話框(3)保存模型4、初始化命令及其調試初始化命令用于定義駐留在模

53、塊的封裝工作空間內的變量。在初始化命令里定義的變量能被子系統(tǒng)內的模塊訪問,也能被其他的初始化命令訪問,還能被制作圖標命令訪問。5、封裝子空間一旦模塊的封裝里(注意Simulink提供的模塊也同樣是經(jīng)過封裝得到的,但不定是子系統(tǒng)),包含初始化命令或者定義了參數(shù)變量,Simulink就為模塊建立一個局部的封裝工作空間。4.5.3 icon頁Icon頁的主要作用是讓用戶能夠自定義模塊的圖標。1、在圖標上顯示文本2、在圖標上顯示圖形3、在圖標上顯示圖像使用image命令4、在圖表上顯示傳遞函數(shù)Num和den分別表示分子和分母,character表示多項式中的字母,默認為s如果按照函數(shù)的零極點來顯示,則

54、使用命令droots5、控制圖表屬性Icon frame只包含模塊的正方形框Icon transparency參數(shù)用來設置圖標的透明性Icon Rotate參數(shù)用來控制圖標的朝向是否為固定Drawing coordinates參數(shù)的作用是調整圖標繪制坐標4.5.4 documentation頁4.5.5 為封裝的模塊建立動態(tài)對話框Simulink支持用戶建立隨著用戶輸入?yún)?shù)變化的模塊參數(shù)對話框。封裝對話框的特性可以改變的方式包括:(1) 參數(shù)控件的外觀(2) 參數(shù)控件的使能狀態(tài)(3) 參數(shù)值建立一個封裝對話框必須將封裝編輯器和Simulink set_param命令結合起來使用。1、設置封裝模

55、塊對話框參數(shù)使用set_param命令的好處是可以再對話框被打開時設置參數(shù),并立即改變對話框的外觀。(結合回調函數(shù))2、預定義封裝對話框參數(shù)(1)MaskCallbacks:該參數(shù)的值是一個字符串的單元數(shù)組,用來指定對話框用戶定義參數(shù)控件各自的回調表達式(2)Maskdescription該參數(shù)值是一個用于設定模塊描述的字符串,(3)MaskEnables:該參數(shù)的值是一個字符串的單元數(shù)組,定義了用戶定義參數(shù)控件的使能狀態(tài)。(4)MaskPrompts(5)MaskType(6)MaskValues(7)MaskVisibilities4.6 建立條件子系統(tǒng)條件子系統(tǒng)是指它的執(zhí)行受輸入信號控制的一類子系統(tǒng),在條件子系統(tǒng)中,控制子系統(tǒng)是否執(zhí)行的信號稱為控制信號。進入子系統(tǒng)里的信號被稱為控制輸入。在建立復雜模型時非常有用。4.6.1使能子系統(tǒng)使能子系統(tǒng)在控制信號為正值的時間步里執(zhí)行。每一個子系統(tǒng)只有一個控制輸入,可以使標量或向量信號。位于simulink庫中signals&systems字庫中。4.6.2 觸發(fā)子系統(tǒng)觸發(fā)子系統(tǒng)只在觸發(fā)事件發(fā)生的時刻執(zhí)行。出發(fā)事件是由控制輸入信號的狀態(tài)來決定的,一個觸發(fā)子系統(tǒng)只能有一個控制輸入,在simulink中稱為觸發(fā)輸入。觸發(fā)有兩種類型:上升觸發(fā)和下降觸發(fā)。4.6.3 觸發(fā)使能子系

溫馨提示

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

評論

0/150

提交評論