IRS辅助SWIPT系统能效最大化建模与CVX实现 简介这是一份关于IRS辅助SWIPT系统中能效优先波束成形设计与优化的技术文档面向无线通信、智能反射面及无线携能通信方向的研究生和工程技术人员解决多约束下系统能效最大化问题。文档内容围绕系统模型、ADMM交替优化框架和SDR凸松弛方法展开详细说明了固定IRS相移后求解发送端有源波束成形向量、再反推IRS无源相移与能量门限约束的完整流程并给出可提升用户传输质量与安全性的仿真结论。压缩包内为1个docx文档共1个文件包大小约263KB核心篇幅集中于模型推导、算法设计与结果分析。目前已有363人学习该资料适合希望在IRS辅助SWIPT场景中快速掌握能效优先波束成形设计思路与实验复现方法的读者查阅。1. 换一种方式看 SWIPTIRS 把能量利用问题从“堆功率”变成“调相位”SWIPT 系统里最拧巴的一件事是信息波束要功率能量波束也要功率而基站发射功率终究有限。IRS 的出现把这层矛盾部分转移了——它不消耗发射功率靠反射单元相移重构无线环境让同一个发射信号在信息解码端相干叠加、在能量收集端也相干叠加。代价是优化问题从“线性功率分配”变成“有源波束与无源相移联合设计”目标还是能效优先这就不是简单注水或追零能解决的了。这篇博文把 IRS 辅助 SWIPT 系统的能效最大化问题从建模到 CVX 实现拆开讲覆盖参数设定、交替优化、秩松弛和仿真验证适合正在用 MATLAB 做物理层算法仿真的工程师也适合准备复现这类论文的通信专业学生。2. IRS 辅助 SWIPT 系统模型与能效优先的优化问题构造2.1 信道模型与信号接收表达式2.1.1 链路构成与 IRS 相移建模系统由发送端 ST基站、IRS、IRS 控制器、KI 个信息解码接收节点 SRIDi 和 KE 个能量收集接收节点 SREHj 组成。ST 配置 M 根发射天线IRS 配置 L 个无源反射阵源所有接收节点均为单天线。ST 与 IRS 之间通过控制器交互信道估计得到统计 CSI。ST 到 IRS 的信道矩阵记为 HSI∈L×MIRS 到 SRIDi 的信道增益向量为 hIri∈L×1ST 到 SRIDi 的直接链路为 hSri∈M×1对应地IRS 到 SREHj 用 gIrj∈L×1ST 到 SREHj 用 gSrj∈M×1。IRS 的反射行为用一个对角阵 Gdiag(q1,…,qL) 描述每个阵源的反射系数 qlβexp{jθl}θl∈[0,2π]。仿真中幅度 β 固定为 1以获取最大反射增益。这个设定很关键把幅度吸收问题绕开只优化相位优化变量从 2L 个压缩到 L 个后续 SDR 处理的矩阵维度也降了一半。符号定义说明MST 天线数8 或 4LIRS 反射阵源数25 或 15HSIST 到 IRS 信道矩阵L×MGIRS 相移对角阵diag(q1,…,qL)hSri, hIriST/IRS 到 SRIDi 信道M×1, L×1gSrj, gIrjST/IRS 到 SREHj 信道M×1, L×1β, θ反射幅度与相移β1, θl∈[0,2π]wiST 到 SRIDi 波束成形向量M×1sEST 发射能量向量协方差 SERCiSRIDi 可达速率B·lb(1SINR)QjSREHj 收集能量与信道和波束相关Pt系统总功耗发射功率电路功耗2.1.2 接收信号与 SINR 表达式忽略 IRS 二次以上反射SRIDi 接收到的信号为yi (hIriH G HSI hSriH)(Σi1KI wi si sE) ni其中 si 是均值为 0、方差 1 的 CSCG 信息符号sE 是均值为 0、协方差 SE 的能量信号伪随机序列。这里有个容易被忽略的细节能量信号 sE 对信息解码节点是干扰所以 SINR 表达式里分母只有其他用户信息信号和噪声能量信号的能量混在总接收功率里但不参与 SINR 计算。SRIDi 的 SINR 写成γi |(hIriH G HSI hSriH) wi|² / (Σk≠i |(hIriH G HSI hSriH) wk|² σi²)SREHj 收集的能量Qj E{|(gIrjH G HSI gSrjH)(Σ wi si sE)|²}信息可达速率 Ri B·lb(1γi)B 为带宽。系统总功耗 Pt ζ[Σ||wi||² tr(SE)] PC其中 PCPUPBSPIRS是移动终端、基站和 IRS 三部分硬件功耗之和。能效 EEi 的定义是 Ri/Pt这个分母决定了电路功耗 PC 对最终能效有直接压制作用。2.2 能效最大最小化优化问题 P1以所有信息解码节点中最小的能效作为优化目标保证公平性(P1) max|wi|,θ min{i} Ri/Pt s.t. C1: Σ||wi||² tr(SE) ≤ Pmax C2: SE≻0 C3: Qj ≥ Γj, j1,…,KE C4: 0≤θl≤2πC1 是 ST 发射功率上限C2 是能量信号协方差半正定C3 是每个能量收集节点的最低收集能量约束C4 是 IRS 相移范围。问题难在 C3Γj 是给定的门限但当 IRS 参与反射时能量门限具体能取到多少本身是未知的——门限定得太高发射功率全部拿去满足能量约束信息速率和能效崩掉定得太低IRS 的增益没有被充分利用。2.2.1 信道生成示例代码复现这套系统第一步是生成仿真信道。常见做法是用独立同分布瑞利衰落乘路径损耗因子% 生成统计 CSI 场景下的平坦衰落信道 % d_SI: ST 到 IRS 距离, d_IRS_SR: IRS 到 SR 距离, d_ST_SR: ST 到 SR 距离 % L_path_dB: 路径损耗函数, 输入距离与路损指数, 返回 dB 值 pl_SI 10^(L_path_dB(d_SI, 2) / 20); pl_ISR 10^(L_path_dB(d_IRS_SR, 2.5) / 20); pl_SSR 10^(L_path_dB(d_ST_SR, 3.5) / 20); H_SI (randn(L, M) 1j*randn(L, M)) / sqrt(2) * pl_SI; h_Iri (randn(1, L) 1j*randn(1, L)) / sqrt(2) * pl_ISR; h_Sri (randn(1, M) 1j*randn(1, M)) / sqrt(2) * pl_SSR;关键参数在 pl_SI、pl_ISR、pl_SSR 三个乘积因子。ST 到 IRS 是直视链路路损指数 α 取 2IRS 到 SR 是反射链路α 取 2.5 左右ST 到 SR 直接链路可能存在遮挡α 取 3.5。这个差异直接影响后续 IRS 相移优化的收益空间直接链路越弱IRS 反射链路贡献越大能效提升越明显。2.3 为什么直接求解 P1 行不通P1 目标函数是 min{Ri/Pt}Ri 对数里面有 wi 和 θ 的乘积项Pt 分母里有 ||wi||²这是典型的分式规划加多变量耦合。直接用 CVX 套凸优化工具会报错非凸目标加非凸约束。文献里常见的拆法是先用交替优化把 wi 和 θ 解耦再对每个子问题做 SDR。但在拆之前C3 里的能量门限值 t 得先确定下来这个 t 不是拍脑袋给的而是通过最大化最小收集能量的辅助问题求出来的。3. 交替优化第一环固定 IRS 相移求有源波束成形向量3.1 先解 P7接收端能量门限的凸化把 Qj 按信道展开得到等效信道 gj HSIH GH gIrj gSrj代入后 C3 约束变成Σ tr(gj gjH Wi) tr(gj gjH SE) ≥ t, ∀j这里 WiwiwiH。为了求 t 的上界构造辅助问题 P4-P7引入变量 t最大化最小收集能量同时要求 SINR 不低于门限 Γi。P7 里唯一非凸的约束是 rank(Wi)≤1用 SDR 直接丢掉剩下的是一串线性矩阵不等式CVX 可以直接解。% 问题(P7): 固定 IRS 相移 G, 求最大可达能量门限 t % 输入: G_irs 当前相移矩阵, H_SI, h_Iri, h_Sri, g_Irj, g_Srj HI h_Iri * G_irs * H_SI h_Sri; % 等效信息信道 1xM GJ g_Irj * G_irs * H_SI g_Srj; % 等效能量信道 1xM cvx_begin sdp quiet variables W_info(KI, M, M) hermitian semidefinite variable S_E(M, M) hermitian semidefinite variable t_threshold maximize( t_threshold ) subject to % 能量收集约束: 每个 EH 节点收集能量都大于 t for j 1:KE sum_energy 0; for i 1:KI sum_energy sum_energy real(trace(GJ * GJ * W_info(i,:,:))); end sum_energy real(trace(GJ * GJ * S_E)) t_threshold; end % SINR 约束: 每个 ID 节点满足最低 SINR for i 1:KI HW HI * HI; real(trace(HW * W_info(i,:,:))) / Gamma_i - ... sum_{k ~ i} real(trace(HW * W_info(k,:,:))) sigma2_i; end % 功率约束 sum_beam_power 0; for i 1:KI sum_beam_power sum_beam_power real(trace(W_info(i,:,:))); end sum_beam_power real(trace(S_E)) Pmax; cvx_end t_opt t_threshold; % 这个值在后续能效优化里作为 C3 的固定门限CVX 里 W_info 用三维变量 KI×M×M 存储多个 ID 用户的波束矩阵每个切片对应一个 Wi。t_threshold 的物理含义是“当前相移矩阵 G 下系统能保证所有 EH 节点都满足的最小收集能量上限”它的单位是瓦特仿真里常取 dBm 后是负值。SDPT3 后端可以处理这类小规模 SDPL15、M4 时规模约 100 个变量几十次迭代即可收敛。3.2 Dinkelbach 变换与 SDR 松弛拿到 t_opt 之后P1 的 C3 约束转为 Γj ≥ t_opt能量约束从“优化变量”变成“固定参数”。接下来处理目标 Ri/Pt 的非凸分式。这里用 Dinkelbach 算法引入参数 η把 max Ri/Pt 等价为 max Ri − η·Pt每次迭代固定 η 求解然后更新 η Ri/Pt直到收敛。问题 P8 进一步展开把 SINR 表达式带入 Ri定义 ΦU |hIriH G HSI hSriH|² / σi²目标变为 max B·lb(1 tr(ΦU Wi)) − η(tr(Wi)PC)。这就是 P9。它只有一个非凸的 rank(Wi)1 约束SDR 丢掉之后是标准凸问题。Dinkelbach 为什么在这里比二分法更合适因为目标函数是凹函数减凸函数参数相减后的最优值是 η 的单调函数每次迭代的 η 更新自带超线性收敛。二分法需要预先估计能效上界而这个上界在 IRS 场景下受 t_opt 影响容易估计过松导致迭代次数翻倍。3.3 CVX 实现与 SVD 还原波束向量% 问题(P9): 固定 G 后求最优有源波束 Wi % 输入: HI 等效信道, sigma2_i 噪声功率, Pmax, PC, eta 当前 Dinkelbach 参数 Phi_U (HI * HI) / sigma2_i; cvx_begin sdp quiet variable W_best(M, M) hermitian semidefinite maximize( B * log(1 real(trace(Phi_U * W_best))) ... - eta * (real(trace(W_best)) PC) ) subject to real(trace(W_best)) real(trace(S_E)) Pmax; % 能量门限直接引入 t_opt, 不再是变量 gamma_eh t_opt; % 由问题(7)求出的固定值 cvx_end % 还原波束向量: 对 W_best 做 SVD, 取最大奇异值对应方向 [Uw, Sw, ~] svd(W_best); w_opt Uw(:, 1) * sqrt(Sw(1, 1));代码里 B*log(1...) 直接用信息论速率公式CVX 对 log 和 trace 的组合支持良好。eta 是外层 Dinkelbach 迭代的变量初始值可以取 0每轮用 w_opt 重新计算能效并更新 eta。Pmax 约束里包含 SE 的功率这是很多复现容易漏掉的地方——SE 是能量信号协方差它在 P5 里参与 C1 约束在 P9 里仍然占用发射功率预算。SVD 还原是 SDR 的保底操作。如果 W_best 的秩恰好为 1SVD 取最大奇异值方向就是精确解秩大于 1 时次优解会带来少量性能损失但 IRS 场景下这个损失一般可以接受。判断秩是否等于 1 的阈值建议设成最大奇异值/次大奇异值大于 1000不要直接用 rank(W_best)1 判断数值误差会导致误判。4. 交替优化第二环固定有源波束求 IRS 相移矩阵4.1 能量门限约束的凸化辅助矩阵构造第一轮迭代拿到了 w_opt现在固定它反过来求 IRS 相移矩阵 G。问题 P10 的难点回到 C3 非凸Qj 里面 G 以乘积形式出现。处理思路是对 SE 做 SVD 分解令 SEΣνkνkH把能量信号拆成 rE 个独立的能量波束然后代入 Qj 展开。定义一系列辅助向量ck,i diag(hIriH) HSI widk,i hSriH wiej,i diag(gIrjH) HSI wifj,i gSrjH wioj,k diag(gIrjH) HSI νklj,k gSrjH νk。再构造扩展相移向量 q̄[qH,1]H于是 Qq̄q̄H 是一个 (L1)×(L1) 的秩 1 半正定矩阵。辅助矩阵构造作用Ck,i[ck,i ck,iH, ck,i dk,iH; ck,iH dk,i, 0]把 SINR 约束改写为 tr(Ck,i Q) 形式Ej,i[ej,i ej,iH, ej,i fj,iH; ej,iH fj,i, 0]能量门限约束的相移部分Oj,k[oj,k oj,kH, oj,k lj,kH; oj,kH lj,k, 0]能量信号经 IRS 反射的贡献V[F F H, F PH; F H P,P这些矩阵的物理意义Ck,i 项表示信息信号经 IRS 反射后对 SINR 的贡献Ej,i 项表示能量信号经 IRS 反射后对收集能量的贡献Oj,k 项表示能量波束 νk 经过 IRS 到 EH 节点的那部分。三者拼起来原来的双线性耦合全部化成 tr(·Q) 的线性形式。4.2 可达速率重写与 P13 凸优化形式相移变量进入 SINR 之后可达速率 Ri 改写为Ri B·lb(1 q̄H V q̄)其中 F diag(hIriH) HSI wiP hSriH wiV [F F H, F P H; P F H, |P|²]/σi²。目标函数变成 lb(1tr(QV))这是凹函数。约束 C1 保证 Q 对角线全为 1等价于每个 IRS 反射单元模长固定C3 的 rank(Q)1 非凸SDR 丢掉后得到 P13可以直接求解。% 问题(P13): 固定 w_opt 后求 IRS 相移矩阵 Q % 输入: F diag(h_Iri) * H_SI * w_opt, P_val h_Sri * w_opt V_mat [F * F, F * P_val; P_val * F, abs(P_val)^2] / sigma2_i; cvx_begin sdp quiet variable Q_bar(L1, L1) hermitian semidefinite maximize( B * log(1 real(trace(Q_bar * V_mat))) ) subject to diag(Q_bar) ones(L1, 1); % 每个阵源反射幅度固定为 1 gamma_eh t_opt; % 固定能量门限 cvx_end % 提取相移向量: 对 Q_bar 做 SVD, 主特征向量即 q_bar [Uq, Sq, ~] svd(Q_bar); q_bar Uq(:, 1) * sqrt(Sq(1, 1)); q q_bar(1:L); % 去掉最后一个固定元素 1 G_irs diag( exp(1j * angle(q)) ); % 组装相移对角阵, 幅度取 1diag(Q_bar) ones 这个约束不能漏。它是 IRS 无源特性的直接体现——反射单元不能放大信号只能旋转相位。angle(q) 提取相位exp(1j*angle(q)) 保证幅度为 1。如果直接把 q_bar(1:L) 当 q 用幅值偏离 1G_irs 就不是合法相移矩阵下一轮迭代的等效信道会有偏差。4.3 交替迭代的整体流程% 外层交替优化主循环 eta 0; % Dinkelbach 参数初始值 G_irs diag(exp(1j * 2*pi*rand(L, 1))); % IRS 相移随机初始化 for iter 1:30 % 第一步: 固定 G_irs, 求 w_opt (使用上一轮得到的 t_opt) [W_best, w_opt] solve_active_beamforming(G_irs, eta, t_opt); % 第二步: 固定 w_opt, 求 G_irs, 同时更新 t_opt [Q_bar, G_irs, t_opt] solve_passive_beamforming(w_opt); % 第三步: 更新能效 eta R B * log2(1 real(w_opt * Phi_U * w_opt)); P_total real(w_opt * w_opt) real(trace(S_E)) PC; eta_new R / P_total; if abs(eta_new - eta) 1e-3 % 收敛判据 break; end eta eta_new; end主循环三个函数交替执行每轮t_opt会随 G_irs 更新而更新这是和普通交替优化不同的地方能量门限不是外层常值而是跟随相移状态变化的内部变量。收敛判据用能效差值绝对值小于 1e-3 即可不需要每轮都算完整目标。初始化用随机相位矩阵一般 20 轮内能收敛。5. 仿真参数配置、性能边界与可复现的验证技巧5.1 仿真参数表与 3D 几何建模复现这套方案参数配置直接决定结果是否和论文对得上。核心参数如下参数数值说明L25 / 15IRS 反射阵源数M8 / 4ST 天线数Pmax1 dBmST 发射功率门限σi²-80 dBmID 接收噪声功率PC-5 / -15 dBm系统总电路功耗dSI50 mST 到 IRS 水平距离dv2 mSR 到 ST-IRS 水平面垂直距离3D 几何模型里SR 位于 ST 和 IRS 之间ST 到 SR 的距离由勾股定理 dST-SR sqrt((dSI/2)² dv²) 算出IRS 到 SR 的距离同样。路径损耗用 L(d)T0(d/d0)^(-α)d01m 时损耗 -10dBT0 由波长决定。仿真时把距离算错是结果对不上的头号原因——尤其是 dSI/2 这项很多人直接把 dSI 当作 ST-SR 距离。5.2 三条关键结论的复现验证方法第一对比有 IRS 和无 IRS 的接收端能量门限。论文结果是无 IRS 时门限约 -113 dBm有 IRS 时降到 -250 dBm 附近。想复现这个结论跑问题 P7 时把 G 设成单位阵模拟“无 IRS”场景再对比完整相移矩阵的结果。逻辑在于 IRS 通过相移让能量信号在 EH 节点处相干叠加同等发射功率下收集能量显著上升门限自然可以压得更低。第二验证能效随电路功耗的变化。PC-15 dBm 时可达能效约 300 KB/JPC-5 dBm 时掉到 33 KB/J差了近 10 倍。这个断崖式下降直接反映分式规划的特性——PC 在分母当 PC 低于 -10 dBm 后发射功率主导功耗能效对 PC 不再敏感PC 高于 -5 dBm 后硬件功耗主导能效被压死。我调试时习惯把 PC 从 -30 dBm 到 0 dBm 扫一遍看能效曲线的拐点这比只跑两个点更能验证算法行为是否符合预期。第三验证 L 和 M 的影响。L25、M8 时最大能效 300.5 KB/J降低 L 到 15 或 M 到 4能效明显下降。一个值得注意的现象M4、L25 的能效可以逼近或超过 M8、L15 的结果意味着 IRS 反射单元可以部分替代基站天线。这对工程选型的启示是——如果基站侧天线数受硬件成本限制增加 IRS 阵源数是一种更低功耗的替代方案毕竟 IRS 无源反射的功耗远低于射频链路的功耗。5.3 复现时容易踩的坑CVX 后端求解器要选对。SDPT3 对小规模 SDP 够用但 M8、L25 时矩阵维度到 26×26SDPT3 会出现求解精度下降能效目标在迭代后期抖动。换成 MOSEK 后问题基本消失代价是许可证需要申请。如果只能用 SDPT3把 CVX 的精度设为 high即cvx_precision high能缓解一部分数值问题。SDR 松弛后 rank(Q)1 不成立时直接取主特征向量会带来波束赋形增益损失。常见做法是 Gaussian randomization对 Q 的近似解做多次随机化取使目标函数最大的一组向量再还原相位。这里的 L 一般不超过 32做 100 次随机化代价很小但能效可以提升 5%-10%。代价是每轮交替迭代耗时增加和收敛速度取一个平衡。相移矩阵 G 的更新时机也要注意。第一轮迭代时 IRS 相移是随机的此时求出的 w_opt 实际意义不大必须至少完成一轮交替后才开始记录能效曲线。这个收敛过程从图 4 可以看到前 5 轮能效从很低的值快速拉起10 轮之后趋于平稳。我一般建议记录迭代轮数和能效对应关系既能验证收敛性也能在算法不收敛时定位是哪个子问题出了问题。本文还有配套的精品资源点击获取