陳鄧安,沈培志,王子明
(海軍航空工程學院,山東煙臺 264001)
武器射擊和戰斗過程是隨機過程,通過建立一個隨機過程概率模型,使其參數等于問題的解,然后通過對隨機過程概率模型的觀察抽樣試驗,計算所求參數的統計特征,最后給出所示解的近似值[1],這就是蒙特卡羅模擬。目前,進行作戰效能評估的仿真實驗方法主要有兩種:解析法和統計實驗法。對于不規則目標或者復雜形狀目標而言,很難甚至不能找到合適的解析方法進行計算。
結合像素點法進行蒙特卡羅模擬,是一種分析武器射擊或者戰斗過程的作戰效能的新方法,既直觀,又實用,而且易于仿真。在目標實物圖像狀態下,運用像素點法進行仿真射擊,根據射彈的分布規律,結合蒙特卡羅方法仿真生成其彈著點位置,并將射擊彈著點以某一區別于背景色的特定顏色直接在原目標圖像上顯示。這樣,仿真射擊后,在屏幕上就能顯示本次射擊彈著點的分布情況,凡是被擊中的點都將顯示出該種特定顏色,通過統計目標幅員內的顯示該種特定顏色的像素點個數所占總射擊次數的百分比,即可得到相對命中概率。
數字圖像在計算機上以位圖形式存在,位圖是一個矩形點陣,第一點陣為一像素。像素是數字圖像的基本單位,如一幅m×n大小的圖像是由m×n個像素組成,對于灰度圖像而言,各個像素的明確程度由一個稱為灰度值的數值表示[2]。
圖像中的每個像素取實值,記R為實數集合,X為定義域,則一幅圖像p定義為:

其中:x為像素位置,p(x)為x處的像素值,[x,p(x)]是圖像p的一個元素。
在Matlab軟件中,作為Matlab基本數據類型的數值數組非常適于表達圖像,矩陣的元素和圖像的像素之間有著十分自然的對應關系。
1)初步處理目標實物圖像
通過光學偵察等手段,獲取清晰度滿足使用要求的目標實物圖像。對圖像進行初步處理,從背景中區分目標。為便于計算,將圖像處理為灰度圖像,或者處理為黑白位圖。如果目標不同部位的重要性不同,可以使用不同灰度等級或者不同顏色表示目標不同部位的重要性。
2)在Matlab軟件中導入圖像數據
在Matlab軟件中導入圖像,并將圖像數據存入數組中。在Matlab軟件命令窗口中輸入命令:A=imread(‘d:squre.bmp’),即導入計算機 D 盤根目錄下squre.bmp 的圖像[2],得到數組 A。
執行命令后,在命令窗口顯示出許多數據,即數組A的元素值,這些數據同時也表示squre.bmp圖片各個像素點的顏色。觀察數組A,其元素值主要由0和255構成,表明該圖像為黑白位圖。如果是灰度圖像,則數據表示各像素點的灰度等級。如果是彩色圖像,則由3種顏色疊加而成[2]。
繼續執行命令:S=size(A),得到 S=[50,50],表明該圖像寬為50像素,高為50像素。
3)直接在目標實物圖像中進行模擬射擊
受隨機因素的影響,模擬射擊彈著點坐標服從正態分布。以該圖像中心坐標為瞄準點進行模擬射擊,運用蒙特卡羅方法仿真生成彈著點坐標,將每次射擊的彈著點以區別于目標區域著色的特定顏色顯示,每一次射擊,均能在計算機屏幕上形象的顯示射擊的彈著點分布情況。
如使用火炮對目標O進行射擊,其彈著點服從正態分布,利用正態分布的隨機數來模擬確定彈著點坐標(xi,yi),直接在目標實物圖像上以該坐標畫點,并以規定的特定顏色顯示,可以得到彈著點分布圖。
4)統計分析模擬射擊的命中概率
目標實物圖像上,凡是命中區域都將顯示出該種特定顏色。通過統計分析目標區域內顯示該種顏色的像素點的分布,可以精確分析射擊的命中情況。多次射擊后,統計目標實物區域內的顯示該種特定顏色的像素點個數,即為本輪射擊的命中次數,計算其占總射擊次數的百分比,得到相對命中概率。
光學偵察發現低空轟炸的敵機,將偵察得到的圖片經初步處理后如圖1所示。使用小口徑高炮對敵機進行射擊,設射擊系統的系統誤差為0,彈著點坐標因隨機因素影響服從正態分布[3],中間偏差為σx和σy。該小口徑高炮向敵機發現100發炮彈,試分析射擊命中概率。
1)處理實物圖片
為便于計算,將飛機圖片處理為黑白位圖,如圖1所示。圖像高700像素、寬1000像素。

