




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Matlab計算與仿真技術Simulink仿真技術及其應用機電工程系暢元江在計算機技術飛速發展的今天,許多科學研究、工程設計由于其復雜性越來越高,因此與計算機的接合日趨緊密。也正是計算機技術的介入,改變了許多學科的結構、研究內容和研究方向。例如,計算流體力學、計算物理學、計算聲學等新興學科的興起,均與計算機技術的發展分不開。控制理論、仿真技術本身與計算機的接合就十分緊密,而隨著專業領域的研究深入和計算機軟硬件技術的發展,這種聯系呈現更加緊密。計算控制論的建立,足以說明這個問題。而這種發展,又以系統仿真技術的發展分不開的。為了滿足用戶對工程計算的要求,一些軟件公司相繼推出一批數學類科技應用軟件,如Matlab、Xmath、Mathematica、Maple等。其中MathWorks公司推出的Matlab由于有強大的功能和友好的用戶界面受到越來越多的科技工作者的青睞,尤其是控制領域的專家和學者.Matlab具有友好的工作平臺和編程環境、簡單易學的編程語言、強大的科學計算和數據處理能力、出色的圖形和圖像處理功能、能適應多領域應用的工具葙、適應多種語言的程序接口、模塊化的設計和系統級的仿真功能等,諸多的優點和特點。支持Matlab仿真是Simulink工具箱,Simulink一般可以附在Matlab上同時安裝,也有獨立版本來單獨使用。但大多數用戶都是附在Matlab上,以便能更好地發揮Matlab在科學計算上的優勢,進一步擴展Simulink的使用領域和功能。介紹Simulink的建模方法、使用操作、以及使用Simulink進行系統仿真和設計的原理。通過本章學習,不但可以進一步掌握計算機仿真的基本概念和理論,也可以初步學會使用Simulink去真正地運用仿真技術解決科研和工程中的實際問題。近幾年來,在學術界和工業領域,Simulink已經成為動態系統建模和仿真領域中應用最為廣泛的軟件之一。Simulink可以很方便地創建和維護一個完整地模塊,評估不同的算法和結構,并驗證系統的性能。由于Simulink采用模塊組合方式建模,從而可以使得用戶能夠快速、準確地創建動態系統的計算機仿真模型,特別是對復雜的不確定非線性系統,更為方便。Simulink模型可以用來模擬線性和非線性、連續和離散或者兩者的混合系統,也就是說它可以用來模擬幾乎所有可能遇到動態系統。另外Simulink還提供一套圖形動畫的處理方法,用戶可以方便的觀察到仿真的整個過程。Simulink沒有單獨的語言,但是它提供了S函數規則。所謂的S函數可以是一個M函數文件、FORTRAN程序、C或C++語言程序等,通過特殊的語法規則使之能夠被Simulink模型或模塊調用。S函數使Simulink更加充實、完備,具有更強的處理能力。同Matlab一樣,Simulink也不是封閉的,它允許用戶可以很方便的定制自己的模塊和模塊庫。同時Simulink也同樣有比較完整的幫助系統,使用戶可以隨時找到對應模塊的說明,便于應用。綜上所述,Simulink就是一種開放性的,用來模擬線性或非線性的以及連續或離散的或者兩者混合的動態系統的強有力的系統級仿真工具。目前,隨著軟件的升級換代,在軟硬件的接口方面有了長足的進步,使用Simulink可以很方便地進行實時的信號控制和處理、信息通信以及DSP(DigitalSignalProcessor)的處理。世界上許多知名的大公司已經使用Simulink作為他們產品設計和開發的強有力工具。Simulink仿真初步
Simulink
概述Simulation+Link
-Simulink是一種仿真工具和環境寄生在Matlab環境(共享工作空間)
完成對系統的建模,仿真和分析
采用基于時間模塊化框圖
(Time-based
BlockDiagram)
支持拖放(drag&place)的交互設計
有內嵌建模模塊庫(blocklibrary)Simulink仿真初步
Simulink
建模與仿真
-系統模型(model)概念
模型:
系統行為的定量描述傳遞:輸入信號到輸出信號
分類:
靜態模型代數方程(關系)
動態模型微分方程(組)
要素:
輸入/輸出/狀態靜態數學模型:反映系統處于平衡點(穩態)時,系統狀態有關屬性變量之間關系的數學模型。即只考慮同一時刻實際系統各物理量之間的數學關系,不管各變量隨時間的演化,輸出信號與過去的工作狀態(歷史)無關。因此靜態模型都是代數式,數學表達式中不含有時間變量。動態數學模型:描述動態系統瞬態與過渡態特性的模型。也可定義為描述實際系統各物理量隨時間演化的數學表達式。動態系統的輸出信號不僅取決于同時刻的激勵信號,而且與它過去的工作狀態有關。微分方程或差分方程常用作動態數學模型。對于給定的動態系統,數學模型不是唯一的。工程上常用的數學模型包括:微分方程,傳遞函數和狀態方程。對于線性系統,它們之間是等價的。針對具體問題,選擇不同的數學模型。Simulink仿真初步
-模型框圖表示(信號是關于時間的函數)
state
xinputuoutputy信源系統信宿SIMULINK是MATLAB軟件的擴展,它是實現動態系統建模和仿真的一個軟件包,它與MATLAB語言的主要區別在于,其與用戶交互接口是基于Windows的模型化圖形輸入,其結果是使得用戶可以把更多的精力投入到系統模型的構建,而非語言的編程上。什么是SIMULINK?所謂模型化圖形輸入是指SIMULINK提供了一些按功能分類的基本的系統模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內部是如何實現的,通過對這些基本模塊的調用,再將它們連接起來就可以構成所需要的系統模型(以.mdl文件進行存取),進而進行仿真與分析。SIMULINK的最新版本是SIMULINK6.0(包含在MATLAB7.0.1里),MATLAB5.3里的版本為3.0版,它們的變化不大。Simulink工作平臺啟動啟動Simulink,通常有兩種方法:(1)在MATLAB命令窗口中直接輸入Simulink命令;(2)在MATLAB工具欄上單擊Simulink按鈕,如下圖所示。
這樣就可打開了Simulink的SimulinkLibraryBrower(庫模塊瀏覽器),如下圖所示。在菜單欄中執行File/New/Model命令,就建立了一個名為untitled的模型窗口,如下圖所示。在建立了空的模塊窗口后,用戶可以在此窗口中創建自己需要的Simulink模型。庫模塊瀏覽器
新建的空白模塊窗口
Simulink仿真初步
-Simulink
建模模式模塊框圖描述方式
模塊單元:內部狀態的描述輸入/輸出信號引角模塊的幾何屬性
模塊連接:一個模塊輸出作為另一模塊輸入模塊框圖:由若干模塊通過信號線連接形成框圖模型:定義了系統信號、狀態的關聯框圖運算:指定起始時間到終止時間Simulink仿真初步
-
Simulink
建模模塊
內嵌模塊庫(build-inblocklibrary)
模塊庫提供模型設計的模板采用圖標表示模塊的定義
幾何屬性(外觀修飾)定義
模型結構定義模型參數定義Simulink仿真初步
-模塊的幾何屬性大小/姿態/顏色/陰影/標注…
SIMULINK功能模塊的處理模塊庫中的模塊可以直接用鼠標進行拖曳(選中模塊,按住鼠標左鍵不放)而放到模型窗口中進行處理。在模型窗口中,選中模塊,則其4個角會出現黑色標記。此時可以對模塊進行以下的基本操作。功能模塊的基本操作,包括模塊的移動、復制、刪除、轉向、改變大小、模塊命名、顏色設定、參數設定、屬性設定、模塊輸入輸出信號等。1)移動:選中模塊,按住鼠標左鍵將其拖曳到所需的位置即可。若要脫離線而移動,可按住shift鍵,再進行拖曳。2)復制:選中模塊,然后按住鼠標右鍵進行拖曳即可復制同樣的一個功能模塊。3)刪除:選中模塊,按Delete鍵即可。若要刪除多個模塊,可以同時按住Shift鍵,再用鼠標選中多個模塊,按Delete鍵即可。也可以用鼠標選取某區域,再按Delete鍵就可以把該區域中的所有模塊和線等全部刪除。4)轉向:為了能夠順序連接功能模塊的輸入和輸出端,功能模塊有時需要轉向。在菜單Format中選擇FlipBlock旋轉180度,選擇RotateBlock順時針旋轉90度。或者直接按Ctrl+F鍵執行FlipBlock,按Ctrl+R鍵執行RotateBlock。5)改變大小:選中模塊,對模塊出現的4個黑色標記進行拖曳即可。6)模塊命名:先用鼠標在需要更改的名稱上單擊一下,然后直接更改即可。名稱在功能模塊上的位置也可以變換180度,可以用Format菜單中的FlipName來實現,也可以直接通過鼠標進行拖曳。HideName可以隱藏模塊名稱。7)顏色設定:Format菜單中的ForegroundColor可以改變模塊的前景顏色,BackgroundColor可以改變模塊的背景顏色;而模型窗口的顏色可以通過ScreenColor來改變。8)參數設定:用鼠標雙擊模塊,就可以進入模塊的參數設定窗口,從而對模塊進行參數設定。參數設定窗口包含了該模塊的基本功能幫助,為獲得更詳盡的幫助,可以點擊其上的help按鈕。通過對模塊的參數設定,就可以獲得需要的功能模塊。9)屬性設定:選中模塊,打開Edit菜單的BlockProperties可以對模塊進行屬性設定。包括Description屬性、Priority優先級屬性、Tag屬性、Openfunction屬性、Attributesformatstring屬性。其中Openfunction屬性是一個很有用的屬性,通過它指定一個函數名,則當該模塊被雙擊之后,Simulink就會調用該函數執行,這種函數在MATLAB中稱為回調函數。10)模塊的輸入輸出信號:模塊處理的信號包括標量信號和向量信號;標量信號是一種單一信號,而向量信號為一種復合信號,是多個信號的集合,它對應著系統中幾條連線的合成。缺省情況下,大多數模塊的輸出都為標量信號,對于輸入信號,模塊都具有一種“智能”的識別功能,能自動進行匹配。某些模塊通過對參數的設定,可以使模塊輸出向量信號。Simulink仿真初步
-模塊的結構定義
設定端口數據類型設增益值-模塊的參數定義Simulink仿真初步
-Simulink
交互式圖形界面
模塊庫+模塊框圖編輯白板
模塊框圖建模的交互模式
添加模塊操作在模塊庫中選取模塊拖入模塊框圖編輯器添加信號連接線選取信源端口引出信號連線直至信宿端口Simulink仿真初步
-Simulink
交互式圖形界面(續)
編輯模塊框圖
復制/刪除/粘貼模塊/信號線/標簽/折彎/分支設置/修改模塊-信號線結構屬性設置/修改模塊的模型參數
模塊框圖文件
Fileopen/new/save/saveas/…
確省后綴名:*.mdl
啟動交互式界面
激活Matlab
工具攔圖標SIMULINK線的處理改變粗細:線所以有粗細是因為線引出的信號可以是標量信號或向量信號,當選中Format菜單下的Widenonscalar
lines時,線的粗細會根據線所引出的信號是標量還是向量而改變,如果信號為標量則為細線,若為向量則為粗線。選中Widenonscalar
lines則可以顯示出向量引出線的寬度,即向量信號由多少個單一信號合成。SIMULINK模型的構建是通過用線將各種功能模塊進行連接而構成的。用鼠標可以在功能模塊的輸入與輸出端之間直接連線。所畫的線可以改變粗細、設定標簽,也可以把線折彎、分支。設定標簽:只要在線上雙擊鼠標,即可輸入該線的說明標簽。也可以通過選中線,然后打開Edit菜單下的SignalProperties進行設定,其中signalname屬性的作用是標明信號的名稱,設置這個名稱反映在模型上的直接效果就是與該信號有關的端口相連的所有直線附近都會出現寫有信號名稱的標簽。線的折彎:按住Shift鍵,再用鼠標在要折彎的線處單擊一下,就會出現圓圈,表示折點,利用折點就可以改變線的形狀。線的分支:按住鼠標右鍵,在需要分支的地方拉出即可以。或者按住Ctrl鍵,并在要建立分支的地方用鼠標拉出即可。Simulink仿真初步模塊庫瀏覽器Simulink仿真初步
模塊框圖編輯器Simulink仿真初步
-Simulink模塊化框圖建模實例
靜態模型建模
任務:正余弦模擬雙通道信號觀測儀
模塊框圖:
信號發生器積分雙通道合成器示波器
正弦信號發生器:信源模塊庫Source
多通道信號合成器:信號路由庫SignalRouting
多通道示波器:信宿模塊庫Sink
生成余弦的積分運算:連續模塊庫MathSimulink仿真初步
-Simulink模塊化框圖建模實例從信源模塊庫中選取摸板(拖)創建正弦信號發生器(放)Simulink仿真初步-Matlab繪圖
-Simulink模塊化框圖建模實例
依次創建所需的模塊單元:
Simulink仿真初步
依次創建信號連接線
利用Simulink建立物理系統和數學系統的仿真模型,關鍵是對Simulink提供的功能模塊進行操作,即用適當的方式將各種模塊連接在一起。本小節將介紹模塊的基本操作。在介紹具體的操作之前先對建模過程提兩點建議:⑴在建模之前,應對模塊和信號線有一個整體、清晰和仔細的安排,以便能減少建模時間;⑵及時對模塊和信號線命名、及時對模型加標注,以增強模型的可讀性。Simulink仿真初步正弦信號發生器模塊參數設定SineWaveBlockParameters
Amplitude=1Frequency(rad/sec)=0.25*2*piPhase(rad)=0SampleTime=0
Simulink仿真初步積分器模塊參數設定
IntegratorBlockParameters
ExternalReset=NoneInitialConditions=0
Limitoutput=NotCheckedShowsaturationpoint=NotCheckedShowstateport=NotCheckedAbsolutetolerance=auto
在Simulink中,各功能模塊的參數描述都可以由用戶通過該模塊的模塊屬性對話框進行操作給出或修改。對于積分模塊的屬性對話框來說,它有9個可控參數。(1)Externalreset為外部重置選項。它用在當重置信號中發生觸發事件時,模塊將照初始條件重置狀態。(2)initialconditionsource此項用來從初始條件參數或外部模塊中獲取初始條件。(3)initialcondition此區域用來設置初始條件。(4)Limitoutput如果此項被選中,則狀態將被限制在飽和度下限和上限之間。(5)Uppersaturationlimit此參數用來設置飽和度上限。(6)Lowersaturationlimit此參數用來設置飽和度下限。(7)Showsaturationport若此項被選中,則模塊上將增加一個飽和度端口。(8)Showstateport若此項被選中,則模塊上將增加一個狀態端口。(9)Absolutetolerance此參數用來設置模塊狀態的絕對誤差。
圖7.2.11積分模塊屬性對話框
Simulink仿真初步仿真參數設定圖形與匹配窗口激活工具欄運行按鈕雙擊示波器圖標顯示獲取的信號第5章MATLAB/Simulink仿真技術及其應用
5.1Simulink仿真原理5.2Simulink模塊庫5.3仿真模型的建立和模塊參數及屬性的設置5.4其他應用模塊集及Simulink擴展庫5.5基于MATLAB/SIMULINK仿真算例5.1
Simulink的仿真原理5.1.1Simulink仿真模塊通常,Simulink仿真系統包括輸入(Input)、狀態(states)和輸出(Output)三個部分。·輸入模塊:即信號源模塊,包括常數字信號源和用戶自定義信號;·狀態模塊:即被模擬的系統模塊,是系統建模的核心和主要部分;·輸出模塊:即信號顯示模塊,它能夠以圖形方式、文件格式進行顯示。注意:在設計一個模型時,必須先確定這三個部分的意,以及它們之間的聯系;Simulink的仿真模型并非一定要完全包括這三個部分,它可以缺少其中一個或者兩個;Simulink的狀態模塊可以是連續的、離散的,或者它們二者的結合。5.1.2Simulink仿真過程1.初始化階段2.模型執行階段模型仿真是通過數值積分來進行完成的,計算數值積分可以采用以下兩步來進行:①按照秩序計算每個模塊的積分;②根據當前輸入和狀態來決定狀態的微分,得到微分矢量,然后把它返回給解法器,以計算下一個采樣點的狀態矢量。在每一個時間步中,Simulink依次解決下列問題:
·按照秩序更新模塊的輸出;
·按照秩序更新模塊的狀態;
·檢查模塊連續狀態的不連續點;
·計算下一個仿真時間步的時間。①對模型的參數進行估計,得到它們實際計算的值。②展開模型的各個層次;③按照更新的次序對模型進行排序;④確定那些顯式化的信號屬性,并檢查每個模塊是否能夠接受連接它們輸入端的信號;⑤確定所有非顯式的信號采樣時間模塊的采樣時間;⑥分配和初始化存儲空間,以便存儲每個模塊的狀態和當前值的輸出。5.2Simulink模塊庫在庫模塊瀏覽器中單擊Simulink前面的“+”號,就能夠看到Simulink的模塊庫,SIMILINK模塊庫按功能進行分為以下8類子庫:Continuous(連續模塊)Discrete(離散模塊)Function&Tables(函數和平臺模塊)Math(數學模塊)Nonlinear(非線性模塊)Signals&Systems(信號和系統模塊)Sinks(接收器模塊)Sources(輸入源模塊)SIMULINK的模塊庫分別介紹5.2.1連續模塊庫(Continuous)
在連續模塊(Continuous)庫中包括了常見的連續模塊,這些模塊如下圖所示。
1.積分模塊(Integrator):功能:對輸入變量進行積分。說明:模塊的輸入可以是標量,也可以是矢量;輸入信號的維數必須與輸入信號保持一致。2.微分模塊(Derivative)功能:通過計算差分?u/
?t近似計算輸入變量的微分。3.線性狀態空間模塊(State-Space)功能:用于實現以下數學方程描述的系統:
4.傳遞函數模塊(TransferFcn)功能:用執行一個線性傳遞函數。5.零極點傳遞函數模塊(Zero-Pole)功能:用于建立一個預先指定的零點、極點,并用延遲算子s表示的連續。6.存儲器模塊(Memory)功能:保持輸出前一步的輸入值。7.可變傳輸延遲模塊(VariableTransportDelay)功能:用于將輸入端的信號進行可變時間的延遲。8.傳輸延遲模塊(TransportDelay)功能:用于將輸入端的信號延遲指定的時間后再傳輸給輸出信號。1、Integrator(積分模塊)說明:◆將輸入信號經過數值積分,在輸出端直接反映。◆輸入量可以是標量,也可以是矢量。2、Derivative(微分模塊)說明:◆將輸入信號經過一階數值微分,在輸出端直接反映。◆輸入量可以是標量,也可以是矢量。◆模塊的初始輸入為0。◆微分結果的準確性取決于仿真步長。3、TransferFcn(傳遞函數模塊)傳遞函數常用于描述頻域下的線性微分方程。是系統輸出的Laplace變換和輸入的Laplace變換的比值。4、Zero-Pole(零極點傳遞函數模塊)零極點傳遞函數常用于建立一個預先指定的零點、極點,并用延遲算子S表示的連續系統。tf
ss
zpk
ss2tftf2sszp2tfzp2ss控制系統建模方法與模型轉化5.2.2離散模塊庫(Discrete)
離散模塊庫(Discrete)主要用于建立離散采樣的系統模型,包括的主要模塊,如圖所示。1.零階保持器模塊(Zero-Order-Hold)功能:在一個步長內將輸出的值保持在同一個值上。2.單位延遲模塊(UnitDelay)功能:將輸入信號作單位延遲,并且保持一個采樣周期相當于時間算子z-1
。3.離散時間積分模塊(DiscreteTimeIntegrator)功能:在構造完全離散的系統時,代替連續積分的功能。使用的積分方法有:向前歐拉法、向后歐拉法、梯形法。4.離散狀態空間模塊(DiscreteStateSpace)功能:用于實現如下數學方程描述的系統:5.離散濾波器模塊(DiscreteFilter)功能:用于實現無限脈沖響應(IIR)和有限脈沖響應(FIR)的數字濾波器。6.離散傳遞函數模塊(DiscreteTransferFcn)功能:用于執行一個離散傳遞函數。7.離散零極點傳遞函數模塊(DiscreteZero-Pole)功能:用于建立一個預先指定的零點、極點,并用延遲算子z-1表示的離散系統。8.一階保持器模塊(FirstOrderHold)功能:在一定時間間隔內保持一階采樣。5.2.3函數與表格模塊庫(Function&Table)
函數與表格模塊庫(Function&Table)主要實現各種一維、二維或者更高維函數的查表,另外用戶還可以根據自己需要創建更復雜的函數。該模塊庫包括多個主要模塊、如下圖所示。1.一維查表模塊(Look-UpTable)
一維查表模塊(Look-UpTable)實現對單路輸入信號的查表和線性插值。2.二維查表模塊(Look-UpTable2-D)功能:根據給定的二維平面網格上的高度值,把輸入的兩個變量經過查表、插值,計算出模塊的輸出值,并返回這個值。說明:對二維輸入信號進行分段線性變換。3.自定義函數模塊(Fcn)功能:用于將輸入信號進行指定的函數運算,最后計算出模塊的輸出值。說明:輸入的數學表達式應符合C語言編程規范;與MATLAB中的表達式有所不同,不能完成矩陣運算。4.MATLAB函數模塊(MATLABFcn)功能:對輸入信號進行MATLAB函數及表達式的處理。說明:模塊為單輸入模塊;能夠完成矩陣運算。注意:從運算速度角度,Mathfunction模塊要比Fcn模塊慢。當需要提高速度時,可以考慮采用Fcn
或者S函數模塊。5.S-函數模塊(S-Function)功能:按照Simulink標準,編寫用戶自己的Simulink函數。它能夠將MATLAB語句、C語言等編寫的函數放在Simulink模塊中運行,最后計算模塊的輸出值。5.2.4數學模塊庫(Math)
數學模塊庫(Math)包括多個數學運算模塊,如圖所示。3.矢量的點乘模塊(DotProduct)功能:矢量的點乘模塊(DotProduct)用于實現輸入信號的點積運算。4.增益模塊(Gain)功能:增益模塊(Gain)的作用是把輸入信號乘以一個指定的增益因子,使輸入產生增益。1.求和模塊(Sum)功能:求和模塊(Sum)用于對多路輸入信號進行求和運算,并輸出結果。2.乘法模塊(Product)功能:乘法模塊(Product)用于實現對多路輸入的乘積、商、矩陣乘法或者模塊的轉置等。5.常用數學函數模塊(MathFunction)功能:用于執行多個通用數學函數,其中包含exp、log、log10、square、sqrt、pow、等。6.三角函數模塊(TrigonometricFunction)功能:用于對輸入信號進行三角函數運算,共有10種三角函數供選擇。7.特殊數學模塊特殊數學模塊中包括求最大最小值模塊(MinMax)、取絕對值模塊(Abs)、符號函數模塊(Sign)、取整數函數模塊(RoundingFunction)等。8.數字邏輯函數模塊數字邏輯函數模塊包括復合邏輯模塊(CombinationalLogic)、邏輯運算符模塊(LogicalOperator)、位邏輯運算符模塊(BitwiseLogicalOperator)等。9.關系運算模塊(RelationalOperator)
關系符號包括:==(等于)、≠(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)等。10.復數運算模塊復數運算模塊包括計算復數的模與幅角(ComplextoMagnitude-Angle)、由模和幅角計算復數(Magnitude-AngletoComplex)、提取復數實部與虛部模塊(ComplextoRealandImage)、由復數實部和虛部計算復數(RealandImagetoComplex)。5.2.5非線性模塊(Nonlinear)非線性模塊(Nonlinear)中包括一些常用的非線性模塊,如圖所示。1.比率限幅模塊(RateLimiter)功能:用于限制輸入信號的一階導數,使得信號的變化率不超過規定的限制值。2.飽和度模塊(Saturation)功能:用于設置輸入信號的上下飽和度,即上下限的值,來約束輸出值。3.量化模塊(Quantizer)功能:用于把輸入信號由平滑狀態變成臺階狀態。6.繼電模塊(Relay)功能:繼電模塊(Relay)用于實現在兩個不同常數值之間進行切換。7.選擇開關模塊(Switch)功能:根據設置的門限來確定系統的輸出。4.間隙模塊(Backlash)功能:模擬有間隙系統的行為。5.死區輸出模塊(DeadZone)功能:在規定的區內沒有輸出值。
5.2.6信號與系統模塊庫(signals&Systems)信號與系統模塊庫(signals&Systems)包括的主要模塊如下圖所示。1.Bus信號選擇模塊(BusSelector)功能:用于得到從Mux模塊或其它模塊引入的Bus信號。2.混路器模塊(Mux)功能:把多路信號組成一個矢量信號或者Bus信號。3.分路器模塊(Demux)功能:把混路器組成的信號按照原來的構成方法分解成多路信號。4.信號合成模塊(Merge)功能:把多路信號進行合成一個單一的信號。5.接收/傳輸信號模塊(From/Goto)功能:接收/傳輸信號模塊(From/Goto)常常配合使用,From模塊用于從一個Goto模塊中接收一個輸入信號,Goto模塊用于把輸入信號傳遞給From模塊。6.初始值設定模塊(IC)功能:初始值設定模塊(IC)用于設定與輸出端口連接的模塊的初始值。5.2.7信號輸出模塊(Sinks)
信號輸出模塊(Sinks)包括的主要模塊如下圖所示。1.示波器模塊(Scope):scope跟待顯示信號之間有信號線連著,Floatingscope不用信號線連,通過參數設定待顯示信號功能:顯示在仿真過程中產生的輸出信號,用于在示波器中顯示輸入信號與仿真時間的關系曲線,仿真時間為x軸。2.二維信號顯示模塊(XYGraph)功能:在MATLAB的圖形窗口中顯示一個二維信號圖,并將兩路信號分別作為示波器坐標的x軸與y軸,同時把它們之間的關系圖形顯示出來。3.顯示模塊(Display)功能:按照一定的格式顯示輸入信號的值。可供選擇的輸出格式包括:short、long、short_e、long_e、bank等。4.輸出到文件模塊(ToFile)功能:按照矩陣的形式把輸入信號保存到一個指定的MAT文件。第一行為仿真時間,余下的行則是輸入數據,一個數據點是輸入矢量的一個分量。5.輸出到工作空間模塊(ToWorkspace)功能:把信號保存到MATLAB的當前工作空間,是另一種輸出方式。6.終止信號模塊(Terminator)功能:中斷一個未連接的信號輸出端口。7.結束仿真模塊(Stopsimulation)功能:停止仿真過程。當輸入為非零時,停止系統仿真。Sinks(接收器模塊)Scope:示波器XYGraph:顯示二維圖形ToWorkspace:將輸出寫入MATLAB的工作空間Plot(tout,simout)out:將輸出寫入MATLAB的工作空間Plot(tout,yout)ToFile(.mat):將輸出寫入數據文件
Toworkspace模塊的使用可以使用Toworkspace模塊將仿真輸出信息返回到命令窗口在Tospace模塊參數對話框中,saveformat選擇Array(向量)項,在workspace中看到tout和simout兩個數據向量Toworkspace模塊的使用在命令窗口,鍵入plot(tout,simout),可以得到下圖。5.2.8信號源模塊庫(Sources)信號源模塊庫(Sources)包括的主要模塊如下圖所示。1.輸入常數模塊(Constant)功能:產生一個常數。該常數可以是實數,也可以是復數。2.信號源發生器模塊(SignalGenerator)功能:產生不同的信號,其中包括:正弦波、方波、鋸齒波信號。3.從文件讀取信號模塊(FromFile)功能:從一個MAT文件中讀取信號,讀取的信號為一個矩陣,其矩陣的格式與ToFile模塊中介紹的矩陣格式相同。如果矩陣在同一采樣時間有兩個或者更多的列,則數據點的輸出應該是首次出現的列。4.從工作空間讀取信號模塊(FromWorkspace)功能:從MATLAB工作空間讀取信號作為當前的輸入信號。5.隨機數模塊(RandomNumber)功能:產生正態分布的隨機數,默認的隨機數是期望為0,方差為1的標準正態分布量。6.帶寬限制白噪聲模塊(BandLimitedWhiteNoise)功能:實現對連續或者混雜系統的白噪聲輸入。7.其它模塊除以上介紹的常用模塊外,還包括其模塊。各模塊功能可通過以下方法查看:先進入Simulink工作窗口,在菜單中執行Help/SimulinkHelp命令,這時就會彈出Help界面。然后用鼠標展開UsingSimulink\BlockReference\Simulink
BlockLibraries就可以看到Simulink的所有模塊。查看相應的模塊的使用方法和說明信息即可。
5.3仿真模型的建立與模塊參數與屬性的設置1.仿真模塊的建立首先啟動Simulink命令,建立一個空的模塊窗口“untitled”,然后利用Simulink提供的模塊庫,在此窗口中創建自己需要的Simulink模型。具體方法:在模塊庫瀏覽器中找到所需模塊,選中該模塊后右擊鼠標,把它加入到一個模型窗口中即可完成模塊的建立。
添加模塊
2.模塊參數與屬性的設置
方法:在所建立的模型窗口中,選中相應的模塊,單擊右擊鼠標,在彈出的快捷菜單中單擊“Blockparameters”選項(如右圖所示),即可打開該模塊的參數設置對話框。右擊鼠標,在彈出的快捷菜單中單擊“BlockProperties”選項,即可打開該模塊的屬性設置對話框。
Blockparamenters選項
3.模塊的連接
一般情況下,每個模塊都有一個或者多個輸入口或者輸出口。輸入口通常是模塊的左邊的“>”符號;輸出口是右邊的“>”符號。
模塊的連接方法:把鼠標指針放到模塊的輸出口,這時,鼠標指針將變為“+”十字形;然后,拖運鼠標至其它模塊的輸入口,這時信號線就變成了帶有方向箭頭的線段。此時,說明這兩個模塊的連接成功,否則需要重新進行連接。4.運行仿真在運行仿真之前,首先保存已設置和連接的模型,然后就可以運行仿真。1.Simulink仿真注意(1)Simulink的數據類型由于Simulink在仿真過程中,始終都要檢查模型的類型安全性。模型的類型安全性是指從該模型產生的代碼不出現上溢或者下溢現象,當產生溢出現象時,系統將出錯誤。查看模塊的數據類型的方法是:在模型窗口的菜單中執行Format/PortDataTypes命令,這樣每個模塊支持的數據類型就顯示出來了。要取消數據類型的查看方式,單擊PortDataTypes去掉其前面的勾號即可。Simulink仿真注意與技巧查看模塊支持的數據類型(2)數據的傳輸在仿真過程中,Simulink首先查看有沒有特別設置的信號的數據類型,以及檢驗信號的輸入和輸出端口的數據類型是否產生沖突。如果有沖突,Simulink將停止仿真,并給出一個出錯提示對話框,在此對話框中將顯示出錯的信號以及端口,并把信號的路徑以高亮顯示。遇到該情形,必須改變數據類型以適應模塊的需要。(3)提高仿真速度
Simulink仿真過程,仿真的性能受諸多因素的影響,包括模型的設計和仿真參數的選擇等。對于大多數問題,使用Simulink系統默認的解法和仿真參數值就能夠比較好地解決。因素及解決方法:(1)仿真的時間步長太小。針對這種情況可以把最大仿真步長參數設置為默認值auto。(2)仿真的時間過長。可酌情減小仿真的時間。(3)選擇了錯誤的解法。針對這種情況可以通過改變解法器來解決。(4)仿真的精度要求過高。仿真時,如果絕對誤差限度太小,則會使仿真在接近零的狀態附近耗費過多時間。通常,相對誤差限為0.1%就已經足夠了。(5)模型包含一個外部存儲塊。盡量使用內置存儲模塊。(4)改善仿真精度檢驗仿真精度的方法是:通過修改仿真的相對誤差限和絕對誤差限,并在一個合適的時間跨度反復運行仿真,對比仿真結果有無大的變化,如果變化不大,表示解是收斂的。說明仿真的精度是有效的,結果是穩定的。如果仿真結果不穩定,其原因可參是系統本身不穩定或仿真解法不適合。如果仿真的結果不精確,其原因很可能是:(1)模型有取值接近零的狀態。如果絕對誤差過大,會使仿真在接近零區域運行的仿真時間太小。解決的辦法是修改絕對誤差參數或者修改初始的狀態。(2)如果改變絕對誤差限還不能達到預期的誤差限,則修改相對誤差限,使可接受的誤差降低,并減小仿真的步長。2.Simulink仿真技巧■連接分支信號線先連接好單根信號線,然后將鼠標指針放在已經連接好的信號線上,同時按住“Ctrl”鍵,拖動鼠標,連接到另一個模塊。這樣就可以根據需由一個信號源模塊,引出多條信號線。如圖所示。引出多條信號線示例
■模塊的編輯技巧(1)調整模塊大小
(2)在同一窗口復制模塊(3)刪除模塊(4)編輯模塊標簽5.4其它應用模塊集和Simulink擴展庫1.通信模塊集(CommunicationsBlockset)通信模塊集中的模塊庫2.數字信號處理模塊集(DSPBlockset)3.電力系統模塊集(PowerSystemBlockset)4.Simulink擴展庫
?擴展信號輸出模塊庫(AdditionalSinks)擴展信號輸出模塊庫?擴展離散庫(AdditionalDiscrete)?擴展線性庫(AdditionalLinear)擴展離散庫擴展線性庫?轉換庫(Transformations)轉換模塊庫?觸發模塊庫(FlipFlops)
觸發模塊庫?線性化庫(Linearization)線性化庫?宇航模塊庫(AirspaceBlocks)宇航模塊庫微分方程的解析解:何謂解析解與數值解?1、Matlab軟件求解微分方程解析解的命令dsolve()(1)求通解的命令格式:dsolve(‘微分方程’,‘自變量’)注:微分方程在輸入時,一階導數y’應輸入Dy,y”應輸入D2y等,D應大寫)微分方程的解析解:何謂解析解與數值解?1、Matlab軟件求解微分方程解析解的命令dsolve()(2)求特解的命令格式:dsolve(‘微分方程’,‘初始條件’,‘自變量’)微分方程的解析解:何謂解析解與數值解?1、Matlab軟件求解微分方程解析解的命令dsolve()(2)求特解的命令格式:dsolve(‘微分方程’,‘初始條件’,‘自變量’)求解微分方程:先從數學的角度看,要由t得到u的數值解,需要先對sint取余弦運算,然后再積分。在弄清數學模型結構之后,就可以根據數學模型設計相應的仿真模型。構造如圖所示的模型
例1演示“求和”模塊的向量處理能力:輸入擴展例2演示“增益”模塊的向量處理能力:參數擴展5.5基于MATLAB/Simulink仿真算例C=(5/9)*(F-32)例3溫度轉換器例:系統的傳遞函數模型如下,利用Simulink求得系統的階躍響應的數值解,分別用歐拉法和4階RK法。例4利用Simulink求得系統的數值解歐拉法和4階RK法
例5一階慣性環節的階躍響應要求得到系統G(s)=5/(0.1s+2)的階躍響應曲線,用simulink來建立模型。1)雙擊打開SIMULINK模塊庫中的信號源庫(sources).2)選擇信號源庫中的step模塊,使用鼠標右健將其拖入自己的模型窗口,模型窗口中出現了一個step模塊,設置它的跳躍時間、初值和終值。3)雙擊打開SIMULINK的線性系統庫(Continuous),使用鼠標右鍵將其中的傳遞函數模塊拖入自己的模型窗口。雙擊這一模塊,設置傳遞函數的表達式,如傳遞函數為5/(0.1s+2),參數Numerator填入:[5],參數Denominator中填入[0.1,2]。1)打開SIMULINK的顯示庫(sinks),使用鼠標右鍵將其中的示波器模塊拖入自己的模型窗口。2)模型外側的>和<分別表示信號的輸出和輸入。為了聯結兩個模塊,使用鼠標的任意按鈕,點擊輸入或輸出端口,但鼠標變為+形式時,拖動十字圖標到另一個窗口,然后釋放鼠標按鈕,則帶箭頭的連線表示了信號的流向。如上得到的數學模型如圖所示。(三)仿真在模型窗口的simulation菜單中選擇start,就開始仿真。雙擊scope模塊,可以看到仿真的結果。上述慣性環節的階躍響應仿真結果如圖所示。(四)模型保存在模型窗口中的file菜單下,有save菜單,使用該菜單可以將模型保存為一個文件,待下次使用時打開,也可以使用saveas菜單改名保存文件。MATLAB5.0以后版本保存的文件擴展名為.mdl,以前的版本為.m文件。在MATLAB的命令窗口中,鍵入模型文件名,就可以打開模型文件。練習題1已知單位負反饋二階系統的開環傳遞函數為G(s)=10/s^2+3s,利用simulink求取其單位階躍響應,并將響應曲線倒入到Matlab的workspace中,在工作空間中繪制響應曲線。練習題2閉環系統前向通道傳遞函數為G(s)=(s+0.5/s+0.1)(20/s^3+12s^2+20s),前向通道有一個[-0.2,0.5]的限幅環節,反饋通道的增益為1.5,系統為負反饋,階躍經1.5倍的增益作用到系統,利用simulink求取其單位階躍響應練習題3已知單位負反饋控制系統,其開環傳遞函數為G(s)=s+5/s^2(s+10),利用simulink求取其單位階躍信號、單位斜坡信號和單位加速度信號時系統的穩態誤差。練習題4已知一個離散線性系統如圖所示,對象模型Gp(s)=2/s(s+1),G0(s)為保持器,r(t)為單位階躍輸入,用simulink求解:(1)G0(s)為零階時,采樣周期為0.1s、1s、2s時系統的輸出;(2)采樣周期為1s,G0(s)為零階和一階時的輸出。r(t)e(t)e*(t)G0(s)Gp(s)y(t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采礦權抵押合同范例
- 二零二五版正規民間借款的合同范例
- 二零二五版店鋪門面租賃合同范例
- 電力管線保護專項方案
- 個人鋼材購貨合同樣本
- 買賣小區車位合同樣本
- 六年級上冊心理健康教學計劃
- 配電室日常運行管理制度和維護方案
- 小學二年級數學上冊《7的乘法口訣》教學設計
- 東莞2008租賃合同樣本
- 紅色文化的概念界定
- 人教版小學英語單詞表(匯總)
- 豎曲線計算公式
- 懸索橋施工技術圖文并茂詳解
- 生物化學核酸結構與功能
- CCTV百集大型紀錄片《世界歷史》(1-100集)解說詞
- 中考物理電學計算專項訓練
- 四年級下冊英語 單元測試 Unit 6 What-s Anne doing-達標測評卷 湘少版(三起)(含答案)
- 專題三 勞動合同
- 中國腦出血診治指南(2023年)-1
- GB 16869-2005鮮、凍禽產品
評論
0/150
提交評論