第6章+simulink介紹(通信09)培訓講學_第1頁
第6章+simulink介紹(通信09)培訓講學_第2頁
第6章+simulink介紹(通信09)培訓講學_第3頁
第6章+simulink介紹(通信09)培訓講學_第4頁
第6章+simulink介紹(通信09)培訓講學_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章Simulink介紹

6.1Simulink工作平臺的啟動

6.2Simulink仿真原理6.3Simulink模塊庫6.4仿真模型的建立和模塊參數(shù)及屬性的設置6.5

Simulink子系統(tǒng)的創(chuàng)建及封裝6.6其他應用模塊集及Simulink擴展庫6.1Simulink工作平臺啟動Simulink,通常有兩種方法:(1)在MATLAB命令窗口中直接輸入Simulink命令;(2)在MATLAB工具欄上單擊Simulink按鈕,如圖6.1所示。圖6.1啟動Simulink這樣就可打開了Simulink的SimulinkLibraryBrowser(庫模塊瀏覽器),如圖6.2所示。在菜單欄中執(zhí)行File/New/Model命令,就建立了一個名為untitled的模型窗口,如圖6.3所示。在建立了空的模塊窗口后,用戶可以在此窗口中創(chuàng)建自己需要的Simulink模型。圖6.2庫模塊瀏覽器圖6.3新建的空白模塊窗口6.2.2Simulink仿真過程1.初始化階段①對模型的參數(shù)進行估計,得到它們實際計算的值。②展開模型的各個層次;③按照更新的次序對模型進行排序;④確定那些顯式化的信號屬性,并檢查每個模塊是否能夠接受連接它們輸入端的信號;⑤確定所有非顯式的信號采樣時間模塊的采樣時間;⑥分配和初始化存儲空間,以便存儲每個模塊的狀態(tài)和當前值的輸出。2.模型執(zhí)行階段模型仿真是通過數(shù)值積分來進行完成的,計算數(shù)值積分可以采用以下兩步來進行:①按照秩序計算每個模塊的積分;②根據(jù)當前輸入和狀態(tài)來決定狀態(tài)的微分,得到微分矢量,然后把它返回給解法器,以計算下一個采樣點的狀態(tài)矢量。在每一個時間步中,Simulink依次解決下列問題:·按照秩序更新模塊的輸出;·按照秩序更新模塊的狀態(tài);·檢查模塊連續(xù)狀態(tài)的不連續(xù)點;·計算下一個仿真時間步的時間。Simulink的模塊庫提供了大量模塊。單擊模塊庫瀏覽器中Simulink前面的“+”號,將看到Simulink模塊庫中包含的子模塊庫,單擊所需要的子模塊庫,在右邊的窗口中將看到相應的基本模塊,選擇所需基本模塊,可用鼠標將其拖到模型編輯窗口。在模塊庫瀏覽器左側的Simulink欄上單擊鼠標右鍵,在彈出的快捷菜單中單擊Openthe‘Simulink’Libray

命令,將打開Simulink基本模塊庫窗口。單擊其中的子模塊庫圖標,打開子模塊庫,找到仿真所需要的基本模塊。6.3Simulink模塊庫Matlab程序設計模塊庫和工具箱說明欄子模塊庫6.3.1連續(xù)模塊庫(Continuous)在連續(xù)模塊(Continuous)庫中包括了常見的連續(xù)模塊,這些模塊如圖所示。1.積分模塊(Integrator):功能:對輸入變量進行積分。說明:模塊的輸入可以是標量,也可以是矢量;輸入信號的維數(shù)必須與輸入信號保持一致。2.微分模塊(Derivative)功能:通過計算差分?u/?t近似計算輸入變量的微分。3.存儲器模塊(Memory)功能:保持輸出前一步的輸入值。4.傳輸延遲模塊(TransportDelay)功能:用于將輸入端的信號延遲指定的時間后再傳輸給輸出信號。5.可變傳輸延遲模塊(VariableTransportDelay)功能:用于將輸入端的信號進行可變時間的延遲。7.傳遞函數(shù)模塊(TransferFcn)功能:用執(zhí)行一個線性傳遞函數(shù)。8.線性狀態(tài)空間模塊(State-Space)功能:用于實現(xiàn)以下數(shù)學方程描述的系統(tǒng):6.3.2離散模塊庫(Discrete)離散模塊庫(Discrete)主要用于建立離散采樣的系統(tǒng)模型,包括的主要模塊,如圖所示。1.零階保持器模塊(Zero-Order-Hold)功能:在一個步長內(nèi)將輸出的值保持在同一個值上。2.單位延遲模塊(UnitDelay)功能:將輸入信號作單位延遲,并且保持一個采樣周期相當于時間算子z-1。3.離散時間積分模塊(DiscreteTimeIntegrator)功能:在構造完全離散的系統(tǒng)時,代替連續(xù)積分的功能。使用的積分方法有:向前歐拉法、向后歐拉法、梯形法。4.離散狀態(tài)空間模塊(DiscreteStateSpace)功能:用于實現(xiàn)如下數(shù)學方程描述的系統(tǒng):5.離散濾波器模塊(DiscreteFilter)功能:用于實現(xiàn)無限脈沖響應(IIR)和有限脈沖響應(FIR)的數(shù)字濾波器。6.離散傳遞函數(shù)模塊(DiscreteTransferFcn)功能:用于執(zhí)行一個離散傳遞函數(shù)。7.離散零極點傳遞函數(shù)模塊(DiscreteZero-Pole)功能:用于建立一個預先指定的零點、極點,并用延遲算子z-1表示的離散系統(tǒng)。8.一階保持器模塊(FirstOrderHold)功能:在一定時間間隔內(nèi)保持一階采樣。6.3.3Discontinuous(非線性模塊)非線性模塊(Discontinuous)中包括一些常用的非線性模塊,如圖6.9所示。1.比率限幅模塊(RateLimiter)功能:用于限制輸入信號的一階導數(shù),使得信號的變化率不超過規(guī)定的限制值。2.飽和度模塊(Saturation)功能:用于設置輸入信號的上下飽和度,即上下限的值,來約束輸出值。3.量化模塊(Quantizer)功能:用于把輸入信號由平滑狀態(tài)變成臺階狀態(tài)。4.死區(qū)輸出模塊(DeadZone)功能:在規(guī)定的區(qū)內(nèi)沒有輸出值。5.繼電模塊(Relay)功能:繼電模塊(Relay)用于實現(xiàn)在兩個不同常數(shù)值之間進行切換。6.選擇開關模塊(Switch)功能:根據(jù)設置的門限來確定系統(tǒng)的輸出。7.Coulomb&ViscousFriction:庫侖和粘滯摩擦6.3.4

