【W(wǎng)ar Thunder】空空導(dǎo)彈基本原理(3)制導(dǎo)控制
??? 這一些文章是戰(zhàn)爭雷霆的游戲機(jī)制解析。會結(jié)合現(xiàn)實情況來說明。閱讀需要高中水平的物理學(xué)知識。如果有ksp乃至其他飛行游戲的背景就更好理解了。
? ? 這方面最早的工作要歸功于官方論壇和油管的Zetaris,長期的拆包數(shù)據(jù)分享要感謝論壇和紅迪的gszabi99,而一些機(jī)制要感謝官方開發(fā)者k_stepanovich等的說明。
? ? 推薦閱讀:航空工業(yè)出版社的《空空導(dǎo)彈方案設(shè)計原理》。
? ? ps:禁止無斷轉(zhuǎn)載。
1、比例導(dǎo)引
? ?比例導(dǎo)引(proportional navigation)是戰(zhàn)爭雷霆中空空導(dǎo)彈通用的制導(dǎo)方法。
? ? 比例導(dǎo)引的思路是,讓導(dǎo)彈速度矢量的轉(zhuǎn)動角速度(通俗的說,導(dǎo)彈轉(zhuǎn)彎角速度)和導(dǎo)彈-目標(biāo)視線(line of sight,LOS)的旋轉(zhuǎn)角速度成正比。這種導(dǎo)引方式能實現(xiàn)導(dǎo)彈前置截?fù)簟?/span>
? ? 下圖是一種理想情況(導(dǎo)彈和敵機(jī)速度和航向都不變)下比例導(dǎo)引的工作情況:彈目視線和導(dǎo)彈航向的夾角保持不變,導(dǎo)彈穩(wěn)定飛行,截到敵機(jī)。

? ? 下圖是比例導(dǎo)引打擊機(jī)動目標(biāo)的示意:紅色是目標(biāo),藍(lán)色是導(dǎo)彈。一開始目標(biāo)飛行保持穩(wěn)定,LOS和導(dǎo)彈航向的夾角(綠色)也保持不變。之后,目標(biāo)向右側(cè)轉(zhuǎn)彎,彈目角度發(fā)生了變化(綠色箭頭),導(dǎo)彈受其影響也進(jìn)行轉(zhuǎn)彎(紅色箭頭),讓夾角(綠色)繼續(xù)保持不變,形成了修正提前量的效果,最后正確命中目標(biāo)。

2、導(dǎo)航比
? ? 以上兩圖的比例導(dǎo)引都是讓導(dǎo)彈航向追隨彈目視線旋轉(zhuǎn)進(jìn)行同步轉(zhuǎn)彎,讓導(dǎo)彈航向和彈目視線的夾角保持不變。我們將導(dǎo)彈轉(zhuǎn)彎角速度和彈目視線的旋轉(zhuǎn)角速度之間的比例稱為導(dǎo)航比N(navigation constant,也稱導(dǎo)航增益或?qū)Ш匠?shù)),以上兩圖對應(yīng)的就是N=1。
? ? 實際操作中,比例常數(shù)設(shè)置的越大,導(dǎo)彈對彈目視線角度變化的反饋就越敏感,制導(dǎo)中越會傾向于早拉提前量機(jī)動,下圖兩邊描述的都是對準(zhǔn)橫移的目標(biāo)發(fā)射導(dǎo)彈的情況,目標(biāo)從右向左飛行,左圖導(dǎo)航比為1,右圖導(dǎo)航比為4。
? ? 右邊的導(dǎo)彈因為導(dǎo)航比設(shè)置的較大,在距離較遠(yuǎn)時就開始轉(zhuǎn)彎拉出了提前量,在彈道后段反而不需要進(jìn)行大幅度機(jī)動,整個彈道較為平穩(wěn),需要的過載較低。
? ? 因為左邊的導(dǎo)彈導(dǎo)航比為1,導(dǎo)彈初始航向和視線夾角又為0°,于是后續(xù)制導(dǎo)會一直試圖保持導(dǎo)彈初始航向和視線夾角同步,導(dǎo)彈實際全程持續(xù)對準(zhǔn)目標(biāo)飛行(變成了三點法),導(dǎo)彈飛行路程較長,末端需要的過載也較大。


