# constturn
恒转弯率运动模型
函数库: TyRadar
# 语法
updatedstate = constturn(state)
updatedstate = constturn(state, dt)
updatedstate = constturn(state, w, dt)
# 说明
updatedstate = constturn(state) 返回经过一秒步进时间后从上一状态 state 得到的更新状态 updatestate,运动模式为恒转弯率。恒转弯率意味着 x-y 平面上的运动遵循恒定角速度,垂直 z 方向上的运动遵循恒定速度模型。示例
updatedstate = constturn(state, dt) 还指定了时间步长 dt。示例
updatedstate = constturn(state, w, dt) 还指定了噪声 w。
# 示例
恒转弯率运动的更新状态
定义二维恒转弯率运动的初始状态。转动速度为 12°/s。将状态更新到 1s 后。
using TyRadar
state = [500, 0, 0, 100, 12]
state = constturn(state)
state = 5-element Vector{Float64}:
489.5662479151024
-20.791169081775934
99.27051996072068
97.81476007338057
12.0
以指定时间步长更新恒转弯率运动状态
定义二维恒转弯率运动的初始状态。转动速度为 12°/s。将状态更新到 0.1s 后。
using TyRadar
state = [500, 0, 0, 100, 12]
state = constturn(state, 0.1)
state = 5-element Vector{Float64}:
499.89528407275975
-2.094241988335696
9.999268934226762
99.97806834748455
12.0
# 输入参数
state - 状态向量实值 5 元向量 | 实值 7 元向量 | 5 × N 实值矩阵 | 7 × N 实值矩阵
二维或三维空间中恒转弯率运动模型的状态向量,指定为实值向量或矩阵。
- 指定为 5 元素矢量时,状态矢量描述的是 x-y 平面上的二维运动。可以将状态向量指定为行向量或列向量。状态向量的分量为 [x; vx; y; vy; omega],其中 x 代表 x 坐标,vx 代表 x 方向的速度。y 代表 Y 坐标,vy 代表 Y 方向的速度;
当指定为 5 × N 矩阵时,每列代表一个不同的状态向量;
- 指定为 7 元素矢量时,状态矢量描述的是三维运动。可以将状态向量指定为行向量或列向量。状态向量的分量为 [x; vx; y; vy; omega; z; vz],其中 x 代表 x 坐标,vx 代表 x 方向的速度。y 表示 y 坐标,vy 表示 y 方向的速度。omega 表示转弯速率。z 表示 z 坐标,vz 表示 z 方向上的速度;
当指定为 7 × N 矩阵时,每列代表一个不同的状态向量。N 代表状态数。
位置坐标以 m 为单位。速度坐标单位为 m/s。转弯率单位为 °/s。
示例: [5; 0.1; 4; -0.2; 0.01]
dt - 滤波器的时间步长间隔1.0(默认) | 正标量
滤波器的时间步长间隔,指定为正标量。时间单位为 s。
示例: 0.5
w - 状态噪声标量 | 实值 (D+1)×N 矩阵
状态噪声,指定为标量或实值 (D+1)-length × N 矩阵。D 是运动维度的数量,N 是状态向量的数量。分量是每个列对于 2-D 运动是 [ax; ay; alpha],或者对于 3-D 运动是 [az; ay; alpha; az]。ax、ay 和 az 分别是 x、y 和 z 轴上的线性加速度噪声值,alpha 是角加速度噪声值。如果指定为标量,则该值将扩展为 (D+1)×N 矩阵。
# 输出参数
updatedstate - 更新的状态向量实值向量 | 实值矩阵
更新的状态向量,以实值向量或实值矩阵的形式返回,其元素个数和维数与输入状态向量相同。
# 另请参阅
constaccjac | ctmeas | ctmeasjac | constvel | constveljac | cvmeas | cvmeasjac