simulink動(dòng)態(tài)系統(tǒng)建模仿真實(shí)用教案_第1頁(yè)
simulink動(dòng)態(tài)系統(tǒng)建模仿真實(shí)用教案_第2頁(yè)
simulink動(dòng)態(tài)系統(tǒng)建模仿真實(shí)用教案_第3頁(yè)
simulink動(dòng)態(tài)系統(tǒng)建模仿真實(shí)用教案_第4頁(yè)
simulink動(dòng)態(tài)系統(tǒng)建模仿真實(shí)用教案_第5頁(yè)
已閱讀5頁(yè),還剩224頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

4、確保更新模塊時(shí)連接到模塊直接饋通端口的輸入(shr)是有效的。不帶有直接饋通輸入(shr)的模塊可以以任意的順序進(jìn)行更新,但必須是在它們驅(qū)動(dòng)任一帶有直接饋通輸入(shr)的模塊之前進(jìn)行更新。按照這個(gè)規(guī)則,把所有不帶有直接饋通端口的模塊以任意順序放在更新列表的前端,這樣Simulink在排序過(guò)程中就可以忽略這些模塊。 第4頁(yè)/共228頁(yè)第四頁(yè),共229頁(yè)。按照上述規(guī)則(guz)排列的更新列表中,不帶有直接饋通端口的模塊以任意順序排列在列表的最前面,接下來(lái)是帶有直接饋通端口的模塊,這些模塊按照它們?yōu)樗?qū)動(dòng)模塊提供有效輸入的順序排列。在Simulink的模塊排序過(guò)程中,Simulink會(huì)檢查并標(biāo)記代

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

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

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

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

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

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

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

12、ulink的仿真循環(huán)過(guò)程如圖6-1所示。 第12頁(yè)/共228頁(yè)第十二頁(yè),共229頁(yè)。圖6-1 第13頁(yè)/共228頁(yè)第十三頁(yè),共229頁(yè)。注意:在仿真過(guò)程中,Simulink在每個(gè)時(shí)間步內(nèi)更新一次模型中各個(gè)模塊的狀態(tài)和輸出,因此,模型中模塊的更新順序?qū)τ诜抡娼Y(jié)果的有效性是非常重要的。而且,如果在當(dāng)前時(shí)間步模塊的輸出是其輸入的函數(shù),那么這個(gè)模塊必須在驅(qū)動(dòng)其輸入的模塊之后進(jìn)行更新,否則模塊的輸出就是無(wú)效的。模塊存儲(chǔ)在模型文件中的順序并不一定就是仿真過(guò)程中模塊的更新順序,因此,Simulink在模型初始化階段就將所有的模塊按照(nzho)正確的順序進(jìn)行了排列。 第14頁(yè)/共228頁(yè)第十四頁(yè),共229頁(yè)

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

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

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

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

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

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

19、nit Delay模塊是建立離散系統(tǒng)的基礎(chǔ),因?yàn)樗o出了狀態(tài),用來(lái)計(jì)算系統(tǒng)的輸出。 第23頁(yè)/共228頁(yè)第二十三頁(yè),共229頁(yè)。要實(shí)現(xiàn)上面的差分方程,第一步就是確定方程中所需要的Unit Delay模塊的數(shù)目。這里有兩點(diǎn)是必需的:一是y(n-1)來(lái)自于y(n);二是u(n-1)來(lái)自于u(n)。如果方程中還包含y(n-2),那么這個(gè)值應(yīng)當(dāng)通過(guò)y(n-1)經(jīng)由另外一個(gè)Unit Delay模塊傳遞,然后,以單位延遲模塊開(kāi)頭,把它的輸入、輸出分別標(biāo)志(biozh)為(y(n),y(n-1),u(n),u(n-1),并建立代數(shù)關(guān)系。 第24頁(yè)/共228頁(yè)第二十四頁(yè),共229頁(yè)。圖6-3 第25頁(yè)/共22

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

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

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

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

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

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

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

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

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

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

30、使用當(dāng)前的狀態(tài)值計(jì)算當(dāng)前的輸出值,與先前(xinqin)的狀態(tài)值沒(méi)有關(guān)系。連續(xù)系統(tǒng) ),(),()(cttutxftx 導(dǎo)數(shù)方程 ),(),()(ttutxgty 輸出方程 在連續(xù)系統(tǒng)中,狀態(tài)的表達(dá)式包含狀態(tài)的一階導(dǎo)數(shù),在大多數(shù)情況(qngkung)下,x是一個(gè)向量,它包含若干個(gè)狀態(tài)。第73頁(yè)/共228頁(yè)第七十三頁(yè),共229頁(yè)。在Simulink中,實(shí)現(xiàn)微分方程的第一步是確定模型中所需要的Integrator模塊的數(shù)目,這一點(diǎn)非常重要,因?yàn)榉e分器模塊是建立微分方程的基礎(chǔ)(jch),一個(gè)積分器就表示一階微分。例如,如果方程中包含y的二階導(dǎo)數(shù),則需要兩個(gè)積分器:一個(gè)輸入d2y/dt2,并且輸出dy

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