? ? 可以看出,適當(dāng)拉高導(dǎo)彈導(dǎo)航有利導(dǎo)彈盡早拉出足夠提前量。不過反過來說,太高的導(dǎo)航比也會導(dǎo)致導(dǎo)彈太敏感,對復(fù)雜機(jī)動的目標(biāo)可能會拉出奇怪的大提前量。戰(zhàn)爭雷霆游戲內(nèi)大部分空空導(dǎo)彈的導(dǎo)航比設(shè)置在4.0,即"propNavMult": 4.0
3、可變導(dǎo)航比
? ?雖然游戲內(nèi)導(dǎo)彈導(dǎo)航比大部分設(shè)置在4,不過這樣的導(dǎo)航比在一些時候仍然太高。
? ? 設(shè)想一個情況:迎頭發(fā)射一枚中距彈,對面在遠(yuǎn)距離就開始反復(fù)轉(zhuǎn)彎(F-POLE)來規(guī)避。導(dǎo)彈飛行中會被敵機(jī)調(diào)動,瞄準(zhǔn)對面的飛機(jī)進(jìn)行轉(zhuǎn)彎。在這種情況下,導(dǎo)航比設(shè)置的越高,導(dǎo)彈會傾向拉越多的提前量,能量損失越嚴(yán)重,有效射程會大幅度縮水。(在戰(zhàn)爭雷霆2.25之前的版本,導(dǎo)彈拉機(jī)動不會有額外掉速 BV1bG4y1b72Z,F(xiàn)-POLE機(jī)動意義很小。但是現(xiàn)時期誘導(dǎo)阻力被添加進(jìn)了游戲,飛機(jī)帶著導(dǎo)彈拉過載是有效的)

? ? 反過來說,如果在導(dǎo)彈飛行中段適當(dāng)調(diào)低導(dǎo)航比,就能降低導(dǎo)彈對敵機(jī)機(jī)動的響應(yīng),打擊機(jī)動目標(biāo)中段消耗的能量會更小。最后在彈道末端再將導(dǎo)航比調(diào)高,這樣也不會影響導(dǎo)彈末端的追蹤能力。(調(diào)低導(dǎo)航比≠限制可用過載)
? ? 游戲內(nèi)部分導(dǎo)彈搭載了可變導(dǎo)航比功能,
? ? 以AIM-7F為例,自動駕駛儀代碼中先是以導(dǎo)彈預(yù)計撞擊時間來控制導(dǎo)航比:
? ? 撞擊前5秒,增益1.0(導(dǎo)航比4.0)(增益Gain乘在預(yù)設(shè)導(dǎo)航比上);
? ? 撞擊前8到5秒,增益從0.9增大到1.0(導(dǎo)航比3.6到4.0)(變化過程和時間成正比例,以下都是);
? ? 撞擊前12到8秒,增益從0.8增大到0.9(導(dǎo)航比3.2到3.6);
? ? 撞擊前25秒到12秒,增益從0.5增大到0.8(導(dǎo)航比2.0到3.2);
? ? 撞擊前50秒到20秒,增益從0.3增大到0.5(導(dǎo)航比1.2到2.0)。
? ? 這一串代碼讓導(dǎo)彈飛行過程中越靠近目標(biāo)越敏感。

? ? 然后,7F代碼中還有另外一部分,以發(fā)射后的時間來控制導(dǎo)航比:
? ? 發(fā)射后0秒到1秒,增益從0.0增大到1.0(導(dǎo)航比0到4.0)
? ? 這一串代碼讓導(dǎo)彈飛離掛架后越來越敏感。

? ? 可以發(fā)現(xiàn),AIM-7F游戲內(nèi)有“發(fā)射后時間”和“撞擊前時間”兩條線來控制導(dǎo)航比,實戰(zhàn)可能會存在沖突,在沖突情況下導(dǎo)彈會執(zhí)行兩個導(dǎo)航比中較小的那個。AIM-7F的導(dǎo)航比控制較好兼顧了近距離格斗射擊和遠(yuǎn)距離BVR。
? ? 但是較差的可變導(dǎo)航比會極大限制導(dǎo)彈的性能。比如下圖的AIM-7E導(dǎo)彈,它的導(dǎo)航比只和發(fā)射后時間有關(guān):
? ? 發(fā)射后0秒到1.8秒,增益0.0(導(dǎo)航比0);
? ? 發(fā)射后1.8秒到2.5秒,增益從0.0增加到0.4(導(dǎo)航比0到1.6);
? ? 發(fā)射后2.5秒到4.5秒,增益從0.4增加到1.0(導(dǎo)航比1.6到4.0)。
? ? 導(dǎo)航比設(shè)置在0時,導(dǎo)彈是不會機(jī)動的,4.5秒后才有正常的追蹤能力,嚴(yán)重影響導(dǎo)彈近距離射擊。雖然限制導(dǎo)彈機(jī)動傾向有利BVR,但是以7E孱弱的動力,也還是打不了多遠(yuǎn)......

