胡海霞,劉 潔,涂俊峰
(1.北京控制工程研究所,北京 100190;2.空間智能控制技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190)
空間交會(huì)對(duì)接是中國載人航天二期工程中已突破的一項(xiàng)關(guān)鍵技術(shù),而建立空間交會(huì)仿真系統(tǒng)是保證交會(huì)任務(wù)成功的一個(gè)必備條件.國外關(guān)于空間交會(huì)仿真技術(shù)的研究已有近半個(gè)世紀(jì)的歷史,從“Apollo”飛船到 ATV(automated transfer vehicle)、HTV(H-II transfer vehicle)的研制,都采用了地面模擬數(shù)字計(jì)算機(jī)仿真、實(shí)物/半實(shí)物仿真和在軌試驗(yàn)的研發(fā)模式[1].數(shù)字計(jì)算機(jī)仿真將空間交會(huì)制導(dǎo)導(dǎo)航與控制(GNC)系統(tǒng)的所有組成部分都用數(shù)學(xué)仿真模型來描述,有不受硬件、結(jié)構(gòu)和環(huán)境等條件限制的優(yōu)點(diǎn).
面向?qū)ο蠓椒ㄊ情_發(fā)數(shù)字計(jì)算機(jī)仿真系統(tǒng)的常用方法,它可以實(shí)現(xiàn)仿真模型和程序代碼的通用性與模塊化,近年來在航天領(lǐng)域得到了很快的發(fā)展與應(yīng)用[1-4].面向?qū)ο蠓椒ㄔ诳臻g交會(huì)對(duì)接數(shù)字仿真系統(tǒng)方面的應(yīng)用,也有學(xué)者做了很多研究工作.文獻(xiàn)[1]中介紹了空間交會(huì)對(duì)接仿真系統(tǒng)中的類及其對(duì)象,并簡單設(shè)計(jì)了類間的關(guān)系;文獻(xiàn)[4]在面向?qū)ο蠓椒▽W(xué)的指導(dǎo)下,分析設(shè)計(jì)了包括地面測控在內(nèi)的交會(huì)對(duì)接仿真系統(tǒng)的總體框架,給出了此軟件系統(tǒng)的對(duì)象模型、動(dòng)態(tài)模型和功能模型,并對(duì)這一框架進(jìn)行了初步的實(shí)現(xiàn).
目前大部分研究工作僅給出了仿真系統(tǒng)大體框架的設(shè)計(jì)思路,沒有考慮空間交會(huì)仿真系統(tǒng)所需的大量的仿真模型如何進(jìn)行接口規(guī)范,也沒有考慮是否可以采用代碼自動(dòng)生成技術(shù)將這些仿真模型自動(dòng)連成仿真程序,以減少研究人員的工作量.正是在這種背景下,本文給出一種仿真模型的規(guī)范化方法,并在此基礎(chǔ)上,提出一套基于代碼自動(dòng)生成技術(shù)的空間交會(huì)對(duì)接GNC仿真平臺(tái).
空間交會(huì)對(duì)接GNC仿真平臺(tái)的目標(biāo)是建立起基于可靠模型的、規(guī)范的空間交會(huì)對(duì)接GNC仿真環(huán)境,能夠完成目標(biāo)器和追蹤器的軌道動(dòng)力學(xué)和姿態(tài)動(dòng)力學(xué)的實(shí)時(shí)解算、相對(duì)動(dòng)力學(xué)的實(shí)時(shí)解算、GNC測量設(shè)備的模擬、軌道和姿態(tài)控制模擬等,用于支持空間交會(huì)對(duì)接GNC系統(tǒng)的設(shè)計(jì)、分析和驗(yàn)證.
參與交會(huì)對(duì)接任務(wù)的兩個(gè)航天器的姿態(tài)軌道控制系統(tǒng)均由動(dòng)力學(xué)、敏感器、控制器和執(zhí)行機(jī)構(gòu)四部分組成,因此也決定了仿真系統(tǒng)可以分為動(dòng)力學(xué)模型(含姿態(tài)動(dòng)力學(xué)模型、軌道動(dòng)力學(xué)模型、外干擾力和力矩模型)、敏感器模型(陀螺、紅外、太陽、GPS、激光雷達(dá)、微波雷達(dá)等)、控制器模型(星上算法)和執(zhí)行機(jī)構(gòu)模型(動(dòng)量輪、推力器、控制力矩陀螺(CMG)等),除此之外,相對(duì)于單個(gè)航天器的仿真系統(tǒng)而言,交會(huì)對(duì)接仿真系統(tǒng)還增加了相對(duì)動(dòng)力學(xué)模型和相對(duì)測量敏感器模型.控制系統(tǒng)的閉環(huán)反饋結(jié)構(gòu)如圖1所示.
圖1 交會(huì)對(duì)接GNC系統(tǒng)仿真結(jié)構(gòu)圖Fig.1 GNC system structure for rendezvous and docking
由圖1可知,空間交會(huì)對(duì)接仿真平臺(tái)的核心是仿真模型,包括高精度的軌道動(dòng)力學(xué)模型、姿態(tài)動(dòng)力學(xué)模型、相對(duì)動(dòng)力學(xué)模型、敏感器模型、執(zhí)行機(jī)構(gòu)模型和常用基礎(chǔ)算法模型等.所有應(yīng)用于GNC系統(tǒng)仿真的模型都必須是經(jīng)過充分驗(yàn)證的、可靠的模型.
下面給出空間交會(huì)對(duì)接GNC仿真平臺(tái)中需要模擬的數(shù)學(xué)模型,以及各個(gè)數(shù)學(xué)模型的輸入輸出接口,供編寫仿真模型使用.
傳統(tǒng)的剛體動(dòng)力學(xué)模型無法準(zhǔn)確描述航天器的動(dòng)力學(xué)特性,現(xiàn)代的航天器大部分可以?;癁橹行膭傮w加大型柔性附件類柔性航天器.針對(duì)交會(huì)對(duì)接不斷變軌的特點(diǎn)還要考慮姿態(tài)和軌道的相互耦合關(guān)系,這里給出系統(tǒng)動(dòng)力學(xué)方程[5]:
其中,M為系統(tǒng)質(zhì)量陣,X為航天器質(zhì)心相對(duì)于標(biāo)稱位置的攝動(dòng)量,Is為系統(tǒng)慣量陣,ωs為中心體的角速度,ηi為各附件的模態(tài)坐標(biāo),F(xiàn)ti、Rasi、Fsi、Fai分別為各附件的柔性耦合系數(shù)陣,Hw為飛輪的角動(dòng)量,Iai為附件的慣量陣,ωai為附件的角速度,Ps為作用在航天器上的作用力,Ts為控制力矩;Td為外擾力矩;Tai為帆板驅(qū)動(dòng)力矩;Ω為模態(tài)頻率對(duì)角陣.
1.1.1 姿態(tài)動(dòng)力學(xué)模型
由式(2)~(4)可知,姿態(tài)動(dòng)力學(xué)模型中要考慮附件的轉(zhuǎn)動(dòng)方程、附件轉(zhuǎn)動(dòng)與附件振動(dòng)的耦合、附件振動(dòng)與中心剛體轉(zhuǎn)動(dòng)的剛?cè)狁詈稀⒏郊D(zhuǎn)動(dòng)與中心剛體轉(zhuǎn)動(dòng)的耦合,以及航天器平動(dòng)對(duì)姿態(tài)的耦合等.實(shí)時(shí)解算時(shí)還要考慮航天器質(zhì)心隨著燃料消耗的變化、帆板在不同轉(zhuǎn)角位置時(shí)整星慣量的變化.在環(huán)境干擾力矩方面,需要考慮太陽光壓、大氣阻力、重力梯度力矩、剩磁力矩等.
姿態(tài)動(dòng)力學(xué)模型需要配置附件撓性耦合參數(shù)、轉(zhuǎn)動(dòng)慣量,附件尺寸、面積,附件壓心位置等參數(shù),配置帆板驅(qū)動(dòng)機(jī)構(gòu)的各個(gè)參數(shù),如電機(jī)齒數(shù)、驅(qū)動(dòng)阻尼系數(shù)、驅(qū)動(dòng)高次諧波力矩幅值等.
姿態(tài)動(dòng)力學(xué)模型初始化:初始姿態(tài)角、初始姿態(tài)角速度、姿態(tài)轉(zhuǎn)序、整星慣量陣、整星質(zhì)心、附件初始轉(zhuǎn)角、附件特性參數(shù)(包括附件慣量、安裝位置、振動(dòng)頻率、阻尼比、耦合系數(shù)).
姿態(tài)動(dòng)力學(xué)模型輸入:軌道信息Coi、軌道角速度、解算步長、外干擾力矩、推力器輸出力和力矩、動(dòng)量輪角動(dòng)量和控制力矩、衛(wèi)星平動(dòng)加速度、附件指令轉(zhuǎn)速、衛(wèi)星質(zhì)量陣.
姿態(tài)動(dòng)力學(xué)模型輸出:姿態(tài)角、姿態(tài)角速度、姿態(tài)矩陣Cbo、姿態(tài)四元數(shù)、附件撓性模態(tài)及其導(dǎo)數(shù)、衛(wèi)星慣量陣、衛(wèi)星質(zhì)心、附件轉(zhuǎn)角.
1.1.2 軌道動(dòng)力學(xué)模型
航天器軌道動(dòng)力學(xué)方程如下[6]:
其中,r為航天器質(zhì)心的標(biāo)稱位置,ae為地球非球形引力攝動(dòng)加速度,aa為大氣阻力加速度,al為太陽光壓加速度??紤]帆板柔性對(duì)航天器平動(dòng)的影響,將式(5)中的r和式(1)中解算的航天器質(zhì)心相對(duì)于標(biāo)稱位置的攝動(dòng)量X疊加在一起作為航天器質(zhì)心的位置。
軌道動(dòng)力學(xué)模型中除了所需的軌道攝動(dòng)因素考慮齊全外,還應(yīng)包括時(shí)間系統(tǒng)、日月星歷計(jì)算、歲差、章動(dòng)、地球自轉(zhuǎn)矩陣、極移相關(guān)計(jì)算、位置速度與軌道根數(shù)相互轉(zhuǎn)換函數(shù)等.
軌道動(dòng)力學(xué)模型初始化:初始軌道歷元、初始軌道六要素.
軌道動(dòng)力學(xué)模型輸入:航天器姿態(tài)、推力器推力、解算步長tstep.
軌道動(dòng)力學(xué)模型輸出:軌道瞬時(shí)根數(shù)、軌道系慣性系旋轉(zhuǎn)矩陣Coi、質(zhì)心位置速度在慣性系和地固系的表示、日月矢量在慣性系和軌道系的表示.
1.1.3 相對(duì)動(dòng)力學(xué)模型
相對(duì)動(dòng)力學(xué)模型包括相對(duì)姿態(tài)和相對(duì)位置計(jì)算兩部分,主要是由兩個(gè)航天器在慣性系的位置和姿態(tài)分別計(jì)算出相對(duì)位置和相對(duì)姿態(tài).相對(duì)動(dòng)力學(xué)模型的輸出作為相對(duì)測量敏感器的輸入,兩者均是空間交會(huì)GNC仿真系統(tǒng)中必不可少的仿真模型.
相對(duì)動(dòng)力學(xué)模型初始化:追蹤器對(duì)接面在追蹤器質(zhì)心坐標(biāo)系中的位置,目標(biāo)器對(duì)接面在目標(biāo)器質(zhì)心坐標(biāo)系中的位置.
相對(duì)動(dòng)力學(xué)模型輸入:追蹤器和目標(biāo)器的軌道信息、追蹤器和目標(biāo)器姿態(tài)旋轉(zhuǎn)矩陣.
相對(duì)動(dòng)力學(xué)模型輸出:兩航天器質(zhì)心之間相對(duì)位置和相對(duì)速度,兩飛行器對(duì)接面之間的相對(duì)位置、相對(duì)速度、相對(duì)姿態(tài)、相對(duì)姿態(tài)角速度等.
1.2.1 姿態(tài)確定敏感器模型
常用的姿態(tài)確定敏感器模型包括陀螺、紅外敏感器、太陽敏感器.它們應(yīng)測到的真實(shí)量由姿態(tài)動(dòng)力學(xué)和軌道動(dòng)力學(xué)模型提供,再結(jié)合其安裝方位,計(jì)算出敏感器測量坐標(biāo)系下的姿態(tài)或角速度信息,然后考慮敏感器的測量噪聲和采樣量化問題,給出敏感器的測量值.這里以數(shù)字太陽模型為例,給出姿態(tài)確定敏感器模型的輸入和輸出,其他與此類似.
數(shù)字太陽模型初始化函數(shù):安裝矩陣、測量角視場范圍、進(jìn)光角視場范圍、測量角輸出的常值誤差、測量噪聲的均值和方差、輸出當(dāng)量.
數(shù)字太陽模型輸入:本體系到軌道系的姿態(tài)矩陣Cbo、太陽矢量在軌道系的表示So.
數(shù)字太陽模型輸出:測量角、見太陽標(biāo)志.
1.2.2 相對(duì)測量敏感器模型
常用的空間交會(huì)對(duì)接敏感器有RGPS、激光雷達(dá)、微波雷達(dá).它們應(yīng)測到的真實(shí)量由相對(duì)動(dòng)力學(xué)模型提供,再結(jié)合各個(gè)敏感器的安裝情況,計(jì)算出在敏感器測量坐標(biāo)系的測量信息,然后考慮敏感器的測量誤差、測量范圍、首次捕獲和重新捕獲的時(shí)間約束等,最終給出敏感器的測量值.這里以微波雷達(dá)為例,給出相對(duì)測量敏感器的模型輸入輸出,其他敏感器與微波雷達(dá)相似.
微波雷達(dá)模型的初始化函數(shù):測距誤差均值和方差、測角誤差均值和方差、作用范圍、視場半張角、微波雷達(dá)在追蹤器上的安裝位置、應(yīng)答機(jī)在目標(biāo)器上的安裝位置、測量噪聲的均值和方差、首次捕獲和重新捕獲的時(shí)間.
微波雷達(dá)模型的輸入:本體系相對(duì)軌道系姿態(tài)角速度在本體系下的表示W(wǎng)bo、追蹤器的本體系到軌道系的轉(zhuǎn)換矩陣Cbo、目標(biāo)器質(zhì)心相對(duì)追蹤器質(zhì)心的相對(duì)位置和相對(duì)速度在追蹤器軌道系下的表示.
微波雷達(dá)模型的輸出:測量目標(biāo)器相對(duì)雷達(dá)的相對(duì)距離、方位角、仰角、相對(duì)速度、方位角速度、仰角速度;數(shù)據(jù)有效性標(biāo)志、首次捕獲的標(biāo)志和計(jì)時(shí)、重新捕獲的標(biāo)志和計(jì)時(shí).
控制器模型指的是星上控制算法,主要功能是利用航天器姿態(tài)測量信息和相對(duì)測量信息確定航天器的姿態(tài)以及兩航天器之間的相對(duì)狀態(tài),由制導(dǎo)和控制算法給出姿態(tài)和軌道控制信號(hào),并計(jì)算出執(zhí)行機(jī)構(gòu)的控制電壓或開關(guān)機(jī)指令.
控制器模型的輸入:各敏感器測量信息.
控制器模型的輸出:發(fā)動(dòng)機(jī)開關(guān)機(jī)指令和開關(guān)機(jī)時(shí)間,太陽帆板的控制轉(zhuǎn)速,動(dòng)力輪的控制電壓.
執(zhí)行機(jī)構(gòu)包括動(dòng)量輪、CMG和推力器等.它們的模型均可抽象為初始化、輸入、輸出3個(gè)部分.這里以推力器為例.
推力器模型初始化:推力大小、安裝位置、安裝方向、安裝誤差、推力上升時(shí)間常數(shù)、推力下降時(shí)間常數(shù)、推力開啟延時(shí)、推力關(guān)閉延時(shí)等.
推力器模型輸入:發(fā)動(dòng)機(jī)每個(gè)控制周期內(nèi)發(fā)動(dòng)機(jī)的開關(guān)機(jī)狀態(tài)及開機(jī)時(shí)間.
推力器模型輸出:發(fā)動(dòng)機(jī)產(chǎn)生的控制力和控制力矩.
仿真主程序的功能是將上述4類(動(dòng)力學(xué)類、敏感器類、控制器類、執(zhí)行機(jī)構(gòu)類等)若干個(gè)仿真模型按照各類模型之間的固定輸入輸出關(guān)系閉環(huán)起來,形成仿真程序,供設(shè)計(jì)人員仿真使用.
面向?qū)ο蟪绦蛟O(shè)計(jì)是近年來一種主流程序設(shè)計(jì)方法,其基本構(gòu)件是對(duì)象與類,采用屬性、消息、繼承的機(jī)制實(shí)現(xiàn)內(nèi)部管理與外部協(xié)作,其優(yōu)點(diǎn)是對(duì)仿真系統(tǒng)進(jìn)行抽象,并具有模塊化和信息隱藏等特點(diǎn),提高了系統(tǒng)的可重用性與可維護(hù)性[1].GNC仿真平臺(tái)采用面向?qū)ο蠹夹g(shù)設(shè)計(jì),并出于對(duì)運(yùn)行效率和通用化的考慮,利用Microsoft公司的Visual Studio 2005的C++語言進(jìn)行開發(fā).
在空間交會(huì)GNC仿真系統(tǒng)中,仿真模型表現(xiàn)為C++語言編寫的具體的可執(zhí)行文件或者動(dòng)態(tài)鏈接庫文件.由第2節(jié)對(duì)各類模型的功能分析可知,所有模型均可由兩個(gè)函數(shù)來實(shí)現(xiàn),即初始化函數(shù)和解算函數(shù).
2.1.1 初始化函數(shù)
初始化函數(shù)的定義方法為:將初始化函數(shù)中的參數(shù)采用宏變量表示,形式為:
參數(shù):x,y,z;
模板:MYM(mod_name).init(MYM(x),MYM(y),MYM(z));
參數(shù)x、y、z為動(dòng)力學(xué)類仿真模型、或敏感器類仿真模型、或執(zhí)行器類仿真模型的安裝坐標(biāo),mod_name為動(dòng)力學(xué)類仿真模型、或敏感器類仿真模型、或執(zhí)行器類仿真模型的名稱,init為初始化函數(shù).
2.1.2 解算函數(shù)
解算函數(shù)中的參數(shù)采用宏變量表示,形式為:
參數(shù):a_in,a_out;
模板:MYM(mod_name).Solve(MYM(a1_in),MYM(a1_out));
參數(shù)a_in為本仿真模型的輸入,a_out為本仿真模型的輸出;mod_name為動(dòng)力學(xué)類仿真模型、或敏感器類仿真模型、或執(zhí)行器類仿真模型的名稱;Solve為解算函數(shù).
仿真模型描述文件以VC++開發(fā)環(huán)境可以識(shí)別的方式描述模型使用方法,它可以用來指導(dǎo)開發(fā)環(huán)境完成代碼自動(dòng)生成.一個(gè)開發(fā)人員要使用一個(gè)模型,需要讀懂模型的源代碼或者模型的說明文檔.對(duì)于開發(fā)環(huán)境來說,要直接解析源代碼或說明文檔是不現(xiàn)實(shí)的,因此考慮使用描述文件這種間接的方式,用于描述模型的一些名稱、版本、初始化和解算函數(shù)的信息.模型描述文件由仿真模型的編寫者來完成,仿真平臺(tái)提供專門的描述文件編輯器可以生成規(guī)范的模型描述文件.
模型編寫者可以將每個(gè)仿真模型的初始化代碼和解算代碼抽象化,提煉成代碼模板,代碼中需要特殊化的部分用宏變量代替,如圖2所示的數(shù)字太陽仿真模型的描述文件.
圖2 仿真模型描述文件示意圖Fig.2 Graph of simulation model description file
下面以一個(gè)實(shí)例來說明.某個(gè)模型使用矩陣來進(jìn)行初始化,初始化代碼為:
模型編寫者允許用戶配置矩陣的行數(shù)、列數(shù)和初始值,分別使用宏變量$(mx_row)、$(mx_col)、$(mx_init_val)來代替,模型實(shí)例的名稱用宏變量$(__mod_instance)來代替,提煉出代碼模板為
在代碼自動(dòng)化生成工具模型的使用者通過配置界面給宏變量賦值,代碼自動(dòng)化工具就能根據(jù)模板和宏變量的值生成初始化代碼.
自動(dòng)化工具根據(jù)使用者的實(shí)際配置的參數(shù)將上面的模板展開,就可以還原成例子中的代碼.所有模型的代碼組合到一起就成為最后的VC++工程,2.3節(jié)將詳細(xì)展開說明代碼自動(dòng)生成的過程.
采用描述文件編輯器把所有的仿真模型描述完成之后,設(shè)計(jì)人員可以在操作界面上對(duì)所選的模型進(jìn)行初始化設(shè)置,設(shè)置完成后利用代碼自動(dòng)化生成工具就可以自動(dòng)生成仿真流程代碼,最終生成一個(gè)VC++工程.
2.3.1 初始化代碼的自動(dòng)生成
仿真初始化代碼是所選的所有仿真模型的初始化代碼的組合.對(duì)于單個(gè)模型,其初始化方法通過模型的描述文件定義,初始化方法定義包括參數(shù)和模板兩部分,如敏感器模型S,其初始化方法定義是:
參數(shù):x,y,z
模板:$(mod_name).init($(x), $(y),$(z));
參數(shù)x、y、z為敏感器模型S的安裝坐標(biāo),參數(shù)mod_name為模型的實(shí)例名稱,設(shè)計(jì)人員在建模工具中可以設(shè)置這些參數(shù)的實(shí)際值,自動(dòng)化生成技術(shù)將初始化模板中的參數(shù)用實(shí)際值代替,就可以生成模型的初始化代碼.
2.3.2 仿真主循環(huán)代碼的自動(dòng)生成
在生成仿真主循環(huán)時(shí),自動(dòng)代碼生成主要解決下列問題:
(1)模型解算順序
仿真主循環(huán)代碼為for循環(huán)結(jié)構(gòu),在循環(huán)中各模型實(shí)例按動(dòng)力學(xué)類、敏感器類、控制器類、執(zhí)行器類的順序依次解算(如圖3所示).
圖3 控制系統(tǒng)接口關(guān)系圖Fig.3 Graph of relationship between control system interfaces
(2)主循環(huán)步長
主循環(huán)步長是以毫秒為單位的整數(shù),是所有模型實(shí)例步長的最大公約數(shù),當(dāng)前仿真時(shí)間在主循環(huán)中每次遞加一個(gè)主循環(huán)步長.
(3)每個(gè)模型解算條件
模型并不是每個(gè)主循環(huán)都解算,只有在當(dāng)前仿真時(shí)間為模型仿真步長的整數(shù)倍時(shí)才解算.
(4)建立參數(shù)傳遞關(guān)系
規(guī)定參數(shù)傳遞方向?yàn)?動(dòng)力學(xué)類輸出參數(shù)給敏感器類,敏感器類輸出參數(shù)給控制器類,控制器類輸出給執(zhí)行器類,執(zhí)行器類輸出給動(dòng)力學(xué)類.傳遞規(guī)則為:如果模型A和B在類別上符合參數(shù)傳遞方向,且模型A的某個(gè)輸出參數(shù)X的關(guān)鍵字與模型B的某個(gè)輸入?yún)?shù)Y的關(guān)鍵字相同,視為X與Y匹配,那么自動(dòng)生成的代碼中傳遞給參數(shù)X和Y的將是同一個(gè)變量.
舉例來說,如圖4所示,有動(dòng)力學(xué)模型D1,敏感器模型S1和S2,由于動(dòng)力學(xué)類對(duì)敏感器類構(gòu)成輸出關(guān)系,而D1的輸出參數(shù)關(guān)鍵字為para_key_x,S2的第一個(gè)輸入?yún)?shù)的關(guān)鍵字也是para_key_x,可以匹配.
圖4 動(dòng)力學(xué)模型參數(shù)傳遞關(guān)系匹配圖Fig.4 Matching graph of dynamics model parameter transfer relation
(5)控制器接口函數(shù)
控制器模型并非來自模型庫,而是自動(dòng)生成接口函數(shù)后再由設(shè)計(jì)人員增加實(shí)際的星上算法代碼.
生成的控制器模型沒有初始化函數(shù),只有解算函數(shù),函數(shù)為空,代碼將來由設(shè)計(jì)人員填寫.生成控制器接口的主要工作是獲取其解算函數(shù)的輸入輸出參數(shù),規(guī)則為:所有敏感器模型的輸出作為控制器的輸入,所有執(zhí)行器的輸入就是控制器的輸出.所以獲取所有敏感器模型的輸出和所有執(zhí)行器模型的輸入就構(gòu)成了控制器解算函數(shù)的參數(shù)列表.
圖5 敏感器模型參數(shù)傳遞關(guān)系匹配圖Fig.5 Matching graph of sensor model parameter transfer relation
舉例來說,如圖5,系統(tǒng)中有敏感器模型S1、S2、S3,有輸出參數(shù) key_s1、key_s2、key_s3、key_s4,執(zhí)行器模型 A1、A2,有輸入?yún)?shù) key_a1、key_a2、key_a3,那么生成的控制器解算函數(shù)輸入為key_s1、key_s2、key_s3、key_s4,輸出為 key_a1、key_a2、key_a3,用模板表示為:
2.3.3 Windows程序框架及VC工程的生成
對(duì)于同樣的模型選擇配置,GNC仿真平臺(tái)開發(fā)環(huán)境可以根據(jù)用戶的需要生成不同類型的VC++工程,如控制臺(tái)程序、對(duì)話框程序和單文檔窗口程序.VC++工程類型不同導(dǎo)致最后生成的工程源文件差異很大,但是這些文件中主要代碼片段:模型的實(shí)例聲明、初始化、解算代碼是相同的.所以生成過程分為共性的代碼生成階段和個(gè)性的文件生成階段.
代碼生成階段由代碼生成器來完成,即是2.3.1節(jié)和2.3.2節(jié)所述內(nèi)容,具體工作:
1)根據(jù)用戶選擇的模型建立模型之間的輸入輸出關(guān)系;
2)根據(jù)用戶選擇的敏感器和執(zhí)行器模型生成控制器模型;
3)根據(jù)模型的依賴關(guān)系搜索隱式包含的模型;
4)生成各模型的實(shí)例聲明、初始化、解算代碼,拼接成仿真程序的聲明、初始化、解算代碼片段.
文件生成階段由文件生成器來完成,具體工作:
1)創(chuàng)建VC++工程目錄;
2)下載所有模型的描述文件并解包;
3)將描述文件解包后的文件分類添加到VC++工程中;
4)用代碼片段替換到源代碼文件中的宏變量得到最終的代碼.
自動(dòng)生成方法根據(jù)已生成的仿真初始化和仿真主循環(huán)代碼,再加上典型的windows程序框架代碼,就得到空間交會(huì)GNC仿真平臺(tái)的代碼,最后將生成的代碼文件以及各模型的實(shí)現(xiàn)文件添加到VC++工程文件從而生成完整的VC++工程,用VC++可以直接打開和編譯此工程,結(jié)果就可以得到空間交會(huì)GNC仿真平臺(tái)的執(zhí)行程序.
基于上述規(guī)范的仿真模型庫和代碼自動(dòng)化生成技術(shù)開發(fā)了空間交會(huì)對(duì)接GNC仿真平臺(tái).
這里以某典型空間交會(huì)任務(wù)的仿真為實(shí)例,給出基于該任務(wù)的GNC數(shù)學(xué)仿真系統(tǒng)的仿真和數(shù)據(jù)顯示結(jié)果.最終仿真軟件的運(yùn)行情況如圖6~10所示.圖6是仿真數(shù)據(jù)的顯示情況,實(shí)時(shí)顯示了包括地面追蹤器姿態(tài)、姿態(tài)角速度、星上追蹤器估計(jì)姿態(tài)、估計(jì)姿態(tài)角速度和星上段標(biāo)等數(shù)據(jù),圖7~10是以圖形曲線的形式顯示了仿真過程中追蹤器和目標(biāo)器的相對(duì)位置、相對(duì)姿態(tài)、相對(duì)姿態(tài)角速度以及追蹤器撓性模態(tài)的變化情況.
圖10 追蹤器前三階撓性模態(tài)仿真曲線實(shí)時(shí)顯示Fig.10 Real-time display of chaser’s first 3 order flexible modes
由上述應(yīng)用實(shí)例可以看出,空間交會(huì)GNC仿真平臺(tái)的成功開發(fā)及正確的仿真結(jié)果證明了基于VC++的GNC仿真平臺(tái)方案合理可行.
空間交會(huì)對(duì)接任務(wù)對(duì)GNC系統(tǒng)仿真提出了更高的要求.本文基于規(guī)范化模型和自動(dòng)代碼生成技術(shù),設(shè)計(jì)開發(fā)了空間交會(huì)對(duì)接GNC系統(tǒng)仿真平臺(tái).該平臺(tái)所采用仿真模型的規(guī)范化方法具有通用性好、繼承性強(qiáng)等特點(diǎn),除此之外,代碼自動(dòng)生成技術(shù)在仿真平臺(tái)中的成功應(yīng)用顯著提高了設(shè)計(jì)和仿真人員的工作效率,為交會(huì)對(duì)接復(fù)雜任務(wù)的系統(tǒng)仿真驗(yàn)證提供了有力的支持.本平臺(tái)的設(shè)計(jì)思路對(duì)常規(guī)衛(wèi)星姿態(tài)控制乃至星群星座控制領(lǐng)域的數(shù)學(xué)仿真系統(tǒng)有一定的借鑒意義.
[1] 劉魯華,湯國建,余夢(mèng)倫.空間交會(huì)GNC仿真系統(tǒng)建模中的設(shè)計(jì)模式[J].系統(tǒng)仿真學(xué)報(bào),2007,19(23):5389-5391 Liu L H,Tang G J,Yu M L.Design patterns of GNC simulation system modeling in spacecraft rendezvous mission[J].Journal of System Simulation,2007,19(23):5389-5391
[2] 羅亞中,唐國金,王峰,等.運(yùn)載火箭優(yōu)化設(shè)計(jì)通用仿真類庫設(shè)計(jì)與開發(fā)[J].系統(tǒng)仿真學(xué)報(bào),2003,15(7):962-965 Luo Y Z,Tang G J,Wang F,et al.The design and development of the all-purpose simulation class library for launch vehicle optimization design[J].Journal of System Simulation,2003,15(7):962-965
[3] 劉魯華,湯國建,余夢(mèng)倫,等.基于UML方法的空間交會(huì) GNC仿真系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)仿真,2007,24(10):56-59 Liu L H,Tang G J,Yu M L,et al.Design of spacecraft rendezvous GNC simulation system based on UML[J].Computer Simulation,2007,24(10):56-59
[4] 王華,唐國金.基于面向?qū)ο蟮腞VD仿真系統(tǒng)的分析與設(shè)計(jì)[J].計(jì)算機(jī)仿真,2003,20(5):25-27 Wang H,Tang G J.The analysis and design of RVD simulation system based on object-oriented method[J].Computer Simulation,2003,20(5):25-27
[5] 曲廣吉.航天器動(dòng)力學(xué)工程[M].北京:中國科學(xué)技術(shù)出版社,2000 Qu G J.Spacecraft dynamics engineering[M].Beijing:China Technology Publishing Company,2000
[6] 劉林.航天器軌道理論[M].北京:國防工業(yè)出版社,2000 Liu L.Spacecraft obit theory[M].Beijing:National Defence Industrial Publishing Company,2000