Look-up

Table(查表模塊)

User-definedfunction(用戶定義函數(shù)模塊)Look-UpTable:建立輸入信號的查詢表(線性峰值匹配)Look-UpTable(2-D):建立兩個輸入信號的查詢表(線性峰值匹配)Fcn:用自定義的函數(shù)(表達式)MATLABFcn:利用MATLAB的現(xiàn)有函數(shù)S-Function:調(diào)用自編的S函數(shù)的程序主要用于查表運算及用戶自定義功能執(zhí)行Sum:加減運算Product:模塊輸入的乘除運算DotProduct:點乘運算Gain:比例運算MathFunction:包括指數(shù)函數(shù)、對數(shù)函數(shù)、求平方等常用數(shù)學函數(shù)TrigonometricFunction:三角函數(shù)包括正弦、余弦、正切等MinMax:最小值或最大值運算6.3.5Mathoperations(數(shù)學模塊)主要用于對輸入信號進行數(shù)學操作Abs:取絕對值Sign:給出符號函數(shù)RoundingFunction圓整函數(shù)CombinatorialLogic:建立真值表LogicalOperator:邏輯運算RelationalOperator:關系運算ComplextoMagnitude-Angle:由復數(shù)輸入轉為幅值和相角輸出ComplextoReal-Imag:由復數(shù)輸入轉為實部和虛部輸出Magnitude-AngletoComplex:由幅值和相角輸入合成復數(shù)輸出Real-ImagtoComplex:由實部和虛部輸入合成復數(shù)輸出Mux:將多個單一輸入轉化為一個復合輸出。Demux:將一個復合輸入轉化為多個單一輸出。Bus信號選擇模塊(BusSelector):用于得到從Mux模塊或其它模塊引入的Bus信號。信號合成模塊(Merge):把多路信號進行合成一個單一的信號。接收/傳輸信號模塊(From/Goto):接收/傳輸信號模塊(From/Goto)常常配合使用,F(xiàn)rom模塊用于從一個Goto模塊中接收一個輸入信號,Goto模塊用于把輸入信號傳遞給From模塊。6.3.6SignalRouting(信號通路模塊)該模塊庫中存放了大量的對信號傳輸路徑問題進行處理的模塊初始值設定模塊(IC):初始值設定模塊(IC)用于設定與輸出端口連接的模塊的初始值。6.3.7信號輸出模塊(Sinks)信號輸出模塊(Sinks)包括的主要模塊如圖6.12所示。圖6.12輸出顯示模塊庫1.示波器模塊(Scope)功能:顯示在仿真過程中產(chǎn)生的輸出信號,用于在示波器中顯示輸入信號與仿真時間的關系曲線,仿真時間為x軸。2.二維信號顯示模塊(XYGraph)功能:在MATLAB的圖形窗口中顯示一個二維信號圖,并將兩路信號分別作為示波器坐標的x軸與y軸,同時把它們之間的關系圖形顯示出來。3.顯示模塊(Display)功能:按照一定的格式顯示輸入信號的值??晒┻x擇的輸出格式包括:short、long、short_e、long_e、bank等。4.輸出到文件模塊(ToFile)功能:按照矩陣的形式把輸入信號保存到一個指定的MAT文件。第一行為仿真時間,余下的行則是輸入數(shù)據(jù),一個數(shù)據(jù)點是輸入矢量的一個分量。5.輸出到工作空間模塊(ToWorkspace)功能:把信號保存到MATLAB的當前工作空間,是另一種輸出方式。6.終止信號模塊(Terminator)功能:中斷一個未連接的信號輸出端口。7.結束仿真模塊(Stopsimulation)功能:停止仿真過程。當輸入為非零時,停止系統(tǒng)仿真。Scope:示波器可以接受多個輸入信號,每個端口的輸入信號都將在一個坐標軸中顯示出來,并以不同的顏色加以區(qū)分。若為離散信號,則顯示信號的階梯圖。

