# singerjac

Jacobian of Singer acceleration motion model

## Syntax

``jacobian = singerjac(state)``
``jacobian = singerjac(state,dt)``
``jacobian = singerjac(state,dt,tau)``

## 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

`${J}_{1}=\left[\begin{array}{ccc}1& T& {\tau }^{2}\left(-T/\tau +\beta \right)\\ 0& 1& \tau \left(1-\beta \right)\\ 0& 0& 0\end{array}\right]$`

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

`${J}_{2}=\left[\begin{array}{cc}{J}_{1}& 0\\ 0& {J}_{1}\end{array}\right]$`

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

`${J}_{3}=\left[\begin{array}{ccc}{J}_{1}& 0& 0\\ 0& {J}_{1}& 0\\ 0& 0& {J}_{1}\end{array}\right]$`

## 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.