圖1 經過簡單處理的飛機圖片
2)導入圖像數據
在Matlab軟件中調用imread命令導入圖像文件,并將數據存入數組A。
A=imread(‘d:plane.bmp’)
讀入D盤根目錄下命名為plane.bmp的位圖,并將圖像數據存入數組A中。觀察數組A,各元素的數值非0即1,表示該圖片為黑白位圖。原圖片中黑色部分像素對應數值為1,圖像白色部分像素對應數值為 0[2]。
對數組A進行初步分析:
size(A)=[700,1000]
A為700×1000的矩陣,同時也表示該圖像高700像素,寬1000像素。
A(350,500)=0
即數組A中,第350行第500列的數值為0。該位圖中采用矩陣式坐標,原點在圖像左上角,坐標單位為像素,則說明位置為(350,500)的像素點是黑色。
3)統計所有著黑色的像素點坐標
通過查找數組A中數值為1元素的對應下標,從而確定所有著黑色的像素點坐標。
調用find命令,查找數組A所有數值為1的元素雙下標[4],并將存儲在[y,x]中。
[y,x]=find(A==1);
令 Target=[y,x]。
4)瞄準圖像中心坐標進行模擬射擊
在矩陣式坐標系中,以plane圖像中心坐標(350,500)為瞄準中心進行模擬射擊。其彈著點服從正態分布,利用正態分布的隨機數模擬確定彈著點坐標(xi,yi),在目標實物圖片上直接以該坐標畫點,并以規定的特定顏色顯示。將每次射擊的彈著點以區別于實物著色的特定顏色顯示,得到射擊彈著點分布圖。
設射擊系統的系統誤差為0,彈著點坐標(xi,yi)由于隨機因素引起的落點坐標散布服從正態分布[3],中間偏差為σx和σy,每射擊一次,均要產生一組N(0,1)標準正態分布的隨機數η1和η2,如模擬射擊n次,則需產生n組隨機數。

式中:i=1,2,3…,n 表示模擬射擊次數。μx、μy表示選定坐標系中的瞄準點坐標,取 μx=350,μy=500。σx和 σy為中間偏差,令 σx=250、σy=250。η1和 η2為標準正態分布的隨機數,在Matlab軟件中,直接調用randn(10,2)產生服從標準正態分布的隨機數組[5]。對于非標準正態分布的隨機數,可以調用normrnd命令產生正態分布的隨機數組,調用方式為R=normrnd(Mu,Sigma,m,n),其中 Mu 為均值,Sigma 是標準差,必須取正數,Mu、Sigma、X必須同維,或者其中任何一個是標量[5]。
5)統計分析模擬射擊的命中概率
令 Pi=[xi,yi],Pi為每次模擬射擊彈著點坐標,判斷其是否包含于數組Target中,若“是”,則命中目標,“否”則沒有命中目標,統計命中次數為m,除以此輪模擬射擊總次數,得到命中概率。
在Matlab軟件中進行仿真計算[5],模擬射擊100次,即n=100,得m=27,命中概率為27%。
直接結合目標實物圖片運用像素點法進行效能分析,并結合蒙特卡羅方法分析這一隨機過程,通過對比分析射擊前后目標實物圖像上像素點的分布情況,可以繞過繁雜的公式推導,直接得到統計結果,特別是針對不規則目標,在無法用確切的函數關系來描述的情況下,這種方法更加具有優越性[6]。
如果導入彩色圖片,可以通過不同著色來表示不同部位的重要程度。為全球計算,也可以將其處理為灰度圖像,通過采用不同灰度等級來表示不同部位的重要性,同樣也可以通過統計不同區域內顯示特定顏色(彈著點)像素點數,得到相對命中概率。在此基礎上,可以更加精確的分析射擊的毀傷效果。
[1]張野鵬.作戰模擬基礎[M].北京:高等教育出版社,2004.
[2]于萬波.基于MATLAB的計算機圖形與動畫技術[M].北京:清華大學出版社,2007.
[3]裴鹿成,王仲廳.蒙特卡羅方法及其應用[M].北京:海洋出版社,1998.
[4]張志涌.精通MATLAB 6.5版教程[M].北京:北京航天航空大學出版社,2003.
[5]鄧薇.MATLAB函數速查手冊[M].北京:人民郵電出版社,2010.
[6]薛文通,宋建社,沈濤,等.子母彈對復雜形狀目標毀傷效果的計算機仿真[J].計算機仿真,2003,20(4):16-18.