当前位置: 首页 > news >正文

afsim中将导弹作为独立的platform

很多时候,导弹都是作为weapon挂载到某个平台上,导弹需要依赖某平台才能具有毁伤功能。但是我不想让导弹挂载,想让它作为独立的platform并且具有毁伤功能。

以下是我做出来的具有毁伤功能的小demo(本人是初学者,如有不当的地方请轻点喷)。

1.首先定义被攻击者carrier_1(舰船):

定义一个SHIP的platform_type,再详细具体的实例化,添加side、position等等数据,作为一个静态的实体。并添加destructible表示可以被毁伤。

# Ships platform_type SHIP WSF_PLATFORM icon carrier end_platform_type # 航母实例 platform carrier_1 SHIP side blue position 17:13:10.81n 38:29:59.06w altitude 0.0 feet heading 0 degrees destructible end_platform

2.定义导弹平台

要想要导弹具有毁伤功能,就要给它定义的很全面。

先定义导弹平台类型,包括用什么icon在界面上显示,设置导弹长度,以及是否可毁伤。

#导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m # 可毁伤属性 destructible end_platform_type

然后给该导弹添加了雷达特征(也可以添加其他的特征,但是我暂时还没有学到其他的特征):

#雷达散射截面 (RCS) 定义 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE constant 1 m^2 ## 恒定 RCS 值 1 平方米 end_radar_signature

导弹平台类型定义中引用该雷达特征

#导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m #雷达特征 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE # 可毁伤属性 destructible end_platform_type

此时一个静态的导弹算是定义好了,但是严格意义上它还不是导弹,还需要添加相应的气动参数,所以我定义了一套气动参数

#气动模型定义 aero CRUISE_MISSILE_AERO WSF_AERO #diameter 0.68m cd_zero_subsonic 0.3 # 亚声速零升阻力系数 cd_zero_supersonic 0.45 # 超声速零升阻力系数 mach_begin_cd_rise 0.850 # 阻力开始上升的马赫数 mach_end_cd_rise 1.150 # 阻力上升结束的马赫数 mach_max_supersonic 2.000 # 最大超声速马赫数 reference_area 0.028 m2 # 参考面积 (平方米) cl_max 7.000 # 最大升力系数 aspect_ratio 14.000 # 展弦比 end_aero

气动参数主要在导弹的运行过程中体现,所以还需要给导弹添加mover才可以。这里我选择的是WSF_GUIDED_MOVER运动模型,这是一个制导模型,专用于导弹的运动模型导弹平台类型定义中添加该运动模型并且在运动模型中引用气动参数

#导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m #雷达特征 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE #运动模型 mover WSF_GUIDED_MOVER aero CRUISE_MISSILE_AERO empty_mass 2500 kg # 空载质量 (千克) fuel_mass 800 kg # 燃料质量 (千克) update_interval 0.5 s #更新间隔 0.5s # thrust 8000 nt # 推力 (牛顿) specific_impulse 300 s # 比冲 (秒) burn_rate 2.718 kg/sec # 燃料燃烧率 (千克/秒) end_mover # 可毁伤属性 destructible end_platform_type

光添加运动模型还不够,与其相对应的是WSF_GUIDANCE_COMPUTER制导计算机,所以还需要添加WSF_GUIDANCE_COMPUTER

#导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m #雷达特征 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE #运动模型 mover WSF_GUIDED_MOVER aero CRUISE_MISSILE_AERO empty_mass 2500 kg # 空载质量 (千克) fuel_mass 800 kg # 燃料质量 (千克) update_interval 0.5 s #更新间隔 0.5s # thrust 8000 nt # 推力 (牛顿) specific_impulse 300 s # 比冲 (秒) burn_rate 2.718 kg/sec # 燃料燃烧率 (千克/秒) end_mover #制导计算机 processor guidance_computer WSF_GUIDANCE_COMPUTER proportional_navigation_gain 10.0 # 比例导引系数,数值越大航线越平直 velocity_pursuit_gain 10.0 #速度追踪增益,数值越大机头指向目标越快 g_bias 1.0 #重力偏置,1.0 表示完全补偿重力 maximum_commanded_g 25.0 g # 最大指令过载 (25g) guidance_delay 0.0 sec #制导延迟,0 秒表示无延迟 end_processor # 可毁伤属性 destructible end_platform_type

