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

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

圖2 軟件流程圖
自行火炮調炮部分為一個閉環負反饋控制系統,屬于自動控制范疇[9-10]。對于自動控制系統,當存在擾動或給定值發生變化時,被調量將會偏離原來的穩定值,系統的調節作用將被調量調回原來的穩定值。因此,在設定值發生變化或有擾動時,被調量呈現先偏移原穩定值,后經過一段變化過程,最終穩定在新設定值或原穩定值。整個調節過程分為兩個階段:第一階段為被調量處于變化狀態的過渡過程,代表了系統的動態特性;第二階段為被調量處于穩定狀態,代表了系統的靜態特性[11-12]。靜態特性的評價指標一般只有一個,為穩定狀態下與設定值的偏差,即靜差。
通常,評價系統的動態性能是在階躍函數作用下進行的。一般認為,階躍輸入對系統來說是最嚴峻的輸入量。若系統在階躍輸入下的動態性能指標能夠滿足要求,那么系統在其他形式的輸入作用下,其動態性能也是令人滿意的[13]。階躍響應動態特性的評價指標較多[14],主要如下。
①上升時間tr。tr為被調量從零上升到設定值所需的時間,是系統響應速度的一種度量。上升時間越短,響應速度越快。
②峰值時間tp。tp為被調量超過設定值第一次到達峰值所需的時間,也是系統響應速度的一種度量。
③超調量σ%。σ%是描述系統相對穩定性的一種度量,可表示為:
(1)
式中:y(tp)為被調量在時刻tp時的值;y(∞)為被調量在時間無窮時的值,即被調量處于穩態時的數值。
④調整時間ts。ts為被調量開始進入偏離穩態值±Δ的誤差范圍(一般Δ取5%或2%),并且不再超過這個范圍的時間。ts越小,表示系統動態調整時間越短。
⑤衰減度ψ。ψ常被用于度量過渡過程振蕩衰減速度,可表示為:
(2)
式中:ymax為過渡過程中被調量的最大值;y1為出現ymax一個周期后的被調量的值;ψ為衰減度,ψ越大,說明系統振蕩時間越短,其反映了系統穩定性的強弱。
GUI是采用圖形方式顯示計算機操作環境的用戶接口。與計算機使用的命令行界面相比,圖形界面更易操作。MATLAB GUI是MATLAB公司提供的圖形用戶接口開發環境,可方便地建立圖形窗口、按鈕、菜單等圖形對象,并完成底層編程工作,實現人機交互[15]。
GUIDE為MATLAB圖形用戶接口開發環境。GUIDE提供了一系列用于建立GUI對象的工具,可極大地簡化設計和建立GUI過程,用于完成GUI圖形界面布局和GUI編程。該系統界面主要包括以下幾個區域:①數據導入區域,用于導入采集到的數據信息;②曲線顯示區域,用于顯示參數隨時間的變化曲線,可同時支持8組參數同時顯示,便于對比分析;③動態圖顯示區域,用于顯示火炮調炮三維和二維運動過程;④性能指標區域,用于填寫基本信息,調炮動態過程性能指標,生成報告等;⑤三維動畫演示區域,用于生成火炮調炮三維動畫,可設置不同角度觀察調炮過程;⑥二維動畫演示區域,用于生成火炮調炮在高低和方向視圖方向上的動畫。
該系統功能均通過編寫回調函數實現,主要包括曲線顯示、數顯功能、動畫演示等。
①數顯功能回調函數編寫(部分)。
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 ','時間',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('請點擊到窗口內','提示','modal');
數顯功能為點擊圖形窗口上的某一點,對應顯示此點的數值和對應時間。因此,采用figure_WindowButtonDownFcn函數。當鼠標在圖形中點擊時,調用回調函數。采用get(gca,'currentpoint')獲取鼠標點擊處的位置信息,同時會顯示相應的豎線。豎線與曲線交叉點為要顯示的數據點。若鼠標點擊處未在圖形窗口內,則會有相應提示。
②動畫演示(部分)。
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
以上回調函數部分采用火炮三維靜態示意圖繪制:由plot3函數繪制虛線,表示調炮到位后的位置;由patch函數繪制火炮本體部分。
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);
以上回調函數部分為火炮調炮三維動態調炮過程示意圖繪制,采用animatedline和addpoints函數配合實現。addpoints函數用于根據采集到的角度數據改變調炮方位,函數getframe用于存儲每一幀三維畫面,供后續三維動畫演示使用。
function pushbutton9_Callback(hObject,eventdata,handles)
M=evalin('base','M');
axes(handles.cartoon_axes_movie1);
movie(M,1,10)
以上回調函數為動畫演示。在動畫生成部分,已將圖片集放入結構體M中,只需采用movie函數調用即可。由于采集到的數據之間的時間間隔為0.1 s,相鄰圖片間的時序差為0.1 s,則movie(M,1,10)中的10代表每秒播放10張圖片。這與實際情況相吻合。
為驗證系統運行特性,將數字姿態傳感器安裝于火炮運動平臺上,以實時采集火炮調炮時的運動姿態數據。運行火炮調炮動態特性評估系統,將采集到的姿態數據導入系統中。曲線顯示區域界面如圖3所示。

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

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

圖5 動態圖顯示區域界面
圖5中,虛線為目標位置。在生成用于播放調炮過程圖片集時考慮到了數據采集時間間隔,所以三維和二維動畫演示在時序上與實際調炮過程一致。在三維和二維動畫生成后,可通過設置三維視角。動畫設置區域界面如圖6所示。通過觀察圖5中不同角度下火炮調炮過程,可以配合圖形曲線和性能指標參數對火炮調炮動態特性進行有效評估。

圖6 動畫設置區域界面
本文設計了基于MATLAB GUI的火炮調炮動態特性評估系統。該系統采用一款高靈敏度的九軸數字姿態傳感器,可實時測量火炮調炮動態姿態數據。數據導入系統后,可同時繪制多達8組曲線;同時,圖形窗口上支持數顯功能,鼠標點擊曲線上任意位置可顯示出此點數值和時間。性能指標區域能夠顯示調炮過程的動靜態性能指標數據。動畫演示部分能夠顯示與實際調炮過程同樣的過程,且能從三維、高低和方向視角重復演示調炮過程。通過曲線顯示、性能指標和動畫演示,可對火炮調炮動態特性進行有效評估,操作簡單、通用性強。