韓 超,康海英,關(guān)貞珍 ,田 鵬
(1.陸軍工程大學(xué)石家莊校區(qū),河北 石家莊 050003;2.中國(guó)人民解放軍32256部隊(duì),廣西 桂林 541000)
隨著新型現(xiàn)代化戰(zhàn)爭(zhēng)模式的發(fā)展,現(xiàn)代戰(zhàn)場(chǎng)環(huán)境瞬息萬(wàn)變,對(duì)自行火炮的機(jī)動(dòng)性能有了更高的要求。自動(dòng)調(diào)炮性能作為自行火炮重要的戰(zhàn)技指標(biāo),對(duì)其能否實(shí)現(xiàn)首群覆蓋目標(biāo)、先敵射擊和快速防御有著重要的影響。因此,調(diào)炮性能的評(píng)估應(yīng)貫穿于自行火炮日常使用和維修過(guò)程中。自行火炮隨動(dòng)系統(tǒng)為火炮調(diào)炮控制和驅(qū)動(dòng)機(jī)構(gòu),機(jī)械傳動(dòng)部分為火炮調(diào)炮的執(zhí)行機(jī)構(gòu)。隨著實(shí)戰(zhàn)化進(jìn)程穩(wěn)步推進(jìn),裝備日常訓(xùn)練日益增多,使隨動(dòng)系統(tǒng)和機(jī)械傳動(dòng)部分已不再處于出廠時(shí)的運(yùn)行工況,調(diào)炮性能呈現(xiàn)弱化趨勢(shì)。為避免影響戰(zhàn)技指標(biāo),需定期檢測(cè)火炮的調(diào)炮性能,以及時(shí)進(jìn)行控制器參數(shù)和相關(guān)機(jī)構(gòu)的調(diào)整。
現(xiàn)階段,火炮調(diào)炮性能評(píng)估主要集中在調(diào)炮精度上,文獻(xiàn)[1]~文獻(xiàn)[3]主要對(duì)調(diào)炮精度測(cè)量方法及裝置進(jìn)行優(yōu)化,但是調(diào)炮精度只能反映調(diào)炮的靜態(tài)特性。文獻(xiàn)[4]雖然可以檢測(cè)出調(diào)炮動(dòng)態(tài)特性指標(biāo),但是需要在隨動(dòng)系統(tǒng)中植入硬件板卡,通用性不佳;同時(shí),可能會(huì)導(dǎo)致一些兼容性問(wèn)題。本文針對(duì)以上問(wèn)題,采用將數(shù)字姿態(tài)傳感器安裝于火炮運(yùn)動(dòng)平臺(tái)上的方法,實(shí)時(shí)采集姿態(tài)數(shù)據(jù)。運(yùn)用MATLAB圖形用戶接口開(kāi)發(fā)環(huán)境(graphical user interface development environment,GUIDE),開(kāi)發(fā)MATLAB圖形用戶界面(graphical user interface,GUI)軟件系統(tǒng),用于分析采集到的姿態(tài)數(shù)據(jù),并計(jì)算出動(dòng)態(tài)性能指標(biāo)。同時(shí),該設(shè)計(jì)還可實(shí)現(xiàn)曲線繪制、動(dòng)畫(huà)演示等功能,使用人員可結(jié)合曲線繪制、動(dòng)態(tài)性能指標(biāo)和動(dòng)畫(huà)演示,對(duì)火炮調(diào)炮動(dòng)態(tài)特性進(jìn)行有效評(píng)估。系統(tǒng)具有操作簡(jiǎn)單、通用性強(qiáng)等特點(diǎn)。
在硬件方面,采用一款高靈敏度的九軸數(shù)字姿態(tài)傳感器。該姿態(tài)傳感器集成了高精度的陀螺儀、加速度器、地磁場(chǎng)傳感器和高性能微處理器,運(yùn)用先進(jìn)的動(dòng)力學(xué)解算和卡爾曼動(dòng)態(tài)濾波算法[5-7],能夠快速、準(zhǔn)確地求解出被測(cè)物體的實(shí)時(shí)運(yùn)動(dòng)姿態(tài)。姿態(tài)測(cè)量精度在靜態(tài)環(huán)境下為0.05°、動(dòng)態(tài)環(huán)境下為0.1°。由于本系統(tǒng)主要對(duì)火炮調(diào)炮的動(dòng)態(tài)特性進(jìn)行評(píng)估,而動(dòng)態(tài)特性指標(biāo)多與時(shí)間相關(guān),所以上述姿態(tài)測(cè)量精度能夠滿足要求。姿態(tài)傳感器通過(guò)USB轉(zhuǎn)晶體管-晶體管邏輯(transistor-transistor logic,TTL)電話串口模塊與電腦連接,可實(shí)現(xiàn)姿態(tài)數(shù)據(jù)的采集。硬件結(jié)構(gòu)如圖1所示。

