Main Content

singerjac

Jacobian of Singer acceleration motion model

Since R2020b

Description

example

jacobian = singerjac(state) returns the Jacobian matrix of the Singer motion model with respect to the state vector. The default time step is 1 second.

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

Current 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

The Jacobian matrix of a Singer model, returned as a 3N-by-3N matrix of real scalars. N is the spatial degree of the state input.

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