久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

高保真動(dòng)態(tài)嵌入式系統(tǒng)仿真探析


動(dòng)態(tài)系統(tǒng)的工作狀況隨時(shí)間的變化通常可用微分方程來(lái)描述。我們關(guān)注的動(dòng)態(tài)系統(tǒng)是那些包含嵌入式計(jì)算硬件和軟件的系統(tǒng),即所謂的動(dòng)態(tài)嵌入式系統(tǒng)。汽車引擎及導(dǎo)航控制系統(tǒng)、裝配生產(chǎn)線控制設(shè)備、衛(wèi)星控制系統(tǒng)、空對(duì)空導(dǎo)彈制導(dǎo)以及火星探測(cè)器都是動(dòng)態(tài)嵌入式系統(tǒng)的具體應(yīng)用。

盡管動(dòng)態(tài)系統(tǒng)部件的數(shù)學(xué)模型可以幾種不同的方式用來(lái)分析和預(yù)測(cè)系統(tǒng)的工作狀況,但我們關(guān)心的是建立一系列模型,并通過(guò)仿真來(lái)加以實(shí)現(xiàn)。

在動(dòng)態(tài)嵌入式系統(tǒng)的發(fā)展中,仿真的應(yīng)用可以追溯到早先的嵌入式計(jì)算時(shí)代,那時(shí)數(shù)字處理器總是最先用于軍事用途。仿真在產(chǎn)品開(kāi)發(fā)過(guò)程的多個(gè)階段都相當(dāng)有用,從最初的概念探討直到維護(hù)軟件的測(cè)試。仿真可輕易地將現(xiàn)實(shí)中的復(fù)雜非線性包含進(jìn)去,而其它方法(如線性系統(tǒng)分析)通常會(huì)忽略或簡(jiǎn)化這些非線性。

回路硬件HIL(hardware-in-the-loop)仿真是一種特別有效的仿真,它將實(shí)時(shí)仿真裝置連接到嵌入式計(jì)算設(shè)備。HIL仿真測(cè)試可在實(shí)驗(yàn)室環(huán)境下,對(duì)運(yùn)行環(huán)境中嵌入式系統(tǒng)的重要部分進(jìn)行全面、重復(fù)性的測(cè)試。與傳統(tǒng)測(cè)試方法相比,這種方法的特點(diǎn)是能以較低的成本獲得經(jīng)過(guò)全面測(cè)試的產(chǎn)品。

為了對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行仿真,必須首先構(gòu)建系統(tǒng)的數(shù)學(xué)模型,使其能以適當(dāng)?shù)木让枋鱿到y(tǒng)部件及其與周圍環(huán)境間的交互作用,然后再由該模型及其它類似積分算法的單元來(lái)構(gòu)造系統(tǒng)的仿真。仿真中所用的模型必須相互兼容,以便信號(hào)能在具備適當(dāng)單位和時(shí)序的模型之間自由流動(dòng)。

一個(gè)完整的仿真必須包括仿真啟動(dòng)時(shí)對(duì)狀態(tài)變量和其它參數(shù)的正確初始化,以及仿真執(zhí)行過(guò)程中對(duì)模型動(dòng)態(tài)方程的賦值和狀態(tài)變量的積分。另外,仿真還必須具有友好的用戶界面,以便用戶能指定初始條件和模型參數(shù)以控制仿真的正常運(yùn)行。

當(dāng)在數(shù)字計(jì)算機(jī)上仿真連續(xù)的動(dòng)態(tài)系統(tǒng)時(shí),要利用數(shù)值積分算法來(lái)估計(jì)描述系統(tǒng)的微分方程解。盡管可以采用多種不同的數(shù)值積分算法,但必須選擇一種適合于仿真的算法。

數(shù)值積分算法

假定可用一組成對(duì)的一階微分方程來(lái)表示連續(xù)動(dòng)態(tài)系統(tǒng)的工作狀況。這些方程通常是非線性方程,因而很難或不可能求解,所以必須用數(shù)值算法來(lái)估計(jì)這些微分方程的解。

所用到的方程均為一階微分方程,因?yàn)檫@些積分算法只適用于一階方程,但是可以將任意含二階(或更高階)導(dǎo)數(shù)的微分方程轉(zhuǎn)換為等價(jià)的一階方程組。

我們將以微分方程的形式討論數(shù)值積分算法:其中f(x,u(t))可為非線性函數(shù),而u(t)是任意輸入函數(shù)。

