三点法制导是一种导弹制导策略,主要用于确保导弹能够准确追踪并击中移动目标。该方法通过计算导弹、目标和制导站之间的相对位置关系,实现对目标的有效制导。
本文给出MATLAB下的三点法例程,模拟平面上捕获运动目标的情况
代码运行结果
导引示意图:
捕获时间输出(命令行截图):
程序结构:
三点法导引数学建模
数学模型推导
设制导站(跟踪雷达)坐标为 S = [ x s , y s ] S = [x_s, y_s] S=[xs,ys],目标坐标为 T ( t ) T(t) T(t),导弹坐标为 M ( t ) M(t) M(t)。根据三点法导引规则,导弹位置始终满足:
M ( t ) = S + λ ( t ) ⋅ ( T ( t ) − S ) M(t) = S + \lambda(t) \cdot \left( T(t) - S \right) M(t)=S+λ(t)⋅(T(t)−S)
其中 λ ( t ) ∈ [ 0 , 1 \lambda(t) \in [0,1 λ(t)∈[0,1为比例系数,随时间递增趋近于1。
运动学方程
- 目标运动方程(假设匀速直线运动):
T ( t + Δ t ) = T ( t ) + v T ⋅ Δ t T(t+\Delta t) = T(t) + v_T \cdot \Delta t T(t+Δt)=T(t)+vT⋅Δt - 导弹速度方向约束:
导弹速度 v M v_M vM方向始终沿 S − T ( t ) S-T(t) S−T(t)连线方向,故导弹位置更新方程为:
M ( t + Δ t ) = M ( t ) + v M ⋅ Δ t ⋅ T ( t ) − S ∥ T ( t ) − S ∥ M(t+\Delta t) = M(t) + v_M \cdot \Delta t \cdot \frac{T(t) - S}{\|T(t) - S\|} M(t+Δt)=M(t)+vM⋅Δt⋅∥T(t)−S∥T(t)−S
代码说明
-
参数配置
明确分离制导站坐标、目标运动参数和导弹性能参数,便于修改场景。 -
运动学更新
每个时间步动态计算目标新位置,并根据当前雷达-目标连线方向修正导弹航向,确保严格遵循三点法规则。 -
可视化增强
使用三维箭头标注初始瞄准线,区分目标和导弹轨迹线型,直观展示导引过程。
MATLAB仿真源代码
% 三点法导引,二维平面上的导引方法例程,目标匀速运动
% 2025-05-31/Ver1
clear; clc; close all;
%% 参数定义
% 制导站坐标(跟踪雷达)
S = [0, 0]; % 假设雷达位于原点
% 初始目标位置与速度
T0 = [300, 200]; % 目标初始坐标 (m)
vT = [10, 1]; % 目标运动速度 (m/s)
% 导弹参数
vM = 100; % 导弹速度 (m/s)
M0 = S + 0.1*(T0 - S); % 导弹初始位置(靠近雷达)
% 仿真参数
dt = 0.1; % 时间步长 (s)
totalTime = 200; % 总仿真时间 (s)
steps = totalTime / dt; % 总步数
%% 初始化轨迹存储
% traj_T = zeros(steps, 3); % 目标轨迹
% traj_M = zeros(steps, 3); % 导弹轨迹
完整代码下载链接:https://download.csdn.net/download/callmeup/90942907
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者