Simulink動(dòng)態(tài)系統(tǒng)建模與仿真第5章_第1頁
Simulink動(dòng)態(tài)系統(tǒng)建模與仿真第5章_第2頁
Simulink動(dòng)態(tài)系統(tǒng)建模與仿真第5章_第3頁
Simulink動(dòng)態(tài)系統(tǒng)建模與仿真第5章_第4頁
Simulink動(dòng)態(tài)系統(tǒng)建模與仿真第5章_第5頁
已閱讀5頁,還剩139頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章Simulink仿真設(shè)置5.1仿真基礎(chǔ)5.2設(shè)置仿真算法5.3工作區(qū)輸入/輸出設(shè)置5.4輸出信號(hào)的顯示 5.1仿真基礎(chǔ)

5.1.1設(shè)定仿真參數(shù)

Simulink中模型的仿真參數(shù)通常在仿真參數(shù)對(duì)話框內(nèi)設(shè)置。這個(gè)對(duì)話框包含了仿真運(yùn)行過程中的所有設(shè)置參數(shù),在這個(gè)對(duì)話框內(nèi),用戶可以設(shè)置仿真算法、仿真的起止時(shí)間和誤差容限等,還可以定義仿真結(jié)果數(shù)據(jù)的輸出和存儲(chǔ)方式,并可以設(shè)定對(duì)仿真過程中錯(cuò)誤的處理方式。

首先選擇需要設(shè)置仿真參數(shù)的模型,然后在模型窗口的Simulation菜單下選擇ConfigurationParameters命令,打開ConfigurationParameters對(duì)話框,如圖5-1所示。在ConfigurationParameters對(duì)話框內(nèi)用戶可以根據(jù)自己的需要進(jìn)行參數(shù)設(shè)置。當(dāng)然,除了設(shè)置參數(shù)值外,也可以把參數(shù)指定為有效的MATLAB表達(dá)式,這個(gè)表達(dá)式可以由常值、工作區(qū)變量名、MATLAB函數(shù)以及各種數(shù)學(xué)運(yùn)算符號(hào)組成。參數(shù)設(shè)置完畢后,可以單擊Apply按鈕應(yīng)用設(shè)置,或者單擊OK按鈕關(guān)閉對(duì)話框。如果需要的話,也可以保存模型,以保存所設(shè)置的模型仿真參數(shù)。

關(guān)于仿真參數(shù)對(duì)話框內(nèi)各選項(xiàng)參數(shù)的基本設(shè)置方式,將在下一節(jié)中詳細(xì)介紹。圖5-15.1.2控制仿真執(zhí)行

Simulink的圖形用戶接口包括菜單命令和工具條按鈕,如圖5-2所示,用戶可以用這些命令或按鈕啟動(dòng)、終止或暫停仿真。

若要模型執(zhí)行仿真,可在模型編輯器的Simulation菜單上選擇Start命令,或單擊模型工具條上的“啟動(dòng)仿真”按鈕。Simulink會(huì)從ConfigurationParameters對(duì)話框內(nèi)指定的起始時(shí)間開始執(zhí)行仿真,仿真過程會(huì)一直持續(xù)到所定義的仿真終止時(shí)間。在這個(gè)過程中,如果有錯(cuò)誤發(fā)生,系統(tǒng)會(huì)中止仿真,用戶也可以手動(dòng)干預(yù)仿真,如暫?;蚪K止仿真。

在仿真運(yùn)行過程中,模型窗口底部的狀態(tài)條會(huì)顯示仿真的進(jìn)度情況,同時(shí),Simulation菜單上的Start命令會(huì)替換為Stop命令,模型工具條上的“啟動(dòng)仿真”按鈕也會(huì)替換為“暫停仿真”按鈕,如圖5-3所示。當(dāng)仿真結(jié)束時(shí),計(jì)算機(jī)會(huì)發(fā)出蜂鳴聲,通知用戶仿真過程已結(jié)束。圖5-2圖5-3仿真啟動(dòng)后,Simulation菜單上的Start命令會(huì)更改為Pause命令,用戶可以用該命令或“暫停仿真”按鈕暫時(shí)停止仿真,這時(shí),Simulink會(huì)完成當(dāng)前時(shí)間步的仿真,并把仿真懸掛起來。這時(shí)的Pause命令或暫停按鈕也會(huì)改變?yōu)镃ontinue命令或“運(yùn)行”按鈕。若要在下一個(gè)時(shí)間步上恢復(fù)懸掛起來的仿真,可以選擇Continue命令繼續(xù)仿真。

如果模型中包括了要把輸出數(shù)據(jù)寫入到文件或工作區(qū)中的模塊,或者用戶在SimulationParameters對(duì)話框內(nèi)選擇了輸出選項(xiàng),那么,當(dāng)仿真結(jié)束或懸掛起來時(shí),Simulink會(huì)把數(shù)據(jù)寫入到指定的文件或工作區(qū)變量中。5.1.3交互運(yùn)行仿真

在仿真運(yùn)行過程中,用戶可以交互式執(zhí)行某些操作,如:

修改某些仿真參數(shù),包括終止時(shí)間、仿真算法和最大步長(zhǎng)。

改變仿真算法。

在浮動(dòng)示波器或Display模塊上單擊信號(hào)線以查看信號(hào)。

更改模塊參數(shù),但不能改變下面的參數(shù):

狀態(tài)、輸入或輸出的數(shù)目;

采樣時(shí)間;

過零數(shù)目;

任一模塊參數(shù)的向量長(zhǎng)度;

內(nèi)部模塊工作向量的長(zhǎng)度。需要注意的是,在仿真過程中,用戶不能更改模型的結(jié)構(gòu),如增加或刪除線或模塊,如果必須執(zhí)行這樣的操作,則應(yīng)先停止仿真,在改變模型結(jié)構(gòu)后再執(zhí)行仿真,并查看更改后的仿真結(jié)果。 5.2設(shè)置仿真算法

本節(jié)介紹ConfigurationParameters對(duì)話框內(nèi)基本仿真參數(shù)的設(shè)置方式,用戶也可以在MATLAB命令行中用sim和simset命令設(shè)置這些參數(shù)。關(guān)于如何使用命令行進(jìn)行仿真,讀者可以參看第8章“使用命令行仿真”。從圖5-1中可以看到,仿真參數(shù)對(duì)話框的左側(cè)是Select樹狀列表選項(xiàng)區(qū),選擇不同的節(jié)點(diǎn)命令,將在對(duì)話框的右側(cè)出現(xiàn)該項(xiàng)的設(shè)置面板。其中,Solver面板用來設(shè)置仿真的起止時(shí)間和仿真算法等選項(xiàng);DataImport/Export面板用來設(shè)置用戶把數(shù)據(jù)輸出到MATLAB工作區(qū)或者從MATLAB工作區(qū)中輸入數(shù)據(jù)時(shí)的相關(guān)選項(xiàng);Optimization面板用來設(shè)置改善仿真性能和優(yōu)化模型代碼執(zhí)行效率的相關(guān)選項(xiàng);Diagnostics面板用來設(shè)置Simulink在執(zhí)行仿真時(shí)對(duì)模型進(jìn)行的檢測(cè)選項(xiàng);HardwareImplementation面板只適用于基于計(jì)算機(jī)的系統(tǒng)模型,如嵌入式控制器,利用這個(gè)面板可以指定用來執(zhí)行模型系統(tǒng)時(shí)的硬件特性;ModelReferencing面板用來設(shè)置在其他模型中包含當(dāng)前模型以及在當(dāng)前模型中包含其他模型時(shí)的選項(xiàng),同時(shí)還可以設(shè)置編譯選項(xiàng);Real-TimeWorkshop面板用于設(shè)置與實(shí)時(shí)工作區(qū)有關(guān)的選項(xiàng),本書不對(duì)其進(jìn)行介紹。這些選項(xiàng)面板中的設(shè)置參數(shù)對(duì)于模型仿真的準(zhǔn)確性和仿真性能來說都起著非常重要的作用。5.2.1設(shè)置仿真時(shí)間

用戶可以在Starttime和Stoptime文本框內(nèi)輸入新的數(shù)值來改變仿真的起始時(shí)間和終止時(shí)間,如圖5-4所示。缺省時(shí)的起始時(shí)間為秒,終止時(shí)間為秒。圖5-4需要注意的是,仿真時(shí)間和實(shí)際的執(zhí)行時(shí)間并不相同,例如,運(yùn)行一個(gè)設(shè)置為10秒仿真時(shí)間的模型通常并不會(huì)花費(fèi)10秒。計(jì)算機(jī)運(yùn)行仿真程序所需要的時(shí)間取決于很多因素,通常包括模型的復(fù)雜度、仿真算法的步長(zhǎng)以及計(jì)算機(jī)的速度等。5.2.2設(shè)置仿真算法

Simulink模型的仿真需要計(jì)算仿真起始時(shí)間到終止時(shí)間之間每個(gè)時(shí)間步的輸入、輸出和狀態(tài)值,這需要利用仿真算法來執(zhí)行。

這里,我們按習(xí)慣將求解器稱做仿真算法。通常,用來求解模型的仿真算法有很多,當(dāng)然,沒有任何一種算法適用于所有模型,因此,Simulink對(duì)仿真算法進(jìn)行了分類,并使每類算法可以解算一種特定類型的模型。用戶可以在Solver選項(xiàng)頁內(nèi)選擇最適合自己模型的仿真算法,可以選擇的算法有:定步長(zhǎng)連續(xù)算法;

變步長(zhǎng)連續(xù)算法;

定步長(zhǎng)離散算法;