示波器工具欄介紹坐標軸的范圍調(diào)整:在坐標框內(nèi)單擊鼠標右鍵-Axesproperties

示波器參數(shù)設置GeneralNumberofaxes:用于設定軸的個數(shù),可以實現(xiàn)多個輸入信號的顯示Timerange:用于設定X軸(時間軸)的顯示范圍Sampling下拉列表:Decimation-可設置顯示頻度,若設為n,則每隔n-1個數(shù)據(jù)點都給予顯示Sampletime-若為0,顯示連續(xù)信號,-1顯示方式取決于輸入信號,任何大于0的數(shù)據(jù)表示顯示離散信號的時間間隔Floatingscope:游離示波器Datahistory[注]工作在游離狀態(tài)的示波器能夠對模型中一條或多條信號線上的信號進行觀察,而不用將示波器與信號線相連。由于游離示波器對數(shù)據(jù)部進行緩存,工作在游離狀態(tài)下的示波器不能進行窗口的縮放操作。Scope:示波器6.3.8信號源模塊庫(Sources)信號源模塊庫(Sources)包括的主要模塊如圖6.13所示。圖6.13信號源模塊庫1.輸入常數(shù)模塊(Constant)功能:產(chǎn)生一個常數(shù)。該常數(shù)可以是實數(shù),也可以是復數(shù)。2.信號源發(fā)生器模塊(SignalGenerator)功能:產(chǎn)生不同的信號,其中包括:正弦波、方波、鋸齒波信號。3.從文件讀取信號模塊(FromFile)功能:從一個MAT文件中讀取信號,讀取的信號為一個矩陣,其矩陣的格式與ToFile模塊中介紹的矩陣格式相同。如果矩陣在同一采樣時間有兩個或者更多的列,則數(shù)據(jù)點的輸出應該是首次出現(xiàn)的列。4.從工作空間讀取信號模塊(FromWorkspace)功能:從MATLAB工作空間讀取信號作為當前的輸入信號。5.隨機數(shù)模塊(RandomNumber)功能:產(chǎn)生正態(tài)分布的隨機數(shù),默認的隨機數(shù)是期望為0,方差為1的標準正態(tài)分布量。6.帶寬限制白噪聲模塊(BandLimitedWhiteNoise)功能:實現(xiàn)對連續(xù)或者混雜系統(tǒng)的白噪聲輸入。7.其它模塊除以上介紹的常用模塊外,還包括其模塊。各模塊功能可通過以下方法查看:先進入Simulink工作窗口,在菜單中執(zhí)行Help/SimulinkHelp命令,這時就會彈出Help界面。然后用鼠標展開UsingSimulink\BlockReference\SimulinkBlockLibraries就可以看到Simulink的所有模塊。查看相應的模塊的使用方法和說明信息即可??梢愿鶕?jù)用戶設定的參數(shù)來直接生成正弦信號。信號生成方式有兩種:

Timebased方式:需要用戶設定的參數(shù)有:Amplitude(幅度)、Bias(偏移)、Frequency(頻率)、Phase(初相)、Sampletime(采樣時間)。

Samplebased方式:需要用戶設定的參數(shù)有:Amplitude(幅度)、Bias(偏移)、Samplesperperiod(每周期采樣數(shù))、Numberofoffsetsamples(偏移采樣數(shù))、Sampletime(采樣時間)。[注]采樣時間設置為0表示以連續(xù)方式工作,當設置為大于0的數(shù)時則以所設采樣時間工作。

Samplebased模式的模塊是不能以連續(xù)的方式工作的。SineWave模塊可以從工作空間中讀取數(shù)據(jù)作為輸入信號。Data:填寫從工作空間的哪個變量讀取數(shù)據(jù)。Sampletime:設置采樣時間。“Data”文本框中填寫的變量必須包含信號的時間信息,比如該變量可以是一個n*2的矩陣,第一列給除了n個時刻值,第二列給出了對應這些時刻的信號值。若選中Interpolatedata,則時刻值之間的值通過插值獲得。若不選中Interpolatedata,則輸出信號將保持前一個給出了信號值的時刻的值。第10秒后的輸出信號由Formoutputafterfinaldatavalueby選項決定:extrapolate-外推插值

Settingtozero-設置為0

CyclicRepetition-信號循環(huán)出現(xiàn)FromWorkspace模塊FromWorkspace模塊functionSin_signal=Sin_signal(A,Bias,W,Phase,t0,te,N)t=linspace(t0,te,N);Data=A*sin(W*t+Phase)+Bias;Sin_signal=[t'Data'];>>simin=Sin_signal(1,0,0.5*pi,0,0,8,100);建立如下函數(shù)文件:在命令窗口中鍵入:可以從mat文件中的第一個矩陣中讀取數(shù)據(jù)作為輸入信號,該矩陣的第一行被認為給出了一組時刻值,其余行給出了相應的信號值。在使用此模塊時需要設置mat文件名和采樣時間。FromFile模塊>>save_data=simin';>>savemydatasave_data6.4仿真模型的建立與模塊參數(shù)與屬性的設置1.仿真模塊的建立首先啟動Simulink命令,建立一個空的模塊窗口“untitled”,然后利用Simulink提供的模塊庫,在此窗口中創(chuàng)建自己需要的Simulink模型。具體方法:在模塊庫瀏覽器中找到所需模塊,選中該模塊后右擊鼠標,把它加入到一個模型窗口中即可完成模塊的建立。圖6.14添加模塊

