Main Content

# singer

Singer acceleration motion model

## Description

example

updatedstates = singer(states) returns the updated states from the current states based on the Singer acceleration motion model. The default time step is 1 second.

updatedstates = singer(states,dt) specifies the time step, dt, in seconds.

updatedstates = singer(states,dt,tau) specifies the target maneuver time constant, tau, in seconds. The default target maneuver time constant is 20 seconds.

## Examples

collapse all

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

Use the singer function to create a trajectory and measure the positions using the singermeas function.

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');

## Input Arguments

collapse all

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 DegreesState Vector Structure
1-D[x;vx;ax]
2-D[x;vx;ax;y;vy;ay]
3-D[x;vx;ax;y;vy;ay;z;vz;az]

For example, x represents the x-coordinate, vx represents the velocity in the x-direction, and 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 m/s2.

Example: [5;0.1;0.01;0;-0.2;-0.01;-3;0.05;0]

Time step, specified as a positive scalar in seconds.

Example: 0.5

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.

Example: 30

## Output Arguments

collapse all

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. The updatedStates output has the exactly same form as the states input.

## Algorithms

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:

$a\left(k+1\right)=a\left(k\right)*\mathrm{exp}\left(-T/\tau \right)$

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:

$p\left(k\right)=\left[\begin{array}{ccc}1& T& \left(\alpha T-1-{e}^{-\alpha T}\right)/{\alpha }^{2}\\ 0& 1& \left(1-{e}^{-\alpha T}\right)/\alpha \\ 0& 0& {e}^{-\alpha T}\end{array}\right]p\left(k\right)+w\left(k\right)$

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.

## References

[1] Singer, Robert A. "Estimating optimal tracking filter performance for manned maneuvering targets." IEEE Transactions on Aerospace and Electronic Systems 4 (1970): 473-483.

[2] Blackman, Samuel S., and Robert Popoli. "Design and analysis of modern tracking systems." (1999).

[3] 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.

## Version History

Introduced in R2020b