· 六自由度飛行仿真 six_dof(上):飛機類型建模)
能力標簽六自由度 / WSF_P6DOF_MOVER / 飛機類型庫 six_dof_type / 類型與實例解耦 / 保真度分配這個 demo 在展示什么WSF_P6DOF_MOVER是 AFSIM 里高保真飛行的標桿。和運動學機動我讓你往哪走你就往哪走不同六自由度P6DOF會真的求解飛機的氣動、推力、質量、力矩平臺能不能完成某個機動取決于它的氣動包線和發動機——飛機會失速、會過載、會受油量限制。這意味著用six_dof你得先有一份飛機類型數據氣動系數、質量、推力曲線等AFSIM 管這叫six_dof_type。six_dof能力的核心價值一半在怎么把 P6DOF movers 跑起來另一半在怎么組織這一大堆飛機類型數據。核心機制mover 與 type 的分離WSF_P6DOF_MOVER本身只描述怎么飛具體飛什么飛機由six_dof_type指向一份類型數據。這種mover 管動力學、type 管機體的分離是 AFSIM 機動模型的通用范式six_dof_type氣動/質量/推力數據WSF_P6DOF_MOVER求解六自由度方程平臺狀態位置/速度/姿態/過載sensor / weapon標準接口消費關鍵點在于類型數據和平臺實例是解耦的。同一份my_fighter_type可以被 10 個平臺共用想改飛機性能改類型數據即可不用動每個平臺。真實可跑的最小片段AFSIM 2.9 語法示意下面把類型定義 mover 掛載 實例化三段式寫清楚。語法范式取自 AFSIM 2.9 公開能力文檔按本系列片段式、無頂層包裹的結構書寫其中氣動系數表以通用占位字段示意非特定機型數據# ① 飛機類型數據定義飛什么 six_dof_type my_fighter_type mass 8000 kg # 機體質量 reference_area 25 m2 # 參考面積氣動用 thrust_max 90000 N # 最大推力 fuel_mass 2000 kg # 載油量影響航程/續航 # aerodynamic_coefficient 表、操縱面效率等在此展開 end_six_dof_type # ② 平臺類型掛 P6DOF mover 并指向機型 platform_type BLUE_FIGHTER WSF_PLATFORM side blue mover WSF_P6DOF_MOVER six_dof_type my_fighter_type # 指向上面定義的類型 update_interval 0.02 sec # 高保真解算步長越小越準越貴 end_mover end_platform_type # ③ 實例化并擺到戰場 platform ftr_01 BLUE_FIGHTER position 34.0n 120.0e altitude 8000 m msl route position 34.0n 120.0e altitude 8000 m msl speed 250 m/s position 35.0n 121.0e altitude 9000 m msl speed 250 m/s end_route end_platform把上面三段存進同一份.txt類型定義在前、實例在后mission.exe即可解算。注意six_dof_type必須先定義后被引用——AFSIM 按文本順序解析把類型塊寫在文件末尾會解析不到。關鍵參數速查參數所在組件類型 / 單位默認值取值說明調參影響six_dof_typemover (P6DOF)類型名 (字符串)無必填指向飛機類型數據決定氣動/推力特性缺則 mover 無法解算update_intervalmover (P6DOF)時間 (sec)引擎默認機動解算步長高速/劇烈機動建議 ≤0.05 s否則軌跡漂移masssix_dof_type質量 (kg)無必填機體質量影響加速度與機動包線與推力共決推重比reference_areasix_dof_type面積 (m2)無必填氣動參考面積參與升力/阻力計算直接改機動性能thrust_maxsix_dof_type力 (N)無必填最大推力決定爬升率/加速性過小飛不出包線fuel_masssix_dof_type質量 (kg)引擎默認載油量影響續航油盡后質量下降、包線變化飛機類型數據怎么組織真實飛機類型是一張龐大的氣動系數表AFSIM 用專門的格式存six_dof_type塊內的aerodynamic_coefficient表 推力/質量定義。工程里我建議按機型建目錄six_dof_types/fighter/、six_dof_types/bomber/別把幾十種飛機塞一個文件。基類 派生用 AFSIM 的base_type/derive機制先定義一架通用戰斗機再派生具體型號只改差異項。先驗證單機再組網一個新飛機類型先用最小想定飛一段直線轉彎看速度/高度曲線合理了再放進大想定。運動學 vs 六自由度什么時候用哪個維度kinematic_moversix_dof (P6DOF)求解內容速度/航向積分全氣動推力質量數據需求幾乎為零完整飛機類型數據CPU 成本低高每步解算方程適用單位大部分藍/紅方關鍵交戰單位、需真實機動效應的失速/過載無有備注一個常見誤區是全用 six_dof 才專業。事實是100 個平臺里可能只有交戰雙方的主力機值得上 P6DOF其余用運動學整體仿真又快又夠用。性能與保真度要按誰影響結論來分配。工程實踐與常見坑類型未定義就引用。AFSIM 按文本順序解析six_dof_type必須出現在引用它的mover之前。把類型庫include進來時確認 include 語句在平臺定義之前。步長太大導致數值發散。P6DOF 每步解非線性方程步長取 0.5 s 在劇烈機動時容易飛出去。高保真單位建議update_interval0.02~0.05 s代價是這些平臺把整體解算節奏拉慢。類型數據不全就起飛。只給了mass沒給reference_area解算會缺氣動項只給推力沒給fuel_mass航程/質量變化失真。一份能飛的six_dof_type至少要有質量、參考面積、推力三項。把 P6DOF 當萬金油。無人機、地面車輛、艦船上 P6DOF 既貴又沒必要它們有更輕的 mover見卷一 kinematic / surface。保真度按影響結論的單位分配不是全場拉滿。小結與下一篇本篇講了WSF_P6DOF_MOVER的骨架mover 負責怎么飛six_dof_type負責飛什么飛機兩者解耦。下一篇我們看six_dof里更重的部分——機場運作與彈道導彈投送也就是當 P6DOF 遇上起降和助推段彈道時想定該怎么組織。下一篇預告03六自由度飛行仿真 six_dof下機場運作與彈道導彈投送里更重的部分——機場運作與彈道導彈投送也就是當 P6DOF 遇上起降和助推段彈道時想定該怎么組織。下一篇預告03六自由度飛行仿真 six_dof下機場運作與彈道導彈投送