Main Content

constveljac

Jacobian for constant-velocity motion

Since R2021a

Description

example

jacobian = constveljac(state) returns the updated Jacobian , jacobian, for a constant-velocity Kalman filter motion model for a step time of one second. The state argument specifies the current state of the filter.

example

jacobian = constveljac(state,dt) specifies the time step, dt.

[jacobian,noisejacobian] = constveljac(state,w,dt) specifies the state noise, w, and returns the Jacobian, noisejacobian, of the state with respect to the noise.

Examples

collapse all

Compute the state Jacobian for a two-dimensional constant-velocity motion model for a one second update time.

state = [1,1,2,1].';
jacobian = constveljac(state)
jacobian = 4×4

     1     1     0     0
     0     1     0     0
     0     0     1     1
     0     0     0     1

Compute the state Jacobian for a two-dimensional constant-velocity motion model for a half-second update time.

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

Compute the state update Jacobian for 0.5 second.

jacobian = constveljac(state,0.5)
jacobian = 4×4

    1.0000    0.5000         0         0
         0    1.0000         0         0
         0         0    1.0000    0.5000
         0         0         0    1.0000

Input Arguments

collapse all

Kalman filter state vector for constant-velocity motion, specified as a real-valued 2N-element column vector where N is the number of spatial degrees of freedom of motion. The state is expected to be Cartesian state. For each spatial degree of motion, the state vector takes the form shown in this table.

Spatial DimensionsState Vector Structure
1-D[x;vx]
2-D[x;vx;y;vy]
3-D[x;vx;y;vy;z;vz]

For example, x represents the x-coordinate and vx represents the velocity in the x-direction. If the motion model is 1-D, values along the y and z axes are assumed to be zero. If the motion model is 2-D, values along the z axis are assumed to be zero. Position coordinates are in meters and velocity coordinates are in meters/sec.

Example: [5;.1;0;-.2;-3;.05]

Data Types: single | double

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

Example: 0.5

Data Types: single | double

State noise, specified as a scalar or real-valued real valued N-by-1 vector. N is the number of motion dimensions. For example, N = 2 for the 2-D motion. If specified as a scalar, the scalar value is expanded to an N-by-1 vector.

Data Types: single | double

Output Arguments

collapse all

Constant-velocity motion Jacobian, returned as a real-valued 2N-by-2N matrix. N is the number of spatial degrees of motion.

Constant velocity motion noise Jacobian, returned as a real-valued 2N-by-N matrix. N is the number of spatial degrees of motion. The Jacobian is constructed from the partial derivatives of the state at the updated time step with respect to the noise components.

Algorithms

For a two-dimensional constant-velocity motion, the Jacobian matrix for a time step, T, is block diagonal:

[1T000100001T0001]

The block for each spatial dimension has this form:

[1T01]

For each additional spatial dimension, add an identical block.

Extended Capabilities

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

Version History

Introduced in R2021a