simulink動態系統建模仿真實用教案_第1頁
simulink動態系統建模仿真實用教案_第2頁
simulink動態系統建模仿真實用教案_第3頁
simulink動態系統建模仿真實用教案_第4頁
simulink動態系統建模仿真實用教案_第5頁
已閱讀5頁,還剩224頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、6.1 Simulink動態系統仿真過程 6.1.1 模型編譯階段在模型編譯階段,首先,Simulink調用模型編譯器,由模型編譯器把模型轉換為可執行形式,這個轉換過程稱為編譯。在這個階段,Simulink編譯器執行下列工作:(1) 求取模型中模塊的參數(cnsh)表達式,用以確定表達式的值。(2) 確定模型中未明確指定的信號屬性,如信號名稱、數據類型、數值類型和信號維數,并檢查每個模塊輸入端可允許的輸入信號。Simulink利用屬性傳遞過程確定用戶未明確指定的屬性,這個過程繼承模塊源信號的屬性,并將這個屬性傳遞到信號所驅動模塊的輸入端。 第1頁/共228頁第一頁,共229頁。(3) 執行模塊

2、優化。(4) 用原子子系統所包含的模塊替代原子子系統,并平鋪模型層次。(5) 將模塊進行排序(pi x),并排列仿真過程中模塊的執行順序,當模型進入仿真執行階段時,將按照此時的排列順序執行模塊。(6) 對于用戶未明確指定采樣時間的模塊,確定所有這些模塊的采樣時間。在仿真過程中,Simulink會在每個時間步內更新一次模型中模塊的狀態和輸出,模塊的更新順序是根據模塊類型決定的,Simulink按照一定的方式對模塊進行排序(pi x)。 第2頁/共228頁第二頁,共229頁。1直接饋通端口為了創建Simulink模型仿真過程中有效的模塊更新順序,Simulink依據模塊的輸出與輸入的關系將模塊的輸

3、入端口進行排序。對于那些輸入當前值直接確定模塊某一輸出端口當前值的輸入端口,我們稱其為直接饋通端口。換言之,也就是模塊的輸出方程中包含(bohn)輸入,它的輸出直接依賴于輸入。例如,Gain模塊、Product模塊和Sum模塊就是具有直接饋通端口的模塊。具有非直接饋通輸入的模塊包括Integrator模塊(它的輸出完全是其狀態的函數)、Constant模塊(沒有輸入)以及Memory模塊(它的輸出與前一時刻的輸入有關)。 第3頁/共228頁第三頁,共229頁。2模塊排序準則Simulink利用下面的基本更新規則對模塊進行排序:在驅動任一模塊的直接饋通端口之前必須對每個模塊進行更新。這個規則可以

4、確保更新模塊時連接到模塊直接饋通端口的輸入(shr)是有效的。不帶有直接饋通輸入(shr)的模塊可以以任意的順序進行更新,但必須是在它們驅動任一帶有直接饋通輸入(shr)的模塊之前進行更新。按照這個規則,把所有不帶有直接饋通端口的模塊以任意順序放在更新列表的前端,這樣Simulink在排序過程中就可以忽略這些模塊。 第4頁/共228頁第四頁,共229頁。按照上述規則(guz)排列的更新列表中,不帶有直接饋通端口的模塊以任意順序排列在列表的最前面,接下來是帶有直接饋通端口的模塊,這些模塊按照它們為所驅動模塊提供有效輸入的順序排列。在Simulink的模塊排序過程中,Simulink會檢查并標記代

5、數循環事件,也就是,一個模塊的直接饋通輸出直接或間接地連接到該模塊所對應的直接饋通輸入的信號循環。這樣的循環表面上看是個死循環,因為Simulink需要用直接饋通的輸入值計算其輸出值。但是,我們都知道,代數循環可以表示一組輸入和輸出均未知的聯立代數方程,而且,這些方程在每個時間步上都存在有效解,因此,Simulink假設這些包含直接饋通端口的代數循環表示了一組可求解的代數方程,并在仿真過程中每次更新模塊時解算這些方程。第5頁/共228頁第五頁,共229頁。6.1.2 模型鏈接階段在模型鏈接階段,Simulink會為方塊圖執行過程中的信號、狀態和運行時間等參數分配內存,它也會為每個模塊中存儲運行

6、信息的數據結構分配并初始化內存。對于內嵌模塊,模塊中主要的運行時間數據結構稱為SimBlock,它存儲指向模塊輸入和輸出緩存、狀態、工作向量的指針。在這個階段,Simulink也會創建(chungjin)方法執行列表,這個列表列出了執行模型中模塊方法計算模塊輸出的最有效順序,Simulink使用在模型編譯階段生成的排序列表來構造方法執行列表。用戶也可以指定模塊的更新優先權,Simulink會在低優先權模塊之前執行高優先權模塊的輸出方法。 第6頁/共228頁第六頁,共229頁。6.1.3 仿真循環階段至此,仿真進入執行階段。在這個過程中,Simulink利用模型提供的信息,每隔一段時間計算由仿真

7、起始時間到終止(zhngzh)時間之間的系統狀態和輸出。計算狀態和輸出的這些連續的時間點被稱為時間步(time steps),兩個時間步之間的長度稱為步長(step size),步長的大小取決于用來計算系統連續狀態的算法、系統的基本采樣時間以及系統的連續狀態中是否有不連續因素。仿真循環階段包括兩個子階段:循環初始化階段和循環迭代階段。初始化階段在循環過程中只執行一次;迭代階段在整個仿真過程中的每個時間步內都要重復一次。 第7頁/共228頁第七頁,共229頁。在仿真開始時,Simulink首先確定(qudng)被仿真系統的初始狀態和輸出。在每一步仿真中,Simulink重新計算系統新的輸入值、狀