變步長(zhǎng)離散算法。1.定步長(zhǎng)連續(xù)算法

這種算法在仿真時(shí)間段(由起始時(shí)間到終止時(shí)間)內(nèi)以等間隔時(shí)間步來計(jì)算模型的連續(xù)狀態(tài)。它使用數(shù)值積分算法計(jì)算系統(tǒng)的連續(xù)狀態(tài),每個(gè)算法使用不同的積分方法,用戶可以根據(jù)需要選擇最適合自己模型的算法,當(dāng)然,這需要了解不同積分算法之間的優(yōu)缺點(diǎn)。使用定步長(zhǎng)連續(xù)算法進(jìn)行仿真的仿真結(jié)果的準(zhǔn)確度和仿真時(shí)間取決于仿真步長(zhǎng)的大小,仿真步長(zhǎng)越小,結(jié)果越準(zhǔn)確,仿真步長(zhǎng)越大,仿真時(shí)間也就越長(zhǎng)。定步長(zhǎng)連續(xù)算法可以用來處理包含連續(xù)狀態(tài)和離散狀態(tài)的模型。從理論上來說,定步長(zhǎng)連續(xù)算法也能夠處理包含非連續(xù)狀態(tài)的模型,但是,這會(huì)增加仿真計(jì)算時(shí)的不必要開銷。因此,若模型中沒有狀態(tài)或只有離散狀態(tài),則即使選擇了定步長(zhǎng)連續(xù)算法,Simulink通常還會(huì)使用定步長(zhǎng)離散算法進(jìn)行求解。

若想為模型指定定步長(zhǎng)連續(xù)算法,可先在Solveroptions選項(xiàng)區(qū)中的Type算法列表中選擇Fixed-step選項(xiàng),然后從相鄰的Solver積分方法列表中選擇一個(gè)選項(xiàng),如圖5-5所示。圖5-5Simulink把定步長(zhǎng)連續(xù)算法分為兩類:顯式算法和隱式算法。

1)顯式算法

顯式算法用顯式函數(shù)計(jì)算下一時(shí)刻的狀態(tài)值,即這里,h是仿真步長(zhǎng)。Simulink提供的顯式定步長(zhǎng)連續(xù)算法如下:

ode5:Dormand-Prince法;

ode4:RK4,四階Runge-Kutta(龍格-庫(kù)塔)法;

ode3:Bogacki-Shampine法;

ode2:Heum法,也稱為改進(jìn)的Euler(歐拉)法;

ode1:Euler法。每個(gè)算法使用不同的積分方法計(jì)算模型的狀態(tài)導(dǎo)數(shù)。這些算法是按照積分算法的復(fù)雜程度給出的,其中,ode5是最復(fù)雜的積分算法,而ode1是最簡(jiǎn)單的積分算法。不管仿真步長(zhǎng)是多少,積分算法越復(fù)雜,則仿真精度越高。默認(rèn)情況下,當(dāng)為模型選擇Fixed-step選項(xiàng)時(shí),Simulink會(huì)把仿真算法缺省設(shè)置為ode3,也就是說,它會(huì)選擇一個(gè)既可以求解連續(xù)狀態(tài),又可以求解離散狀態(tài),而且計(jì)算量適中的算法。用戶可以選擇Simulink提供的缺省值作為仿真步長(zhǎng),或者自己設(shè)置仿真步長(zhǎng)。如果模型有離散狀態(tài),則Simulink會(huì)把仿真步長(zhǎng)設(shè)置為模型的基本采樣時(shí)間;如果模型沒有離散狀態(tài),則Simulink會(huì)把仿真步長(zhǎng)設(shè)置為仿真終止時(shí)間與仿真起始時(shí)間差值的1/50,這種設(shè)置保證了在模型指定的采樣時(shí)刻更新模型離散狀態(tài)時(shí),仿真過程能夠捕捉到模型的狀態(tài)更新。但是,ode3算法無法保證精確地計(jì)算到模型的連續(xù)狀態(tài),為了獲得希望的精度,用戶可以選擇其他的算法。2)隱式算法

隱式算法用隱式函數(shù)計(jì)算下一時(shí)刻的狀態(tài)值,即這里,h是仿真步長(zhǎng)。Simulink只提供了一種隱式算法,即ode14x(extrapolation,外推)法。這個(gè)算法使用牛頓法和外推法計(jì)算下一時(shí)間步上的模型狀態(tài)值,因此還需要指定牛頓法的迭代次數(shù)和外推階數(shù)。如圖5-6所示,Extrapolationorder選項(xiàng)設(shè)置外推階數(shù);NumberNewton’siterations選項(xiàng)設(shè)置迭代次數(shù)。迭代次數(shù)越多,外推階數(shù)越高,仿真精度也就越高,但是每個(gè)步長(zhǎng)內(nèi)的計(jì)算負(fù)荷也就越大。圖5-6對(duì)于任何一個(gè)模型,只要給定足夠的仿真時(shí)間和足夠小的仿真步長(zhǎng),Simulink利用任何一個(gè)定步長(zhǎng)連續(xù)算法總能得到希望的仿真精度。但實(shí)際上這是不可能的,或者說是不現(xiàn)實(shí)的,因?yàn)楹茈y確定哪一個(gè)仿真算法與仿真步長(zhǎng)的組合能夠在最短的時(shí)間內(nèi)得到最佳的結(jié)果。對(duì)一個(gè)特定模型來說,確定一個(gè)最佳算法通常需要進(jìn)行多次實(shí)驗(yàn)。這里給出一種最有效的利用實(shí)驗(yàn)法確定模型最佳定步長(zhǎng)仿真算法的方法。首先,為模型選擇一種變步長(zhǎng)仿真算法,并使仿真精度達(dá)到希望的要求,這樣用戶也就知道了仿真結(jié)果應(yīng)該是什么樣子的。接下來,使用ode1算法和缺省步長(zhǎng)仿真模型,并把仿真結(jié)果與變步長(zhǎng)算法的仿真結(jié)果進(jìn)行比較,如果在希望的精度上結(jié)果是相同的,那么最佳的定步長(zhǎng)仿真算法就是ode1,這是因?yàn)閛de1是最簡(jiǎn)單的定步長(zhǎng)算法,在當(dāng)前選擇的步長(zhǎng)下它的仿真時(shí)間是最短的。如果ode1無法給出準(zhǔn)確的結(jié)果,那么就選擇另一個(gè)定步長(zhǎng)算法,直到找到滿足精度要求而且計(jì)算量又最小的算法。達(dá)到這種目的的最有效方式就是使用二進(jìn)制搜索技術(shù),首先試試ode3,如果它給出了準(zhǔn)確的結(jié)果,再試試ode2,如果ode2也給出了準(zhǔn)確的結(jié)果,那么ode2就是該模型的最佳算法,否則最佳算法就是ode3。如果ode3沒有給出準(zhǔn)確的結(jié)果,那么試試ode5,如果ode5給出了準(zhǔn)確的結(jié)果,再試試ode4,如果ode4給出了準(zhǔn)確的結(jié)果,那么ode4就是這個(gè)模型的最佳算法,否則就是ode5。

如果ode5也無法給出準(zhǔn)確的結(jié)果,那么減小仿真步長(zhǎng),并重復(fù)上述過程,直到找到一個(gè)能夠滿足求解精度,又有較小計(jì)算量的算法。2.定步長(zhǎng)離散算法

定步長(zhǎng)離散算法與定步長(zhǎng)連續(xù)算法一樣,仿真結(jié)果的準(zhǔn)確度和仿真時(shí)間也取決于仿真步長(zhǎng)的大?。悍抡娌介L(zhǎng)越小,結(jié)果越準(zhǔn)確;仿真步長(zhǎng)越大,仿真時(shí)間也就越長(zhǎng)。同樣,如果模型有離散狀態(tài),則Simulink會(huì)把仿真步長(zhǎng)設(shè)置為模型的基本采樣時(shí)間;如果模型沒有離散狀態(tài),則Simulink會(huì)把仿真步長(zhǎng)設(shè)置為仿真終止時(shí)間與仿真起始時(shí)間差值的1/50,這種設(shè)置保證了在模型指定的采樣時(shí)刻更新模型離散狀態(tài)時(shí),仿真過程能夠捕捉到模型的狀態(tài)更新。Simulink提供了一種不執(zhí)行積分的定步長(zhǎng)算法,它適用于求解不包含連續(xù)狀態(tài)的模型,也可以求解無狀態(tài)模型或只有離散狀態(tài)的模型。但它也有個(gè)最基本的限制,就是不能用于仿真有連續(xù)狀態(tài)的模型。若要為模型指定定步長(zhǎng)離散算法,可在Solveroptions選項(xiàng)頁中的Type算法類型列表中選擇Fixed-step選項(xiàng),然后在相鄰的Solver積分算法列表中選擇discrete(nocontinuousstates)。

注意:如果試圖用定步長(zhǎng)離散算法更新或仿真含有連續(xù)狀態(tài)的模型,則Simulink會(huì)顯示錯(cuò)誤消息,因此,若要確定模型中是否有連續(xù)狀態(tài),則利用這個(gè)方法可以進(jìn)行快速檢測(cè)。3.變步長(zhǎng)連續(xù)算法

變步長(zhǎng)連續(xù)算法適用于求解仿真過程中系統(tǒng)狀態(tài)變化的模型。當(dāng)系統(tǒng)的狀態(tài)快速變化時(shí),這些算法可以減小仿真步長(zhǎng)以提高仿真精度,而當(dāng)系統(tǒng)的狀態(tài)變化緩慢時(shí),這些算法又可以增大步長(zhǎng)以節(jié)省仿真時(shí)間。