2.模塊參數(shù)與屬性的設置

方法:在所建立的模型窗口中,選中相應的模塊,單擊右擊鼠標,在彈出的快捷菜單中單擊“Blockparameters”選項(如圖6.15所示),即可打開該模塊的參數(shù)設置對話框,如圖6.16(a)所示。右擊鼠標,在彈出的快捷菜單中單擊“BlockProperties”選項,即可打開該模塊的屬性設置對話框,如圖6.16(b)所示。圖6.15Blockparamenters選項

3.模塊的連接

一般情況下,每個模塊都有一個或者多個輸入口或者輸出口。輸入口通常是模塊的左邊的“>”符號;輸出口是右邊的“>”符號。

模塊的連接方法:把鼠標指針放到模塊的輸出口,這時,鼠標指針將變?yōu)椤?”十字形;然后,拖運鼠標至其它模塊的輸入口,這時信號線就變成了帶有方向箭頭的線段。此時,說明這兩個模塊的連接成功,否則需要重新進行連接。4.運行仿真在運行仿真之前,首先保存已設置和連接的模型,然后就可以運行仿真。1.Simulink仿真注意(1)Simulink的數(shù)據(jù)類型由于Simulink在仿真過程中,始終都要檢查模型的類型安全性。模型的類型安全性是指從該模型產(chǎn)生的代碼不出現(xiàn)上溢或者下溢現(xiàn)象,當產(chǎn)生溢出現(xiàn)象時,系統(tǒng)將出錯誤。查看模塊的數(shù)據(jù)類型的方法是:在模型窗口的菜單中執(zhí)行Format/PortDataTypes命令,這樣每個模塊支持的數(shù)據(jù)類型就顯示出來了。要取消數(shù)據(jù)類型的查看方式,單擊PortDataTypes去掉其前面的勾號即可。6.4.3Simulink仿真注意與技巧圖6.23查看模塊支持的數(shù)據(jù)類型(2)數(shù)據(jù)的傳輸在仿真過程中,Simulink首先查看有沒有特別設置的信號的數(shù)據(jù)類型,以及檢驗信號的輸入和輸出端口的數(shù)據(jù)類型是否產(chǎn)生沖突。如果有沖突,Simulink將停止仿真,并給出一個出錯提示對話框,在此對話框中將顯示出錯的信號以及端口,并把信號的路徑以高亮顯示。遇到該情形,必須改變數(shù)據(jù)類型以適應模塊的需要。(3)提高仿真速度Simulink仿真過程,仿真的性能受諸多因素的影響,包括模型的設計和仿真參數(shù)的選擇等。對于大多數(shù)問題,使用Simulink系統(tǒng)默認的解法和仿真參數(shù)值就能夠比較好地解決。因素及解決方法:(1)仿真的時間步長太小。針對這種情況可以把最大仿真步長參數(shù)設置為默認值auto。(2)仿真的時間過長??勺们闇p小仿真的時間。(3)選擇了錯誤的解法。針對這種情況可以通過改變解法器來解決。(4)仿真的精度要求過高。仿真時,如果絕對誤差限度太小,則會使仿真在接近零的狀態(tài)附近耗費過多時間。通常,相對誤差限為0.1%就已經(jīng)足夠了。(5)模型包含一個外部存儲塊。盡量使用內(nèi)置存儲模塊。(4)改善仿真精度檢驗仿真精度的方法是:通過修改仿真的相對誤差限和絕對誤差限,并在一個合適的時間跨度反復運行仿真,對比仿真結果有無大的變化,如果變化不大,表示解是收斂的。說明仿真的精度是有效的,結果是穩(wěn)定的。如果仿真結果不穩(wěn)定,其原因可參是系統(tǒng)本身不穩(wěn)定或仿真解法不適合。如果仿真的結果不精確,其原因很可能是:(1)模型有取值接近零的狀態(tài)。如果絕對誤差過大,會使仿真在接近零區(qū)域運行的仿真時間太小。解決的辦法是修改絕對誤差參數(shù)或者修改初始的狀態(tài)。(2)如果改變絕對誤差限還不能達到預期的誤差限,則修改相對誤差限,使可接受的誤差降低,并減小仿真的步長。2.Simulink仿真技巧■連接分支信號線先連接好單根信號線,然后將鼠標指針放在已經(jīng)連接好的信號線上,同時按住“Ctrl”鍵,拖動鼠標,連接到另一個模塊。這樣就可以根據(jù)需由一個信號源模塊,引出多條信號線。如圖6.28所示。圖6.28引出多條信號線示例

■模塊的編輯技巧(1)調(diào)整模塊大小(2)在同一窗口復制模塊(3)刪除模塊(4)編輯模塊標簽例、建立simulink框圖 1)、選擇模塊 2)、模塊連接 3)、信號組合與分支4)、運行仿真6.5其它應用模塊集和Simulink擴展庫1.通信模塊集(CommunicationsBlockset)圖6.31通信模塊集中的模塊庫2.數(shù)字信號處理模塊集(DSPBlockset)3.電力系統(tǒng)模塊集(PowerSystemBlockset)4.Simulink擴展庫