还需添加引信,才能触发爆炸效果:

#导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m #雷达特征 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE #运动模型 mover WSF_GUIDED_MOVER aero CRUISE_MISSILE_AERO empty_mass 2500 kg # 空载质量 (千克) fuel_mass 800 kg # 燃料质量 (千克) update_interval 0.5 s #更新间隔 0.5s # thrust 8000 nt # 推力 (牛顿) specific_impulse 300 s # 比冲 (秒) burn_rate 2.718 kg/sec # 燃料燃烧率 (千克/秒) end_mover #制导计算机 processor guidance_computer WSF_GUIDANCE_COMPUTER proportional_navigation_gain 10.0 # 比例导引系数,数值越大航线越平直 velocity_pursuit_gain 10.0 #速度追踪增益,数值越大机头指向目标越快 g_bias 1.0 #重力偏置,1.0 表示完全补偿重力 maximum_commanded_g 25.0 g # 最大指令过载 (25g) guidance_delay 0.0 sec #制导延迟,0 秒表示无延迟 end_processor # 引信 (地面目标触发) processor fuse WSF_GROUND_TARGET_FUSE hit_proximity_range 300 ft end_processor # 可毁伤属性 destructible end_platform_type

此时导弹平台类型定义完成。完成以上这些做到了让导弹以某种方式飞向目标。但是此时导弹还未具备毁伤功能。

3.定义导弹杀伤效果

定义导弹的毁伤功能。

#战斗部杀伤效果定义 weapon_effects CRUISE_MISSILE WSF_SPHERICAL_LETHALITY #杀伤半径范围 minimum_radius 30 m maximum_radius 50 m #伤害值范围 minimum_damage 0.1 maximum_damage 1.0 #阈值伤害 (低于此值忽略) threshold_damage 0.2 # 杀伤规律指数:1 = 线性,2 = 平方,浮点数 exponent 1.0 #允许附带伤害 incidental_damage_allowed true end_weapon_effects

并将该定义在导弹平台类型中引用。

#导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m #引用导弹的毁伤功能 weapon_effects CRUISE_MISSILE #雷达特征 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE #运动模型 mover WSF_GUIDED_MOVER aero CRUISE_MISSILE_AERO empty_mass 2500 kg # 空载质量 (千克) fuel_mass 800 kg # 燃料质量 (千克) update_interval 0.5 s #更新间隔 0.5s # thrust 8000 nt # 推力 (牛顿) specific_impulse 300 s # 比冲 (秒) burn_rate 2.718 kg/sec # 燃料燃烧率 (千克/秒) end_mover #制导计算机 processor guidance_computer WSF_GUIDANCE_COMPUTER proportional_navigation_gain 10.0 # 比例导引系数,数值越大航线越平直 velocity_pursuit_gain 10.0 #速度追踪增益,数值越大机头指向目标越快 g_bias 1.0 #重力偏置,1.0 表示完全补偿重力 maximum_commanded_g 25.0 g # 最大指令过载 (25g) guidance_delay 0.0 sec #制导延迟,0 秒表示无延迟 end_processor # 引信 (地面目标触发) processor fuse WSF_GROUND_TARGET_FUSE hit_proximity_range 300 ft end_processor # 可毁伤属性 destructible end_platform_type

此时便可以定义导弹的具体实例了。

4.定义导弹的具体实例

包括side、position等等参数。on_initialize是定义该导弹以什么样的北东地的坐标飞,朝着哪个目标飞。以及在什么时候执行。

platform cruise_missile_1 CRUISE_MISSILE side red position 15:44:21.94n 37:33:10.81w altitude 16404.2 feet heading 0 degrees track platform carrier_1 end_track on_initialize PLATFORM.SetVelocityNED(500,500,0); PLATFORM.SetCurrentTarget(WsfSimulation.FindPlatform("carrier_1").MakeTrack()); end_on_initialize execute at_time 0.1 s absolute end_execute end_platform