若要為模型指定變步長(zhǎng)連續(xù)算法,可先在Solveroptions選項(xiàng)頁的Type算法類型列表中選擇Variable-step選項(xiàng),然后在相鄰的Solver積分算法列表中選擇一種方法,如圖5-7所示。圖5-7ode45是基于精確龍格-庫(kù)塔(4,5)的Dormand-Prince算法,它是一步算法,也就是說,在計(jì)算時(shí),它只需要知道前一時(shí)刻的值。通常,對(duì)于大多數(shù)問題都可以先用ode45算法試解一下,正因?yàn)槿绱?,ode45就作為了Simulink求解連續(xù)狀態(tài)模型的缺省算法。

ode23也是基于精確龍格-庫(kù)塔(2,3)的Bogacki-Shampine算法,它在求解原始公差和有軟鋼體出現(xiàn)的模型上比ode45更有效。ode23也是一步算法。ode113是變階的Adams-Bashforth-MoultonPECE算法,它在求解精確公差上比ode45更有效。ode113是多步算法,也就是說,它通常需要知道前幾個(gè)時(shí)刻的數(shù)值才能求解當(dāng)前時(shí)刻的值。

ode15s是基于數(shù)值積分算法(NDFs)的變階算法,它與前面微分算法(BDFs,也稱為Gear算法)有關(guān),但比BDFs效率高。與ode113一樣,ode15s也是多步算法,如果覺得要解決的問題是鋼體模型,或者用ode45算法無效或效率低,可以試試ode15s算法。

ode23s是基于2階Rosenbrock算法的一個(gè)改進(jìn)算法,因?yàn)樗且徊剿惴?,所以在處理原始公差問題上比ode15s更有效,它也可以解決一些ode15s無法解決的鋼體問題。ode23t是使用“任意”插值的梯形積分法,如果模型中有適度的鋼體,而且又想用一種不產(chǎn)生數(shù)值衰減的方法求解問題,則可以使用這種算法。

ode23tb是TR-BDF2實(shí)現(xiàn),也就是第一階段用精確龍格-庫(kù)塔算法,第二階段用2階后向微分算法,從結(jié)構(gòu)上來說,兩個(gè)階段在求值上都使用了相同的迭代矩陣。與ode23s一樣,這個(gè)算法在處理原始公差問題上比ode15s更有效。注意:對(duì)于鋼體問題,解算的結(jié)果在一個(gè)小時(shí)間段內(nèi)可能會(huì)改變,當(dāng)然,這個(gè)小時(shí)間區(qū)域與積分間隔相比是非常短的,但是它所造成的影響可能會(huì)在相當(dāng)長(zhǎng)的時(shí)間范圍內(nèi)影響整個(gè)解算結(jié)果。那些為非鋼體問題而設(shè)計(jì)的算法在解算結(jié)果緩慢變化的時(shí)間區(qū)域內(nèi)是無效的,因?yàn)檫@些算法使用的時(shí)間步是非常小的,足以用來解決最快速變化的模型。對(duì)于ode15s和ode23s算法,它會(huì)在數(shù)值上生成Jacobian(雅可比)矩陣。4.變步長(zhǎng)離散算法

Simulink提供了一種不進(jìn)行積分,但執(zhí)行過零檢測(cè)的變步長(zhǎng)離散算法,即列表中的discrete(nocontinuousstates)選項(xiàng)。對(duì)于沒有連續(xù)狀態(tài)的模型,以及含有要求過零檢測(cè)的連續(xù)信號(hào)和(或)含有以不同采樣時(shí)間操作的離散模塊的模型,都可以使用這種算法。如果用戶未明確指定定步長(zhǎng)離散算法,而且模型中也沒有連續(xù)狀態(tài),那么Simulink會(huì)使用這種算法作為離散模型的缺省算法。Simulink的定步長(zhǎng)離散算法用固定大小的時(shí)間步來改進(jìn)仿真,因此,即使模型中什么操作也不執(zhí)行,它也要占用一個(gè)時(shí)間步的時(shí)間。與其不同的是,對(duì)于Simulink的變步長(zhǎng)離散算法,當(dāng)模型中什么操作也不執(zhí)行時(shí),它并不會(huì)花費(fèi)一個(gè)時(shí)間步的時(shí)間,相反,當(dāng)有動(dòng)作發(fā)生時(shí),它會(huì)調(diào)整時(shí)間步的大小來改善仿真。當(dāng)然,依據(jù)模型的不同,這會(huì)大大減少仿真的步數(shù),因此也就縮短了仿真時(shí)間。注意:對(duì)于連續(xù)系統(tǒng),求解器通過積分來計(jì)算狀態(tài),在任何模型的仿真過程中,只要步長(zhǎng)是有限的,這個(gè)積分過程就是近似的。這就是為什么MATLAB中包含了不同的連續(xù)求解器,它們采用不同的方法來近似。對(duì)于離散系統(tǒng),應(yīng)該選擇一個(gè)離散求解器,離散求解器可以是定步長(zhǎng)和變步長(zhǎng)的,定步長(zhǎng)對(duì)于一個(gè)單速率系統(tǒng)來說是足夠了,但用變步長(zhǎng)求解多速率系統(tǒng)則更有優(yōu)勢(shì)。

定步長(zhǎng)求解器在整個(gè)積分過程中采用相同的步長(zhǎng)對(duì)積分進(jìn)行近似;變步長(zhǎng)求解器能夠根據(jù)近似誤差在仿真過程中自動(dòng)調(diào)整步長(zhǎng),近似的方法和調(diào)整步長(zhǎng)的方法對(duì)每個(gè)求解器是不同的。5.ode15s的最高階

當(dāng)用戶選擇了ode15s算法時(shí),在Solveroptions選項(xiàng)區(qū)內(nèi)會(huì)增加Maximumorder參數(shù)選項(xiàng),如圖5-8所示。這是因?yàn)閛de15s算法是基于一階到五階的NDF公式,雖然階數(shù)越高,算法的精確度越高,但模型的穩(wěn)定性也下降了。如果模型是鋼體問題,且對(duì)穩(wěn)定性要求較高,則可以把最高階數(shù)降為2。此外,也可以嘗試使用ode23s算法,它也是一種定步長(zhǎng)低階算法。圖5-86.多任務(wù)選項(xiàng)

如果用戶選擇了定步長(zhǎng)算法,則在ConfigurationParameters對(duì)話框的Solveroptions選項(xiàng)頁內(nèi)還會(huì)顯示一個(gè)Taskingmodeforperiodicsampletimes(模式)選項(xiàng)列表,如圖5-9所示,用戶可以在該選項(xiàng)的下拉列表中選擇如下一種仿真模式。圖5-9

MultiTasking:這是多任務(wù)仿真模式,如果在這個(gè)模式下檢測(cè)出在兩個(gè)模塊之間存在著不合法的采樣速率,也就是以不同采樣速率操作的模塊被直接連接起來,那么系統(tǒng)在這個(gè)模式下就會(huì)發(fā)出一個(gè)錯(cuò)誤消息。這在實(shí)時(shí)多任務(wù)系統(tǒng)中是非常重要的,因?yàn)槿绻麅蓚€(gè)任務(wù)之間存在著不合理的采樣速率傳輸,那么當(dāng)其中的一個(gè)任務(wù)需要另一任務(wù)的輸出時(shí),可能會(huì)造成無法獲得該任務(wù)輸出的結(jié)果。因此,在這種仿真模式下,通過系統(tǒng)檢查這種傳輸,多任務(wù)模式可以幫助用戶創(chuàng)建一個(gè)有效的、執(zhí)行并行任務(wù)的實(shí)時(shí)多任務(wù)系統(tǒng)。

此外,用戶可以用RateTransition模塊消除模型中不合法的速率傳輸。

SingleTasking:這是單任務(wù)仿真模式,這個(gè)模式無法檢測(cè)模塊之間的采樣傳輸速率,如果用戶創(chuàng)建的是單任務(wù)系統(tǒng)模型,則可以選擇這種仿真模式,在這樣的系統(tǒng)中,任務(wù)同步已經(jīng)不再是一個(gè)問題。

Auto:這是缺省選項(xiàng),它可以使Simulink自動(dòng)選擇仿真模式,如果所有的模塊都使用相同的速率,則Simulink會(huì)使用單任務(wù)模式;如果模型中包含有以不同速率操作的模塊,則會(huì)使用多任務(wù)模式。5.2.3設(shè)置仿真步長(zhǎng)

對(duì)于變步長(zhǎng)算法,用戶可以根據(jù)模型的需要設(shè)置最大步長(zhǎng)和建議的初始步長(zhǎng),缺省時(shí),這些參數(shù)都是由auto值自動(dòng)確定的;對(duì)于定步長(zhǎng)算法,用戶可以設(shè)置固定大小的步長(zhǎng),缺省值也是auto。

1.變步長(zhǎng)連續(xù)算法步長(zhǎng)

當(dāng)選擇變步長(zhǎng)連續(xù)算法時(shí),Solveroptions選項(xiàng)區(qū)的步長(zhǎng)設(shè)置選項(xiàng)如圖5-10所示。圖5-101)最大步長(zhǎng)

