版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第八章SIMULINK仿真在工程實(shí)際中,控制系統(tǒng)的結(jié)構(gòu)往往很復(fù)雜,如果不借助專用的系統(tǒng)建模軟件,則很難準(zhǔn)確地把一個(gè)控制系統(tǒng)的復(fù)雜模型輸入計(jì)算機(jī),對其進(jìn)行進(jìn)一步的分析與仿真。1990年,MathWorks軟件公司為MATLAB提供了新的控制系統(tǒng)模型圖輸入與仿真工具,并命名為SIMULAB,該工具很快就在控制工程界獲得了廣泛的認(rèn)可,使得仿真軟件進(jìn)入了模型化圖形組態(tài)階段。但因其名字與當(dāng)時(shí)比較著名的軟件SIMULA類似,所以1992年正式將該軟件更名為SIMULINK。SIMULINK是MATLAB軟件的擴(kuò)展,它是實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模和仿真的一個(gè)軟件包,它與MATLAB語言的主要區(qū)別在于,其與用戶交互接口是基于Windows的模型化圖形輸入,其結(jié)果是使得用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非語言的編程上。所謂模型化圖形輸入是指SIMULINK提供了一些按功能分類的基本的系統(tǒng)模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如何實(shí)現(xiàn)的,通過對這些基本模塊的調(diào)用,再將它們連接起來就可以構(gòu)成所需要的系統(tǒng)模型(以.mdl文件進(jìn)行存?。M(jìn)而進(jìn)行仿真與分析。一、什么是SIMULINK二、SIMULINK的啟動(dòng)1、在MATLAB命令窗口中輸入simulink結(jié)果是在桌面上出現(xiàn)一個(gè)稱為SimulinkLibraryBrowser的窗口,在這個(gè)窗口中列出了按功能分類的各種模塊的名稱。2、當(dāng)然用戶也可以通過MATLAB主窗口的快捷按鈕來打開SimulinkLibraryBrowser窗口。3、在MATLAB命令窗口中輸入simulink3。結(jié)果是在桌面上出現(xiàn)一個(gè)用圖標(biāo)形式顯示的Library:simulink3的Simulink模塊庫窗口。三、SIMULINK的模塊庫介紹Continuous(連續(xù)模塊)Discontinuities(非連續(xù)模塊)
Discrete(離散模塊)Look-UpTables(查表函數(shù)模塊)MathOperations(數(shù)學(xué)模塊)ModelVerification(模型校驗(yàn)?zāi)K)Model-WideUtilitiesPorts&Subsystems(端口和系統(tǒng)模塊)SignalAttributes(信號(hào)屬性模塊)SignalRouting(信號(hào)通路模塊)Sinks(接收器模塊)Sources(輸入源模塊)User-DefinedFunctions(用戶自定義函數(shù)模塊)1、連續(xù)模塊(Continuous)Integrator:輸入信號(hào)積分Derivative:輸入信號(hào)微分State-Space:線性狀態(tài)空間系統(tǒng)模型Transfer-Fcn:線性傳遞函數(shù)模型TransportDelay:輸入信號(hào)延時(shí)一個(gè)固定時(shí)間再輸出VariableTransportDelay:輸入信號(hào)延時(shí)一個(gè)可變時(shí)間再輸出Zero-Pole:以零極點(diǎn)表示的傳遞函數(shù)模型2、Discontiuities(不連續(xù)模塊)Saturation:飽和輸出,讓輸出超過某一值時(shí)能夠飽和。Relay:滯環(huán)比較器,限制輸出值在某一范圍內(nèi)變化。Switch:開關(guān)選擇,當(dāng)?shù)诙€(gè)輸入端大于臨界值時(shí),輸出由第一個(gè)輸入端而來,否則輸出由第三個(gè)輸入端而來。ManualSwitch:手動(dòng)選擇開關(guān)3、離散模塊(Discrete)
DiscreteTransfer-Fcn:離散傳遞函數(shù)模型DiscreteZero-Pole:以零極點(diǎn)表示的離散傳遞函數(shù)模型DiscreteFilter:IIR與FIR濾波器DiscreteState-Space:離散狀態(tài)空間系統(tǒng)模型Discrete-timeIntegrator:離散時(shí)間積分器First-OrderHold:一階采樣和保持器Memory:存儲(chǔ)上一時(shí)刻的狀態(tài)值UnitDelay:一個(gè)采樣周期的延時(shí)Zero-OrderHold:零階采樣和保持器4、MathOperations(數(shù)學(xué)運(yùn)算模塊)
Abs:取絕對值DotProduct:點(diǎn)乘運(yùn)算Gain:比例運(yùn)算MathFunction:常用數(shù)學(xué)函數(shù)MinMax:最值運(yùn)算Product:乘運(yùn)算Sign:符號(hào)函數(shù)Sum:加減運(yùn)算TrigonometricFunction:三角函數(shù)MathOperations(數(shù)學(xué)運(yùn)算模塊)LogicalOperator:邏輯運(yùn)算RelationalOperator:關(guān)系運(yùn)算ComplextoMagnitude-Angle:由復(fù)數(shù)輸入轉(zhuǎn)為幅值和相角輸出Magnitude-AngletoComplex:由幅值和相角輸入合成復(fù)數(shù)輸出ComplextoReal-Imag:由復(fù)數(shù)輸入轉(zhuǎn)為實(shí)部和虛部輸出Real-ImagtoComplex:由實(shí)部和虛部輸入合成復(fù)數(shù)輸出5、Ports&Systems(端口和系統(tǒng)模塊)In1:輸入端。Mux:將多個(gè)單一輸入轉(zhuǎn)化為一個(gè)復(fù)合輸出。Demux:將一個(gè)復(fù)合輸入轉(zhuǎn)化為多個(gè)單一輸出。Ground:連接到?jīng)]有連接到的輸入端。Terminator:連接到?jīng)]有連接到的輸出端。SubSystem:建立新的封裝(Mask)功能模塊6、Sinks(接收器模塊)Display數(shù)字顯示器Out1:輸出端。Scope:示波器。ToFile(.mat):將輸出寫入數(shù)據(jù)文件。ToWorkspace:將輸出寫入MATLAB的工作空間。XYGraph:顯示二維圖形。7、Sources(輸入源模塊)Constant:常數(shù)信號(hào)。Clock:時(shí)鐘信號(hào)。FromWorkspace:來自MATLAB的工作空間。FromFile(.mat):來自數(shù)據(jù)文件。PulseGenerator:脈沖發(fā)生器。RepeatingSequence:重復(fù)信號(hào)。SignalGenerator:信號(hào)發(fā)生器。SineWave:正弦波信號(hào)。Step:階躍波信號(hào)。8、User-DefinedFunction(用戶自定義函數(shù))Fcn:用自定義的函數(shù)(表達(dá)式)進(jìn)行運(yùn)算MATLABFcn:利用matlab的現(xiàn)有函數(shù)進(jìn)行運(yùn)算S-Function:調(diào)用自編的S函數(shù)的程序進(jìn)行運(yùn)算S-FunctionBuilder:S函數(shù)編輯器四、SIMULINK簡單模型的建立及模型特點(diǎn)1、簡單模型的建立(1)建立模型窗口(2)將功能模塊由模塊庫窗口復(fù)制到模型窗口(3)對模塊進(jìn)行連接,從而構(gòu)成需要的系統(tǒng)模型2、模型的特點(diǎn)在SIMULINK里提供了許多如Scope的接收器模塊,這使得用SIMULNK進(jìn)行仿真具有像做實(shí)驗(yàn)一般的圖形化顯示效果。SIMULINK的模型具有層次性,通過底層子系統(tǒng)可以構(gòu)建上層母系統(tǒng)。SIMULINK提供了對子系統(tǒng)進(jìn)行封裝的功能,用戶可以自定義子系統(tǒng)的圖標(biāo)和設(shè)置參數(shù)對話框。五、SIMULINK功能模塊的基本操作功能模塊的基本操作:模塊的移動(dòng)復(fù)制刪除轉(zhuǎn)向改變大小模塊命名、顏色設(shè)定、參數(shù)設(shè)定、屬性設(shè)定、模塊輸入輸出信號(hào)六SIMULINK線的處理SIMULINK模型的構(gòu)建是通過用線將各種功能模塊進(jìn)行連接而構(gòu)成的。用鼠標(biāo)可以在功能模塊的輸入與輸出端之間直接連線。對于所畫線的基本操作:改變粗細(xì)設(shè)定標(biāo)簽把線折彎、分支七、SIMULINK自定義功能自定義功能模塊有兩種方法,一種方法是采用Signal&Systems模塊庫中的Subsystem功能模塊,利用其編輯區(qū)設(shè)計(jì)組合新的功能模塊;另一種方法是將現(xiàn)有的多個(gè)功能模塊組合起來,形成新的功能模塊。對于很大的SIMULINK模型,通過自定義功能模塊可以簡化圖形,減少功能模塊的個(gè)數(shù),有利于模型的分層構(gòu)建。(1)方法1將Ports&Subsystems
模塊庫中的Subsystem功能模塊復(fù)制到打開的模型窗口中。雙擊Subsystem功能模塊,進(jìn)入自定義功能模塊窗口,從而可以利用已有的基本功能模塊設(shè)計(jì)出新的功能模塊。(2)方法2在模型窗口中建立所定義功能模塊的子模塊。用鼠標(biāo)將這些需要組合的功能模塊框住,然后選擇Edit菜單下的CreateSubsystem即可。自定義功能模塊的封裝
首先選中Subsystem功能模塊,再打開Edit菜單中的MaskSubsystem進(jìn)入mask的編輯窗口,可以看出有4個(gè)標(biāo)簽頁。Icon:設(shè)定功能模塊的外觀。Parameters:設(shè)定模塊的參數(shù)。Initialization:設(shè)定輸入數(shù)據(jù)窗口(PromptList)。Documentation:設(shè)計(jì)該功能模塊的文字說明。1)Icon標(biāo)簽頁此頁最重要的部分是DrawingCommands,在該區(qū)域內(nèi)可以用disp指令設(shè)定功能模塊的文字名稱,用plot指令畫線,用dpoly指令畫轉(zhuǎn)換函數(shù)。注意,盡管這些命令在名字上和以前講的MATLAB函數(shù)相同,但它們在功能上卻不完全相同,因此不能隨便套用以前所講的格式。用戶還可以設(shè)置一些參數(shù)來控制圖標(biāo)的屬性,這些屬性在Icon頁右下端的下拉式列表中進(jìn)行選擇。2)Parameters標(biāo)簽頁typeevaluateEdit輸入的文字是程序執(zhí)行時(shí)所用的變量值Popup為選擇的序號(hào),選第一項(xiàng)輸出值為1Checkbox輸出為1或0此頁主要用來設(shè)計(jì)子系統(tǒng)模塊的參數(shù)3)Initialization標(biāo)簽頁此頁主要用來設(shè)計(jì)參數(shù)對應(yīng)的變量名稱(variable)。而variable是仿真要用到的變量,該變量的值一直存于maskworkspace中,因此可以與其他程序相互傳遞。如果配合在initializationcommands內(nèi)編輯程序,可以發(fā)揮功能模塊的功能來執(zhí)行特定的操作。4)Documentation標(biāo)簽頁此頁主要用來針對完成的功能模塊來編寫相應(yīng)的說明文字和Help。在Maskdescription中輸入的文字,會(huì)出現(xiàn)在參數(shù)窗口的說明部分。在Maskhelp中輸入的文字則會(huì)顯示在單擊參數(shù)窗口中的help按鈕后瀏覽器所加載的HTML文件中。Masktype:在此處輸入的文字作為封裝模塊的標(biāo)注性說明,在模型窗口下,將鼠標(biāo)指向模塊,則會(huì)顯示該文字。當(dāng)然必須先在View菜單中選擇BlockDataTipsOption——Blockname。八、SIMULINK仿真的運(yùn)行構(gòu)建好一個(gè)系統(tǒng)的模型之后,接下來的事情就是運(yùn)行模型,得出仿真結(jié)果。運(yùn)行一個(gè)仿真的完整過程分成三個(gè)步驟:設(shè)置仿真參數(shù)啟動(dòng)仿真仿真結(jié)果分析(1)設(shè)置仿真參數(shù)和選擇解法器選擇Simulation菜單下的Parameters命令,就會(huì)彈出一個(gè)仿真參數(shù)對話框,它主要用三個(gè)頁面來管理仿真的參數(shù)。1)Solver頁,它允許用戶設(shè)置仿真的開始和結(jié)束時(shí)間,選擇解法器,說明解法器參數(shù)及選擇一些輸出選項(xiàng)。2)WorkspaceI/O頁,作用是管理模型從MATLAB工作空間的輸入和對它的輸出。3)Diagnostics頁,允許用戶選擇Simulink在仿真中顯示的警告信息的等級(jí)。Solver頁 此頁可以進(jìn)行的設(shè)置有:選擇仿真開始和結(jié)束的時(shí)間;選擇解法器,并設(shè)定它的參數(shù);選擇輸出項(xiàng)。
仿真時(shí)間:注意這里的時(shí)間概念與真實(shí)的時(shí)間并不一樣,只是計(jì)算機(jī)仿真中對時(shí)間的一種表示,比如10秒的仿真時(shí)間,如果采樣步長定為0.1,則需要執(zhí)行100步,若把步長減小,則采樣點(diǎn)數(shù)增加,那么實(shí)際的執(zhí)行時(shí)間就會(huì)增加。一般仿真開始時(shí)間設(shè)為0,而結(jié)束時(shí)間視不同的因素而選擇。總的說來,執(zhí)行一次仿真要耗費(fèi)的時(shí)間依賴于很多因素,包括模型的復(fù)雜程度、解法器及其步長的選擇、計(jì)算機(jī)時(shí)鐘的速度等等。
仿真步長模式:用戶在Type后面的第一個(gè)下拉選項(xiàng)框中指定仿真的步長選取方式,可供選擇的有Variable-step(變步長)和Fixed-step(固定步長)方式。變步長模式可以在仿真的過程中改變步長,提供誤差控制和過零檢測。固定步長模式在仿真過程中提供固定的步長,不提供誤差控制和過零檢測。用戶還可以在第二個(gè)下拉選項(xiàng)框中選擇對應(yīng)模式下仿真所采用的算法。 變步長模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
ode45:缺省值,四/五階龍格-庫塔法,適用于大多數(shù)連續(xù)或離散系統(tǒng),但不適用于剛性(stiff)系統(tǒng)。它是單步解法器,也就是,在計(jì)算y(tn)時(shí),它僅需要最近處理時(shí)刻的結(jié)果y(tn-1)。一般來說,面對一個(gè)仿真問題最好是首先試試ode45。
ode23:二/三階龍格-庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會(huì)比ode45更有效。也是一個(gè)單步解法器。
ode113:是一種階數(shù)可變的解法器,它在誤差容許要求嚴(yán)格的情況下通常比ode45有效。ode113是一種多步解法器,也就是在計(jì)算當(dāng)前時(shí)刻輸出時(shí),它需要以前多個(gè)時(shí)刻的解。
ode15s:是一種基于數(shù)字微分公式的解法器(NDFs)。也是一種多步解法器。適用于剛性系統(tǒng),當(dāng)用戶估計(jì)要解決的問題是比較困難的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。
ode23s:它是一種單步解法器,專門應(yīng)用于剛性系統(tǒng),在弱誤差允許下的效果好于ode15s。它能解決某些ode15s所不能有效解決的stiff問題。ode23t:是梯形規(guī)則的一種自由插值實(shí)現(xiàn)。這種解法器適用于求解適度stiff的問題而用戶又需要一個(gè)無數(shù)字振蕩的解法器的情況。ode23tb:是TR-BDF2的一種實(shí)現(xiàn),TR-BDF2是具有兩個(gè)階段的隱式龍格-庫塔公式。discrtet:當(dāng)Simulink檢查到模型沒有連續(xù)狀態(tài)時(shí)使用它。 固定步長模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。
ode5:缺省值,是ode45的固定步長版本,適用于大多數(shù)連續(xù)或離散系統(tǒng),不適用于剛性系統(tǒng)。
ode4:四階龍格-庫塔法,具有一定的計(jì)算精度。
ode3:固定步長的二/三階龍格-庫塔法。
ode2:改進(jìn)的歐拉法。
ode1:歐拉法。
discrete:是一個(gè)實(shí)現(xiàn)積分的固定步長解法器,它適合于離散無連續(xù)狀態(tài)的系統(tǒng)。
步長參數(shù):對于變步長模式,用戶可以設(shè)置最大的和推薦的初始步長參數(shù),缺省情況下,步長自動(dòng)地確定,它由值auto表示。
Maximumstepsize(最大步長參數(shù)):它決定了解法器能夠使用的最大時(shí)間步長,它的缺省值為“仿真時(shí)間/50”,即整個(gè)仿真過程中至少取50個(gè)取樣點(diǎn),但這樣的取法對于仿真時(shí)間較長的系統(tǒng)則可能帶來取樣點(diǎn)過于稀疏,而使仿真結(jié)果失真。一般建議對于仿真時(shí)間不超過15s的采用默認(rèn)值即可,對于超過15s的每秒至少保證5個(gè)采樣點(diǎn),對于超過100s的,每秒至少保證3個(gè)采樣點(diǎn)。
Initialstepsize(初始步長參數(shù)):一般建議使用“auto”默認(rèn)值即可。仿真精度的定義(對于變步長模式)Relativetolerance(相對誤差):它是指誤差相對于狀態(tài)的值,是一個(gè)百分比,缺省值為1e-3,表示狀態(tài)的計(jì)算值要精確到0.1%。Absolutetolerance(絕對誤差):表示誤差值的門限,或者是說在狀態(tài)值為零的情況下,可以接受的誤差。如果它被設(shè)成了auto,那么simulink為每一個(gè)狀態(tài)設(shè)置初始絕對誤差為1e-6。Mode(固定步長模式選擇)
Multitasking:選擇這種模式時(shí),當(dāng)simulink檢測到模塊間非法的采樣速率轉(zhuǎn)換,它會(huì)給出錯(cuò)誤提示。所謂的非法采樣速率轉(zhuǎn)換指兩個(gè)工作在不同采樣速率的模塊之間的直接連接。在實(shí)時(shí)多任務(wù)系統(tǒng)中,如果任務(wù)之間存在非法采樣速率轉(zhuǎn)換,那么就有可能出現(xiàn)一個(gè)模塊的輸出在另一個(gè)模塊需要時(shí)卻無法利用的情況。通過檢查這種轉(zhuǎn)換,Multitasking將有助于用戶建立一個(gè)符合現(xiàn)實(shí)的多任務(wù)系統(tǒng)的有效模型。 使用速率轉(zhuǎn)換模塊可以減少模型中的非法速率轉(zhuǎn)換。Simulink提供了兩個(gè)這樣的模塊:unitdelay模塊和zero-orderhold模塊。對于從慢速率到快速率的非法轉(zhuǎn)換,可以在慢輸出端口和快輸入端口插入一個(gè)單位延時(shí)unitdelay模塊。而對于快速率到慢速率的轉(zhuǎn)換,則可以插入一個(gè)零階采樣保持器zero-orderhold。
Singletasking:這種模式不檢查模塊間的速率轉(zhuǎn)換,它在建立單任務(wù)系統(tǒng)模型時(shí)非常有用,在這種系統(tǒng)就不存在任務(wù)同步問題。
Auto:這種模式,simulink會(huì)根據(jù)模型中模塊的采樣速率是否一致,自動(dòng)決定切換到multitasking和singletasking。輸出選項(xiàng)
Refineoutput:這個(gè)選項(xiàng)可以理解成精細(xì)輸出,其意義是在仿真輸出太稀松時(shí),simulink會(huì)產(chǎn)生額外的精細(xì)輸出,這一點(diǎn)就像插值處理一樣。用戶可以在refinefactor設(shè)置仿真時(shí)間步間插入的輸出點(diǎn)數(shù)。
產(chǎn)生更光滑的輸出曲線,改變精細(xì)因子比減小仿真步長更有效。精細(xì)輸出只能在變步長模式中才能使用,并且在ode45效果最好。
Produceadditionaloutput:它允許用戶直接指定產(chǎn)生輸出的時(shí)間點(diǎn)。一旦選擇了該項(xiàng),則在它的右邊出現(xiàn)一個(gè)outputtimes編輯框,在這里用戶指定額外的仿真輸出點(diǎn),它既可以是一個(gè)時(shí)間向量,也可以是表達(dá)式。與精細(xì)因子相比,這個(gè)選項(xiàng)會(huì)改變仿真的步長。
Producespecifiedoutputonly:它的意思是讓simulink只在指定的時(shí)間點(diǎn)上產(chǎn)生輸出。為此解法器要調(diào)整仿真步長以使之和指定的時(shí)間點(diǎn)重合。這個(gè)選項(xiàng)在比較不同的仿真時(shí)可以確保它們在相同的時(shí)間輸出。WorkspaceI/O頁 此頁主要用來設(shè)置SIMULINK與MATLAB工作空間交換數(shù)值的有關(guān)選項(xiàng)。
Loadfromworkspace:
選中前面的復(fù)選框即可從MATLAB工作空間獲取時(shí)間和輸入變量,一般時(shí)間變量定義為t,輸入變量定義為u。Initialstate用來定義從MATLAB工作空間獲得的狀態(tài)初始值的變量名。
Savetoworkspace:
用來設(shè)置存往MATLAB工作空間的變量類型和變量名,選中變量類型前的復(fù)選框使相應(yīng)的變量有效。一般存往工作空間的變量包括輸出時(shí)間向量(Time)、狀態(tài)向量(States)和輸出變量(Output)。
Finalstate用來定義將系統(tǒng)穩(wěn)態(tài)值存往工作空間所使用的變量名。Saveoption:
用來設(shè)置存往工作空間的有關(guān)選項(xiàng)。Limitdatatolast用來設(shè)定SIMULINK仿真結(jié)果最終可存往MATLAB工作空間的變量的規(guī)模,對于向量而言即其維數(shù),對于矩陣而言即其秩;Decimation設(shè)定了一個(gè)亞采樣因子,它的缺省值為1,也就是對每一個(gè)仿真時(shí)間點(diǎn)產(chǎn)生值都保存,而若為2,則是每隔一個(gè)仿真時(shí)刻才保存一個(gè)值。Format用來說明返回?cái)?shù)據(jù)的格式,包括矩陣Array、結(jié)構(gòu)Structure及帶時(shí)間的結(jié)構(gòu)Structurewithtime。Diagnostics頁 此頁分成兩個(gè)部分:仿真選項(xiàng)和配置選項(xiàng)。配置選項(xiàng)下的列表框主要列舉了一些常見的事件類型,以及當(dāng)SIMULINK檢查到這些事件時(shí)給予的處理。仿真選項(xiàng)options主要包括是否進(jìn)行一致性檢驗(yàn)、是否禁用過零檢測。 除了上述3個(gè)主要的頁外,仿真參數(shù)設(shè)置窗口還包括real-timeworkshop頁,主要用于與C語言編輯器的交換,通過它可以直接從SIMULINK模型生成代碼并且自動(dòng)建立可以在不同環(huán)境下運(yùn)行的程序,這些環(huán)境包括實(shí)時(shí)系統(tǒng)和單機(jī)仿真。(2)啟動(dòng)仿真 設(shè)置仿真參數(shù)和選擇解法器之后,就可以啟動(dòng)仿真而運(yùn)行。選擇Simulink菜單下的start選項(xiàng)來啟動(dòng)仿真,如果模型中有些參數(shù)沒有定義,則會(huì)出現(xiàn)錯(cuò)誤信息提示框。如果一切設(shè)置無誤,則開始仿真運(yùn)行,結(jié)束時(shí)系統(tǒng)會(huì)發(fā)出一鳴叫聲。除了直接在SIMULINK環(huán)境下啟動(dòng)仿真外,還可以在MATLAB命令窗口中通過函數(shù)進(jìn)行,格式如下:
[t,x,y]=sim(‘模型文件名’,[totf],simset(‘參數(shù)1’,參數(shù)值1,‘參數(shù)2’,參數(shù)值2,…))其中to為仿真起始時(shí)間,tf為仿真終止時(shí)間。[t,x,y]為返回值,t為返回的時(shí)間向量值,x為返回的狀態(tài)值,y為返回的輸出向量值。simset定義了仿真參數(shù),包括以下一些主要參數(shù):AbsTol:默認(rèn)值為1e-6設(shè)定絕對誤差范圍。Decimation:默認(rèn)值為1,決定隔多少個(gè)點(diǎn)返回狀態(tài)和輸出值。Solver:解法器的選擇。MaxRows:默認(rèn)值為0,表示不限制。若為大于零的值,則表示限制輸出和狀態(tài)的規(guī)模,使其最大行數(shù)等于該數(shù)值。InitialState:一個(gè)向量值,用于設(shè)定初始狀態(tài)。FixedStep:用一個(gè)正數(shù)表示步階的大小,僅用于固定步長模式。MaxStep:默認(rèn)值為auto。用于變步長模式,表示最大的步階大小。如果知道模型文件名稱,可以用以下命令得到該模型的仿真參數(shù):simget(‘模型文件名’)九、SIMULINKs-function的設(shè)計(jì)Simulink為用戶提供了許多內(nèi)置的基本庫模塊,通過這些模塊進(jìn)行連接而構(gòu)成系統(tǒng)的模型。對于那些經(jīng)常使用的模塊進(jìn)行組合并封裝可以構(gòu)建出重復(fù)使用的新模塊,但它依然是基于Simulink原來提供的內(nèi)置模塊。而Simulinks-function是一種強(qiáng)大的對模塊庫進(jìn)行擴(kuò)展的新工具。(1)s-function的概念s-function是一個(gè)動(dòng)態(tài)系統(tǒng)的計(jì)算機(jī)語言描述,在MATLAB里,用戶可以選擇用m文件編寫,也可以用c或mex文件編寫,在這里只給大家介紹如何用m文件編寫s-function。S-function提供了擴(kuò)展Simulink模塊庫的有力工具,它采用一種特定的調(diào)用語法,使函數(shù)和Simulink解法器進(jìn)行交互。S-function最廣泛的用途是定制用戶自己的Simulink模塊。它的形式十分通用,能夠支持連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)。(2)建立m文件s-function1)使用模板文件:該模板文件位于MATLAB根目錄下toolbox/simulink/blocks目錄下。模板文件里s-function的結(jié)構(gòu)十分簡單,它只為不同的flag的值指定要相應(yīng)調(diào)用的m文件子函數(shù)。比如當(dāng)flag=3時(shí),即模塊處于計(jì)算輸出這個(gè)仿真階段時(shí),相應(yīng)調(diào)用的子函數(shù)為sys=mdloutputs(t,x,u)。模板文件使用switch語句來完成這種指定,當(dāng)然這種結(jié)構(gòu)并不唯一,用戶也可以使用if語句來完成同樣的功能。而且在實(shí)際運(yùn)用時(shí),可以根據(jù)實(shí)際需要來去掉某些值,因?yàn)椴⒉皇敲總€(gè)模塊都需要經(jīng)過所有的子函數(shù)調(diào)用。模板文件只是Simulink為方便用戶而提供的一種參考格式,并不是編寫s-function的語法要求,用戶完全可以改變子函數(shù)的名稱,或者直接把代碼寫在主函數(shù)里,但使用模板文件的好處是,比較方便,而且條理清晰。使用模板編寫s-function,用戶只需把s-函數(shù)名換成期望的函數(shù)名稱,如果需要額外的輸入?yún)⒘?,還需在輸入?yún)?shù)列表的后面增加這些參數(shù),因?yàn)榍懊娴?個(gè)參數(shù)是simulink調(diào)用s-function時(shí)自動(dòng)傳入的。對于輸出參數(shù),最好不做修改。接下去的工作就是根據(jù)所編s-function要完成的任務(wù),用相應(yīng)的代碼去替代模板里各個(gè)子函數(shù)的代碼即可。Simulink在每個(gè)仿真階段都會(huì)對s-function進(jìn)行調(diào)用,在調(diào)用時(shí),Simulink會(huì)根據(jù)所處的仿真階段為flag傳入不同的值,而且還會(huì)為sys這個(gè)返回參數(shù)指定不同的角色,也就是說盡管是相同的sys變量,但在不同的仿真階段其意義卻不相同,這種變化由simulink自動(dòng)完成。m文件s-function可用的子函數(shù)說明如下:mdlInitializeSizes:定義s-function模塊的基本特性,包括采樣時(shí)間、連續(xù)或者離散狀態(tài)的初始條件和sizes數(shù)組。mdlDerivatives:計(jì)算連續(xù)狀態(tài)變量的微分方程。mdlUpdate:更新離散狀態(tài)、采樣時(shí)間和主時(shí)間步的要求。mdlOutputs:計(jì)算s-function的輸出。mdlGetTimeOfNextVarHit:計(jì)算下一個(gè)采樣點(diǎn)的絕對時(shí)間,這個(gè)方法僅僅是在用戶在mdlInitializeSizes
里說明了一個(gè)可變的離散采樣時(shí)間。mdlTerminate:實(shí)現(xiàn)仿真任務(wù)必須的結(jié)束。概括說來,建立s-function可以分成兩個(gè)分離的任務(wù):初始化模塊特性包括輸入輸出信號(hào)的寬度,離散連續(xù)狀態(tài)的初始條件和采樣時(shí)間。將算法放到合適的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)管理服務(wù)咨詢服務(wù)簡單合同
- 沖孔灌注樁施工勞務(wù)分包合同
- 三方合同補(bǔ)充協(xié)議書
- 資產(chǎn)買賣合同
- 給水、污水泵設(shè)備安裝合同
- 地毯購銷合同范本地毯購銷合同
- 在線教育系統(tǒng)共建共享合同
- 產(chǎn)品銷售合同范本集錦
- 醫(yī)療器械銷售合同簡易模板
- 社區(qū)團(tuán)購平臺(tái)搭建及運(yùn)營合同
- 蘇州市區(qū)2024-2025學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 醫(yī)藥高等數(shù)學(xué)知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學(xué)
- 2024年濰坊工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完美版
- GB/T 44823-2024綠色礦山評價(jià)通則
- 人教版英語高考試卷與參考答案(2024年)
- 紅樓夢服飾文化
- 《共情的力量》課件
- 2022年中國電信維護(hù)崗位認(rèn)證動(dòng)力專業(yè)考試題庫大全-上(單選、多選題)
- 水平二(四年級(jí)第一學(xué)期)體育《小足球(18課時(shí))》大單元教學(xué)計(jì)劃
- 《關(guān)于時(shí)間管理》課件
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
評論
0/150
提交評論