Main Content

constvelmscjac

Jacobian of state transition function based on constant-velocity motion model in MSC frame

Description

[Jx,Jw] = constvelmscjac(state,vNoise) returns the Jacobians of the state transition function based on the constant-velocity motion model with respect to the state vector and the noise. state defines the input state, and vNoise defines the target acceleration noise in the observer's Cartesian frame. The default time step dt is one second. The function assumes zero observer acceleration in all dimensions.

The trackingEKF object allows you to specify the StateTransitionJacobianFcn property. The function can be used as a StateTransitionJacobianFcn when the HasAdditiveProcessNoise is set to false.

[Jx,Jw] = constvelmscjac(state,vNoise,dt) specifies the time interval, dt. The function assumes zero observer acceleration in all dimensions.

[Jx,Jw] = constvelmscjac(state,vNoise,dt,u) specifies the observer input, u, during the time interval, dt.

example

Examples

collapse all

Define a state vector for 2-D MSC.

state = [0.5;0.01;0.001;0.01];

Calculate the Jacobian matrix assuming dt = 1 second, no observer maneuver, and zero target acceleration noise.

[jacobianState,jacobianNoise] = constvelmscjac(state,zeros(2,1)) %#ok
jacobianState = 4×4

    1.0000    0.9900   -0.0000   -0.0098
   -0.0000    0.9800         0   -0.0194
    0.0000   -0.0000    0.9901   -0.0010
   -0.0000    0.0194   -0.0000    0.9800

jacobianNoise = 4×2
10-3 ×

   -0.2416    0.4321
   -0.4851    0.8574
   -0.0004   -0.0002
    0.8574    0.4851

Calculate the Jacobian matrix, given dt = 0.1 seconds, no observer maneuver, and a unit standard deviation target acceleration noise.

[jacobianState,jacobianNoise] = constvelmscjac(state,randn(2,1),0.1) %#ok
jacobianState = 4×4

    1.0000    0.0999    0.0067   -0.0001
   -0.0001    0.9980    0.1348   -0.0020
   -0.0000   -0.0000    0.9990   -0.0001
    0.0001    0.0020    0.1351    0.9980

jacobianNoise = 4×2
10-4 ×

   -0.0240    0.0438
   -0.4800    0.8755
   -0.0000   -0.0000
    0.8755    0.4800

Calculate the Jacobian matrix, given dt = 0.1 seconds and observer acceleration = [0.1 0.3] in the 2-D observer's Cartesian coordinates.

[jacobianState,jacobianNoise] = constvelmscjac(state,randn(2,1),0.1,[0.1;0.3])
jacobianState = 4×4

    1.0000    0.0999    0.0081   -0.0001
    0.0002    0.9980    0.1625   -0.0020
   -0.0000   -0.0000    0.9990   -0.0001
    0.0002    0.0020   -0.1795    0.9980

jacobianNoise = 4×2
10-4 ×

   -0.0240    0.0438
   -0.4800    0.8756
   -0.0000   -0.0000
    0.8756    0.4800

Input Arguments

collapse all

State that is defined relative to an observer in modified spherical coordinates, specified as a vector. For example, if there is a constant velocity target state, xT, and a constant velocity observer state, xO, then the state is defined as xT - xO transformed in modified spherical coordinates.

The 2-D version of modified spherical coordinates (MSC) is also referred to as the modified polar coordinates (MPC).

In case the motion is in:

  • 2-D space –– State is equal to [az azRate 1/r vr/r]

  • 3-D space –– State is equal to [az omega el elRate 1/r vr/r]

The variables used in the convention are:

  • az –– Azimuth angle (rad)

  • el –– Elevation angle (rad)

  • azRate –– Azimuth rate (rad/s)

  • elRate –– Elevation rate (rad/s)

  • omega –– azRate × cos(el) (rad/s)

  • 1/r –– 1/range (1/m)

  • vr/r –– range-rate/range or inverse time-to-go (1/s)

Data Types: single | double

Target acceleration noise in scenario, specified as a vector of 2 or 3 elements.

Data Types: double

Time step interval, specified as a positive scalar. Time units are in seconds.

Example: 0.5

Data Types: single | double

Observer input, specified as a vector or a matrix. The observer input can have the following impact on state-prediction based on its dimensions:

  • When the number of elements in u equals the number of elements in state, the input u is assumed to be the maneuver performed by the observer during the time interval, dt. A maneuver is defined as motion of the observer higher than first order (or constant velocity).

  • When the number of elements in u equals half the number of elements in state, the input u is assumed to be constant acceleration of the observer, specified in the scenario frame during the time interval, dt.

Data Types: double

Output Arguments

collapse all

Jacobian of the state transition function with respect to the input state, returned as an n-by-n matrix, where n is the number of states in the state vector. 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.

Data Types: double

Jacobian of the state transition function with respect to the noise elements, returned as an n-by-m matrix. The variable n is the number of states in the state vector, and the variable m is the number of process noise terms. That is, m = 2 for state in 2-D space, and m = 3 for state in 3-D space.

For example, if the state vector is a 4-by-1 vector in a 2-D space, vNoise must be a 2-by-1 vector, and Jw is a 4-by-2 matrix.

If the state vector is a 6-by-1 vector in 3-D space, vNoise must be a 3-by-1 vector, and Jw is a 6-by-3 matrix.

Data Types: double

Extended Capabilities

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

Version History

Introduced in R2018b

See Also

Objects

Functions