32、ulink模型指定了模型連續(xù)狀態(tài)的時(shí)間導(dǎo)數(shù),但并沒(méi)有給出狀態(tài)自身的值。這樣(zhyng),當(dāng)仿真一個(gè)系統(tǒng)時(shí),Simulink求解器必須對(duì)狀態(tài)的微分值進(jìn)行多次積分以計(jì)算連續(xù)狀態(tài)值,仿真過(guò)程中的積分是近似的,不同的連續(xù)求解器使用不同的方法近似積分。當(dāng)然,目前有各種各樣的通用數(shù)值積分算法,每種算法對(duì)特定的應(yīng)用也都各有優(yōu)勢(shì)。Simulink使用的是數(shù)值積分算法中最穩(wěn)定、最高效且精度最好的ODE(常微分方程,Ordinary Differential Equation)算法。用戶可以在模型中直接指定這些算法求解器,也可以在運(yùn)行仿真時(shí)指定求解器。 第77頁(yè)/共228頁(yè)第七十七頁(yè),共229頁(yè)。有些Simul

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

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

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

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

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

38、頁(yè),共229頁(yè)。這里,x是狀態(tài)向量,u是輸入向量,y是輸出向量。方程中的矩陣系數(shù)必須滿足如下(rxi)條件:A必須是nn矩陣,n是狀態(tài)個(gè)數(shù);B必須是nm矩陣,m是輸入個(gè)數(shù);C必須是rn矩陣,r是輸出個(gè)數(shù);D必須是rm矩陣。 第86頁(yè)/共228頁(yè)第八十六頁(yè),共229頁(yè)。State-Space模塊接受一個(gè)輸入,產(chǎn)生一個(gè)輸出(shch),輸入向量的寬度由B矩陣和D矩陣的列數(shù)決定,輸出(shch)向量的寬度由C矩陣和D矩陣的行數(shù)決定。需要注意的是,這樣的表達(dá)式并不是唯一的,但總是可能的,這是表達(dá)線性系統(tǒng)時(shí)最常用的方法,因?yàn)樗軌蛟诘玫捷斎牒洼敵?shch)的同時(shí)得到狀態(tài)。在推導(dǎo)出的彈簧質(zhì)點(diǎn)阻尼系統(tǒng)的表

39、達(dá)式中,位置和速度為系統(tǒng)狀態(tài),加速度不是狀態(tài),因?yàn)樗膶?dǎo)數(shù)沒(méi)有包含在表達(dá)式中。一般,每個(gè)表達(dá)式中的狀態(tài)數(shù)量是相同的,但是每個(gè)狀態(tài)不一定與一個(gè)物理量相對(duì)應(yīng)。彈簧質(zhì)點(diǎn)阻尼系統(tǒng)的狀態(tài)空間表達(dá)式為:第87頁(yè)/共228頁(yè)第八十七頁(yè),共229頁(yè)。1222121xmkxmfmuxxxxxxxuxxyumxxmfmkxx0011010212121第88頁(yè)/共228頁(yè)第八十八頁(yè),共229頁(yè)。3零極點(diǎn)表達(dá)式零極點(diǎn)表達(dá)式與傳遞函數(shù)相同,Continuous模塊庫(kù)中的Zero-Pole模塊實(shí)現(xiàn)零極點(diǎn)形式的表達(dá)式。對(duì)于(duy)MATLAB中的單輸入單輸出系統(tǒng),零極點(diǎn)表達(dá)式的形式為 )()2()1 ()()2()1 (

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

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

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

43、這個(gè)影響可以表示為 0if00if)(xxkxxb第94頁(yè)/共228頁(yè)第九十四頁(yè),共229頁(yè)。設(shè)m為人的質(zhì)量(zhling),g是重力加速度,a1、a2是空氣阻尼系數(shù),則系統(tǒng)方程可以表示為 xxaxaxbmxm |)(g21在MATLAB中建立這個(gè)方程的Simulink模型,這里需要使用兩個(gè)積分器,因?yàn)榉匠讨邪膶?dǎo)數(shù)的最高階數(shù)為2,一旦x及其導(dǎo)數(shù)模型建立完畢,則可以(ky)使用一個(gè)增益模塊(Gain模塊)表示空氣阻力比例系數(shù),并使用Function模塊表示空氣阻力中的非線性部分。因?yàn)閎(x)是通過(guò)門檻為0的x條件式確定的,所以這里使用一個(gè)Switch模塊來(lái)實(shí)現(xiàn)判斷條件。最終的系統(tǒng)Simuli

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論