圖1 硬件結(jié)構(gòu)圖
軟件系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)為本系統(tǒng)設(shè)計(jì)的重要部分,主要完成對(duì)采集數(shù)據(jù)的分析處理工作。采用MATLAB儀器控制工具箱(Instrument Control Toolbox)完成與姿態(tài)傳感器之間的串口數(shù)據(jù)通信[8]。開(kāi)發(fā)MATLAB GUI系統(tǒng),導(dǎo)入采集到的姿態(tài)信息數(shù)據(jù),分析處理姿態(tài)數(shù)據(jù),完成靜差、超調(diào)量、衰減度、延遲時(shí)間、上升時(shí)間、過(guò)渡時(shí)間和峰值時(shí)間等動(dòng)靜態(tài)性能指標(biāo)數(shù)據(jù)的計(jì)算。生成動(dòng)畫(huà)演示的圖片集合,圖片間的時(shí)間間隔為實(shí)際采樣時(shí)間間隔,使得播放動(dòng)畫(huà)時(shí)能夠與實(shí)際調(diào)炮過(guò)程在時(shí)序和姿態(tài)上保持一致。動(dòng)畫(huà)生成時(shí)可設(shè)置觀察視角,實(shí)現(xiàn)從多個(gè)角度觀看調(diào)炮動(dòng)畫(huà)演示過(guò)程。曲線顯示區(qū)域可同時(shí)支持8組參數(shù)曲線顯示。數(shù)顯功能為點(diǎn)擊圖形窗口上的某一點(diǎn),對(duì)應(yīng)顯示此點(diǎn)的數(shù)值和對(duì)應(yīng)時(shí)間,便于對(duì)比分析。圖2為軟件流程圖。

