✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。完整代码获取 定制创新 论文复现点击Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。 内容介绍卫星星座的红外跟踪可实现对弹道导弹轨迹的监测与跟踪理论上可覆盖地球上任何起点和目的地主要通过天基红外系统等相关技术来实现具体如下系统组成与工作原理天基红外系统是实现该功能的关键系统之一。它通常由高轨道星座和低轨道星座组成。高轨道星座包含高椭圆轨道卫星和静止轨道卫星可接替国防支援计划卫星执行弹道导弹发射和助推段飞行探测任务。低轨道星座由多颗低轨道卫星构成能对弹道导弹飞行中段进行精确跟踪并区分弹头与诱饵等。跟踪过程导弹发射时其尾焰会产生高强度红外辐射天基红外传感器可在 10-20 秒内捕获信号实现助推段探测定位精度可达 1 公里内。卫星上的扫描型探测器作为宽视场短波红外传感器会快速扫描南北半球初步筛选目标。随后窄视场多谱段的凝视型探测器将放大目标图像用于跟踪弹道中段与再入轨迹。此外还可通过尾焰光谱数据库识别导弹型号区分诱饵弹与真弹头。相关卫星星座实例美国的高超声速和弹道跟踪空间传感器HBTSS星座是相关典型代表。它是由美国导弹防御局开发的低地球轨道原型星座旨在为高超声速滑翔阶段武器和弹道导弹提供火控质量的跟踪数据可实现从发射检测到拦截的 “全程监控”能全球实时检测和识别高超声速威胁。⛳️ 运行结果 部分代码classdef Satellite handle% Class for forming objects of type satellite, managing their orbital% elements/state, determining missile observability, and forming% measurements and simulated measurements.propertiesorbElems % [a; e; i; O; w; f] initially, after that the state x is used for everythingx % [px; py; pz; vx; vy; vz] in ECIconstellationName % string denoting which constellation satellite belongs tosatID % int denoting the satellite IDz % IR sensor measurementy % predicted IR sensor measurementcanObserve false; % boolean denoting whether the satellite can observe the ballistic missile at any given timeH_funcHhasLOS false;meetsIntensity false;IR_sensor_gain 1; % make IR sensors more or less sensitive to detectionI_threshold 1e-3; % TODO editmu 3.986e14; % Earths gravitational constant, m^3/s^2endmethodsfunction obj Satellite(satID, constellationName, a, e, i, O, w, f)obj.satID satID;obj.constellationName constellationName;obj.orbElems [a;e;i;O;w;f];[r, v] obj.elements_to_rv(a, e, i, O, w, f, obj.mu);obj.x [r;v];obj.formHfunction();endfunction [xdot] satelliteDynamics(obj, x)r x(1:3);v x(4:6);xdot zeros(6,1);xdot(1:3) v;xdot(4:6) (-obj.mu/(norm(r)^3))*r;endfunction [obj] propagateSatellite(obj, dt)% Updates object state obj.x with satellite dynamics function% and RK4 (faster in a large scale simulation than ode45())k1 obj.satelliteDynamics(obj.x);k2 obj.satelliteDynamics(obj.x (dt/2)*k1);k3 obj.satelliteDynamics(obj.x (dt/2)*k2);k4 obj.satelliteDynamics(obj.x dt*k3);obj.x obj.x (dt/6)*(k1 2*k2 2*k3 k4);endfunction [obj] checkLOS(obj, r_missile_ECI)% Function to check if missile has line of sight to satelliter_satellite_ECI obj.x(1:3);lambda 0:0.01:1;line_to_missile r_satellite_ECI (r_missile_ECI-r_satellite_ECI)*lambda;norm_line vecnorm(line_to_missile, 2);min_altitude_visible 6371000 20000; % Radius of Earth plus where atmosphere is thickif any(norm_line min_altitude_visible)obj.hasLOS false;elseobj.hasLOS true;endendfunction [obj] checkIntensity(obj, r_missile_ECI, beta)% Function that checks if the visible intensity of the% satellite to an IR sensor is high enough to be detected% beta: current infrared output of missile based on plume (if% in boost), area observed, emissivity, etc.r_satellite_ECI obj.x(1:3);r_sat_to_missile r_missile_ECI - r_satellite_ECI;I (obj.IR_sensor_gain*beta)/(norm(r_sat_to_missile)^2);if I obj.I_thresholdobj.meetsIntensity true;elseobj.meetsIntensity false;endendfunction [obj] checkObservability(obj, r_missile_ECI, beta)% Overall function to check if a satellite can observe/detect% the missile, conditions are having line of sight and meeting% the intensity thresholdobj.checkLOS(r_missile_ECI);obj.checkIntensity(r_missile_ECI, beta);if obj.hasLOS % meetsIntensityobj.canObserve true;elseobj.canObserve false;endendfunction [y] getMeasurement(obj, x_missile_ECI, R)% Function to collect either a predicted measurement (R 0)% or an actual measurement (R \neq 0)% Measurement vector: [az; el; az rate; el rate]x_satellite_ECI obj.x;r_sat_to_missile x_missile_ECI(1:3) - x_satellite_ECI(1:3);v_sat_to_missile x_missile_ECI(4:6) - x_satellite_ECI(4:6);az atan2(r_sat_to_missile(2), r_sat_to_missile(1)) normrnd(0, sqrt(R(1,1)));el atan2(-r_sat_to_missile(3), sqrt(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2)) normrnd(0, sqrt(R(2,2)));az_rate (r_sat_to_missile(1)*v_sat_to_missile(2) - r_sat_to_missile(2)*v_sat_to_missile(1))/(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2) normrnd(0, sqrt(R(3,3)));el_rate (r_sat_to_missile(3)*(r_sat_to_missile(1)*v_sat_to_missile(1) r_sat_to_missile(2)*v_sat_to_missile(2)) - v_sat_to_missile(3)*(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2))/ ...(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2 (r_sat_to_missile(3)^2)*sqrt(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2)) normrnd(0, sqrt(R(4,4)));y [az; el; az_rate; el_rate];endfunction [obj] formHfunction(obj)% Function to form a matrix-valued function which, when% evaluated, forms the H matrix corresponding to the current% satellites measurementsyms x y z xdot ydot zdot realh1 atan2(y, x);h2 atan2(-z, sqrt(x^2 y^2));h3 (x*ydot - y*xdot)/(x^2 y^2);h4 (z*(x*xdot y*ydot) - zdot*(x^2 y^2))/ ...(x^2 y^2 (z^2)*sqrt(x^2 y^2));H_sym jacobian([h1;h2;h3;h4], [x; y; z; xdot; ydot; zdot]);obj.H_func matlabFunction(H_sym, Vars, {x, y, z, xdot, ydot, zdot});endfunction [H] evaluateH(obj, x_missile)obj.H obj.H_func(x_missile(1), x_missile(2), x_missile(3), x_missile(4), x_missile(5), x_missile(6));H obj.H;endfunction[r, v] elements_to_rv(obj, a, e, i, O, w, f, mu)%Input all element angles in degrees%Input mu in SI units, no km stuffi i*pi/180;O O*pi/180;w w*pi/180;f f*pi/180;r_norm (a*(1-e^2))/(1e*cos(f));r_peri [r_norm*cos(f); r_norm*sin(f); 0];p a*(1-e^2);v_peri [sqrt(mu/p)*-1*sin(f); sqrt(mu/p)*(ecos(f)); 0];% Rotation matrix termsR_11 cos(O)*cos(w) - sin(O)*sin(w)*cos(i);R_12 -cos(O)*sin(w) - sin(O)*cos(w)*cos(i);R_13 sin(O)*sin(i);R_21 sin(O)*cos(w) cos(O)*sin(w)*cos(i);R_22 -sin(O)*sin(w) cos(O)*cos(w)*cos(i);R_23 -cos(O)*sin(i);R_31 sin(w)*sin(i);R_32 cos(w)*sin(i);R_33 cos(i);R [R_11, R_12, R_13;R_21, R_22, R_23;R_31, R_32, R_33];r R*r_peri;v R*v_peri;endendend 参考文献更多免费数学建模和仿真教程关注领取
【卫星】卫星星座的红外跟踪可配置弹道导弹轨迹,从地球上任何起点和目的地Matlab实现
✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。完整代码获取 定制创新 论文复现点击Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。 内容介绍卫星星座的红外跟踪可实现对弹道导弹轨迹的监测与跟踪理论上可覆盖地球上任何起点和目的地主要通过天基红外系统等相关技术来实现具体如下系统组成与工作原理天基红外系统是实现该功能的关键系统之一。它通常由高轨道星座和低轨道星座组成。高轨道星座包含高椭圆轨道卫星和静止轨道卫星可接替国防支援计划卫星执行弹道导弹发射和助推段飞行探测任务。低轨道星座由多颗低轨道卫星构成能对弹道导弹飞行中段进行精确跟踪并区分弹头与诱饵等。跟踪过程导弹发射时其尾焰会产生高强度红外辐射天基红外传感器可在 10-20 秒内捕获信号实现助推段探测定位精度可达 1 公里内。卫星上的扫描型探测器作为宽视场短波红外传感器会快速扫描南北半球初步筛选目标。随后窄视场多谱段的凝视型探测器将放大目标图像用于跟踪弹道中段与再入轨迹。此外还可通过尾焰光谱数据库识别导弹型号区分诱饵弹与真弹头。相关卫星星座实例美国的高超声速和弹道跟踪空间传感器HBTSS星座是相关典型代表。它是由美国导弹防御局开发的低地球轨道原型星座旨在为高超声速滑翔阶段武器和弹道导弹提供火控质量的跟踪数据可实现从发射检测到拦截的 “全程监控”能全球实时检测和识别高超声速威胁。⛳️ 运行结果 部分代码classdef Satellite handle% Class for forming objects of type satellite, managing their orbital% elements/state, determining missile observability, and forming% measurements and simulated measurements.propertiesorbElems % [a; e; i; O; w; f] initially, after that the state x is used for everythingx % [px; py; pz; vx; vy; vz] in ECIconstellationName % string denoting which constellation satellite belongs tosatID % int denoting the satellite IDz % IR sensor measurementy % predicted IR sensor measurementcanObserve false; % boolean denoting whether the satellite can observe the ballistic missile at any given timeH_funcHhasLOS false;meetsIntensity false;IR_sensor_gain 1; % make IR sensors more or less sensitive to detectionI_threshold 1e-3; % TODO editmu 3.986e14; % Earths gravitational constant, m^3/s^2endmethodsfunction obj Satellite(satID, constellationName, a, e, i, O, w, f)obj.satID satID;obj.constellationName constellationName;obj.orbElems [a;e;i;O;w;f];[r, v] obj.elements_to_rv(a, e, i, O, w, f, obj.mu);obj.x [r;v];obj.formHfunction();endfunction [xdot] satelliteDynamics(obj, x)r x(1:3);v x(4:6);xdot zeros(6,1);xdot(1:3) v;xdot(4:6) (-obj.mu/(norm(r)^3))*r;endfunction [obj] propagateSatellite(obj, dt)% Updates object state obj.x with satellite dynamics function% and RK4 (faster in a large scale simulation than ode45())k1 obj.satelliteDynamics(obj.x);k2 obj.satelliteDynamics(obj.x (dt/2)*k1);k3 obj.satelliteDynamics(obj.x (dt/2)*k2);k4 obj.satelliteDynamics(obj.x dt*k3);obj.x obj.x (dt/6)*(k1 2*k2 2*k3 k4);endfunction [obj] checkLOS(obj, r_missile_ECI)% Function to check if missile has line of sight to satelliter_satellite_ECI obj.x(1:3);lambda 0:0.01:1;line_to_missile r_satellite_ECI (r_missile_ECI-r_satellite_ECI)*lambda;norm_line vecnorm(line_to_missile, 2);min_altitude_visible 6371000 20000; % Radius of Earth plus where atmosphere is thickif any(norm_line min_altitude_visible)obj.hasLOS false;elseobj.hasLOS true;endendfunction [obj] checkIntensity(obj, r_missile_ECI, beta)% Function that checks if the visible intensity of the% satellite to an IR sensor is high enough to be detected% beta: current infrared output of missile based on plume (if% in boost), area observed, emissivity, etc.r_satellite_ECI obj.x(1:3);r_sat_to_missile r_missile_ECI - r_satellite_ECI;I (obj.IR_sensor_gain*beta)/(norm(r_sat_to_missile)^2);if I obj.I_thresholdobj.meetsIntensity true;elseobj.meetsIntensity false;endendfunction [obj] checkObservability(obj, r_missile_ECI, beta)% Overall function to check if a satellite can observe/detect% the missile, conditions are having line of sight and meeting% the intensity thresholdobj.checkLOS(r_missile_ECI);obj.checkIntensity(r_missile_ECI, beta);if obj.hasLOS % meetsIntensityobj.canObserve true;elseobj.canObserve false;endendfunction [y] getMeasurement(obj, x_missile_ECI, R)% Function to collect either a predicted measurement (R 0)% or an actual measurement (R \neq 0)% Measurement vector: [az; el; az rate; el rate]x_satellite_ECI obj.x;r_sat_to_missile x_missile_ECI(1:3) - x_satellite_ECI(1:3);v_sat_to_missile x_missile_ECI(4:6) - x_satellite_ECI(4:6);az atan2(r_sat_to_missile(2), r_sat_to_missile(1)) normrnd(0, sqrt(R(1,1)));el atan2(-r_sat_to_missile(3), sqrt(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2)) normrnd(0, sqrt(R(2,2)));az_rate (r_sat_to_missile(1)*v_sat_to_missile(2) - r_sat_to_missile(2)*v_sat_to_missile(1))/(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2) normrnd(0, sqrt(R(3,3)));el_rate (r_sat_to_missile(3)*(r_sat_to_missile(1)*v_sat_to_missile(1) r_sat_to_missile(2)*v_sat_to_missile(2)) - v_sat_to_missile(3)*(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2))/ ...(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2 (r_sat_to_missile(3)^2)*sqrt(r_sat_to_missile(1)^2 r_sat_to_missile(2)^2)) normrnd(0, sqrt(R(4,4)));y [az; el; az_rate; el_rate];endfunction [obj] formHfunction(obj)% Function to form a matrix-valued function which, when% evaluated, forms the H matrix corresponding to the current% satellites measurementsyms x y z xdot ydot zdot realh1 atan2(y, x);h2 atan2(-z, sqrt(x^2 y^2));h3 (x*ydot - y*xdot)/(x^2 y^2);h4 (z*(x*xdot y*ydot) - zdot*(x^2 y^2))/ ...(x^2 y^2 (z^2)*sqrt(x^2 y^2));H_sym jacobian([h1;h2;h3;h4], [x; y; z; xdot; ydot; zdot]);obj.H_func matlabFunction(H_sym, Vars, {x, y, z, xdot, ydot, zdot});endfunction [H] evaluateH(obj, x_missile)obj.H obj.H_func(x_missile(1), x_missile(2), x_missile(3), x_missile(4), x_missile(5), x_missile(6));H obj.H;endfunction[r, v] elements_to_rv(obj, a, e, i, O, w, f, mu)%Input all element angles in degrees%Input mu in SI units, no km stuffi i*pi/180;O O*pi/180;w w*pi/180;f f*pi/180;r_norm (a*(1-e^2))/(1e*cos(f));r_peri [r_norm*cos(f); r_norm*sin(f); 0];p a*(1-e^2);v_peri [sqrt(mu/p)*-1*sin(f); sqrt(mu/p)*(ecos(f)); 0];% Rotation matrix termsR_11 cos(O)*cos(w) - sin(O)*sin(w)*cos(i);R_12 -cos(O)*sin(w) - sin(O)*cos(w)*cos(i);R_13 sin(O)*sin(i);R_21 sin(O)*cos(w) cos(O)*sin(w)*cos(i);R_22 -sin(O)*sin(w) cos(O)*cos(w)*cos(i);R_23 -cos(O)*sin(i);R_31 sin(w)*sin(i);R_32 cos(w)*sin(i);R_33 cos(i);R [R_11, R_12, R_13;R_21, R_22, R_23;R_31, R_32, R_33];r R*r_peri;v R*v_peri;endendend 参考文献更多免费数学建模和仿真教程关注领取