
简介面向多智能反射面辅助的无人机通信系统这份资源提供基于改进多智能体软演员评论家算法的联合轨迹规划与相移优化实现方案适用于研究无人机通信、分布式协同决策和深度强化学习的工程师与学生。压缩包共十七个文件以十个 Python 脚本作为主体分别承担数据管理、信道建模、环境构建、多智能体训练与结果绘图等任务另外还包含初始位置表格、说明文本和附赠文档整体大小约为五百六十二 KB。目前已有五十三人浏览学习适合用于复现实验或在此基础上继续扩展。代码结构清晰从环境交互到改进的软演员评论家算法训练均有对应模块能够帮助读者深入理解多智能反射面场景下安全能效比最大化的分布式协同决策框架并可直接修改使用。 多智能体强化学习、软演员评论家、RIS、无人机这几个词放到一起光听着就不像是能几天搞定的小项目。把标题翻译成人话就是让多架无人机在可重构智能表面RIS的辅助下自己学会怎么飞、怎么调相移把整个通信系统的安全能效比做到最大。我这次做的正是一套分布式协同决策框架用改进的多智能体软演员评论家算法MASAC端到端地同时输出无人机飞行指令和RIS相移配置没有把轨迹规划和相移优化拆成两个独立模块。文章不打算复述教材重点讲清楚我的建模思路、算法改进动机以及训练时反复踩过的坑适合正在做MARL加无线通信方向或者打算把强化学习用到无人机、RIS场景的读者参考。1. 项目概述与核心需求解析1.1 这个项目到底要解决什么问题无人机通信场景里直射链路容易被楼宇、地形遮挡信号质量波动很大。RIS的作用是通过大量低成本反射单元把电磁波重新调相在特定方向上实现类似波束成形的增益从而改善覆盖。但RIS的相移配置不是独立存在的它和无人机的位置高度耦合无人机飞到不同位置无人机-RIS-用户的级联信道就不一样最优相移跟着变反过来RIS定了一组相位又会改变无人机发射信号到达合法用户和窃听者的有效信道质量。这个问题里其实有两条“决策线”一条在连续三维空间里跑另一条在相位向量里转天然是个联合优化问题。传统路线是用数学优化工具做交替优化先固定无人机轨迹解相移再固定相移解轨迹循环迭代。小规模场景下能解出不错的结果但问题本身非凸、耦合又深交替迭代很容易掉进局部最优而且用户和窃听者的位置一变整套流程就得重算。我这次直接选择深度强化学习方案核心目标不只是“能解”而是“能实时决策”——无人机端只需拿到局部观测本地策略网络直接输出动作不用每步都跑一次优化器。同时优化目标特意加了安全能效比否则无人机很容易学出个“大功率猛飞”的暴力策略空有保密速率能量效率一塌糊涂。项目场景我默认放在复杂电磁环境里信道相干时间短、干扰波动大。这种情况下传统“算一次用很久”的方案更不现实DRL这种能在线适应环境变化的策略优势就很明显了。多架无人机加多个RIS的配置也意味着这不是单智能体问题而是典型的多智能体协同决策。1.2 为什么轨迹规划和相移优化必须“联合”有人问过我轨迹归轨迹、相移归相移分步做不行吗表面看可以但这个问题的结构决定了必须联合。举个简化例子某无人机把反射单元相位集中调向用户A此时最优飞行位置是往A附近靠、增大直射分量可等你飞到那个位置RIS到用户的反射路径几何关系又变了原来那套相位就不再最优。这就像两个旋钮要同步拧才能让总响度刚好匹配某个隐藏曲线只动其中一个永远不会到最优解。DRL解决这个问题的方式是端到端建模状态输入同时包含信道信息、位置速度、剩余能量等策略网络直接输出“下一时刻的加速度加上每个RIS单元的相移”整个优化过程变成一个马尔可夫决策过程。好处是不需要显式求解非凸优化问题坏处是动作空间维度高、训练难度大这也是我后面决定对MASAC做针对性改进的直接原因。联合优化不是锦上添花是这个问题的结构决定的刚需。1.3 多智能体与分布式协同的引入场景里不是单架无人机而是多架无人机加多个RIS协同覆盖若干区域。如果每台无人机只盯着自己的目标和邻居忽略协作整体性能会差很远但反过来如果假设所有无人机共享全局状态、搞集中式统筹通信开销和实时性根本承受不住尤其在复杂电磁环境下信道随时在变等全局信息传一轮回来信道早就变了。所以这套框架采用多智能体强化学习里最常用的“集中训练、分布式执行”范式CTDE。训练时中央评论家能看到全局信息相当于一个全局教练负责告诉每个智能体他的动作对整体指标贡献了多少执行阶段每台无人机只凭自己的局部观测输出动作不需要等中心节点广播全局状态。这也是标题里“分布式协同决策框架”那长串描述的核心含义平时各飞各的、各调各的相移但学习阶段有人兜底指方向。2. 改进多智能体软演员评论家算法MASAC设计2.1 为什么选择SAC而不是DDPG/PPO我在DDPG、TD3、PPO和SAC之间做了一轮选型。这个问题里动作空间有两个显著特点一是无人机加速度和RIS相位全是连续量二是维度很高一架无人机3个加速度维度再加N个相位维度几个智能体加起来轻松到几十维。DDPG虽然天生适合连续动作但在高维动作空间下Q值估计误差很大训练中经常出现策略突然退化到原地打转的情况。TD3用双Q网络和延迟更新缓解了过估计但确定性策略的探索能力还是偏弱容易过早收敛。PPO在在线策略算法里算稳定但每轮更新都要重新采样样本效率偏低。无人机和无线信道交互一个回合的成本不低信道仿真、RIS相位切换都有代价我自然优先考虑样本效率更高的算法。SAC是最大熵强化学习目标函数里除了累积回报还显式加入策略熵项驱动策略“既要收益高又要动作尽量随机”。这个特性对无人机、RIS场景特别合适探索更充分不容易卡在局部最优。而且SAC内置自动温度系数调节机制会根据当前策略的表现自动调整熵权重省掉了我手动衰减熵系数的大量调参工作。算法策略类型探索能力样本效率高维连续动作适配性DDPG确定性弱依赖外部噪声中一般Q值易过估计TD3确定性弱依赖外部噪声中高较稳但探索偏弱PPO随机较强低需要重采样稳定但样本开销大SAC随机强熵项驱动高强天然适配连续控制2.2 多智能体扩展与我的改进点多智能体版SAC最常见的实现是给每个智能体配一个actor和一个critic每个critic把全局状态和动作全部拼起来作为输入。这种做法在2个智能体、低维状态的场景可以跑但在我的场景里一上来就是多架无人机加多个RIS全局状态拼接后输入维度暴涨Q值函数很难拟合准确训练慢到让人怀疑人生。我在实现中做了三处针对性改进。第一集中式评论家引入邻居注意力机制。每个智能体的critic不再无脑拼接所有智能体信息而是用一个注意力模块动态计算其他智能体对当前智能体的影响权重把注意力加权后的信息作为critic输入的一部分。直观理解就是某个无人机附近刚出现窃听者那么与窃听者关联的干扰信息会被重点加权隔得很远的智能体权重趋近于零不需要白白消耗网络容量。实测下来相同训练步数下带注意力评论家的平均Q值拟合误差比全拼接版本低了20%以上策略波动也明显更小。第二熵温度系数做两阶段调度。SAC自带的alpha自动调节在多智能体场景里有个隐患训练初期熵权重下降太快策略过早“变轴”探索不充分。我在标准自动调节基础上加了下限约束并设置了随训练步数线性衰减的调度区间——前期强制保持较高熵权重保证动作空间被充分探索训练后期允许alpha接近下限让策略集中利用已经学到的经验。第三经验重放分层采样。把经验按“当前步的保密速率、能量损耗、是否触发边界惩罚”分成几类每次采样按类别分层抽取确保那些“安全速率极低但已经付出巨大能量”的艰难样本不会被大量普通样本淹没。这一点在奖励比较稀疏的回合里特别有效直接影响最终收敛时的能效比上限。这三处都不是推翻SAC大结构的改动但每一处都解决了一个实际工程问题维度灾难、探索不充分、关键样本被稀释。3. RIS辅助无人机通信系统的建模细节3.1 系统模型与信道建模建模上我按“够用但不失真”的原则来设计。无人机集合记为M架位置用三维坐标向量q_m(t)表示RIS集合记为K个每个RIS有N个反射单元。地面有一个合法用户同时存在一个窃听者Eve。合法信道由两部分组成无人机到用户的直射信道以及无人机-RIS-用户的反射信道。反射信道写成级联形式合法信道增益 H_b h_d h_ru^H Φ h_ur其中h_d是直射链路h_ru是RIS到用户的信道向量h_ur是无人机到RIS的信道向量Φ是反射单元相位构成的对角矩阵Φ diag(e^{jθ1}, ..., e^{jθN})。窃听者侧等效信道H_e结构类似区别在于几何位置不同直射和反射路径的强度和相位都不同。这里有个容易忽略的物理细节RIS不是把信号“放大”而是把反射信号的相位重新配置让各反射路径在某些方向同相叠加、在另一些方向相消实现波束成形效果。所以相移向量θ直接决定了能量往哪个方向聚焦。轨迹规划的意义在于无人机位置会改变h_ur和h_d进而改变整个级联链路条件。两个变量在信道模型里就是乘性耦合关系这也是为什么轨迹和相移必须放进同一个优化框架去解。我实测过把两者分开解再拼回去最终保密速率会损失三到四成而且还是在仿真条件比较理想的情况下。3.2 安全能效比的定义与优化方向安全能效比是这次优化的核心指标。先算两个关键速率合法用户的可达速率R_b窃听者的可达速率R_e都按香农公式取log2(1SINR)的形式。保密速率定义为R_s max(R_b - R_e, 0)表示合法链路比窃听链路多出来的、可以安全传输的部分。系统总功耗P_total包括三块无人机推进功率、信号发射功率、RIS电路维持功耗。推进功率我用了与速度相关的简化模型速度越高功耗越大RIS电路功耗与反射单元数量N成正比。安全能效比写成SEE R_s / P_total单位可以理解为“每焦耳换来的安全比特”。我一开始只做了最大化R_s结果无人机很快学出“满功率起飞加大功率发射”的暴力策略能效比一塌糊涂因为功耗完全没有进目标函数。改成SEE后智能体开始主动在飞行位置、发射功率、相移配置之间做权衡策略才变得合理这也是为什么我坚持用“安全能效比”而不是单纯的“保密速率”作为优化目标。完整优化问题里还有约束条件无人机飞行范围边界、发射功率上限、RIS相移取值范围连续相移取[0,2π)硬件若是离散相移就量化处理以及最小安全速率约束。奖励函数按主项加惩罚项设计r w_SEE·SEE - w_bound·出界惩罚 - w_speed·速度过大惩罚 - w_collision·碰撞惩罚。我把各项惩罚都限制在主项奖励的10%以内否则智能体初始阶段只想着“别碰线”完全不顾能效比。奖励尺度也要做归一化否则Q值很容易发散。4. 分布式协同决策框架与DRL实现细节4.1 状态空间、动作空间与CTDE架构集中训练分布式执行是整套框架的骨架。训练阶段中央评论家可以访问所有智能体的观测和动作用来评估全局局面下的Q值执行阶段每个无人机上的actor网络只吃自己的局部观测直接输出动作。这样部署到真实无人机上时不需要依赖中心节点把全局状态广播给每架飞机通信开销小、响应快每架飞机就是一个独立决策体。状态空间按“够用”原则设计每台无人机的状态包括自身三维位置、三维速度、剩余能量自己当前能观测到的合法用户和窃听者信道增益以及自己所关联RIS的当前相移向量。为了保证分布式执行时状态口径一致训练中所有智能体状态向量维度保持一致缺失信息用mask补齐。动作空间分两部分。无人机动作是三维加速度向量经过tanh输出后映射到实际加速度范围我设的是[-2, 2] m/s²然后按动力学方程更新位置和速度。RIS动作是N个相位值连续网络直接输出归一化相位执行端再映射到[0, 2π)。如果硬件是离散相移我会在仿真阶段先训练连续版本评估时再做量化对比性能损失到底有多大。这一步看起来简单实际操作中很容易踩坑相位归一化方式不一致会导致后期训练震荡我在项目中期统一改成了中心化到[-π, π]的归一化方式才稳定下来。4.2 联合优化流程与训练超参数整个训练流程用伪代码描述是这样的初始化每个智能体的actor网络、中央critic网络、目标网络和经验池每个训练回合随机生成无人机初始位置、用户位置、窃听者位置每个时间步每个智能体用当前策略选动作环境执行动作后返回奖励与下一观测把关节状态转移样本存入经验池从经验池采样batch按SAC/MASAC更新规则更新actor、critic和温度alpha每隔固定步数软更新目标网络持续训练直到平均回报和平均安全能效比曲线稳定。超参数方面我直接给一组实测可用的配置学习率actor、critic、alpha都取3e-4折扣因子0.99软更新系数0.005每个回合步数200经验池容量1e6batch size 256目标平滑系数0.005熵温度下限0.01优化器用Adam。这个配置在2架无人机加2个RIS、每个RIS 32个反射单元的小场景下大约训练2000个回合可以观察到平均安全能效比明显上升再往后慢慢收敛。这里解释几个参数为什么这么定。折扣因子0.99是无线通信场景的常见折中太大让Q值收敛慢太小策略会变得短视无人机只顾眼前几步的飞行收益。soft update系数0.005能保证目标网络平滑追踪不会因为单步波动导致训练崩掉。alpha下限0.01很关键如果设成0熵权重可能被自动调节压到零值附近策略彻底丧失探索能力。4.3 训练加速与并行采集的小技巧多智能体强化学习训练慢是常态最耗时间的环节是信道仿真每次状态转移都要重新算信道矩阵。我做了两个优化一是把信道计算改成批量矩阵运算一次性算完所有智能体的转移状态坚决不写Python循环二是用多个仿真进程并行采集数据主进程只负责更新网络参数采数据进程把经验批量回传。这步优化实测下来训练速度提升了5到8倍效果非常明显尤其在信道矩阵维度较大时差距更明显。5. 训练实战常见问题与排查经验5.1 Q值发散与奖励爆炸这是整个训练过程里我踩得最多的坑。Q值发散的典型表现是训练到一半actor的loss突然大幅上涨Q值估计值一路飙升完全偏离奖励的真实均值。排查下来原因有三类。第一奖励尺度太大且分布不均。主奖励SEE可能忽高忽低相差几个数量级我后来把奖励做了归一化让主项保持在[-1,1]区间问题立刻缓解。第二学习率太高。SAC全家桶从3e-4起步比较稳有人习惯调成1e-3实验里很容易变成震荡甚至发散。第三梯度范数爆炸。解决方式是在更新actor时加梯度裁剪范数上限设2.0这项在我项目里实测非常有效。如果你在自己的训练里看到Q值和reward曲线同时飙升优先检查这三项而不是急着改网络结构。5.2 熵坍塌与探索不充分多智能体场景里另一个高频问题是熵坍塌。训练到中后期熵温度alpha被自动调节压到接近零策略变成近确定性输出动作多样性大幅下降Q值随之停滞。我在2.2节给的alpha下限和两阶段调度实战中确实把探索崩溃的概率压了下去。另外我做过一个辅助手段在动作上加高斯噪声注入但幅度要小且随时间衰减否则会干扰训练后期的策略收敛。这个噪声与SAC本身策略熵的探索机制相辅相成前期能明显加快发现有效策略的速度后期要逐步关掉。5.3 注意力机制失效注意力评论家虽然带来了增益但使用不当也会失效。最典型的表现是注意力权重逐渐退化到接近均匀分布等于退回全拼接结构。我排查后发现是注意力softmax温度太高信息差异被抹平了。解决办法是把注意力分数除以一个较小的温度系数或者用top-k稀疏注意力只保留权重最高的前几个邻居。另一个技巧是在注意力输出后加一条残差连接把自身原始状态信息保留下来训练稳定性提高不少。这几个手段看起来是小改动但在多智能体规模扩大后影响非常大我是在从4个智能体扩到8个智能体时突然发现这个问题被放大才认真处理的。5.4 几个实实在在的调参心得训练健康度监控比一味调参重要得多。我习惯每个训练回合记录三样东西平均奖励、平均安全能效比、alpha值。奖励曲线和alpha曲线配合看能判断探索是否过早收敛SEE曲线反映策略是否真的对目标有效。遇到训练崩溃时不要慌先回退到最近一个健康检查点再改超参数比从头跑一遍快得多我一般每100个回合存一次检查点。规模一定要从小的开始。我一开始直接在8架无人机加4个RIS的规模上跑训练慢得让人怀疑人生。后来改成2架加2个RIS的小规模先把算法流程调通确认Q值能拟合、注意力机制工作正常再逐步扩到目标规模。这个流程省下来的时间远超多跑几次小实验的时间。从最终实验结果看改进后的MASAC在2架无人机、2个RIS、每个RIS 32个反射单元的场景下相比无注意力版本的全拼接MASAC平均安全能效比提升了18%到25%比固定RIS相位只做轨迹优化的方案高出50%以上。这也验证了“联合优化”确实不是概念炒作而是问题结构本身决定的刚需——轨迹和相移本来就该同步学。本文还有配套的精品资源点击获取