Solveroptions選項(xiàng)區(qū)的Maxstepsize參數(shù)用來控制算法使用的最大步長(zhǎng),它的缺省值是由仿真的起始時(shí)間和終止時(shí)間確定的,如果終止時(shí)間等于起始時(shí)間,或者終止時(shí)間是inf,那么Simulink會(huì)把最大步長(zhǎng)設(shè)置為秒,否則,Simulink按照下面的公式來設(shè)置最大步長(zhǎng):通常,缺省的最大步長(zhǎng)對(duì)于大多數(shù)模型都足以保證其精度。如果用戶擔(dān)心步長(zhǎng)太大,算法有可能會(huì)漏掉模型中某些模塊的重要?jiǎng)幼?,那么用戶可以手?dòng)設(shè)置參數(shù)值,以防止步長(zhǎng)過大。當(dāng)然,如果用戶設(shè)定的仿真時(shí)間區(qū)域太長(zhǎng),對(duì)于算法來說,按上述公式計(jì)算的仿真步長(zhǎng)就可能太大了,這時(shí)可以減小步長(zhǎng)。此外,如果模型中包含了某些周期性動(dòng)作或接近周期性動(dòng)作,而用戶又知道這個(gè)周期,則可以把最大步長(zhǎng)設(shè)置為該周期的一小部分(如周期的1/4)。

需要說明的是,對(duì)于要求更多輸出點(diǎn)的模型,從數(shù)據(jù)輸入/輸出面板中設(shè)置Output

options(輸出選項(xiàng))比減小最大步長(zhǎng)更好一些,這在本書的第節(jié)中會(huì)有詳細(xì)介紹。2)初始步長(zhǎng)

Solveroptions選項(xiàng)區(qū)的Initialstepsize參數(shù)用來設(shè)置算法的初始步長(zhǎng)。缺省時(shí),算法會(huì)通過檢驗(yàn)初始時(shí)刻的狀態(tài)微分值來選擇初始步長(zhǎng),如果第一個(gè)步長(zhǎng)選得太大,則算法可能會(huì)越過模型初始時(shí)的某些重要?jiǎng)幼?。?shí)際上,初始步長(zhǎng)值是一個(gè)建議步長(zhǎng),它可以由算法試解來確定,如果計(jì)算結(jié)果不滿足誤差準(zhǔn)則,則算法會(huì)重新選擇并減小步長(zhǎng)。3)最小步長(zhǎng)

Solveroptions選項(xiàng)區(qū)的Minstepsize參數(shù)用來控制算法的最小步長(zhǎng)。如果算法需要更小的步長(zhǎng)來滿足誤差容限,則它會(huì)發(fā)出警告信息以指出當(dāng)前有效的相對(duì)誤差。這個(gè)參數(shù)可以是大于零的實(shí)數(shù),也可以是包含兩個(gè)元素的一維向量,其中的第一個(gè)元素是最小步長(zhǎng),第二個(gè)元素是模型出現(xiàn)錯(cuò)誤前可以發(fā)出的最小步長(zhǎng)警告的最大次數(shù)。如果把第二個(gè)元素設(shè)置為0,則會(huì)產(chǎn)生這樣的錯(cuò)誤,也就是算法在第一個(gè)時(shí)間步上使用的步長(zhǎng)必須小于指定的最小步長(zhǎng),這就相當(dāng)于在Diagnostics選項(xiàng)面板中將最小步長(zhǎng)錯(cuò)誤診斷(Minstepsizeviolation)項(xiàng)設(shè)置為error。若把第二個(gè)元素設(shè)置為-1,則表示可以有無限次警告,如果該參數(shù)輸入的是標(biāo)量值,那么-1值也就是向量值中第二個(gè)元素的缺省值。因此,對(duì)于Minstepsize參數(shù),其缺省值是:作為第一個(gè)元素的最小步長(zhǎng)取決于計(jì)算機(jī)的精度,第二個(gè)元素為無限次的警告次數(shù)。2.變步長(zhǎng)離散算法步長(zhǎng)

在選擇變步長(zhǎng)離散算法時(shí),Solveroptions選項(xiàng)區(qū)的步長(zhǎng)設(shè)置選項(xiàng)如圖5-11所示。圖5-113.定步長(zhǎng)算法步長(zhǎng)

在選擇定步長(zhǎng)算法時(shí),Solveroptions選項(xiàng)區(qū)的步長(zhǎng)設(shè)置選項(xiàng)如圖5-12所示。定步長(zhǎng)連續(xù)算法和定步長(zhǎng)離散算法的設(shè)置選項(xiàng)相同。圖5-12(1)?Periodicsampletimeconstraint(周期采樣時(shí)間約束):這個(gè)選項(xiàng)允許用戶設(shè)置模型在定義采樣時(shí)間上的一些約束條件。在仿真過程中,Simulink會(huì)對(duì)模型進(jìn)行檢測(cè),以確保模型能夠滿足這個(gè)約束,如果模型沒有滿足這個(gè)約束,則Simulink會(huì)顯示錯(cuò)誤消息。該選項(xiàng)可以設(shè)置的參數(shù)如下:

Unconstrained:沒有約束。如果選擇這個(gè)選項(xiàng),則Simulink會(huì)顯示Fixed-step

size(fundamentalsampletime)選項(xiàng),如圖5-12所示,用戶可以在該選項(xiàng)的文本框內(nèi)輸入定步長(zhǎng)的大小。

Ensuresampletimeindependent:如果選擇這個(gè)選項(xiàng),則Simulink會(huì)對(duì)模型進(jìn)行檢查,以確保模型能夠繼承引用該模型的模型采樣時(shí)間,而且不改變?cè)撃P偷臓顟B(tài)。如果為模型指定了仿真步長(zhǎng),那么模型就無法滿足這個(gè)約束,因此選擇這個(gè)選項(xiàng)時(shí),Simulink會(huì)隱藏步長(zhǎng)選項(xiàng),如圖5-13所示。圖5-13

Specified:如果選擇這個(gè)選項(xiàng),則Simulink會(huì)對(duì)模型進(jìn)行檢查,以確保模型在指定的一組有優(yōu)先級(jí)別的周期采樣時(shí)刻上正確執(zhí)行。選擇這個(gè)選項(xiàng)后,Simulink會(huì)顯示Sampletime

properties選項(xiàng),如圖5-14所示。圖5-14(2)?Fixedstepsize(fundamentalsampletime)(定步長(zhǎng),即基本采樣時(shí)間):當(dāng)Type算法類型選擇Fixed-step選項(xiàng),而且Periodicsampletimeconstraint參數(shù)選擇Unconstrained選項(xiàng)時(shí),這個(gè)選項(xiàng)才會(huì)出現(xiàn)。缺省時(shí),該選項(xiàng)為auto,即由Simulink選擇步長(zhǎng)。如果模型指定了一個(gè)或多個(gè)周期采樣時(shí)間,那么Simulink會(huì)選擇指定采樣時(shí)間的最小公分母作為模型的仿真步長(zhǎng),而這個(gè)基本采樣時(shí)間可以確保仿真算法能夠在模型定義的每個(gè)采樣時(shí)刻上進(jìn)行解算。如果模型沒有定義任何周期采樣時(shí)間,那么Simulink會(huì)把仿真時(shí)間除以50作為模型的仿真步長(zhǎng)。(3)?Sampletimeproperties(采樣時(shí)間屬性):這個(gè)選項(xiàng)用來指定并分配模型采樣時(shí)間的優(yōu)先級(jí),可在這個(gè)文本框內(nèi)輸入N×3矩陣,行表示模型指定的采樣時(shí)間,并按照由快到慢的速率排列。如果模型的基本速率與模型指定的最快速率不同,那么應(yīng)該指定基本速率作為矩陣的第一個(gè)元素,然后按照由快到慢的順序指定速率。

每一行的采樣時(shí)間應(yīng)該具有如下形式:[period,offset,priority]。這里,period是采樣時(shí)間段,offset是采樣時(shí)間偏移量,priority是與這個(gè)采樣速率相關(guān)的實(shí)時(shí)任務(wù)的執(zhí)行優(yōu)先級(jí),最快的采樣速率具有最高的優(yōu)先級(jí)。例如,,0,10];,0,11];,0,12]]表示這個(gè)模型指定了三個(gè)采樣時(shí)間,它的基本采樣時(shí)間是秒,分配的采樣時(shí)間優(yōu)先級(jí)是10,11,12,這個(gè)例子假設(shè)模型的較高優(yōu)先級(jí)值表示的是較低的優(yōu)先權(quán),也就是沒有選擇Higherpriorityvalueindicateshighertaskpriority選項(xiàng)。如果模型在執(zhí)行時(shí)只有一個(gè)速率,那么在這個(gè)文本框內(nèi)應(yīng)輸入速率作為三元素向量,例如,,0,10]。當(dāng)更新模型時(shí),Simulink會(huì)對(duì)照這個(gè)文本框檢查模型定義的采樣時(shí)間,如果模型定義的采樣時(shí)間多于或少于文本框中指定的采樣時(shí)間,則Simulink會(huì)顯示一個(gè)錯(cuò)誤消息。(4)Higherpriorityvalueindicateshighertaskpriority(優(yōu)先級(jí)值越高,任務(wù)優(yōu)先級(jí)越高):如果選擇這個(gè)選項(xiàng),則模型會(huì)為較高優(yōu)先級(jí)值的任務(wù)分配較高的優(yōu)先權(quán),這樣,RateTransition模塊會(huì)按照由低到高的速率轉(zhuǎn)換原則依次處理較低優(yōu)先級(jí)值速率和較高優(yōu)先級(jí)值速率之間的異步轉(zhuǎn)換;如果不選擇這個(gè)選項(xiàng)(缺省值),則模型會(huì)為較高優(yōu)先級(jí)值的任務(wù)分配較低的優(yōu)先權(quán),這樣,RateTransition模塊會(huì)按照由高到低的速率轉(zhuǎn)換原則依次處理較低優(yōu)先級(jí)值速率和較高優(yōu)先級(jí)值速率之間的異步轉(zhuǎn)換。這是實(shí)時(shí)工作間中使用的一個(gè)選項(xiàng)。(5)?Automaticallyhandledatatransfersbetweentasks(自動(dòng)在任務(wù)間執(zhí)行數(shù)據(jù)轉(zhuǎn)換):如果選擇這個(gè)選項(xiàng),那么在模塊之間有速率轉(zhuǎn)換時(shí),Simulink會(huì)在這些模塊之間插入隱藏的RateTransition模塊,以確保在數(shù)據(jù)轉(zhuǎn)換過程中的數(shù)據(jù)完整性。5.2.4計(jì)算仿真步長(zhǎng)

