版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
8.1Simulink基礎(chǔ)8.2Simulink的模塊庫(kù)8.3子系統(tǒng)及封裝技術(shù)8.4仿真運(yùn)行與分析
8.5S-函數(shù)的設(shè)計(jì)與應(yīng)用
8.1.1Simulink的啟動(dòng)
要啟動(dòng)Simulink,首先必須啟動(dòng)MATLAB。當(dāng)MATLAB啟動(dòng)之后,可以通過(guò)以下兩種途徑打開(kāi)Simulink模塊庫(kù)瀏覽器:
●單擊MATLAB工具欄上的Simulink按鈕。
●在MATLAB命令窗輸入simulink命令。
運(yùn)行結(jié)果如圖8-1所示。8.1Simulink基礎(chǔ)圖8-1Simulink模塊庫(kù)瀏覽器
Simulink模塊庫(kù)瀏覽器打開(kāi)之后,可以通過(guò)以下兩種途徑新建一個(gè)模型文件:
●單擊Simulink模塊庫(kù)瀏覽器工具欄按鈕。
●在Simulink模塊庫(kù)瀏覽器主菜單選擇File>New>Model。
打開(kāi)新建模型文件,出現(xiàn)如圖8-2所示的窗口。
新建模型文件名默認(rèn)為untitled.mdl,用戶可根據(jù)需要對(duì)文件重命名。圖8-2模型編輯窗口8.1.2Simulink工作環(huán)境
Simulink模塊庫(kù)瀏覽器的操作界面不難掌握,本小節(jié)主要介紹圖8-2所示的模型編輯窗口的菜單功能,其中包括主菜單和工具欄。
主菜單位于模型編輯窗口下方,包括File、Edit、View、Simulation、Format、Tools、Help七個(gè)功能菜單。
1.File菜單
●?New:新建模型、庫(kù)文件。
●?Open:打開(kāi)已有的模型文件。
●?Close:關(guān)閉當(dāng)前模型編輯窗口。
●?Save:保存當(dāng)前模型文件。
●?SaveAs:將當(dāng)前模型文件另存為。
●?SourceControl:設(shè)置Simulink與資源控制系統(tǒng)接口。
●?ModelProperties:模型屬性。●?Preferences:環(huán)境設(shè)置。
●?ExporttoWeb:輸出模型文件到Web。
●?Print:打印模型文件。
●?PrintDetails:打印成為HTML格式的詳細(xì)描述文件。
●?PrintSetup:打印設(shè)置。
●?EnableTiledPrinting:平鋪打印設(shè)置選項(xiàng)。
●?ExitMATLAB:退出MATLAB。
2.Edit菜單
●?Undo:撤消。
●?Redo:恢復(fù)。
●Cut、Copy、Paste、Delete、SelectAll、Find:分別實(shí)現(xiàn)模塊的剪切、復(fù)制、粘貼、刪除、全選、查找操作。
●?CopyModelToClipboard:將模型圖復(fù)制到剪切板?!?CreatSubsystem:創(chuàng)建子系統(tǒng)。
●?MaskSubsystem:封裝子系統(tǒng)。
●?LookUnderMask:查看子系統(tǒng)構(gòu)成。
●?LinkOptions:鏈接選項(xiàng)。
●?RefreshModelBlocks:刷新所有模塊的輸入/輸出口和參數(shù)。
●?UpdateDiagram:刷新顯示。
3.View菜單
View菜單的部分功能與Windows中View菜單的功能類似,這里只介紹模型編輯窗口的特殊功能菜單。
●?Back:后退。
●?Forward:前進(jìn)。
●?GoToParent:返回子系統(tǒng)上一級(jí)。
●?ModelBrowserOptions:模型瀏覽器選項(xiàng)。
●?BlockDataTipsOptions:模塊數(shù)據(jù)提示選項(xiàng)。
●?SystemRequirments:系統(tǒng)要求。
●?LibraryBrowser:打開(kāi)Simulink模塊庫(kù)瀏覽器。
●?ModelExplorer:打開(kāi)模塊資源管理器。
●?MATLABDesktop:進(jìn)入MATLAB主界面。
●?ShowPageBoundaries:顯示頁(yè)面邊界。
4.Simulation菜單
●?Start:?jiǎn)?dòng)仿真。
●?Stop:停止仿真。
●?ConfigurationParameters:仿真參數(shù)設(shè)置。
●?Normal:標(biāo)準(zhǔn)仿真模式。
●?Accelerator:加速仿真模式。
●?External:外部仿真模式。
5.Format菜單
●?Font:設(shè)置字體。
●?TextAlignment:設(shè)置文字對(duì)齊方式。
●?EnableTeXCommands:在注釋中解釋TeX命令。
●?FlipName:翻轉(zhuǎn)模塊名。
●?FlipBlock:翻轉(zhuǎn)模塊。
●?RotateBlock:旋轉(zhuǎn)模塊。
●?ShowName:顯示模塊名?!?ShowDropShadow:顯示模塊陰影。
●?ShowPortLabels:端口標(biāo)簽顯示模式。
●?ForegroundColor:設(shè)置模塊前景顏色。
●?BackgroundColor:設(shè)置模塊背景顏色。
●?ScreenColor:設(shè)置窗口屏幕顏色。
●?Port/SignalDisplay:端口/信號(hào)信息顯示設(shè)置。
●?BlockDisplay:模塊信息顯示設(shè)置。
●?LibraryLinkDisplay:庫(kù)鏈接信息顯示設(shè)置。6.Tools菜單
●?SimulinkDebugger:打開(kāi)Simulink調(diào)試器。
●?Fixed-PointSettings:打開(kāi)定點(diǎn)設(shè)置對(duì)話框。
●?ModelAdvisor:打開(kāi)模型咨詢工具。
●?ModelDependencies:使用模型文件清單。
●?LookupTableEditor:打開(kāi)查表編輯器?!?DataClassDesigner:打開(kāi)Simulink數(shù)據(jù)類型設(shè)計(jì)器。
●?BusEditor:打開(kāi)總線編輯器查看或編輯總線對(duì)象。
●?Profiler:觸發(fā)Simulink優(yōu)化工具。
●?CoverageSettings:打開(kāi)模型設(shè)置對(duì)話框。
●?Signal&ScopeManager:打開(kāi)信號(hào)與示波器管理器。
●?Real-TimeWorkshop:實(shí)時(shí)工作區(qū)間選項(xiàng)。
●?ExternalModeControlPanel:打開(kāi)外部模式控制面板。
●?ControlDesign:用于控制設(shè)計(jì)?!?ParameterEstimation:用于參數(shù)估計(jì)。
●?ReportGenerator:打開(kāi)報(bào)告產(chǎn)生器。
●?HDLCoder:HDL代碼選項(xiàng)。
●?LinkforTASKING:TASKING鏈接選項(xiàng)。
●?DataObjectWizard:打開(kāi)數(shù)據(jù)對(duì)象向?qū)А?/p>
●?SystemTest:系統(tǒng)測(cè)試。
●?MPlayVideoViewer:打開(kāi)MPlay視頻觀察器。
7.Help菜單
●?UsingSimulink:在MATLAB幫助瀏覽器中顯示Simulink用戶指導(dǎo)。
●?Blocks:在幫助瀏覽器中顯示選中模塊或所有模塊的幫助。
●?Blocksets:分類選擇查看幫助。
●?BlockSupportTable:查看Simulink各模塊支持的數(shù)據(jù)類型表。
●?Shortcuts:在幫助瀏覽器中顯示Simulink命令的快捷鍵?!?S-Functions:在幫助瀏覽器中顯示S-函數(shù)的幫助。
●?Demos:在幫助瀏覽器中顯示Demos標(biāo)簽頁(yè)的Simulink部分。
●?TermsofUse:打開(kāi)Licence.txt文件。
●?Patents:打開(kāi)patents.txt文件。
●?AboutSimulink:顯示Simulink版本信息。
工具欄位于主菜單之下,為用戶提供了快捷的功能操作。由于主菜單中都包含了工具欄的基本功能,這里就不再重復(fù)介紹了。8.1.3Simulink模塊的基本操作
有關(guān)模塊的操作都可以通過(guò)主菜單、鼠標(biāo)或右鍵菜單來(lái)完成。本小節(jié)將介紹最重要且最基本的模塊操作。
1.模塊的添加和重命名
建立系統(tǒng)框圖時(shí)首先需要添加模塊。用戶可以從模塊庫(kù)瀏覽器中選中某個(gè)模塊并選擇菜單中的AddtotheCurrentModel項(xiàng),將其添加到當(dāng)前模型編輯窗口,或者直接將模塊庫(kù)瀏覽器中的模塊拖放到模型編輯窗口的某個(gè)位置。默認(rèn)情況下,添加的模塊名為模塊庫(kù)瀏覽器中的模塊名。在模型編輯窗口單擊模塊名可以對(duì)模塊進(jìn)行重命名。
2.模塊的移動(dòng)和縮放
為調(diào)整模型編輯窗口內(nèi)模塊的位置,可以用鼠標(biāo)左鍵拖動(dòng)模塊到指定位置,也可以選中模塊后通過(guò)鍵盤(pán)的上、下、左、右鍵調(diào)整模塊的位置。
為調(diào)整模塊的大小,可以先選中模塊,然后將鼠標(biāo)移動(dòng)到該模塊的四個(gè)角中的任意一個(gè)角,這時(shí)鼠標(biāo)變成雙向斜箭頭,按下鼠標(biāo)左鍵就可以對(duì)模塊的大小進(jìn)行調(diào)整了。
3.模塊的剪切、復(fù)制和粘貼
選中一個(gè)模塊或一塊區(qū)域后,可以通過(guò)主菜單、工具欄或右鍵菜單對(duì)其進(jìn)行剪切(Cut)或復(fù)制(Copy)操作。當(dāng)剪貼板中有內(nèi)容時(shí),可以進(jìn)行粘貼(Paste)操作。
在一個(gè)模型文件內(nèi)還有更為快捷的復(fù)制和粘貼操作,即選中需要復(fù)制的部分,使用右鍵或Ctrl+左鍵拖動(dòng)該部分,在指定位置松開(kāi)右鍵或Ctrl+左鍵后,則將該部分復(fù)制并粘貼到該位置。
4.模塊的旋轉(zhuǎn)與翻轉(zhuǎn)
為了布局設(shè)計(jì)和連線方便,常常需要對(duì)模塊進(jìn)行旋轉(zhuǎn)或翻轉(zhuǎn)操作。可以先選中模塊,然后在右鍵菜單或主菜單中的Format選項(xiàng)內(nèi)選擇RotateBlock或FlipBlock,對(duì)模塊進(jìn)行旋轉(zhuǎn)或翻轉(zhuǎn)操作。
5.模塊的參數(shù)設(shè)置
當(dāng)添加一個(gè)模塊后,還需要對(duì)該模塊的相關(guān)參數(shù)進(jìn)行設(shè)置。雙擊需要設(shè)置參數(shù)的模塊,彈出一個(gè)參數(shù)設(shè)置對(duì)話框,可以將參數(shù)設(shè)置為常量,也可以設(shè)置為變量(運(yùn)行前先對(duì)變量賦值)。采樣時(shí)間(Sampletime)通常設(shè)為?-1(繼承與輸入相連的模塊的采樣時(shí)間),?如圖8-3所示。圖8-3模塊參數(shù)設(shè)置對(duì)話框
6.模塊的連接
模塊之間信號(hào)線的連接可以用鼠標(biāo)來(lái)完成。光標(biāo)在輸入端(或輸出端)變?yōu)槭中螤顣r(shí),按下鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo)至輸出端(或輸入端),松開(kāi)左鍵即可完成一條信號(hào)線的連接。
如果要在一條信號(hào)線上引出分支線并連接到其他模塊,可以在需要引出分支處按下鼠標(biāo)右鍵或Ctrl+左鍵,拖動(dòng)支線的箭頭到指定位置或其他模塊的輸入端口,然后松開(kāi)右鍵或Ctrl+左鍵即可。
7.信號(hào)線的彎折、移動(dòng)和刪除
如果需要彎折信號(hào)線,則拖動(dòng)信號(hào)線時(shí)在需要彎折處松開(kāi)鼠標(biāo),再按下鼠標(biāo)繼續(xù)拖動(dòng)即可。
如果需要移動(dòng)已有的信號(hào)線,則將鼠標(biāo)指向該信號(hào)線,按下左鍵進(jìn)行移動(dòng),然后松開(kāi)即可。
如果需要?jiǎng)h除已有的信號(hào)線,則選中該信號(hào)線,通過(guò)主菜單或右鍵菜單選擇Delete,或者在鍵盤(pán)上按下Delete鍵即可。8.1.4Simulink仿真步驟
Simulink仿真步驟通常由以下幾個(gè)部分組成。
1.創(chuàng)建系統(tǒng)模型
要仿真一個(gè)系統(tǒng),首先要新建一個(gè)模型文件并打開(kāi)Simulink模型庫(kù)瀏覽器,然后在模型編輯窗口添加系統(tǒng)模塊并以適當(dāng)?shù)姆绞綄⑦@些模塊連接起來(lái),形成系統(tǒng)模型。一個(gè)仿真模型應(yīng)該至少有一個(gè)輸入(Sources庫(kù))和一個(gè)輸出(Sinks庫(kù)),創(chuàng)建完畢后應(yīng)將模型文件保存在當(dāng)前路徑下。
2.設(shè)置模塊參數(shù)
用戶可以根據(jù)特定需要設(shè)置系統(tǒng)各模塊的參數(shù)。雙擊需要進(jìn)行參數(shù)設(shè)置的模塊,在彈出的對(duì)話框中填寫(xiě)模塊參數(shù),單擊OK按鈕即可完成設(shè)置。填入的參數(shù)可以是常數(shù),也可以是變量。如果是變量,在仿真該模型前應(yīng)先對(duì)參數(shù)變量賦值。
3.設(shè)置仿真參數(shù)
仿真前應(yīng)根據(jù)仿真需要設(shè)置仿真參數(shù)。在主菜單中選擇Simulation>ConfigurationParameters,彈出一個(gè)如圖8-4所示的仿真參數(shù)設(shè)置對(duì)話框。在對(duì)話框左側(cè)可以對(duì)Solver、DataImport/Export、Optimization、Diagnostics、HardwareImplementation、ModelReferencing、Real-TimeWorkshop、HDLCoder等選項(xiàng)進(jìn)行設(shè)置。通常情況下,仿真主要設(shè)置的是Solver選項(xiàng)。圖8-4仿真參數(shù)設(shè)置對(duì)話框
Solver選項(xiàng)的主要設(shè)置項(xiàng)如下:
●?Simulationtime:Starttime(起始時(shí)間)和Stoptime(終止時(shí)間)。
●?Solveroptions:
■?Type(是否采用變步長(zhǎng)算法)。
■?Maxstepsize(最大時(shí)間步長(zhǎng))和Minstepsize(最小時(shí)間步長(zhǎng))。
■?Solver(求解器)。
■?Relativetolerance(相對(duì)允許誤差)和Absolutetolerance(絕對(duì)允許誤差)。
■?Initialstepsize(初始步長(zhǎng))。
■?Zerocrossingcontrol(過(guò)零控制選項(xiàng))。●?Solverdiagnosticcontrols:
■?Numberofconsecutiveminstepsizeviolationsallowed(允許違反連續(xù)最小步長(zhǎng)的最大次數(shù))。
■?Consecutivezerocrossingsrelativetolerance(連續(xù)過(guò)零相對(duì)允許誤差)。
■?Numberofconsecutivezerocrossingsallowed(連續(xù)過(guò)零允許次數(shù))。
4.運(yùn)行仿真
以上操作步驟完成后就可以對(duì)模型進(jìn)行仿真了。選擇主菜單中的Simulation>Start或單擊工具欄按鈕啟動(dòng)仿真。仿真進(jìn)行時(shí),模型編輯窗口狀態(tài)欄上會(huì)顯示仿真的進(jìn)度,用戶可以等待仿真進(jìn)行到終止時(shí)間或單擊工具欄按鈕暫停仿真(暫停之后可以恢復(fù)仿真),甚至可以單擊工具欄按鈕強(qiáng)行終止仿真。
5.仿真結(jié)果分析
仿真終止后即可對(duì)仿真結(jié)果進(jìn)行觀察和分析。通常的做法是使用示波器(Scope)觀測(cè),即雙擊示波器觀察波形,再利用波形縮放工具實(shí)現(xiàn)更進(jìn)一步的觀察。另外,還可以將仿真得到的數(shù)據(jù)輸出到MATLAB工作區(qū)間,然后對(duì)這些數(shù)據(jù)進(jìn)行觀察或分析。
下面通過(guò)實(shí)例來(lái)說(shuō)明仿真的具體步驟。
【例】
二階振蕩環(huán)節(jié)的階躍響應(yīng)仿真。
(1)新建一個(gè)模型文件,保存并命名為untitled.mdl。從模塊庫(kù)瀏覽器中選擇Step(階躍輸入)、TransferFcn(振蕩環(huán)節(jié)傳遞函數(shù))、Scope(示波器)并添加到模型編輯窗口,然后連接各模塊,如圖8-5所示。圖8-5二階振蕩系統(tǒng)連接框圖
(2)設(shè)置各模塊的參數(shù)。其中,Step模塊的參數(shù)設(shè)置如圖8-6所示,TransferFcn模塊的參數(shù)設(shè)置如圖8-7所示,Scope模塊的參數(shù)設(shè)置如圖8-8所示。
(3)設(shè)置仿真參數(shù)。打開(kāi)仿真參數(shù)設(shè)置對(duì)話框,將Stoptime設(shè)置為3,Maxstepsize設(shè)置為0.01,其他參數(shù)保留默認(rèn)值。設(shè)置結(jié)果如圖8-9所示。
圖8-6Step模塊的參數(shù)設(shè)置
圖8-7TransferFcn模塊的參數(shù)設(shè)置圖8-8Scope模塊的參數(shù)設(shè)置圖8-9仿真參數(shù)設(shè)置
(4)單擊工具欄按鈕運(yùn)行仿真,階躍輸入信號(hào)(下)及振蕩環(huán)節(jié)的輸出信號(hào)(上)的波形如圖8-10所示??梢钥闯觯到y(tǒng)輸出經(jīng)過(guò)一段振蕩后輸出幅值穩(wěn)定在1/100。圖8-10示波器顯示的波形結(jié)果8.1.5Simulink求解算法
Simulink仿真是通過(guò)求解器來(lái)計(jì)算下一個(gè)時(shí)刻及其狀態(tài)的。Simulink的求解器可分為兩類:固定步長(zhǎng)求解器和變步長(zhǎng)求解器。對(duì)于固定步長(zhǎng)求解器,在仿真期間步長(zhǎng)保持為常數(shù);而對(duì)于變步長(zhǎng)求解器,步長(zhǎng)的大小取決于模型的動(dòng)力學(xué)特性。當(dāng)模型的狀態(tài)變化迅速時(shí),變步長(zhǎng)求解器將減小步長(zhǎng)以保證計(jì)算精度;當(dāng)模型的狀態(tài)變化緩慢時(shí),變步長(zhǎng)求解器將增大步長(zhǎng)以避免不必要的計(jì)算。求解器的選擇取決于模型的動(dòng)力學(xué)特性和用戶的配置計(jì)劃。如果用戶需要生成模型代碼并在實(shí)時(shí)計(jì)算機(jī)系統(tǒng)上運(yùn)行該代碼,則應(yīng)該選擇固定步長(zhǎng)求解器來(lái)仿真模型,這是因?yàn)閷?shí)時(shí)計(jì)算機(jī)系統(tǒng)以固定的信號(hào)采樣率運(yùn)行,而變步長(zhǎng)求解器可能導(dǎo)致實(shí)時(shí)計(jì)算機(jī)系統(tǒng)的仿真丟失誤差條件。如果不需要生成代碼,則求解器的選擇取決于系統(tǒng)模型的動(dòng)力學(xué)特性。
如果模型的狀態(tài)變化迅速或包含不連續(xù)性,則變步長(zhǎng)求解器可以減小模型仿真所用的時(shí)間步長(zhǎng)。這是因?yàn)閷?duì)于一個(gè)模型,變步長(zhǎng)求解器比固定步長(zhǎng)求解器需要更短的時(shí)間步長(zhǎng)以達(dá)到可接受的精度級(jí)別。
1.固定步長(zhǎng)求解器
如果仿真參數(shù)設(shè)置對(duì)話框的Solveroptions選項(xiàng)區(qū)中的Type選項(xiàng)為Fixed-step,則可以選擇Solver右側(cè)下拉列表框列出的固定步長(zhǎng)求解器。這類固定步長(zhǎng)求解器由離散求解器和連續(xù)求解器兩部分組成。固定步長(zhǎng)求解器有如下幾種:
●?discrete:無(wú)連續(xù)狀態(tài)的離散狀態(tài)模型算法;
●?ode1:歐拉法;
●?ode2:Heun法;
●?ode3:Bogacki-Shampine公式;
●?ode4:四階Runge-Kutta法;
●?ode5:Dormand-Prince公式;
●?ode14x:結(jié)合牛頓法與外推法。固定步長(zhǎng)求解器的選擇方法通常采用二進(jìn)制查找法,即如果ode1不能給出精確的計(jì)算結(jié)果,測(cè)試ode3,如果ode3滿足精度要求,測(cè)試ode2,如果ode2滿足精度要求,則選擇ode2作為求解器,否則選擇ode3作為求解器;如果ode3不能滿足精度要求,測(cè)試ode5,如果ode5能滿足精度要求,測(cè)試ode4,如果ode4滿足精度要求,則選擇ode4作為求解器,否則選擇ode5作為求解器。
2.變步長(zhǎng)求解器
如果仿真參數(shù)設(shè)置對(duì)話框的Solveroptions選項(xiàng)區(qū)中的Type選項(xiàng)為Variable-step,則可以選擇Solver右側(cè)下拉列表框列出的變步長(zhǎng)求解器。這類變步長(zhǎng)求解器由一個(gè)離散求解器和幾個(gè)連續(xù)求解器組成。變步長(zhǎng)求解器的步長(zhǎng)選擇取決于模型狀態(tài)的變化快慢程度。離散求解器或連續(xù)求解器的選取取決于模型中是否定義了狀態(tài)以及所定義的狀態(tài)類型。如果模型定義無(wú)狀態(tài)或者只定義了離散狀態(tài),則應(yīng)當(dāng)選擇離散求解器。事實(shí)上,即使這種情況下選擇的是連續(xù)求解器,Simulink仍會(huì)使用離散求解器來(lái)求解。變步長(zhǎng)求解器有如下幾種:
●?discrete:無(wú)連續(xù)狀態(tài)的離散狀態(tài)模型算法?!?ode45:基于顯式Runge-Kutta(4,5)公式和Dormand-Prince的單步算法。例如,計(jì)算y(tn),只需要知道前一個(gè)時(shí)刻處的解y(tn-1)。通常ode45是大多數(shù)問(wèn)題首選的最佳求解器,因此ode45也是Simulink連續(xù)狀態(tài)模型的默認(rèn)求解器。
●?ode23:基于顯式Runge-Kutta(2,3)與Bogacki和Shampine的單步算法。在處理粗略允許誤差和弱剛性問(wèn)題時(shí)較ode45有效。
●?ode113:變階Adams-Bashforth-MoultonPECE多步算法。在允許誤差有嚴(yán)格要求時(shí)較ode45有效。多步算法在計(jì)算當(dāng)前時(shí)刻的值時(shí)需要知道之前多個(gè)時(shí)刻的解?!?ode15s:基于數(shù)值微分公式(NDFs)的變階多步求解算法。它比反向微分公式(BDFs或Gear法)更有效。對(duì)于一個(gè)可能為剛性的問(wèn)題,或者ode45不能有效解決的問(wèn)題,可以嘗試采用ode15s進(jìn)行求解。
●?ode23s:基于改進(jìn)的二階Rosenbrock公式的單步算法。ode23s在處理粗略允許誤差問(wèn)題時(shí)較ode15s有效。它還可以求解一些ode15s不能有效解決的剛性問(wèn)題。
●?ode23t:使用“自由”內(nèi)插式實(shí)現(xiàn)的梯形算法。如果問(wèn)題為適度剛性且希望得到一個(gè)不存在數(shù)值阻尼的解,則使用該求解器?!?ode23tb:由二階反向微分公式的梯形法(TR-BDF2),即第一階段采用梯形法而第二階段采用二階反向微分公式的隱式Runge-Kutta公式實(shí)現(xiàn)的算法。從構(gòu)造上講,兩個(gè)階段的估計(jì)都使用了相同的迭代矩陣。類似ode23s,ode23tb在處理粗略允許誤差問(wèn)題時(shí)較ode15s有效。8.2.1CommonlyUsedBlocks模塊庫(kù)
CommonlyUsedblocks模塊庫(kù)中包含了仿真最常用的模塊,這些模塊在其他模塊庫(kù)中都可以找到,但是CommonlyUsedBlocks模塊庫(kù)提供了快捷的模塊選取方法。該模塊庫(kù)中的各模塊描述如表8-1所示。8.2Simulink的模塊庫(kù)表8-1CommonlyUsedBlocks模塊庫(kù)8.2.2Continuous模塊庫(kù)
Continuous模塊庫(kù)中主要包含了連續(xù)系統(tǒng)的仿真模塊。該模塊庫(kù)中的各模塊描述如表8-2所示。表8-2Continuous模塊庫(kù)8.2.3Discontinuities模塊庫(kù)
Discontinuities模塊庫(kù)中主要包含了不連續(xù)系統(tǒng)的仿真模塊。該模塊庫(kù)中的各模塊描述如表8-3所示。表8-3Discontinuities模塊庫(kù)8.2.4Discrete模塊庫(kù)
Discrete模塊庫(kù)中主要包含了不連續(xù)系統(tǒng)的仿真模塊。該模塊庫(kù)中的各模塊描述如表8-4所示。表8-4Discrete模塊庫(kù)8.2.5LogicandBitOperations模塊庫(kù)
LogicandBitOperations模塊庫(kù)中的仿真模塊主要用于實(shí)現(xiàn)邏輯運(yùn)算和位運(yùn)算。該模塊庫(kù)中的各模塊描述如表8-5所示。表8-5LogicandBitOperations模塊庫(kù)8.2.6LookupTables模塊庫(kù)
LookupTables模塊庫(kù)提供了各種用于查表運(yùn)算的模塊。該模塊庫(kù)中的各模塊描述如表8-6所示。表8-6LookupTables模塊庫(kù)8.2.7MathOperations模塊庫(kù)
MathOperations模塊庫(kù)中包含了大量的用于實(shí)現(xiàn)數(shù)學(xué)運(yùn)算的模塊。該模塊庫(kù)中的各模塊描述如表8-7所示。表8-7MathOperations模塊庫(kù)續(xù)表8.2.8ModelVerification模塊庫(kù)
ModelVerification模塊庫(kù)主要用于實(shí)現(xiàn)信號(hào)的檢測(cè)。該模塊庫(kù)中的各模塊描述如表8-8所示。表8-8ModelVerification模塊庫(kù)8.2.9Model-WideUtilities模塊庫(kù)
Model-WideUtilities模塊庫(kù)中的各模塊描述如表8-9所示。表8-9Model-WideUtilities模塊庫(kù)8.2.10Ports&Subsystems模塊庫(kù)
Ports&Subsystems模塊庫(kù)主要用于端口和子系統(tǒng)的設(shè)計(jì)。該模塊庫(kù)中的各模塊描述如表8-10所示。表8-10Ports&Subsystems模塊庫(kù)8.2.11SignalAttributes模塊庫(kù)
SignalAttributes模塊庫(kù)主要用于信號(hào)和數(shù)據(jù)類型的轉(zhuǎn)換。該模塊庫(kù)中的各模塊描述如表8-11所示。表8-11SignalAttributes模塊庫(kù)8.2.12SignalRouting模塊庫(kù)
SignalRouting模塊庫(kù)主要用于實(shí)現(xiàn)信號(hào)路徑的控制。該模塊庫(kù)中的各模塊描述如表8-12所示。表8-12SignalRouting模塊庫(kù)8.2.13Sinks模塊庫(kù)
Sinks模塊庫(kù)主要提供信號(hào)的顯示或信號(hào)的輸出連接。該模塊庫(kù)中的各模塊描述如表8-13所示。表8-13Sinks模塊庫(kù)8.2.14Sources模塊庫(kù)
Sources模塊庫(kù)提供了大量的信號(hào)發(fā)生器模塊。該模塊庫(kù)中的各模塊描述如表8-14所示。表8-14Sources模塊庫(kù)8.2.15User-DefinedFunctions模塊庫(kù)
User-DefinedFunctions模塊庫(kù)主要用于實(shí)現(xiàn)自定義函數(shù)功能,包括MATLAB函數(shù)和S-函數(shù)。該模塊庫(kù)中的各模塊描述如表8-15所示。表8-15User-DefinedFunctions模塊庫(kù)8.3.1創(chuàng)建子系統(tǒng)
當(dāng)模型的規(guī)模和復(fù)雜性增加時(shí),可以通過(guò)將模塊組成子系統(tǒng)來(lái)簡(jiǎn)化模型。使用子系統(tǒng)有如下優(yōu)點(diǎn):
●減小模型窗口內(nèi)顯示的模塊數(shù);
●可將功能關(guān)系密切的模塊集合在一起;
●實(shí)現(xiàn)層次化的模型圖,子系統(tǒng)處于某一層,組成該子系統(tǒng)的模塊處于另一層。8.3子系統(tǒng)及封裝技術(shù)創(chuàng)建一個(gè)子系統(tǒng)通常有以下兩種方法:
●在模型內(nèi)添加一個(gè)Subsystem模塊,打開(kāi)該模塊并在該子系統(tǒng)窗口內(nèi)添加模塊;
●在模型內(nèi)添加構(gòu)成子系統(tǒng)的模塊,然后由這些模塊創(chuàng)建組成子系統(tǒng)。
1.通過(guò)添加Subsystem模塊創(chuàng)建子系統(tǒng)
在添加組成子系統(tǒng)的各模塊之前,首先在模型內(nèi)添加一個(gè)子系統(tǒng),然后再在子系統(tǒng)中添加組成子系統(tǒng)的模塊。具體操作步驟如下:
(1)從Ports&Subsystems庫(kù)將Subsystem模塊復(fù)制到當(dāng)前模型內(nèi)。
(2)雙擊打開(kāi)Subsystem模塊。
(3)在子系統(tǒng)窗口內(nèi)創(chuàng)建子系統(tǒng),使用輸入端模塊和輸出端模塊分別表示子系統(tǒng)的外部輸入和外部輸出。
【例】利用Subsystem模塊創(chuàng)建子系統(tǒng)。
創(chuàng)建一個(gè)名為untitled.mdl的模型文件,添加信號(hào)源、示波器和子系統(tǒng)模塊,如圖8-11所示。圖8-11系統(tǒng)模塊連接打開(kāi)子系統(tǒng)模塊,在子系統(tǒng)中添加傳遞函數(shù)模塊,如圖8-12所示。圖8-12子系統(tǒng)模塊連接
2.通過(guò)模型中已有模塊創(chuàng)建組成子系統(tǒng)
如果模型中存在一些相關(guān)模塊,并且希望將這些模塊組成子系統(tǒng),則可以通過(guò)選中這些模塊來(lái)創(chuàng)建子系統(tǒng)。具體操作步驟如下:
(1)按下鼠標(biāo)左鍵,拖動(dòng)鼠標(biāo)形成包圍框,框中用于創(chuàng)建子系統(tǒng)的模塊以及相關(guān)連接線,松開(kāi)鼠標(biāo)完成選定。需要注意的是,不可以一個(gè)接一個(gè)地選擇模塊或者使用SelectAll命令。
(2)從右鍵菜單或Edit菜單中選擇CreateSubsystem,Simulink則使用子系統(tǒng)模塊取代所選中的這些模塊。
【例】通過(guò)模型中已有模塊創(chuàng)建子系統(tǒng)。
創(chuàng)建一個(gè)名為untitled.mdl的模型文件,添加如圖8-13所示的各模塊,并用鼠標(biāo)選中需要?jiǎng)?chuàng)建生成子系統(tǒng)的部分。
松開(kāi)鼠標(biāo)左鍵,在Edit菜單下選擇CreateSubsystem,生成的子系統(tǒng)模塊如圖8-14所示。圖8-13選中部分模塊圖8-14生成的子系統(tǒng)模塊8.3.2封裝子系統(tǒng)
子系統(tǒng)封裝是自定義的用戶界面,用于隱藏子系統(tǒng)內(nèi)容,并且使子系統(tǒng)具有類似Simulink原型模塊的外部特性,如顯示子系統(tǒng)圖標(biāo)、參數(shù)設(shè)置對(duì)話框等。Simulink的子系統(tǒng)封裝編輯器提供了以下封裝功能:
●只需要用一個(gè)參數(shù)對(duì)話框就可以實(shí)現(xiàn)對(duì)整個(gè)子系統(tǒng)的描述、參數(shù)設(shè)置以及幫助信息的顯示?!袷褂米远x圖標(biāo)取代標(biāo)準(zhǔn)子系統(tǒng)圖標(biāo)來(lái)表示子系統(tǒng)。
●隱藏子系統(tǒng)的內(nèi)部模塊構(gòu)成。
●通過(guò)在封裝子系統(tǒng)中定義模塊的行為來(lái)創(chuàng)建自定義模塊,并將封裝后的子系統(tǒng)放入一個(gè)模塊庫(kù)。
通常封裝一個(gè)子系統(tǒng)的步驟如下:
(1)選擇需要封裝的子系統(tǒng)模塊。
(2)通過(guò)模型右鍵菜單或者模型編輯器的Edit菜單選擇MaskSubsystem,出現(xiàn)如圖8-15所示的封裝編輯器窗口。圖8-15封裝編輯器窗口(3)設(shè)置封裝編輯器的各項(xiàng)標(biāo)簽頁(yè),實(shí)現(xiàn)如下功能:
●創(chuàng)建自定義子系統(tǒng)圖標(biāo);
●創(chuàng)建子系統(tǒng)參數(shù)選項(xiàng);
●初始化封裝后的子系統(tǒng)參數(shù);
●為子系統(tǒng)創(chuàng)建在線使用文檔說(shuō)明。
(4)單擊Apply(應(yīng)用)按鈕,或者單擊OK(確定)按鈕并退出封裝編輯器。
如果想取消封裝,單擊圖8-15所示封裝編輯器窗口中的Unmask按鈕即可。下面通過(guò)封裝一個(gè)離散PID控制器子系統(tǒng)的實(shí)例來(lái)說(shuō)明封裝編輯器的基本用法。
【例】封裝子系統(tǒng)。
創(chuàng)建一個(gè)模型,其中包含名為Subsystem的子系統(tǒng),如圖8-16、圖8-17所示。圖8-16系統(tǒng)模塊連接
圖8-17子系統(tǒng)模塊連接打開(kāi)封裝編輯器,將比例器、離散時(shí)間積分器、離散微分器的增益分別設(shè)為Kp、Ki、Kd,如圖8-18所示。
打開(kāi)封裝編輯器,在Icon標(biāo)簽頁(yè)的Drawingcommands文本命令區(qū)輸入命令disp('PID'),則子系統(tǒng)的圖標(biāo)變成居中顯示的文字“PID”,如圖8-19所示。圖8-18模塊參數(shù)設(shè)置圖8-19更改圖標(biāo)在Parameters標(biāo)簽頁(yè)下設(shè)置參數(shù)Kp、Ki、Kd,它們?cè)趨?shù)對(duì)話框中的名稱分別為Proportion、Integral、Derivative,如圖8-20所示。
在Initialization標(biāo)簽頁(yè)的Initializationcommands文本命令區(qū)輸入仿真運(yùn)行參數(shù)初始化代碼,如圖8-21所示。每行命令后無(wú)分號(hào),運(yùn)行時(shí)MATLAB命令窗中會(huì)顯示這些命令的運(yùn)行結(jié)果。圖8-20設(shè)置參數(shù)名稱圖8-21設(shè)置仿真運(yùn)行參數(shù)初始值在Documentation標(biāo)簽頁(yè)的Masktype、Maskdescription、Maskhelp等文本區(qū)分別輸入模塊的封裝類型信息、描述信息和幫助信息,如圖8-22所示。
運(yùn)行后的仿真結(jié)果如圖8-23所示。圖8-22設(shè)置模塊封裝類型信息、描述信息和幫助信息圖8-23系統(tǒng)仿真波形結(jié)果8.3.3自定義模塊庫(kù)
Simulink允許用戶創(chuàng)建自己的模塊庫(kù),并將封裝好的子系統(tǒng)模塊放入其中。創(chuàng)建一個(gè)模塊庫(kù)時(shí),首先要通過(guò)File菜單新建一個(gè)模塊庫(kù)文件,接下來(lái)將顯示一個(gè)標(biāo)題為L(zhǎng)ibrary:untitled的窗口。如果已經(jīng)存在名為untitled的窗口,則創(chuàng)建的文件名后按順序附加數(shù)字。模塊庫(kù)名不得與模型文件重名。
當(dāng)創(chuàng)建好一個(gè)庫(kù)文件時(shí),可以將模型或其他模塊庫(kù)中的模塊拖動(dòng)到新建的庫(kù)文件中。這個(gè)自定義模塊庫(kù)中包含了所有經(jīng)常用到的模塊或子系統(tǒng),將這個(gè)模塊庫(kù)保存后,如果需要新建一個(gè)系統(tǒng)模型,不需要打開(kāi)Simulink模塊庫(kù)瀏覽器,而只需要打開(kāi)自定義模塊庫(kù),直接從自定義的模塊庫(kù)中選擇模塊并拖到模型編輯器中就可以實(shí)現(xiàn)模型的創(chuàng)建。8.4.1仿真的運(yùn)行控制
通過(guò)使用Simulink仿真界面主菜單、工具欄可以方便地實(shí)現(xiàn)仿真的啟動(dòng)、停止和暫停,這在8.1.4小節(jié)中已經(jīng)作過(guò)簡(jiǎn)要的介紹。本小節(jié)主要介紹使用模塊實(shí)現(xiàn)仿真運(yùn)行控制的方法。8.4仿真運(yùn)行與分析
1.使用仿真停止模塊
使用StopSimulation模塊可以實(shí)現(xiàn)有條件的仿真停止。當(dāng)該模塊的輸入不為零時(shí),仿真將會(huì)終止。使用該模塊的步驟如下:
(1)從Sinks模型庫(kù)中選中StopSimulation模塊并添加到當(dāng)前模型內(nèi)。
(2)將控制信號(hào)接入該模塊的輸入端,當(dāng)信號(hào)非零時(shí),仿真停止。如果輸入為向量,只要有一個(gè)元素不為零,仿真都會(huì)停止。圖8-24使用StopSimulation模塊
2.使用仿真暫停模塊
使用Assertion模塊可以可以實(shí)現(xiàn)有條件的仿真暫停。當(dāng)該模塊的輸入為零時(shí),仿真將會(huì)暫停。使用該模塊的步驟如下:
(1)從ModelVerification模型庫(kù)中選中Assertion模塊并添加到當(dāng)前模型內(nèi)。
(2)將控制信號(hào)接入該模塊的輸入端,當(dāng)信號(hào)為零時(shí),仿真暫停。
(3)打開(kāi)Assertion模塊參數(shù)對(duì)話框,在Simulationcallbackwhenassertionfails項(xiàng)下輸入如下命令:
set_param(bdroot,‘SimulationCommand’,‘pause’),
disp(sprintf(‘\nSimulationpaused.’))圖8-25使用Assertion模塊不選中Stopsimulationwhenassertionfails選項(xiàng)。
(4)單擊OK完成設(shè)置。
例如,Assertion模塊的使用如圖8-25所示,模型設(shè)置如上。當(dāng)運(yùn)行時(shí)間等于5時(shí),仿真將會(huì)暫停,并且MATLAB命令窗會(huì)顯示如下信息:
Simulationpaused.
Warning:Assertiondetectedin‘stop/Assertion’attime5.000000.
仿真暫停之后,從模型編輯器主菜單的Simulation菜單中選擇Continue或在工具欄上按下Continue按鈕可以繼續(xù)完成仿真。圖8-25使用Assertion模塊8.4.2仿真數(shù)據(jù)的輸入和輸出
Simulink允許用戶由MATLAB工作區(qū)間輸入信號(hào)和初始狀態(tài),并且可以在仿真期間將信號(hào)和狀態(tài)數(shù)據(jù)輸出到MATLAB工作區(qū)間。本小節(jié)將通過(guò)實(shí)例介紹Simulink仿真數(shù)據(jù)和狀態(tài)的輸入和輸出方法。
1.?dāng)?shù)據(jù)輸入
以數(shù)組數(shù)據(jù)形式輸入的方法是最常用的數(shù)據(jù)輸入方法,其中的數(shù)據(jù)必須是double類型的實(shí)數(shù)矩陣。矩陣的第一列是按升序排列的時(shí)間向量,其余的列為對(duì)應(yīng)時(shí)間向量的輸入值向量。這些輸入值向量分別代表按數(shù)字順序排列的In1模塊的輸入值,而矩陣的行則代表某個(gè)時(shí)刻的輸入值。
如果n為總的輸入端數(shù)目,則矩陣的列數(shù)等于n+1。
默認(rèn)的輸入表達(dá)式為[t,u],默認(rèn)的輸入形式為數(shù)組。可以設(shè)置輸入模塊的維數(shù),使輸入數(shù)據(jù)為數(shù)組。下面通過(guò)一個(gè)具體例子來(lái)說(shuō)明。
【例】數(shù)組的輸入。
在命令窗輸入:
>>t=(0:0.01:10)‘;
>>u=[sin(t),cos(3*t),cos(5*t)];
創(chuàng)建一個(gè)模型文件,系統(tǒng)框圖如圖8-26所示。圖8-26系統(tǒng)模塊連接將In1模塊參數(shù)設(shè)置對(duì)話框中SignalSpecification標(biāo)簽頁(yè)的Portdimensions項(xiàng)設(shè)置為2,如圖8-27所示。
在參數(shù)設(shè)置對(duì)話框中選擇DataImport/Export,選中Input,具體設(shè)置如圖8-28所示。
運(yùn)行仿真,結(jié)果如圖8-29所示。
除過(guò)數(shù)組輸入之外,還有時(shí)間序列輸入、時(shí)間表達(dá)式輸入、結(jié)構(gòu)輸入等數(shù)據(jù)輸入方法。具體用法可以參考Help文件。圖8-27In1模塊參數(shù)設(shè)置圖8-28DataImport/Export參數(shù)設(shè)置圖8-29系統(tǒng)仿真波形結(jié)果
2.?dāng)?shù)據(jù)輸出
Simulink允許用戶將模型狀態(tài)和數(shù)據(jù)輸出到MATLAB工作區(qū)間。首先要在參數(shù)設(shè)置對(duì)話框的DataImport/Export頁(yè)面的Savetoworkspace選項(xiàng)區(qū)中選擇需要輸出的類型以及保存到工作區(qū)間的變量名稱,然后可在Saveoptions選項(xiàng)區(qū)指定輸出數(shù)據(jù)的保存格式和數(shù)量,數(shù)據(jù)格式可以是數(shù)組、結(jié)構(gòu)或包含時(shí)間字段的結(jié)構(gòu)。
輸出的數(shù)組數(shù)據(jù)默認(rèn)以tout表示時(shí)間、以xout表示狀態(tài)、以yout表示輸出。下面通過(guò)一個(gè)例子來(lái)說(shuō)明輸出數(shù)據(jù)的方法。
【例】輸出數(shù)組。
創(chuàng)建一個(gè)模型文件,系統(tǒng)框圖如圖8-30所示。
Out1模塊采用默認(rèn)設(shè)置,打開(kāi)其參數(shù)對(duì)話框,選擇DataImport/Export項(xiàng),不選中Input,選中Output,如圖8-31所示。
運(yùn)行仿真,結(jié)果如圖8-32所示。圖8-30系統(tǒng)模塊連接圖8-31DataImport/Export參數(shù)設(shè)置圖8-32系統(tǒng)仿真波形結(jié)果
MATLAB工作區(qū)間中會(huì)出現(xiàn)tout、yout等變量,在命令窗輸入:
>>plot(tout,yout)
運(yùn)行結(jié)果如圖8-33所示。圖8-33利用輸出數(shù)據(jù)繪圖結(jié)果
3.狀態(tài)輸入和輸出
Simulink允許用戶在仿真之前輸入系統(tǒng)的初始狀態(tài)值,并且允許用戶在仿真結(jié)束后輸出系統(tǒng)的末狀態(tài)值。利用該功能可以將穩(wěn)態(tài)解保存并且以已知狀態(tài)重新啟動(dòng)仿真。
要保存模型末狀態(tài)的值,首先在參數(shù)設(shè)置對(duì)話框中選擇DataImport/Export,在Savetoworkspace選項(xiàng)區(qū)選中Finalstates項(xiàng),并在相鄰編輯框內(nèi)輸入數(shù)據(jù)保存后的名稱,然后在Saveoptions選項(xiàng)區(qū)指定數(shù)據(jù)的保存格式。要載入模型的初始狀態(tài)值,在參數(shù)設(shè)置對(duì)話框中選擇DataImport/Export,在Loadfromworkspace選項(xiàng)區(qū)選中Initialstate項(xiàng),并指定相應(yīng)的變量名稱。例如一個(gè)變量包含了前一個(gè)仿真保留下來(lái)的狀態(tài)值,使用工作區(qū)間變量作為當(dāng)前仿真的狀態(tài)初值,將覆蓋模型中各模塊設(shè)置過(guò)的仿真初值。
如果需要完成如下功能,則可以使用結(jié)構(gòu)或包含時(shí)間字段的結(jié)構(gòu)來(lái)指定初始狀態(tài)值:
●將初始狀態(tài)值直接與狀態(tài)的完全路徑名相關(guān)聯(lián),這樣可以避免可能發(fā)生于模型狀態(tài)重新排序而初始狀態(tài)數(shù)組卻未重新排序的錯(cuò)誤。
●賦給初始狀態(tài)不同數(shù)據(jù)類型的值。
●給狀態(tài)的一個(gè)子集賦初始值。8.4.3錯(cuò)誤診斷
如果仿真期間發(fā)生了錯(cuò)誤,打開(kāi)導(dǎo)致錯(cuò)誤的子系統(tǒng),在仿真診斷閱覽器中會(huì)顯示出錯(cuò)誤信息。本小節(jié)將介紹如何使用該閱讀器檢查錯(cuò)誤,以及如何創(chuàng)建自定義錯(cuò)誤信息。
1.仿真診斷閱覽器
仿真診斷閱覽器由錯(cuò)誤摘要頁(yè)面和錯(cuò)誤信息頁(yè)面構(gòu)成,如圖8-34所示。圖8-34仿真診斷閱覽器錯(cuò)誤摘要頁(yè)面位于仿真診斷閱覽器的上半部分,其上列出了導(dǎo)致Simulink仿真終止的錯(cuò)誤。該頁(yè)面將顯示每個(gè)錯(cuò)誤的信息:
●?Message:信息類型(如模塊錯(cuò)誤、警告、日志)。
●?Source:導(dǎo)致錯(cuò)誤發(fā)生的模型元素名稱(如一個(gè)模塊)。
●?Reportedby:報(bào)告錯(cuò)誤的組件(如Simulink、Stateflow、Real-TimeWorkshop等)。
●?Summary:錯(cuò)誤信息。
通過(guò)View菜單可以選擇顯示或不顯示其中的某列信息。
錯(cuò)誤信息頁(yè)面位于仿真診斷閱覽器的下半部分,其上顯示的是對(duì)應(yīng)錯(cuò)誤摘要條目的錯(cuò)誤摘要,單擊錯(cuò)誤摘要頁(yè)面上的其他錯(cuò)誤條目可以瀏覽每個(gè)錯(cuò)誤的摘要。
如果錯(cuò)誤存在于子系統(tǒng)中,Simulink將打開(kāi)存在第一個(gè)出錯(cuò)源的子系統(tǒng)并突出顯示該錯(cuò)誤源。
點(diǎn)擊以藍(lán)色突出顯示的錯(cuò)誤信息超鏈接或者單擊Open按鈕將定位到出錯(cuò)源。
2.創(chuàng)建自定義錯(cuò)誤信息
在回調(diào)S-函數(shù)或MATLABFcn模塊中使用MATLAB的error函數(shù)可以創(chuàng)建自定義錯(cuò)誤信息,其方法有以下幾種:
●顯示文本字符串;
●包含對(duì)象的超鏈接;
●鏈接到HTML文件。如果要在出錯(cuò)時(shí)顯示文本字符串,則將字符串用引號(hào)包括起來(lái),作為error函數(shù)的輸入?yún)⒘?。下面通過(guò)一個(gè)具體的例子來(lái)說(shuō)明。
【例】出錯(cuò)時(shí)顯示字符串Signaliszero。
創(chuàng)建一個(gè)模型文件,模塊連接如圖8-35所示。
設(shè)置MATLABFcn模塊參數(shù),如圖8-36所示。圖8-35系統(tǒng)模塊連接圖8-36MATLABFcn模塊參數(shù)設(shè)置新建一個(gè)名為check_zero.m的函數(shù)文件,輸入如下代碼:
functiony=check_zero(x)
ifx==0
error(‘Signaliszero’);
else
y=x;
end
運(yùn)行仿真,彈出錯(cuò)誤信息,如圖8-37所示。圖8-37錯(cuò)誤信息8.4.4改善仿真性能和精度
仿真的性能和精度是包括模型的設(shè)計(jì)和參數(shù)的設(shè)置等許多因素共同決定的結(jié)果。改變求解器的默認(rèn)參數(shù)設(shè)置可以得到理想的結(jié)果。如果將模型的動(dòng)力學(xué)行為信息提供給求解器,那么可以得到更理想的仿真結(jié)果。
1.提高仿真速度
仿真速度緩慢可能由多種因素引起,下面給出了其中的一部分因素:
●模型中存在MATLABFcn模塊。當(dāng)模型中存在MATLABFcn模塊時(shí),每個(gè)時(shí)間步長(zhǎng)都將調(diào)用MATLAB解釋器,因而使仿真速度變慢。如果可能的話,建議盡量使用內(nèi)建函數(shù)模塊或數(shù)學(xué)函數(shù)模塊。●模型中存在M文件或S-函數(shù)。M文件、S-函數(shù)同樣在每個(gè)時(shí)間步長(zhǎng)處調(diào)用MATLAB解釋器??梢钥紤]將S-函數(shù)轉(zhuǎn)化為子系統(tǒng)或C-MEX文件S-函數(shù)。
●模型中存在存儲(chǔ)器模塊。使用存儲(chǔ)器模塊將導(dǎo)致變階求解器(ode15s和ode113)在每個(gè)時(shí)間步長(zhǎng)處復(fù)位為1階。
●最大步長(zhǎng)設(shè)置得太小。如果改變了最大步長(zhǎng),嘗試使用默認(rèn)最大步長(zhǎng)設(shè)置(auto)運(yùn)行仿真。●精度要求過(guò)高。通常默認(rèn)相對(duì)允許誤差(0.1%)已經(jīng)足夠了。對(duì)于存在狀態(tài)可變化到零的模型,如果絕對(duì)允許誤差太小,仿真則會(huì)在零狀態(tài)附近耗費(fèi)大量的步進(jìn)。
●時(shí)間標(biāo)度過(guò)長(zhǎng),可減小時(shí)間間隔。
●使用非剛性求解器求解可能為剛性的問(wèn)題,可嘗試使用ode15s。
●模型使用的各采樣時(shí)間之間不存在倍數(shù)關(guān)系?;旌喜蓸訒r(shí)間將導(dǎo)致求解器使用足夠小的步長(zhǎng)以保證采樣時(shí)間滿足模型中所有的采樣時(shí)間。
●模型中存在代數(shù)環(huán)。代數(shù)環(huán)是通過(guò)在每個(gè)時(shí)間步長(zhǎng)處迭代計(jì)算得出解,因此會(huì)嚴(yán)重地降低仿真性能。
●模型中存在隨機(jī)數(shù)模塊饋入積分模塊,對(duì)于連續(xù)系統(tǒng),建議使用Sources模塊庫(kù)中的Band-LimitedWhiteNoise模塊。
2.提高仿真精度
為選擇仿真精度,應(yīng)該以合理的時(shí)間間隔運(yùn)行仿真。將相對(duì)允許誤差減小到1e-4或者減小絕對(duì)允許誤差,再次運(yùn)行仿真,然后比較兩次仿真的結(jié)果,如果兩次的結(jié)果沒(méi)有太大的差異,則可以確認(rèn)解是收斂的。
如果仿真在啟動(dòng)時(shí)就丟失了關(guān)鍵行為,應(yīng)減小初始步長(zhǎng)以確保仿真沒(méi)有跳過(guò)關(guān)鍵行為。
如果仿真結(jié)果隨著時(shí)間變化到不穩(wěn)定狀態(tài),則
●系統(tǒng)可能是不穩(wěn)定的?!袢绻褂玫氖莖de15s求解器,可能需要限制最大階數(shù)為2或者嘗試使用ode23s求解器。
如果仿真結(jié)果不能滿足精度要求,則
●對(duì)于一個(gè)狀態(tài)值接近零的模型,如果絕對(duì)允許誤差參數(shù)太大,仿真則會(huì)在狀態(tài)值接近零的區(qū)域使用過(guò)少的步進(jìn)。因此要減小該參數(shù)值,或者在Integrator對(duì)話框中將其調(diào)整為獨(dú)立狀態(tài)?!袢绻麥p小絕對(duì)允許誤差不能完全改善精度,則應(yīng)減小相對(duì)允許誤差以減少可以接受的錯(cuò)誤并實(shí)現(xiàn)更小的步長(zhǎng)和更多的步進(jìn)。
特定建模結(jié)構(gòu)也可以產(chǎn)生不能滿足精度要求的仿真結(jié)果:
●一個(gè)Source模塊繼承自身的采樣時(shí)間可能產(chǎn)生不同的仿真結(jié)果。
●代數(shù)環(huán)中的一個(gè)Derivative模塊可能導(dǎo)致求解器失去精度。8.4.5使用命令運(yùn)行仿真
在MATLAB命令窗或M文件中輸入一個(gè)仿真命令,可以實(shí)現(xiàn)仿真模型的自動(dòng)運(yùn)行。通過(guò)隨機(jī)改變參數(shù)和循環(huán)運(yùn)行仿真還可以實(shí)現(xiàn)MonteCarlo分析。使用sim命令或set_param命令可以有計(jì)劃地進(jìn)行仿真。
1.使用sim命令
sim命令用于控制仿真的運(yùn)行,其調(diào)用格式如下:
[t,x,y]=sim(model,timespan,options,ut);
模型的參數(shù)不能通過(guò)該命令設(shè)置,而要通過(guò)參數(shù)對(duì)話框來(lái)實(shí)現(xiàn)。參數(shù)options是一個(gè)提供附加參數(shù)設(shè)置的結(jié)構(gòu),包含求解器名稱和允許誤差。使用simset命令可以定義options結(jié)構(gòu)中的參數(shù)。
2.使用set_param命令
使用set_param命令可以實(shí)現(xiàn)仿真的啟動(dòng)、停止、暫停、繼續(xù)、模塊圖更新或者將所有記錄變量寫(xiě)入基本工作區(qū)間,其調(diào)用格式如下:
?set_param(‘sys’,‘SimulationCommand’,‘cmd’)
其中,'sys'為系統(tǒng)名稱,'cmd'可以為'start'、'stop'、'pause'、'continue'、'update'、'WriteDataLogs'。
類似地,可以使用get_param命令檢測(cè)仿真狀態(tài),其調(diào)用格式如下:
?get_param(‘sys’,‘SimulationStatus’)
Simulink將返回‘stopped’、‘initializing’、‘running’、‘paused’、‘updating’、‘terminating’、‘external’等信息。
S-函數(shù)中可以使用set_param命令來(lái)控制仿真的執(zhí)行。一個(gè)CMEXS-函數(shù)可以使用mexCallMatlab宏來(lái)調(diào)用set_param命令。8.4.6觀察輸出軌跡
Simulink的輸出軌跡可以通過(guò)以下幾種方法繪制:
●將信號(hào)接到Scope模塊或XYGraph模塊的輸入端。
●將輸出寫(xiě)入返回變量并使用MATLAB繪圖命令。
●使用ToWorkspace模塊將輸出寫(xiě)入工作區(qū)間,使用繪圖命令繪制結(jié)果。
1.使用Scope模塊
使用Scope示波器模塊可以直接顯示仿真輸出的波形。Scope模塊不但可以顯示輸出軌跡,還可以放大或縮小波形圖。用戶也可以利用Scope模塊將輸出數(shù)據(jù)保存到MATLAB工作區(qū)間。
利用XYGraph模塊可以實(shí)現(xiàn)相圖軌跡的顯示。
這些模塊的應(yīng)用實(shí)例在前面已經(jīng)作過(guò)介紹,此處不再重復(fù)。
2.使用返回變量
使用返回變量可以保存輸出數(shù)據(jù),還可以使用MATLAB繪圖命令以各種形式顯示輸出軌跡。從Ports&Subsystems模塊庫(kù)中選擇Out1模塊添加到當(dāng)前模型并打開(kāi)參數(shù)設(shè)置對(duì)話框進(jìn)行設(shè)置,具體操作參見(jiàn)8.4.2小節(jié)。
3.使用ToWorkspace模塊
利用ToWorkspace模塊可以將輸出軌跡返回到MATLAB工作區(qū)間,下面通過(guò)一個(gè)實(shí)例來(lái)說(shuō)明。
【例】使用ToWorkspace模塊觀察輸出。
創(chuàng)建一個(gè)模型文件,系統(tǒng)連接框圖如圖8-38所示。圖8-38系統(tǒng)模塊連接打開(kāi)ToWorkspace模塊的參數(shù)設(shè)置對(duì)話框,按圖8-39所示設(shè)置參數(shù)。
運(yùn)行仿真,MATLAB工作區(qū)間中則會(huì)增加t和y兩個(gè)變量,在命令窗輸入:
?>>plot(t,y)
運(yùn)行結(jié)果如圖8-40所示。圖8-39ToWorkspace模塊參數(shù)設(shè)置對(duì)話框圖8-40利用輸出數(shù)據(jù)繪圖8.4.7線性化模型
Simulink提供了linmod、linmod2以及dlinmod等函數(shù),用于提取以狀態(tài)空間矩陣A、B、C、D表示的線性系統(tǒng)的模型。狀態(tài)空間矩陣描述系統(tǒng)輸入輸出關(guān)系如下:
x、u、y分別為狀態(tài)向量、輸入向量、輸出向量。
【例】
使用linmod命令獲取線性模型。
創(chuàng)建一個(gè)名為state_space.mdl的模型文件,系統(tǒng)連接框圖如圖8-41所示。圖8-41系統(tǒng)模塊連接在命令窗輸入:
>>[A,B,C,D]=linmod(‘state_space’)
運(yùn)行結(jié)果:
A=
-101
1-1-1
010
B=
0
1
0C=
100
001
D=
1
0
當(dāng)模型為非線性系統(tǒng)時(shí),需要選擇一個(gè)運(yùn)行點(diǎn)來(lái)提取線性化的模型,即在linmod函數(shù)的輸入?yún)⒘恐屑尤脒\(yùn)行點(diǎn):
?[A,B,C,D]=linmod(‘sys’,x,u)
對(duì)于離散系統(tǒng)或連續(xù)離散混合型系統(tǒng),可以使用dlinmod函數(shù)實(shí)現(xiàn)線性化。dlinmod函數(shù)的調(diào)用格式與linmod函數(shù)的調(diào)用格式類似,不同的是第二個(gè)輸入?yún)⒘勘仨毎蓸訒r(shí)間。8.4.8尋找穩(wěn)態(tài)工作點(diǎn)
利用Simulink的trim函數(shù)可以在指定輸入、輸出和狀態(tài)條件的前提下尋找動(dòng)力學(xué)系統(tǒng)的穩(wěn)態(tài)工作點(diǎn)。本小節(jié)將通過(guò)一個(gè)實(shí)例來(lái)說(shuō)明穩(wěn)態(tài)工作點(diǎn)的尋找方法。
【例】尋找穩(wěn)態(tài)工作點(diǎn)。
創(chuàng)建一個(gè)名為steady_state.mdl的模型文件,系統(tǒng)連接框圖如圖8-42所示。圖8-42系統(tǒng)模塊連接使用trim函數(shù)尋找使輸出均為1的輸入和狀態(tài)。首先對(duì)狀態(tài)變量x和輸入量u進(jìn)行猜測(cè),然后設(shè)置輸出量y的值:
>>x=[0;0;0];
>>u=0;
>>y=[1;1];
使用索引變量表示哪些變量(iy)需要固定,哪些變量(ix、iu)不需要固定:
ix=[];
iu=[];
iy=[1;2];調(diào)用trim函數(shù)求解,在命令窗輸入:
>>[x,u,y,dx]=trim(‘steady_state’,x,u,y,ix,iu,iy)
運(yùn)行結(jié)果:
x=
0.0000
1.0000
1.0000
u=
2.0000
y=
1.0000
1.0000
dx=
1.0e-015*
0.3331
0.1586
-0.3331
需要注意的是,有些問(wèn)題可能不存在穩(wěn)態(tài)工作點(diǎn),如果出現(xiàn)這種情況,trim函數(shù)將在初次設(shè)置導(dǎo)數(shù)為零之后,從需要的解中返回最小的最大偏差解。8.5.1S-函數(shù)的概念
S-函數(shù)是Simulink模塊的計(jì)算機(jī)描述語(yǔ)言。S-函數(shù)可以通過(guò)MATLAB、C、C++、Ada或Fortran語(yǔ)言來(lái)編寫(xiě)。C、C++、Ada以及Fortran語(yǔ)言編寫(xiě)的S-函數(shù)將通過(guò)mex應(yīng)用程序編譯成為MEX文件,就像其他MEX文件一樣,在需要時(shí)會(huì)動(dòng)態(tài)鏈接到MATLAB。
S-函數(shù)使用一種特定的調(diào)用格式與Simulink方程求解器相互作用。這種交互作用與求解器和內(nèi)建Simulink模塊之間的交互作用非常類似。S-函數(shù)的形式非常通用,而且S-函數(shù)適用于連續(xù)、離散以及混合系統(tǒng)。8.5S-函數(shù)的設(shè)計(jì)與應(yīng)用使用S-函數(shù)可以將用戶自定義模塊加入到Simulink模型之中。用戶可以通過(guò)MATLAB、C、C++、Fortran或Ada語(yǔ)言來(lái)創(chuàng)建自定義模塊。只要遵循一系列的規(guī)則,就可以通過(guò)S-函數(shù)實(shí)現(xiàn)自定義的算法。編寫(xiě)完一個(gè)S-函數(shù)并將它的名稱放入S-函數(shù)模塊(User-DefinedFunctions模塊庫(kù)中)之后,可以通過(guò)封裝模塊實(shí)現(xiàn)自定義用戶界面。
Real-TimeWorkshop可與S-函數(shù)結(jié)合使用。此外還可以通過(guò)編寫(xiě)一個(gè)TargetLanguageCompiler(TLC)文件自定義由Real-TimeWorkshop生成的S-函數(shù)代碼。8.5.2S-函數(shù)的使用
要想添加一個(gè)S-函數(shù)模塊,首先要從User-DefinedFunctions模塊庫(kù)中選取S-Function模塊并將其拖動(dòng)到當(dāng)前模型窗口內(nèi),然后再在S-Function模塊對(duì)話框的S-functionname字段指定S-函數(shù)文件名,如圖8-43所示。圖8-43S-Function模塊及其參數(shù)設(shè)置對(duì)話框
S-Function模塊對(duì)話框的S-functionparameters字段用于指定傳遞到相應(yīng)的S-函數(shù)的參數(shù)值。要填寫(xiě)這個(gè)字段,首先要知道S-函數(shù)中所需的參數(shù)以及這些參數(shù)在S-函數(shù)中的排列順序,然后再按照這個(gè)順序填寫(xiě)這些參數(shù),并用逗號(hào)隔開(kāi)。參數(shù)可以是常數(shù)、MATLAB工作區(qū)間變量或者M(jìn)ATLAB表達(dá)式。
S-函數(shù)一般用于創(chuàng)建自定義Simulink模塊。S-函數(shù)還有以下多種應(yīng)用場(chǎng)合:
●為Simulink添加一個(gè)新的通用模塊。●添加代表硬件設(shè)備驅(qū)動(dòng)的模塊。
●將已有的C代碼并入仿真當(dāng)中。
●以一系列數(shù)學(xué)方程來(lái)描述系統(tǒng)。
●使用圖形動(dòng)畫(huà)。
S-函數(shù)的優(yōu)點(diǎn)是可以幫助用戶創(chuàng)建一個(gè)通用模塊,以便在模型中多次使用,甚至不斷地改變模塊的參數(shù)值。8.5.3S-函數(shù)的工作方式
創(chuàng)建一個(gè)S-函數(shù),首先需要理解S-函數(shù)的工作方式。而理解S-函數(shù)的工作方式,就需要理解Simulink如何仿真一個(gè)模型,以及理解模塊之間的數(shù)學(xué)關(guān)系。
1.模塊之間的數(shù)學(xué)關(guān)系
一個(gè)Simulink模塊由一系列的輸入、狀態(tài)和輸出組成,如圖8-44所示,輸出是采樣時(shí)間、輸入和模塊狀態(tài)的函數(shù)。圖8-44Simulink模塊數(shù)學(xué)關(guān)系模塊輸入、狀態(tài)和輸出之間的數(shù)學(xué)關(guān)系如下:
2.仿真進(jìn)程
仿真的執(zhí)行是按照階段進(jìn)行的。首先是初始化階段,Simulink將模塊庫(kù)并入模型,傳遞寬度、數(shù)據(jù)類型以及采樣時(shí)間,估計(jì)模塊參數(shù),確定模塊的執(zhí)行順序,以及分配存儲(chǔ)空間。接下來(lái),Simulink進(jìn)入一個(gè)仿真循環(huán),每次循環(huán)為一個(gè)仿真步。每個(gè)仿真步期間,Simulink按照初始化時(shí)確定的順序執(zhí)行模型的每個(gè)模塊。對(duì)于每個(gè)模塊,Simulink調(diào)用計(jì)算模塊當(dāng)前采樣時(shí)刻的狀態(tài)、導(dǎo)數(shù)以及輸出的函數(shù),直到仿真結(jié)束。
Simulink的仿真流程如圖8-45所示。圖8-45Simulink仿真流程
3.S-函數(shù)回調(diào)方法
一個(gè)S-函數(shù)由一系列在每個(gè)仿真階段執(zhí)行任務(wù)需求的S-函數(shù)回調(diào)方法組成。仿真一個(gè)模型時(shí),在每一個(gè)仿真階段,Simulink調(diào)用適當(dāng)?shù)姆椒ㄌ幚砟P椭械拿恳粋€(gè)S-函數(shù)模塊。S-函數(shù)方法的執(zhí)行任務(wù)包括:
●初始化:第一次仿真循環(huán)前執(zhí)行,初始化S-函數(shù),該階段Simulink將執(zhí)行以下操作:
■初始化SimStract(一個(gè)包含S-函數(shù)信息的仿真結(jié)構(gòu))?!鲈O(shè)置輸入端和輸出端的數(shù)目和維數(shù)。
■設(shè)置模塊采樣時(shí)間。
■分配存儲(chǔ)空間和sizes數(shù)組。
●計(jì)算下一個(gè)時(shí)間點(diǎn):如果創(chuàng)建了一個(gè)可變采樣時(shí)間模塊,該階段將計(jì)算下一個(gè)采樣點(diǎn)的時(shí)間,即計(jì)算下一個(gè)步長(zhǎng)。
●計(jì)算主要時(shí)間步的輸出:該調(diào)用完成后,所有模塊輸出端在當(dāng)前時(shí)間步有效。
●更新主要時(shí)間步的離散狀態(tài):該調(diào)用中所有模塊應(yīng)當(dāng)在每一個(gè)時(shí)間步執(zhí)行一次,如在仿真循環(huán)內(nèi)更新下一個(gè)時(shí)刻的離散狀態(tài)。●積分:用于包含連續(xù)狀態(tài)以及非采樣過(guò)零的模型。如果S-函數(shù)中包含連續(xù)狀態(tài),Simulink將以次要時(shí)間步調(diào)用S-函數(shù)的輸出和導(dǎo)數(shù)部分。這就是Simulink能夠計(jì)算S-函數(shù)狀態(tài)的原因。如果S-函數(shù)(只有CMEX)包含非采樣過(guò)零,Simulink將以次要時(shí)間步調(diào)用S-函數(shù)的輸出和過(guò)零部分,以實(shí)現(xiàn)過(guò)零定位。8.5.4編寫(xiě)S-函數(shù)
S-函數(shù)可以通過(guò)多種格式的文件來(lái)實(shí)現(xiàn),如M文件和MEX文件。本小節(jié)將介紹如何使用MATLAB語(yǔ)言編寫(xiě)M文件S-函數(shù)。
1.Level-1M文件S-函數(shù)
一個(gè)Level-1M文件S-函數(shù)由如下形式的MATLAB函數(shù)組成:
[sys,x0,str,ts]=f(t,x,u,flag,p1,p2,…)
其中,f為S-函數(shù)名,t為當(dāng)前時(shí)間,x為相應(yīng)S-函數(shù)模塊的狀態(tài)向量,u為模塊的輸入,flag表示將要執(zhí)行的任務(wù),p1,p2,…為模塊的參數(shù)。在模型的仿真期間,Simulink將重復(fù)調(diào)用f,使用flag來(lái)表示特定調(diào)用中將要執(zhí)行的任務(wù)。每當(dāng)S-函數(shù)執(zhí)行任務(wù)時(shí),將返回一個(gè)結(jié)構(gòu)。
在MATLAB根目錄下的toolbox\simulink\blocks文件夾中有一個(gè)M文件S函數(shù)模板文件sfuntmpl.m。該模板由一個(gè)最高級(jí)主函數(shù)和一系列稱作S-函數(shù)回調(diào)方法的框架函數(shù)構(gòu)成,每個(gè)子函數(shù)對(duì)應(yīng)一個(gè)flag值。在仿真期間最高級(jí)主函數(shù)調(diào)用由flag指示的子函數(shù),由子函數(shù)執(zhí)行S-函數(shù)的實(shí)際任務(wù)。模板文件sfuntmpl.m的內(nèi)容如下(為簡(jiǎn)潔起見(jiàn),刪除了注釋和空行):function[sys,x0,str,ts]=sfuntmpl(t,x,u,flag)
switchflag,
case0,
[sys,x0,str,ts]=mdlInitializeSizes;
case1,
sys=mdlDerivatives(t,x,u);
case2,
sys=mdlUpdate(t,x,u);
case3,
sys=mdlOutputs(t,x,u);
case4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
case9,
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandledflag=',num2str(flag)]);
end
function[sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;sizes.NumContStates ?=0;
sizes.NumDiscStates ?=0;
sizes.NumOutputs ?=0;
sizes.NumInputs ?=0;
sizes.DirFeedthrough ?=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[00];functionsys=mdlDerivatives(t,x,u)
sys=[];
functionsys=mdlUpdate(t,x,u)
sys=[];
functionsys=mdlOutputs(t,x,u)
sys=[];
functionsys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime=1;
sys=t+sampleTime;
functionsys=mdlTerminate(t,x,u)
sys=[];
表8-16列出了flag的可能取值及其對(duì)應(yīng)于模板中的方法。表8-16flag的取值及對(duì)應(yīng)方法
S-函數(shù)的輸出向量為sys、x0、str和ts,它們的含義如下:
●?sys:通用返回變量,返回值取決于flag的值。
●?x0:初始狀態(tài)值,除flag=0外x0將被忽略。
●?str:保存值,以便將來(lái)應(yīng)用。M文件S-函數(shù)必須令其為空矩陣[]。
●?ts:包含模塊采樣時(shí)間和偏移的二列矩陣。如果希望S-函數(shù)每個(gè)時(shí)間步運(yùn)行一次,設(shè)為[00];如果希望S-函數(shù)繼承其他模塊的采樣時(shí)間,設(shè)為[-10];如果希望S-函數(shù)每0.2秒運(yùn)行一次并且在仿真啟動(dòng)后0.1秒開(kāi)始運(yùn)行,設(shè)為[0.20.1];如果希望S-函數(shù)以[00.10.250.50.7511.1…]時(shí)間序列運(yùn)行,設(shè)為[.250;1.0.1]。要讓Simulink認(rèn)出一個(gè)M文件S-函數(shù),必須提供S-函數(shù)的指定信息,包括輸入數(shù)、輸出數(shù)、狀態(tài)數(shù)以及模塊的其他特性。
如果要給Simulink提供這些信息,則需在mdlInitializeSizes的開(kāi)頭調(diào)用simsizes函數(shù):
sizes=simsizes;
該函數(shù)返回一個(gè)未初始化的sizes結(jié)構(gòu),其各字段描述如表8-17所示。表8-17sizes結(jié)構(gòu)各字段描述首先對(duì)結(jié)構(gòu)的每個(gè)字段進(jìn)行初始化,然后再調(diào)用simsizes函數(shù):
?sys=simsizes(sizes);
該命令將sizes結(jié)構(gòu)的信息傳遞給向量sys。
將Level-1S-函數(shù)各flag代碼映射到Leve
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年天門(mén)職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年天津城市建設(shè)管理職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年度綠色能源設(shè)備產(chǎn)品配方保密協(xié)議書(shū)4篇
- 2025年哈爾濱城市職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 二零二五年度消防設(shè)施維修與更換服務(wù)合同4篇
- 2025至2031年中國(guó)真空液晶灌注機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年茶園承包協(xié)議書(shū)茶莊經(jīng)營(yíng)權(quán)租賃合同范本3篇
- 2025年全球及中國(guó)汽車(chē)三元氧化還原催化轉(zhuǎn)換器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球冷杉香脂精油行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年醇基燃料市場(chǎng)調(diào)研與分析合同4篇
- 課題申報(bào)書(shū):GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計(jì)研究
- 駱駝祥子-(一)-劇本
- 全國(guó)醫(yī)院數(shù)量統(tǒng)計(jì)
- 《中國(guó)香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺(tái)人群趨勢(shì)洞察報(bào)告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國(guó)幽門(mén)螺桿菌感染處理共識(shí)報(bào)告-
- 天津市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟(jì)學(xué)的思維方式(第13版)
- 盤(pán)錦市重點(diǎn)中學(xué)2024年中考英語(yǔ)全真模擬試卷含答案
- 手衛(wèi)生依從性調(diào)查表
- 湖北教育出版社四年級(jí)下冊(cè)信息技術(shù)教案
評(píng)論
0/150
提交評(píng)論