?擴展信號輸出模塊庫(AdditionalSinks)圖6.35擴展信號輸出模塊庫?擴展離散庫(AdditionalDiscrete)?擴展線性庫(AdditionalLinear)圖6.36擴展離散庫圖6.37擴展線性庫?轉換庫(Transformations)圖6.38轉換模塊庫?觸發(fā)模塊庫(FlipFlops)圖6.39觸發(fā)模塊庫?線性化庫(Linearization)圖6.40線性化庫?宇航模塊庫(AirspaceBlocks)圖6.41宇航模塊庫Solver(選項卡解算器設置)頁,它允許用戶設置仿真的開始和結束時間,選擇解法器,說明解法器參數(shù)及選擇一些輸出選項。DataI/O(工作空間I/O設置)頁,作用是管理模型從MATLAB工作空間的輸入和對它的輸出。Diagnostics(診斷)頁,允許用戶選擇Simulink在仿真中顯示的警告信息的等級。Advanced(高級參數(shù)設置)頁,用戶可以設置一系列優(yōu)化參數(shù)問題的提出:如前所述,SIMULINK默認的仿真時間為10s,但是在進行實際的仿真時可能需要更長的時間,應該如何調(diào)整?3、仿真方法與仿真參數(shù)的選擇解決方法:選擇Simulation菜單下的SimulationParameters命令,就會彈出一個仿真參數(shù)對話框,它主要用三個頁面來管理仿真的參數(shù)。Solver頁Simulationtime仿真時間:注意這里的時間是計算機仿真中對時間的一種表示,比如10秒的仿真時間,如果采樣步長定為0.1,則需要執(zhí)行100步,若把步長減小,則采樣點數(shù)增加,那么實際的執(zhí)行時間就會增加。一般仿真開始時間設為0,而結束時間視不同的因素而選擇。Solveroption解法選項:Type后面的第一個選項中指定仿真的步長類型,分Variable-step(變步長)和Fixed-step(固定步長)兩種。1.采用變步長模式解法器時,Simulink會在保證仿真精度的前提下,從盡可能節(jié)約仿真時間的目的出發(fā)對仿真步長進行相應改變。有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五階龍格-庫塔法,適用于大多數(shù)連續(xù)或離散系統(tǒng),但不適用于剛性(stiff)系統(tǒng)。它是單步解法器,也就是,在計算y(tn)時,它僅需要最近處理時刻的結果y(tn-1)。一般來說,面對一個仿真問題最好是首先試試ode45。ode23:二/三階龍格-庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會比ode45更有效。也是一個單步解法器。ode113:是一種階數(shù)可變的解法器,它在誤差容許要求嚴格的情況下通常比ode45有效。ode113是一種多步解法器,也就是在計算當前時刻輸出時,它需要以前多個時刻的解。ode15s:是一種基于數(shù)字微分公式的解法器(NDFs)。也是一種多步解法器。適用于剛性系統(tǒng),當用戶估計要解決的問題是比較困難的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。ode23s:它是一種單步解法器,專門應用于剛性系統(tǒng),在弱誤差允許下的效果好于ode15s。它能解決某些ode15s所不能有效解決的stiff問題。ode23t:是梯形規(guī)則的一種自由插值實現(xiàn)。這種解法器適用于求解適度stiff的問題而用戶又需要一個無數(shù)字振蕩的解法器的情況。ode23tb:是TR-BDF2的一種實現(xiàn),TR-BDF2是具有兩個階段的隱式龍格-庫塔公式。discrtet:當Simulink檢查到模型沒有連續(xù)狀態(tài)時使用它。固定步長模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。ode5:缺省值,是ode45的固定步長版本,適用于大多數(shù)連續(xù)或離散系統(tǒng),不適用于剛性系統(tǒng)。ode4:四階龍格-庫塔法,具有一定的計算精度。ode3:固定步長的二/三階龍格-庫塔法。ode2:改進的歐拉法。ode1:歐拉法。discrete:是一個實現(xiàn)積分的固定步長解法器,它適合于離散無連續(xù)狀態(tài)的系統(tǒng)。Fixedstepsize固定步參數(shù):缺省情況下,步長自動地確定,它由值auto表示Mode(固定步長模式選擇)Multi-tasking:多任務模式,當simulink檢測到模塊間非法的采樣速率轉換,它會給出錯誤提示。所謂的非法采樣速率轉換指兩個工作在不同采樣速率的模塊之間的直接連接。在實時多任務系統(tǒng)中,如果任務之間存在非法采樣速率轉換,那么就有可能出現(xiàn)一個模塊的輸出在另一個模塊需要時卻無法利用的情況。通過檢查這種轉換,Multitasking將有助于用戶建立一個符合現(xiàn)實的多任務系統(tǒng)的有效模型。使用速率轉換模塊可以減少模型中的非法速率轉換。Simulink提供了兩個這樣的模塊:unitdelay模塊和zero-orderhold模塊。對于從慢速率到快速率的非法轉換,可以在慢輸出端口和快輸入端口插入一個單位延時unitdelay模塊。而對于快速率到慢速率的轉換,則可以插入一個零階采樣保持器zero-orderhold。Singletasking:單任務模式,不檢查模塊間的速率轉換,它在建立單任務系統(tǒng)模型時非常有用,在這種系統(tǒng)就不存在任務同步問題。Auto:自動模式,simulink會根據(jù)模型中模塊的采樣速率是否一致,自動決定切換到multitasking和singletasking。Stepsize步長參數(shù):對于變步長模式,用戶可以設置最大的和推薦的初始步長參數(shù),缺省情況下,步長自動地確定,它由值auto表示。Maximumstepsize(最大步長參數(shù)):它決定了解法器能夠使用的最大時間步長,它的缺省值為“仿真時間/50”,即整個仿真過程中至少取50個取樣點,但這樣的取法對于仿真時間較長的系統(tǒng)則可能帶來取樣點過于稀疏,而使仿真結果失真。一般建議對于仿真時間不超過15s的采用默認值即可,對于超過15s的每秒至少保證5個采樣點,對于超過100s的,每秒至少保證3個采樣點。Initialstepsize(初始步長參數(shù)):一般建議使用“auto”默認值即可。Relativetolerance(相對誤差):它是指誤差相對于狀態(tài)的值,是一個百分比,缺省值為1e-3,表示狀態(tài)的計算值要精確到0.1%。Absolutetolerance(絕對誤差):表示誤差值的門限,或者是說在狀態(tài)值為零的情況下,可以接受的誤差。如果它被設成了auto,那么simulink為每一個狀態(tài)設置初始絕對誤差為1e-6。Outputoptions輸出選項(在變步長模式下有效)Refineoutput:精細輸出,其意義是在仿真輸出太稀松時,simulink會產(chǎn)生額外的精細輸出,這一點就像插值處理一樣。用戶可以在refinefactor設置仿真時間步間插入的輸出點數(shù)。產(chǎn)生更光滑的輸出曲線,改變精細因子比減小仿真步長更有效,并且在ode45效果最好。Produceadditionaloutput:它允許用戶直接指定產(chǎn)生輸出的時間點。一旦選擇了該項,則在它的右邊出現(xiàn)一個outputtimes編輯框,在這里用戶指定額外的仿真輸出點,它既可以是一個時間向量,也可以是表達式。與精細因子相比,這個選項會改變仿真的步長。Producespecifiedoutputonly:它的意思是讓simulink只在指定的時間點上產(chǎn)生輸出。為此解法器要調(diào)整仿真步長以使之和指定的時間點重合。這個選項在比較不同的仿真時可以確保它們在相同的時間輸出。DataI/O頁此頁主要用來設置與MATLAB工作空間交換數(shù)值的有關選項。Loadfromworkspace:從MATLAB工作空間獲取時間和輸入變量,一般時間變量定義為t,輸入變量定義為u。Initialstate用來定義從MATLAB工作空間獲得的狀態(tài)初始值的變量名。DataI/O頁