由于Simulink中的變步長(zhǎng)求解器是根據(jù)積分誤差來修改步長(zhǎng)的,而模型中的狀態(tài)通常都不能夠被精確地計(jì)算出來,因此積分的誤差值也同樣是一個(gè)近似值。通常,求解器采用兩個(gè)不同的階次進(jìn)行積分,然后計(jì)算它們之間的差值,作為積分誤差。

對(duì)于模型中的連續(xù)狀態(tài),Simulink通過對(duì)連續(xù)狀態(tài)的微分值進(jìn)行積分來求取連續(xù)量的狀態(tài)值。圖5-15說明了Simulink通過比較兩種不同階次積分之間的差異來求得近似的積分誤差。圖5-15具體的計(jì)算方法根據(jù)求解器的不同而不同,如果積分誤差滿足絕對(duì)誤差或相對(duì)誤差,則仿真會(huì)繼續(xù)進(jìn)行;如果不滿足,求解器會(huì)嘗試使用一個(gè)更小的步長(zhǎng),并重復(fù)這個(gè)過程,直至積分誤差滿足誤差容限。對(duì)于同一個(gè)求解器,求解器在選擇更小步長(zhǎng)時(shí)采用的方法也不盡相同,而且如果誤差容許值或選擇的求解器不適合所求解的系統(tǒng),則步長(zhǎng)可能會(huì)變得非常小,使仿真速度變得非常慢。對(duì)于離散狀態(tài)中的仿真步長(zhǎng),變步長(zhǎng)求解器也考慮了系統(tǒng)中的離散狀態(tài)。通常,求解器首先嘗試最大步長(zhǎng)(開始時(shí)采用初始步長(zhǎng)h0),如果在這個(gè)區(qū)間有離散更新ht(ht<h0),則求解器會(huì)減小步長(zhǎng),以與更新相吻合,之后再計(jì)算積分誤差;如果誤差準(zhǔn)則滿足要求,則進(jìn)行下一步計(jì)算;如果不滿足要求,則繼續(xù)縮小時(shí)間間隔(h=ht-hnew),減小步長(zhǎng)重新計(jì)算積分誤差,整個(gè)過程繼續(xù)下去,直至滿足誤差要求為止。圖5-16說明了變步長(zhǎng)算法中離散狀態(tài)的更新過程。圖5-165.2.5設(shè)置誤差容限

Simulink中的算法使用標(biāo)準(zhǔn)的局部誤差控制法來監(jiān)視每個(gè)時(shí)間步上的誤差,在每個(gè)時(shí)間步內(nèi),算法會(huì)在時(shí)間步的結(jié)尾處計(jì)算模型中各模塊的狀態(tài)值,同時(shí)確定局部誤差(localerror),即狀態(tài)值的估計(jì)誤差;然后比較局部誤差和容許誤差(acceptableerror),容許誤差是相對(duì)誤差(rtol)和絕對(duì)誤差(atol)的函數(shù),如果對(duì)于任何一個(gè)狀態(tài),狀態(tài)的局部誤差都大于容許誤差,那么算法會(huì)減小步長(zhǎng)并重新計(jì)算誤差值。

Simulink中的變步長(zhǎng)求解器是根據(jù)積分誤差來修改步長(zhǎng)的,在步長(zhǎng)計(jì)算過程中考慮了兩個(gè)誤差:相對(duì)誤差和絕對(duì)誤差。相對(duì)誤差(Relativetolerance)測(cè)量相對(duì)于每個(gè)狀態(tài)的誤差,它表示狀態(tài)值的百分比,即狀態(tài)的絕對(duì)誤差除以狀態(tài)值的百分比。相對(duì)誤差的缺省值為1e-3,也就是所計(jì)算的狀態(tài)要精確在0.1%內(nèi)。

絕對(duì)誤差(Absolutetolerance)是臨界誤差值,它是積分誤差的絕對(duì)值,這個(gè)誤差表示被測(cè)狀態(tài)值趨近于零的程度。

對(duì)于模型中模塊的第i個(gè)狀態(tài),它的誤差ei要求滿足:其中,rtol是相對(duì)誤差,adtol是絕對(duì)誤差,絕對(duì)誤差和相對(duì)誤差給出了誤差的上限值,求解器必須滿足其中的一個(gè)誤差方能進(jìn)行下一步計(jì)算。當(dāng)狀態(tài)值較大時(shí),相對(duì)誤差小于絕對(duì)誤差,于是通常是相對(duì)誤差控制模型仿真的執(zhí)行進(jìn)程;當(dāng)狀態(tài)值接近于零時(shí),絕對(duì)誤差小于相對(duì)誤差,于是由絕對(duì)誤差控制仿真的執(zhí)行進(jìn)程。

圖5-17是模型中的一條狀態(tài)曲線,圖中繪出了由相對(duì)誤差和絕對(duì)誤差確定的容許誤差區(qū)域。圖5-17如果用戶指定相對(duì)誤差和絕對(duì)誤差的參數(shù)值為auto(缺省值),那么Simulink會(huì)在初始時(shí)把每個(gè)狀態(tài)的絕對(duì)誤差設(shè)置為1e-6,隨著仿真過程的進(jìn)行,Simulink會(huì)把每個(gè)狀態(tài)的絕對(duì)誤差重新設(shè)置為狀態(tài)所假設(shè)的最大值,即此時(shí)刻的狀態(tài)與相對(duì)誤差的乘積。這樣,如果狀態(tài)由0變化到1,rtol是1e-3,那么到仿真結(jié)束時(shí),atol也就設(shè)置為1e-3;如果狀態(tài)由0變化到1000,那么atol設(shè)置為1;如果計(jì)算的設(shè)置值不合理,那么用戶也可以自己確定合適的設(shè)置值。為了確定一個(gè)合理的絕對(duì)誤差值,可能需要多次運(yùn)行仿真。

用戶可以在參數(shù)對(duì)話框內(nèi)設(shè)置誤差容限,如圖5-18所示,其中Δx表示x的誤差。高的容限值可以使仿真速度加快,但是可能會(huì)給出不準(zhǔn)確的結(jié)果,甚至造成數(shù)值不穩(wěn)定。圖5-18Simulink中的某些模塊,如Integrator模塊、TransferFcn模塊、State-Space模塊和Zero-Pole模塊,允許用戶指定絕對(duì)誤差值以求解模型狀態(tài)和確定模型輸出,為這些模塊指定絕對(duì)誤差值也就取代了在ConfigurationParameters對(duì)話框內(nèi)的全局設(shè)置。當(dāng)然,如果全局設(shè)置無法為模型中的所有狀態(tài)提供足夠的誤差控制,如這些狀態(tài)的幅值變化范圍比較大。那么可以用這種方法取代全局設(shè)置。 5.3工作區(qū)輸入/輸出設(shè)置

選擇ConfigurationParameters對(duì)話框中Select選項(xiàng)區(qū)中的DataImport/Export選項(xiàng),將顯示數(shù)據(jù)輸入/輸出面板,如圖5-19所示。這個(gè)選項(xiàng)面板是MATLAB工作區(qū)的輸入/輸出設(shè)置面板,用戶可以在這個(gè)選項(xiàng)頁內(nèi)將仿真結(jié)果輸出到工作區(qū)變量中,也可以從工作區(qū)中獲得輸入和變量的初始狀態(tài)。圖5-19也可以在模型窗口中選擇View菜單下的ModelExplorer命令,打開ModelExplorer對(duì)話框,并顯示DataImport/Export子項(xiàng),如圖5-20所示。圖5-205.3.1從基本工作區(qū)中裝載輸入

Simulink在運(yùn)行仿真期間,可以從模型的基本工作區(qū)中將輸入應(yīng)用到模型的最頂層輸入端口,為了指定這個(gè)選項(xiàng),應(yīng)在數(shù)據(jù)輸入/輸出選項(xiàng)面板的Loadfromworkspace區(qū)域內(nèi)選擇Input復(fù)選框,然后在相鄰的編輯框內(nèi)輸入外部輸入描述,并單擊Apply按鈕。

外部輸入(例如,來自于工作區(qū)的輸入)的格式可以從Saveoptions選項(xiàng)區(qū)中的Format選項(xiàng)旁的下拉列表框內(nèi)選擇,如圖5-21所示,可以選擇的選項(xiàng)有Array、Structure、Structurewithtime。圖5-21

Array:這是數(shù)組選項(xiàng),它可以使Simulink求取Input復(fù)選框旁的表達(dá)式,并把表達(dá)式結(jié)果作為模型的輸入。

對(duì)于模型來說,缺省的輸入表達(dá)式為[t,u],缺省的輸入格式為Array。因此,如果用戶在基本工作區(qū)中定義了t和u,那么只能選擇Input選項(xiàng)從模型的基本工作區(qū)中輸入數(shù)據(jù)。