8、態值和輸出值,并更新模型以反映所計算的值。當仿真結束時,模型反映的是系統輸入、狀態和輸出的最終值,而且,Simulink還提供了數據顯示和記錄模塊,用戶可以在模型中添加這些模塊以顯示和(或)記錄中間的結果數據。 第8頁/共228頁第八頁,共229頁。Simulink在每個仿真時間步中都執行如下操作:(1) 按照模塊的排列順序,更新模型中所有模塊的輸出。Simulink通過調用模型的Outputs方法(fngf)初始化這個階段,模型的Outputs方法(fngf)依次調用模型系統中模塊的Outputs方法(fngf),它依照仿真鏈接階段生成的Outputs方法(fngf)列表中的順序調用模型中每

9、個模塊的Outputs方法(fngf)。系統的Outputs方法(fngf)向每個模塊的Outputs方法(fngf)傳遞下列變量:指向模塊數據結構和模塊SimBlock結構的指針。SimBlock數據結構指向Outputs方法(fngf)用來計算模塊輸出的信息,包括模塊輸入緩存和輸出緩存的位置。 第9頁/共228頁第九頁,共229頁。(2) 按照模塊的排列順序,更新模型中所有模塊的狀態。Simulink調用求解器來計算模型的狀態,模型中使用的求解器類型取決于模型類型,即模型中是否含有狀態、模型中只含有離散狀態、模型中只含有連續狀態,或者模型中含有連續狀態和離散狀態。如果模型中只包含離散狀態,

10、那么(n me)Simulink會調用用戶選擇的離散求解器,求解器計算滿足模型采樣時間的離散步長,然后調用模型的Update方法,模型的Update方法再調用模型系統的Update方法,也就是按照鏈接階段生成的Update方法列表順序調用系統中每個模塊的Update方法。 第10頁/共228頁第十頁,共229頁。如果模型中只包含連續狀態,那么Simulink會調用模型指定的連續求解器,根據求解器的不同,求解器或者依次調用模型的Derivatives方法,或者進入以最小時間步采樣的子循環,在這個子循環中,求解器在較大時間步內以最小步長為采樣間隔反復調用模型的Outputs方法和Derivativ

11、es方法,計算模型的輸出和微分值。模型的Outputs方法和Derivatives方法會依次調用相應的系統(xtng)方法,調用的順序按照鏈接階段生成的Outputs和Derivatives方法執行列表中指定的順序。(3) 檢測模塊連續狀態中的不連續性。是否執行這步操作是根據用戶的設置來決定的,如果用戶在模型中選擇了執行過零檢測,那么Simulink會利用過零檢測來檢測模塊連續狀態中的不連續性。 第11頁/共228頁第十一頁,共229頁。(4) 計算下一個時間步的時間。Simulink在整個仿真過程中的每個時間步內均執行(1)(4)步操作,這個過程會一直(yzh)進行下去,直至仿真結束。Sim

12、ulink的仿真循環過程如圖6-1所示。 第12頁/共228頁第十二頁,共229頁。圖6-1 第13頁/共228頁第十三頁,共229頁。注意:在仿真過程中,Simulink在每個時間步內更新一次模型中各個模塊的狀態和輸出,因此,模型中模塊的更新順序對于仿真結果的有效性是非常重要的。而且,如果在當前時間步模塊的輸出是其輸入的函數,那么這個模塊必須在驅動其輸入的模塊之后進行更新,否則模塊的輸出就是無效的。模塊存儲在模型文件中的順序并不一定就是仿真過程中模塊的更新順序,因此,Simulink在模型初始化階段就將所有的模塊按照(nzho)正確的順序進行了排列。 第14頁/共228頁第十四頁,共229頁

13、。6.1.4 求解器的分類Simulink利用模型提供的信息和求解器在指定的時間段內連續計算動態系統的狀態來仿真動態系統,這個仿真計算系統模型狀態的過程就是模型解算的過程。Simulink通常利用求解器來求解,求解器的主要功能是計算模塊的輸出(shch)。Simulink通過在系統和求解器之間建立對話的方式來對系統進行求解,如圖6-2所示,這里,求解器計算模塊的輸出(shch)以更新模塊的狀態并確定下一個時間步,而系統則把參數、模型方程等信息傳遞給求解器。 第15頁/共228頁第十五頁,共229頁。圖6-2 第16頁/共228頁第十六頁,共229頁。1定步長求解器和變步長求解器Simulink

14、算法分為定步長算法和變步長算法兩類,相應的求解器即為定步長求解器和變步長求解器。定步長求解器:顧名思義,仿真步長是固定不變的,這些算法依據相等(xingdng)的時間間隔來解算模型,時間間隔稱為步長。用戶可以指定步長的大小,或者由算法自己選擇步長。通常,減小步長可以提高仿真結果的精度,但同時也增加了系統仿真所需要的時間。第17頁/共228頁第十七頁,共229頁。變步長求解器:在仿真過程中,步長是變化的。當模型的狀態變化很快時,可減小步長以提高精度(jn d);而當模型的狀態變化很慢時,可增加步長以避免不必要的計算步數。當然,在每一步中計算步長勢必增加了計算負荷,但卻減少了仿真的總步數,而且對于

