Main Content

singerjac

Jacobian of state transition function based on Singer acceleration motion model

Since R2020b

Description

jacobian = singerjac(state) returns the Jacobian of the state transition function, jacobian, based on the Singer motion model, which assumes the target acceleration decays over time. The default time step is 1 second. The state argument specifies the input state of the filter.

example

jacobian = singerjac(state,dt) specifies the time step dt in seconds.

jacobian = singerjac(state,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 for a 2-D Singer acceleration motion.

state = [1;1;1;2;1;0];

Calculate the Jacobian matrix assuming dt = 1 second.

jac1 = singerjac(state)
jac1 = 6×6

    1.0000    1.0000    0.4918         0         0         0
         0    1.0000    0.9754         0         0         0
         0         0    0.9512         0         0         0
         0         0         0    1.0000    1.0000    0.4918
         0         0         0         0    1.0000    0.9754
         0         0         0         0         0    0.9512

Calculate the Jacobian matrix assuming dt = 0.1 second.

jac2 = singerjac(state, 0.1)
jac2 = 6×6

    1.0000    0.1000    0.0050         0         0         0
         0    1.0000    0.0998         0         0         0
         0         0    0.9950         0         0         0
         0         0         0    1.0000    0.1000    0.0050
         0         0         0         0    1.0000    0.0998
         0         0         0         0         0    0.9950

Input Arguments

collapse all

Input state, specified as a real-valued 3N-by-1 vector. N is the spatial degree of the state. The state vector takes the different forms based on its 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 m/s. 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

Jacobian of the state transition function with respect to the input state, returned as a 3N-by-3N matrix of real scalars. N is the spatial degree of the state input. The function constructs the Jacobian from the partial derivatives of the state at the updated time step with respect to the state at the input time step.

Algorithms

Given the dimension of the state space, the Jacobian of a Singer model takes different forms.

For 1-D state space, the Jacobian matrix is calculated as

J1=[1Tτ2(T/τ+β)01τ(1β)000]

where T is the time step interval, τ is the target maneuver time constant, and β = exp(-T/τ).

For 2-D state space, the Jacobian matrix is calculated as

J2=[J100J1]

For 3-D state space, the Jacobian matrix is calculated as

J3=[J1000J1000J1]

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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2020b