【文章內(nèi)容簡(jiǎn)介】
動(dòng)態(tài)系統(tǒng)的數(shù)學(xué)模型由一組方程組成,這些數(shù)學(xué)方程就是眾所周知的代數(shù)方程、微分方程和 /或差分方程。在給定的時(shí)間點(diǎn)上,這些方程可以看做是系統(tǒng)輸出響應(yīng) (輸出 )、系統(tǒng)輸入激勵(lì) (輸入 )、系統(tǒng)當(dāng)前狀態(tài)、系統(tǒng)參數(shù)和時(shí)間之間的關(guān)系,系統(tǒng)狀態(tài)可以看做是系統(tǒng)結(jié)構(gòu)動(dòng)態(tài)變化的數(shù)值描述。例如,在建立簡(jiǎn)單的鐘擺物理系統(tǒng)時(shí),系統(tǒng)的狀態(tài)是鐘擺的當(dāng)前位置和速度;同理,過(guò)濾信號(hào)的信號(hào)處理系統(tǒng)可以把先前的一組輸入看做為系統(tǒng)狀態(tài)。系統(tǒng)參數(shù)是系統(tǒng)靜態(tài)結(jié)構(gòu)的數(shù)值描述,也可以看做為系統(tǒng)方程的常系數(shù)。對(duì)于鐘擺系統(tǒng),鐘擺的長(zhǎng)度就是系統(tǒng)的參數(shù)。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 動(dòng)態(tài)系統(tǒng)可以是連續(xù)系統(tǒng)和 /或離散系統(tǒng)。舉例來(lái)說(shuō),用戶可以用 Simulink建立汽車(chē)的防抱死剎車(chē)系統(tǒng),這個(gè)系統(tǒng)可以在給定條件下運(yùn)行。在整個(gè)制動(dòng)系統(tǒng)內(nèi),用戶可以建立其他子系統(tǒng)的模型,同時(shí),用戶也可以利用仿真結(jié)果觀察整個(gè)制動(dòng)系統(tǒng)是如何操作的,并了解制動(dòng)塊相對(duì)于制動(dòng)盤(pán)的滑動(dòng)情況。在真實(shí)系統(tǒng)中,制動(dòng)盤(pán)上制動(dòng)塊的強(qiáng)度在整個(gè)剎車(chē)過(guò)程中是連續(xù)變化的,Simulink把這個(gè)系統(tǒng)建模為連續(xù)系統(tǒng)處理。但汽車(chē)中的制動(dòng)系統(tǒng)也有可能存在離散系統(tǒng),例如,汽車(chē)上有可能使用計(jì)算機(jī)芯片來(lái)控制制動(dòng)塊作用在四個(gè)輪子上的準(zhǔn)確制動(dòng)力,運(yùn)行在計(jì)算機(jī)芯片上的軟件是以某個(gè)時(shí)鐘頻率操作的,這種操作是離散變化的,因此只有一個(gè)離散的時(shí)間量值來(lái)控制汽車(chē)的制動(dòng)系統(tǒng)。對(duì)于這樣的制動(dòng)系統(tǒng),整個(gè)系統(tǒng)就是由連續(xù)系統(tǒng)和離散系統(tǒng)組成的。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 Simulink的主要設(shè)計(jì)目的是建模、分析和實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)。它提供了一個(gè)圖形編輯器,用戶可以利用模塊庫(kù)瀏覽器中的模塊類(lèi)型來(lái)創(chuàng)建動(dòng)態(tài)系統(tǒng)模型。 Simulink中的模塊庫(kù)表示的是基本動(dòng)態(tài)系統(tǒng),這些模塊稱(chēng)為內(nèi)嵌模塊。用戶也可以創(chuàng)建自己的模塊類(lèi)型,即用戶模塊。此外, Simulink有一個(gè)開(kāi)放式的用戶接口,可以與其他方提供的工具交互使用。例如,它可以與 MathWorks公司提供的產(chǎn)品和第三方產(chǎn)品協(xié)同工作,從而簡(jiǎn)化了動(dòng)態(tài)系統(tǒng)的建模工作。圖 43說(shuō)明了 MathWorks公司提供的一些工具,這些工具可以幫助用戶設(shè)計(jì)、分析和實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 S i m u l i n kS t a t e f l o w , S i m M e c h a n i c s , B l o c k s e t s以 及 其 他 的 建 模 和 仿 真 工 具R e a l T i m e S y s t e m “ T a r g e t ”M a t h W o r k s 公 司 提 供 的 幾 個(gè) 目 標(biāo) ,或 者 用 戶 自 己 創(chuàng) 建 的 目 標(biāo)M A T L A B 和T o o l b o x e s設(shè) 計(jì) 和 分 析R e a l T i m e W o r k s h o p以 及 其 他 的 代 碼 生 成 和 實(shí) 時(shí) 工 具實(shí) 時(shí) 工 作 間 技 術(shù) 可 以用 來(lái) 執(zhí) 行 快 速 仿 真在 目 標(biāo) 和 作 為 監(jiān) 視 和調(diào) 整 參 數(shù) 的 S i m u l i n k 之間 的 外 部 模 式 通 信圖 43 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 Simulink提供了豐富的動(dòng)態(tài)系統(tǒng)建模功能,這些功能可以由某些特定的組件進(jìn)行擴(kuò)展,如 Stateflow用于事件驅(qū)動(dòng)系統(tǒng),SimMechanics用于建模物理系統(tǒng),許多模塊庫(kù)如 DSP Blockset用于信號(hào)處理領(lǐng)域。如果用戶建模的系統(tǒng)已經(jīng)超過(guò)了仿真環(huán)境的配置,那么用戶可以用實(shí)時(shí)工作區(qū) (RealTime Workshop)和相關(guān)的組件為模型方塊圖自動(dòng)生成更優(yōu)化的代碼,然后用 MathWorks提供的實(shí)時(shí)目標(biāo)設(shè)計(jì)組件執(zhí)行系統(tǒng)模型。此外,許多目標(biāo)都支持Simulink環(huán)境中的監(jiān)視和參數(shù)調(diào)整功能,從而可以查看實(shí)時(shí)系統(tǒng)中的信號(hào)并改變系統(tǒng)參數(shù)。正因?yàn)槿绱耍谡麄€(gè) Simulink模型設(shè)計(jì)的任何時(shí)候,用戶都可以利用 MATLAB功能和許多工具箱來(lái)分析仿真或?qū)崟r(shí)查看運(yùn)行結(jié)果,或改進(jìn)模型設(shè)計(jì)。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 動(dòng)態(tài)系統(tǒng)數(shù)學(xué)模型分類(lèi) 在動(dòng)態(tài)系統(tǒng)的分析和設(shè)計(jì)中,有四種常用的數(shù)學(xué)模型類(lèi)型:常微分方程 (ODEs)、差分方程、代數(shù)方程和混合方程。 常微分方程 常微分方程由兩個(gè)方程組成:輸出方程和微分方程,如圖 44所示。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 系 統(tǒng)狀 態(tài) : xc( t ) , 參 數(shù) : P輸 入 輸 出uc( t ) yc( t )輸 出 : yc( t ) = fc( t , xc( t ) , uc( t ) , P )微 分 : xc( t ) = g ( t , xc( t ) , uc( t ) , P )時(shí) 間 : t圖 44 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 輸出方程在給定的時(shí)間,以系統(tǒng)的輸入、狀態(tài)、參數(shù)和時(shí)間為函數(shù)計(jì)算系統(tǒng)的當(dāng)前輸出;微分方程是常微分方程,以系統(tǒng)的輸入、狀態(tài)、參數(shù)和時(shí)間為函數(shù)計(jì)算在當(dāng)前時(shí)刻狀態(tài)的導(dǎo)數(shù)。這種模型類(lèi)型適用于跟蹤響應(yīng)連續(xù)時(shí)間函數(shù)的系統(tǒng),這樣的連續(xù)時(shí)間系統(tǒng)通常為物理系統(tǒng),即機(jī)械系統(tǒng)、熱力學(xué)系統(tǒng)或電子系統(tǒng)。對(duì)于簡(jiǎn)單系統(tǒng),利用輸出方程和微分方程就可以求取輸出響應(yīng) y(t),但是對(duì)于大多數(shù)復(fù)雜的實(shí)際系統(tǒng),系統(tǒng)的響應(yīng)是通過(guò)對(duì)狀態(tài)的數(shù)值積分來(lái)得到的。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 Simulink利用 Integrator模塊實(shí)現(xiàn)微分方程中的積分算法,積分器是構(gòu)成動(dòng)態(tài)系統(tǒng)的基本模塊。在建立系統(tǒng)模型時(shí),用戶需要首先確定積分器的數(shù)目,一個(gè)積分器就表示一階微分,通過(guò)積分把導(dǎo)數(shù)量轉(zhuǎn)變?yōu)闋顟B(tài)量從而確定系統(tǒng)的狀態(tài)。例如,如果方程中包含 y的二階導(dǎo)數(shù),則需要兩個(gè)積分器,一個(gè)積分器輸入 d2y/dt2,并輸出 dy/dt;另一個(gè)積分器輸入 dy/dt,并輸出 y。實(shí)現(xiàn)的狀態(tài)量之間的關(guān)系如圖 45所示。 在每個(gè)積分塊中給出了各變量的初始條件,并利用原始方程建立各個(gè)狀態(tài)之間的代數(shù)關(guān)系。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 y?? y?y??圖 45 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 這里舉一個(gè) ODE方程的例子,如以 65公里 /小時(shí)在公路上奔馳的汽車(chē)。我們的直覺(jué)告訴我們,汽車(chē)的當(dāng)前位置 (也就是汽車(chē)?yán)锍瘫砩献x取的數(shù) )與汽車(chē)當(dāng)前的速度有關(guān)。假設(shè)1:00時(shí),汽車(chē)?yán)锍瘫淼淖x數(shù)是 1000公里,那么在 3:00時(shí)里程表的讀數(shù)就會(huì)是 1130公里,然后用 1130減去 1000再除以時(shí)間差 (3:001:00?=?2小時(shí) ),得到 65,即平均速度。這樣的計(jì)算可能會(huì)隨著時(shí)間范圍的縮小而更加精確,當(dāng)時(shí)間趨近于 0時(shí),我們得到相對(duì)于時(shí)間的位置導(dǎo)數(shù),也就是即時(shí)速度 (汽車(chē)速度表中讀取的數(shù) )。從數(shù)學(xué)的角度講,汽車(chē)的位置可以表示為狀態(tài) xc(t),則速度表示為,它是位置對(duì)時(shí)間的導(dǎo)數(shù)。假設(shè)汽車(chē)一直勻速行駛,那么這個(gè)行駛系統(tǒng)的 ODE方程為 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 ?????65)()()(txtxty? 假設(shè)初始條件為 x(0) = 1000,建立的 Simulink方塊圖模型如圖 46(a)所示,運(yùn)行模型后的仿真結(jié)果如圖 46(b)所示。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 (a) (b) 圖 46 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 對(duì)這個(gè)簡(jiǎn)單系統(tǒng)來(lái)說(shuō),我們可以求取輸出響應(yīng)。但是,大多數(shù)系統(tǒng)是無(wú)法求解的,即使有解,要解算出結(jié)果將非常困難。例如,對(duì)上面這個(gè)汽車(chē)運(yùn)動(dòng)系統(tǒng),我們忽略了許多實(shí)際系統(tǒng)中的因素,如空氣阻力、滾動(dòng)摩擦、重力、發(fā)動(dòng)機(jī)控制系統(tǒng)、航跡控制系統(tǒng)等。 Simulink模型可能是線性模型也可能是非線性模型。大多數(shù)真實(shí)世界中的系統(tǒng)都是非線性的,線性模型通常是在滿足某些規(guī)則下的非線性系統(tǒng)的近似。線性模型的好處就在于在分析和設(shè)計(jì)線性系統(tǒng)時(shí)存在著大量的數(shù)學(xué)描述形式。Simulink處理線性模型和非線性模型的能力有助于解決線性理論和實(shí)際的非線性系統(tǒng)之間存在的差異。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 差分方程 另一種描述系統(tǒng)的數(shù)學(xué)模型是差分方程。差分方程由兩個(gè)方程組成:輸出方程和更新方程,如圖 47所示。 系 統(tǒng)狀 態(tài) : xd( tk) , 參 數(shù) : P輸 入 輸 出ud( tk) yd( tk)輸 出 : yd( tk) = fd( t , xd( tk) , ud( tk) , P )更 新 : xd( tk+1) = h ( t , xd( tk) , ud( tk) , P )時(shí) 間 : tk圖 47 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 圖 47輸出方程用系統(tǒng)的輸入、先前時(shí)刻的狀態(tài)、參數(shù)和時(shí)間的函數(shù)計(jì)算給定時(shí)刻的系統(tǒng)輸出響應(yīng);更新方程是差分方程,它用系統(tǒng)的輸入、先前時(shí)刻的狀態(tài)、參數(shù)和時(shí)間的函數(shù)計(jì)算當(dāng)前時(shí)刻的系統(tǒng)狀態(tài)。這種模型類(lèi)型適用于在離散時(shí)刻跟蹤系統(tǒng)響應(yīng)的系統(tǒng)。這種離散時(shí)間系統(tǒng)常常用來(lái)描述離散控制系統(tǒng)和數(shù)字信號(hào)處理系統(tǒng)。對(duì)于簡(jiǎn)單系統(tǒng),使用輸出方程和更新方程就可以獲得系統(tǒng)的輸出響應(yīng),但對(duì)于真實(shí)世界中大多數(shù)的復(fù)雜系統(tǒng),系統(tǒng)響應(yīng)是通過(guò)迭代進(jìn)行求解的,在一段時(shí)間內(nèi),系統(tǒng)會(huì)反復(fù)利用輸出方程和更新方程求解系統(tǒng)響應(yīng)。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 目前,大多數(shù)的離散時(shí)間系統(tǒng)都是人工動(dòng)態(tài)系統(tǒng),這是由于數(shù)字計(jì)算機(jī)、微型控制器和定制硅 (FPGA,即特定用途集成電路 )的發(fā)展帶動(dòng)了離散時(shí)間控制系統(tǒng)和信號(hào)處理系統(tǒng)的發(fā)展。例如,從控制房屋溫度、汽車(chē)駕駛、飛機(jī)航行的控制系統(tǒng)到控制兒童玩具的控制系統(tǒng)等,都是用離散時(shí)間控制理論設(shè)計(jì)的,而且,在信號(hào)處理領(lǐng)域,信號(hào)處理理論也得到了很大發(fā)展,如改進(jìn)的通信系統(tǒng)、音效質(zhì)量等。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 在設(shè)計(jì)離散時(shí)間系統(tǒng)時(shí), Simulink提供了豐富的建模模塊,尤其是 Simulink還支持多速率模型,也就是帶有離散時(shí)間組件的系統(tǒng)模型可以有不同的采樣速率。當(dāng)在多任務(wù)環(huán)境下執(zhí)行多速率模型時(shí),這是很重要的方面,它保證了系統(tǒng)的完整性,因?yàn)樵诙嗳蝿?wù)模型中,每一任務(wù)是以不同的速率執(zhí)行的。例如,如果信號(hào)要在一個(gè)任務(wù)中重新計(jì)算 (更新 ),而在另一任務(wù)中讀取這個(gè)信號(hào),那么必須確保這個(gè)系統(tǒng)不處于紊亂狀況下,否則,第二個(gè)任務(wù)讀取的就是受損的數(shù)據(jù)。 第 4章 Simulink動(dòng)態(tài)系統(tǒng)建模 典型的多任務(wù)編程環(huán)境 (如 C/C++/Java)利用“ notion”(類(lèi)似 20世紀(jì) 60年代 Dijkstra發(fā)明的信號(hào)裝置 )來(lái)限制對(duì)共享資源(如存儲(chǔ)位置 )的訪問(wèn)。對(duì)編程人員來(lái)說(shuō),在正確使用操作系統(tǒng)方面,最困難的莫過(guò)于合理協(xié)調(diào)多任務(wù)環(huán)境中的各個(gè)活動(dòng)任務(wù),許多系統(tǒng)就是因?yàn)椴捎昧舜罅康拇a復(fù)用和檢測(cè)而導(dǎo)致失敗。例如, 1997年 7月發(fā)射的火星探測(cè)器就是由于系統(tǒng)任