執(zhí)行數(shù)值積分運(yùn)算最簡(jiǎn)單的算法之一根據(jù)連續(xù)函數(shù)導(dǎo)數(shù)的定義,如方程(1)所示。

如果h數(shù)值很小,該導(dǎo)數(shù)可用方程(2)近似。

若表示成采樣次數(shù)的形式,其中整數(shù)下標(biāo)n表示t=nh,變量上方的^表示其近似解,由此得到方程(3)。

這就是前向歐拉積分算法。它是一階積分算法,因?yàn)樗袝r(shí)間軸上某一點(diǎn)估值的函數(shù)f。該算法也是一種顯函數(shù)方法,這意味著算法將不使用來(lái)自終值n的狀態(tài)或輸入。我們也可以利用反向差分來(lái)逼近該導(dǎo)數(shù),如方程(4)所示。

差分方程的結(jié)果如方程(5)所示,這就是著名的反向歐拉積分算法。反向歐拉積分算法是一階隱函數(shù)方法,因?yàn)闋顟B(tài)是其自身的函數(shù)。隱函數(shù)法需要額外的計(jì)算來(lái)求解,通常采用Newton-Raphson算法等迭代技術(shù)。同顯函數(shù)方法相比,隱函數(shù)法在精度和數(shù)值穩(wěn)定性上都頗具優(yōu)勢(shì),但其缺點(diǎn)是需要額外的計(jì)算,而且不能適應(yīng)實(shí)時(shí)應(yīng)用。

隱函數(shù)方法不適宜實(shí)時(shí)應(yīng)用的原因主要有兩個(gè):迭代求解所需的執(zhí)行時(shí)間不可預(yù)測(cè);終值時(shí)刻的輸入量必須具有un+1的形式,而當(dāng)把時(shí)間步長(zhǎng)n當(dāng)作積分步長(zhǎng)執(zhí)行時(shí),一般不會(huì)出現(xiàn)這樣的形式。

也可以采用其它類型的數(shù)值積分算法,它們?cè)谔囟☉?yīng)用中各有千秋。例如,Runge-Kutta系列算法對(duì)帶有不連續(xù)仿真系統(tǒng)的函數(shù)f特別有效。為獲得滿意的精度,需要應(yīng)用2到4階積分算法,而不是前面討論的一階算法,因?yàn)楦唠A算法能得到比低階算法更精確的結(jié)果。這就要對(duì)數(shù)值積分算法中誤差來(lái)源及減小誤差方法進(jìn)行討論。

積分誤差