? ? 在比例導(dǎo)引的框架下,玩家可以抬高機(jī)頭發(fā)射導(dǎo)彈,形成高拋彈道,如下圖。搭載可變導(dǎo)航比功能的導(dǎo)彈在手動拋射的情況下更有利,導(dǎo)彈能夠拋的更高:

4、機(jī)動控制
? ? 比例導(dǎo)引解決了“車應(yīng)該往個方向開”的問題,下一個問題則是“方向盤應(yīng)該打多少”。游戲內(nèi)調(diào)節(jié)導(dǎo)彈實際過載輸出使用的是PID控制。

? ? 自上而下,
? ? accelControlProp,PID的Kp(比例)項,過載輸出的基礎(chǔ),數(shù)值越大,導(dǎo)彈對誤差響應(yīng)越大;
? ? accelControlIntg,PID的Ki(積分)項,能夠在有系統(tǒng)誤差和外力作用時消除偏差,數(shù)值越大響應(yīng)越快;
? ? accelControlDiff,PID的Kd(微分)項,能夠抑制過沖和振蕩,數(shù)值過大會造成導(dǎo)彈響應(yīng)遲鈍;
? ? baseIndSpeed,有利于提升導(dǎo)彈飛行穩(wěn)定性,具體意義不明,不過目前大部分空空導(dǎo)彈都設(shè)置在1800.0;
? ? accelControlIntgLim,為積分項的輸出設(shè)置上限,抑制超調(diào)。
? ? 合適的PID參數(shù)對導(dǎo)彈的正常工作非常重要。PID調(diào)試失誤會導(dǎo)致包括但不限于導(dǎo)彈亂飛、響應(yīng)遲鈍、拉大提前量、打不準(zhǔn)、邊飛邊抖之類的問題。調(diào)PID是很大的工作量,而且需要根據(jù)導(dǎo)彈氣動修改和安東星物理環(huán)境變化來更新。
5、慣性制導(dǎo)(IOG)和數(shù)據(jù)鏈(DL)
? ??游戲內(nèi)空空導(dǎo)彈在能夠連續(xù)獲取彈目角度時,會工作在比例導(dǎo)引模式(半主動彈雷達(dá)STT鎖定、主動彈導(dǎo)引頭鎖定、紅外彈鎖定)。部分搭載慣性制導(dǎo)的導(dǎo)彈在無法連續(xù)獲取角度后會進(jìn)入慣導(dǎo)(紅外彈和半主動彈脫鎖,主動彈導(dǎo)引頭未開機(jī)或脫鎖),會根據(jù)目標(biāo)最后的位置和航向進(jìn)行制導(dǎo)截?fù)簟T性制導(dǎo)打高速機(jī)動的目標(biāo)用處不大,但是一些直升機(jī)上的反坦克導(dǎo)彈可以發(fā)射后中止激光照射脫離,利用慣導(dǎo)來打地上不動的車(不過也不是很準(zhǔn))。

? ? 搭載數(shù)據(jù)鏈(datalink)的導(dǎo)彈進(jìn)入慣導(dǎo)狀態(tài)后,可以接受載機(jī)傳感器(一般是雷達(dá)TWS)的數(shù)據(jù)來更新目標(biāo)位置速度和航向,以此再調(diào)整導(dǎo)彈航向。有數(shù)據(jù)鏈刷新的情況下,慣導(dǎo)對機(jī)動目標(biāo)也會有用很多。
6、高拋(LOFT)
? ? 超視距射擊時,讓導(dǎo)彈先爬升再俯沖有利于降低導(dǎo)彈中段飛行受到的空氣阻力,并將部分動能轉(zhuǎn)化為重力勢能儲存起來,有利于提升導(dǎo)彈的有效射程、提高導(dǎo)彈的末端速度。 BV1u24y127ye
? ? 上文提及過手動拉高機(jī)頭拋射導(dǎo)彈,不過游戲里還有少部分導(dǎo)彈有自動拋射功能,以類似下圖的代碼來控制,類似代碼還被用在了道爾之類的防空導(dǎo)彈上。
? ? 但是因為預(yù)設(shè)的高拋角度太低,游戲里的自動高拋和平射接近,基本上沒有什么用——這也是游戲內(nèi)動力魔法(1.7t 30s)的AIM-54A并不能打出DCS早年的54A mk60效果的原因,因為DCS拋射角度高達(dá)35°,戰(zhàn)雷拋射角度太小都在打平射。
