can I use satellite trajectories in the Sensor Fusion and Tracking Toolbox?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to develop a simulation to evaluate the effectiveness of space-based bi-static radars. I would like to know if the Sensor Fusion and Tracking Tool can create or import satellite trajectories.
0 Kommentare
Antworten (2)
Urmila Rajpurohith
am 20 Aug. 2019
You can refer to below documentation for creating trajectories using Phased array toolbox
0 Kommentare
Gael Goron
am 1 Nov. 2019
Hi Peter,
There is no out of the box satellite trajectory models in Sensor Fusion and Tracking (as of R2019b).
However you can get to it with a little bit of work.
The idea would be to leverage the kinematicTrajectory system object. You can inherit from this class and override the method stepImpl. If you are not familiar with system objects, I recomment taking a look at this documentation page.
I am copying a code snippet of what this could look like to use keplerian trajectories:
classdef myTrajectory < kinematicTrajectory
properties
Mu = 398600.4405; % km^3 s^-2
end
methods(Access = protected)
function stepImpl(obj,~,~)
dt = 1/obj.SampleRate;
state = [obj.Position obj.Velocity]';
% Simple RK4 integration method:
k1 = keplerStateTransition(obj, state);
k2 = keplerStateTransition(obj, state + dt*k1/2);
k3 = keplerStateTransition(obj, state + dt*k2/2);
k4 = keplerStateTransition(obj, state + dt*k3);
state = state + dt*(k1+2*k2+2*k3+k4)/6;
obj.Position = state(1:3)';
obj.Velocity = state(4:6)';
end
function dstate = keplerStateTransition(obj,state)
x =state(1);
vx = state(4);
y=state(2);
vy = state(5);
z=state(3);
vz = state(6);
% keplerian motion model
mu = obj.Mu;
r = norm([x y z]);
g = mu/r^2;
dstate = [vx;vy;vz;-g*x/r;-g*y/r;-g*z/r];
end
end
end
In this code, I am using some properties from the parent kinematicTrajectory class: Position, Velocity and SampleRate.
You would then use this class by assigning it to platforms in a tracking scenario:
scene = trackingScenario;
spaceObject = platform(scene); % by default this platform has a kinematic trajectory
spaceObject.Trajectory = myTrajectory('Position',[8000, 0, 0], 'Velocity',[0, 7, 1.2]) % replace with new trajectory model (init values are dummies, note that they should be non zero)
This is just a starting point, of course you can try and adapt it to your needs.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Scenario Generation and Visualization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!