Simulink仿真基礎(chǔ)
Simulink的特點(diǎn)
豐富的可擴(kuò)充的預(yù)定義模塊庫
Simulink的操作界面
在MATLAB命令窗口鍵入simulink,或者在工具欄上點(diǎn)擊,或者點(diǎn)擊左下方的按鈕“Start”→“Simulink”→“Library Browser”即可打開Simulink Library Browser,如圖A-9所示。繼續(xù)點(diǎn)擊該窗口中的“new”按鈕,即可打開一個(gè)空白的模型窗口。此時(shí)就可以再模型窗口中建立模型并進(jìn)行仿真工作,如圖A-10所示。
Simulink基本操作
1 Simulink的功能模塊庫
為了便于仿真建模,Simulink模塊庫提供了豐富的功能模塊,這些功能模塊分屬于不同功能、不同類別的子模塊庫。下面對Simulink的主要功能模塊庫進(jìn)行簡要介紹。
通用模塊庫(Commonly Used Block):該模塊庫是由其他模塊庫中的一些常用模塊組成,主要是方便用戶,利于提高建模速度。
(1) 連續(xù)系統(tǒng)模塊庫(Continuous):該模塊庫提供了連續(xù)系統(tǒng)運(yùn)算功能的多種模塊,如積分器模塊、傳遞函數(shù)模塊。
(2) 非線性系統(tǒng)模塊庫(Discontinuous):該模塊庫提供了常用的非線性模塊,如繼電器模塊、磁滯回環(huán)模塊。
(3) 離散系統(tǒng)模塊庫(Discrete):該模塊庫中提供了常用的線性離散模塊,如離散濾波器模塊、一階保持器模塊。
(4) 數(shù)學(xué)運(yùn)算模塊庫(Math operations):該模塊庫中提供了包括數(shù)學(xué)運(yùn)算、關(guān)系運(yùn)算、復(fù)數(shù)運(yùn)算等多種用于數(shù)學(xué)運(yùn)算的模塊,如加法模塊、乘法模塊、常用數(shù)學(xué)函數(shù)模塊。
(5) 信號(hào)路徑模塊庫(Signal routing):該模塊庫提供了信號(hào)在模型中流動(dòng)的各種路徑通道的選擇,包括信號(hào)的分離、匯合以及通道選擇等模塊。
(6) 輸出模塊庫(Sinks):該模塊庫提供了各種功能的輸出模塊,包括圖形顯示和數(shù)據(jù)存儲(chǔ)等,如示波器模塊、工作空間寫入模塊、數(shù)字顯示模塊。
(7) 信號(hào)源模塊庫(Sources):該模塊庫提供了仿真系統(tǒng)的輸入信號(hào)源,如時(shí)間信號(hào)模塊、讀工作空間模塊、正弦波輸入模塊。
2 Simulink模塊的基本操作
對模塊的基本操作主要對其外在狀態(tài)的操作(如移動(dòng)位置、改變大小等),也有對其能在屬性的設(shè)定(如參數(shù)設(shè)定、輸入輸出信號(hào)設(shè)定等)。
(1) 添加模塊到模型窗口
在模塊庫中選擇模塊,然后右鍵,選擇【Add to xxx】,即可添加模塊到“xxx”模型窗口,此外也可選中模塊后直接拖動(dòng)到模型窗口。
(2) 模塊間連線
將鼠標(biāo)指向連線的起點(diǎn),光標(biāo)變?yōu)槭趾?,按下鼠?biāo)左鍵并拖動(dòng)到連線終點(diǎn)即可;也可以先選定連線起點(diǎn)模塊,再按下【Ctrl】鍵保持不放,再點(diǎn)擊連線終點(diǎn)模塊。若要從一個(gè)連線起點(diǎn)連到多個(gè)連線終點(diǎn),則先按上述方法連好一根線,在將光標(biāo)移至該信號(hào)線上的某點(diǎn),再按下鼠標(biāo)右鍵保持不放,或者按住【Ctrl】鍵保持不放,拖動(dòng)鼠標(biāo)到需要連線的終點(diǎn)。模塊間的連線不能實(shí)現(xiàn)多個(gè)連線起點(diǎn)連到一個(gè)連線終點(diǎn)。
(3) 模塊的移動(dòng)
若要帶線移動(dòng),則選中模塊,按住鼠標(biāo)左鍵不放,將其拖到所需位置;若要脫離線而移動(dòng),可按住【Shift】鍵,再將其拖到所需位置。
(3) 模塊的剪切、復(fù)制和粘貼
選中模塊,再用按鍵【Ctrl + X】、【Ctrl + C】和【Ctrl + V】可分別實(shí)現(xiàn)剪切、復(fù)制和粘貼。此外按住鼠標(biāo)右鍵進(jìn)行拖動(dòng),也可復(fù)制出相同的功能模塊。
(4) 改變模塊的大小
選中模塊,對模塊的四個(gè)角出現(xiàn)的黑色標(biāo)記進(jìn)行拖動(dòng)即可改變大小。此外,用按鍵【Shift +R】和【Shift +V】可以分別放大和縮小整個(gè)模型窗口中的模塊。
(5) 模塊參數(shù)設(shè)定
用鼠標(biāo)雙擊模塊,就可以進(jìn)入模塊的參數(shù)設(shè)定窗口,從而對模塊進(jìn)行參數(shù)設(shè)定。參數(shù)設(shè)定窗口包含了該模塊的基本功能幫助,為獲得更詳盡的幫助,可以點(diǎn)擊其上的Help按鈕。通過對模塊的參數(shù)設(shè)定,就可以獲得需要的功能模塊。
(6) 模塊屬性設(shè)定
選中模塊,打開【Edit】菜單的【Block Properties】可以對模塊進(jìn)行屬性設(shè)定。包括Description屬性、Priority優(yōu)先級(jí)屬性、Tag屬性、Open function屬性、Attributes format string屬性。其中Open function屬性是一個(gè)很有用的屬性,通過它指定一個(gè)函數(shù)名,則當(dāng)該模塊被雙擊之后,Simulink就會(huì)調(diào)用該函數(shù)執(zhí)行,這種函數(shù)在MATLAB中稱為回調(diào)函數(shù)。
3 Simulink的仿真配置
選擇模型窗口工具欄中的【Simulation】菜單下的【Configuration Parameters】就會(huì)彈出配置參數(shù)界面,如圖A-11所示。在此界面中允許用戶設(shè)置仿真控制參數(shù)。
用戶可以在【Simulation time】中可以仿真開始時(shí)間和最大結(jié)束時(shí)間,在【Solver option】中可以選擇和設(shè)置解算器。解算器有兩種類型(Type):變步長類型和固定步長類型。為了保證精度,一般建議選擇變步長類型。在不同類型下對應(yīng)有不同的算法(Solver),如ode45、ode23等,用戶可以選擇不同的算法進(jìn)行仿真分析。對于不同的解算器類型都對應(yīng)有不同的參數(shù)設(shè)置,如變步長類型模式下的最大步長、最小步長、相對誤差和絕對誤差等。
Simulink系統(tǒng)建模示例
【例1】觀察單位階躍函數(shù)經(jīng)慣性環(huán)節(jié)后的仿真曲線,傳遞函數(shù)模型為
打開Simulink,新建空白模型窗口。
在信號(hào)源模塊庫(Sources)中選擇階躍輸入模塊(Step),在輸出模塊庫(Sinks)中選擇示波器模塊(Scope),在連續(xù)系統(tǒng)模塊庫(Continuous)中選擇傳遞函數(shù)模塊(Transfer Fcn),并逐個(gè)拖入模型窗口。雙擊Step模塊,設(shè)置其屬性如圖A-12。
雙擊Scope模塊,彈出如圖A-13,點(diǎn)擊左上方的屬性按鈕 Parameters,彈出對話框,設(shè)置屬性如圖A-14。
點(diǎn)擊模型窗口工具欄中的開始仿真按鈕,即可按默認(rèn)仿真參數(shù)仿真。雙擊Scope模塊查看仿真曲線,如圖A-16所示。
可以根據(jù)需要修改各模塊屬性,再次仿真運(yùn)行,觀察仿真結(jié)果與上圖仿真結(jié)果的區(qū)別。
【例2】滑翔飛行器質(zhì)心運(yùn)動(dòng)的動(dòng)力學(xué)方程和運(yùn)動(dòng)學(xué)方程可簡化為: