十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AFSIM 示例解读(06)· 地形跟随飞行:terrain_following

AFSIM 示例解读(06)· 地形跟随飞行:terrain_following 能力标签WSF_AIR_MOVER / WSF_SCRIPT_PROCESSOR / 地形查询 / 脚本控高 / 控制回路 / 低空突防这个 demo 在展示什么低空突防、贴地飞行是作战飞机规避雷达的重要手段把飞行高度压到地形遮蔽线以下让对方雷达的视距被山体切断。AFSIM 里并没有一个开箱即用的地形跟随 mover组件terrain_following展示的是一种通用做法——用脚本在每个更新周期查询前方地形高度再把目标高度喂给 mover让平台自动随地形起伏。它的价值不在地形本身而在揭示 AFSIM 一个核心能力脚本可以实时读写平台状态、查询环境地形/大气并把结果接回控制回路。这套脚本查环境→控状态的范式能套到地形回避、防撞高、大气跟随等大量场景是 AFSIM 里复用率极高的一招。核心机制脚本把地形反馈接进控制回路思路分三步全部发生在平台自身的组件里不需要外部指挥平台挂一个常规WSF_AIR_MOVER或运动学 mover负责按命令控高控速。再挂一个WSF_SCRIPT_PROCESSOR在on_update周期里运行控制逻辑。每步沿航向前方取一个查询点 → 用地形查询接口取该点高程 → 目标高度 地形高 安全余量AGL→ 把目标高度作为命令下发给 mover。整套逻辑是一个闭环控制mover 输出实际高度脚本下一周期再读回来比对修正。查询前方地形高高程值目标高度命令实际高度回读route 航线航向指引WSF_AIR_MOVER按指令控高控速WSF_SCRIPT_PROCESSORon_update 控制地形数据源DTED / 高程真实可跑的最小片段AFSIM 2.9 语法示意下面让一架蓝方飞机在地形上做离地 100 m的跟随飞行。语法范式取自 AFSIM 2.9 公开能力文档按本系列片段式、无顶层包裹的结构书写地形查询的具体接口名以你环境中的实际 API 为准这里用#注释标出控制意图end_time 600 sec # 推演总时长 platform_type TF_AIR WSF_PLATFORM # 定义地形跟随飞机类型 side blue mover WSF_AIR_MOVER # ① 飞行机动按命令控高控速 update_interval 0.5 sec # 机动解算步长 max_speed 150 m/s # 最大地速影响前方查询提前量 end_mover processor tf_ctrl WSF_SCRIPT_PROCESSOR # ② 脚本控制器把地形反馈接进控制回路 update_interval 0.5 sec # 脚本周期 mover 步长才跟得上地形 on_update # 读取平台当前位置与航向 # 沿航向前方取一个 geopoint 作为查询点 # 调用地形查询接口取该点地面高程 h_terr # 目标高度 h_terr 100 m离地余量 AGL # 把保持目标高度命令下发给 mover受最大升降率约束 end_on_update end_processor end_platform_type platform tf_01 TF_AIR position 34.0n 120.0e altitude 1000 m msl # 初始位置示意 end_platform说明上段把地形查询写成注释意图而非拼死写死某个 API——因为不同 AFSIM 版本的环境查询接口细节有差异写出来反而可能误导。控制回路的结构才是本文要讲的点。关键参数速查参数所在组件类型 / 单位默认值取值说明调参影响update_interval(脚本)processor时间 (sec)引擎默认控制逻辑执行周期必须 ≤ mover 步长否则地形突变时来不及修正过小徒增 CPUmax_speedmover(air)速度 (m/s)需给最大地速决定前方查询点提前量越快需越靠前查询最大升降率mover(air)速度 (m/s)有默认垂直机动能力遇陡山能否及时爬升余量小 坡度大易撞山安全余量 (AGL)脚本命令距离 (m)自设离地保留高度太小易撞山太大暴露雷达、失去贴地意义地形数据源环境路径无DTED/高程文件目录缺失则查询失败地形跟随整体失效工程实践与常见坑地形数据是硬前提。没有高程数据源或路径写错查询接口返回空/异常平台不会报错只是不控高——结果可能直接穿山。验证办法脚本里把查询返回值打出来确认非异常值再接控制。脚本周期和 mover 步长要匹配。脚本跑得比 mover 慢地形突变时 mover 已经冲出去了才收到新目标高照样撞山。建议脚本update_interval≤ mover 步长。余量 vs 升降率要一起校。设了 50 m 离地余量但升降率只有 5 m/s、前方 1 km 外突然抬升 200 m按速度算根本爬不上去。调参时把坡度×速度和最大升降率放在一起算。只在低空场景上这套。纯高空对抗、无真实地貌的想定地形跟随徒增复杂度与算力直接定高飞更干净。备注如果你的想定不涉及真实地貌比如纯高空对抗就别上地形跟随徒增复杂度。它只在低空/贴地场景有价值。小结与下一篇本篇展示了 AFSIM 极重要的一类范式脚本作为控制回路实时把环境地形读进来、把状态高度写出去。它的本质是查询→比对→下发命令的闭环比地形本身更通用——同一招换掉数据源就能做地形回避、防撞高、大气剖面跟随。下一篇进入卷一收尾把舞台搬到太空——cislunar的绕月轨道看非大气、靠轨道力学的机动怎么做。下一篇预告07空间轨道机动 cislunarWSF_INTEGRATING_SPACE_MOVER 绕月轨道轨道看非大气、靠轨道力学的机动怎么做。下一篇预告07空间轨道机动 cislunarWSF_INTEGRATING_SPACE_MOVER 绕月轨道
返回列表