圖2 軟件流程圖
自行火炮調(diào)炮部分為一個(gè)閉環(huán)負(fù)反饋控制系統(tǒng),屬于自動(dòng)控制范疇[9-10]。對(duì)于自動(dòng)控制系統(tǒng),當(dāng)存在擾動(dòng)或給定值發(fā)生變化時(shí),被調(diào)量將會(huì)偏離原來(lái)的穩(wěn)定值,系統(tǒng)的調(diào)節(jié)作用將被調(diào)量調(diào)回原來(lái)的穩(wěn)定值。因此,在設(shè)定值發(fā)生變化或有擾動(dòng)時(shí),被調(diào)量呈現(xiàn)先偏移原穩(wěn)定值,后經(jīng)過(guò)一段變化過(guò)程,最終穩(wěn)定在新設(shè)定值或原穩(wěn)定值。整個(gè)調(diào)節(jié)過(guò)程分為兩個(gè)階段:第一階段為被調(diào)量處于變化狀態(tài)的過(guò)渡過(guò)程,代表了系統(tǒng)的動(dòng)態(tài)特性;第二階段為被調(diào)量處于穩(wěn)定狀態(tài),代表了系統(tǒng)的靜態(tài)特性[11-12]。靜態(tài)特性的評(píng)價(jià)指標(biāo)一般只有一個(gè),為穩(wěn)定狀態(tài)下與設(shè)定值的偏差,即靜差。
通常,評(píng)價(jià)系統(tǒng)的動(dòng)態(tài)性能是在階躍函數(shù)作用下進(jìn)行的。一般認(rèn)為,階躍輸入對(duì)系統(tǒng)來(lái)說(shuō)是最嚴(yán)峻的輸入量。若系統(tǒng)在階躍輸入下的動(dòng)態(tài)性能指標(biāo)能夠滿足要求,那么系統(tǒng)在其他形式的輸入作用下,其動(dòng)態(tài)性能也是令人滿意的[13]。階躍響應(yīng)動(dòng)態(tài)特性的評(píng)價(jià)指標(biāo)較多[14],主要如下。
①上升時(shí)間tr。tr為被調(diào)量從零上升到設(shè)定值所需的時(shí)間,是系統(tǒng)響應(yīng)速度的一種度量。上升時(shí)間越短,響應(yīng)速度越快。
②峰值時(shí)間tp。tp為被調(diào)量超過(guò)設(shè)定值第一次到達(dá)峰值所需的時(shí)間,也是系統(tǒng)響應(yīng)速度的一種度量。
③超調(diào)量σ%。σ%是描述系統(tǒng)相對(duì)穩(wěn)定性的一種度量,可表示為:
(1)
式中:y(tp)為被調(diào)量在時(shí)刻tp時(shí)的值;y(∞)為被調(diào)量在時(shí)間無(wú)窮時(shí)的值,即被調(diào)量處于穩(wěn)態(tài)時(shí)的數(shù)值。
④調(diào)整時(shí)間ts。ts為被調(diào)量開(kāi)始進(jìn)入偏離穩(wěn)態(tài)值±Δ的誤差范圍(一般Δ取5%或2%),并且不再超過(guò)這個(gè)范圍的時(shí)間。ts越小,表示系統(tǒng)動(dòng)態(tài)調(diào)整時(shí)間越短。
⑤衰減度ψ。ψ常被用于度量過(guò)渡過(guò)程振蕩衰減速度,可表示為:
(2)
式中:ymax為過(guò)渡過(guò)程中被調(diào)量的最大值;y1為出現(xiàn)ymax一個(gè)周期后的被調(diào)量的值;ψ為衰減度,ψ越大,說(shuō)明系統(tǒng)振蕩時(shí)間越短,其反映了系統(tǒng)穩(wěn)定性的強(qiáng)弱。
GUI是采用圖形方式顯示計(jì)算機(jī)操作環(huán)境的用戶接口。與計(jì)算機(jī)使用的命令行界面相比,圖形界面更易操作。MATLAB GUI是MATLAB公司提供的圖形用戶接口開(kāi)發(fā)環(huán)境,可方便地建立圖形窗口、按鈕、菜單等圖形對(duì)象,并完成底層編程工作,實(shí)現(xiàn)人機(jī)交互[15]。
GUIDE為MATLAB圖形用戶接口開(kāi)發(fā)環(huán)境。GUIDE提供了一系列用于建立GUI對(duì)象的工具,可極大地簡(jiǎn)化設(shè)計(jì)和建立GUI過(guò)程,用于完成GUI圖形界面布局和GUI編程。該系統(tǒng)界面主要包括以下幾個(gè)區(qū)域:①數(shù)據(jù)導(dǎo)入?yún)^(qū)域,用于導(dǎo)入采集到的數(shù)據(jù)信息;②曲線顯示區(qū)域,用于顯示參數(shù)隨時(shí)間的變化曲線,可同時(shí)支持8組參數(shù)同時(shí)顯示,便于對(duì)比分析;③動(dòng)態(tài)圖顯示區(qū)域,用于顯示火炮調(diào)炮三維和二維運(yùn)動(dòng)過(guò)程;④性能指標(biāo)區(qū)域,用于填寫(xiě)基本信息,調(diào)炮動(dòng)態(tài)過(guò)程性能指標(biāo),生成報(bào)告等;⑤三維動(dòng)畫(huà)演示區(qū)域,用于生成火炮調(diào)炮三維動(dòng)畫(huà),可設(shè)置不同角度觀察調(diào)炮過(guò)程;⑥二維動(dòng)畫(huà)演示區(qū)域,用于生成火炮調(diào)炮在高低和方向視圖方向上的動(dòng)畫(huà)。
該系統(tǒng)功能均通過(guò)編寫(xiě)回調(diào)函數(shù)實(shí)現(xiàn),主要包括曲線顯示、數(shù)顯功能、動(dòng)畫(huà)演示等。
①數(shù)顯功能回調(diào)函數(shù)編寫(xiě)(部分)。
function figure1_WindowButtonDownFcn(hObject,eventdata,handles)
point=get(gca,'currentpoint');
if point(1,1)>=0&&point(1,1)<=B(end)&&point(1,2)>=min(N(:,value))-0.2*abs(max(N(:,value))-min(N(:,value)))...
&&point(1,2)<=max(N(:,value))+0.2*abs(max(N(:,value))-min(N(:,value)))
[hang1,lie1]=min(abs(B-point(1,1)));
y_value=N(lie1,value);
str1=sprintf('%s y=%.2f ',T{1,value},y_value);
str2=sprintf('%s x=%.2f ','時(shí)間',point(1,1));
h2=line([point(1,1) point(1,1)],[ylim(1) ylim(2)]);
assignin('base','h2',h2)
h3 = legend(str1,str2,'location','Best');
else
h6=warndlg('請(qǐng)點(diǎn)擊到窗口內(nèi)','提示','modal');
數(shù)顯功能為點(diǎn)擊圖形窗口上的某一點(diǎn),對(duì)應(yīng)顯示此點(diǎn)的數(shù)值和對(duì)應(yīng)時(shí)間。因此,采用figure_WindowButtonDownFcn函數(shù)。當(dāng)鼠標(biāo)在圖形中點(diǎn)擊時(shí),調(diào)用回調(diào)函數(shù)。采用get(gca,'currentpoint')獲取鼠標(biāo)點(diǎn)擊處的位置信息,同時(shí)會(huì)顯示相應(yīng)的豎線。豎線與曲線交叉點(diǎn)為要顯示的數(shù)據(jù)點(diǎn)。若鼠標(biāo)點(diǎn)擊處未在圖形窗口內(nèi),則會(huì)有相應(yīng)提示。
②動(dòng)畫(huà)演示(部分)。
function pushbutton7_Callback(hObject,eventdata,handles)
axes(handles.cartoon_axes1);
grid on
barrel_long=40;
plot_tempo1=plot3([20,20+1.5*barrel_long*sin(N(end:end,10)/180*pi)],[25,(25+1.5*barrel_long*cos((N(end:end,8))/180*pi))*...
cos((N(end:end,10))/180*pi)],[20,20+1.5*barrel_long*sin(N(end:end,8)/180*pi)],'color','r','linestyle',...
'--','linewidth',2,'EraseMode','background');
v=[0 0 0;0 50 0;40 50 0;40 0 0;0 0 20;0 50 20;40 50 20;40 0 20];
f= [1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];
patch('Faces',f,'Vertices',v,'FaceColor','b','EraseMode','background');
angle_turnover=str2num(get(handles.edit16,'string'));
angle_overlook=str2num(get(handles.edit17,'string'));
assignin('base','angle_turnover',angle_turnover);
assignin('base','angle_overlook',angle_overlook);
view(angle_turnover,angle_overlook)
axis([-50 100 -50 100 -50 100])
axis manual
hold on
以上回調(diào)函數(shù)部分采用火炮三維靜態(tài)示意圖繪制:由plot3函數(shù)繪制虛線,表示調(diào)炮到位后的位置;由patch函數(shù)繪制火炮本體部分。
for s=1:1:length(B)
axes(handles.cartoon_axes1)
grid on
h =animatedline('Color','r','LineWidth',5);
addpoints(h,[20,20+1.5*barrel_long*sin(N(M_num:M_num,10)/180*pi)],[25,(25+1.5*barrel_long*cos((N(M_num:M_num,8))/180*pi))*...
cos((N(M_num:M_num,10))/180*pi)],[20,20+1.5*barrel_long*sin(N(M_num:M_num,8)/180*pi)]);
drawnow
axes_now=gca;
axes_now.Units = 'pixels';
pos =axes_now.Position;
marg = 60;
rect = [0,0,pos(3)+0*marg,pos(4)+0*marg];
M(M_num)=getframe(gca,rect);
以上回調(diào)函數(shù)部分為火炮調(diào)炮三維動(dòng)態(tài)調(diào)炮過(guò)程示意圖繪制,采用animatedline和addpoints函數(shù)配合實(shí)現(xiàn)。addpoints函數(shù)用于根據(jù)采集到的角度數(shù)據(jù)改變調(diào)炮方位,函數(shù)getframe用于存儲(chǔ)每一幀三維畫(huà)面,供后續(xù)三維動(dòng)畫(huà)演示使用。
function pushbutton9_Callback(hObject,eventdata,handles)
M=evalin('base','M');
axes(handles.cartoon_axes_movie1);
movie(M,1,10)
以上回調(diào)函數(shù)為動(dòng)畫(huà)演示。在動(dòng)畫(huà)生成部分,已將圖片集放入結(jié)構(gòu)體M中,只需采用movie函數(shù)調(diào)用即可。由于采集到的數(shù)據(jù)之間的時(shí)間間隔為0.1 s,相鄰圖片間的時(shí)序差為0.1 s,則movie(M,1,10)中的10代表每秒播放10張圖片。這與實(shí)際情況相吻合。
為驗(yàn)證系統(tǒng)運(yùn)行特性,將數(shù)字姿態(tài)傳感器安裝于火炮運(yùn)動(dòng)平臺(tái)上,以實(shí)時(shí)采集火炮調(diào)炮時(shí)的運(yùn)動(dòng)姿態(tài)數(shù)據(jù)。運(yùn)行火炮調(diào)炮動(dòng)態(tài)特性評(píng)估系統(tǒng),將采集到的姿態(tài)數(shù)據(jù)導(dǎo)入系統(tǒng)中。曲線顯示區(qū)域界面如圖3所示。

