1. 项目背景与核心问题
航天器末端追逃博弈是空间对抗领域的关键课题,其本质是双方在有限时间内通过机动策略实现追踪或逃脱的目标。传统研究多基于完全信息假设,但实战中双方动力学参数(如推力上限、机动能力)往往存在信息不对称。本项目复现的论文创新性地将Epsilon纳什均衡引入不完全信息场景,结合扩展卡尔曼滤波(EKF)实现参数在线估计,最终构建出具有工程实用价值的自适应博弈策略。
核心突破点:通过EKF实时估计对手的未知动力学参数,将估计结果反馈至博弈策略生成模块,动态调整Epsilon纳什均衡解,实现"感知-估计-决策"的闭环控制。
2. 模型构建与算法框架
2.1 追逃博弈动力学建模
采用相对运动坐标系描述航天器运动状态:
matlab复制% 状态向量定义(追踪者视角)
x = [r_x, r_y, r_z, v_x, v_y, v_z]'; % 相对位置和速度
u_p = [a_x, a_y, a_z]'; % 追踪者控制输入
u_e = [b_x, b_y, b_z]'; % 逃逸者控制输入
% 连续时间动力学方程
A = [zeros(3), eye(3);
zeros(3), zeros(3)];
B_p = [zeros(3); eye(3)];
B_e = -B_p;
其中关键参数θ=[推力上限,机动响应时间]需要在线估计,构成不完全信息源。
2.2 EKF参数估计实现
构建增广状态向量包含动力学参数:
matlab复制x_aug = [x; θ]; % 增广状态维度n=6+2
% 状态转移雅可比矩阵
F = [A, B_p*u_p, B_e*u_e;
zeros(2,6), eye(2)];
H = [eye(6), zeros(6,2)]; % 观测矩阵
参数估计的核心在于过程噪声协方差Q的调参,建议采用自适应方法:
matlab复制Q(7:8,7:8) = diag([0.01*||u_p||, 0.01*||u_e||]); % 参数噪声与输入相关
2.3 Epsilon纳什均衡求解
构建支付函数矩阵时引入参数估计结果:
matlab复制% 支付矩阵元素计算示例
J_ij = norm(x_final)^2 + λ*u_p'*u_p - γ*(θ_est(1)-θ_min);
采用改进的Lemke-Howson算法求解混合策略时,设置ε=0.05作为均衡容忍阈值。
3. Matlab实现关键代码解析
3.1 主循环架构
matlab复制for k = 1:T/dt
% EKF参数估计阶段
[x_est, theta_est] = EKF_update(z_k, u_p_prev, u_e_prev);
% 博弈矩阵生成
payoff_matrix = build_payoff(x_est, theta_est);
% Epsilon纳什均衡求解
[sigma_p, sigma_e] = epsilon_nash(payoff_matrix, 0.05);
% 策略执行
u_p = sigma_p * action_set;
u_e = sigma_e * action_set;
% 动力学更新
x = propagate_dynamics(x, u_p, u_e);
end
3.2 EKF实现细节
matlab复制function [x_est, P] = EKF_update(z, u_p, u_e)
% 预测步骤
x_pred = f(x_prev, u_p, u_e);
P_pred = F*P*F' + Q;
% 更新步骤
K = P_pred*H'/(H*P_pred*H' + R);
x_est = x_pred + K*(z - H*x_pred);
P = (eye(n) - K*H)*P_pred;
end
注意点:Q矩阵需要根据机动强度动态调整,建议采用运动学一致性检验:
matlab复制if norm(z-H*x_pred) > threshold
Q(1:6,1:6) = Q_base * (1 + 0.5*log(norm(z-H*x_pred)));
end
4. 仿真结果与性能分析
4.1 参数估计收敛性
在100秒仿真中,推力上限估计误差收敛情况:
| 时间(s) | 真实值(N) | 估计值(N) | 相对误差 |
|---|---|---|---|
| 10 | 500 | 382 | 23.6% |
| 30 | 500 | 467 | 6.6% |
| 60 | 500 | 492 | 1.6% |
4.2 追逃成功率对比
不同方法在相同初始条件下的性能:
| 方法 | 捕获率 | 平均终端距离(m) |
|---|---|---|
| 完全信息纳什均衡 | 68% | 12.7 |
| 本文方法(ε=0.05) | 83% | 8.2 |
| 纯EKF策略 | 57% | 18.3 |
5. 工程实践中的注意事项
-
EKF调参经验:
- 初始协方差P0建议设为对角阵,位置相关项取10m²,速度项取1(m/s)²,参数项取最大值的50%
- 过程噪声Q中参数估计部分应与机动强度正相关,可设置Q_θ=α·diag([||u_p||, ||u_e||])
-
博弈策略优化:
- 当估计置信度低时(det(P)>阈值),适当增大ε值到0.1-0.2
- 支付函数中的权重系数λ建议采用自适应调整:
matlab复制lambda = lambda_base * (1 + 0.1*(theta_est(1)/theta_nom - 1)); -
实时性保障:
- 将Lemke-Howson算法预先编译为Mex文件可提升5-8倍速度
- 博弈矩阵维度控制在5×5以内以保证实时性
6. 扩展应用方向
- 多航天器协同场景:
matlab复制% 将对手参数估计结果共享至编队
for i = 1:N
theta_team(:,i) = consensus_filter(theta_est_local, comm_graph);
end
- 智能体强化学习:
可将EKF估计结果作为状态输入,利用DDPG算法训练策略网络:
matlab复制state = [x; theta_est]; % 状态空间扩展到包含参数估计
action = actor_network(state);
- 抗欺骗策略设计:
通过检测估计参数与运动学的一致性,识别对手的欺骗机动:
matlab复制if norm(z-H*x_pred) > 3*sqrt(diag(H*P_pred*H'))
warning('Possible deception maneuver detected');
end
关键实现技巧:在Matlab中使用Parallel Computing Toolbox加速蒙特卡洛仿真,建议将博弈策略生成部分封装为parfor可调用的独立函数。