張宇 劉忠漢 林佳偉 劉蕊
(北京控制工程研究所,北京 100096)
?
應(yīng)用插件技術(shù)的北斗衛(wèi)星控制系統(tǒng)模擬器設(shè)計(jì)
張宇 劉忠漢 林佳偉 劉蕊
(北京控制工程研究所,北京 100096)
針對(duì)傳統(tǒng)設(shè)計(jì)方法在可更改性、可擴(kuò)展性、設(shè)計(jì)復(fù)用性等方面的不足,分析了插件技術(shù)的原理和優(yōu)點(diǎn),根據(jù)衛(wèi)星控制系統(tǒng)模擬器軟件的特點(diǎn),提出了應(yīng)用插件技術(shù)的設(shè)計(jì)思路。文章通過(guò)采用“宿主程序”+“插件”的軟件總體結(jié)構(gòu),合理劃分了宿主程序和插件的功能。為充分發(fā)揮插件技術(shù)的優(yōu)勢(shì),宿主程序采用微內(nèi)核方式,負(fù)責(zé)加載和管理各種功能插件,并通過(guò)“監(jiān)聽(tīng)器”方式為插件之間提供標(biāo)準(zhǔn)的通信服務(wù)。同時(shí)結(jié)合軟件功能特點(diǎn),將插件分為業(yè)務(wù)插件和輔助插件兩類,使得設(shè)計(jì)更加合理。最后應(yīng)用插件技術(shù)設(shè)計(jì)了具體的宿主程序接口、插件接口、監(jiān)聽(tīng)器接口,實(shí)現(xiàn)了通用的衛(wèi)星控制系統(tǒng)模擬器仿真平臺(tái),完成了3類、14顆衛(wèi)星控制系統(tǒng)的模擬仿真,取得了良好效果。
衛(wèi)星;控制系統(tǒng);模擬器;插件
衛(wèi)星控制系統(tǒng)模擬器(簡(jiǎn)稱控制系統(tǒng)模擬器),是用作驗(yàn)證衛(wèi)星姿態(tài)軌道控制系統(tǒng)在研制、發(fā)射和在軌運(yùn)行過(guò)程中設(shè)計(jì)和操作程序的正確性,輔助故障分析和處理,對(duì)衛(wèi)星進(jìn)行仿真的設(shè)備。由于硬件仿真成本高且不易修改,故采用軟件仿真,其具有穩(wěn)定性、可重復(fù)性、可修改性、低成本、能夠?qū)崿F(xiàn)最壞情況模擬等優(yōu)點(diǎn)??刂葡到y(tǒng)模擬器一般采用軟件仿真方法實(shí)現(xiàn)[1]。
傳統(tǒng)的控制系統(tǒng)模擬器軟件一般只針對(duì)單顆衛(wèi)星進(jìn)行模擬,通常采用面向功能的設(shè)計(jì)方法,此方法建立在數(shù)據(jù)流的基礎(chǔ)上,把控制系統(tǒng)看成是提供給最終用戶的功能,強(qiáng)調(diào)區(qū)分和分解系統(tǒng)功能。在設(shè)計(jì)控制系統(tǒng)模擬器時(shí),將控制系統(tǒng)分解成敏感器、控制器、執(zhí)行機(jī)構(gòu)、遙控遙測(cè)等功能模塊,遞歸分解得到各下級(jí)功能模塊,例如敏感器又分為姿態(tài)敏感器、角速度敏感器、加速度敏感器等,然后軟件編程實(shí)現(xiàn)各級(jí)功能模塊。
我國(guó)研制的北斗導(dǎo)航系統(tǒng)包含3個(gè)種類、14顆衛(wèi)星,為滿足衛(wèi)星研制過(guò)程仿真驗(yàn)證和地面測(cè)控系統(tǒng)的演練要求,需要設(shè)計(jì)一種衛(wèi)星控制系統(tǒng)模擬器,既能夠兼容三種控制系統(tǒng),又能夠滿足多星部署的要求。傳統(tǒng)控制系統(tǒng)模擬器設(shè)計(jì)方法主要存在以下不足,難以滿足北斗導(dǎo)航衛(wèi)星的仿真要求:①由于各模塊之間耦合緊密,設(shè)計(jì)復(fù)用困難,難以完成3類控制系統(tǒng)模擬器設(shè)計(jì)的通用化、標(biāo)準(zhǔn)化設(shè)計(jì);②由于結(jié)構(gòu)擴(kuò)展困難,當(dāng)需求出現(xiàn)變化時(shí),功能修改和擴(kuò)展難度大;③由于沒(méi)有給用戶提供二次開(kāi)發(fā)的接口,不利于軟件功能的完善和升級(jí)。
本文提出一種基于插件技術(shù)的控制系統(tǒng)模擬器設(shè)計(jì)思路,在此基礎(chǔ)上完成了北斗導(dǎo)航衛(wèi)星控制系統(tǒng)模擬器平臺(tái)的設(shè)計(jì)。
插件式開(kāi)發(fā)方法[2]是一種新的軟件開(kāi)發(fā)思想?;诓寮能浖到y(tǒng)在實(shí)質(zhì)上是應(yīng)用工程的一種擴(kuò)展,它使得各種功能采用插件的方式來(lái)實(shí)現(xiàn),再借用框架進(jìn)行標(biāo)準(zhǔn)化部署,實(shí)現(xiàn)宿主程序和功能插件之間互相通信,基于插件的框架平臺(tái)可以將功能插件集成到宿主程序中并高效地運(yùn)行[3]。
2.1 原理
通常使用插件結(jié)構(gòu)的軟件,由一個(gè)可執(zhí)行程序和許多完成子功能的插件組成,主要分為以下3個(gè)部分:
(1)宿主程序。一般表現(xiàn)為一個(gè)可執(zhí)行的文件,負(fù)責(zé)啟動(dòng)整個(gè)系統(tǒng),負(fù)責(zé)將所需的插件加載到自己的進(jìn)程地址空間中,是整個(gè)系統(tǒng)的核心,宿主程序必須對(duì)插件進(jìn)行管理。
(2)插件。能夠動(dòng)態(tài)地插入到系統(tǒng)中,單個(gè)插件的功能相對(duì)簡(jiǎn)單,但是多個(gè)插件能夠使系統(tǒng)功能完善,完成許多復(fù)雜的處理。在插件中必須提供給宿主程序調(diào)用的接口,當(dāng)宿主程序需要調(diào)用插件的時(shí)候能夠找到此接口,使得宿主程序能夠得到插件的相關(guān)信息,以完成與宿主程序的通信與交互。
(3)接口。宿主程序和插件能夠互相結(jié)合在一起工作,必須有一套互相協(xié)作的規(guī)則和協(xié)議使不同來(lái)源的程序互相協(xié)調(diào)工作,完成這些規(guī)則和協(xié)議的部分稱為插件系統(tǒng)的接口。這是一個(gè)邏輯上的接口,由宿主程序和插件各完成一部分,它們共同完成插件的插入、調(diào)用、停止,還要完成宿主程序與插件、插件與插件之間的交互。
由于應(yīng)用程序的功能由外部插件實(shí)現(xiàn),所以軟件的功能不再固定不變。通過(guò)插入和改變外部插件實(shí)現(xiàn)軟件功能擴(kuò)充和改進(jìn),能簡(jiǎn)單方便地做到軟件功能的靈活配置[4]。
2.2 優(yōu)點(diǎn)
插件的本質(zhì)是在不修改程序主體的情況下對(duì)軟件功能進(jìn)行加強(qiáng),從而實(shí)現(xiàn)真正意義上的“即插即用”軟件開(kāi)發(fā)[5]。其具有以下優(yōu)點(diǎn)[6]。
(1)實(shí)現(xiàn)真正意義上的軟件組件的“即插即用”。
(2)在二進(jìn)制級(jí)上集成軟件,減少大量的軟件重新編譯與發(fā)布麻煩。
(3)減少軟件各部分之間的耦合。軟件中的各個(gè)插件相互獨(dú)立作為單獨(dú)的功能模塊,宿主程序只是一個(gè)框架,真正的具體功能通過(guò)插件來(lái)提供,功能與框架沒(méi)有直接關(guān)聯(lián)。
(4)隔離了功能的變化。為軟件增加新的功能時(shí)無(wú)須修改現(xiàn)有的代碼。例如,在基于插件框架的圖片瀏覽器軟件中,增加對(duì)新的圖片類型的處理功能,只需要增加一個(gè)插件就行了,便于團(tuán)隊(duì)的合作開(kāi)發(fā)。當(dāng)插件與主程序的標(biāo)準(zhǔn)接口訂好后,新增的功能便可以分派到各個(gè)團(tuán)隊(duì)開(kāi)發(fā)。
(5)降低整個(gè)系統(tǒng)的復(fù)雜度。具體的功能細(xì)化到插件,整個(gè)系統(tǒng)的開(kāi)發(fā)工作量雖然沒(méi)有減少,但是系統(tǒng)的功能剝離后整個(gè)構(gòu)架更加清晰。
(6)能夠很好地實(shí)現(xiàn)軟件模塊的分工開(kāi)發(fā),能夠大量吸取他人的特長(zhǎng)。
(7)可較好地實(shí)現(xiàn)代碼隱藏,保護(hù)知識(shí)產(chǎn)權(quán)。
北斗導(dǎo)航衛(wèi)星分為3類,共有14顆,后續(xù)還有補(bǔ)網(wǎng)星。由于衛(wèi)星種類多,信息流差異大,要求控制系統(tǒng)模擬器軟件具備良好的可擴(kuò)展性。由于衛(wèi)星研制周期長(zhǎng),系統(tǒng)不斷優(yōu)化,控制系統(tǒng)模擬器的用戶需求勢(shì)必會(huì)跟著變化,其某一功能的更改,不能影響其它功能,則要求軟件具有良好的可修改性。由于衛(wèi)星數(shù)量多,測(cè)控系統(tǒng)需要部署多個(gè)控制系統(tǒng)模擬器,要求其軟件接口標(biāo)準(zhǔn)化,具有良好的設(shè)計(jì)復(fù)用性。插件技術(shù)的固有優(yōu)點(diǎn),恰好可以解決這些問(wèn)題,給控制系統(tǒng)模擬器研制帶來(lái)諸多好處:①出現(xiàn)需求變化時(shí),只需要修改相應(yīng)的插件或增加新的插件,滿足新的需求即可,軟件比較容易更改和擴(kuò)展;②抽象出插件與宿主程序之間的標(biāo)準(zhǔn)化的數(shù)據(jù)接口,可以屏蔽不同平臺(tái)衛(wèi)星數(shù)據(jù)流的差別,進(jìn)而解決不同平臺(tái)衛(wèi)星之間的設(shè)計(jì)重用問(wèn)題;③通過(guò)公開(kāi)插件接口,用戶可以二次開(kāi)發(fā)出個(gè)性化的插件,修改、增加控制系統(tǒng)模擬器的功能;④宿主程序+插件的軟件架構(gòu),使得宿主程序與插件實(shí)現(xiàn)松耦合,可以設(shè)計(jì)出通用的控制系統(tǒng)模擬器軟件平臺(tái),易于部署和維護(hù)升級(jí)。
2.3 插件實(shí)現(xiàn)的主要技術(shù)
1)基于動(dòng)態(tài)鏈接庫(kù)的插件技術(shù)
動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library,DLL)是一種應(yīng)用程序調(diào)用的庫(kù)文件,包括代碼和數(shù)據(jù)。該庫(kù)文件包含了與調(diào)用的進(jìn)程相互分離的函數(shù)[7]。DLL文件可以調(diào)用各種資源數(shù)據(jù),在使用DLL過(guò)程中,系統(tǒng)能夠被輕松地劃分成多個(gè)功能模塊,并且可方便地被更新到框架平臺(tái)中,且對(duì)程序的其他部分運(yùn)行沒(méi)有明顯影響[8]。例如,開(kāi)發(fā)一個(gè)員工工資的程序,但是每年的社保政策都有所區(qū)別,如果把修改的部分存入到DLL中,每年只需發(fā)布新的DLL就能夠完成對(duì)應(yīng)用的更新。
2)基于組件對(duì)象模型的插件技術(shù)
組件對(duì)象模型(COM)是微軟公司設(shè)計(jì)的一種標(biāo)準(zhǔn)組件開(kāi)發(fā)技術(shù)。在COM標(biāo)準(zhǔn)構(gòu)架下,可以開(kāi)發(fā)出各種各樣功能的組件,然后將它們按照需要組合起來(lái),構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。開(kāi)發(fā)COM組件需要復(fù)雜的開(kāi)發(fā)工具,并且需要對(duì)操作系統(tǒng)注冊(cè)表進(jìn)行操作,才能實(shí)現(xiàn)軟件的發(fā)布和部署。
3)基于反射機(jī)制的插件技術(shù)
在微軟公司的.NET平臺(tái)架構(gòu)中,采用反射機(jī)制,也可以進(jìn)行插件開(kāi)發(fā)。.NET平臺(tái)在動(dòng)態(tài)加載對(duì)應(yīng)程序集后,再經(jīng)過(guò)反射機(jī)制遍歷查詢,就可以讀取程序集中相關(guān)的類型信息,假若框架能夠識(shí)別對(duì)應(yīng)的類型信息需求,框架就會(huì)動(dòng)態(tài)生成插件實(shí)例并加載到插件容器中[9]。
這3種不同的插件開(kāi)發(fā)技術(shù)都有各自特點(diǎn)。基于組件對(duì)象模型的編寫(xiě)技術(shù)需要涉及到大量的COM技術(shù)及原理,基于反射機(jī)制開(kāi)發(fā)插件需要熟悉.NET反射機(jī)制以及C#編程語(yǔ)言,且軟件部署相對(duì)復(fù)雜?;贒LL的插件技術(shù),擴(kuò)展方便、部署簡(jiǎn)單、運(yùn)行速度快,且對(duì)于控制系統(tǒng)模擬器仿真還有一定的繼承性,本文采用此方式實(shí)現(xiàn)控制系統(tǒng)模擬器平臺(tái)的開(kāi)發(fā)。
3.1 總體設(shè)計(jì)
根據(jù)北斗導(dǎo)航系統(tǒng)的要求,該控制系統(tǒng)模擬器平臺(tái)需要完成3類、14顆衛(wèi)星的模擬仿真。首先梳理系統(tǒng)的主要功能,確定控制系統(tǒng)模擬器的基本組成,見(jiàn)圖1。然后按照插件技術(shù)的設(shè)計(jì)思路,對(duì)功能結(jié)構(gòu)進(jìn)行抽象和處理,目標(biāo)是建立一個(gè)通用的控制系統(tǒng)模擬器平臺(tái),提升軟件的可擴(kuò)展性、設(shè)計(jì)重用性,支持二次開(kāi)發(fā)??刂葡到y(tǒng)模擬器平臺(tái)采用“宿主程序”+“插件”的方式實(shí)現(xiàn),宿主程序是平臺(tái)的載體,為了達(dá)到通用性,采用的是微核機(jī)制[10]。插件是各個(gè)具體功能的載體。轉(zhuǎn)化處理后的平臺(tái)結(jié)構(gòu)如圖2所示。
1)宿主程序
由微軟公司提供的基于MFC的MDI多文檔框架具備管理多個(gè)文檔、多個(gè)視圖以及界面資源的功能,本文將其作為宿主程序的主體框架。設(shè)計(jì)為一個(gè)Windows可執(zhí)行程序,負(fù)責(zé)啟動(dòng)整個(gè)系統(tǒng),負(fù)責(zé)加載和管理各種功能插件,為各插件提供數(shù)據(jù)交換接口,實(shí)現(xiàn)插件和宿主程序、插件與插件之間的通信,同時(shí)提供基本的用戶接口、網(wǎng)絡(luò)接口、數(shù)據(jù)庫(kù)等功能。
2)插件
負(fù)責(zé)實(shí)現(xiàn)該平臺(tái)的各項(xiàng)功能,采用動(dòng)態(tài)運(yùn)行庫(kù)DLL的方式實(shí)現(xiàn),每一個(gè)插件就是一個(gè)DLL程序,實(shí)現(xiàn)一項(xiàng)特定的功能。插件遵循統(tǒng)一的加載接口,便于宿主程序進(jìn)行識(shí)別和加載。
根據(jù)控制系統(tǒng)模擬器平臺(tái)的的自身特點(diǎn),將插件分為業(yè)務(wù)插件和輔助插件兩類。業(yè)務(wù)插件是指與控制系統(tǒng)模擬器核心業(yè)務(wù)相關(guān)的功能模塊,主要包括衛(wèi)星實(shí)例插件、星上控制器插件、敏感器插件、執(zhí)行機(jī)構(gòu)插件、姿態(tài)軌道動(dòng)力學(xué)插件、遙測(cè)遙控插件等,這些功能會(huì)隨衛(wèi)星類型的不同,發(fā)生較大的變化。輔助插件主要指為完成用于接口功能的模塊,主要包括參數(shù)處理插件、指令及參數(shù)設(shè)置插件、數(shù)據(jù)存儲(chǔ)管理插件等,這些功能相對(duì)穩(wěn)定、易于實(shí)現(xiàn)標(biāo)準(zhǔn)化。將平臺(tái)的不變部分和變化部分進(jìn)行區(qū)分,可以使得插件的設(shè)計(jì)更合理、更易于擴(kuò)展。
圖1 衛(wèi)星控制系統(tǒng)模擬器的基本組成圖Fig.1 Function chart of simulator for satellite control system
圖2 基于插件技術(shù)的控制系統(tǒng)模擬器總體結(jié)構(gòu)圖Fig.2 Structural chart of simulator based on plugin
3.2 宿主程序與插件接口設(shè)計(jì)
插件與宿主程序之間的接口設(shè)計(jì)是整個(gè)控制系統(tǒng)模擬器平臺(tái)開(kāi)發(fā)過(guò)程中最重要的組成部分??刂葡到y(tǒng)模擬器平臺(tái)包括2類接口:宿主程序接口和插件接口。宿主程序接口設(shè)計(jì)的目的是實(shí)現(xiàn)插件對(duì)宿主程序功能和資源的調(diào)用,插件接口設(shè)計(jì)的目的是實(shí)現(xiàn)宿主程序?qū)Σ寮脑L問(wèn)。插件和宿主程序設(shè)計(jì)都必須嚴(yán)格遵守這兩類接口協(xié)議,兩類接口定義如下:
typedef class HostInterface ∥宿主程序接口,用于插件與宿主程序的通信
{
CWnd pWnd;//宿主程序的窗口句柄
UINTnResourceID: //宿主程序的框架資源ID
}HOST_INTERFACE;
Typedef class PlugInterface //插件接口,用于宿主程序訪問(wèn)插件
{
CString strPlugID; //插件ID號(hào)
CString strPlugName;//插件名稱
UINT strPlugType;//插件類型
intinit_plugin(HOST_INTERFACE *host); //插件初始化函數(shù)
int exit_plugin();//插件結(jié)束函數(shù)
intprocess_plugin();//插件功能調(diào)用
}PLUG_INTERFACE;
插件接口提供了插件的基本信息,包括ID號(hào)、名稱、類型,同時(shí)提供了初始化函數(shù)init_plugin()、處理函數(shù)process_plugin()、結(jié)束函數(shù)exit_plugin(),每個(gè)插件的具體功能由處理函數(shù)實(shí)現(xiàn),增加新的插件實(shí)例只要繼承此接口即可。
3.3 插件的識(shí)別和加載
插件的自動(dòng)識(shí)別和加載是宿主程序的主要功能,插件的目錄結(jié)構(gòu)如圖3所示,控制系統(tǒng)模擬器平臺(tái)分兩步識(shí)別和加載插件:
第一步,宿主程序運(yùn)行后,在插件目錄下遍歷所有“子文件夾”。提取所有“子文件夾名”生成“衛(wèi)星選擇”界面,根據(jù)用戶的選擇確定被模擬的衛(wèi)星名稱。
第二步,在衛(wèi)星名稱文件夾下遍歷所有DLL文件,確定插件是否滿足接口定義要求,如果滿足則加載,否則退出,其程序流程見(jiàn)圖4。
圖3 插件目錄結(jié)構(gòu)Fig.3 Plugins directory chart
圖4 插件加載流程Fig.4 Program flowchart of loading plugins
3.4 通信接口設(shè)計(jì)
通信接口要滿足平臺(tái)與插件間的要求,插件與插件間的要求。平臺(tái)與插件間的通信可以通過(guò)定義插件開(kāi)發(fā)接口實(shí)現(xiàn)。相比之下,插件與插件間的通信更為普遍,可以通過(guò)設(shè)計(jì)通信監(jiān)聽(tīng)器來(lái)實(shí)現(xiàn)。監(jiān)聽(tīng)器提供全局通信業(yè)務(wù),集中處理插件間的各類事件的激發(fā)與響應(yīng)[11],這樣可以減少插件與插件之間的耦合程度,其工作機(jī)制如圖5所示。插件A注冊(cè)EventX事件,當(dāng)插件B也對(duì)該事件關(guān)注時(shí),它需要去實(shí)現(xiàn)EventX事件的響應(yīng),當(dāng)事件激發(fā)時(shí)所有對(duì)該事件的消息相應(yīng)都會(huì)執(zhí)行,實(shí)現(xiàn)了插件間通信。
監(jiān)聽(tīng)器除了需要具備強(qiáng)大的事件監(jiān)聽(tīng)、數(shù)據(jù)管理和交換能力外,還應(yīng)當(dāng)為插件提供標(biāo)準(zhǔn)化、易使用的API接口,便于各插件使用,監(jiān)聽(tīng)器API接口函數(shù)見(jiàn)表1,控制系統(tǒng)模擬器平臺(tái)主要通信事件設(shè)計(jì)見(jiàn)表2。
圖5 插件之間的通信機(jī)制Fig.5 Data exchange mechanism between two plugins
序號(hào)接口方法名稱接口功能說(shuō)明1addListener注冊(cè)監(jiān)聽(tīng)器2fireEvent激發(fā)事件3removeListener刪除監(jiān)聽(tīng)器
表2 控制系統(tǒng)模擬器主要通信事件列表
針對(duì)北斗導(dǎo)航衛(wèi)星控制系統(tǒng)的仿真要求,采用基于插件技術(shù)的設(shè)計(jì)思路,建立了通用的衛(wèi)模仿真平臺(tái)。完成了3類14顆衛(wèi)星轉(zhuǎn)移軌道和工作軌道的所有工作模式仿真,主要包括太陽(yáng)捕獲模式、地球捕獲模式、遠(yuǎn)地點(diǎn)變軌模式、位置保持模式、正常運(yùn)行模式等,各項(xiàng)功能、性能指標(biāo)滿足用戶的要求,達(dá)到了預(yù)期效果。以GEO衛(wèi)星為例,圖6是衛(wèi)星遠(yuǎn)地點(diǎn)變軌模式姿態(tài)角和角速度的仿真曲線(滾動(dòng):綠色,俯仰:紅色,偏航:藍(lán)色),圖7是衛(wèi)星在軌飛行的曲線(滾動(dòng):紅色,俯仰:綠色,偏航:藍(lán)色),由圖6可以看出仿真曲線滿足X、Y、Z三軸姿態(tài)精度0.6°、0.6°、0.9°的要求,且與實(shí)際衛(wèi)星飛行結(jié)果一致性好,其它模式的仿真結(jié)果同樣滿足設(shè)計(jì)指標(biāo)要求,在此不再一一列舉。
用戶通過(guò)界面選擇具體的衛(wèi)星名稱,平臺(tái)根據(jù)選擇加載不同的插件組,完成不同衛(wèi)星的模擬,同時(shí)平臺(tái)通過(guò)加載輔助插件組,為用戶提供良好的交互界面。軟件開(kāi)發(fā)完成后,用戶需要另外增加一些衛(wèi)星故障模式模擬功能,開(kāi)發(fā)者通過(guò)增加故障模擬插件、修改動(dòng)力學(xué)插件的方法進(jìn)行補(bǔ)充,沒(méi)有影響原有的宿主程序和其它插件,體現(xiàn)了采用插件開(kāi)發(fā)技術(shù)的優(yōu)勢(shì)。
圖6 GEO衛(wèi)星姿態(tài)角和角速度曲線(控制系統(tǒng)模擬器仿真)Fig.6 Attitude angle and angular velocity of GEO satellite (by simulator)
圖7 GEO衛(wèi)星姿態(tài)角和角速度曲線(在軌遙測(cè))Fig.7 Attitude angle and angular GEO velocity (TM data)
隨著衛(wèi)星控制系統(tǒng)技術(shù)的發(fā)展,功能模塊越來(lái)越多,傳統(tǒng)的軟件開(kāi)發(fā)模式無(wú)法滿足控制系統(tǒng)模擬器可修改、可擴(kuò)展、可二次開(kāi)發(fā)的設(shè)計(jì)要求,應(yīng)用插件的開(kāi)發(fā)模式很好地解決了這個(gè)問(wèn)題。在通用控制系統(tǒng)模擬器平臺(tái)的基礎(chǔ)上,用戶可以根據(jù)任務(wù)需求不斷完善已有插件或增加新插件,使衛(wèi)星控制系統(tǒng)模擬器的功能不斷強(qiáng)大,以滿足不同航天器的使用要求。
References)
[1]吳振宇,熊曉將,宋秋靜.基于面向?qū)ο蟮男l(wèi)星模擬器設(shè)計(jì)方法[J].飛行器測(cè)控學(xué)報(bào),2008,27(2):13-16
Wu Zhenyu,Xiong Xiaojiang,Song Qiujing.Object-oriented design of satellite simulators[J].Journal of Spacecraft TT&C Technology,2008,27(2):13-16 (in Chinese)
[2]李俊娥,周洞汝.“平臺(tái)/插件”軟件體系結(jié)構(gòu)風(fēng)格[J].小型微型計(jì)算機(jī)系統(tǒng),2007,28(5):876-881
Li Jun’e,Zhou Dongru.The platform/plug-in software architecture style[J].Journal of Chinese Computer Systems,2007,28(5):876-881 (in Chinese)
[3]楊金翠,袁玉宇.基于構(gòu)件技術(shù)的軟件開(kāi)發(fā)模式研究[J].軟件工程與標(biāo)準(zhǔn)化,2007(10):33-36
Yan Jincui,Yuan Yuyu.The research of software developing model based on component techniques[J].Software Engineering and Standardization,2007(10):33-36 (in Chinese)
[4]史紀(jì)強(qiáng),何興曙,萬(wàn)志瓊,等.基于插件技術(shù)的企業(yè)應(yīng)用集成架構(gòu)研究[J].計(jì)算機(jī)與應(yīng)用化學(xué),2012,29(2):191-194
Shi Jiqiang,He Xingshu,Wan Zhiqiong,et al.Architecture research of enterprise application integration based on plugin[J].Computers and Applied Chemistry,2012,29(2):191-194 (in Chinese)
[5]鮑亮,陳平.基于插件技術(shù)的異構(gòu)數(shù)據(jù)集成[J].計(jì)算機(jī)工程,2006,32(20):86-88
Bao Liang,Chen Ping.A plug-in based solution of heterologous data integration[J].Computer Engineering,2006,32(20):86-88 (in Chinese)
[6]張怡.一種基于軟總線的插件技術(shù)[J].艦船電子工程,2012,32(3):89-91
Zhang Yi.A plug-in technology based on soft bus[J].Ship Electronic Engineering,2012,32(3):89-91 (in Chinese)
[7]嚴(yán)心淳.基于C#2.0調(diào)用Delphi7.0編寫(xiě)的動(dòng)態(tài)鏈接庫(kù)[J].電腦編程技巧與維護(hù),2012(16):6-7
Yan Xinchun.Based on the C#2.0 call Delphi7.0 prepared DLL[J].Computer Programming Skills & Maintenance,2012(16):6-7 (in Chinese)
[8]宋健.基于插件的土壤侵蝕經(jīng)驗(yàn)?zāi)P拖到y(tǒng)研究[D].開(kāi)封:河南大學(xué),2014:10
Song Jian.Based on research of the plug-in in soil erosion empirical model system[D].Kaifeng:Henan University,2014:10 (in Chinese)
[9]金萍.基于IPFIX可擴(kuò)展流信息生成系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2010:31
Jin Ping.Research and implementation of extensible flow information export system based on IPFIX[D].Beijing:Beijing University of Posts and Telecommunications,2010:31 (in Chinese)
[10]Jamshaid G Guenther R,Armin E.SRP—plug-in:a strategic release planning plug-in for visualstudio 2010[C]//Proceedings of International Conference on Software Engineering,2011:36-39
[11]譚相瑞,李海濤,韓顏?lái)?等.遙感影像解譯系統(tǒng)“平臺(tái)/插件機(jī)制”設(shè)計(jì)與實(shí)現(xiàn)[J].遙感信息,2013,28(5):73-76
Tan Xiangrui,Li Haitao,Han Yanshun,et al.Design and implementation of remote sensing image interpretation system using platform/plug-in mechanism[J].Remote Sensing Information,2013,28(5):73-76 (in Chinese)
(編輯:張小琳)
Plugin-based Design on Software Simulator for Beidou Satellite Control System
ZHANG Yu LIU Zhonghan LIN Jiawei LIU Rui
(Beijing Institute of Control Engineering,Beijing 100096,China)
To improve the changeability,scalability and reusability of traditional design method,the principle and merit of plugin technique are analyzed,and a plugin-based design method of software simulator is proposed for satellite control system.By using the software overall design of “host program” + “plugin”,the function of “host program” and “plugin” is properly designed according to the feature of simulator requirement.To make full use of the advantage of plugin technique,a micro kernel structure is designed for the host program whose function is to load and manage the various plugins and provides standard communication service between the plugins using “monitor” mode.To rationalize the design,the plugins are divided into business plugins and auxiliary plugins.The concrete interfaces of the host program,monitor and plugins are designed.The plugin-based simulation platform for general satellites control system is realized,the control system simulation for 14 satellites of three kinds is accomplished,which has achieved obvious benefits.
satellite;control system;simulator;plugin
2015-08-11;
2015-11-20
張宇,男,高級(jí)工程師,從事衛(wèi)星控制系統(tǒng)設(shè)計(jì)工作。Email:nobody1974@sina.com。
V448
A
10.3969/j.issn.1673-8748.2015.06.005