因?yàn)閷?shí)現(xiàn)這些積分算法的差分方程所得到的總是微分方程精確解的逼近值,所以積分算法的每一步都會(huì)在近似解中引入誤差。每個(gè)積分步驟出現(xiàn)的誤差有兩個(gè)來(lái)源:舍入誤差和截?cái)嗾`差。

舍入誤差是在計(jì)算中用精度有限的有理數(shù)(如計(jì)算機(jī)使用的浮點(diǎn)數(shù))逼近精度無(wú)限的實(shí)數(shù)的結(jié)果。特定計(jì)算中舍入誤差的大小取決于算術(shù)運(yùn)算的數(shù)目和類型,以及浮點(diǎn)表示法的精度。具體的計(jì)算和算術(shù)運(yùn)算序列給定以后,唯一能減小舍入誤差的方法是增加計(jì)算中數(shù)字表示法的精度。例如,可以通過(guò)將單精度浮點(diǎn)數(shù)轉(zhuǎn)換為雙精度浮點(diǎn)數(shù)來(lái)實(shí)現(xiàn)。單精度浮點(diǎn)數(shù)通常具有十進(jìn)制中7位精確的小數(shù)位,而雙精度浮點(diǎn)數(shù)約為15位。與單精度浮點(diǎn)數(shù)相比,使用雙精度浮點(diǎn)數(shù)的缺點(diǎn)是雙精度變量占據(jù)兩倍的內(nèi)存空間,而且完成計(jì)算需要占用處理器更多的時(shí)間。

控制器控制連續(xù)對(duì)象的常見(jiàn)情形 height=186 src="/article/uploadfile/200806/25/6543131573.JPG" width=472 border=0>

在實(shí)際系統(tǒng)的仿真中,單精度浮點(diǎn)數(shù)(而非雙精度浮點(diǎn)數(shù))的使用會(huì)在動(dòng)態(tài)方程的解中引入很大的舍入誤差。該問(wèn)題的嚴(yán)重程度取決于動(dòng)態(tài)方程的形式及所選的積分算法、積分時(shí)間步長(zhǎng)和仿真運(yùn)行的時(shí)間。在進(jìn)行數(shù)值積分時(shí),只要條件許可,我們通常傾向于在積分算法中使用雙精度浮點(diǎn)數(shù)。相對(duì)于仿真精度提高所帶來(lái)的好處,使用雙精度浮點(diǎn)數(shù)所需的額外內(nèi)存和處理時(shí)間都顯得微不足道。

另一誤差來(lái)源即截?cái)嗾`差是由不含舍入誤差的積分步長(zhǎng)產(chǎn)生的。換言之,截?cái)嗾`差是積分算法的步長(zhǎng)在計(jì)算機(jī)上以無(wú)限數(shù)值精度執(zhí)行而引起的誤差。

每個(gè)積分算法都具有自身的截?cái)嗾`差特性。假定函數(shù)f對(duì)積分步長(zhǎng)是連續(xù)的,并且使用一個(gè)充分小的步進(jìn)時(shí)間h,就可以應(yīng)用方程(6)來(lái)估計(jì)單個(gè)積分步長(zhǎng)所引起的截?cái)嗾`差。其中常數(shù)a取決于函數(shù)f的局部特性及所用的積分算法,k是積分算法的階數(shù),h是積分步長(zhǎng)。減小積分步長(zhǎng)可將截?cái)嗾`差降低到任意小。然而這樣做會(huì)增加仿真的執(zhí)行時(shí)間,并將在解中增加舍入誤差。使用高階積分算法同樣可以減小截?cái)嗾`差,但這種方法也有缺陷。高階積分算法需要額外的執(zhí)行時(shí)間,但其最主要的缺陷是高階算法將增加數(shù)值的不穩(wěn)定性。

積分算法的穩(wěn)定性

在積分開(kāi)始時(shí)原本很小的舍入和截?cái)嗾`差在多次步進(jìn)后將會(huì)無(wú)限增長(zhǎng)下去,從而導(dǎo)致數(shù)值的不穩(wěn)定。而太大的時(shí)間步長(zhǎng)也會(huì)導(dǎo)致積分算法不穩(wěn)定,并使估計(jì)動(dòng)態(tài)方程解的差分方程變得不穩(wěn)定。

動(dòng)態(tài)系統(tǒng)和積分算法的每一種組合都有其穩(wěn)定性特征。假定在平衡點(diǎn)附近能對(duì)仿真的非線性系統(tǒng)進(jìn)行線性化。由此,可得出這樣的定理:給定充分小的時(shí)間步長(zhǎng),只要仿真的動(dòng)態(tài)系統(tǒng)在平衡點(diǎn)附近穩(wěn)定,則積分算法就是穩(wěn)定的。

我們將討論方程(7)所示的一階線性動(dòng)態(tài)系統(tǒng),其精確解如方程(8)所示。

可以考查不同積分時(shí)間步長(zhǎng)對(duì)數(shù)值積分的影響。圖1示出了采用方程(3)所示的歐拉算法,選取6個(gè)不同時(shí)間步長(zhǎng)h得到的解。圖1a中h=0.01,具有較高的精度;圖1b中h=0.5,有明顯的誤差,但解的趨向與精確解基本一致;圖1c中h=1,在一個(gè)步長(zhǎng)后解趨于0,并維持不動(dòng),盡管解是穩(wěn)定的,但顯然不精確;圖1d中h=1.9,解作衰減穩(wěn)定的振蕩;圖1e中h=2,解作不衰減振蕩,并具有恒定的振幅;圖1f中h=2.1,解作振幅逐漸增大的振蕩,這意味著系統(tǒng)不穩(wěn)定。取更大的h值將使解的振幅增長(zhǎng)更快。

在這一采用前向歐拉積分算法的仿真中,任何取值大于2的時(shí)間步長(zhǎng)h都將得到數(shù)值上不穩(wěn)定的解。從圖1可以看出,h增大至系統(tǒng)不穩(wěn)定時(shí),任何關(guān)于解的精確度概念都失去了意義。當(dāng)動(dòng)態(tài)系統(tǒng)單元的時(shí)間常數(shù)取值差異不超過(guò)幾個(gè)數(shù)量級(jí)時(shí),這種情形便會(huì)發(fā)生。當(dāng)系統(tǒng)時(shí)間常數(shù)間的差異超過(guò)幾個(gè)數(shù)量級(jí)時(shí),這類系統(tǒng)稱為剛性系統(tǒng)。