圖3 曲線顯示區(qū)域界面
圖3中,可通過(guò)下拉菜單選擇顯示某一項(xiàng)參數(shù)曲線。其中:ax、ay、az分別代表x、y、z三個(gè)軸向的加速度;wx、wy、wz分別表示x、y、z三個(gè)軸向上的角速度;AngleX、AngleY、AngleZ分別表示x、y、z三個(gè)軸向的角度。橫軸為時(shí)間,縱軸為參數(shù)數(shù)值。點(diǎn)擊圖形窗口上任意點(diǎn),會(huì)出現(xiàn)一條豎線。豎線與曲線交點(diǎn)的時(shí)間和數(shù)值信息會(huì)在圖形窗口空白處顯示。
性能指標(biāo)區(qū)域界面如圖4所示。經(jīng)過(guò)底層程序運(yùn)行,可計(jì)算出靜差、超調(diào)量、衰減度、延遲時(shí)間、上升時(shí)間等動(dòng)靜態(tài)性能指標(biāo)數(shù)據(jù)。

圖4 性能指標(biāo)顯示區(qū)域界面
下面以高低調(diào)炮過(guò)程為例,分析調(diào)炮過(guò)程。X軸向角度為火炮高低角度,從圖3第1個(gè)窗口中的圖形曲線可直觀看出整個(gè)調(diào)炮過(guò)程較為平穩(wěn)。圖形曲線只有一個(gè)波峰,表明系統(tǒng)穩(wěn)定性較好。從圖4性能指標(biāo)界面可得超調(diào)量為0.3%,數(shù)值較小,表明系統(tǒng)穩(wěn)定性較好。同時(shí),上升時(shí)間、過(guò)渡時(shí)間和峰值時(shí)間分別為4.45 s、5.02 s和4.75 s,均較短,表明系統(tǒng)響應(yīng)速度快,能夠快速穩(wěn)定在設(shè)定值上。由于此系統(tǒng)采用的數(shù)字姿態(tài)傳感器并不屬于高精度檢測(cè)設(shè)備,在靜態(tài)特性性能指標(biāo)的測(cè)量上相比于精密儀器誤差較大,在此不作為有效數(shù)據(jù)。考慮到火炮調(diào)炮速度不會(huì)太快,數(shù)字姿態(tài)傳感器響應(yīng)速度可以滿足要求,所以動(dòng)態(tài)性能指標(biāo)數(shù)據(jù),尤其是上升時(shí)間、過(guò)渡時(shí)間和峰值時(shí)間等,具備較高的準(zhǔn)確度。
在動(dòng)態(tài)圖顯示區(qū)域可生成三維和二維視角的調(diào)炮過(guò)程。動(dòng)態(tài)圖顯示區(qū)域界面如圖5所示。

