
比例导引是导弹制导的方法之一。所谓比例导引法是指导弹在向目标接近的过程中,使导弹的速度向量V在空间的转动角速度正比于目标视线的转动角速度。
代码简介
这段MATLAB代码实现了三维空间中的比例导引算法,旨在模拟一个跟踪器对移动目标的追踪过程。代码通过动态计算和更新跟踪器的位置,使其能够有效地接近指定目标。
主要功能
-
初始化:
- 设置时间步长(
tt)和比例缩放因子(sm和st)以控制跟踪器与目标之间的动态关系。 - 初始化目标的位置和速度信息。
- 设置时间步长(
-
状态转移矩阵:
- 使用状态转移矩阵(
F)描述目标的位置和速度变化,模拟目标的运动轨迹。
- 使用状态转移矩阵(
-
主循环:
- 在每个时间步内,更新目标位置,根据设定的S型轨迹,计算当前位置与目标位置之间的距离。
- 计算与目标位置相关的角度和变化量,并在每个时间步更新跟踪器的角度、角速度和位置。
- 通过三角函数和几何关系,确保跟踪器朝着目标移动。
-
结束条件:
- 当跟踪器与目标之间的距离小于设定阈值时,循环将终止,表示成功追踪目标。
-
结果可视化:
- 最后,代码通过三维图形展示了跟踪器和目标的运动轨迹,使得用户可以直观地观察到比例导引的效果。
使用说明
- 用户可以通过调整时间步长和比例因子来观察不同参数对跟踪效果的影响。
- 代码中包含详细的注释,便于理解每一步的实现逻辑和算法原理。
运行结果
轨迹图

可旋转至三维:

捕获时间输出
命令行输出捕获时间:

源代码
部分源代码如下:
% 比例导引,三维
% 2025-03-04/Ver1
close all % 清除工作空间中的所有变量
clc % 清除命令窗口
clear % 再次清除工作空间,确保干净状态
% 设置时间步长和模型参数
tt = 0.1; % 时间步长
sm = 0.6 * tt; % 跟踪器与目标的比例缩放因子
st = 0.42 * tt; % 目标运动的比例缩放因子
% 初始化当前位置
x(1) = 0; % 初始x坐标
y(1) = 0; % 初始y坐标
z(1) = 0; % 初始z坐标
pmr(:, 1) = [x(1); y(1); z(1)]; % 初始位置数组
ptr(:, 1) = [25; 5; 10;-0.05;0.05;-0.1]; % 目标位置、速度数组
% ptr(:, 1) = [25; 5; 10]; % 目标位置、速度数组
m = 3; % 比例导引的参数
q(1) = 0; % 初始角度
o(1) = 0; % 初始角速度
a(1) = 0; % 初始角加速度
完整代码下载链接:https://download.youkuaiyun.com/download/callmeup/90459875
参考链接
百度百科:https://baike.baidu.com/item/%E6%AF%94%E4%BE%8B%E5%AF%BC%E5%BC%95%E6%B3%95/5310344
他人的文章:
比例导引详解(Proportional navigation guidance,PNG)-及Python程序
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

被折叠的 条评论
为什么被折叠?