此时以warlock的形式运行,便可以看到导弹会飞向舰船,并且命中爆炸。

但是以上这个demo有问题:舰船与导弹的距离过远会导致导弹未飞到目标变爆炸。我认为是气动参数以及燃料的消耗速率的问题。因为我定义的这一套气动参数与消耗速率不是真实数据,所以会导致偏差。
以下是该demo的全代码。我定义了两个舰船两个导弹。

# AFSIM Scenario File # Generated: 2026-04-24T02:59:58.757Z # Ships platform_type SHIP WSF_PLATFORM icon carrier end_platform_type # 航母实例 platform carrier_1 SHIP side blue position 17:13:10.81n 38:29:59.06w altitude 0.0 feet heading 0 degrees destructible end_platform # 驱逐舰实例 platform destroyer_1 SHIP side blue position 18:25:08.94n 34:46:17.03w altitude 200 feet heading 0 degrees destructible end_platform #雷达散射截面 (RCS) 定义 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE constant 1 m^2 ## 恒定 RCS 值 1 平方米 end_radar_signature #气动模型定义 aero CRUISE_MISSILE_AERO WSF_AERO #diameter 0.68m cd_zero_subsonic 0.3 # 亚声速零升阻力系数 cd_zero_supersonic 0.45 # 超声速零升阻力系数 mach_begin_cd_rise 0.850 # 阻力开始上升的马赫数 mach_end_cd_rise 1.150 # 阻力上升结束的马赫数 mach_max_supersonic 2.000 # 最大超声速马赫数 reference_area 0.028 m2 # 参考面积 (平方米) cl_max 7.000 # 最大升力系数 aspect_ratio 14.000 # 展弦比 end_aero #导弹平台类型定义 platform_type CRUISE_MISSILE WSF_PLATFORM icon aim-120 length 8.3 m #添加武器毁伤效果 weapon_effects CRUISE_MISSILE #雷达特征 radar_signature CRUISE_MISSILE_RADAR_SIIGNATURE #运动模型 mover WSF_GUIDED_MOVER aero CRUISE_MISSILE_AERO empty_mass 2500 kg # 空载质量 (千克) fuel_mass 800 kg # 燃料质量 (千克) update_interval 0.5 s #更新间隔 0.5s # thrust 8000 nt # 推力 (牛顿) specific_impulse 300 s # 比冲 (秒) burn_rate 2.718 kg/sec # 燃料燃烧率 (千克/秒) end_mover #制导计算机 processor guidance_computer WSF_GUIDANCE_COMPUTER proportional_navigation_gain 10.0 # 比例导引系数,数值越大航线越平直 velocity_pursuit_gain 10.0 #速度追踪增益,数值越大机头指向目标越快 g_bias 1.0 #重力偏置,1.0 表示完全补偿重力 maximum_commanded_g 25.0 g # 最大指令过载 (25g) guidance_delay 0.0 sec #制导延迟,0 秒表示无延迟 end_processor # 引信 (地面目标触发) processor fuse WSF_GROUND_TARGET_FUSE hit_proximity_range 300 ft end_processor # 可毁伤属性 destructible end_platform_type #战斗部杀伤效果定义 weapon_effects CRUISE_MISSILE WSF_SPHERICAL_LETHALITY #杀伤半径范围 minimum_radius 30 m maximum_radius 50 m #伤害值范围 minimum_damage 0.1 maximum_damage 1.0 #阈值伤害 (低于此值忽略) threshold_damage 0.2 # 杀伤规律指数:1 = 线性,2 = 平方,浮点数 exponent 1.0 #允许附带伤害 incidental_damage_allowed true end_weapon_effects # 武器定义 (将平台类型与战斗部关联) weapon CRUISE_MISSILE_WEAPON WSF_EXPLICIT_WEAPON launched_platform_type CRUISE_MISSILE # 发射后生成的平台类型 weapon_effects CRUISE_MISSILE # 关联的战斗部效果 end_weapon #巡航导弹实例 platform cruise_missile_1 CRUISE_MISSILE side red position 15:44:21.94n 37:33:10.81w altitude 16404.2 feet heading 0 degrees track platform carrier_1 end_track on_initialize PLATFORM.SetVelocityNED(500,500,0); PLATFORM.SetCurrentTarget(WsfSimulation.FindPlatform("carrier_1").MakeTrack()); end_on_initialize execute at_time 0.1 s absolute end_execute end_platform platform cruise_missile_2 CRUISE_MISSILE side red position 19:02:38.61n 34:44:50.49w altitude 16404.2 feet heading 180 degrees track platform destroyer_1 end_track on_initialize PLATFORM.SetVelocityNED(500,500,0); #north east ground PLATFORM.SetCurrentTarget(WsfSimulation.FindPlatform("destroyer_1").MakeTrack()); end_on_initialize execute at_time 0.1 s absolute end_execute end_platform end_time 2 h

