版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
仿真環(huán)境的資料第1頁/共89頁7.1演示1個Simulink的簡單程序(2)單擊工具欄上的
圖標或選擇菜單“File”→“New”→“Model”命令,新建1個名為“untitled”的空白模型窗口。(3)在如圖7.1所示的右側(cè)子模塊窗口中,單擊“Source”子模塊庫前的“+”按鈕(或雙擊“Source”子模塊庫),或者直接在左側(cè)模塊和工具欄單擊“Simulink”下的“Source”子模塊庫,便可看到各種輸入源模塊。第2頁/共88頁第2頁/共89頁7.1演示1個Simulink的簡單程序(4)若用鼠標單擊所需的輸入信號源模塊“SineWave”(正弦信號),將其拖曳到空白模型窗口“untitled”,則“SineWave”模塊就被添加到untitled窗口;也可以用鼠標選擇“SineWave”模塊,單擊鼠標右鍵,在快捷菜單中選擇“addto'untitled'”命令,就可以將“SineWave”模塊添加到untitled窗口,如圖7.2所示。
第3頁/共88頁第3頁/共89頁7.1演示1個Simulink的簡單程序(5)用同樣的方法打開接收模塊庫“Sinks”,選擇其中的“Scope”模塊(示波器)拖曳到“untitled”窗口中。(6)在“untitled”窗口中,用鼠標指向“SineWave”右側(cè)的輸出端,當光標變?yōu)槭中螘r,按住鼠標拖曳到“Scope”模塊的輸入端,松開鼠標按鍵,就完成了2個模塊間的信號線連接,1個簡單的模型便建成,如圖7.3所示為Simulink模型窗口。第4頁/共88頁第4頁/共89頁7.1演示1個Simulink的簡單程序(7)開始仿真。單擊“untitled”模型窗口中的“開始仿真”圖標
,或者選擇菜單“Simulink”→“Start”命令,則仿真開始。雙擊“Scope”模塊出現(xiàn)示波器顯示屏,可以看到黃色的正弦波形,如圖7.4所示。(8)保存模型,單擊工具欄的
圖標,將該模型保存為“Ex0701.mdl”文件。1個簡單的仿真模型就建立了。第5頁/共88頁第5頁/共89頁7.2Simulink文件操作和模型窗口7.2.1Simulink文件操作以下幾種操作可以新建仿真模型文件。(1)在MATLAB的命令窗口選擇菜單“File”→“New”→“Model”命令。(2)在如圖7.1所示的Simulink模塊庫瀏覽器窗口選擇菜單“File”→“New”→“Model”命令,或者單擊工具欄的
圖標。(3)在如圖7.3所示的Simulink模型窗口選擇菜單“File”→“New”→“Model”命令,或者單擊工具欄的
圖標。第6頁/共88頁第6頁/共89頁7.2.2Simulink模型窗口1.狀態(tài)欄狀態(tài)欄用來顯示仿真的狀態(tài)。當鼠標指向菜單項和工具欄時,在狀態(tài)欄顯示其定義;“Ready”表示模型已準備就緒而等待仿真命令;“100%”表示編輯窗模型的顯示比例;“ode45”表示仿真所選用的積分算法。在仿真過程中,狀態(tài)欄還會出現(xiàn)動態(tài)信息。2.工具欄模型窗口工具欄如圖7.5所示。第7頁/共88頁第7頁/共89頁7.3模型創(chuàng)建7.3.1模塊操作1.模塊的復制在不同模型窗口(包括模型庫窗口)之間的模塊復制很簡單,只要選定模塊,用鼠標將其拖曳到另一個模型窗口即可;而在同一模型窗口內(nèi)復制模塊則需要按住【Ctrl】鍵,再用鼠標拖曳對象到合適的地方,釋放鼠標?;蛘呤褂貌藛魏凸ぞ邫谥械摹癈opy”和“Paste”按鈕。2.模塊的移動模塊的移動有兩種方式。(1)若在同一模型窗口中移動模塊,則需要選定移動的模塊,用鼠標將模塊拖曳到合適的地方。(2)若在不同模型窗口之間移動模塊,則要在鼠標移動的同時按下【Shift】鍵。3.模塊的刪除若要刪除模塊,應選定待刪除的模塊,按下【Delete】鍵;或者選擇菜單“Edit”→“Clear”命令或者“Cut”命令;或者單擊工具欄的“Cut”按鈕。第8頁/共88頁第8頁/共89頁4.模塊的翻轉(zhuǎn)(1)模塊翻轉(zhuǎn)180°。選定模塊,選擇菜單“Format”→“FlipBlock”命令可以將模塊旋轉(zhuǎn)180°,如圖7.6所示,中間為翻轉(zhuǎn)180°示波器模塊。(2)模塊翻轉(zhuǎn)90°。選定模塊,選擇菜單“Format”→“RotateBlock”命令可以將模塊旋轉(zhuǎn)90°,如圖7.6右邊示波器所示。如果1次翻轉(zhuǎn)不能達到要求,可以通過多次翻轉(zhuǎn)實現(xiàn)。第9頁/共88頁第9頁/共89頁7.3.1模塊操作5.模塊名的編輯模塊名的編輯方法有如下幾種。(1)修改模塊名。單擊模塊下面或旁邊的模塊名,若出現(xiàn)虛線編輯框則可對該模塊名進行修改。(2)模塊名字體設置。選定模塊,選擇菜單“Format”→“Font”命令,打開字體對話框設置字體。(3)模塊名的顯示和隱藏。選定模塊,選擇菜單“Format”→“Hide/Showname”命令,可以隱藏或顯示模塊名。(4)模塊名的翻轉(zhuǎn)。選定模塊,選擇菜單“Format”→“Flipname”命令,可以翻轉(zhuǎn)模塊名。第10頁/共88頁第10頁/共89頁7.3.2信號線操作1.模塊間連線若要將2個模塊用信號線連接,則先將光標指向1個模塊的輸出端,待光標變?yōu)槭中魏螅聪率髽俗箧I并拖動,直到另1個模塊的輸入端。如果2個端口同時都是輸入端或輸出端,則不能產(chǎn)生連線。2.信號線的分支和折線(1)分支的產(chǎn)生方式。在模型框圖中,1個信號往往需要分送到不同模塊,需要繪制分支線,此時信號線中就會出現(xiàn)分支點。(2)信號線的折線。在用信號線連接模型時,經(jīng)常需要將信號線轉(zhuǎn)向,產(chǎn)生折線。第11頁/共88頁第11頁/共89頁7.3.2信號線操作3.信號線文本注釋(label)信號線文本注釋有以下幾種。(1)添加文本注釋。雙擊需要添加文本注釋的信號線,出現(xiàn)一個空的文字填寫框,在其中可以輸入文本。(2)修改文本注釋。單擊需要修改的文本注釋,出現(xiàn)虛線編輯框后即可修改文本。(3)移動文本注釋。單擊標識,出現(xiàn)編輯框后,就可以移動編輯框。(4)復制文本注釋。單擊需要復制的文本注釋,按下【Ctrl】鍵的同時移動文本注釋,或者使用菜單和工具欄的復制操作。4.在信號線中插入模塊若模塊只有1個輸入端口和1個輸出端口,則該模塊可以直接被插入到1條信號線中。5.給模型添加文本注釋添加模型的文本注釋。在需要當做注釋區(qū)的中心位置,若雙擊鼠標左鍵,則會出現(xiàn)編輯框,在編輯框中可以輸入文字注釋。第12頁/共88頁第12頁/共89頁7.4Simulink基本模塊7.4.1基本模塊Simulink的基本模塊包括多個子模塊庫,如圖7.9所示。第13頁/共88頁第13頁/共89頁1.輸入信號源模塊庫(Sources)輸入信號源模塊用來向模型提供輸入信號,沒有輸入口,但至少有1個輸出口。常用的輸入信號源模塊如表7.1所示。名
稱模塊形狀功能說明Constant恒值常數(shù),可設置數(shù)值Step階躍信號Ramp線性增加或減小的信號SineWave正弦波輸出SignalGenerator信號發(fā)生器,可以產(chǎn)生正弦、方波、鋸齒波和隨機波信號FromFile從文件獲取數(shù)據(jù)FromWorkspace從當前工作空間定義的矩陣讀數(shù)據(jù)Clock仿真時鐘,輸出每個仿真步點的時間In輸入模塊第14頁/共88頁第14頁/共89頁7.4.1基本模塊2.接收模塊庫(Sinks)接收模塊用來接收模塊信號,常用的接收模塊如表7.2所示。第15頁/共88頁第15頁/共89頁7.4.1基本模塊3.連續(xù)系統(tǒng)模塊庫(Continuous)連續(xù)系統(tǒng)模塊是構(gòu)成連續(xù)系統(tǒng)的環(huán)節(jié),常用的連續(xù)系統(tǒng)模塊如表7.3所示。第16頁/共88頁第16頁/共89頁7.4.1基本模塊4.離散系統(tǒng)模塊庫(Discrete)離散系統(tǒng)模塊用來構(gòu)成離散系統(tǒng)的環(huán)節(jié),常用的離散系統(tǒng)模塊如表7.4所示。第17頁/共88頁第17頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置1.模塊參數(shù)設置(1)正弦信號源(SineWave)。雙擊正弦信號源模塊,會出現(xiàn)如圖7.10所示的“參數(shù)設置”對話框。第18頁/共88頁第18頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置(2)階躍信號源(Step)。階躍信號模塊是輸入信號源,其模塊參數(shù)對話框如圖7.11所示。第19頁/共88頁第19頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置(3)從工作空間獲取數(shù)據(jù)(FromWorkspace)。從工作空間獲取數(shù)據(jù)模塊的輸入信號源?!纠?.2】
在工作空間計算變量t和y,將其運算的結(jié)果作為系統(tǒng)的輸入。>>t=0:0.1:10;>>y=sin(t);>>t=t';>>y=y';第20頁/共88頁第20頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置將“FromWorkspace”模塊的“參數(shù)設置”對話框打開,如圖7.12(a)所示,在“Data”欄填寫“[t,y]”,單擊“OK”按鈕,則在模型窗口中該模塊顯示如圖7.12(b)所示。用示波器作為接收模塊,可以查看輸出波形為正弦波。第21頁/共88頁第21頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置(4)從文件獲取數(shù)據(jù)(Fromfile)。從文件獲取數(shù)據(jù)是指從mat數(shù)據(jù)文件中獲取數(shù)據(jù)。將【例7.2】中的數(shù)據(jù)保存到.mat文件。>>t=0:0.1:2*pi;>>y=sin(t);>>y1=[t;y];>>saveEx0702y1 %保存在“Ex0702.mat”文件中將“FromFile”模塊的“參數(shù)設置”對話框打開,如圖7.13所示,在“Filename”欄填寫“Ex0702.mat”,單擊“OK”按鈕。用示波器作為接收模塊,可以查看輸出波形。第22頁/共88頁第22頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置(5)傳遞函數(shù)(Transferfunction)。傳遞函數(shù)模塊是用來構(gòu)成連續(xù)系統(tǒng)結(jié)構(gòu)的模塊,其模塊參數(shù)對話框如圖7.14所示。第23頁/共88頁第23頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置若在圖7.14中設置“Denominator”為“[11.4141]”,則在模型窗口中的顯示如圖7.15所示。第24頁/共88頁第24頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置(6)示波器(Scope)。示波器模塊用來接收輸入信號并實時顯示信號波形曲線,還可以把數(shù)據(jù)送入工作空間。示波器窗口的工具欄可以調(diào)整顯示的波形。顯示正弦信號的示波器,如圖7.16所示。第25頁/共88頁第25頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置示波器的參數(shù)設置如下。①示波器的y坐標設置如圖7.17(a)所示。通過用鼠標右鍵單擊坐標框,在快捷菜單中選擇“Axesproperties”,就會出現(xiàn)“y坐標設置”對話框,在“Y-min”和“Y-max”中設置坐標上下限,在“Title”中設置坐標的文字標注。②示波器的參數(shù)設置可以通過單擊圖7.16中工具欄上的Parameters選項卡中“打開參數(shù)對話框”按鈕,出現(xiàn)如圖7.17(b)所示的“參數(shù)設置”對話框,在“Timerange”欄中設置顯示信號范圍,默認auto時為仿真時間范圍,用戶可以設置,如果信號實際持續(xù)時間超過該范圍,則超出范圍的信號在示波器中不顯示。第26頁/共88頁第26頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置③“Sampling”區(qū)包含2個下拉菜單:“Decimation”表示頻度,默認值為1,表示每隔1個數(shù)據(jù)點顯示;“Sampletime”表示顯示點的采樣時間步長,默認值為0,表示連續(xù)信號,大于0表示離散信號的時間間隔,1表示由輸入信號決定。④如圖7.17(b)中的“Numberofaxes”欄表示示波器的輸入端口個數(shù),默認值為1,表示只有1個輸入,如果設置為2則表示有2個輸入端口,如圖7.18(a)所示。⑤“參數(shù)設置”對話框中的“Datahistory”圖標如圖7.18(b)所示,“Limitdatapointstolast”欄表示緩沖區(qū)接受數(shù)據(jù)的長度,默認為5000,不管示波器是否打開,只要仿真啟動,緩沖區(qū)就接受信號數(shù)據(jù)。
第27頁/共88頁第27頁/共89頁7.4.2常用模塊的參數(shù)和屬性設置2.模塊屬性設置每個模塊的屬性對話框的內(nèi)容都相同,選中模塊后單擊鼠標右鍵打開快捷菜單,選擇“BlockProperties…”菜單項就可以打開“模塊屬性”對話框,如圖7.19所示,包括3個選項卡:“General”、“BlockAnnotation”和“Callbacks”。第28頁/共88頁第28頁/共89頁7.5復雜系統(tǒng)仿真與分析7.5.1仿真設置Simulink的仿真參數(shù)都有默認的設置,但如果需要修改仿真參數(shù),則可以在仿真運行前對仿真參數(shù)進行設置。在模型窗口選擇菜單“Simulation”→“Configurationparameters…”命令,則會打開“參數(shù)設置”對話框,如圖7.20所示。第29頁/共88頁第29頁/共89頁7.5.1仿真設置1.Solver頁的參數(shù)設置Solver頁的參數(shù)設置有如下幾項。(1)Simulationtime。①仿真的起始時間(Starttime):默認為0,單位為s。②仿真的結(jié)束時間(Stoptime):默認為10,單位為s。(2)Solveroptions。仿真的過程一般是求解微分方程組,“Solveoptions”的內(nèi)容是針對解微分方程組的設置。當求解類型為變步長時,有以下設置。
“Maxstepsize”:設置最大步長,默認為auto,最大步長為(Stoptime-Starttime)/50。②“Minstepsize”:設置最小步長,默認為auto。③“Initialstepsize”:設置初始步長,默認為auto。④“Relativetolerance”:設置相對容許誤差限。⑤“Absolutetolerance”:設置絕對容許誤差限。第30頁/共88頁第30頁/共89頁7.5.1仿真設置當求解類型為定步長時,有以下設置。①“Fixedstepsize”:設置固定步長,默認為auto,不能設置誤差限。②“Mode”:設置模型類型,有“MuliTasking”、“SingleTasking”和“Auto”3種。③“Solver”:設置仿真解法的具體算法類型。變步長的算法有:discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t和ode23tb,默認使用ode45算法。定步長的算法有:discrete、ode5、ode4、ode3、ode2和ode1。(3)Solverdiagnosticcontrols。根據(jù)需要設置仿真診斷參數(shù),可以達到不同的輸出效果。第31頁/共88頁第31頁/共89頁7.5.1仿真設置2.DataImport/Outport(數(shù)據(jù)輸入/輸出)頁的設置在Simulink“參數(shù)設置”對話框左側(cè)選擇“DataImport/Extport”,如圖7.21所示。第32頁/共88頁第32頁/共89頁【例7.3】建立二階系統(tǒng)的仿真模型。(1)在“Sources”模塊庫選擇“Step”模塊,在“Continuous”模塊庫選擇“TransferFcn”模塊,在“MathOperations”模塊庫選擇“Sum”模塊,在“Sinks”模塊庫選擇“Scope”模塊。(2)連接各模塊,從信號線引出分支點,構(gòu)成閉環(huán)系統(tǒng)。(3)設置模塊參數(shù),打開“Sum”模塊“參數(shù)設置”對話框,如圖7.22所示。將“Iconshape”設置為“rectangular”,將“Listofsigns”設置為“|+”,其中“|”表示上面的入口為空。第33頁/共88頁第33頁/共89頁7.5.2連續(xù)系統(tǒng)仿真(4)添加信號線文本注釋。雙擊信號線,出現(xiàn)編輯框后,輸入文本,其模型如圖7.23所示。第34頁/共88頁第34頁/共89頁7.5.2連續(xù)系統(tǒng)仿真(5)仿真并分析。單擊工具欄的“Startsimulation”按鈕開始仿真,在示波器上顯示出階躍響應。在Simulink模型窗口,選擇菜單“Simulation”→“Simulationparameters…”命令,在“Solver”頁將“Stoptime”設置為15,單擊“Startsimulation”按鈕,示波器顯示的時間為15s。第35頁/共88頁第35頁/共89頁7.5.2連續(xù)系統(tǒng)仿真再單擊示波器工具欄的自動刻度按鈕(Autoscale),波形將以窗口的最大值、最小值為縱坐標的上、下限?;蛘邔⑾到y(tǒng)的結(jié)構(gòu)修改成為使用積分模塊(Integrator)和零極點模塊(Zero-Pole)串聯(lián),反饋使用“MathOperations”模塊庫中的“Gain”模塊構(gòu)成反饋環(huán)的增益為1,二階系統(tǒng)模型如圖7.25所示。第36頁/共88頁第36頁/共89頁7.5.2連續(xù)系統(tǒng)仿真如果將示波器換成“Sinks”模塊庫中的“Out”模塊
;然后在仿真參數(shù)設置對話框的“WorkspaceI/O”頁(工作空間輸入/輸出),勾選“Time”和“Output”欄,并分別設置保存在工作空間的時間量和輸出變量為“tout”和“yout”,則仿真后在工作空間就可以使用這2個變量繪制曲線,如圖7.26所示。>>plot(tout,yout)第37頁/共88頁第37頁/共89頁7.5.2連續(xù)系統(tǒng)仿真【例7.4】建立控制系統(tǒng),控制環(huán)節(jié)采用PID控制,并使用simulink進行PID的參數(shù)整定。Simulink的“Continuous”模塊庫中有“PIDController”模塊,可以作為PID控制器。系統(tǒng)結(jié)構(gòu)如圖7.27所示。第38頁/共88頁第38頁/共89頁7.5.2連續(xù)系統(tǒng)仿真(1)先整定比例環(huán)節(jié)Kp的值,將Ki和Kd都設置為0,調(diào)整Kp在示波器使輸出波形達到臨界穩(wěn)定即等幅振蕩波形。Kp從大到小不斷調(diào)整同時查看示波器波形直到等幅振蕩,得出Kp=12.5,示波器波形如圖7.28所示。第39頁/共88頁第39頁/共89頁7.5.2連續(xù)系統(tǒng)仿真(2)調(diào)整Ki和Kd,使波形達到合適的輸出。從上圖得出等幅振蕩周期T=15S,K=12.5。>>K=12.5;>>T=15;>>Kp=0.6*KKp=7.5000>>Ki=1.2*K/TKi=1>>Kd=0.072*K*TKd=13.5000第40頁/共88頁第40頁/共89頁7.5.2連續(xù)系統(tǒng)仿真設置PID模塊的參數(shù)為變量,如圖7.29所示,在命令窗口設置參數(shù)值。第41頁/共88頁第41頁/共89頁7.5.2連續(xù)系統(tǒng)仿真查看示波器波形,如果不滿足超調(diào)量和過渡時間則再進行調(diào)整。如圖7.30(a)為示波器Ki=1時的顯示波形,圖7.30(b)為調(diào)整Ki=0.5時的波形,超調(diào)量比較小。
第42頁/共88頁第42頁/共89頁7.5.3離散系統(tǒng)仿真【例7.5】控制部分為離散環(huán)節(jié),被控對象為2個連續(xù)環(huán)節(jié),其中1個有反饋環(huán)。反饋環(huán)引入了零階保持器,輸入為階躍信號。創(chuàng)建模型并仿真的方法如下。(1)選擇1個“Step”模塊,2個“TransferFcn”模塊,2個“Sum”模塊,2個“Scope”模塊,1個“Gain”模塊,在“Discrete”模塊庫選擇1個“DiscreteFilter”和1個“Zero-OrderHold”模塊。(2)連接模塊。將反饋環(huán)的“Gain”模塊和“Zero-OrderHold”模塊翻轉(zhuǎn)。(3)設置參數(shù)。將“DiscreteFilter”和“Zero-OrderHold”模塊的“Sampletime”都設置為0.1s。第43頁/共88頁第43頁/共89頁7.5.3離散系統(tǒng)仿真(4)添加文本注釋,離散系統(tǒng)框圖如圖7.31所示。(5)設置顏色。Simulink為幫助用戶方便地跟蹤不同采樣頻率的運作范圍和信號流向,可以采用不同的顏色表示不同的采樣頻率,選擇菜單“Format”→“Sampletimecolor”命令,就可以看到不同采樣頻率的模塊顏色不同。第44頁/共88頁第44頁/共89頁7.5.3離散系統(tǒng)仿真(6)開始仿真。在Simulink模型窗口,選擇菜單“Simulation”→“Simulationparameters…”命令,將“Maxstepsize”設置為0.05s,則2個示波器“Scope”(d(k)示波器)和“Scope1”(y(t)示波器)的顯示如圖7.32所示。
第45頁/共88頁第45頁/共89頁7.5.3離散系統(tǒng)仿真(7)修改參數(shù),將“DiscreteFilter”模塊的“Sampletime”設置為0.6s,“Zero-OrderHold”模塊的“Sampletime”不變;選擇菜單“Edit”→“Updatediagram”命令修改顏色,就可以看到“DiscreteFilter”模塊的顏色變化了;然后開始仿真,可以看出當T=0.6,Tk=0.1時,系統(tǒng)出現(xiàn)振蕩。示波器顯示如圖7.33所示。
第46頁/共88頁第46頁/共89頁7.5.3離散系統(tǒng)仿真(8)修改參數(shù),將“DiscreteFilter”和“Zero-OrderHold”模塊的“Sampletime”都設置為0.6s,更新框圖顏色,開始仿真。當T=Tk=0.6時,系統(tǒng)出現(xiàn)強烈的振蕩。示波器顯示如圖7.34所示。
第47頁/共88頁第47頁/共89頁7.5.4仿真結(jié)構(gòu)參數(shù)化【例7.6】
將【例7.5】中的模塊結(jié)構(gòu)參數(shù)用變量表示,離散系統(tǒng)框圖如圖7.35所示。第48頁/共88頁第48頁/共89頁7.5.4仿真結(jié)構(gòu)參數(shù)化將參數(shù)設置放在Ex0705_1.m文件中。%Ex0705_1參數(shù)設置T=0.1; %控制環(huán)節(jié)采樣時間Tk=0.6; %零階保持器采樣時間k=0.03; %Gain增益zt1=1.44;zt2=1.26;zt3=1;zt4=1;tf11=6.7;tf12=0.1;tf13=1;tf21=1;tf22=3;tf23=1在MATLAB工作空間運行該文件。>>Ex0705_1第49頁/共88頁第49頁/共89頁7.6子系統(tǒng)與封裝7.6.1建立子系統(tǒng)1.在已建立的模型中新建子系統(tǒng)(1)先打開或新建1個模型,建立模型中的各模塊并用信號線連接。(2)在模型窗口中,用鼠標拖曳1個虛線框以將需要建立子系統(tǒng)的部分框起來,然后選擇菜單“Edit”→“Createsubsystem”命令,這時原來虛線框中的部分就被1個“Subsystem”模塊代替。(3)更改子系統(tǒng)名。如新建的子系統(tǒng)名默認為“Subsystem”,以后建立的子系統(tǒng)則在名稱后面加數(shù)字,可以更改為有一定含義的名稱,以便于分析時查看。(4)重命名輸入、輸出端口名稱,如新建的子系統(tǒng)中的默認輸入端口名為“In1”、“In2”、…,輸出端口名為“Out1”、“Out2”、…。第50頁/共88頁第50頁/共89頁7.6.1建立子系統(tǒng)【例7.7】打開【例7.5】建立的模型,將控制對象中的第1個連續(xù)環(huán)節(jié)中的反饋環(huán)建立為1個子系統(tǒng)。在模型窗口中,將控制對象中的第1個連續(xù)環(huán)節(jié)的反饋環(huán)用鼠標拖出的虛線框框住,選擇菜單“Edit”→“Createsubsystem”命令,則子系統(tǒng)如圖7.36所示。第51頁/共88頁第51頁/共89頁7.6.1建立子系統(tǒng)2.在已有的子系統(tǒng)基礎上建立如果要在已有的子系統(tǒng)基礎上建立1個子系統(tǒng),可以按以下步驟。(1)將已有的子系統(tǒng)復制到新窗口。(2)雙擊打開子系統(tǒng)模型窗口,重新放置模塊,建立連接和輸入、輸出端口。(3)將子系統(tǒng)與其他模塊連接。(4)修改子系統(tǒng)名和其他參數(shù)。第52頁/共88頁第52頁/共89頁7.6.1建立子系統(tǒng)【例7.8】在【例7.7】的基礎上建立新子系統(tǒng),將【例7.7】模型的控制對象中的第1個對象環(huán)節(jié)作為1個完整的子系統(tǒng)。將圖7.36中的所有對象都復制到新的空白模型窗口中,雙擊打開子系統(tǒng)“Subsystem”,則出現(xiàn)如圖7.37所示的子系統(tǒng)模型窗口,添加模型構(gòu)成反饋環(huán)形成閉環(huán)系統(tǒng),如圖7.38所示。
第53頁/共88頁第53頁/共89頁7.6.1建立子系統(tǒng)將系統(tǒng)模型修改為如圖7.39所示的包含子系統(tǒng)的模型。第54頁/共88頁第54頁/共89頁7.6.2條件執(zhí)行子系統(tǒng)1.使能子系統(tǒng)(EnabledSubsystem)建立使能子系統(tǒng)的步驟如下。(1)建立1個新模型。(2)在“Ports&Subsystems”子模塊庫選擇“EnabledSubsystem”
模塊,放在子系統(tǒng)模型窗口中。(3)將“EnabledSubsystem”模塊的“In1”、“Out1”和“Enable”(
)3個端口與其他模塊連接。其中“Enable”端口為使能的條件控制信號。(4)設置“EnabledSubsystem”模塊的參數(shù)。雙擊打開該模塊的模型窗口,如圖7.40所示。其內(nèi)部結(jié)構(gòu)為“In1”和“Out1”連接,“Enable”單獨。第55頁/共88頁第55頁/共89頁7.6.2條件執(zhí)行子系統(tǒng)在圖7.40中雙擊“Enable”模塊,出現(xiàn)如圖7.41(a)所示的對話框,“Stateswhenenabling”欄有2個下拉選項:“held”表示當使能系統(tǒng)再次執(zhí)行時,保持上一次執(zhí)行后的狀態(tài),“reset”表示再次執(zhí)行時復位到初始狀態(tài)。在圖7.40中雙擊“Out1”模塊,出現(xiàn)如圖7.41(b)所示的對話框,“Outputwhendisabled”欄有2個下拉選項:“held”表示當子系統(tǒng)停止執(zhí)行后,輸出端口的值保持輸出值;“reset”表示停止執(zhí)行后輸出端口復位到初始值。
第56頁/共88頁第56頁/共89頁7.6.2條件執(zhí)行子系統(tǒng)【例7.9】建立一個用使能子系統(tǒng)控制正弦信號為半波整流信號的模型。模型由正弦信號“SineWave”為輸入信號源,示波器“Scope”為接收模塊,使能子系統(tǒng)“EnabledSubsystem”為控制模塊,連接模塊,將“SineWave”模塊的輸出作為“EnabledSubsystem”的控制信號,其模型如圖7.42(a)所示。開始仿真,由于“EnabledSubsystem”的控制為正弦信號,大于0時執(zhí)行輸出,小于0時就停止,則示波器顯示為半波整流信號,如圖7.42(b)所示。第57頁/共88頁第57頁/共89頁7.6.2條件執(zhí)行子系統(tǒng)2.觸發(fā)子系統(tǒng)(TriggeredSubsystem)建立觸發(fā)子系統(tǒng)的步驟如下。(1)建立1個新模型。(2)在“Ports&Subsystems”子模塊庫選擇“TriggeredSubsystem”模塊
,放在子系統(tǒng)模型窗口中。(3)將“TriggeredSubsystem”模塊的“In1”、“Out1”和“Triggered”()3個端口與其他模塊連接,其中“Triggered”端口為觸發(fā)條件控制信號。(4)設置“TriggeredSubsystem”模塊的參數(shù)。雙擊打開該模塊的模型窗口,其內(nèi)部結(jié)構(gòu)為“In1”和“Out1”連接,“Trigger”單獨。第58頁/共88頁第58頁/共89頁7.6.2條件執(zhí)行子系統(tǒng)【例7.10】建立1個用觸發(fā)子系統(tǒng)控制正弦信號輸出階梯波形的模型。連接模塊,將“PulseGenerator”模塊的輸出作為“TriggeredSubsystem”的控制信號,其模型如圖7.43(a)所示。開始仿真,由于“TriggeredSubsystem”的控制為“PulseGenerator”模塊的輸出,示波器顯示如圖7.43(b)所示。第59頁/共88頁第59頁/共89頁7.6.2條件執(zhí)行子系統(tǒng)3.使能觸發(fā)子系統(tǒng)(EnabledandTriggeredSubsystem)使能觸發(fā)子系統(tǒng)是觸發(fā)子系統(tǒng)和使能子系統(tǒng)的組合,含有觸發(fā)信號和使能信號2個控制信號輸入端,觸發(fā)事件發(fā)生后,Simulink檢查使能信號是否大于0,大于0就開始執(zhí)行。第60頁/共88頁第60頁/共89頁7.6.3子系統(tǒng)的封裝1.封裝子系統(tǒng)的步驟封裝子系統(tǒng)的步驟如下。(1)選中子系統(tǒng)雙擊打開,給需要進行賦值的參數(shù)指定1個變量名。(2)選擇菜單“Edit”→“Masksubsystem”命令,出現(xiàn)封裝對話框。(3)在封裝對話框中的設置參數(shù),主要有“Icon”、“Parameters”、“Initialization”和“Documentation”4個選項卡。2.Icon選項卡Icon選項卡用于設定封裝模塊的名字和外觀,其參數(shù)設置如圖7.44所示。第61頁/共88頁第61頁/共89頁7.6.3子系統(tǒng)的封裝3.Parameters選項卡Parameters選項卡用于輸入變量名稱和相應的提示,其參數(shù)設置如圖7.45所示。第62頁/共88頁第62頁/共89頁7.6.3子系統(tǒng)的封裝4.Initialization選項卡Initialization選項卡用于初始化封裝子系統(tǒng),在“Initializationcommands”中輸入MATLAB命令,當裝載模塊,開始仿真或更新模塊框圖時運行初始化命令。5.Documentation選項卡Documentation選項卡用于編寫與該封裝模塊對應的Help和說明文字,分別有“Masktype”、“MaskDescription”和“Maskhelp”欄。(1)Masktype欄:用于設置模塊顯示的封裝類型。(2)MaskDescription欄:用于輸入描述文本。(3)Maskhelp欄:用于輸入幫助文本,即當在所顯示的封裝子系統(tǒng)“參數(shù)設置”對話框中單擊“Help”按鈕時出現(xiàn)的文本。第63頁/共88頁第63頁/共89頁7.6.3子系統(tǒng)的封裝6.按鈕設置參數(shù)設置對話框中的“Apply”按鈕用于將修改的設置應用于封裝模塊;“Unmask”按鈕用于將封裝撤銷,則雙擊該模塊就不會出現(xiàn)定制的對話框?!纠?.11】
創(chuàng)建1個二階系統(tǒng),并將子系統(tǒng)進行封裝。創(chuàng)建1個二階系統(tǒng),將其閉環(huán)系統(tǒng)構(gòu)成子系統(tǒng)并封裝,將阻尼系數(shù)zeta和無阻尼頻率wn作為輸入?yún)?shù)。(1)創(chuàng)建模型,并將系統(tǒng)的阻尼系數(shù)用變量zeta表示,無阻尼頻率用變量wn表示。二階系統(tǒng)模型如圖7.46所示。第64頁/共88頁第64頁/共89頁7.6.3子系統(tǒng)的封裝(2)用虛線框框住反饋環(huán),若選擇菜單“Edit”→“CreateSubsystem”命令,則產(chǎn)生子系統(tǒng)模型,如圖7.47所示。第65頁/共88頁第65頁/共89頁(3)封裝子系統(tǒng),若選擇菜單“Edit”→“Masksubsystem”命令,則出現(xiàn)封裝對話框,將zeta和wn作為輸入?yún)?shù)。在Icon選項卡中設置的“Drawingcommands”欄中寫文字并畫曲線,命令如下:disp('二階系統(tǒng)')plot([012310],exp([012310]))第66頁/共88頁第66頁/共89頁7.6.3子系統(tǒng)的封裝在Parameters選項卡中,單擊“Add”
按鈕添加2個輸入?yún)?shù),設置“Prompt”分別為“阻尼系數(shù)”和“無阻尼振蕩頻率”,并設置“type”欄分別為“popup”和“edit”,對應的“Dialogvariable”為“zeta”和“wn”,設置“Popups”為“00.30.50.70712”,如圖7.48(a)所示。在Initialization選項卡中初始化輸入?yún)?shù),如圖7.48(b)所示。
第67頁/共88頁第67頁/共89頁7.6.3子系統(tǒng)的封裝在Documentation選項卡中輸入提示和幫助信息,如圖7.48(c)所示。第68頁/共88頁第68頁/共89頁7.6.3子系統(tǒng)的封裝封裝子系統(tǒng)與其他的模塊一樣,有自己的圖標、參數(shù)設置對話框和工作空間,并獨立于MATLAB的工作空間和其他模塊空間,如圖7.49所示。第69頁/共88頁第69頁/共89頁7.7用MATLAB命令創(chuàng)建和運行Simulink模型1.sim命令sim在命令窗口可以方便地對模型分析和仿真。語法:[t,x,y]=sim('model',timespan,options,ut)%利用輸入?yún)?shù)進行仿真,輸出矩陣[t,x,y1,y2,…]=sim('model',timespan,options,ut)%利用輸入?yún)?shù)進行仿真,逐個輸出第70頁/共88頁第70頁/共89頁7.7用MATLAB命令創(chuàng)建和運行Simulink模型【例7.12】
根據(jù)方程組
由狀態(tài)方程建立系統(tǒng)模型,輸入u為階躍信號,顯示其輸出波形,系統(tǒng)模型圖如圖7.50所示。>>k1=4;>>k2=2;>>k3=0.5;>>[t,x,y]=sim('Ex0711',[0,15]); %運行模型>>plot(t,x)第71頁/共88頁第71頁/共89頁7.7用MATLAB命令創(chuàng)建和運行Simulink模型2.simset命令simset命令用來為sim函數(shù)建立或編輯仿真參數(shù)或規(guī)定算法,并把設置結(jié)果保存在一個結(jié)構(gòu)變量中。語法:OPTIONS=simset('NAME1',VALUE1,'NAME2',VALUE2,...) %設置屬性的屬性值【例7.12續(xù)】
修改仿真的參數(shù),采用ode23解法器仿真。>>opts=simset('solver','ode23');>>[t,x,y]=sim('Ex0711',[0,15]);3.simget命令simget命令用來獲得模型的參數(shù)設置值。語法:Value=simget(MODEL,property) %獲取屬性值第72頁/共88頁第72頁/共89頁7.7用MATLAB命令創(chuàng)建和運行Simulink模型4.linmod命令linmod命令用來運行模型并獲得其狀態(tài)空間的數(shù)學模型。語法:[A,B,C,D]=linmod('SYS') 【例7.12續(xù)】
獲取本系統(tǒng)的數(shù)學模型參數(shù),得出傳遞函數(shù)表達式。>>[A,B,C,D]=linmod('Ex0711_1'); %將mdl模型轉(zhuǎn)換成為狀態(tài)空間模型>>[num,den]=ss2tf(A,B,C,D); %將狀態(tài)空間模型轉(zhuǎn)換成傳遞函數(shù)>>G=tf(num,den)Transferfunction:s+2-----s+1第73頁/共88頁第73頁/共89頁7.7用MATLAB命令創(chuàng)建和運行Simulink模型獲取系統(tǒng)的數(shù)學模型需要將該系統(tǒng)的輸入和輸出模塊修改為“In1”和“Out1”,如圖7.51所示。第74頁/共88頁第74頁/共89頁7.8S函數(shù)7.8.1S函數(shù)的介紹1.S函數(shù)的作用S函數(shù)的作用如下:
可以在Simulink中增加一個用戶編寫的通用模塊;
在Simulink中使用動畫;
充當硬件的驅(qū)動;
將系統(tǒng)表示成為一系列數(shù)學方程。2.S函數(shù)的工作原理首先了解一下Simulink模型的結(jié)構(gòu),如圖7.52所示。第75頁/共88頁第75頁/共89頁7.8.1S函數(shù)的介紹輸入u、輸出y和狀態(tài)x的數(shù)學關系為:第76頁/共88頁第76頁/共89頁7.8.1S函數(shù)的介紹Simulink的仿真過程如圖7.53所示,仿真過程主要由初始化和運行兩個過程。圖中的流程中“計算微分”、“計算輸出”和“更新離散狀態(tài)”對應于上面的輸入、輸出和狀態(tài)的數(shù)學關系式。第77頁/共88頁第77頁/共89頁7.8.2S函數(shù)的編寫(1)sfuntmpl主函數(shù)。function[sys,x0,str,ts,simStateCompliance]=sfuntmpl(t,x,u,flag)switchflag, %flag是S函數(shù)的標記,指向不同的子函數(shù)case0, %初始化子函數(shù)[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;case1, %計算微分子函數(shù)sys=mdlDerivatives(t,x,u);case2, %更新離散狀態(tài)子函數(shù)sys=mdlUpdate(t,x,u);case3, %計算輸出子函數(shù)sys=mdlOutputs(t,x,u);case4, %計算下一個采樣時刻點sys=mdlGetTimeOfNextVarHit(t,x,u);case9, %結(jié)束仿真sys=mdlTerminate(t,x,u);otherwise DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));endflag是標識S函數(shù)當前所處的仿真階段,以便執(zhí)行相應的子函數(shù);結(jié)合圖7.53可以看出不同的flag在仿真過程中的執(zhí)行時刻。主函數(shù)sfuntmpl的格式:function[sys,x0,str,ts,simStateCompliance]=sfuntmpl(t,x,u,flag)第78頁/共88頁第78頁/共89頁7.8.2S函數(shù)的編寫(2)初始化函數(shù)mdlInitializeSizes。function[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizessizes=simsizes; %調(diào)用simsizes函數(shù),用于設置模塊參數(shù)的結(jié)構(gòu)sizes.NumContStates=0; %模塊的連續(xù)變量的個數(shù)sizes.NumDiscStates=0; %模塊的離散變量的個數(shù)sizes.NumOutputs=0; %%模塊的輸出變量的個數(shù)sizes.NumInputs=0; %模塊的輸入變量的個數(shù)sizes.DirFeedthrough=1; %模塊的直通前向通道數(shù),默認值為1sizes.NumSampleTimes=1; %模塊的采樣周期個數(shù),默認值為1sys=simsizes(sizes); %給sys賦值x0=[]; %向模塊賦初值,默認值為[]str=[]; %特殊保留變量ts=[00]; %采樣時間和偏移量,默認值為[00]simStateCompliance='UnknownSimState';第79頁/共88頁第79頁/共89頁7.8.3S函數(shù)模塊的使用在Simulink中選擇“User-DefinedFunctions”模塊庫,如圖7.54所示有多種可供用戶自定義的模塊。第80頁/共88頁第80頁/共89頁7.8.3S函數(shù)模塊的使用【例7.13】
創(chuàng)建單級倒立擺系統(tǒng)simulink模型,并使用S函數(shù)構(gòu)建自定義函數(shù)。單級倒立擺示意圖如圖7.55所示。單級倒立擺的動力學方程為:將
,
,其動力學方程轉(zhuǎn)化為狀態(tài)方程為:第8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國快速連接器數(shù)據(jù)監(jiān)測研究報告
- 2025年中國溫度風爐市場調(diào)查研究報告
- 2025年度草捆生物質(zhì)燃料供應合同3篇
- 2025年度綠色生態(tài)農(nóng)資銷售合作合同范本2篇
- 2025年農(nóng)業(yè)觀光休閑果園生態(tài)農(nóng)業(yè)技術(shù)研發(fā)與應用合同4篇
- 三方債務合同:2024年企業(yè)互保案例版
- 二零二五年度暖氣設備生產(chǎn)與市場拓展承包合同范本4篇
- 二零二五年度建筑渣土清運及環(huán)保處理承包協(xié)議4篇
- 二零二五版女方出軌離婚時子女監(jiān)護權(quán)及贍養(yǎng)費協(xié)議范本3篇
- 2025年槳扇發(fā)動機項目風險分析和評估報告
- 鉗工考試題及參考答案
- 移動商務內(nèi)容運營(吳洪貴)任務五 引發(fā)用戶共鳴外部條件的把控
- 工程造價專業(yè)職業(yè)能力分析
- 醫(yī)藥高等數(shù)學知到章節(jié)答案智慧樹2023年浙江中醫(yī)藥大學
- 沖渣池施工方案
- 人教版初中英語八年級下冊 單詞默寫表 漢譯英
- 學校網(wǎng)絡信息安全管理辦法
- 中國古代文學史 馬工程課件(下)21第九編晚清文學 緒論
- 2023年鐵嶺衛(wèi)生職業(yè)學院高職單招(語文)試題庫含答案解析
- 2205雙相不銹鋼的焊接工藝
- 2023年全國高中數(shù)學聯(lián)賽江西省預賽試題及答案
評論
0/150
提交評論