不完全信息Epsilon纳什均衡的航天器追逃博弈复现与Matlab仿真

发布时间:2026/10/22 11:05:12
不完全信息Epsilon纳什均衡的航天器追逃博弈复现与Matlab仿真 复现一篇带不完全信息和Epsilon纳什均衡字样的航天器末端追逃博弈论文听起来就比常规的LQR追击问题高一个档次。这篇文章的完整标题是不完全信息Epsilon纳什均衡航天器末端追逃博弈策略基于EKF的参数估计与自适应博弈我花了大约三周时间把它从公式一步步推到了Matlab仿真结果。整个过程踩了不少坑也积累了很多工程细节这篇博文就把完整的复现思路、核心公式推导、代码实现细节和调试经验一次性讲清楚。先说结论这篇论文的核心创新点有三个。第一把传统追逃博弈从完全信息假设推广到了不完全信息追击者和逃逸者都不知道对方的精确参数第二用EKF扩展卡尔曼滤波在线估计对手的未知参数而不是假设参数直接已知第三基于估计结果自适应地调整博弈策略最终收敛到Epsilon纳什均衡。这三个点环环相扣。如果你正在做航天器交会对接、空间目标逼近或相关的制导控制研究这篇复现过程对你应该很有参考价值。1. 项目概述与核心思路1.1 追逃博弈在航天器末端场景中的实际意义航天器末端追逃不是简单的追得上追不上的问题。真实场景里追击器要接近目标飞行器而目标飞行器会机动规避这是一个典型的双人零和微分博弈——一方要最小化相对距离另一方要最大化相对距离或者最小化自己被捕获的概率。末端阶段的特点是相对速度大、机动时间短、对实时性要求极高几秒钟的决策延迟可能就决定了整个任务的成败。传统做法是把问题简化成线性二次型最优控制或者直接用比例导引之类的制导律。但这样做有个明显缺陷它把逃逸器当作不动的目标或匀速运动的目标来对待忽视了逃逸器也在实时做机动决策。博弈论的引入让双方都有了明确的策略意图追击器做决策时必须把逃逸器的反应考虑进去这才是博弈的含义。末端场景里一次成功的拦截不是单纯的速度优势问题而是策略对抗的胜负问题。1.2 不完全信息与Epsilon纳什均衡的引入逻辑完全信息博弈在航天器追逃里有一个致命假设双方都知道对方的全部参数比如推力加速度上限、燃料剩余、最大过载等。但现实中几乎不可能做到这一点。追击器可能只知道逃逸器的大致类型不知道它的真实推力参数逃逸器同样也可能不知道追击器的制导策略参数。这就是不完全信息。不完全信息直接导致一个问题经典的纳什均衡要求双方都能精确求解对方的最优响应现在这个前提不成立了。论文给出的解决方案是用Epsilon纳什均衡来放松这个要求。所谓Epsilon纳什均衡就是任何一个单方面偏离自己策略最多只能带来Epsilon那么大的收益改进。当Epsilon足够小时这个均衡就是一个可接受的近似解。换句话说在信息不完全的前提下双方不需要精确找到完美的最优策略只需要保证自己的策略在Epsilon范围内是最优的即可。我在复现前查过相关文献Epsilon纳什均衡在经济学里用得多在航天控制里相对少。这篇论文把它和EKF估计结合起来逻辑上是通的EKF负责把不完全信息逐步变成越来越完全的信息Epsilon纳什均衡负责在信息仍然不完全的时候给出一个可计算、有理论保障的策略。这里有个关键心得——不要把Epsilon单纯理解成误差或容差它实际上是信息不完备程度在策略层面的体现。信息越完备能取到的Epsilon越小信息越不完备Epsilon就得放宽否则均衡可能求不出来。1.3 为什么选择EKF做参数估计追逃博弈里的状态估计天然是非线性的。相对运动方程本身是非线性的观测方程比如视线角、相对距离测量也不是线性的。标准的卡尔曼滤波KF要求系统是线性加高斯噪声这在航天器追逃场景下基本不成立。EKF的思路很简单在每个时刻对非线性函数做一阶泰勒展开把系统近似成线性系统再走标准卡尔曼滤波的预测-更新流程。用EKF而不是粒子滤波或者无迹卡尔曼滤波UKF我猜测论文作者主要考虑三个因素。第一EKF的计算量最小在末端追逃这种强实时场景里运算时间是硬约束第二EKF对参数估计这类问题在初始值不太离谱的情况下收敛性通常够用第三EKF实现复杂度低便于在嵌入式平台上部署。我自己复现时也试过UKF精度确实略高一些但计算时间大约是EKF的三倍调试难度也明显上升。如果论文本身不做滤波算法的对比研究EKF是性价比最高的选择。2. 理论基础与模型构建2.1 航天器末端追逃的动力学模型论文采用的动力学模型是相对运动方程基于经典的C-W方程Clohessy-Wiltshire方程及其非线性版本。C-W方程描述了目标轨道坐标系下追踪器相对目标飞行器的运动适用于圆轨道、近距离相对运动场景。线性化后写成状态空间形式就是常见的六维状态向量三个相对位置分量加三个相对速度分量。末端追逃场景一般把初始相对距离设成几十公里量级相对速度几百米每秒量级整个博弈时间窗口大约几十秒到几分钟。推力加速度作为控制输入进入状态方程。我复现时第一个坑就出在这里论文里没有明确写清楚用的是线性C-W方程还是非线性相对运动方程。从仿真结果反推论文实际采用的是非线性方程因为EKF本身的更新需要非线性函数如果完全用线性模型EKF就退化成KF了没必要额外引入。所以我最终采用状态预测用非线性相对运动方程状态更新用EKF的一步更新这样既符合论文设定又能让EKF真正发挥作用。2.2 不完全信息博弈的数学刻画不完全信息在论文里的数学表达是每个玩家对对手的某个关键参数有一个先验分布但参数的精确值只有对手自己知道。最典型的是推力加速度上限。追击器不知道逃逸器的最大推力加速度到底是多少只知道它落在某个区间内比如[3, 6] m/s²。这样的博弈叫贝叶斯博弈Bayesian game。每个玩家的策略要针对对手参数的所有可能取值都给出响应而不是只针对一个确定值。但直接求解贝叶斯博弈的均衡往往极其困难尤其在高维状态空间下。论文巧妙地把问题拆成两步先用EKF在线估计对手参数把贝叶斯博弈在每一个时刻退化成一个带估计误差的确定性博弈再在这个确定性博弈框架下求解Epsilon纳什均衡。这样的处理让计算复杂度大幅下降同时保证了实时性。这部分我做了一个类比帮助理解这就像打牌的时候你不知道对手手里是什么牌但根据他之前的出牌习惯观测数据不断更新判断EKF估计然后基于判断选择当前最优的出牌策略Epsilon纳什均衡。信息在每一轮中逐渐完善策略也在一轮轮中逐渐优化。2.3 Epsilon纳什均衡的定义与求解思路Epsilon纳什均衡的严格定义是对于博弈中的每个玩家i如果没有任何玩家可以通过单方面改变策略获得超过Epsilon的收益那么这个策略组合就是Epsilon纳什均衡。数学表述为u_i(s_i^, s_{-i}^) ≥ max_{s_i ∈ S_i} u_i(s_i, s_{-i}^*) - ε其中u_i是玩家i的效用函数在追逃博弈里通常是代价值或支付值S_i是策略集合s_{-i}^*是其他玩家的策略组合。求解Epsilon纳什均衡的思路通常是迭代最优响应iterative best response初始给一个策略组合每一步让每个玩家针对对手当前策略求解自己的最优响应更新策略重复直到策略变化幅度小于某个阈值。这个迭代过程不一定总能收敛到精确纳什均衡但实践中的确可以收敛到Epsilon纳什均衡也就是每个玩家的策略偏离最优响应的收益损失不超过Epsilon。复现时我特别注意了Epsilon的取值方式。论文中Epsilon不是固定常数而是和估计误差的协方差矩阵相关联。估计误差越小Epsilon取值越小均衡越严格。这个设计在逻辑上非常自洽信息估计精度直接决定了博弈策略的可信程度也决定了均衡的精细程度。3. EKF参数估计模块的设计与实现3.1 状态向量设计与观测方程EKF的状态向量不是单纯的相对运动状态而是把需要估计的未知参数扩展进了状态向量。最常见的方式是增广状态向量x_aug [x_rel; v_rel; p_unknown]其中x_rel和v_rel是相对位置和相对速度六个分量p_unknown是待估计的未知参数比如逃逸器的推力加速度上限。增广之后状态方程变成x_aug_dot f(x_aug, u, t)。这个增广状态方程的特点是未知参数的导数为零假设参数在博弈过程中不变化这样EKF就能通过观测数据持续修正对参数的估计。观测向量一般包括相对距离雷达测量、视线角光学传感器测量有时候还包括相对速度多普勒测量。我在复现中采用相对距离加两个视线角的组合一共三个观测分量。这个组合在工程上最容易实现也最有代表性。观测噪声考虑为高斯白噪声协方差矩阵R对应各传感器的测量精度。3.2 EKF递推流程与关键参数设置EKF的递推流程分预测和更新两步。预测阶段用非线性状态方程从当前估计值出发计算下一时刻的先验估计和协方差矩阵x_pred x_est f(x_est, u, dt) P_pred F * P_est * F Q其中F是状态方程对状态向量的雅可比矩阵Q是过程噪声协方差矩阵。更新阶段用观测方程计算卡尔曼增益修正先验估计K P_pred * H * (H * P_pred * H R)^(-1) x_est x_pred K * (z - h(x_pred)) P_est (I - K * H) * P_pred其中H是观测方程对状态向量的雅可比矩阵R是测量噪声协方差矩阵。这里有几个参数对收敛性影响极大。Q矩阵设置太小EKF会过度信任模型预测参数估计收敛慢设置太大估计结果抖动剧烈。我的经验是采用对角加小扰动的方式相对位置和速度对应的Q元素取1e-6到1e-4量级未知参数对应的Q元素取1e-8左右表示参数在短时间内基本不变但允许缓慢漂移。初始协方差矩阵P0反映了对初始状态估计的信心参数对应的P0元素不能太小否则EKF几乎没有修正参数的能力。我踩过的一个坑就是P0设得太小结果EKF对参数的真实值根本不响应估计值一直停留在初始猜测附近。合理设置是状态变量取1e-4量级左右参数取1到10量级。3.3 参数可观测性与收敛性分析参数可观测性是EKF参数估计里绕不开的问题。简单说就是你拿到的观测数据里到底能不能看出这个参数的影响。如果观测完全不包含参数的信息EKF无论怎么调参数都不可观测估计结果只会是初始值的延续。在追逃场景里逃逸器的推力加速度上限是否可观测取决于逃逸器是否真的在机动。如果逃逸器全程不机动那它的推力参数就不会对相对运动产生任何影响EKF自然无法估计出真实值可能只能估计出一个下界。论文里实际上假设逃逸器会执行最优逃逸策略也就是在博弈过程中一定会用到自己的推力这样就保证了参数的可观测性。我复现时验证了这个逻辑把逃逸器的机动幅度人为调小之后参数估计的误差明显变大收敛速度也变慢。这说明激励对参数估计非常重要。为了达到论文中的理想效果仿真场景里逃逸器的机动必须是足够的否则后面的自适应博弈就缺少了基础。4. 自适应博弈策略与核心算法4.1 自适应策略的迭代更新机制自适应博弈的核心思想是每个决策周期内玩家先基于EKF的当前估计值把对手视为参数已知的对手然后求解对应的最优策略。随着EKF估计越来越准确这个最优策略也会越来越接近完全信息下的最优策略。具体实现上我把整个博弈过程分成多个决策周期每个周期内执行三个步骤第一步用EKF更新对对手参数的估计第二步将参数估计值代入博弈模型求解Epsilon纳什均衡第三步根据均衡策略计算本周期的最优控制输入作用于动力学模型。三个步骤循环进行直到博弈结束追击成功、逃逸成功或达到时间上限。这里有一个工程细节值得注意策略更新的频率和EKF更新的频率未必需要一致。EKF可以每个仿真步长都做一次更新但博弈策略的求解计算量大更适合以固定的决策周期执行。我复现时把仿真步长设为0.1秒EKF每个步长更新一次而博弈策略每2秒更新一次。这个分层设计既保证了估计的实时性又控制了计算负载。4.2 代价函数与最优响应求解追逃博弈的代价函数通常设计成终端代价格加过程代价的组合。追击器的目标是让终端相对距离尽可能小同时消耗的控制能量尽可能少逃逸器的目标则相反要让终端相对距离尽可能大同时保存自己的控制能量。也就是说这本质上是一个零和博弈追击器的收益就是逃逸器的损失只是两者各自的控制能量权重不同。代价函数的具体形式是J Φ(x(T)) ∫₀ᵀ L(x(t), u_p(t), u_e(t)) dt其中Φ是终端代价项L是过程代价项通常是控制能量的积分。追击器最小化J逃逸器最大化J等价于最小化它自己的代价函数。最优响应的数值求解是这样做的给定对手的控制策略在决策周期内视为固定把最优控制问题离散化变成一个非线性规划问题用Matlab的fmincon函数求解。这样把微分博弈近似成了序列化的最优控制问题这个轮流求最优响应的过程就是前面说的迭代最优响应方法。4.3 Epsilon均衡的判定条件与跳出机制迭代最优响应最大的风险是不收敛或者振荡。两个玩家的策略互相影响可能出现交替更新、循环往复不收敛的情况。判断是否达到Epsilon纳什均衡我的做法是看策略在两次连续迭代中的变化量Δ max_i || s_i^(k1) - s_i^(k) ||当Δ小于某个阈值时认为策略已经稳定必然满足Epsilon纳什均衡的定义因为任何一个玩家在下一步迭代中最多只能改善Δ那么大的收益。跳出机制是设置最大迭代次数一般20次如果达到最大次数仍然不收敛就接受当前策略作为近似均衡解同时把Epsilon的值适当放大。实际仿真中我发现一个很微妙的现象Epsilon可以设置成动态值和EKF估计的协方差矩阵范数绑定。前期估计误差大Epsilon自动放宽策略迭代容易收敛后期估计精度提升Epsilon自动收紧策略质量也随之提升。这个动态机制我认为是论文里最重要的创新点之一值得在复现时重点体会。5. Matlab代码实现与工程细节5.1 整体代码架构与模块划分我把Matlab代码分成了五个模块动力学模块、EKF估计模块、博弈策略模块、仿真主循环和结果可视化模块。动力学模块负责计算相对运动状态方程和观测方程同时提供雅可比矩阵的数值计算。EKF估计模块实现标准的预测-更新流程。博弈策略模块负责迭代最优响应的求解内部调用fmincon。仿真主循环控制整个时间推进并在适当的时间间隔调用策略更新。结果可视化模块负责绘制相对轨迹、参数估计收敛曲线和策略变化图像。模块化结构非常重要因为复现论文代码最怕的就是把什么都写在一个大脚本里。模块化之后每个模块可以单独测试有问题容易定位。我调试时先把EKF模块单独拎出来用一组已知参数生成观测数据验证EKF能不能把参数估计回去再把博弈策略模块单独测试验证在完全信息估计值等于真值条件下能不能收敛到纳什均衡。分模块测试通过后再跑整体仿真省去了大量联调时间。5.2 关键函数实现与参数配置先看EKF的核心更新函数我用Matlab实现的基本框架如下function [x_est, P_est] ekf_update(x_pred, P_pred, z, dt, u) % 计算观测雅可比矩阵 H H compute_observation_jacobian(x_pred); % 计算预测观测值 z_pred h(x_pred); % 新息innovation innov z - z_pred; % 创新协方差 S H * P_pred * H R; % 卡尔曼增益 K P_pred * H / S; % 状态更新 x_est x_pred K * innov; % 协方差更新Joseph形式提高数值稳定性 IKH eye(length(x_pred)) - K * H; P_est IKH * P_pred * IKH K * R * K; end注意我用了Joseph形式的协方差更新而不是更简单的P_est (I - K*H)*P_pred。这是因为在参数估计问题里协方差矩阵容易出现非正定或者不对称的情况Joseph形式能把这些问题降到最低。这个细节是踩过坑之后的经验之谈。敌方参数的真实值我设成逃逸器的推力加速度上限为5.2 m/s²追击器初始猜测为3.5 m/s²。仿真的核心看点就是EKF能不能快速把估计值从3.5拉到接近5.2。参数配置整理成了一张表方便按表复现参数符号取值说明初始相对位置r0[10; 5; -2] km目标轨道坐标系下的相对位置初始相对速度v0[-100; 20; 5] m/s相对速度初值追击器推力上限u_pmax8 m/s²追击器自身已知逃逸器推力上限u_emax5.2 m/s²逃逸器真实值追击器未知参数初始猜测p03.5 m/s²追击器对逃逸器参数的先验估计过程噪声Qdiag(1e-6, ..., 1e-8)状态/参数分别设置测量噪声Rdiag(10, 0.01, 0.01)距离/角度分别设置仿真总时长T60 s博弈时间窗口仿真步长dt0.1 s数值积分步长策略更新周期T_control2 s博弈策略更新频率5.3 仿真场景设置与结果分析要点仿真场景采用目标轨道坐标系追击器和逃逸器在同一个轨道面内进行末端博弈。初始相对距离约11.2公里相对速度接近100 m/s整个60秒的时间窗口内追击器需要不断逼近逃逸器逃逸器则持续机动规避。结果分析时我最关心三个指标。第一个是参数估计值与真值的偏差随时间的变化看EKF能不能收敛、收敛速度有多快。第二个是追逃双方相对距离的变化曲线看最终的拦截或逃逸结果。第三个是Epsilon值的变化趋势验证自适应机制是否有效前期Epsilon应该较大后期逐渐变小说明策略在信息完善的过程中持续优化。从复现结果来看EKF大约在10秒左右就完成了主要参数的收敛估计值从3.5逐步逼近5.2附近。相对距离曲线前期变化较平缓中期开始出现明显的拉锯后期追击器凭借先手优势逐渐占据主动。Epsilon从初期的约0.5逐步下降到末期的0.05以下符合自适应博弈的设计预期。6. 复现过程中踩过的坑与调试心得6.1 常见问题速查表复现过程里我整理了以下高频问题每一个都是实际遇到过并解决的问题现象可能原因解决方案EKF参数估计不收敛Q中参数对应元素太小增大对应Q元素至1e-7~1e-8参数估计收敛到错误值初始P0参数元素太小将P0参数元素设为1~10协方差矩阵出现负特征值协方差更新用了简化形式改用Joseph形式更新迭代最优响应不收敛最大迭代次数太小或Epsilon固定增大迭代次数动态调整Epsilonfmincon求解失败控制约束设置不合理放松约束检查fmincon选项相对轨迹振荡剧烈策略更新频率过高延长策略更新周期到2秒以上仿真结果与论文图不符初始条件或坐标系定义不同仔细核对论文的坐标系定义6.2 数值稳定性与收敛性调试技巧数值稳定性是追逃博弈仿真里最头疼的问题之一。相对运动动力学方程本身是刚性的加上EKF的矩阵运算和fmincon的迭代求解任何一个环节出现数值问题都会导致整个仿真崩溃或者结果明显失真。我的调试经验是由简到繁先用完全信息版本跑通整个流程即假定双方都知道对方参数确认博弈策略模块本身没有逻辑问题然后打开EKF估计模块先给一个非常准的初始猜测确认EKF不会把正确的估计值带偏最后再把初始猜测调差验证EKF的修正能力。每一步测试都有明确的检验指标任何一个环节不符合预期都能快速定位。关于fmincon的使用我强烈建议设置完所有选项后先用一个极简的测试算例验证一遍。比如固定逃逸器策略不变只有追击器做优化这时候最优解应该是一个开环最优控制问题。如果这一步都跑不对说明fmincon设置有问题后面整个博弈迭代必然出问题。6.3 从复现到改进的个人体会复现完这篇论文后我的体会是论文最重要的不是最后的几张仿真图而是EKF估计 自适应策略 Epsilon均衡这个三位一体的框架。它提供了一个可扩展的范式换掉EKF可以用UKF或者粒子滤波换掉零和博弈假设可以推广到更一般的主从博弈换掉Epsilon均衡可以尝试更严格的均衡概念。这种模块化的思路让论文的价值远超一份代码本身。最后再分享一个小技巧如果你也打算复现类似的博弈论文建议先把代价函数里各个项的权重记录下来。不同论文对控制能量的权重差别很大直接决定仿真结果的性质。我最初复现时权重设置和论文不一致导致追击器几乎是直线冲过去完全体现不出博弈的策略性。调了好几组权重才找到和论文匹配的那一组。拿到论文的第一时间先尝试从公式和图像里反推权重的量级关系这能帮你省掉大量盲目试错的时间。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询