表達(dá)式求取的必須是數(shù)據(jù)類型為double的實(shí)數(shù)(非復(fù)數(shù))矩陣,矩陣的第一列必須是按升冪排列的時(shí)間向量,其他的列指定輸入值,而且,每一列都表示不同Inport模塊信號(hào)(按序列排列)的輸入,每一行是對(duì)應(yīng)時(shí)間點(diǎn)的輸入值。如果打開了Input模塊的模塊參數(shù)對(duì)話框,并選擇了該模塊的Interpolatedate復(fù)選項(xiàng),如圖5-22所示,那么Simulink會(huì)根據(jù)需要線性內(nèi)插或外插輸入值。圖5-22需要指出的是,輸入矩陣的總列數(shù)必須等于n+1,n是模型中輸入端口的信號(hào)總數(shù)。如果矩陣的輸入信號(hào)數(shù)與模型端口的輸入信號(hào)數(shù)不相同,則模型仿真時(shí)會(huì)發(fā)出錯(cuò)誤消息。

注意:數(shù)組輸入格式允許用戶只能裝載數(shù)據(jù)類型為double的實(shí)數(shù)(非復(fù)數(shù))標(biāo)量輸入或向量輸入,也可以使用非double類型的結(jié)構(gòu)格式輸入復(fù)數(shù)數(shù)據(jù)和矩陣(2-D)數(shù)據(jù)。舉例來說,假設(shè)要實(shí)現(xiàn)如下的代數(shù)方程模型:模型中有三個(gè)輸入端口,每個(gè)端口接收一個(gè)輸入信號(hào),按方程的要求創(chuàng)建的Simulink模型如圖5-23所示。圖5-23假設(shè)DataImport/Export選項(xiàng)面板中的Input文本框內(nèi)定義了變量t和u,并選擇輸入的Format格式為Array,在工作區(qū)中裝載時(shí)間和信號(hào)輸入如下:

t=[0:0.1:10]';

u=[sin(t),t-1,cos(t)];

這里,n等于3,輸入矩陣[t,u]的總列數(shù)為4。給定了輸入信號(hào)后,在模型窗口中運(yùn)行仿真,打開示波器觀察輸出y1和y2信號(hào)曲線,仿真結(jié)果如圖5-24所示。(a)(b)圖5-24

Structurewithtime:這個(gè)選項(xiàng)表示Simulink以帶有時(shí)間定義的數(shù)據(jù)結(jié)構(gòu)形式讀取工作區(qū)中的數(shù)據(jù)。該結(jié)構(gòu)的名稱在Input文本框內(nèi)指定,這個(gè)輸入結(jié)構(gòu)必須有兩個(gè)頂層域:time和signals。time域包含一個(gè)仿真時(shí)間列向量,signals域包含一個(gè)子結(jié)構(gòu)數(shù)組,每個(gè)子結(jié)構(gòu)數(shù)組對(duì)應(yīng)一個(gè)模型輸入端口。每個(gè)signals子結(jié)構(gòu)還必須包含兩個(gè)名稱分別為values和dimensions的域。values域必須包含相應(yīng)輸入端口的輸入數(shù)組,每個(gè)輸入與time域指定的時(shí)間點(diǎn)相對(duì)應(yīng)。dimensions域指定輸入的維數(shù)。如果每個(gè)輸入是標(biāo)量值或向量值(1-D數(shù)組),那么dimensions域也必須是一個(gè)指定輸入向量長(zhǎng)度的標(biāo)量值(對(duì)于輸入的標(biāo)量值,該長(zhǎng)度值為1);如果每個(gè)輸入是一個(gè)矩陣(2-D數(shù)組),則dimensions域必須是一個(gè)兩元素向量,向量中的第一個(gè)元素指定矩陣的行數(shù),第二個(gè)元素指定矩陣的列數(shù)。如果一個(gè)端口的所有輸入都是標(biāo)量值或向量值,則values域必須是M×N數(shù)組,這里,M是由time域指定的時(shí)間點(diǎn)數(shù),N是每個(gè)向量值的長(zhǎng)度。例如,下面的代碼創(chuàng)建了一個(gè)名稱為a的結(jié)構(gòu),該結(jié)構(gòu)向帶有單個(gè)輸入端口的模型裝載數(shù)據(jù)類型為int8的兩元素信號(hào)向量,信號(hào)向量中有11個(gè)時(shí)間采樣點(diǎn)。a.time=(0:0.1:1)';c1=int8([0:1:10]');

c2=int8([0:10:100]');

a.signals(1).values=[c1c2];

a.signals(1).dimensions=2;為了把這個(gè)數(shù)據(jù)裝載到模型的輸入端口,應(yīng)該先選擇WorkspaceI/O選項(xiàng)頁中的Input復(fù)選框,并在輸入表達(dá)式區(qū)域內(nèi)輸入a。

如果一個(gè)端口的所有輸入都是矩陣(2-D數(shù)組),那么values域必須是一個(gè)M?×?N?×?T數(shù)組,這里M和N是每個(gè)矩陣輸入的維數(shù),T是時(shí)間點(diǎn)數(shù)。例如,假設(shè)用戶想要為模型的某一輸入端口輸入一個(gè)4?×?5階矩陣信號(hào)的51個(gè)采樣時(shí)間點(diǎn),則工作區(qū)結(jié)構(gòu)中的對(duì)應(yīng)dimensions域必須等于[45],values數(shù)組維數(shù)必須為4?×?5?×?51。

再舉例說明,如圖5-25所示模型是一個(gè)有兩個(gè)輸入的系統(tǒng)。圖5-25假設(shè)要在第一個(gè)輸入端口輸入一個(gè)正弦波,在第二個(gè)輸入端口輸入一個(gè)余弦波,那么在MATLAB工作區(qū)中按如下語句定義向量a:

a.time=(0:0.1:10)';

a.signals(1).values=sin(a.time);

a.signals(1).dimensions=1;

a.signals(2).values=cos(a.time);

a.signals(2).dimensions=1;

然后打開模型的仿真參數(shù)對(duì)話框,選擇DataImport/Export選項(xiàng)面板中的Input復(fù)選框,并在相鄰的文本編輯框內(nèi)輸入a,選擇Structurewithtime作為I/O格式。運(yùn)行仿真后,示波器中會(huì)顯示正弦波和余弦波曲線。

Structure:Structure格式與Structurewithtime格式相同,不同的是時(shí)間域?yàn)榭铡@纾谏厦娴睦又?,可以設(shè)置時(shí)間域?yàn)椋篴.time=[];這樣,Simulink就會(huì)在第一個(gè)時(shí)間步上從輸入端口數(shù)值數(shù)組中的第一個(gè)元素讀取輸入,在第二個(gè)時(shí)間步上從數(shù)組中的第二個(gè)元素讀取輸入,依此類推。時(shí)間表達(dá)式:時(shí)間表達(dá)式可以是任意的MATLAB表達(dá)式,這個(gè)表達(dá)式用來求取長(zhǎng)度等于模型輸入端口信號(hào)數(shù)目的行向量。例如,假設(shè)模型有一個(gè)向量輸入端口,該端口接收兩個(gè)輸入信號(hào),而且假設(shè)timefcn是用戶定義的函數(shù),該函數(shù)返回一個(gè)兩元素行向量,那么對(duì)于這個(gè)模型,下面給出的都是該模型有效的輸入時(shí)間表達(dá)式:

[3*sin(t),cos(2*t)]

4*timefcn(w*t)+7

Simulink會(huì)在仿真的每個(gè)時(shí)間步上求取表達(dá)式的值,并將最終的結(jié)果值應(yīng)用于模型的輸入端口。需要注意的是,當(dāng)運(yùn)行仿真時(shí),Simulink會(huì)定義時(shí)間變量t,這樣,用戶在表達(dá)式中可以忽略這個(gè)時(shí)間變量,Simulink會(huì)把表達(dá)式sin看做sin(t)。5.3.2把輸出結(jié)果保存到工作區(qū)

在數(shù)據(jù)輸入/輸出選項(xiàng)面板的Savetoworkspace區(qū)域內(nèi),用戶可以通過選擇Time、States和/或Output等復(fù)選框指定返回到工作區(qū)中的變量,如圖5-26所示。Simulink會(huì)把指定的時(shí)間、狀態(tài)和輸出軌跡寫入到工作區(qū)。圖5-26對(duì)于變量的名稱,用戶可以在復(fù)選框右側(cè)的文本框內(nèi)指定,如果要把輸出數(shù)據(jù)寫入到一個(gè)以上的變量中,可以用逗號(hào)分隔以指定各變量名稱。

注意:Simulink會(huì)以模型的基本采樣速率將輸出保存到工作區(qū)中。如果用戶想用不同的采樣速率保存輸出,則可以使用ToWorkspace模塊。

Saveoptions選項(xiàng)區(qū)可以指定數(shù)據(jù)輸出的格式,并可以限制所保存的輸出值的數(shù)量。關(guān)于模型狀態(tài)和輸出的格式選項(xiàng)如下:

Array:選擇這個(gè)選項(xiàng)后,Simulink會(huì)把狀態(tài)和輸出保存到狀態(tài)數(shù)組和輸出數(shù)組中。

狀態(tài)矩陣的名稱在SavetoWorkspace區(qū)域內(nèi)指定(如xout),狀態(tài)矩陣中的每一行對(duì)應(yīng)于模型狀態(tài)的時(shí)間采樣點(diǎn),每一列對(duì)應(yīng)于狀態(tài)中的一個(gè)元素。例如,假設(shè)用戶模型有兩個(gè)連續(xù)狀態(tài),每個(gè)狀態(tài)是一個(gè)兩元素向量,那么狀態(tài)矩陣每一行中的前兩個(gè)元素就包含著第一個(gè)狀態(tài)向量的時(shí)間采樣,每一行中的最后兩個(gè)元素包含第二個(gè)狀態(tài)向量的時(shí)間采樣。

