378 lines
14 KiB
Plaintext
378 lines
14 KiB
Plaintext
# ****************************************************************************
|
|
# CUI
|
|
#
|
|
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
|
|
#
|
|
# The use, dissemination or disclosure of data in this file is subject to
|
|
# limitation or restriction. See accompanying README and LICENSE for details.
|
|
# ****************************************************************************
|
|
###############################################################################
|
|
# ------ UNCLASSIFIED ------
|
|
# BLUE_LR_SAM
|
|
###############################################################################
|
|
#
|
|
# ***** WARNING ***** WARNING ***** WARNING ***** WARNING ***** WARNING *****
|
|
#
|
|
# This definition is intended to be EXPORTABLE. It is defined using publicly
|
|
# available, attributable sources. DO NOT ADD ANYTHING BASED ON OTHER SOURCES!
|
|
#
|
|
# ***** WARNING ***** WARNING ***** WARNING ***** WARNING ***** WARNING *****
|
|
#
|
|
###############################################################################
|
|
#
|
|
# NOTE: If you modify any parameter in this file, you must rerun 'weapon_tools'
|
|
# with 'blue_lr_sam_lcg.txt' as input to regenerate the launch computer data.
|
|
#
|
|
###############################################################################
|
|
#
|
|
# References: (PDF files contained in the subdirectory blue_lr_sam_ref)
|
|
#
|
|
# 1) http://www.mda.mil/mdaLink/pdf/38112.pdf
|
|
# User Operational Evaluation System (UOES) THAAD Missile Configuration
|
|
# (NOTE: This document has vanished, but the captured wiki page in Ref 4
|
|
# has the same picture).
|
|
#
|
|
# 2) http://search.janes.com/Search/documentView.do?docId=/content1/janesdata/binder/jsws/jsws0203.htm@current&pageSelected=allJanes&keyword=THAAD&backPath=http://search.janes.com/Search&Prod_Name=JSWS&
|
|
# Jane's (JSWS) THAAD
|
|
# Launch weight: 630 kg
|
|
# Length and diameter same as Ref 1
|
|
# Range: 300 km
|
|
# Uses HTPB propellant
|
|
#
|
|
# There is some contradiction between the Jane's JSWS and JLAD documentation
|
|
# with regards to launch weight (630 kg vs. 800 kg), .
|
|
#
|
|
# 3) http://www.army-technology.com/projects/thaad/specs.html
|
|
# Launch weight: 900 kg
|
|
# Velocity: 2,800 m/s
|
|
# Range: > 200 km
|
|
# Maximum altitude of intercept: 150 km
|
|
#
|
|
# 4) http://en.wikipedia.org/wiki/Terminal_High_Altitude_Area_Defense
|
|
#
|
|
# 5) http://en.wikipedia.org/wiki/Space_Shuttle_Solid_Rocket_Booster
|
|
# Because there is no data that gives the mass of the propellant, it is
|
|
# assumed that it will follow the ratio of the fuel mass/total mass for
|
|
# the Space Shuttle solid rockets:
|
|
#
|
|
# Propellant Mass: 500,000 kg
|
|
# Inert (empty) Mass: 91,000 kg
|
|
# Fuel Mass / Total Mass = 500,000 / 591,000 = 0.846
|
|
#
|
|
# 6) http://en.wikipedia.org/wiki/Solid-fuel_rocket
|
|
# Indicates 'a typical solid fuel rocket motor may have a specific impulse
|
|
# of 265 sec'. But we'll assume the use of 'High Energy Composite (HEC)
|
|
# propellants, which is indicated a specific impulse of 275 sec.
|
|
###############################################################################
|
|
|
|
###############################################################################
|
|
# Support for explicit representation of spent stages
|
|
#
|
|
# Platforms will be created for spent stages if one the global script variables
|
|
# is defined as follows:
|
|
#
|
|
# script_variables
|
|
# SHOW_SPENT_STAGES["ALL"] = true; # For any weapon
|
|
# SHOW_SPENT_STAGES["BLUE_LR_SAM"] = true; # For just this weapon type
|
|
# end_script_variables
|
|
###############################################################################
|
|
|
|
include_once ../ssm/show_spent_stages.txt
|
|
|
|
aero BLUE_LR_SAM_SPENT_BOOSTER_AERO WSF_AERO
|
|
reference_area 0.09079 m^2 # Ref 1
|
|
aspect_ratio 1.0
|
|
cl_max 5.0
|
|
# zero_lift_cd 0.7
|
|
cd_zero_subsonic 1.5 # Extreme cd
|
|
cd_zero_supersonic 3.0 # Extreme cd
|
|
mach_begin_cd_rise 0.95
|
|
mach_end_cd_rise 1.30
|
|
mach_max_supersonic 6.00
|
|
end_aero
|
|
|
|
infrared_signature BLUE_LR_SAM_SPENT_BOOSTER_INFRARED_SIGNATURE
|
|
constant 1 watts/steradian
|
|
end_infrared_signature
|
|
|
|
optical_signature BLUE_LR_SAM_SPENT_BOOSTER_OPTICAL_SIGNATURE
|
|
constant 1 m^2
|
|
end_optical_signature
|
|
|
|
radar_signature BLUE_LR_SAM_SPENT_BOOSTER_RADAR_SIGNATURE
|
|
constant 1 m^2
|
|
end_radar_signature
|
|
|
|
platform_type BLUE_LR_SAM_SPENT_BOOSTER WSF_PLATFORM
|
|
icon Scud_Missile
|
|
|
|
infrared_signature BLUE_LR_SAM_SPENT_BOOSTER_INFRARED_SIGNATURE
|
|
optical_signature BLUE_LR_SAM_SPENT_BOOSTER_OPTICAL_SIGNATURE
|
|
radar_signature BLUE_LR_SAM_SPENT_BOOSTER_RADAR_SIGNATURE
|
|
|
|
mover WSF_GUIDED_MOVER
|
|
integration_timestep 0.01 secs
|
|
stage 1
|
|
aero BLUE_LR_SAM_SPENT_BOOSTER_AERO
|
|
total_mass 128.0 kg # Total - fuel
|
|
end_stage
|
|
end_mover
|
|
|
|
processor fuse WSF_GROUND_TARGET_FUSE
|
|
end_processor
|
|
end_platform_type
|
|
|
|
###############################################################################
|
|
# Signature data is unknown...
|
|
|
|
infrared_signature BLUE_LR_SAM_INFRARED_SIGNATURE
|
|
constant 1 watts/steradian
|
|
end_infrared_signature
|
|
|
|
optical_signature BLUE_LR_SAM_OPTICAL_SIGNATURE
|
|
constant 1 m^2
|
|
end_optical_signature
|
|
|
|
radar_signature BLUE_LR_SAM_RADAR_SIGNATURE
|
|
constant 1 m^2
|
|
end_radar_signature
|
|
|
|
# Nominal lethality data.
|
|
|
|
weapon_effects BLUE_LR_SAM_EFFECT WSF_GRADUATED_LETHALITY
|
|
radius_and_pk 100.0 m 0.9
|
|
|
|
# This script will reduce the effectiveness if the impact geometry is not desirable.
|
|
|
|
script void on_weapon_target_engagement(WsfPlatform aTarget)
|
|
WsfPlatform weapon = WeaponPlatform();
|
|
if (! (aTarget.IsValid() && weapon.IsValid())) return;
|
|
|
|
// Compute the angle between the velocity vectors. A head-on hit would be 180 degrees.
|
|
// (velocity vectors in opposite directions).
|
|
Vec3 weaponVel = weapon.VelocityWCS();
|
|
Vec3 targetVel = aTarget.VelocityWCS();
|
|
double weaponVelMag = weaponVel.Magnitude();
|
|
double targetVelMag = targetVel.Magnitude();
|
|
if ((weaponVelMag > 1.0) && (targetVelMag > 1.0))
|
|
{
|
|
double cosAngle = Vec3.Dot(weaponVel, targetVel) / (weaponVelMag * targetVelMag);
|
|
if (cosAngle < -1.0) cosAngle = -1.0;
|
|
if (cosAngle > 1.0) cosAngle = 1.0;
|
|
double angle = Math.ACos(cosAngle);
|
|
writeln("Angle=", angle);
|
|
//TODO if (angle < xxx) SetPkDegrade(0.6);
|
|
}
|
|
end_script
|
|
end_weapon_effects
|
|
|
|
###############################################################################
|
|
|
|
aero BLUE_LR_SAM_BOOSTER_AERO WSF_AERO
|
|
# Booster is actually 340 mm in diameter, but kill vehicle masks it.
|
|
reference_area 0.10752 m^2 # Ref 1 - 370 mm diameter
|
|
#aspect_ratio 2.0
|
|
#cl_max 6.0
|
|
|
|
# Values estimated from Hoerner's Drag book
|
|
cd_zero_subsonic 0.10
|
|
cd_zero_supersonic 0.35
|
|
mach_begin_cd_rise 0.95
|
|
mach_end_cd_rise 1.30
|
|
mach_max_supersonic 6.00
|
|
end_aero
|
|
|
|
aero BLUE_LR_SAM_KILL_VEHICLE_AERO WSF_AERO
|
|
reference_area 0.10752 m^2 # Ref 1 - 370 mm diameter
|
|
#aspect_ratio 2.0
|
|
#cl_max 6.0
|
|
|
|
# Values estimated from Hoerner's Drag book
|
|
cd_zero_subsonic 0.10
|
|
cd_zero_supersonic 0.35
|
|
mach_begin_cd_rise 0.95
|
|
mach_end_cd_rise 1.30
|
|
mach_max_supersonic 6.00
|
|
end_aero
|
|
|
|
mover BLUE_LR_SAM_MOVER WSF_GUIDED_MOVER
|
|
integration_timestep 0.001 secs
|
|
update_interval 0.01 secs
|
|
|
|
# 20 sec of divert @ 1.5 G or 6 sec of divert @ 5.0 G
|
|
# (assuming empty mass of 80kg)
|
|
#
|
|
# Thrust = 80 kg (empty mass) * 9.80665 m/s^2 (g) * 5 = 3922.66 Nt
|
|
# Assume a specific impulse (I) of 267 sec
|
|
# m(dot) = thrust / I / g = 1.4979 Kg/s
|
|
# m = 5 sec * 1.4545 = 7.4894 kg
|
|
|
|
divert_thrust 3922.66 Nt
|
|
divert_fuel_mass 7.4894 kg
|
|
divert_fuel_mass 10.0 kg # Gave it a little more for testing (bad initial conditions)
|
|
divert_fuel_flow_rate 1.4979 kg/s
|
|
divert_altitude_limits 80 km 500 km
|
|
|
|
# The nozzle exit area and nozzle throat area were derived by ratios using the picture in Ref 1.
|
|
# The measured diameters (NOT ACTUAL) from the picture were:
|
|
#
|
|
# Booster: 41.0 mm
|
|
# Nozzle Throat: 7.2 mm
|
|
# Nozzle Exit: 23.5 mm
|
|
#
|
|
# The derived values are then:
|
|
#
|
|
# Nozzle Throat: Diameter = 0.340 m * (7.2 / 41.0) = 0.0597 m, Area = 0.0938 m^2
|
|
# Nozzle Exit : Diameter = 0.340 m * (23.5 / 41.0) = 0.195 m, Area = 0.305 m^2
|
|
#
|
|
# The volume of the fuel mass is also calculated from the drawing
|
|
#
|
|
# Inside length: 6.170 * (91 / 185) ~= 3.035 m
|
|
# Inside diameter: = 0.340 * (39 / 41) ~= 0.3234 m
|
|
# Inside volume = 3.168 * (pi * (0.3234/2)^2) ~= .2408 m^3
|
|
#
|
|
# HTPB has a density of 0.92 g/ml, but is typically mixed with aluminum (2.7 g/ml) and
|
|
# ammonium perchlorate (1.95 g/ml). An HTPB/AP/AL mixture of 12%/68%/20% resulted in a
|
|
# density 1.98 g/ml which resulted in a fuel mass of 476 kg. The mass fraction will be
|
|
# assumed to be 0.8 instead of the 0.85 of the Space Shuttle because of the increased
|
|
# acceleration. This gives a mass of 595 kg. An addition 5 kg will be added for the
|
|
# interstage and the shroud for a total of 600 kg.
|
|
|
|
stage 1
|
|
aero BLUE_LR_SAM_BOOSTER_AERO
|
|
nozzle_exit_area 0.305 m^2 # See calculations above
|
|
|
|
total_mass 600 kg # See calculations above
|
|
fuel_mass 485 kg # See calculations above
|
|
#thrust_duration 11.0 sec
|
|
#sea_level_specific_impulse 265 sec # Ref 6
|
|
|
|
thrust_duration 18 sec # Adjusted to get close to 2800 m/s
|
|
sea_level_specific_impulse 250 sec # Adjusted to get close to 2800 m/s
|
|
end_stage
|
|
|
|
stage 2
|
|
aero BLUE_LR_SAM_KILL_VEHICLE_AERO
|
|
|
|
total_mass 30 kg # Just the kill vehicle (630 - 600)
|
|
end_stage
|
|
|
|
end_mover
|
|
|
|
###############################################################################
|
|
|
|
processor BLUE_LR_SAM_GUIDANCE WSF_GUIDANCE_COMPUTER
|
|
|
|
# No datalink or seeker is being used, so we must guide to the true target
|
|
guide_to_truth true
|
|
|
|
phase LAUNCH
|
|
commanded_flight_path_angle from_launch_computer
|
|
proportional_navigation_gain 0.0 # Don't guide to target
|
|
velocity_pursuit_gain 0.0 # Don't guide to target
|
|
maximum_commanded_g 2.0 g
|
|
next_phase MIDCOURSE when on_commanded_flight_path_angle
|
|
end_phase
|
|
|
|
phase MIDCOURSE
|
|
# no guidance (just use gravity turn)
|
|
guidance_delay 1000.0 sec
|
|
next_phase TERMINAL when target_slant_range < 140.0 km
|
|
end_phase
|
|
|
|
phase TERMINAL
|
|
proportional_navigation_gain 10.0
|
|
proportional_navigation_method augmented
|
|
|
|
# Disable velocity pursuit. The angle which controls the switch between
|
|
# velocity pursuit and pronav are too sensitive at short ranges.
|
|
velocity_pursuit_gain 0.0
|
|
|
|
# Disable g-bias. The target is also falling, so we don't want to fight
|
|
# against it! (this is assuming terminal intercept, not boost)
|
|
g_bias 0.0
|
|
end_phase
|
|
end_processor
|
|
|
|
###############################################################################
|
|
|
|
platform_type BLUE_LR_SAM_BASE WSF_PLATFORM
|
|
icon SA-10_Missile
|
|
|
|
infrared_signature BLUE_LR_SAM_INFRARED_SIGNATURE
|
|
optical_signature BLUE_LR_SAM_OPTICAL_SIGNATURE
|
|
radar_signature BLUE_LR_SAM_RADAR_SIGNATURE
|
|
|
|
weapon_effects BLUE_LR_SAM_EFFECT
|
|
|
|
mover BLUE_LR_SAM_MOVER
|
|
#show_status
|
|
end_mover
|
|
|
|
processor guidance BLUE_LR_SAM_GUIDANCE
|
|
#show_status
|
|
#show_graphics
|
|
end_processor
|
|
|
|
processor fuse WSF_AIR_TARGET_FUSE
|
|
detonate_below_mach 1.0
|
|
end_processor
|
|
|
|
weapon booster WSF_EXPLICIT_WEAPON
|
|
launched_platform_type BLUE_LR_SAM_SPENT_BOOSTER
|
|
launch_delta_v -50.0 0.0 0.0 m/s
|
|
quantity 1
|
|
end_weapon
|
|
|
|
script void on_stage_separation(int aStage)
|
|
extern Map<string, bool> SHOW_SPENT_STAGES;
|
|
if (SHOW_SPENT_STAGES["ALL"] ||
|
|
SHOW_SPENT_STAGES["BLUE_LR_SAM"])
|
|
{
|
|
if (aStage == 1) Weapon("booster").Fire(WsfTrack());
|
|
}
|
|
end_script
|
|
end_platform_type
|
|
|
|
###############################################################################
|
|
|
|
launch_computer BLUE_LR_SAM_LAUNCH_COMPUTER WSF_BALLISTIC_MISSILE_LAUNCH_COMPUTER
|
|
surface_to_air_table weapons/sam/blue_lr_sam_launch_data.txt
|
|
integration_time_step 0.05 sec
|
|
|
|
# Disallow intercepts at unreasonable angles
|
|
maximum_intercept_angle 60 deg
|
|
end_launch_computer
|
|
|
|
###############################################################################
|
|
|
|
weapon BLUE_LR_SAM WSF_EXPLICIT_WEAPON
|
|
|
|
# The location offset puts the weapon center at half the length - 1 m.
|
|
# This assumes the scenario creator puts the launching platform at 1 m agl.
|
|
|
|
location 0.0 0.0 -2.085 m # Ref 1, length = 6170 mm
|
|
|
|
launched_platform_type BLUE_LR_SAM
|
|
|
|
launch_computer BLUE_LR_SAM_LAUNCH_COMPUTER
|
|
end_launch_computer
|
|
|
|
tilt 75 deg
|
|
|
|
# This causes a call to the launch computer to compute the predicted intercept.
|
|
# The launcher will then be cued to the proper angles (Subject to the slewing
|
|
# limits defined below). This is a bit of a hack until the guidance computer
|
|
# is changed...
|
|
|
|
cue_to_predicted_intercept true
|
|
slew_mode azimuth
|
|
azimuth_slew_limits -180 deg 180 deg
|
|
|
|
quantity 8
|
|
|
|
# Abort the launch if the launch computer didn't provide the required data
|
|
require_loft_angle
|
|
|
|
end_weapon
|