陳懷民,趙會(huì)超
(西北工業(yè)大學(xué) 無(wú)人機(jī)特種技術(shù)重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710065)
如何建立界面友好、易于操作且實(shí)時(shí)性高的實(shí)時(shí)控制系統(tǒng)是一個(gè)日益受到廣泛關(guān)注、值得深入探討的問(wèn)題。利用MATLAB的xPC平臺(tái),采用“雙機(jī)模式”(宿主機(jī)—目標(biāo)機(jī))開(kāi)發(fā)實(shí)時(shí)控制系統(tǒng)是一種可選的方式。其中,宿主機(jī)執(zhí)行用戶管理程序,提供用戶界面保證了易用性。目標(biāo)機(jī)執(zhí)行實(shí)時(shí)應(yīng)用程序,保證應(yīng)用程序執(zhí)行的實(shí)時(shí)性。但該方法無(wú)法脫離MATLAB環(huán)境形成獨(dú)立的宿主機(jī)程序,且其用戶界面單一難以滿足用戶的多樣性需求,影響了在工程實(shí)踐中的推廣應(yīng)用。
文中分析了xPC Target的應(yīng)用程序接口(Application Programming Interface,API)和 LabWindows/CVI的外部程序接口。通過(guò)在LabWindows/CVI中加載xPC的動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)了對(duì)xPC的API的調(diào)用?;诘讓覣PI,在LabWindows/CVI環(huán)境下建立了可以在Windows平臺(tái)上獨(dú)立運(yùn)行的應(yīng)用程序作為xPC平臺(tái)宿主機(jī)的人機(jī)接口。該方法不僅充分利用了xPC平臺(tái)實(shí)時(shí)性高的優(yōu)點(diǎn),而且形成了不依賴MATLAB的獨(dú)立的宿主機(jī)程序。同時(shí),采用LabWindows/CVI提供的專業(yè)虛擬儀器控件編制宿主機(jī)程序,大大提供了程序設(shè)計(jì)效率,應(yīng)用軟件界面美觀友好,操作簡(jiǎn)單靈活。
xPCTarget是美國(guó)MathWorks公司提供和發(fā)行的一個(gè)基于RTW體系框架的附加產(chǎn)品,可將Intel80x86/Pentium計(jì)算機(jī)或PC兼容機(jī)轉(zhuǎn)變?yōu)橐粋€(gè)實(shí)時(shí)系統(tǒng),而且支持多種類型的I/O設(shè)備板(包括ISA和PCI兩種類型)[1]。xPCTarget采用宿主機(jī)-目標(biāo)機(jī)的雙機(jī)模式,宿主機(jī)用于運(yùn)行控制臺(tái)程序,目標(biāo)機(jī)用于執(zhí)行RTW生成的實(shí)時(shí)代碼。xPCTarget提供了一個(gè)高度減縮的實(shí)時(shí)內(nèi)核,運(yùn)行在目標(biāo)機(jī)上,該實(shí)時(shí)內(nèi)核采用32位保護(hù)模式。xPCTarget通過(guò)以太網(wǎng)或串口實(shí)現(xiàn)宿主機(jī)和目標(biāo)機(jī)直接之間的通信。
LabWindows/CVI是National Instrument公司開(kāi)發(fā)的完全ANSI C開(kāi)發(fā)環(huán)境,將功能強(qiáng)大、使用靈活的C語(yǔ)言平臺(tái)與用于數(shù)據(jù)采集、分析和顯示的測(cè)控專業(yè)工具有機(jī)結(jié)合起來(lái)。它的交互式開(kāi)發(fā)平臺(tái)、交互式編程方法,豐富的功能面板和函數(shù)庫(kù)大大增強(qiáng)了C語(yǔ)言的功能,使設(shè)計(jì)者能以最快的速度設(shè)計(jì),調(diào)試和開(kāi)發(fā)實(shí)際的系統(tǒng)[2]。此外,LabWindows/CVI還具有強(qiáng)大的網(wǎng)絡(luò)通信數(shù)據(jù)傳輸能力,它提供了基于UDP通信協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)傳輸API函數(shù),實(shí)現(xiàn)了高效、可靠的網(wǎng)絡(luò)數(shù)據(jù)通信。
該系統(tǒng)采用宿主機(jī)—目標(biāo)機(jī)的雙機(jī)模式。宿主機(jī)執(zhí)行LabWindows/CVI建立的非實(shí)時(shí)用戶界面,實(shí)現(xiàn)目標(biāo)應(yīng)用程序的下載與數(shù)據(jù)的處理和顯示,通過(guò)調(diào)用xPC的API實(shí)現(xiàn)對(duì)目標(biāo)應(yīng)用程序的監(jiān)測(cè)和控制。目標(biāo)機(jī)實(shí)時(shí)執(zhí)行目標(biāo)應(yīng)用程序,實(shí)現(xiàn)模型的實(shí)時(shí)解算,通過(guò)UDP回傳目標(biāo)應(yīng)用程序的信號(hào)數(shù)據(jù)。在xPC平臺(tái)下,宿主機(jī)和目標(biāo)機(jī)可利用串口或網(wǎng)卡實(shí)現(xiàn)通信。同串口連接方式相比,網(wǎng)卡模式具有傳輸速度快、傳輸距離遠(yuǎn)的特點(diǎn)。另外,網(wǎng)卡模式還可連接到局域網(wǎng)上,使多臺(tái)PC機(jī)加入到xPC實(shí)時(shí)仿真系統(tǒng),故而通常采用網(wǎng)卡連接方式。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)Fig.1 System structure
xPCTarget提供了8種用于控制目標(biāo)應(yīng)用程序的用戶接口方式,分別為:
1)Matlab命令行;
2)含目標(biāo)機(jī)示波器的Simulink模式;
3)web瀏覽界面;
4)xPC目標(biāo)管理器;
5)Simulink外部模式;
6)目標(biāo)機(jī)命令行;
7)利用xPCTarget的API建立監(jiān)控程序;
8)利用xPCTarget的COM API建立監(jiān)控程序;
其中,方式 1)2)3)4)5)只能在 MATLAB 環(huán)境中運(yùn)行,無(wú)法建立獨(dú)立的宿主機(jī)應(yīng)用程序。方式6)直接在目標(biāo)機(jī)上進(jìn)行控制和顯示,易用性差且操作界面不友好。方式7)、8)可在其他設(shè)計(jì)平臺(tái)上調(diào)用xPC的API設(shè)計(jì)獨(dú)立的宿主機(jī)應(yīng)用程序。xPC的API和COM API在完成對(duì)目標(biāo)機(jī)的控制上并無(wú)本質(zhì)區(qū)別,兩者均是通過(guò)動(dòng)態(tài)鏈接庫(kù)的形式提供API函數(shù)以完成控制功能。文中采用使用xPC的API的方法實(shí)現(xiàn)宿主機(jī)監(jiān)控程序。
LabWindows/CVI支持對(duì)兼容編譯工具開(kāi)發(fā)的外部模塊的使用,也能夠開(kāi)發(fā)模塊供外部編譯工具使用。LabWindows/CVI開(kāi)發(fā)環(huán)境支持的常見(jiàn)外部模塊接口,包括以下幾種:目標(biāo)代碼文件(*.obj)、靜態(tài)庫(kù)(*.lib)、動(dòng)態(tài)鏈接庫(kù)(*.dll)。 其中最常用的方法是以LabWindows/CVI編寫主程序,使用其他開(kāi)發(fā)工具編寫DLL(Dynamic Link Library),再將DLL加入到LabWindows/CVI系統(tǒng)中使用[3]。文中通過(guò)加載xPC的動(dòng)態(tài)鏈接庫(kù)來(lái)實(shí)現(xiàn)對(duì)其API函數(shù)的調(diào)用。
為實(shí)現(xiàn)在LabWindows/CVI下對(duì)xPC Target的API的調(diào)用,首先在LabWindows/CVI環(huán)境下建立一個(gè)項(xiàng)目文件,然后在該項(xiàng)目文件根目錄下添加xpcapi.dll,xpcapi.h,xpcapiconst.h,xpcinitfree.c 4個(gè)文件。其中 xpcapi.dll是xPCTarget提供的供其他程序調(diào)用的動(dòng)態(tài)鏈接庫(kù),在調(diào)用API函數(shù)之前必須正確加載該動(dòng)態(tài)鏈接庫(kù)。xpcapi.h中定義了xPC Target的API函數(shù)庫(kù)和所需的數(shù)據(jù)結(jié)構(gòu)。xpcapiconst.h中定義了程序運(yùn)行過(guò)程中的錯(cuò)誤代號(hào)、可供使用的Scope數(shù)等常量。其中部分錯(cuò)誤代碼與LabWindows/CVI的錯(cuò)誤代碼沖突,需要更改xpcapiconst.h文件中相應(yīng)的錯(cuò)誤代碼。xpcinitfree.c中定義了int xPCInitAPI(void)用于程序設(shè)計(jì)的初始化階段顯式加載xpcapi.dll,定義了 void xPCFreeAPI(void)用于程序結(jié)束時(shí)釋放xpcapi.dll。
xPC Target的API包含了一系列可供C程序調(diào)用的函數(shù)。以下依據(jù)在程序設(shè)計(jì)中的順序介紹這些API。
1) int xPCOpenTcpIpPort (const char*ipAddress, const char*ipPort); int xPCOpenSerialPort (int comPort, int baudRate)。建立目標(biāo)機(jī)和宿主機(jī)之間的通信聯(lián)系。xPC提供了兩種通信方式:網(wǎng)卡通信和串口通信。前者用于建立網(wǎng)卡通信,后者用于建立串口通信。
2) void xPCLoadApp (int port, const char*pathstr, const char*filename)。下載目標(biāo)應(yīng)用程序到目標(biāo)機(jī)上。在每次目標(biāo)應(yīng)用程序運(yùn)行之前都需要從宿主機(jī)下載到目標(biāo)機(jī)上。
3)void xPCStartApp(int port)。啟動(dòng)目標(biāo)機(jī)上的目標(biāo)應(yīng)用程序。此函數(shù)使宿主機(jī)能夠控制目標(biāo)機(jī)上目標(biāo)應(yīng)用程序的啟動(dòng)時(shí)間。
4)void xPCStopApp(int port)。停止目標(biāo)機(jī)上的目標(biāo)應(yīng)用程序。
5)void xPCUnloadApp(int port)。 卸載目標(biāo)機(jī)上的目標(biāo)應(yīng)用程序。在運(yùn)行void xPCStopApp(int port)后,目標(biāo)應(yīng)用程序依然駐留在目標(biāo)機(jī)內(nèi)存中,可通過(guò)void xPCStartApp(int port)重新啟動(dòng)應(yīng)用程序。如果需要更換應(yīng)用程序或結(jié)束仿真,則調(diào)用此函數(shù)以卸載目標(biāo)應(yīng)用程序。
6)void xPCClosePort(int port)。 關(guān)閉目標(biāo)機(jī)和宿主機(jī)的通信聯(lián)系。無(wú)論是網(wǎng)卡通信還是串口通信均使用此函數(shù)關(guān)閉通信連接。
為了實(shí)現(xiàn)脫離MATLAB環(huán)境這一目的,需要預(yù)先生成可執(zhí)行的xPC目標(biāo)應(yīng)用程序(一個(gè)后綴名為dlm的文件)。xPC目標(biāo)應(yīng)用程序是RTW從Simulink模型生成的,可實(shí)時(shí)地運(yùn)行在無(wú)任何操作系統(tǒng)的普通PC機(jī)上。開(kāi)發(fā)過(guò)程為:先創(chuàng)建Simulink模型,設(shè)置模塊參數(shù)和采樣速率等仿真參數(shù),進(jìn)行模型的非實(shí)時(shí)仿真,然后由RTW、xPC Target和C代碼編譯器生成可在目標(biāo)機(jī)上運(yùn)行的目標(biāo)應(yīng)用程序。xPC只支持定步長(zhǎng)實(shí)時(shí)仿真,因此在設(shè)置仿真參數(shù)時(shí),解算器類型應(yīng)選擇Fixed-step。
作為C語(yǔ)言編程環(huán)境,LabWindows/CVI可在程序中直接調(diào)用xPC Target提供的API函數(shù)。在創(chuàng)建工程后,可首先建立用戶界面文件并放置各種控制和顯示控件,包括command button,numeric,Graph 等控件。 借助 LabWindows/CVI提供的豐富的虛擬儀器控件可建立美觀友好、易于操作的人機(jī)界面。完成用戶界面設(shè)計(jì)后,LabWindows/CVI可自動(dòng)生成程序框架和缺省消息處理函數(shù),只要在這些函數(shù)中添加實(shí)現(xiàn)功能所需代碼即可完成程序的設(shè)計(jì)。具體操作如下:在用戶界面窗口菜單中,選擇Code/Generate/All Code,點(diǎn)擊OK即可生成程序框架,進(jìn)入代碼編輯窗口,添加代碼完成程序設(shè)計(jì)。在2.4節(jié)中已經(jīng)介紹了如何在LabWindows/CVI中加載xPC的動(dòng)態(tài)鏈接庫(kù),加載動(dòng)態(tài)鏈接庫(kù)之后便可在LabWindows/CVI中直接調(diào)用xPC的API完成特定功能。部分程序代碼示意如下。
xPCInitAPI();
port=xPCOpenTcpIpPort(ipAddress, ipPort);
xPCLoadApp(port, “.”, “x650_cld_nl_inc_OK”);
……
id_1=xPCGetParamIdx(port, “pilot/hcmd”,“Value”);
xPCSetParam(port, id_1, &value_1);
id_2=xPCGetSignalIdx(port,signal);
sig=xPCGetSignal(port, signalID);
……
xPCStopApp(port);
xPCUnloadApp(port);
xPCFreeAPI (void);
進(jìn)行實(shí)時(shí)仿真時(shí),需要根據(jù)實(shí)驗(yàn)結(jié)果不斷調(diào)整模型參數(shù)和初始仿真條件,這將造成源程序的重新編譯和下載,帶來(lái)不必要的工作量[4]。因此,實(shí)時(shí)調(diào)整和初始化目標(biāo)應(yīng)用程序的參數(shù)就具有重要意義。xPCTarget允許在目標(biāo)應(yīng)用程序運(yùn)行時(shí)或兩次運(yùn)行之間改變模型參數(shù)并下載至目標(biāo)機(jī)。這樣就無(wú)需重新編譯鏈接生成可執(zhí)行的目標(biāo)應(yīng)用程序,便可以改變目標(biāo)應(yīng)用程序的參數(shù)[5]。
在xPC目標(biāo)應(yīng)用程序中為每一個(gè)可調(diào)參數(shù)分配唯一ID,要想修改某參數(shù)必須首先獲得其ID。xPCTarget提供了獲得參數(shù) ID的 API函數(shù),int xPCGetParamIdx (int port,const char*blockName,const char*paramName)。獲得需調(diào)參數(shù)的ID后就可以調(diào)用void xPCSetParam (int port,int paramIdx,const double*paramValue)來(lái)完成目標(biāo)應(yīng)用程序參數(shù)調(diào)整。
文中通過(guò)解析XML文件的方式實(shí)現(xiàn)目標(biāo)應(yīng)用程序的初始化。具體方法為:預(yù)先將參數(shù)信息以特定格式寫入XML文件,在目標(biāo)應(yīng)用程序加載完成后,解析XML文件得到參數(shù)信息,通過(guò)調(diào)用xPCSetParam實(shí)現(xiàn)參數(shù)的初始化。這樣做的優(yōu)點(diǎn)是提高程序的通用性,不必對(duì)源程序重新編譯和下載,通過(guò)修改XML文件內(nèi)相應(yīng)參數(shù)信息便能完成不同初始化條件的程序加載。另外,在解析XML文件的同時(shí),可使相應(yīng)的參數(shù)信息顯示在LabWindows/CVI建立的人機(jī)界面上,便于用戶了解初始化的完成情況,而且用戶可在程序運(yùn)行時(shí)對(duì)參數(shù)進(jìn)行實(shí)時(shí)調(diào)整。
另外還有一些設(shè)置、監(jiān)控目標(biāo)應(yīng)用程序在目標(biāo)機(jī)上運(yùn)行參數(shù)的函數(shù)。主要有:設(shè)置目標(biāo)應(yīng)用程序采樣時(shí)間的函數(shù):void xPCSetSampleTime (int port, double ts);獲取目標(biāo)應(yīng)用程序采樣時(shí)間的函數(shù):double xPCGetSampleTime (int port);設(shè)置目標(biāo)應(yīng)用程序停止時(shí)間的函數(shù):void xPCSetStopTime(int port, double tfinal)。
信號(hào)跟蹤是指在目標(biāo)應(yīng)用程序?qū)崟r(shí)運(yùn)行中獲取信號(hào)并使其可視化的過(guò)程。在xPC平臺(tái)下,用戶可通過(guò)以下3種方式實(shí)現(xiàn)對(duì)信號(hào)的跟蹤[6]。
1)使用xPC的目標(biāo)管理器實(shí)現(xiàn)信號(hào)跟蹤;
2)使用MATLAB命令實(shí)現(xiàn)信號(hào)跟蹤;
3)使用xPCTarget的示波器模塊實(shí)現(xiàn)信號(hào)跟蹤;
其中,前兩種方法都無(wú)法脫離MATLAB環(huán)境實(shí)現(xiàn)對(duì)信號(hào)的跟蹤顯示。第三種方法可以脫離MATLAB環(huán)境,但只能在目標(biāo)機(jī)上實(shí)現(xiàn)信號(hào)的跟蹤顯示。為此,文中提出了一種新的信號(hào)跟蹤顯示的方法。
首先,在建立目標(biāo)應(yīng)用程序的Simulink模型時(shí)將需要跟蹤顯示的信號(hào)連接至一個(gè)xpcudpbytesend模塊,并設(shè)置相應(yīng)參數(shù)(宿主機(jī)IP地址、宿主機(jī)端口號(hào)和采樣頻率)。此模塊可通過(guò)UDP向指定的宿主機(jī)發(fā)送信號(hào)數(shù)據(jù)。
其次,在CVI主控程序[7]中調(diào)用UDP接收函數(shù)UDPRead,接受目標(biāo)機(jī)通過(guò)UDP上傳的信號(hào)數(shù)據(jù)。為了能夠及時(shí)無(wú)誤、不受用戶操作干擾的接收信號(hào)數(shù)據(jù),建議開(kāi)辟一個(gè)獨(dú)立線程來(lái)接收UDP數(shù)據(jù)。
最后,在用戶界面上顯示信號(hào)的實(shí)時(shí)曲線。為了能夠準(zhǔn)確連續(xù)地顯示信號(hào)的實(shí)時(shí)曲線,在CVI中采用Graph控件實(shí)現(xiàn)示波器功能,同時(shí)利用異步定時(shí)器定時(shí)刷新示波器的顯示。在LabWindows/CVI中,異步定時(shí)器是在獨(dú)立的線程中工作,因此能夠更好的保證曲線顯示的連續(xù)性和準(zhǔn)確性。
另外,xPC還提供了直接讀取需監(jiān)測(cè)信號(hào)在采樣點(diǎn)的實(shí)時(shí)值的函數(shù)。和調(diào)整參數(shù)的方式類似,讀取監(jiān)測(cè)信號(hào)在采樣點(diǎn)的實(shí)時(shí)值需要獲得目標(biāo)應(yīng)用程序中需監(jiān)測(cè)信號(hào)的ID,函數(shù)為:int xPCGetSignalIdx (int port, const char*sigName)。 獲得需監(jiān)測(cè)信號(hào)的ID后就可以調(diào)用 double xPCGetSignal(int port,int sigNum)獲得該信號(hào)的當(dāng)前值。
根據(jù)上述設(shè)計(jì)和實(shí)現(xiàn)方法,構(gòu)建了基于xPC和LabWindows/CVI的實(shí)時(shí)仿真系統(tǒng)。為驗(yàn)證系統(tǒng)性能,對(duì)四旋翼無(wú)人機(jī)模型進(jìn)行了實(shí)時(shí)仿真實(shí)驗(yàn)。宿主機(jī)采用Pentium4處理器的普通PC機(jī),目標(biāo)機(jī)采用研華Advantech610工控機(jī)。宿主機(jī)和目標(biāo)機(jī)之間采用網(wǎng)卡通信,選用Intel82559網(wǎng)卡。仿真結(jié)果如圖2、圖3所示。
圖2 LabWindows/CVI建立的人機(jī)交互界面Fig.2 User interface based on LabWindows/CVI
圖3 目標(biāo)機(jī)示波器顯示的仿真結(jié)果Fig.3 Simulation results on xPCtarget’s scope
實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具備仿真步長(zhǎng)1 ms,數(shù)據(jù)通訊周期20 ms,顯示更新周期20 ms的實(shí)時(shí)仿真能力,同時(shí)可實(shí)現(xiàn)參數(shù)的在線調(diào)整和信號(hào)跟蹤顯示。
文中系統(tǒng)分析了xPC Target的用戶接口和LabWindows/CVI的外部程序接口。通過(guò)在LabWindows/CVI中加載xPC的動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)了對(duì)xPC的API的調(diào)用?;诘讓覣PI函數(shù)開(kāi)發(fā)主控臺(tái)仿真控制軟件,使宿主機(jī)可脫離MATLAB環(huán)境實(shí)現(xiàn)獨(dú)立的控制臺(tái)程序。該方法既能有效發(fā)揮xPCTarget的實(shí)時(shí)性優(yōu)勢(shì),又能充分利用LabWindows/CVI豐富的專業(yè)虛擬儀器控件。同時(shí)該方法實(shí)現(xiàn)了目標(biāo)應(yīng)用程序的在線調(diào)參和信號(hào)的跟蹤顯示,為xPC平臺(tái)下的實(shí)時(shí)控制策略在工程實(shí)踐中推廣應(yīng)用提供了有益的參考。
[1]王先澤,劉志勤,陳懷民,等.基于xPC目標(biāo)的飛控系統(tǒng)半實(shí)物實(shí)時(shí)仿真[J].科學(xué)技術(shù)與工程,2007(21):5609-5613.WANG Xian-ze,LIU Zhi-qin,CHEN Huai-min,et al.Realtime simulation of semi-hardware are in the loop with flight control system based on xPC target[J].Science Technology and Engineering,2007(21):5609-5613.
[2]王曉東,尚耀星,吳帥.基于LabWindows/CVI和RTX的實(shí)時(shí)測(cè)控軟件設(shè)計(jì)[J].科技信息,2008(19):397-398.WANG Xiao-dong,SHANG Yao-xing,WU Shuai.Design of real-time control software with LabWindows/CVI and RTX[J].Science&Technology Information,2008(19):397-398.
[3]劉立月,謝昕,劉覺(jué)夫.基于LabWindows/CVI動(dòng)態(tài)鏈接庫(kù)的VC接口實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006(10-1):190-192 LIU Li-yue,XIN Xin,LIU Jue-fu.Interface implementation of VC Based on LabWindows/CVI’s DLL [J].Control&Automation,2006(10-1):190-192.
[4]趙斌,周軍,盧曉東.基于xPCTarget的飛行器半實(shí)物仿真系統(tǒng)研究[J].計(jì)算機(jī)測(cè)量與控制,2011(19):625-628 ZHAO Bin,ZHOU Jun,LU Xiao-dong.Hardware in loop simulation system for vehicle based on xPC target[J].Computer Measurement&Control,2011(19):625-628.
[5]王爽心,王玎婷,楊輝,等.基于xPC目標(biāo)的液壓疲勞控制系統(tǒng)半實(shí)物實(shí)時(shí)仿真[J].儀器儀表學(xué)報(bào),2006(6):567-569.WANG Shuang-xin,WANG Ding-ting,YANG Hui,et al.Hydraulic fatigue control systems in real-time simulation based on xPC target environment with semi-hardware in the loop[J].Chinese Journal of Scientific Instrument,2006(6):567-569.
[6]進(jìn)兵,黃一敏.基于xPC的無(wú)人機(jī)飛行控制系統(tǒng)的快速原型設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào),2008(9):479-482.JIN Bing,HUANG Yi-min.Rapid prototype design for flight control system of UAV based on xPC[J].Journal of System Simulation,2008(9):479-482.
[7]施先旺,王鵬武.發(fā)動(dòng)機(jī)工況實(shí)時(shí)調(diào)節(jié)軟件設(shè)計(jì)[J].火箭推進(jìn),2012(5):70-76.SHIXian-wang,WANGPeng-wu.Design of real-time regulation software for engine power[J].Journal of Rocket Propulsion,2012(5):70-76.