模型輸出矩陣的名稱也在SavetoWorkspace區(qū)域內(nèi)指定(例如,yout),矩陣中的每一列對(duì)應(yīng)于一個(gè)模型輸出端口,每一行中的元素對(duì)應(yīng)指定時(shí)刻的輸出值。注意:只有當(dāng)模型的輸出都是相同數(shù)據(jù)類型的標(biāo)量或者向量(對(duì)狀態(tài)來說,都是矩陣),都是實(shí)數(shù)或者都是復(fù)數(shù)時(shí),才能用Array格式保存模型的輸出或狀態(tài)。如果模型的輸出和狀態(tài)不滿足這些條件,則可以用Structurewithtime輸出格式保存數(shù)值。

Structurewithtime:選擇這個(gè)選項(xiàng)后,Simulink會(huì)以數(shù)據(jù)結(jié)構(gòu)保存模型的狀態(tài)和輸出,結(jié)構(gòu)的名稱在SavetoWorkspace區(qū)域內(nèi)指定(例如,xout和yout)。

用來保存輸出的結(jié)構(gòu)有兩個(gè)頂層域:time和signals。time域包含一個(gè)仿真時(shí)間向量,signals域包含一個(gè)子結(jié)構(gòu)數(shù)組,每個(gè)子結(jié)構(gòu)數(shù)組對(duì)應(yīng)一個(gè)模型輸出端口。而且,每個(gè)子結(jié)構(gòu)有四個(gè)域值:values、dimensions、label和blockName。values域指定的是相應(yīng)輸出端口的輸出值,如果輸出的是標(biāo)量或向量值,則values域是一個(gè)矩陣,矩陣中的每一行表示一個(gè)輸出,每一行中的元素值對(duì)應(yīng)時(shí)間向量中特定時(shí)刻的輸出;如果輸出的是矩陣(2-D)值,則values域是一個(gè)三維數(shù)組M×N×T,這里,M×N是輸出信號(hào)的維數(shù),T是輸出采樣點(diǎn)的個(gè)數(shù)。如果T=1,則MATLAB自動(dòng)降為最低維數(shù),因此,values域就是M×N矩陣。dimensions域指定的是輸出信號(hào)的維數(shù)。label域指定的是連接到輸出端口或狀態(tài)類型(連續(xù)或離散)的信號(hào)標(biāo)簽。blockName域指定的是相應(yīng)輸出端口或模塊的名稱。用來保存狀態(tài)的結(jié)構(gòu)與保存輸出的結(jié)構(gòu)有相似的構(gòu)成,狀態(tài)結(jié)構(gòu)也有兩個(gè)頂層域:time和signals。time域指定的是仿真時(shí)間向量;signals域指定的是子結(jié)構(gòu)數(shù)組,每個(gè)子結(jié)構(gòu)數(shù)組對(duì)應(yīng)于模型中的一個(gè)狀態(tài)。每個(gè)signals結(jié)構(gòu)也有四個(gè)域:values、dimensions、label和blockName。values域指定的是由blockName域中指定的模塊狀態(tài)的時(shí)間采樣;對(duì)于內(nèi)嵌模塊,label域指定狀態(tài)類型,狀態(tài)類型或者為CSTATE(連續(xù)狀態(tài)),或者為DSTATE(離散狀態(tài))。對(duì)于S-Function模塊,標(biāo)簽包含由S-Function模塊應(yīng)用到狀態(tài)中的任意名稱。狀態(tài)的時(shí)間采樣以矩陣值的形式存儲(chǔ)在values域內(nèi),矩陣中的每一行對(duì)應(yīng)一個(gè)時(shí)間采樣,每一行中的每個(gè)元素對(duì)應(yīng)于狀態(tài)的一個(gè)元素,如果狀態(tài)是矩陣,則矩陣以列主序列的形式存儲(chǔ)在values數(shù)組中。例如,假設(shè)模型包含一個(gè)2?×?2矩陣狀態(tài),Simulink記錄了仿真運(yùn)行期間狀態(tài)值的51個(gè)采樣點(diǎn),那么,該狀態(tài)的values域會(huì)是一個(gè)51?×?4矩陣,矩陣的每一行對(duì)應(yīng)該狀態(tài)的一個(gè)時(shí)間采樣,每一行的前兩個(gè)元素對(duì)應(yīng)采樣值的第一列,最后兩個(gè)元素對(duì)應(yīng)采樣的第二列。

Structure:這個(gè)格式與前面介紹的相同,不同的是,Simulink不會(huì)在被保存結(jié)構(gòu)中的time域內(nèi)存儲(chǔ)仿真時(shí)間。注意:向工作區(qū)中保存數(shù)據(jù)可能會(huì)降低仿真速度,并消耗內(nèi)存。為了避免這種情況,用戶可以限制保存到工作區(qū)中的采樣點(diǎn)數(shù)目,或者通過使用倍數(shù)因子跳過這些采樣點(diǎn)。若要設(shè)置所保存的數(shù)據(jù)采樣點(diǎn)的數(shù)目,可選擇Limitdatapointstolast復(fù)選框,并指定要保存的采樣點(diǎn)數(shù)目。若要使用倍數(shù)因子,可在Decimation右側(cè)的文本框內(nèi)輸入數(shù)值,例如,數(shù)值2表示每隔一個(gè)保存一個(gè)數(shù)據(jù)。5.3.3裝載和保存狀態(tài)

對(duì)于系統(tǒng)模型,仿真起始時(shí)刻應(yīng)用的初始條件通常在模塊中進(jìn)行設(shè)置,在DataImport/Export選項(xiàng)面板內(nèi),用戶可以通過指定States參數(shù)文本框中的內(nèi)容來替代模塊中設(shè)置的初始條件。用戶也可以在Finalstates參數(shù)文本框內(nèi)指定最終狀態(tài)的存儲(chǔ)變量,并保存當(dāng)前仿真運(yùn)行時(shí)的最終狀態(tài),然后把這些狀態(tài)應(yīng)用到后續(xù)的仿真中,見圖5-20。

如果用戶想要保存穩(wěn)態(tài)解,并用這些已知狀態(tài)重新啟動(dòng)仿真,則可以利用這些特性,這些狀態(tài)以用戶在DataImport/Export選項(xiàng)面板中Saveoptions區(qū)域內(nèi)設(shè)置的格式存儲(chǔ)。設(shè)置裝載和保存狀態(tài)的方式如下:

若要保存最終狀態(tài)(仿真結(jié)束時(shí)的狀態(tài)值),可選擇FinalState復(fù)選框,并在相鄰的文本編輯框內(nèi)輸入變量。

若要裝載狀態(tài),可選擇InitialState復(fù)選框,然后指定包含初始狀態(tài)值的變量名稱,這個(gè)變量可以選擇與存儲(chǔ)最終狀態(tài)的變量具有相同格式的矩陣或結(jié)構(gòu)。這樣,Simulink就可以用Structure或Structurewithtime格式把當(dāng)前會(huì)話期中的初始狀態(tài)設(shè)置為前一個(gè)會(huì)話期中保存的最終狀態(tài)。

如果未選擇這些復(fù)選框,或者狀態(tài)數(shù)組為空([]),那么Simulink會(huì)使用模塊中定義的初始條件。5.3.4設(shè)置輸出選項(xiàng)

ConfigurationParameters對(duì)話框中的Outputoptions區(qū)域可以控制仿真生成的輸出數(shù)目,可以選擇如下三個(gè)選項(xiàng):

Refineoutput(精細(xì)輸出);

Produceadditionaloutput(生成附加輸出);

Producespecifiedoutputonly(只生成指定輸出)。

Refineoutput:當(dāng)仿真輸出結(jié)果太粗糙時(shí),這個(gè)選項(xiàng)可以提供額外的輸出點(diǎn),以平滑結(jié)果曲線,它實(shí)際是在兩個(gè)時(shí)間步之間增加輸出點(diǎn)的數(shù)目,如圖5-27所示。例如,精細(xì)因子2可在兩個(gè)時(shí)間步之間再提供一個(gè)輸出點(diǎn)。缺省時(shí)的精細(xì)因子為1。圖5-27注意:如果用戶想要獲得比較光滑的輸出曲線,可以增加精細(xì)因子,也可以減小仿真步長(zhǎng),但改變精細(xì)因子比減小步長(zhǎng)更快捷。當(dāng)精細(xì)因子改變時(shí),仿真算法通過求取附加點(diǎn)處的擴(kuò)展公式來增加輸出點(diǎn),但改變精細(xì)因子并不會(huì)改變仿真步長(zhǎng)。此外,如果在模型中產(chǎn)生了過零,則利用這個(gè)選項(xiàng)無助于算法定位過零位置。如果用戶選擇了ode45算法,則對(duì)于這種變步長(zhǎng)算法,使用精細(xì)因子是最有用的,因?yàn)閛de45算法可以使用大步長(zhǎng),當(dāng)圖形化輸出仿真結(jié)果時(shí),這種大步長(zhǎng)算法可能會(huì)造成輸出曲線不夠光滑。這時(shí)可以試試較大的精細(xì)因子,并重新運(yùn)行仿真。通常,數(shù)值為4的精細(xì)因子都能提供更平滑的輸出結(jié)果。

