174 lines
5.3 KiB
Plaintext
174 lines
5.3 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.
|
||
|
|
# ****************************************************************************
|
||
|
|
|
||
|
|
define_path_variable CASE scenario_test_launch_computer
|
||
|
|
|
||
|
|
log_file $(CASE).log
|
||
|
|
|
||
|
|
file_path .
|
||
|
|
file_path ..
|
||
|
|
file_path ../..
|
||
|
|
|
||
|
|
#include_once event_pipe.txt
|
||
|
|
#include_once event_output.txt
|
||
|
|
#include_once terrain.txt
|
||
|
|
#include_once dis_network.txt
|
||
|
|
#include_once platforms/common.txt
|
||
|
|
#include_once platforms/striker.txt
|
||
|
|
#include_once platforms/flight_lead.txt
|
||
|
|
|
||
|
|
event_output
|
||
|
|
file $(CASE).evt
|
||
|
|
end_event_output
|
||
|
|
|
||
|
|
event_pipe
|
||
|
|
file $(CASE).aer
|
||
|
|
end_event_pipe
|
||
|
|
|
||
|
|
random_seed 731165679
|
||
|
|
|
||
|
|
end_time 3.0 sec
|
||
|
|
|
||
|
|
include_once blue_lr_a2a_rf_missile_with_launch_computer.txt
|
||
|
|
|
||
|
|
platform_type STRIKER WSF_PLATFORM
|
||
|
|
category fighter
|
||
|
|
#radar_signature SIG_RADAR_ONE_M_SQUARED
|
||
|
|
|
||
|
|
comm sub_net WSF_COMM_TRANSCEIVER
|
||
|
|
network_name <local:slave>
|
||
|
|
internal_link track_manager
|
||
|
|
end_comm
|
||
|
|
|
||
|
|
mover WSF_AIR_MOVER
|
||
|
|
roll_rate_limit 1 rad/sec
|
||
|
|
default_linear_acceleration 1.0 g
|
||
|
|
default_radial_acceleration 6.5 g
|
||
|
|
default_climb_rate 400 fps
|
||
|
|
maximum_climb_rate 400 fps
|
||
|
|
maximum_speed 600.0 knots
|
||
|
|
minimum_speed 150.0 knots
|
||
|
|
maximum_altitude 50000 ft
|
||
|
|
minimum_altitude 50 ft
|
||
|
|
maximum_linear_acceleration 9 g
|
||
|
|
at_end_of_path extrapolate
|
||
|
|
turn_rate_limit 4.0 deg/sec
|
||
|
|
end_mover
|
||
|
|
|
||
|
|
processor track_manager WSF_TRACK_PROCESSOR
|
||
|
|
purge_interval 60 sec
|
||
|
|
report_interval 1 sec
|
||
|
|
fused_track_reporting off
|
||
|
|
raw_track_reporting on
|
||
|
|
report_to commander via sub_net
|
||
|
|
circular_report_rejection true
|
||
|
|
end_processor
|
||
|
|
|
||
|
|
weapon blue_lr_a2a_rf_missile BLUE_LR_A2A_RF_MISSILE_WITH_LAUNCH_COMPUTER
|
||
|
|
quantity 999
|
||
|
|
end_weapon
|
||
|
|
|
||
|
|
sensor geo_sensor WSF_GEOMETRIC_SENSOR
|
||
|
|
on
|
||
|
|
azimuth_field_of_view -180.0 degrees 180.0 degrees
|
||
|
|
elevation_field_of_view -90.0 degrees 90.0 degrees
|
||
|
|
minimum_range 0 m
|
||
|
|
maximum_range 277800 m //about 150 nm
|
||
|
|
frame_time 0.5 sec
|
||
|
|
reports_location
|
||
|
|
reports_velocity
|
||
|
|
reports_iff
|
||
|
|
track_quality 1.0
|
||
|
|
internal_link track_manager
|
||
|
|
ignore_same_side
|
||
|
|
end_sensor
|
||
|
|
|
||
|
|
end_platform_type
|
||
|
|
|
||
|
|
|
||
|
|
platform Shooter STRIKER
|
||
|
|
indestructible
|
||
|
|
icon F-22
|
||
|
|
side blue
|
||
|
|
commander blue-FL
|
||
|
|
route
|
||
|
|
position 0.6n 4.12e altitude 30000 ft msl speed 500 kts
|
||
|
|
position 1.6n 4.12e altitude 30000 ft msl speed 500 kts
|
||
|
|
end_route
|
||
|
|
heading 0 deg
|
||
|
|
end_platform
|
||
|
|
|
||
|
|
|
||
|
|
platform Target STRIKER
|
||
|
|
indestructible
|
||
|
|
side red
|
||
|
|
icon SU-27
|
||
|
|
heading 300 deg
|
||
|
|
commander SELF
|
||
|
|
route
|
||
|
|
position 0.70n 4.12e altitude 30000 ft msl speed 500 kts
|
||
|
|
position 1.70n 4.12e altitude 30000 ft msl speed 500 kts
|
||
|
|
end_route
|
||
|
|
heading 0 deg
|
||
|
|
end_platform
|
||
|
|
|
||
|
|
|
||
|
|
# WsfLaunchComputer lcPtr = weapon.LaunchComputer();
|
||
|
|
#
|
||
|
|
# if (lcPtr.IsValid() && lcPtr.IsA_TypeOf("WSF_AIR_TO_AIR_LAUNCH_COMPUTER"))
|
||
|
|
# {
|
||
|
|
# // The returned array contains: Rmax, RmaxTOF, Rne, RneTOF, Rmin, RminTOF
|
||
|
|
# // in that order. -1.0 means "not valid".
|
||
|
|
#
|
||
|
|
# Array<double> returnedValues = lcPtr.LookupResult(track);
|
||
|
|
#
|
||
|
|
# // Now have to consider whether we have enough information to continue with a weapon shot:
|
||
|
|
# double theRmax = returnedValues[0]; //"Rmax";
|
||
|
|
# double theRmaxTOF = returnedValues[1]; //"RmaxTOF";
|
||
|
|
# double theRne = returnedValues[2]; //"Rne";
|
||
|
|
# double theRneTOF = returnedValues[3]; //"RneTOF";
|
||
|
|
# double theRmin = returnedValues[4]; //"Rmin";
|
||
|
|
# double theRminTOF = returnedValues[5]; //"RminTOF";
|
||
|
|
#
|
||
|
|
|
||
|
|
|
||
|
|
execute at_time 1 sec absolute
|
||
|
|
|
||
|
|
Array<double> leadAngles = Array<double>();
|
||
|
|
leadAngles[0] = 45.0;
|
||
|
|
leadAngles[1] = -45.0;
|
||
|
|
|
||
|
|
Array<double> aspectAngles = Array<double>();
|
||
|
|
aspectAngles[0] = 45.0;
|
||
|
|
aspectAngles[1] = -45.0;
|
||
|
|
|
||
|
|
WsfPlatform shooter = WsfSimulation.FindPlatform("Shooter");
|
||
|
|
WsfPlatform target = WsfSimulation.FindPlatform("Target");
|
||
|
|
WsfGeoPoint origin = shooter.Location();
|
||
|
|
WsfWeapon weapon = shooter.Weapon("blue_lr_a2a_rf_missile");
|
||
|
|
WsfLaunchComputer launch = weapon.LaunchComputer(); //IsA_TypeOf("WSF_AIR_TO_AIR_LAUNCH_COMPUTER")
|
||
|
|
|
||
|
|
foreach(double lead in leadAngles)
|
||
|
|
{
|
||
|
|
foreach(double aspect in aspectAngles)
|
||
|
|
{
|
||
|
|
origin = shooter.Location();
|
||
|
|
origin.Extrapolate(lead, 18520); //10 miles out, orientation is all that matters
|
||
|
|
target.SetLocation(origin);
|
||
|
|
double targetheading = MATH.NormalizeAngle0_360(lead + 180 + aspect);
|
||
|
|
target.SetOrientationNED(targetheading, 0, 0);
|
||
|
|
target.SetVelocityECS(257.2222, 0, 0); //257.2222 (met/sec) == 500 kts
|
||
|
|
WsfTrack targetTrack = target.MakeTrack();
|
||
|
|
Array<double> launchRanges = launch.LookupResult(targetTrack);
|
||
|
|
writeln("lead = ", lead, ", aspect = ", aspect, ", max = ", launchRanges[0], ", min = ", launchRanges[4], ", nesc = ", launchRanges[2]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
end_execute
|