圖5 動(dòng)態(tài)圖顯示區(qū)域界面
圖5中,虛線為目標(biāo)位置。在生成用于播放調(diào)炮過(guò)程圖片集時(shí)考慮到了數(shù)據(jù)采集時(shí)間間隔,所以三維和二維動(dòng)畫(huà)演示在時(shí)序上與實(shí)際調(diào)炮過(guò)程一致。在三維和二維動(dòng)畫(huà)生成后,可通過(guò)設(shè)置三維視角。動(dòng)畫(huà)設(shè)置區(qū)域界面如圖6所示。通過(guò)觀察圖5中不同角度下火炮調(diào)炮過(guò)程,可以配合圖形曲線和性能指標(biāo)參數(shù)對(duì)火炮調(diào)炮動(dòng)態(tài)特性進(jìn)行有效評(píng)估。

圖6 動(dòng)畫(huà)設(shè)置區(qū)域界面
本文設(shè)計(jì)了基于MATLAB GUI的火炮調(diào)炮動(dòng)態(tài)特性評(píng)估系統(tǒng)。該系統(tǒng)采用一款高靈敏度的九軸數(shù)字姿態(tài)傳感器,可實(shí)時(shí)測(cè)量火炮調(diào)炮動(dòng)態(tài)姿態(tài)數(shù)據(jù)。數(shù)據(jù)導(dǎo)入系統(tǒng)后,可同時(shí)繪制多達(dá)8組曲線;同時(shí),圖形窗口上支持?jǐn)?shù)顯功能,鼠標(biāo)點(diǎn)擊曲線上任意位置可顯示出此點(diǎn)數(shù)值和時(shí)間。性能指標(biāo)區(qū)域能夠顯示調(diào)炮過(guò)程的動(dòng)靜態(tài)性能指標(biāo)數(shù)據(jù)。動(dòng)畫(huà)演示部分能夠顯示與實(shí)際調(diào)炮過(guò)程同樣的過(guò)程,且能從三維、高低和方向視角重復(fù)演示調(diào)炮過(guò)程。通過(guò)曲線顯示、性能指標(biāo)和動(dòng)畫(huà)演示,可對(duì)火炮調(diào)炮動(dòng)態(tài)特性進(jìn)行有效評(píng)估,操作簡(jiǎn)單、通用性強(qiáng)。