Loadfromworkspace:若選中Input復選框,Simulink可以從工作空間中為模型的頂層輸入端口獲取輸入信號,但需要在其后的文本框中填入變量名。外部輸入一般是二維的數(shù)組,即為矩陣。該矩陣第一列必須是升序排列的時間值,后續(xù)各列指定輸入值,各輸入口按端口號由低到高的順序,一次逐列取值。>>t=0:0.1:10;>>t=t';>>u=[exp(t),sin(t),cos(t)];設定In1端口寬度為1,In2端口寬度為2,則輸入信號矩陣第一列為時間值,第2列為In1輸入信號,第3、4列為In2輸入信號。

Savetoworkspace:設置保存到MATLAB工作空間的變量類型和變量名,包括:輸出時間向量(Time)、狀態(tài)向量(States)、輸出變量(Output)。最終狀態(tài)(Finalstate)用來定義將系統(tǒng)穩(wěn)態(tài)值存往工作空間所使用的變量名。Saveoption:用來設置存往工作空間的有關選項。Limitdatatolast-仿真結果最終可存往工作空間的數(shù)據(jù)的長度,默認值為1000;Decimation-亞采樣因子,用于設置抽取頻率,缺省值為1,也就是對每一個仿真時間點產(chǎn)生值都保存,而若為2,則是每隔一個仿真時刻才保存一個值。Format-返回數(shù)據(jù)的格式,包括數(shù)組array、結構struct及帶時間的結構structwithtime。Diagnostics頁此頁分成兩個部分:仿真選項和配置選項。配置選項下的列表框主要列舉了一些常見的事件類型,以及當SIMULINK檢查到這些事件時給予的處理。仿真選項options主要包括是否進行連續(xù)性檢驗(實現(xiàn)對Simulink常微分方程解法進行假設檢驗的調(diào)試工具)、是否進行邊界檢測(檢驗仿真運行中模塊是否對已分配給它之外的存儲空間進行操作)。除了上述3個主要的頁外,仿真參數(shù)設置窗口還包括Advanced(高級參數(shù)設置)以及real-timeworkshop(實時仿真)頁,主要用于仿真的參數(shù)優(yōu)化和設置實時系統(tǒng)和單機仿真參數(shù)。二、啟動仿真設置仿真參數(shù)和選擇解法器之后,就可以啟動仿真而運行。選擇Simulink菜單下的start選項來啟動仿真,如果模型中有些參數(shù)沒有定義,則會出現(xiàn)錯誤信息提示框。如果一切設置無誤,則開始仿真運行,結束時系統(tǒng)會發(fā)出一鳴叫聲。除了直接在SIMULINK環(huán)境下啟動仿真外,還可以在MATLAB命令窗口中通過函數(shù)進行,格式如下:

[t,x,y]=sim(‘模型文件名’,[totf],simset(‘參數(shù)1’,參數(shù)值1,‘參數(shù)2’,參數(shù)值2,…))其中to為仿真起始時間,tf為仿真終止時間。[t,x,y]為返回值,t為返回的時間向量值,x為返回的狀態(tài)值,y為返回的輸出向量值。simset定義了仿真參數(shù),包括以下一些主要參數(shù):AbsTol:默認值為1e-6設定絕對誤差范圍。Decimation:默認值為1,決定隔多少個點返回狀態(tài)和輸出值。Solver:解法器的選擇。MaxRows:默認值為0,表示不限制。若為大于零的值,則表示限制輸出和狀態(tài)的規(guī)模,使其最大行數(shù)等于該數(shù)值。InitialState:一個向量值,用于設定初始狀態(tài)。FixedStep:用一個正數(shù)表示步階的大小,僅用于固定步長模式。MaxStep:默認值為auto。用于變步長模式,表示最大的步階大小。如果知道模型文件名稱,可以用以下命令得到該模型的仿真參數(shù):simget(‘模型文件名’)Matlab程序設計4、框圖的視圖調(diào)整視圖調(diào)整的方法如下所述:(1)使用View菜單控制模型在視圖區(qū)的顯示,用戶可以對模型視圖進行任意縮放。(2)使用系統(tǒng)熱鍵R(放大)或V(縮小)。(3)按空格鍵可以使系統(tǒng)模型充滿整個視圖窗口。Matlab程序設計5、模塊的名稱操作

在使用Simulink中的系統(tǒng)模塊構建系統(tǒng)模型時,Simulink會自動給系統(tǒng)模型中的模塊命名,對于系統(tǒng)模型中相同的模塊,Simulink會自動對其進行編號。一般對于簡單的系統(tǒng),可以采用Simulink的自動命名;但對于復雜系統(tǒng),給每個模塊取一個具有明顯意義的名稱非常有利于系統(tǒng)模型的理解與維護。Matlab程序設計(1)模塊命名:使用鼠標左鍵單擊模塊名稱,進入編輯狀態(tài),然后鍵入新的名稱。(2)名稱移動:使用鼠標左鍵單擊模塊名稱并拖動到模塊的另一側,或選擇Format菜單中的FlipName翻轉模塊名稱。(3)名稱隱藏:選擇Format菜單中的HideName隱藏系統(tǒng)模塊名稱。注意:系統(tǒng)模型中模塊的名稱應當是唯一的,否則Simulink會給出警告并自動改變名稱。Matlab程序設計6、系統(tǒng)框圖注釋在系統(tǒng)模型編輯器的背景上雙擊鼠標左鍵以確定添加注釋文本的位置,并打開一個文本編輯框,用戶便可以在此輸入相應的注釋文本。輸入完畢后,使用鼠標左鍵單擊以退出編輯并移動文本位置(編輯框未被選中情況下)到合適的地方。在文本對象上單擊鼠標右鍵,可以改變文本的屬性如大小、字體和對齊方式等。在任何時候都可以雙擊注釋文本進行編輯。Matlab程序設計7、信號標簽生成信號標簽(1)使用鼠標左鍵雙擊需要加入標簽的信號(即系統(tǒng)模型中與信號相對應的模塊連線),這時便會出現(xiàn)標簽編輯框,在其中鍵入標簽文本即可。當一個信號定義了標簽后,從這條信號線引出的分支線會繼承這個標簽(2)用鼠標左鍵單擊信號連線,然后使用Edit菜單下的SignalProperties項,在打開的界面中編輯信號的名稱,而且還可以使用這個界面對信號作簡單的描述并建立HTML文檔鏈接。6.5Simulink子系統(tǒng)的創(chuàng)建及封裝隨著所需建立模型的規(guī)模和復雜性的增加,再采用平面的結構來建立一個模型將是一件麻煩的事情。此時,就象C語言、Matlab語言提供了函數(shù)的概念一樣,Simulink中也提供了子系統(tǒng)的概念,可以采用模塊化方式在模型中構造子系統(tǒng),使搭建的模型具有層次性的結構。進一步還可以對該子系統(tǒng)進行封裝,使其對外只提供接口而屏蔽掉內(nèi)部的具體實現(xiàn),以使用戶可以創(chuàng)建一個對話框來設置或修改子系統(tǒng)的關鍵參數(shù)。所謂的子系統(tǒng)可以理解為一種“容器”,此容器能夠將一組相關的模塊封裝到一個單獨的模塊中,并且與原來系統(tǒng)模塊組的功能一致。

一、方法1:在已有的系統(tǒng)模型中建立子系統(tǒng):