15、快速變化的模型或具有分段連續狀態的模型,在保證其所要求精度(jn d)的前提下縮短了仿真時間。第18頁/共228頁第十八頁,共229頁。2連續求解器和離散求解器Simulink提供了連續求解器和離散求解器。連續求解器:利用數值積分計算當前時間步上模型的連續狀態,當前時刻的狀態是由在此時刻之前的所有狀態和這些狀態的微分來決定的。對于離散狀態,連續算法依賴模型中的模塊來計算每個時間步上模型的離散狀態值。目前,有很多種數值積分算法可以求解動態系統連續狀態的常微分方程(wi fn fn chn)(ODE),Simulink提供了多種定步長和變步長的連續算法,用戶可以根據自己的實際模型來選擇這些算法。

16、第19頁/共228頁第十九頁,共229頁。離散求解器:主要用來求解純離散模型,這些算法只計算下一步的仿真時刻,而不進行其他的運算。它們并不求解連續狀態值,而且這些算法依賴模型中的模塊來更新模型的離散狀態。Simulink有兩種離散求解器:定步長離散求解器和變步長離散求解器。缺省時,定步長算法選擇一個步長,選擇的步長可使仿真速度足以跟蹤模型中最快速(kui s)變化的模塊;變步長算法可調整仿真步長,以便與模型中離散狀態的實際變化率相一致,這對于多速率模型來說可以避免不必要的仿真步數,并因此縮短仿真時間。 第20頁/共228頁第二十頁,共229頁。注意:用戶可以選擇連續求解器,而不是離散求解器來求

17、取既包含連續狀態,也包含離散狀態的模型,這是因為離散求解器無法處理連續狀態。如果(rgu)用戶為連續模型選擇了離散求解器,那么Simulink會忽略用戶的選擇,而使用連續求解器求解模型。 第21頁/共228頁第二十一頁,共229頁。6.2 離散系統仿真 6.2.1 差分方程的實現離散系統是包含有離散狀態的系統。Simulink可以仿真離散系統,包括組件以不同速率工作的系統(即多速率系統)和由離散組件和連續組件混合組成的系統(即混合系統)。在離散系統中,一個狀態實際上是一個存儲元素,它在一定的周期內保存(bocn)輸入或輸出值,這個周期稱為這個系統的采樣時間。采樣時間是離散系統中的一個最重要特性