Produceadditionaloutput:這個(gè)選項(xiàng)可以使用戶直接指定算法生成附加輸出點(diǎn)的時(shí)間。當(dāng)選擇這個(gè)選項(xiàng)時(shí),Simulink會(huì)在Saveoptions選項(xiàng)區(qū)內(nèi)顯示一個(gè)OutputTimes文本框,如圖5-28所示。用戶可以在這個(gè)區(qū)域內(nèi)輸入求取附加點(diǎn)時(shí)刻的MATLAB表達(dá)式,或者直接輸入附加點(diǎn)時(shí)刻向量,算法會(huì)使用連續(xù)擴(kuò)展公式在這些附加時(shí)刻生成附加點(diǎn)。與精細(xì)因子不同,這個(gè)選項(xiàng)會(huì)改變仿真步長(zhǎng),以使仿真時(shí)間步與用戶為附加輸出指定的時(shí)間相一致。圖5-28

Producespecifiedoutputonly:這個(gè)選項(xiàng)只在仿真起始時(shí)間、仿真結(jié)束時(shí)間和用戶指定的輸出時(shí)刻提供輸出。例如,如果仿真起始時(shí)間為0,仿真終止時(shí)間為60,如在Outputtimes文本框內(nèi)輸入[10:10:50],那么模型在如下時(shí)刻產(chǎn)生輸出:

0,10,20,30,40,50,60

這個(gè)選項(xiàng)也會(huì)改變仿真步長(zhǎng),以使時(shí)間步與用戶指定的輸出時(shí)間相一致。如果用戶想要比較不同的仿真結(jié)果,以確保模型能在同一時(shí)刻產(chǎn)生輸出,則可以使用這個(gè)選項(xiàng)。下面是對(duì)這三個(gè)選項(xiàng)產(chǎn)生的輸出結(jié)果進(jìn)行的比較。假設(shè)仿真結(jié)果在如下時(shí)刻產(chǎn)生輸出:

0,,5,,10

選擇Refineoutput選項(xiàng),并指定精細(xì)因子為2,那么會(huì)在下列時(shí)刻產(chǎn)生輸出:

0,,,,5,,,,10

選擇Produceadditionaloutput選項(xiàng),并指定時(shí)間向量為[0:10],則在下列時(shí)刻產(chǎn)生輸出:

0,1,2,3,4,5,6,7,8,9,10

當(dāng)然,也可能在其他的時(shí)刻產(chǎn)生輸出,這取決于變步長(zhǎng)算法采用的步長(zhǎng)大小。選擇Producespecifiedoutputonly選項(xiàng),并指定時(shí)間向量為[0:10],則在下列時(shí)刻產(chǎn)生輸出:

0,1,2,3,4,5,6,7,8,9,10

通常,應(yīng)該指定輸出點(diǎn)為基本步長(zhǎng)的整數(shù)倍,如:或[1:0.01:100],前一種方式比后一種方式精確度更高。 5.4輸出信號(hào)的顯示

通常,模型仿真的結(jié)果可以用數(shù)據(jù)的形式保存在文件中,也可以用圖形的方式直觀地顯示出來。對(duì)于大多數(shù)工程設(shè)計(jì)人員來說,查看和分析結(jié)果曲線對(duì)于了解模型的內(nèi)部結(jié)構(gòu),以及判斷結(jié)果的準(zhǔn)確性具有重要意義。Simulink仿真模型后,可以用下面幾種方法繪制模型的輸出軌跡:

將輸出信號(hào)傳送到Scope模塊或XYGraph模塊;

使用懸浮Scope模塊和Display模塊;

將輸出數(shù)據(jù)寫入到返回變量,并用MATLAB的繪圖命令繪制曲線;

將輸出數(shù)據(jù)用ToWorkspace模塊寫入到工作區(qū),并用MATLAB的繪圖命令繪制結(jié)果曲線。

5.4.1Scope模塊和XYGraph模塊的使用

顯然,Scope模塊是示波器模塊,它與實(shí)驗(yàn)室中使用的示波器具有類似的功能,用戶可以在仿真運(yùn)行期間打開Scope模塊,也可以在仿真結(jié)束后打開模塊觀察輸出軌跡。

Scope模塊顯示對(duì)應(yīng)于仿真時(shí)間的輸入信號(hào),它可以有多個(gè)坐標(biāo)軸系(即每個(gè)輸入端口對(duì)應(yīng)于一個(gè)坐標(biāo)軸),所有的坐標(biāo)軸系都對(duì)應(yīng)獨(dú)立的y軸,但x軸的時(shí)間范圍是相同的,用戶可以調(diào)整需要顯示的時(shí)間范圍和輸入值范圍。當(dāng)用戶運(yùn)行模型仿真時(shí),雖然Simulink會(huì)把結(jié)果數(shù)據(jù)寫入到相應(yīng)的Scope中,但它并不打開Scope窗口,若用戶在仿真結(jié)束后打開Scope窗口,則示波器窗口會(huì)顯示Scope模塊的輸入信號(hào)。如果信號(hào)是連續(xù)的,則Scope會(huì)生成點(diǎn)-點(diǎn)的曲線;如果信號(hào)是離散的,則Scope會(huì)生成階梯狀曲線。此外,用戶還可以在仿真運(yùn)行期間移動(dòng)Scope窗口或改變窗口的大小,或更改Scope窗口的參數(shù)值。

Scope模塊提供的工具欄按鈕可以縮放被顯示的數(shù)據(jù),保存此次仿真的坐標(biāo)軸設(shè)置,限制被顯示的數(shù)據(jù)量,把數(shù)據(jù)存儲(chǔ)到工作區(qū)等。

圖5-29說明了Scope窗口中工具欄按鈕的不同功能。圖5-29注意:在用戶創(chuàng)建的庫(kù)模塊中不能使用Scope模塊。用戶可以提供帶有輸出端口的庫(kù)模塊,模塊的輸出端口可以與顯示內(nèi)部數(shù)據(jù)的示波器相連。

用戶可以在Scope窗口中單擊鼠標(biāo)右鍵打開示波器的Y軸設(shè)置對(duì)話框,在這個(gè)對(duì)話框內(nèi)用戶可以更改Y軸顯示范圍的最大值和最小值。此外,單擊窗口工具欄中的“示波器參數(shù)”按鈕,也可以更改示波器的參數(shù)設(shè)置。圖5-30說明了設(shè)置示波器參數(shù)的方式。圖5-30XYGraph模塊是Simulink中Sinks模塊庫(kù)內(nèi)的模塊,該模塊利用MATLAB的圖形窗口繪制信號(hào)的X-Y曲線。這個(gè)模塊有兩個(gè)標(biāo)量輸入,它把第一個(gè)輸入作為X軸數(shù)據(jù),第二個(gè)輸入作為Y軸數(shù)據(jù),X軸和Y軸的坐標(biāo)范圍可以在模塊的參數(shù)對(duì)話框內(nèi)設(shè)置,超出指定范圍的數(shù)據(jù)在圖形窗口中不顯示。此外,如果模型中有多個(gè)XYGraph模塊,則Simulink在仿真的起始時(shí)刻會(huì)為每個(gè)XYGraph模塊打開一個(gè)圖形窗口。

圖5-31是一個(gè)使用Scope模塊和XYGraph模塊顯示輸出曲線的簡(jiǎn)單模型范例。圖5-31(a)(b)圖5-325.4.2懸浮Scope模塊和Display模塊的使用

懸浮Scope模塊也是一個(gè)可以顯示一個(gè)或多個(gè)信號(hào)的示波器模塊,用戶可以從Simulink的Sinks庫(kù)中把Scope模塊拷貝到模型中,并按下“懸浮示波器”按鈕設(shè)置懸浮示波器,或者直接從Sinks庫(kù)中把FloatingScope模塊拷貝到模型窗口中。

懸浮器件是不帶輸入端口的模塊,它可以在仿真過程中顯示任何一個(gè)被選擇的信號(hào),懸浮示波器通過坐標(biāo)軸系周圍的藍(lán)框來辨別。為了在仿真過程中使用懸浮示波器,應(yīng)首先打開示波器窗口,若要顯示某個(gè)輸入信號(hào)線上的信號(hào),可選擇這個(gè)線,在按下Shift鍵的同時(shí)選擇其他的信號(hào),可以同時(shí)顯示多個(gè)信號(hào)。圖5-33中的模型使用一個(gè)懸浮示波器在兩個(gè)窗口中同時(shí)顯示兩個(gè)輸入信號(hào),選擇SignalGenerator模塊產(chǎn)生并傳遞信號(hào)的線,并選擇懸浮示波器中下面的示波器窗口,這時(shí)單擊模型窗口中的“啟動(dòng)仿真”按鈕,Simulink會(huì)在用戶所選擇的示波器窗口中顯示信號(hào)波形。圖5-33用戶可以單擊懸浮示波器工具欄中的“信號(hào)選擇”按鈕來打開SignalSelector對(duì)話框,如圖5-34所示。另一種打開SignalSelector對(duì)話框的方式是,先在懸浮示波器打開的情況下運(yùn)行模型仿真,然后用鼠標(biāo)右鍵單擊懸浮示波器窗口,從彈出菜單中選擇SignalSelection命令。信號(hào)選擇對(duì)話框允許用戶選擇模型中任一位置的信號(hào),包括未打開的子系統(tǒng)內(nèi)的信號(hào)。圖5-34在一個(gè)Simulink模型中可以有多個(gè)懸浮示波器,但是在指定的時(shí)刻一個(gè)示

溫馨提示

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

評(píng)論

0/150

提交評(píng)論