要注意的是

# 武器定义 (将平台类型与战斗部关联) weapon CRUISE_MISSILE_WEAPON WSF_EXPLICIT_WEAPON launched_platform_type CRUISE_MISSILE # 发射后生成的平台类型 weapon_effects CRUISE_MISSILE # 关联的战斗部效果 end_weapon

这一部分没有用到,可以不写。

http://www.jsqmd.com/news/715712/

相关文章:

  • Android 广播 - 显式广播与隐式广播
  • OpenProject开源项目管理平台:基于Ruby on Rails的企业级协同解决方案
  • 专业的山西做GEO搜索优化公司
  • 如何用FigmaCN消除英文界面障碍:设计师的中文设计工作流解决方案
  • 从SOD二极管到SOT晶体管:手把手教你识别PCB上那些迷你SMD封装
  • 新卖家选品方向预警,用好卖家精灵AI工具还有卖家精灵优惠折扣码
  • 除了Copilot,试试VSCode插件GPT Runner:如何用它做项目文档的智能问答助手?
  • 专业干货!低查重的AI教材写作攻略,多款AI工具助力教材编写
  • Rockchip RK3538与RK3572芯片架构与应用解析
  • Lucene底层原理:倒排索引实现原理与代码实战,彻底吃透搜索引擎核心
  • 如何在3天内用Open Images数据集构建你的第一个计算机视觉模型
  • Wan2.2-TI2V-5B终极指南:如何在消费级GPU上实现720P高清AI视频生成
  • 5分钟彻底解决Mac NTFS读写难题:Free-NTFS-for-Mac完整指南
  • 将军思维:在亚马逊,为何“关注对手”比“优化自己”重要一百倍
  • C语言结构体对齐的坑我帮你踩完了:从#pragma pack到__attribute__的避坑指南
  • Pake:革命性的轻量级网页转桌面应用现代化解决方案
  • 收藏!2026 年 AI 薪资炸场:平均月薪 6 万 +,岗位暴涨 12 倍,小白 / 程序员学大模型正当时!
  • 无线串口对传模块:4G全网通适配,远程串口无缝对接
  • 从产品经理视角看:为什么内容运营增长平台一定要用 Redis?
  • AI专著写作神器揭秘:一键生成20万字专著,真实文献引用+低查重!
  • IO管道
  • python学习笔记(day3):文件操作与CSV文件处理
  • 如何高效下载全网资源:Res-Downloader 智能嗅探工具完全指南
  • 大模型多智能体模式详解:新手程序员必备,附收藏指南!
  • 深入S32K3芯片内部:图解FCCU状态机与安全机制(从CONFIG到FAULT的完整流程)
  • STM32 HAL库驱动DRV8301 SPI通信全攻略:从硬件连接到寄存器读写(附避坑清单)
  • AI写专著必备攻略:10种AI工具大揭秘,高效完成20万字专著创作!
  • 通达信缠论插件终极指南:3步实现自动化技术分析,告别手动画线困扰
  • CMake死活找不到OpenCV?别急着重装,先试试这几招(附Windows/Linux/Mac通用解法)
  • 别再手动翻文档了!用CrewAI的这5个搜索工具,5分钟搞定PDF、CSV、网页信息提取