# ctrect

Constant turn-rate rectangular target motion model

## Syntax

``updatedstates = ctrect(states)``
``updatedstates = ctrect(states,dt)``
``updatedstates = ctrect(states,w,dt)``

## Description

````updatedstates = ctrect(states)` returns the updated rectangular states from the current rectangular `states` based on the rectangular target motion model. The default time step is 1 second.```
````updatedstates = ctrect(states,dt)` specifies the time step, `dt`, in seconds.```

example

````updatedstates = ctrect(states,w,dt)` additionally specifies the process noise, `w`.```

## Examples

collapse all

Define a rectangular state.

`state = [1 2 2 30 1 4.7 1.8];`

Predict the state `dt` = 1 second forward using the default syntax.

`state = ctrect(state,0.1)`
```state = 1×7 1.1731 2.1002 2.0000 30.1000 1.0000 4.7000 1.8000 ```

Predict the state dt = 0.1 second forward without noise.

`state = ctrect(state,0.1)`
```state = 1×7 1.3461 2.2006 2.0000 30.2000 1.0000 4.7000 1.8000 ```

Predict the state `dt` = 0.1 second forward with noise.

`state = ctrect(state,0.01,0.1)`
```state = 1×7 1.5189 2.3014 2.0010 30.3000 1.0010 4.7000 1.8000 ```

Define a state matrix.

`states = [1 3 4;-1 2 10;5 3 1.3;1 1.3 2.1;30 0 -30;4.7 3.4 4.5;1.8 2 3];`

Predict the state `dt` = 1 second ahead.` `

`states = ctrect(states)`
```states = 7×3 5.7516 5.9992 5.2528 0.3625 2.0681 9.7131 5.0000 3.0000 1.3000 31.0000 1.3000 -27.9000 30.0000 0.0000 -30.0000 4.7000 3.4000 4.5000 1.8000 2.0000 3.0000 ```

Predict the state `dt` = 0.1 second ahead without noise.

`states = ctrect(states,0.1)`
```states = 7×3 6.1732 6.2992 5.3660 0.6311 2.0749 9.6493 5.0000 3.0000 1.3000 34.0000 1.3000 -30.9000 30.0000 0.0000 -30.0000 4.7000 3.4000 4.5000 1.8000 2.0000 3.0000 ```

Predict the state `dt` = 0.1 second ahead with noise.

`states = ctrect(states,0.1*randn(2,3),0.1)`
```states = 7×3 6.5805 6.5979 5.4759 0.9216 2.0816 9.5795 5.0054 2.9774 1.3032 37.0009 1.3004 -33.9007 30.0183 0.0086 -30.0131 4.7000 3.4000 4.5000 1.8000 2.0000 3.0000 ```

## Input Arguments

collapse all

Current rectangular states, specified as a 1-by-7 real-valued vector, 7-by-1 real-valued vector, or a 7-by-N real-valued matrix, where N is the number of states. The seven dimensional rectangular target state is defined as [x; y; s; θ; ω; L; W]:

 Variable Meaning Unit x Position of the rectangle center in x direction m y Position of the rectangle center in y direction m s Speed in the heading direction m/s θ Orientation angle of the rectangle with respect to x direction degree ω Turn-rate degree/s L Length of the rectangle m W Width of the rectangle m Example: `[1;2;2;30;1;4.7;1.8]`

Data Types: `single` | `double`

Time step, specified as a real-valued positive scalar in second.

Data Types: `single` | `double`

Process noise, specified as a 2-by-N real-valued matrix, where N is the number of states specified in the `states` input. If specified as a scalar, it is expanded to a 2-by-N matrix with all elements equal to the scalar. The first row of the matrix specifies the process noise in acceleration (m/s2). The second row specifies the process noise in yaw acceleration (degrees/s2).

Data Types: `single` | `double`

## Output Arguments

collapse all

Updated states, specified as a 1-by-7 real-valued vector, a 7-by-1 real-valued vector, or a 7-by-N real-valued matrix, where N is the number of states. The dimensions and setups of `updatedstates` output are exactly the same as those of the `states` input.

Data Types: `single` | `double`

## Version History

Introduced in R2019b