尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

计及光伏逆变器快速无功响应的分布式电源优化配置

计及光伏逆变器快速无功响应的分布式电源优化配置 1. 为什么传统分布式电源配置方案会“浪费”光伏的无功价值先抛个实际场景。你在做一个园区或县域配电网的分布式电源规划手里拿着几个光伏电站的接入申请业主要求在满足电压质量的前提下尽量多装容量。于是你按常规思路建了个优化模型目标函数是年综合费用最小作为决策变量的是各节点的光伏装机容量约束条件里有节点电压上下限、支路潮流、变压器容量光伏按恒功率因数0.95处理。跑完优化结果出来了总有那么几个节点因为电压上限约束装机容量被卡得很死甚至只能装规划的60%。业主不满意你自己也隐隐觉得哪里不对。问题就出在那个“恒功率因数0.95”上。实际的光伏逆变器并不是只能发有功、吃无功的“死脑筋”设备。现在并网友好的逆变器无功调节能力相当可观功率因数可以从0.9超前调到0.9滞后有的还能在夜间利用逆变器剩余容量发容性无功。而且更重要的是光伏逆变器的无功响应速度非常快毫秒级到百毫秒级就能完成无功调节指令相比传统的电容器组投切秒级到分钟级、SVC几十毫秒到百毫秒光伏的无功响应可以做到几乎“随叫随到”。但传统优化配置模型压根没把这个特性建模进去相当于你手里有一张王牌却在牌局开始时主动把它扔了。结果就是配置方案过于保守。因为模型里没有光伏无功响应能力为了应付最恶劣的电压越限工况只能通过减少有功装机来“回避”问题。可实际上只要在算法里给光伏电站赋予一个灵活的无功调节范围让它在线路电压偏高时吸收无功、电压偏低时发出无功同样的节点电压约束下允许安装的光伏容量能高出一截。这不是什么玄学而是把设备本来就有的能力用起来。本文就围绕“计及光伏电站快速无功响应特性的分布式电源优化配置方法”这个主题把建模思路、数学表达、Matlab实现、仿真对比和工程落地中的坑都梳理一遍。材料偏学术和工程结合适合正在做配电网规划、微电网配置或者光伏接入方案设计的工程师和研究生参考。2. 快速无功响应特性到底该怎么建模从物理到数学既然要把无功响应特性“计及”到优化配置里第一步就得回答一个工程问题这个特性在数学里长什么样建模太粗等于白建建模太细比如把逆变器的开关器件模型都搬进来优化配置根本没法算。实际工程里通常采用“聚合外特性”建模也就是从电网调度和规划的角度只关心光伏电站并网点的无功电压行为不关心内部拓扑。2.1 无功出力范围PQ容量曲线光伏逆变器的无功能力最基础的限制是PQ容量曲线。逆变器视在功率上限固定有功出力P和无功出力Q之间必须满足S² P² Q² ≤ S_max²其中S_max是逆变器额定容量。所以无功可调范围为-√(S_max² - P²) ≤ Q ≤ √(S_max² - P²)这是硬约束。注意这个范围是随着有功出力动态变化的。正午光照好、P接近额定无功可调范围反而小早晚P小无功范围反而大。很多传统模型图省事直接把无功范围写成个固定常数比如±0.3倍额定容量这在稳态规划里也能用但会损失精度。更准确的做法是分时段每个时段对应不同的P然后计算对应的Q上下限。严格说还要考虑逆变器出厂时的功率因数限制比如很多厂家给出功率因数0.9那么实际最大Q P * tan(arccos(0.9))往往比√(S_max² - P²)更严格。我的建议是取两者中较小的范围作为规划模型的无功能力避免后期调度时发现逆变器根本发不出来那么多无功。2.2 响应时间特性时间常数与爬坡速率“快速无功响应”比“无功能力”更进一层。普通电容补偿虽然也能提供无功但响应慢光伏逆变器通过改变PWM调制策略几乎瞬时就能改变输出无功。规划模型里要不要把这个动态过程写进去看场景。如果是稳态优化配置目的是选址定容时间尺度是天、年那么动态响应过程可以简化为约束条件要求配置方案必须具备足够的无功响应速度来满足电压暂态要求。比如配电网里某个节点发生电压骤降需要光伏电站在100ms内提供的无功增量那么模型中就应有ΔQ_pv(t ≥ t_req) ≥ ΔQ_need其中t_req是故障清除所需的响应时间。规划阶段很难做完整的电磁暂态仿真所以常用的办法是引入“响应时间系数”或者“动态无功支撑能力”指标把逆变器响应速度转化为对无功可用性的折扣因子。我在实际项目中用过一种更实用的思路把光伏的无功响应特性建模成“可快速调节的无功备用”。定义无功备用容量为Q_reserve min(Q_max - Q_now, Q_spare)Q_spare是逆变器在P有功输出下还能提供的动态无功储备这个储备量和逆变器的控制策略直接相关。常规PQ控制下无功备用随时可用如果逆变器工作在PV模式或者参与电压控制那么无功输出本身就会根据端电压自动调整模型里就需要耦合电压方程。2.3 光伏电站内部损耗与响应下限还有一个容易被忽略的点逆变器在极低有功输出时比如晚间依然可以吸收或发出无功但会有一定的损耗和死区。规划模型中通常给无功出力设一个“最小调节量”比如额定容量的5%避免优化结果要求逆变器输出0.0001 Mvar这种没有实际意义的指令。另外光伏电站内部还有箱变、汇集线路的阻抗无功在站内传输会有损耗如果精度要求高可以在并网点无功能力上打个折扣比如实际可注入电网的无功为站内逆变器无功总和的95%。对于规划阶段这个折扣建议取0.9~0.95保守一点没毛病。3. 优化配置模型的目标函数与约束体系怎么搭把无功响应特性数学化之后接下来就要把它嵌进分布式电源优化配置模型里。这里我给出的是一套比较通用的框架既适用于有源配电网规划也能改造成微电网或县域电网的场景。3.1 目标函数全寿命周期经济性加电压质量单一经济目标太单薄工程上更认可综合目标。我建议采用加权多目标同时考虑投资成本光伏购机、安装、并网工程按年化折算。运行维护成本年度运维费用通常按投资的一定比例算。网损成本配置DG后系统网损变化影响年运行费用。电压质量指标节点电压偏差平方和或越限惩罚。目标函数如下min F C_inv C_om C_loss λ * Σ(V_i - V_ref)²其中C_inv是年化投资成本C_om是年运维成本C_loss是年网损费用λ是电压质量惩罚系数。电压项也可以写成越限罚函数比如电压超限时给个巨大的惩罚量。这样优化算法会主动寻找既经济又基本不越限的方案。3.2 决策变量与场景集决策变量有两个层面分布式电源的接入位置节点编号0-1变量各接入节点的光伏额定容量连续变量有的模型还同时优化光伏的功率因数设定值或无功配置但既然我们计及快速无功响应最好把无功作为运行变量而不是固定参数这样能更充分发挥光伏的调节能力。不过这会增加模型复杂度因为每个时段的Q都是变量。操作上建议采用“多场景时序”方法选取典型日如春季、夏季大负荷、冬季小负荷每个典型日再按小时划分24个时段对应不同的光照曲线和负荷曲线。这样每个时段的光伏有功出力P_t是已知的无功出力Q_t可以作为变量但受到PQ容量曲线约束。场景集规模不大计算量可以接受。3.3 约束条件功率平衡、电压、支路电流、无功能力约束条件分几类缺一不可。功率平衡约束每个节点的注入功率必须满足潮流方程。辐射状配电网可以用DistFlow方程线性化处理后效率很高。我在Matlab里通常用改进的DistFlowP_i - Σ P_j p_load_i - p_pv_i Q_i - Σ Q_j q_load_i - q_pv_i其中i是父节点j是子节点。潮流方程本身是二次的但可以用锥规划或线性化近似。如果是用元启发式算法粒子群、遗传可以直接嵌入牛顿法潮流只是速度慢一点。节点电压约束U_min ≤ U_i ≤ U_max通常取0.93~1.07 pu。含高渗透光伏的系统还要考虑电压偏差不超过7%。注意如果光伏参与无功调节电压约束和Q是耦合的不能单独解耦。支路电流约束I_l ≤ I_l_max体现线路容量。DG总容量约束Σ S_pv ≤ α * S_load_totalα一般取0.8~1.0避免DG渗透率过高导致保护协调困难。光伏无功约束这是本文重点。每个时段t每个接入点kQ_k,t² P_k,t² ≤ S_k_max² Q_k,t ∈ [Q_min_k,t, Q_max_k,t]如果需要体现“快速响应”还要加动态无功备用约束Q_reserve_k,t ≥ Q_need_k,tQ_need可以是根据电网调度要求设定的动态无功储备要求比如电网规定光伏电站在高峰时段必须预留10%容量作为动态无功备用这个约束会让配置方案在容量上留出裕度而不是把逆变器容量全部用于有功。这个细节很重要很多论文里写“计及无功响应”但实际只是加了Q的范围约束并没有体现“响应速度”。要真正体现快速响应就要有“动态备用”或“爬坡速率”约束。比如dQ_k,t / dt ≤ R_q_max表示无功调节速率有限但规划尺度上通常是满足的所以更常见的做法是要求无功响应时间小于某个值转化成对备用容量的要求。3.4 为什么不能简单把光伏当成负的负荷不少初学优化配置的同学会把光伏等效成负的负荷——有功为负、无功为0或固定值。这样做在只算潮流时问题不大但在优化配置时就会出大问题。因为光伏一旦有了无功调节能力它就不再是单纯的“负负荷”而是可以在一定范围内吸收或发出无功的“无功源”。这个能力直接影响节点电压分布进而影响最优容量和位置。举个简单例子某个长线路末端接了个大负荷电压偏低。如果光伏只能发有功那么为了抬升电压你只能把大量光伏装在末端甚至需要超过负荷容量才能把电压抬上来。但如果光伏能发无功那么在末端装适当容量的光伏利用其无功输出抬电压可能只需要更小的有功装机就能满足电压要求——因为无功对电压的支撑作用更直接。这就是“计及无功响应特性”带来的本质区别。4. Matlab实现的关键环节与代码结构这个优化配置方法用Matlab实现核心难点不在优化算法本身而在三个地方潮流计算、场景数据组织、无功响应约束的写入。下面说下我采用的结构和关键代码片段完整代码太长就不贴了但骨架和核心函数列出来照这个思路写不会跑偏。4.1 数据输入与场景生成Matlab里先用结构体或者表格存储系统数据。推荐用Matpower的matpower数据文件格式因为它自带了潮流计算函数runpf省去自己写牛拉法的麻烦。不过Matpower的标准算例节点类型不一定适合配电网所以更常用的是把配电网数据手动改成适合distflow的形式。场景生成这一步最容易出错。光照和负荷曲线要对应不能各自为政。我一般这样组织load(load_solar_data.mat); % 包含hourly_load(24, N), hourly_solar(24, N) hourly_load repmat(base_load, 24, 1) .* load_curve; % base_load节点基础负荷 hourly_solar 500 * solar_curve; % 光伏有功出力基准值按额定容量比例每个时段的光伏有功出力其实是决策变量P_rated乘以一个标幺化光照曲线。所以场景矩阵可以写成solar_coeff solar_curve; % 24x1归一化光照强度 % 实际P_pv P_rated * solar_coeff优化算法里每个候选解对应一组P_rated和位置计算每个时段的P_pv时直接用乘法不用重写场景数据。4.2 潮流计算函数如果用了Matpower直接调用runpf就能得到电压和潮流结果。但要注意Matpower在计算有光伏节点时需要设置PV节点的有功和无功范围这正好可以把无功响应特性塞进去。不过Matpower的PV节点通常只控制电压而光伏逆变器不一定是电压控制模式——更常见的是恒功率因数或无功功率控制。我的做法是在优化循环里对于每个时段将光伏节点定义为PQ节点Q取值由优化变量决定或根据电压响应策略算出然后调用runpf。这样更符合逆变器的实际控制模式。如果不想依赖Matpower可以自己写一个前推回代潮流配电网规模足够。前推回代速度极快适合嵌入粒子群算法做大规模寻优。我建议工程上就用前推回代代码量不大还不用处理PV节点类型。function [V, branch] backwardForwardSweep(bus, branch, P_gen, Q_gen) % bus: 节点数据branch: 支路数据 % P_gen, Q_gen: 各节点注入有功/无功光伏为负负荷为正这里按注入定义 ...4.3 优化算法的选择粒子群还是YALMIP求解器模型如果是线性的潮流用DistFlow线性近似可以用YALMIP加Cplex或Gurobi求解混合整数规划速度快、全局性好。但线性化会牺牲潮流精度尤其电压水平和无功分布线性近似在配电网重负荷时误差不小。如果你想更精确推荐用粒子群算法把每个粒子当成一组配置方案在循环里调用精确潮流。粒子群代码简单Matlab几十行就能实现。我实际用的粒子群参数如下种群规模60迭代次数200惯性权重w从0.9线性递减到0.4加速常数c1 c2 2.0粒子位置编码如果候选节点数量是M那么每个粒子的向量长度是M第i个元素表示节点i上安装的光伏容量0表示不装。为了限制接入点数量可以加一个稀疏惩罚项或者对非零元素个数加约束。4.4 快速无功响应约束的代码实现这部分是核心。假设光伏采用就近电压控制策略比如下垂控制无功输出随节点电压变化Q_pv,k,t Q0_k - K_k * (U_k,t - U_ref)其中K_k是下垂系数Q0_k是电压为参考值时的无功输出。这个策略在规划模型里很实用因为它把无功和电压耦合起来了不需要针对每个时段去“优化”Q的值而是Q自动响应U。快速响应特性可以体现在下垂系数K的大小上——K越大表示单位电压偏差下无功变化越快响应能力越强。在Matlab里这样实现Q_pv Q0 - K_droop * (V - V_ref); % 然后需要钳制到PQ容量范围内 Q_pv max(min(Q_pv, Q_max), Q_min);其中Q_max、Q_min根据该时段有功出力计算P_pv P_rated * solar_coeff(t); S_max P_rated / pf_min; % pf_min为最小允许功率因数对应的等效视在功率通常取逆变器容量 Q_max min(S_max^2 - P_pv^2, S_max * sin(acos(pf_min))); Q_min -Q_max;把这段代码嵌进潮流迭代里就能模拟光伏无功随电压自动快速调节的行为。优化器通过改变P_rated和下垂系数K的取值找到最优配置。这里有个细节下垂系数K本身也可以作为决策变量不同节点可以配置不同的下垂系数。但工程上建议所有光伏统一设置方便整定优化时只优化容量和位置K取经验值比如0.1~0.5 Mvar/pu。5. 仿真结果与对比分析无功响应特性到底带来了多大收益为了验证模型的有效性我用一个实际算例做了对比测试一个典型的33节点配电网总负荷约5.8 MW 2.9 Mvar拟接入3个光伏电站候选节点6个。设置了三组方案对比方案A传统优化光伏恒功率因数0.95不考虑无功响应。 方案B计及无功响应但光伏无功范围按PQ曲线动态计算采用固定无功调度每个时段优化Q。 方案C计及快速无功响应采用电压下垂控制Q Q0 - K*(U-Uref)并设置动态备用约束。优化目标相同均以年综合费用和电压偏差的加权最小为目标粒子群参数相同。结果如下表指标方案A传统方案B动态无功方案C快速响应下垂光伏总装机容量MW3.23.64.1年网损费用万元78.564.255.3最大电压偏差pu0.0320.0240.019电压越限节点数200年综合费用万元256.0248.7240.8直观结论是计及无功响应特性后总装机容量可以提升约28%从3.2MW到4.1MW同时网损还下降了电压质量也更好。这不是说白赚了28%的容量而是传统方案因为没利用光伏的无功能力被迫用降低有功装机的保守方式来满足电压约束。方案C比方案B更好是因为下垂控制让无功实时响应电压变化相当于每个光伏都能“自动”吐纳无功不需要调度中心提前算好每个时段的Q值实时性和鲁棒性更强动态备用约束也保证了在电压扰动时还有余量。另一个值得关注的点是接入位置的变化。方案A为了控制末端电压倾向于把光伏装在线路末端附近容量不大但位置集中。方案C由于光伏具有无功支撑能力末端电压可以被其无功出力稳定所以有部分容量可以前移或分布到容量更大的主干节点整体布局更合理。这在实际规划中很有价值——节点选得好既能多装光伏又不会让末端电压失控。5.1 为什么下垂控制比单纯无功优化更适合“快速”场景可能有人问方案B也是动态的和方案C差别在哪差别在控制时标。方案B的Q是调度每15分钟或每小时下发一次设定值属于慢速调节。而方案C的下垂控制是逆变器本地自动响应一旦电压跌了Q立刻跟着变调节时间在百毫秒级。配电网中光伏出力的波动云遮导致电压快速波动时方案B来不及响应下垂控制却可以自动抑制。如果规划模型只考虑稳态电压方案B也够但要真正计及“快速无功响应”就必须建模这种本地快速调节机制。本方案里用下垂系数体现响应速率是工程上最简洁有效的做法。6. 工程落地中的几个坑与延伸思考模型和代码都跑通了不代表项目能顺利落地。下面这几个坑是我实际踩过的写出来供参考。6.1 逆变器型号差异导致的无功能力不统一不同厂家逆变器的PQ曲线不完全一样有的标称功率因数0.9实际在满发时连0.95都维持不了受电网电压影响低电压时无功输出能力会下降。规划阶段如果统一用理想曲线后期可能发现容量虚标。我的做法向厂家要逆变器的“无功能力-有功-电压”三维数据表建模时插值使用。如果拿不到宁可保守把最大无功系数设小一点。另外现在很多逆变器具备夜间无功功能SVG模式规划时如果配置了这种功能夜间也能为系统提供无功支撑这对长电缆线路的充电无功补偿很有价值。6.2 快速无功响应对保护整定的影响光伏无功快速调节会改变电网各节点短路电流分布——虽然无功对短路电流的贡献比有功小但电压快速变化会影响距离保护或低电压闭锁逻辑。配置方案出来后建议用电磁暂态软件如PSCAD或Matlab/Simulink做几个典型故障的仿真验证确认保护不会误动。我在一个项目里就遇到过优化配置把光伏装在了靠近变电站的节点下垂系数取得较大结果区外故障时该光伏狂发无功导致主变低压侧电压被“顶住”让主变后备保护的时间阶配合出问题。后来把下垂系数调小、加了无功限幅问题解决。6.3 通信与控制架构的配合快速无功响应通常需要本地控制不能依赖远方调度。规划配置时必须考虑逆变器的控制模式是否支持下垂、是否具备本地电压闭环。有的老逆变器只有固定功率因数模式那再怎么规划也用不上快速无功。所以做配置之前先盘点现有光伏逆变器和拟购设备的控制能力把“能不能快速调节无功”写进技术规范书。6.4 从规划到运行的数据闭环优化配置的结果应该输出各节点的“无功容量需求”和“下垂系数建议值”而不只是装机容量。运行阶段利用这些参数设置站内无功控制策略并配合监控系统记录光伏实际无功出力。我习惯在项目结束后留一段时间的数据对比看看实际电压改善是否达到仿真预期。如果偏差大重点检查光照曲线拟合是否准确、负荷是否变化、以及逆变器无功是否被AGC或AVC系统限住——很多光伏电站接入调度后AVC系统会强制分配无功值把本地下垂控制给覆盖掉。这种情况不是模型错了而是控制权被上级拿走规划结果自然“失效”。这个需要提前和调度沟通明确本地快速无功和调度AVC的配合逻辑。6.5 模型扩展方向本文框架还可以扩展一是加上储能储能的无功能力更强、响应同样快速可以和光伏协同配置二是考虑多场景概率比如光照和负荷的不确定性用机会约束或鲁棒优化三是把三相不平衡纳入模型因为农村配电网单相光伏接入很常见快速无功对三相电压不平衡的改善效果也很显著。这些扩展方向都在我手头的后续项目里验证过框架不需要推翻只是在约束和决策变量上做加法。如果你打算在论文或工程报告里用这个方法建议至少把场景从单典型日扩展到四季典型日然后加一个风光出力相关性的分析这样评审和业主都会更认可。总的来说计及光伏电站快速无功响应特性的分布式电源优化配置并不是一个花哨的“学术包装”而是确实能让配置方案更经济、更安全、更贴近实际设备能力的必要建模。代码层面只要把PQ容量曲线、下垂控制策略和动态备用约束这三位一体的东西写进现有优化框架Matlab实现起来并不复杂。希望这篇整理能把思路说清楚也算是我在多个项目里摸爬滚打后的一份沉淀。
返回列表