Singer acceleration motion model
Define a state matrix for a 2-D Singer acceleration motion.
states = [1 2 2.5;1 2.5 3;0 -1 2;2 3 -1;5 0 3;-2 4 2];
Predict the states by using a default time step interval
dt = 1 second.
states = singer(states)
states = 6×3 2.0000 4.0082 6.4835 1.0000 1.5246 4.9508 0 -0.9512 1.9025 6.0165 4.9671 2.9835 3.0492 3.9016 4.9508 -1.9025 3.8049 1.9025
Predict the state by using
dt = 0.1 second.
states = singer(states,0.1)
states = 6×3 2.1000 4.1559 6.9881 1.0000 1.4297 5.1406 0 -0.9465 1.8930 6.3119 5.3762 3.4881 2.8594 4.2812 5.1406 -1.8930 3.7859 1.8930
Define a state vector for a 2-D Singer acceleration motion.
state = [10;-10;3;0;10;-3]; dt = 0.2; % time step in seconds tau = 10; % maneuver time in seconds
singer function to create a trajectory and measure the positions using the
positions = zeros(2,100); % Pre-allocate memory measurements = zeros(3,100); % Pre-allocate memory for i = 1:1:100 state = singer(state, dt, tau); positions(:,i) = [state(1); state(4)]; measurements(:,i) = singermeas(state); end
Visualize the results.
plot(positions(1,:), positions(2,:)) hold on plot(measurements(1,:), measurements(2,:), '.') title('Singer Acceleration Model'); xlabel('X[m]'); ylabel('Y[m]'); legend('Trajectory', 'Measurements');
states— Current states
Current states, specified as a real-valued 3N-by-1 vector or a real-valued 3N-by-M matrix. N is the spatial degree of the state, and M is the number of states.
The state vector in each column takes different forms based on its spatial dimensions.
|Spatial Degrees||State Vector Structure|
x represents the
vx represents the velocity in the
ax represents the
acceleration in the x-direction. If the motion model is in
one-dimensional space, the y- and z-axes are
assumed to be zero. If the motion model is in two-dimensional space, values along the
z-axis are assumed to be zero. Position coordinates are in
meters. Velocity coordinates are in meters/second. Acceleration coordinates are in
dt— Time step
1.0(default) | positive scalar
Time step, specified as a positive scalar in seconds.
tau— Target maneuver time constant
20(default) | positive scalar | N-element vector of scalar
Target maneuver time constant, specified as a positive scalar or an N-element vector of scalars in seconds. N is the spatial degree of the state. When specified as a vector, each element applies to the corresponding spatial dimension.
updatedstates— Updated states
Updated states, returned as a real-valued 3N-by-1 vector or a
real-valued 3N-by-M matrix. N
is the spatial degree of the state, and M is the number of states.
updatedStates output has the exactly same form as the
The Singer acceleration model assumes the acceleration at time step k+1, which depends on the acceleration at time step k with exponential decay as:
where a(k) is the acceleration at time step k, T is the time step, and τ is the target maneuver time constant.
For a 1-D singer model state p = [x, vx, ax]T, the state propagation is:
where α = 1/τ is the reciprocal of
the target maneuver time constant and w(k) is the Singer
model process noise at time step k. See
singerProcessNoise for more
details on the process noise.
 Singer, Robert A. "Estimating optimal tracking filter performance for manned maneuvering targets." IEEE Transactions on Aerospace and Electronic Systems 4 (1970): 473-483.
 Blackman, Samuel S., and Robert Popoli. "Design and analysis of modern tracking systems." (1999).
 Li, X. Rong, and Vesselin P. Jilkov. "Survey of maneuvering target tracking: dynamic models." Signal and Data Processing of Small Targets 2000, vol. 4048, pp. 212-235. International Society for Optics and Photonics, 2000.