18、,在Simulink中的所有離散模塊中都要給出采樣時間,一個離散狀態實際上儲存的就是上一個采樣時刻的信號值。 第22頁/共228頁第二十二頁,共229頁。離散系統通常用差分方程描述,因為系統當前(dngqin)時刻的輸出通常依賴于當前(dngqin)時刻的輸入和過去時刻的輸入和輸出量,例如:) 1(3) 1()()(nynununy在Simulink中,為了實現差分方程,需要一個能夠在時間步上提供y(n-1)和u(n-1)的模塊,Simulink提供了一個Discrete離散模塊庫,如圖6-3所示。用戶可以利用離散模塊庫中的Unit Delay(單位延遲)模塊來實現上述(shngsh)功能。U

19、nit Delay模塊是建立離散系統的基礎,因為它給出了狀態,用來計算系統的輸出。 第23頁/共228頁第二十三頁,共229頁。要實現上面的差分方程,第一步就是確定方程中所需要的Unit Delay模塊的數目。這里有兩點是必需的:一是y(n-1)來自于y(n);二是u(n-1)來自于u(n)。如果方程中還包含y(n-2),那么這個值應當通過y(n-1)經由另外一個Unit Delay模塊傳遞,然后,以單位延遲模塊開頭,把它的輸入、輸出分別標志(biozh)為(y(n),y(n-1),u(n),u(n-1),并建立代數關系。 第24頁/共228頁第二十四頁,共229頁。圖6-3 第25頁/共22

20、8頁第二十五頁,共229頁。接下來需要(xyo)設置初始狀態和采樣時間。Discrete模塊庫中的所有模塊在使用時都應該指定采樣時間,這可以通過模塊對話框中的Sample time參數設置,也可以通過前級提供輸入的模塊明確采樣時間,也就是繼承前級模塊的采樣時間,這種情況下采樣時間應設置為-1。大多數標準的Simulink模塊都可以繼承與模塊輸入相連接模塊的采樣時間,但Continous庫中的模塊和沒有輸入的模塊(如Sources庫中的模塊)是個例外。另外一個有關的參數就是模塊輸出的初始值。 第26頁/共228頁第二十六頁,共229頁。注意:Unit Delay模塊將輸入信號延遲一個采樣時間,如

21、果(rgu)模型中包含多速率轉換,那么在慢快轉換之間必須添加Unit Delay模塊,Unit Delay模塊的采樣速率必須設置為較慢模塊的采樣速率。對于快慢的轉換,應使用Zero-Order Hold模塊。Unit Delay模塊可以接受連續信號,當模塊使用連續采樣時間時,它等同于Simulink中的Memory模塊。第27頁/共228頁第二十七頁,共229頁。6.2.2 指定采樣時間Simulink允許用戶指定任何包含Sample time參數的模塊(m kui)的采樣時間,可以在模塊(m kui)參數對話框中的Sample time文本框內設置采樣時間。用戶既可以將采樣時間指定為常數,也

22、可以用向量的方式Ts,T0表示采樣時間,其中第一個元素表示采樣時間,第二個元素表示偏差值,不同的采樣時間和偏差值都有特定的含意。表6-1概括說明了參數設置的有效值,并說明了Simulink如何對這些參數進行插值以確定模塊(m kui)的采樣時間。 第28頁/共228頁第二十八頁,共229頁。表 6-1 指定采樣時間 采樣時間 用 法 Ts,T0 0TsTsim |T0| t,x,y = sim(multirate,3); stairs(t,y) 生成的結果曲線如圖6-13所示,圖中的藍色曲線為y1,綠色曲線為y2。對于Discrete Transfer Fcn模塊,該模塊有的偏差,因此(ync

23、)直到時刻模塊才有輸出;又由于該模塊傳遞函數的初始條件為0,因此(ync)其輸出y(1)在時刻之前一直為0。 第61頁/共228頁第六十一頁,共229頁。圖6-13 第62頁/共228頁第六十二頁,共229頁。6.2.6 線性離散系統盡管這里提出的方法可以適用于所有的離散系統,但對于一個線性時不變系統,則可以利用Z變換建立系統的傳遞函數,Z變換可以保持系統的線性特性。Discrete模塊庫中提供了建立線性離散系統模型時使用的Discrete Transfer Fcn模塊、Discrete Filter模塊和Discrete Zero-Pole模塊。1離散傳遞函數Discrete Transfe

24、r Fcn模塊主要是控制工程人員以z多項式形式描述(mio sh)離散系統。 Discrete Transfer Fcn模塊可實現如下標準形式的傳遞函數: nnnmnmnnzzzzzzzzHdendendennumnumnum)(den)(num)(110110第63頁/共228頁第六十三頁,共229頁。這里,m+1和n+1分別是分子和分母系數的總和,num和den包含z按降冪排列的分子和分母系數,分子的階次必須大于或等于分母的階次。num可以是一個向量或矩陣,但den必須是一個向量,兩者均為模塊(m kui)對話框中的參數。 第64頁/共228頁第六十四頁,共229頁。2離散濾波器Discr

25、ete Filter模塊實現IIR和FIR濾波器,用戶必須以z-1的降冪排列指定分子和分母系數。Discrete Filter模塊通常是信號處理人員以z-1多項式形式(xngsh)描述數字濾波器,當分子系數向量與分母系數向量等長度時,離散傳遞函數和離散濾波器這兩種方法是完全相同的,即 nnmmzzzzzzzHdendendennumnumnum)(den)(num)(110110111這里,m+1和n+1分別(fnbi)是分子和分母系數的總和,num和den包含z-1按升冪排列的分子和分母系數,分子的階次必須大于或等于分母的階次。 第65頁/共228頁第六十五頁,共229頁。3零極點傳遞函數D

26、iscrete Zero-Pole模塊(m kui)用來實現零極點形式的離散系統,對于單輸入單輸出的系統,傳遞函數的形式如下: )()()()()()()(2121nmPzPzPzZzZzZzKzPzZKzH這里,Z是零點向量,P是極點向量,K是零極點增益。極點的數目(shm)必須大于等于零點數目(shm),即nm,零點和極點可以為復數。 第66頁/共228頁第六十六頁,共229頁。例6-2 離散解調器。離散濾波器的差分方程(fngchng)如下: )2(04. 0) 1(08. 0)(04. 0)2(7 . 0) 1(6 . 1)(nunununynyny利用例4-4中的AM調幅信號作為源信

27、號,將發射信號與離散載波信號相乘(頻率=100 Hz,采樣時間=5 ms),將產生的信號通過(tnggu)離散濾波器,在示波器上顯示發射信號和輸出信號。 第67頁/共228頁第六十七頁,共229頁。解答:將離散濾波器的差分(ch fn)方程轉換為以z-1形式表示的離散濾波器方程:21211117 . 06 . 110 . 008. 004. 0)(den)(num)(zzzzzzzH根據系統要求,選擇的Simulink模型組件如下(rxi):例4-4中的AM調制信號;Sources庫中的Sine Wave模塊;Math Operations庫中的Product模塊;Discrete庫中的Dis

28、crete Filter模塊;Sinks庫中的Scope模塊。 第68頁/共228頁第六十八頁,共229頁。設置Discrete Filter和Sine Wave模塊中的采樣時間為0.005 s,也可以(ky)用Discrete Transfer Function模塊代替Discrete Filter模塊,此時離散濾波器的差分方程可以(ky)轉換為z形式的標準離散傳遞函數。最后的系統模型圖如圖6-14(a)所示。選擇變步長ode45算法,仿真時間為10個單位,仿真后的輸出信號波形如圖6-14(b)所示。 第69頁/共228頁第六十九頁,共229頁。(a) 圖6-14 第70頁/共228頁第七十

29、頁,共229頁。 (b) 圖6-14 第71頁/共228頁第七十一頁,共229頁。6.3 連續系統仿真 6.3.1 微分方程的實現對于大多數的連續系統,其系統方程多是由各階導數組成的微分方程,求解微分方程可以使用不同的積分算法。Simulink把動態系統模型轉變(zhunbin)為“狀態空間”表達式的形式供求解器使用,而求解器則使用一種非常具體的系統表達式求解系統。這個表達式為:離散系統 ),(),() 1(dnnunxfnx更新(gngxn)方程 ),(),()(nnunxgny輸出(shch)方程 第72頁/共228頁第七十二頁,共229頁。更新方程利用狀態前一時刻的值計算當前值,輸出方程

30、使用當前的狀態值計算當前的輸出值,與先前(xinqin)的狀態值沒有關系。連續系統 ),(),()(cttutxftx 導數方程 ),(),()(ttutxgty 輸出方程 在連續系統中,狀態的表達式包含狀態的一階導數,在大多數情況(qngkung)下,x是一個向量,它包含若干個狀態。第73頁/共228頁第七十三頁,共229頁。在Simulink中,實現微分方程的第一步是確定模型中所需要的Integrator模塊的數目,這一點非常重要,因為積分器模塊是建立微分方程的基礎(jch),一個積分器就表示一階微分。例如,如果方程中包含y的二階導數,則需要兩個積分器:一個輸入d2y/dt2,并且輸出dy

31、/dt;第二個輸入dy/dt,并且輸出y。圖6-15表示的是用Simulink中積分器模塊搭建的二階微分,它說明了變量、變量一階導數、變量二階導數之間的關系。 第74頁/共228頁第七十四頁,共229頁。圖6-15 第75頁/共228頁第七十五頁,共229頁。注意:在每個積分器模塊中,應當給出狀態的初始條件。由于求解器處理連續狀態的方式所決定的,不提倡使用導數模塊以相反的方式建立模型方程,即Continuous模塊庫中的Derivative模塊,因而只有當微分方程中包含輸入(shr)的導數時才可使用導數模塊,因為這時的輸入(shr)是已知的。 第76頁/共228頁第七十六頁,共229頁。Sim

32、ulink模型指定了模型連續狀態的時間導數,但并沒有給出狀態自身的值。這樣(zhyng),當仿真一個系統時,Simulink求解器必須對狀態的微分值進行多次積分以計算連續狀態值,仿真過程中的積分是近似的,不同的連續求解器使用不同的方法近似積分。當然,目前有各種各樣的通用數值積分算法,每種算法對特定的應用也都各有優勢。Simulink使用的是數值積分算法中最穩定、最高效且精度最好的ODE(常微分方程,Ordinary Differential Equation)算法。用戶可以在模型中直接指定這些算法求解器,也可以在運行仿真時指定求解器。 第77頁/共228頁第七十七頁,共229頁。有些Simul

33、ink中的連續(linx)求解器將仿真時間區域細分為主時間步和最小時間步,最小時間步是由主時間步再細分而成的。仿真算法在每個主時間步上生成結果,并在最小時間步上應用這些結果以改善主時間步的結果精度。 第78頁/共228頁第七十八頁,共229頁。6.3.2 線性連續系統嚴格說來,一個具體(jt)的物理系統通常都是非線性系統,而且是以分布參數的形式存在的,但是由這樣的非線性系統建立的數學模型,在需要求解非線性方程和偏微分方程時,是非常困難的。因此,在誤差允許的范圍內,可以將非線性模型線性化,或者直接用線性集總參數模型描述物理系統。Simulink中的Continuous模塊庫提供了適用于建立線性連

34、續系統的模塊,包括積分器模塊、傳遞函數模塊、狀態空間模塊和零-極點模塊等,這些模塊為用戶以不同形式建立線性連續系統模型提供了方便,如圖6-16所示。 第79頁/共228頁第七十九頁,共229頁。圖6-16 第80頁/共228頁第八十頁,共229頁。1傳遞函數表達式傳遞函數僅適用于單輸入單輸出的線性定常系統,是線性系統的時域表達式,初始條件為零。如果連續系統是線性時不變系統,則可以考慮將表達式進一步簡化。對微分方程(wi fn fn chn)(假定初始狀態為0)使用拉普拉斯變換推導出輸入/輸出關系,從而得出系統的傳遞函數表達式,拉普拉斯變換保持了模型的線性關系。以圖6-17中的彈簧質量阻尼器系統

35、為例,設k為彈簧的彈性系數,f為阻尼系數,試建立輸入為外力u(t),輸出為位移y(t)的系統方程。 第81頁/共228頁第八十一頁,共229頁。圖6-17 第82頁/共228頁第八十二頁,共229頁。根據牛頓定律可寫出系統的動態(dngti)方程如下: kytyfutymdddd22利用拉普拉斯變換,彈簧質量阻尼器微分方程可以轉化(zhunhu)為傳遞函數形式: kfsmssYsU21)()(用戶可以利用Continuous模塊庫中的Transfer Fcn模塊表示傳遞函數。Transfer Fcn模塊實現(shxin)的是如下形式的傳遞函數: )(den)2(den) 1 (den)(num

36、)2(num) 1 (num)()()(2121mssnsssusysHmmnn第83頁/共228頁第八十三頁,共229頁。這里,n和m分別是分子和分母的系數(xsh)數目,num和den參數包含著s按降冪排列的分子和分母系數(xsh),num可以是向量或矩陣,den則必須是向量。這兩個參數的數值均在Transfer Fcn模塊對話框內指定,分母的階數必須大于或等于分子的階數,即mn。Transfer Fcn模塊的初始條件被重置為0。如果需要指定初始條件,則可以用tf2ss命令將模型傳遞函數轉換為狀態空間形式,然后使用State-Space模塊。tf2ss命令為系統提供了狀態空間表達式中的A、

37、B、C和D矩陣。 第84頁/共228頁第八十四頁,共229頁。2狀態空間表達式狀態空間表達式不僅適用于單輸入單輸出系統,也適用于多輸入多輸出系統。這些(zhxi)系統可以是線性的或非線性的,也可以是定常的或時變的,它是系統的時域表示,允許非零值的初始條件。狀態空間表達式由狀態方程和輸出方程組成。狀態方程是一個一階微分方程組,它描述系統輸入與系統內部狀態變化之間的關系,即描述系統的內部行為;輸出方程是一個代數方程,它描述系統狀態和輸出的關系,即系統的外部行為。Continuous模塊庫中的State-Space模塊實現的是如下形式的狀態空間方程: DuCxyBuAxx第85頁/共228頁第八十五

38、頁,共229頁。這里,x是狀態向量,u是輸入向量,y是輸出向量。方程中的矩陣系數必須滿足如下(rxi)條件:A必須是nn矩陣,n是狀態個數;B必須是nm矩陣,m是輸入個數;C必須是rn矩陣,r是輸出個數;D必須是rm矩陣。 第86頁/共228頁第八十六頁,共229頁。State-Space模塊接受一個輸入,產生一個輸出(shch),輸入向量的寬度由B矩陣和D矩陣的列數決定,輸出(shch)向量的寬度由C矩陣和D矩陣的行數決定。需要注意的是,這樣的表達式并不是唯一的,但總是可能的,這是表達線性系統時最常用的方法,因為它能夠在得到輸入和輸出(shch)的同時得到狀態。在推導出的彈簧質點阻尼系統的表

39、達式中,位置和速度為系統狀態,加速度不是狀態,因為它的導數沒有包含在表達式中。一般,每個表達式中的狀態數量是相同的,但是每個狀態不一定與一個物理量相對應。彈簧質點阻尼系統的狀態空間表達式為:第87頁/共228頁第八十七頁,共229頁。1222121xmkxmfmuxxxxxxxuxxyumxxmfmkxx0011010212121第88頁/共228頁第八十八頁,共229頁。3零極點表達式零極點表達式與傳遞函數相同,Continuous模塊庫中的Zero-Pole模塊實現零極點形式的表達式。對于(duy)MATLAB中的單輸入單輸出系統,零極點表達式的形式為 )()2()1 ()()2()1 (

40、)()()(nPsPsPsmZsZsZsKsPsZKsH這里,Z表示零點(ln din)向量,P表示極點向量,K是增益。Z可以是向量或矩陣,P則必須是向量,增益K是標量或向量,它的長度等于向量Z的行數。模型方程中的極點數目必須大于或等于零點(ln din)數目。Zero-Pole模塊的輸入和輸出寬度等于零點(ln din)矩陣的行數。第89頁/共228頁第八十九頁,共229頁。對于一個特定(tdng)的動態系統,無論是使用積分器模塊、傳遞函數、狀態空間或零極點表達式,在給定相同輸入和相同初始條件下,系統的輸出響應應該是一致的。以下面的微分方程為例: uytyty3dd4dd22系統(xtng)

41、的傳遞函數形式為 341)(2sssH第90頁/共228頁第九十頁,共229頁。系統(xtng)的零極點表達式為 ) 1)(3(1)(sssHuxxyuxxx0100101342121系統的狀態(zhungti)空間表達式為 1212431100010 xxuxxyux第91頁/共228頁第九十一頁,共229頁。依據上述表達式建立的系統模型如圖6-18(a)所示。模型中還使用了控制系統工具箱中的LTI System模塊,該模塊可以用來描述連續和離散(lsn)LTI系統,可以在LTI system variable文本框內輸入傳遞函數、狀態空間和零-極點-增益形式的系統表達式。這里給出的是系統傳

42、遞函數表達式tf (1,1 4 3)。運行仿真,在示波器內觀察輸出波形(圖6-18(b),可以看到,在初始條件為零的情況下,系統的輸出響應曲線是一致的。 第92頁/共228頁第九十二頁,共229頁。圖6-18 第93頁/共228頁第九十三頁,共229頁。例6-3 蹦極跳系統。想象一下,當你系著彈力繩從橋上跳下來時,會發生什么?這里,我們以蹦極跳作為一個連續系統的例子。按照物理規律,自由下落的物體滿足牛頓運動定律:F = ma。在這個系統中,假設繩子的彈性系數為k,它的拉伸影響系統的動力響應。如果定義人站在橋上時繩索下端的(dund)初始位置為0位置,x為拉伸位置,那么用b(x)表示繩子的張力,

43、這個影響可以表示為 0if00if)(xxkxxb第94頁/共228頁第九十四頁,共229頁。設m為人的質量(zhling),g是重力加速度,a1、a2是空氣阻尼系數,則系統方程可以表示為 xxaxaxbmxm |)(g21在MATLAB中建立這個方程的Simulink模型,這里需要使用兩個積分器,因為方程中包含的導數的最高階數為2,一旦x及其導數模型建立完畢,則可以(ky)使用一個增益模塊(Gain模塊)表示空氣阻力比例系數,并使用Function模塊表示空氣阻力中的非線性部分。因為b(x)是通過門檻為0的x條件式確定的,所以這里使用一個Switch模塊來實現判斷條件。最終的系統Simuli

44、nk模型方塊圖如圖6-19(a)所示。 第95頁/共228頁第九十五頁,共229頁。 (a) 圖6-19 第96頁/共228頁第九十六頁,共229頁。 (b) 圖6-19 第97頁/共228頁第九十七頁,共229頁。設起始位置為繩索的長度30米,起始速度為0,這兩個初始值在仿真參數對話框的Workspace I/O頁內設置。未伸長時繩索的端部距地面為50米,因此,為了得到更真實的曲線,將輸出位置減去50。人的質量為90 kg,g為9.8 m/s2,彈性系數k為20,a1和a2均為1。運行這個系統,利用示波器查看(chkn)輸出軌跡,如圖6-19(b)所示,可以看到,跳躍者已經撞到了地上! 第9

45、8頁/共228頁第九十八頁,共229頁。例6-4 汽車動力學系統。建立一個行駛控制系統,實現簡單的汽車動力學系統。使用一個幅值為500、頻率為0.002 Hz的方波作為輸入信號,汽車的質量m = 1000,阻尼因子b = 20。解答(jid):速度動力學方程為 bvvmF第99頁/共228頁第九十九頁,共229頁。根據系統要求,選擇的Simulink模塊組件如下:Sources庫中的Signal Generator模塊,設置Wave form參數為square,amplitude參數為500,frequency參數為,units設置為Hz。Maths Operations庫中的Gain模塊和S

46、um模塊。Continuous庫中的Integrator模塊。Sinks庫中的Scope模塊。 建立的系統模型如圖6-20(a)所示。為了觀察系統的動態行為,可將信號發生器的周期設得足夠(zgu)長,這里設置仿真時間為1000個時間單位,初始條件為零。運行仿真,得到的輸出速度曲線如圖6-20(b)所示。 第100頁/共228頁第一百頁,共229頁。(a) 圖6-20 第101頁/共228頁第一百零一頁,共229頁。(b) 圖6-20 第102頁/共228頁第一百零二頁,共229頁。例6-5 通信信道。實現一個信道的動態模型,輸入為例4-4中的AM調制信號,在模型中加性噪聲(zoshng)干擾,

47、噪聲(zoshng)方差為,信號經過大小為1024的緩沖區延遲,信道的動態方程為 uyyy 391010在示波器中觀察(gunch)輸出波形,并嘗試使用不同的求解器。 第103頁/共228頁第一百零三頁,共229頁。解答:通信信道的動態方程(fngchng)轉換為傳遞函數后的形式如下: 110101)()()(329sssusysH根據系統要求(yoqi),選擇的Simulink模塊組件如下:例4-4中的AM調制信號。Sources模塊庫中的Random Number模塊,將模塊對話框中的Variance方差設為,Sample time設為。Continuous模塊庫中的Transport D

48、elay模塊,設置對話框中Time delay為1,Initial buffer size為1024。Continuous模塊庫中的Transfer Fcn模塊。Sinks模塊庫中的Scope模塊。 第104頁/共228頁第一百零四頁,共229頁。最后建立的系統(xtng)模型如圖6-21(a)所示。在仿真參數對話內選擇一種鋼體求解器,這里選擇變步長ode23s求解器,仿真時間為10個時間單位,得到的輸出波形如圖6-18(b)所示。模型中使用了一個Transport Delay模塊,Transport Delay模塊將輸入信號延遲給定的時間量值,因此可以用它來仿真時間延遲。在仿真開始時,模塊輸

49、出的是初始輸入(Initial input)參數值,直至仿真時間超過時間延遲(Time delay)參數值,在此時刻之后模塊開始生成被延遲的輸入。Time delay必須是非負值。 第105頁/共228頁第一百零五頁,共229頁。Transport Delay模塊在緩存中存儲輸入點和仿真時間,緩存的初始大小由Initial buffer size參數指定,如果存儲的點數超過了緩存的大小,則Transport Delay模塊會分配附加內存,且Simulink會在仿真結束后顯示一個消息,以標識(biozh)所需要的整個緩存數目。由于分配內存會降低仿真速度,因此如果仿真速度很慢,則應該重新定義這個參

50、數值。對于較長的時間延遲和較大的輸入維數,Transport Delay模塊可能會使用相當大的內存。Transport Delay模塊不能夠插值離散信號,但是它在Time delay時刻返回離散值,這個模塊與Discrete模塊庫中的Unit Delay模塊不同,Unit Delay模塊只在采樣點延遲并保持輸出值。 第106頁/共228頁第一百零六頁,共229頁。 (a) 圖6-21 第107頁/共228頁第一百零七頁,共229頁。(b) 圖6-21 第108頁/共228頁第一百零八頁,共229頁。 6.4 混合系統仿真混合的連續離散系統由離散模塊和連續模塊組成,這樣的系統可以使用任何一種求解

51、器進行仿真,盡管某些求解器可能比另一些求解器更高效和精確。變步長求解器充分考慮了仿真步長與離散采樣時間相匹配的問題,所以對于混合系統應該選擇一個變步長求解器。對于大多數混合的連續離散系統,Runge-Kutta(龍格-庫塔)變步長求解器ode45和ode23比其他求解器在效率和精確度上都有優越性。由于離散模塊中的不連續性與采樣保持(boch)相關聯,因此對于混合的連續離散系統不推薦使用ode15s和ode113算法。 第109頁/共228頁第一百零九頁,共229頁。注意:模型窗口中Format菜單的Port/Signal Displays子菜單下的Sample time colors命令可以標

52、識模型中是否存在不同的采樣時間,模型中的模塊和線會根據不同的采樣時間標記為不同的顏色。黑色表示連續信號,紅色表示模型中最快速(kui s)的采樣時間,綠色表示模型中第二快的采樣時間,黃色模塊表示包含有不同采樣時間的信號。如果模型中所有的采樣時間都是相同的,那么所有的模塊和線都會標記為紅色。信號源則用灰色顯示。 第110頁/共228頁第一百一十頁,共229頁。例6-6 多速率混合系統。圖6-22是由連續模塊和離散模塊組成的混合系統。模型中的Unit Delay模塊的采樣時間設置為,Unit Delay1模塊的采樣時間設置為,這樣系統就是由兩種不同的采樣時間組成的混合系統。當選擇Format菜單的

53、Port/Signal Displays子菜單下的Sample time colors命令時,模型中的模塊和信號線將以不同的顏色標識。在對系統進行仿真時,設置仿真時間為5個時間單位,并選擇變步長ode45求解器,在仿真參數對話框的Data Import/Export選項面板(min bn)內設置輸出時間變量為t,輸出變量為y1、y2、y3,運行仿真,并在MATLAB窗口使用繪圖命令繪制輸出結果曲線。 第111頁/共228頁第一百一十一頁,共229頁。 plot (t, y1, *, t, y2, -, t, y3, -) grid on從圖6-22中的輸出曲線可以看到,標為“*”的曲線為積分器

54、模塊的輸出曲線,它是連續信號;標為綠色“-”的曲線為Unit Delay模塊的輸出曲線,采樣時間為;標為紅色(hngs)“-”的曲線為Unit Delay1模塊的輸出曲線,采樣時間為,后兩個信號都是離散數據信號。 第112頁/共228頁第一百一十二頁,共229頁。(a) 圖6-22 第113頁/共228頁第一百一十三頁,共229頁。 (b) 圖6-22 第114頁/共228頁第一百一十四頁,共229頁。例6-7 行駛(xngsh)控制系統。已知設定的速度值和測量的速度值,使用一個離散時間PID控制器建立一個汽車行駛(xngsh)控制器,采樣時間為20毫秒。PID控制器按下列規律工作:“積分環節

55、”:x(n) = x(n-1) + u(n)“微分環節”:d(n) = u(n)-u(n-1)系統初始狀態值為0 第115頁/共228頁第一百一十五頁,共229頁。系統(xtng)PID控制器方程為y(n) = P*u(n)+I*x(n)+D*d(n) 試算:以正弦波信號作為PID控制器輸入,查看當PID控制器中P = 1,I,D=0時的控制器輸出。解答:根據系統要求,選擇的Simulink模型(mxng)組件為:Discrete庫中的Unit Delay模塊,實現差分方程;Math Operations庫中的Gain模塊和Sum模塊;Sources庫中的Sine Wave模塊;Sinks庫中

56、的Scope模塊。 第116頁/共228頁第一百一十六頁,共229頁。這里單獨建立比例、積分和微分環節,然后將它們相加組合成PID控制器;此外(cwi),在所有的Unit Delay模塊中設置采樣時間Sample time等于。最后的系統模型如圖6-23(a)所示。 第117頁/共228頁第一百一十七頁,共229頁。(a) 圖6-23 第118頁/共228頁第一百一十八頁,共229頁。 (b) 圖6-23 第119頁/共228頁第一百一十九頁,共229頁。在仿真參數對話框內設置仿真時間為200個時間單位,選擇變步長ode45算法,運行仿真,打開示波器觀察輸出波形,如圖6-23(b)所示。這個P

57、ID行駛控制器實際上是一個混合系統。如果在這個系統模型(mxng)中選擇Format菜單的Port/Signal Displays子菜單下的Sample time colors命令,則可以清楚地看到系統中不同采樣時間的信號線由不同的顏色表示,但大多數信號是連續的,因為它們是由一個連續系統產生的。用戶可以在Sine Wave輸入模塊后放置一個Zero-Order Hold(零階保持)模塊來將連續信號轉換成離散信號,并設置零階保持器的采樣時間為0.02 s,如圖6-24所示,此時系統中的所有模塊都具有相同的采樣時間。 第120頁/共228頁第一百二十頁,共229頁。圖6-24 第121頁/共228

58、頁第一百二十一頁,共229頁。以例4-2中的模型作為汽車行駛控制系統(xtng)的輸入信號,以圖6-24中的模型作為系統(xtng)的PID控制器,以例6-4中的模型作為汽車動力學系統(xtng),組成反饋控制系統(xtng),整個汽車行駛控制系統(xtng)模型如圖6-25所示。 第122頁/共228頁第一百二十二頁,共229頁。圖6-25 第123頁/共228頁第一百二十三頁,共229頁。設置PID控制器中比例、積分、微分系數(xsh)分別為P=1,I,D=0,仿真系統12個時間單位,則系統的過程曲線如圖6-26(a)所示;若設置P=5,I,D=0,則系統的過程曲線如圖6-26(b)所示。

59、 第124頁/共228頁第一百二十四頁,共229頁。(a) 圖6-26 第125頁/共228頁第一百二十五頁,共229頁。 (b) 圖6-26 第126頁/共228頁第一百二十六頁,共229頁。6.5 模型離散化模型(mxng)離散化是數字控制器設計和硬件循環仿真中的重要環節。Simulink中的離散化操作有選擇地用Simulink中的離散模塊替換等效的連續模塊,利用這個工具,用戶可以把連續模型(mxng)離散化,并將離散化后的模型(mxng)用在只支持離散模塊的Real-Time Workshop Embedded Coder組件中。 第127頁/共228頁第一百二十七頁,共229頁。模型離

60、散化,可以使用戶:標識模型中的連續模塊;將模塊參數由連續改變為離散;對模型中所有(suyu)的連續模塊或所選模塊應用離散設置;創建包含多個離散化成員和源連續模塊的可配置子系統;在不同的離散化成員之間切換,并求取模型仿真結果。需要注意的是,若要使用模型離散化工具,則用戶的MATLAB系統中必須安裝版或更新版本的Control System Toolbox(控制系統工具箱)。 第128頁/共228頁第一百二十八頁,共229頁。6.5.1 模型(mxng)離散化GUI若要對模型(mxng)進行離散化,則需執行下列步驟:(1) 啟動模型(mxng)離散化器;(2) 指定轉換方法;(3) 指定采樣時間;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論