智能跟蹤控制系統(tǒng)的動(dòng)畫仿真設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
本文針對(duì)傳統(tǒng)仿真方法的不足,采用opengl圖形系統(tǒng)結(jié)合vc++軟件開發(fā)平臺(tái)設(shè)計(jì)出智能跟蹤控制系統(tǒng)三維動(dòng)畫仿真軟件。在該軟件的設(shè)計(jì)方案中,提出自動(dòng)導(dǎo)入的方法使其能直接導(dǎo)入來自各種現(xiàn)場(chǎng)的數(shù)據(jù),克服數(shù)據(jù)來源復(fù)雜的難題;提出幾何變換法實(shí)現(xiàn)視點(diǎn)調(diào)整功能,使仿真過程具有多角度可視性;利用程序的延時(shí)技術(shù)實(shí)現(xiàn)仿真速度的可控性,提高了軟件對(duì)仿真對(duì)象進(jìn)行觀察研究的能力。
2 仿真軟件總體框架
智能跟蹤控制系統(tǒng)三維動(dòng)畫仿真軟件的基本任務(wù)是提供仿真數(shù)據(jù)的導(dǎo)入功能,智能體軌跡跟蹤過程的精確重演,提供仿真過程的交互功能。通過數(shù)據(jù)導(dǎo)入功能,不論是來自于實(shí)物實(shí)驗(yàn)還是仿真實(shí)驗(yàn)的數(shù)據(jù)都能較容易地被該仿真軟件使用。仿真運(yùn)行時(shí)要能生成三維動(dòng)畫圖像,精確模仿智能體軌跡跟蹤過程。仿真過程中要能夠?qū)σ朁c(diǎn)和速度進(jìn)行調(diào)整,以便于從各個(gè)方向和不同的距離觀察,以及快放和慢放軌跡跟蹤過程,進(jìn)一步方便對(duì)仿真結(jié)果進(jìn)行分析和處理。
軌跡跟蹤控制系統(tǒng)可能只涉及到一個(gè)智能體,也可能涉及到若干個(gè)智能體,各個(gè)智能體在跟蹤過程中可能組成編隊(duì)并擔(dān)任著不同的職能,不同類型的智能體以及不同的跟蹤任務(wù)其跟蹤控制方法也不同[3]。但跟蹤原理基本一致,即智能體根據(jù)預(yù)設(shè)的或者捕捉到的目標(biāo)軌跡,經(jīng)過計(jì)算產(chǎn)生控制信號(hào)輸入,使其發(fā)出跟蹤行動(dòng),產(chǎn)生跟蹤軌跡。
為了便于整體開發(fā)和擴(kuò)展應(yīng)用,根據(jù)軌跡跟蹤過程的特點(diǎn)和研究需求,將軟件按照實(shí)現(xiàn)的功能進(jìn)行模塊化設(shè)計(jì),并通過操作界面來控制其功能的實(shí)現(xiàn)。圖1所示為該仿真軟件的框架結(jié)構(gòu)。
圖1 仿真軟件框架示意圖
該仿真軟件主要設(shè)計(jì)有導(dǎo)入模塊、重演模塊、控制模塊三大功能模塊,以及提供用戶界面的界面模塊。其中界面模塊用vc++[4]開發(fā),為用戶提供可實(shí)現(xiàn)各項(xiàng)功能的操作界面。導(dǎo)入模塊可將復(fù)雜數(shù)據(jù)源的數(shù)據(jù)導(dǎo)入到指定存儲(chǔ)器中;重演模塊將數(shù)據(jù)生成軌跡跟蹤過程的三維動(dòng)畫;控制模塊實(shí)現(xiàn)用戶交互功能,可以在仿真過程中通過它調(diào)整仿真速度和視點(diǎn)位置。
3 智能跟蹤控制系統(tǒng)建模
根據(jù)軌跡跟蹤基本原理建立智能軌跡跟蹤控制系統(tǒng)模型。
設(shè)定目標(biāo)軌跡為:
s0(t)=[s0(t),s0(t),s0(t)]t,
智能跟蹤控制系統(tǒng)為:
(1)其中t為時(shí)間參數(shù),x(t)=[x1(t),x2(t),x3(t)]t為系統(tǒng)的狀態(tài)向量,u(t)=[u1(t),u2(t),u3(t)]t為系統(tǒng)的輸入向量,f(t)=[f1(t),f2(t),f3(t)]t為系統(tǒng)的控制信號(hào)輸入向量,ai,i=1,2,3為系統(tǒng)狀態(tài)的常數(shù)系數(shù)矩陣,bi,i=1,2,3為系統(tǒng)輸入的常數(shù)系數(shù)矩陣。
設(shè)計(jì)控制信號(hào)輸入f(t)使系統(tǒng)(1)有一個(gè)特解為s0(t)這時(shí):
(2)由于系統(tǒng)(1)漸近穩(wěn)定,因而系統(tǒng)(1)的任意解都趨向于s0(t)。
利用matlabsimulink工具箱[5]可將數(shù)學(xué)模型轉(zhuǎn)換為計(jì)算機(jī)仿真模型。圖2為系統(tǒng)(1)第一個(gè)變量的仿真模型。input controller為系統(tǒng)的控制器模塊,其功能是將采集的目標(biāo)狀態(tài)s0通過函數(shù)計(jì)算得到系統(tǒng)的控制信號(hào)f1輸出。
圖2 系統(tǒng)(1)第一個(gè)變量的仿真模型4 三維動(dòng)畫仿真軟件設(shè)計(jì)
4.1 導(dǎo)入功能設(shè)計(jì)
研究軌跡跟蹤系統(tǒng)需要采集和處理大量的系統(tǒng)狀態(tài)數(shù)據(jù),而數(shù)據(jù)的來源方式具有多樣性,可以是系統(tǒng)仿真數(shù)據(jù),也可以是若干智能體設(shè)備的運(yùn)行數(shù)據(jù)。導(dǎo)入模塊的功能是將這些外部數(shù)據(jù)以規(guī)則的方式存貯在仿真軟件指定的存儲(chǔ)器中。圖3為該仿真軟件的數(shù)據(jù)流圖。
當(dāng)仿真對(duì)象發(fā)生變化時(shí),只要在存儲(chǔ)器中導(dǎo)入新的跟蹤系統(tǒng)狀態(tài)數(shù)據(jù),無需改變?nèi)魏纬绦虼a,就可以進(jìn)行新系統(tǒng)的仿真。導(dǎo)入功能將數(shù)據(jù)的供給與動(dòng)畫實(shí)現(xiàn)程序獨(dú)立開來,使整個(gè)仿真軟件不受數(shù)據(jù)來源情況復(fù)雜的限制。
圖3 仿真軟件數(shù)據(jù)流圖
4.2 opengl動(dòng)畫開發(fā)設(shè)計(jì)
opengl圖形系統(tǒng)是行業(yè)領(lǐng)域中最為廣泛接納的2d/3d圖形api[6],其跨平臺(tái)性和優(yōu)越的三維動(dòng)畫特性可以滿足仿真軟件的需求?;诘?節(jié)對(duì)程序各個(gè)功能模塊進(jìn)行的需求和能力分析,設(shè)計(jì)開發(fā)了軌跡跟蹤動(dòng)畫實(shí)現(xiàn)代碼。該模塊只向指定存儲(chǔ)器讀取軌跡跟蹤行為的數(shù)據(jù),并且留有控制指令接口,實(shí)現(xiàn)了動(dòng)畫核心程序的重用和可擴(kuò)展。程序流程如圖4所示。
圖4 opengl三維動(dòng)畫程序流程圖
將第3節(jié)建立的智能跟蹤控制系統(tǒng)模型分別運(yùn)用matlab和三維動(dòng)畫仿真軟件進(jìn)行仿真,仿真結(jié)果分別如圖5,圖6所示。
圖5 matlab仿真結(jié)果
圖6 三維動(dòng)畫仿真結(jié)果
圖5是matlab仿真結(jié)果,我們只能觀察到跟蹤過程完成后的情況,其中sys1、sys2、sys3的點(diǎn)線分別表示智能跟蹤系統(tǒng)一、系統(tǒng)二、系統(tǒng)三的軌跡。圖6是三維動(dòng)畫仿真結(jié)果,如圖6所示,目標(biāo)為紅色,其運(yùn)動(dòng)軌跡為紅色橢圓,顏色分別為橙色、綠色、藍(lán)色的智能體從不同空間位置出發(fā),以各自的路徑和速度進(jìn)入目標(biāo)軌跡,然后沿著目標(biāo)軌跡跟蹤目標(biāo)。從圖6(b)中可以看到綠色智能體跟蹤速度最快,進(jìn)入目標(biāo)軌跡后幾乎與目標(biāo)重合。對(duì)比兩種軟件的仿真效果,三維動(dòng)畫仿真能更加直觀地表現(xiàn)出智能體跟蹤運(yùn)動(dòng)過程。4.3 仿真過程控制
在對(duì)跟蹤控制問題的研究過程中,為了改進(jìn)智能體模型或者控制器性能,需要詳細(xì)觀察智能體某個(gè)階段的運(yùn)動(dòng)軌跡形態(tài)。為了達(dá)到此要求,設(shè)計(jì)開發(fā)過程控制模塊,實(shí)現(xiàn)對(duì)仿真過程的實(shí)時(shí)控制。該模塊主要設(shè)計(jì)了兩種鍵盤控制功能,即速度調(diào)整和視點(diǎn)調(diào)整。
速度調(diào)整是在創(chuàng)建系統(tǒng)形體的間隙設(shè)置額外的延遲時(shí)間來調(diào)控仿真速度。設(shè)計(jì)在f1~f6按鍵響應(yīng)程序中分別設(shè)置六個(gè)檔次的速度。
視點(diǎn)調(diào)整是設(shè)計(jì)用幾何變換法來改變視點(diǎn)的位置。該方法的設(shè)計(jì)原理如圖7所示。
圖7 幾何變換設(shè)計(jì)原理圖
圖7中,o為軌跡中心;ρ為由o指向視點(diǎn)的矢量;視點(diǎn)坐標(biāo)(x,y)為矢量ρ分別在x軸和y軸上的投影值;圓環(huán)面l為xoy平面上的視點(diǎn)調(diào)整區(qū)域,由ρ的模最大值和最小值來界定;上、下方向鍵分別用于調(diào)整ρ變大、變小;左、右方向鍵用于調(diào)整視點(diǎn)在l內(nèi)以o為圓心ρ為半徑的圓環(huán)上分別向左、向右移動(dòng)?;谠搸缀巫儞Q法的設(shè)計(jì),在仿真運(yùn)行過程中,通過控制模塊向軟件發(fā)出指令,就能夠?qū)崿F(xiàn)視點(diǎn)360°全方位移動(dòng)和觀察距離的調(diào)整。圖8為經(jīng)過視點(diǎn)調(diào)整后看到的仿真圖像。
圖8 軌跡交接放大圖
從圖8中能夠觀察到各條跟蹤軌跡接近目標(biāo)軌跡前的形態(tài)以及接近的位置,進(jìn)而判斷各系統(tǒng)模型或跟蹤控制器的優(yōu)劣,為改進(jìn)它們的參數(shù)提供了實(shí)驗(yàn)依據(jù)。
5 結(jié)束語(yǔ)
本文根據(jù)智能跟蹤控制系統(tǒng)研究的需要,開發(fā)出三維動(dòng)畫仿真軟件。該軟件具有以下突出優(yōu)點(diǎn):采用數(shù)據(jù)導(dǎo)入的思想,使軟件擺脫數(shù)據(jù)來源復(fù)雜的限制,拓寬了該仿真軟件的使用范圍;設(shè)計(jì)視點(diǎn)幾何變換法等,實(shí)現(xiàn)仿真過程的實(shí)時(shí)可操作特性,從而提高了其作為仿真研究的價(jià)值;采用模塊化設(shè)計(jì),結(jié)構(gòu)緊湊合理,可重用性和擴(kuò)展性較強(qiáng)。