剛性系統(tǒng)

系統(tǒng)可能既具備快速響應(yīng)動(dòng)態(tài)特性,又具備慢速響應(yīng)動(dòng)態(tài)特性,這可由系統(tǒng)模型的時(shí)間常數(shù)來(lái)描述。系統(tǒng)的剛性度定義為其******時(shí)間常數(shù)與最小時(shí)間常數(shù)的比值。如果系統(tǒng)的剛性度是近似三個(gè)數(shù)量級(jí)或更高,就認(rèn)為系統(tǒng)是剛性的。在仿真剛性系統(tǒng)時(shí),必須仔細(xì)選擇積分算法,以保證數(shù)值解的穩(wěn)定性,并確保能以合理的執(zhí)行效率得到精確的結(jié)果。

以圖2中用Simulink模型描述的開(kāi)環(huán)動(dòng)態(tài)系統(tǒng)為例。該系統(tǒng)由驅(qū)動(dòng)一階對(duì)象的一階執(zhí)行器組成。執(zhí)行器的時(shí)間常數(shù)為1ms,而對(duì)象的時(shí)間常數(shù)為1s,整個(gè)系統(tǒng)由單步輸入驅(qū)動(dòng)。

如果應(yīng)用前向歐拉積分算法仿真圖2所示的系統(tǒng),并在10s時(shí)間內(nèi)取步進(jìn)時(shí)間為1.9ms,將會(huì)發(fā)現(xiàn)積分誤差的峰值為0.001。如果將步進(jìn)時(shí)間略微增加至2.01ms,數(shù)值將不穩(wěn)定,而且截?cái)嗾`差會(huì)擴(kuò)散。該例旨在說(shuō)明:只要略微降低仿真精度,即便在輕度剛性系統(tǒng)中也會(huì)發(fā)生不穩(wěn)定。

許多實(shí)際的動(dòng)態(tài)系統(tǒng)具有比圖1示例高幾個(gè)數(shù)量級(jí)的剛性度。為了能應(yīng)用任選的積分算法來(lái)仿真這些剛性度極高的系統(tǒng),必須選擇極小的時(shí)間步長(zhǎng)來(lái)適應(yīng)最短的系統(tǒng)時(shí)間常數(shù)。這種情況下的效率極低,因?yàn)榫哂休^長(zhǎng)時(shí)間常數(shù)的系統(tǒng)部件不需要像仿真快速部件那樣的短積分步長(zhǎng)。實(shí)際上,如果在慢速響應(yīng)部件中采用非常小的時(shí)間步長(zhǎng),整個(gè)仿真的精度將會(huì)受到舍入誤差的影響,該舍入誤差會(huì)通過(guò)所需的積分步長(zhǎng)累積起來(lái)。

剛性系統(tǒng)仿真中常用到兩種方法。一種是在剛性狀況下仍表現(xiàn)良好的積分算法,在非實(shí)時(shí)仿真應(yīng)用中,可以利用許多在剛性系統(tǒng)中表現(xiàn)良好的積分算法。例如上面介紹的隱函數(shù)法,在剛性系統(tǒng)中就具有良好的性能。Gear算法的隱函數(shù)主要面向剛性系統(tǒng)的仿真。通過(guò)應(yīng)用那些在剛性條件下表現(xiàn)良好的積分算法,可以在采用比其它算法類型(如Runge-Kutta算法)具備更大時(shí)間步長(zhǎng)的時(shí)候,保證系統(tǒng)的仿真精度和穩(wěn)定性。

剛性系統(tǒng)仿真的第二種方法是采用多幀仿真。多幀仿真將仿真分為多個(gè)以不同幀速率運(yùn)行的部分。在圖2的示例中,可用0.1ms的步進(jìn)時(shí)間進(jìn)行激勵(lì)器仿真,以0.1s的步進(jìn)時(shí)間進(jìn)行裝置仿真。

在多幀方法中,必須內(nèi)推或外推來(lái)自較慢幀速率子系統(tǒng)的值,并把它作為較快幀頻子系統(tǒng)的輸入值,這就增加了問(wèn)題的復(fù)雜度。如果各種幀速率在同一處理器上運(yùn)行,執(zhí)行固定時(shí)間間隔的I/O就會(huì)有一定難度。

在以上兩種仿真剛性系統(tǒng)的方法中,只有多幀方法適于實(shí)時(shí)應(yīng)用,這是因?yàn)殡[函數(shù)積分算法不適用于要求實(shí)時(shí)處理I/O的情形。在非實(shí)時(shí)情況下,采用剛性條件下性能良好的積分算法是最簡(jiǎn)單易行的,可以避免與多幀方法相關(guān)聯(lián)的難題。

離散-連續(xù)復(fù)合系統(tǒng)

由差分方程和微分方程共同建模的動(dòng)態(tài)系統(tǒng)稱為離散-連續(xù)復(fù)合系統(tǒng),或簡(jiǎn)稱復(fù)合系統(tǒng)。由于連續(xù)系統(tǒng)部件仿真所需的積分時(shí)間步長(zhǎng)不同于離散子系統(tǒng)的時(shí)間步長(zhǎng),因此復(fù)合系統(tǒng)的仿真難度較大。此外,從離散部件到連續(xù)部件的輸入可能會(huì)以非連續(xù)信號(hào)的形式出現(xiàn),這進(jìn)一步限制了積分算法的選擇。

圖3示出了由數(shù)字控制器控制連續(xù)裝置的常見(jiàn)情形。控制器以固定刷新速率運(yùn)行,而用來(lái)采樣并量化信號(hào)的模數(shù)轉(zhuǎn)換器則接收來(lái)自被控裝置的輸入電壓。數(shù)字控制器的輸出發(fā)送到數(shù)模轉(zhuǎn)換器,并將該數(shù)值轉(zhuǎn)換為電壓,在下一次刷新前它將保持恒定。

通常,對(duì)于連續(xù)對(duì)象仿真的******積分時(shí)間步長(zhǎng)與控制器刷新間隔不一致,此時(shí)仿真必須采用多幀技術(shù)。要獲得精確的仿真,裝置模型往往需要比控制器刷新間隔更短的積分時(shí)間步長(zhǎng)。在采用固定步長(zhǎng)積分算法時(shí),最簡(jiǎn)便的方法是使積分步長(zhǎng)為控制器刷新間隔的整約數(shù)。

當(dāng)把從慢速響應(yīng)系統(tǒng)傳輸?shù)娇焖夙憫?yīng)系統(tǒng)的輸入作為數(shù)模轉(zhuǎn)換器的輸出時(shí),由于信號(hào)在兩次刷新期間保持不變,因此無(wú)需外推慢幀速率子系統(tǒng)的值。這在一定程度上簡(jiǎn)化了兩種幀速率間的接口電路。

復(fù)合系統(tǒng)是動(dòng)態(tài)系統(tǒng)仿真的重要應(yīng)用領(lǐng)域。仿真經(jīng)常用于復(fù)雜動(dòng)態(tài)系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)和測(cè)試,在這些系統(tǒng)中模擬裝置是由嵌入式數(shù)字控制器控制的。

仿真示例

現(xiàn)在討論一個(gè)動(dòng)態(tài)系統(tǒng)的完整仿真的設(shè)計(jì)和實(shí)現(xiàn),所選的仿真系統(tǒng)是一個(gè)由直流馬達(dá)驅(qū)動(dòng)的轉(zhuǎn)盤。數(shù)字控制器接收受其控制的轉(zhuǎn)盤角位置信息,并將之作為輸入,然后產(chǎn)生驅(qū)動(dòng)直流馬達(dá)的控制電壓,馬達(dá)驅(qū)動(dòng)轉(zhuǎn)盤移動(dòng)到指定位置。這是一個(gè)利用Simulink中的多幀技術(shù)進(jìn)行仿真的離散-連續(xù)復(fù)合系統(tǒng)。要將控制器建模為具有5ms刷新間隔的數(shù)字系統(tǒng),控制器的輸入是由正交位置編碼器測(cè)得的轉(zhuǎn)盤位置,正交位置編碼器輸出分辨率為4,096步/周的數(shù)字角位移。控制器輸出信號(hào)通過(guò)8位D

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號(hào)2607室 郵編:361009 聯(lián)系人:翟先生