在已搭建好的模型中選中需要包含到一個子系統(tǒng)中的模塊。用鼠標將這些需要組合的模塊框住,然后選擇Edit菜單下的CreateSubsystem即可。6.5.1如何建立子系統(tǒng)1、 在已有的系統(tǒng)模型中建立子系統(tǒng)二、方法2:建立空的子系統(tǒng)1)將Portsandsubsystems模塊庫中的Subsystem功能模塊復制到打開的模型窗口中。2)雙擊Subsystem功能模塊,進入自定義功能模塊窗口,從而可以利用已有的基本功能模塊設計出新的功能模塊。6.5.1如何建立子系統(tǒng) 2、先建立空的子系統(tǒng)Matlab程序設計【例】系統(tǒng)模塊參數(shù)設置Matlab程序設計系統(tǒng)仿真及結果輸出子系統(tǒng)建立:選擇模塊生成子系統(tǒng)Matlab程序設計6.5.2子系統(tǒng)操作在生成子系統(tǒng)之后,子系統(tǒng)相當于具有一定功能的系統(tǒng)模塊,用戶可以對子系統(tǒng)進行各種與系統(tǒng)模塊相類似的操作。子系統(tǒng)命名:命名方法與模塊命名類似。子系統(tǒng)編輯:用鼠標左鍵雙擊子系統(tǒng)模塊圖標,打開子系統(tǒng)以對其進行編輯。子系統(tǒng)的輸入:使用Sources模塊庫中的Inport輸入模塊(即In1模塊)作為子系統(tǒng)的輸入端口。子系統(tǒng)的輸出:使用Sinks模塊庫中的Outport輸出模塊(即Out1模塊)作為子系統(tǒng)的輸出端口。

Matlab程序設計6.5.3子系統(tǒng)基本類型(1)使能子系統(tǒng):是指當控制信號的值為正時,子系統(tǒng)開始執(zhí)行。(2)觸發(fā)子系統(tǒng):是指當控制信號的符號發(fā)生改變時(也就是控制信號發(fā)生過零時),子系統(tǒng)開始執(zhí)行。觸發(fā)子系統(tǒng)的觸發(fā)執(zhí)行有三種形式:①控制信號上升沿觸發(fā):控制信號具有上升沿形式。②控制信號下降沿觸發(fā):控制信號具有下降沿形式。③控制信號的雙邊沿觸發(fā):控制信號在上升沿或下降沿時觸發(fā)子系統(tǒng)。(3)控制流程子系統(tǒng)1、條件子系統(tǒng)的建立方法 在enabledsubsystem、triggeredsubsystem、enabledandtriggeredsubsystem中。1)早期simulink版本中,enable和triggered信號需要從signal&system中調(diào)用。2)simulink后期版本中,在上述模塊中含這兩個信號。3)一個系統(tǒng)中不能含多個enable和triggered信號。4)其它子系統(tǒng)可看成某種形式的條件執(zhí)行子系統(tǒng)。1、觸發(fā)子系統(tǒng)法1(加分路器)法2(示波器分三支路)2、使能子系統(tǒng)Reset:執(zhí)行時,系統(tǒng)中的狀態(tài)被重新設置為初始參Held:執(zhí)行時,系統(tǒng)的狀態(tài)保持不變3、觸發(fā)+使能子系統(tǒng)4、觸發(fā)使能子系統(tǒng)Matlab程序設計5、原子子系統(tǒng)虛子系統(tǒng):對通用子系統(tǒng)與使能子系統(tǒng)1)子系統(tǒng)只是系統(tǒng)模型中某些模塊組的圖形表示2)子系統(tǒng)中的模塊在執(zhí)行時與其上一級模塊統(tǒng)一被排序,不受子系統(tǒng)限制。3)在一個仿真時間步長內(nèi),simulink可以多次進出一個子系統(tǒng)。原子子系統(tǒng):1)子系統(tǒng)作為一個“實際”的模塊,需順序連續(xù)執(zhí)行。2)子系統(tǒng)作為整體進行仿真。3)子系統(tǒng)中的模塊在子系統(tǒng)中被排序執(zhí)行。建立原子子系統(tǒng): 1)先建立一空的原子子系統(tǒng)。 2)先建立子系統(tǒng),再強制轉換成原子子系統(tǒng)。Edit/blockparameters5、其它子系統(tǒng)可配置子系統(tǒng),代表用戶定義庫中的任意模塊,只能在用戶定義庫中使用。函數(shù)調(diào)用子系統(tǒng)。for循環(huán)while循環(huán)選擇表達式執(zhí)行子系統(tǒng)6.5.4自定義功能模塊的封裝上面提到的兩種方法都只是創(chuàng)建一個功能模塊而已,如果要命名該自定義功能模塊、對功能模塊進行說明、選定模塊外觀、設定輸入數(shù)據(jù)窗口,則需要對其進行封裝處理。對一個子系統(tǒng)進行封裝,可以使這個子系統(tǒng)外在表現(xiàn)得同一個模塊完全一樣,它擁有以下優(yōu)點:1)將用戶與模塊內(nèi)容的復雜性隔絕開來。2)提供一個描述性的、友好的用戶接口:給該封

溫馨提示

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

評論

0/150

提交評論