光储微电网仿真恒PQ控制与直流母线电压稳定策略解析

发布时间:2026/10/20 7:01:34
光储微电网仿真恒PQ控制与直流母线电压稳定策略解析
做微电网仿真的人十个里有八个会把注意力放在下垂控制和孤岛切换上结果反而是最基础的恒PQ控制先出了幺蛾子。去年我搭了一套光储交直流微网模型结构就是标题里那套光伏PV经过DC/DC变换器接直流母线储能电池经过双向DC/DC变换器挂在同一条直流母线上然后一台电压源型逆变器把直流侧的能量送到交流母线逆变器控制策略用的恰恰是大家觉得最简单的恒PQ控制。结果呢功率指令给进去波形不是振荡就是直流母线电压慢慢飘走最后整个系统保护停机。我把这套模型的完整搭法、控制链路的每一个环节、参数整定的思路、以及踩过的坑整理成文给正在做光储微网仿真、尤其是逆变器恒PQ控制这部分的朋友当个参考。不管你是刚接触微网建模还是已经在调PI参数但总觉得波形不对劲这篇文章应该都能给你一些实打实的帮助。1. 先拆拓扑光储交直流微网里每一级变换器在干什么我第一次搭这套模型之前犯了一个典型错误直接把别人论文里的拓扑图抄过来然后就开始往仿真软件里拖模块。结果仿真跑起来之后出现问题根本不知道往哪个环节排查。后来我学乖了先把每一级变换器的角色想清楚再动手建模。1.1 光伏PV加DC/DC它的本质是电流源不是电压源光伏电池的特性很特殊在很大一段工作区间内它的输出电压变化不大但输出电流随光照强度几乎成比例变化。换句话说光伏阵列更像是一个受光照控制的电流源而不是一个稳定的电压源。那DC/DC变换器在这里的作用是什么两个第一把光伏阵列那一路宽范围变化的电压比如单块组件最大功率点电压可能从200V到350V之间晃变换成直流母线需要的稳定电压等级我这里取750V第二执行MPPT最大功率点跟踪让光伏始终工作在输出功率最大的那个电压点上。Boost升压电路是这一级最常见的选型因为它结构简单、输入电流连续正好匹配光伏电流源的特性。所以你在模型里看到的那块光伏DC/DC它的外特性可以简化成一句话根据光照和温度向直流母线注入尽可能多的功率至于母线电压稳不稳它不管。1.2 储能加双向DC/DC它是母线的压舱石储能电池本身也是一个电压源但它的电压范围同样很宽锂电池从满电到放空端电压能差20%以上而且它既需要充电又需要放电所以不能直接用电池去怼直流母线中间必须加一个双向DC/DC变换器。这一级变换器的核心任务不是充放电三个字这么简单而是维持直流母线电压稳定。光伏功率大了母线电压往上抬储能就吸收功率充电光伏功率小了母线电压往下掉储能就释放功率放电。这一吞一吐之间直流母线电压就被摁在了750V附近。最常见的拓扑是非隔离型半桥Buck-Boost双向变换器两个开关管互补导通一个方向做Buck充电另一个方向做Boost放电。在整篇文章的控制架构里你要记住一个关键结论直流母线电压的稳定不是由逆变器负责的而是由储能双向DC/DC负责的。这个分工搞不清楚后面积累的问题会让你崩溃。1.3 逆变器恒PQ交流侧的执行者逆变器接在直流母线和交流母线之间它的任务是把直流功率转换成交流功率送给负载或者电网。恒PQ控制的意思是逆变器按照给定的有功功率指令P_ref和无功功率指令Q_ref输出功率至于交流母线电压和频率是多少它不主动参与调节默认是由大电网并网模式或者其他具备电压支撑能力的设备孤岛模式下的主电源来决定的。这就像公司里的一个普通员工领导给你定了KPI你只管照着完成至于公司经营状况好不好不是你这个岗位操心的。1.4 交流母线侧还有哪些东西除了逆变器交流母线上一般还挂着交流负载恒阻抗负载最常见、变压器/并网开关如果连接大电网、以及无功补偿装置有时候不需要。在仿真模型里我通常会加一个三相RL负载作为基本负载方便后面做负荷突变的工况验证。另外别忘了逆变器交流侧要加滤波电感L型、LC型或LCL型我这套模型用的是L型滤波原因后面讲参数的时候再说。2. 恒PQ控制链路从功率指令到PWM波为什么恒字并不容易很多人觉得恒PQ控制简单无非就是功率外环加电流内环嘛。确实从结构上看它比下垂控制少了一个频率/电压下垂环节。但真正动手搭模型的时候你会发现里面每一环节的符号方向、坐标变换顺序、PI限幅设置任何一个地方出错仿真结果都是莫名其妙的波形。2.1 坐标变换为什么非要在dq轴里做控制三相交流系统里电压电流都是50Hz的正弦量。如果直接在abc坐标系里做PI控制你跟踪一个正弦参考值静态误差永远消不掉运放输出也会跟着正弦波来回抖。所以标准的做法是先把abc三相量通过Clark变换变成αβ两相正交量再通过Park变换变成dq旋转坐标系下的直流量。dq坐标系下d轴和q轴的空间位置是相对固定的正常工况下它们就是恒定的直流量。这样一来你就能用普通PI控制器让实际值完美跟踪参考值而且没有稳态误差。电压定向是恒PQ控制里最容易含糊的地方。最常见的做法是让d轴与交流母线电压矢量重合也就是把电压矢量定向在d轴上。定向之后q轴电压分量uq≈0这时候有功功率和无功功率就可以解耦了P 1.5 × ud × idQ -1.5 × ud × iq符号取决于你的iq正方向定义我在模型里按吸收感性无功为正来定义注意这个1.5倍系数它是Clark变换采用等幅值变换时的产物。如果你用的是等功率变换系数就是1而不是1.5。这两个坐标变换形式在不同教材里都存在整包模型必须从头到尾保持同一个约定混用的话功率算出来直接对不上这是我在实际建模中踩过最隐蔽的坑之一。2.2 功率外环P/Q指令如何换算成电流指令既然功率公式已经解耦了外环就很简单用PI控制器分别调节有功和无功偏差输出id_ref和iq_ref。这就相当于把功率指令翻译成电流指令交给电流内环去精确执行。用公式表达就是id_ref Kp_p × (P_ref - P_meas) Ki_p × ∫(P_ref - P_meas)dt iq_ref Kp_q × (Q_ref - Q_meas) Ki_q × ∫(Q_ref - Q_meas)dt外环PI的带宽不需要很高。因为功率外环本质上是在给电流内环发指令如果外环比内环还快两个环路就会互相打架产生振荡。一般来说外环带宽设计成内环的1/10左右是比较稳妥的经验值实际仿真中我经常把电流内环的响应时间设在10ms~20ms功率外环的响应时间设在100ms~200ms这个量级。P_meas和Q_meas怎么算模型里可以直接用瞬时功率公式但我更推荐用经过一阶惯性滤波后的计算值滤波时间常数取1ms~5ms。原因后面章节会讲这能有效抑制开关纹波对功率外环的干扰。2.3 电流内环解耦项与PI输出最终生成调制波电流内环是恒PQ控制里响应最快、最敏感的环节。dq轴电流之间是存在耦合的d轴电压方程里会出现-ωLiq这一项q轴方程里会出现ωLid这一项。如果不管这个耦合当d轴电流变化时q轴会受到扰动当q轴电流变化时d轴也会跟着抖。在实际模型里表现出来的就是你只给有功指令结果无功波形居然也在跳。所以电流内环控制器输出必须加上前馈解耦项。我用的控制方程是这样的vd_ref PI_id(id_ref - id) - ωL×iq ud vq_ref PI_iq(iq_ref - iq) ωL×id uq这里的ud和uq是交流母线电压的dq分量把它们加进去相当于把电网电压这个扰动前馈掉让控制器只负责补偿电感上的动态压降。解耦项-ωLiq和ωLid则是把d轴和q轴之间的交织关系掰开。有了vd_ref和vq_ref接下来就是反Park变换把dq域调制波变成αβ域再通过SVPWM空间矢量调制或SPWM生成六个IGBT的开关信号。SVPWM的直流电压利用率比SPWM高约15%这是业界共识所以我的模型里用SVPWM。调制波幅值超过载波幅值就会过调制因此PI输出后面务必加限幅环节限幅值按直流母线电压和调制方式换算否则波形会出现严重的底部削顶失真。2.4 锁相环在其中的作用与边界恒PQ控制里必须要有PLL锁相环来实时跟踪交流母线电压的角度那个角度就是Park变换用的θ。PLL的作用是把dq坐标系的参考方向锁定到实际电网电压矢量上。需要注意PLL的动态特性。如果PLL带宽太低电网电压波动时角度跟踪滞后功率计算就会出现偏差如果带宽太高PLL又会把电网背景谐波引入角度里导致dq变换后的量纹波很大。工程上PLL带宽设计在10Hz~20Hz左右这个数值在仿真里同样适用。还有一个细节PLL应该测量滤波电容后的电压而不是直接测逆变器桥口的脉冲电压否则锁相出来的角度会有很大毛刺。3. 恒PQ不管直流母线电压那谁来管储能双向DC/DC的控制分工这是我调整这套模型时花时间最长的一个环节也是我觉得最值得单独拿出来写的一部分。3.1 直流母线失稳机理功率不平衡的积分效应先做个思想实验。假设直流母线上只有光伏和逆变器逆变器执行恒PQ以恒定功率把能量送出去。这时候如果光照增加光伏输出功率变大但逆变器还是只按指令输出那么多功率那么多出来的那一部分功率去哪了只能给直流母线电容充电。电容电压和电容储存能量之间的关系是E 0.5CU²。多出来的能量不断灌进去母线电压就会不断上升很快就超过电容耐压。反过来如果光照变弱或者交流侧负载吸收功率超过逆变器输出指令能量缺口就会由电容放电来填补母线电压就会持续下降直到系统崩溃。恒PQ逆变器根本不感知直流母线电压的变化因为它只控制交流侧的功率。交流侧送出去的功率恒定直流侧进来多少它不管这种功率差额完全靠电容扛的状态本质上就是不稳定的。这就是为什么标题这套模型里储能双向DC/DC必不可少的原因。3.2 储能DC/DC的双闭环控制电压外环稳住母线电流内环执行充放电储能双向DC/DC最常见的控制结构是电压外环加电流内环电压外环采样直流母线电压Vdc与参考值750V做差经过PI控制器得到电感电流的参考值IL_ref电流内环再控制电感电流跟踪这个参考值输出占空比。电压外环的工作逻辑是母线电压高于750V说明直流侧功率过剩电压外环输出负的电流参考储能进入充电状态Buck模式把多余功率吸走母线电压低于750V说明直流侧功率不足电压外环输出正的电流参考储能进入放电状态Boost模式向母线补充功率。这个外环PI参数的整定很有讲究。电压外环比逆变器的功率外环还要轴因为全系统的功率差额都要靠它去填。如果电压环太慢光照突变瞬间母线电压就会冲出允许范围如果电压环太快又容易和逆变器的功率外环形成谐振起来一股低频振荡。我的经验是电压外环响应时间设置在50ms~100ms之间电流内环响应时间设置在5ms~10ms之间内外环带宽拉开一个数量级稳定性会好很多。另外别忘了给储能电池模型加上SOC荷电状态限制逻辑。电池SOC到100%的时候再强行充电就会过充到0%继续放电就会损坏电池。模型里我加了SOC上下限判断一旦SOC越限双向DC/DC立即切换到待机状态此时直流母线电压的稳定就只能靠别的设备了这也是微网能量管理层面要解决的下一层问题。3.3 两个恒功率设备不能同时存在的场景有一个重要的避坑点当系统里存在两个恒PQ控制的变流器时它们之间没有能力去平衡彼此之间的功率差额母线电压会失去支撑。在我那套模型里如果把储能双向DC/DC也设置成恒定功率充放电模式恒功率充电/恒功率放电同时光伏又工作在MPPT恒功率状态那整个直流母线电压就没有任何一环来主动调节了——除非交流侧逆变器改成定电压控制否则系统一启动就会电压失控。这其实引出一个微网里非常核心的控制原则一条母线上必须至少有一个定电压角色其他设备才能安心地做定功率角色。储能DC/DC正是直流母线的那个定电压角色恒PQ逆变器则是交流侧那个定功率角色一主一从系统才转得起来。你搭自己的模型时不管拓扑怎么变先问自己一句这条母线上谁守电压没人守电压仿真跑出来的结果就是一堆失控的波形。4. 光伏DC/DC与MPPT让模型具备可变电源的物理特性光伏部分如果不做精细直接影响就是光照变化时直流母线上的功率扰动完全不符合物理规律后面的储能和逆变器控制全跟着白调。4.1 光伏阵列的输出特性曲线与工作点光伏阵列最核心的物理特性是P-V曲线随着电压从0开始升高功率先增大后减小中间有一个最大功率点。这个最大功率点对应的电压随光照强度变化而变化光照越强最大功率点电压越高温度越高最大功率点电压越低。仿真模型里光伏阵列模块可以直接用厂商参数建模。举个例子我这里用一组常见参数开路电压Voc45V短路电流Isc9A每个组件额定功率约300W20块组件串联成一组输出最大功率点电压约600V左右。再经过Boost升压到750V母线。你不需要完全照搬这组参数但它代表了一个工程上合理的数量级。4.2 扰动观察法MPPT的实现逻辑MPPT算法不需要太复杂工程上最常用、最皮实的就是扰动观察法PO。它的核心思想非常简单给光伏工作点电压加一个小扰动然后看功率变化方向如果功率增加了说明扰动方向对了继续往这个方向走如果功率减小了说明方向反了就反方向扰动。用伪代码表示就是if V_pv V_prev: if P_pv P_prev: V_ref V_ref delta_V else: V_ref V_ref - delta_V else: if P_pv P_prev: V_ref V_ref - delta_V else: V_ref V_ref delta_Vdelta_V取多少很关键。取得太小跟踪速度慢光照突变时半天到不了新的最大功率点取得太大稳定后在最大功率点附近来回振荡功率波动幅度大。我用的步长是阵列最大功率点电压的0.5%~1%对600V的系统来说取3~5V左右。MPPT输出的是光伏电压参考值V_ref然后Boost变换器内部还需要一个电压环来跟踪这个V_ref电压环输出再和电感电流环配合最终生成PWM占空比。整个光伏DC/DC从外到内是MPPT算法级 - 电压控制级 - 电流控制级三级串起来。4.3 光照突变时MPPT的跟踪速度对母线的影响这里有一个实操中很容易忽略的问题MPPT的采样周期是多少如果你把MPPT采样周期设成100ms那么光照突然从1000W/m²掉到600W/m²的时候光伏阵列的输出功率不会立刻降到新最大功率点而是要等好几个采样周期才能跟踪过去。在这个跟踪盲区里光伏实际输出功率和最大功率之间存在差额这个差额完全由储能系统来填平。所以你会观察到光照突变瞬间储能电流先猛涨或者猛跌然后随着MPPT一点点逼近新的最大功率点储能电流再慢慢回落最终回到平衡状态。这个波形是判断光伏MPPT模块是否正确工作的关键信号。如果你的模型里光照变了储能电流纹丝不动那你大概率把光伏做成了恒功率源而不是真实的光伏特性。5. 仿真参数怎么给一套从内环到外环的整定流程参数整定是仿真模型从能跑到跑得对的分水岭。我自己经历过无数次模型跑起来了但波形一看就是错的最后总结出一套相对固定的整定顺序分享给你。5.1 主电路参数容量、电压等级、滤波电感我先给出这套模型的一组参考参数你后续可以按自己的容量等比缩放。设备/环节参数数值直流母线电压Vdc750V交流母线电压线电压有效值Vac380V系统额定容量S50kW光伏阵列最大功率Ppv_max30kW储能电池容量E100kWh储能电池额定电压Vbat480V逆变器滤波电感L2mH滤波电感寄生电阻R0.05Ω直流母线电容Cdc4000μF开关频率fsw10kHz滤波电感L的值和额定电流、允许的电流纹波直接相关。经验公式是电感上的基波压降不要超过额定电压的10%~15%。对380V系统来说50kW额定功率对应相电流有效值约76A2mH电感在50Hz下的阻抗是2π×50×0.002≈0.628Ω额定电流下压降约48V占相电压220V的22%偏大了。我后来把电感调到1.2mH压降降到约29V占13%比较合理同时1.2mH在10kHz开关频率下的纹波抑制能力依然够用。直流母线电容的取值按维持一个开关周期内的功率差额来估算C P_rated × Δt / (2 × Vdc × ΔVdc)。50kW系统、开关周期0.1ms、允许电压波动5V估算下来约4000μF以上和表格里给的一致。电容太小直流母线电压纹波大电容太大成本高而且电压环动态变慢。5.2 PI参数的量纲陷阱与调参顺序PI参数是新手最容易栽跟头的地方因为很多仿真软件里的PI模块默认增益是纯数值而实际物理系统里不同环节的单位可能完全不同。比如电流内环的PI输出是电压伏特输入是电流误差安培所以比例增益的单位是V/A也就是欧姆。而功率外环的PI输出是电流指令安培输入是功率误差瓦特比例增益的单位是A/W那数值就很小可能只有0.001这种量级。如果你直接照抄别人的PI参数而不注意单位换算大概率出来的波形完全不是那么回事。我的整定顺序是先电流内环再外环最后再做整体联调。具体做法是把功率外环的PI模块暂时拿掉直接用阶跃信号给id_ref和iq_ref观察电流实际值跟踪指令的动态响应。调节电流内环PI让超调量控制在5%以内、响应时间在10ms左右。电流内环整稳之后再把功率外环接回去给P_ref和Q_ref阶跃观察功率跟踪效果。这时候一般只要外环带宽远低于内环稍作调整就能稳定。最后加上储能DC/DC的电压环让整个系统闭环跑做光照突变、负荷突变的最后验证。这里还有一个调参技巧先比例后积分。先把积分系数设为0只调比例增益让系统不振荡、有余差然后逐步增加积分系数消除余差。每加一点积分系统往往会开始振荡这时候再把比例稍微降一点找到一个稳定的平衡点。一套参数下来可能要反复来回调十几次但这个过程能让你对每个环节的动态特性有很深的体感。5.3 仿真步长、求解器与代数环的处理仿真求解设置看起来是小事实际意义很大。我的建议是如果有详细的IGBT/二极管开关模型算法用ode23tb或ode15s这类刚性求解器最大步长设成开关周期的1/20左右也就是10kHz开关频率下最大步长5×10⁻⁶s。步长再大开关边沿的仿真结果就失真了。如果只是为了验证控制策略可以先把逆变器和DC/DC换成平均模型受控源模型这样可以用更大的步长比如1×10⁻⁵s到1×10⁻⁴s仿真速度能快好几倍控制环路的行为依然准确。代数环是电力电子仿真里一个很烦人的问题。当你把测量信号直接反馈给控制器、控制器输出又直接控制开关管、开关管立即改变测量值时就形成了没有延时的代数闭环。Simulink会提示存在代数环仿真速度变慢甚至在某个步长下不收敛。解决办法很简单在测量反馈通道里加一个Memory模块或者一阶惯性滤波器人为引入一个微小延时。这在实际系统里本来就真实存在因为传感器和执行器都有延迟对控制精度的影响可以忽略但能明显改善仿真收敛性。6. 四组典型工况验证波形怎么读模型才算真的对参数整定完毕之后不要急着说模型跑通了。我习惯用四组典型工况做验证每一组对应观测不同的环节这四组波形能证明系统的功率平衡、电压支撑、动态响应是否都在正确范围内。6.1 工况一光照阶跃初始光照1000W/m²t2s突变到600W/m²。正常现象光伏输出功率从30kW左右回落到接近18kWMPPT跟踪需要一点时间直流母线电压出现一个短暂跌落幅度应该在允许范围内储能立刻切换为放电模式补充功率缺口母线电压迅速恢复到750V。逆变器交流侧输出功率保持指令值恒定如果光伏和储能总功率够的话。读图要点如果直流母线电压跌落超过50V以上说明储能电压外环响应太慢需要提高电压环带宽如果母线电压有持续低频振荡则可能是储能电压环和逆变器功率外环之间存在谐振需要把两个环路的带宽拉开。6.2 工况二有功/无功指令阶跃初始命令P_ref40kWQ_ref0kVar。t3s时P_ref阶跃到45kWQ_ref阶跃到5kVar。正常现象逆变器实际输出功率在大约100ms~200ms内平滑过渡到新指令d轴电流同步变化母线电压基本保持稳定。这个工况主要验证恒PQ控制本身的有效性。如果你发现功率拖了很长时间才跟上优先检查外环PI如果功率跟踪过程中出现过冲优先检查内环PI和限幅设置。我特别提醒一点纯有功阶跃时无功功率应该保持基本不动纯无功阶跃时有功功率应该保持基本不动。如果两个通道耦合明显说明前馈解耦项写错了或者PLL角度没有真正锁准。6.3 工况三储能投退t4s时把储能双向DC/DC的使能信号置0模拟储能退出运行。此时如果光伏功率大于逆变器输出指令直流母线电压应该缓慢上升因为多余功率只能给电容充电如果逆变器恒定输出功率大于光伏功率直流母线电压应该持续下降直到系统触发低电压保护。这个工况的波形往往不太好看但它恰恰能验证你前面理解的恒PQ逆变器不扛直流母线电压这个结论。不带储能的光储微网在并网模式下能不能运行如果直流侧没有别的定电压设备答案就是不能稳定运行。看到这个波形你才真正理解为什么标题里储能及其双向DC/DC是系统里不可或缺的一环。6.4 工况四交流负荷突变交流母线负荷从饱和值突然减半。注意恒PQ逆变器不参与电压调节所以负荷变化之后交流母线电压会有小幅抬升因为线路压降变小了这是正常现象。电压抬升的幅度取决于滤波电感和线路阻抗只要在允许范围内就不用管它。如果你希望交流母线电压严格恒定那就必须把逆变器的控制策略从恒PQ切换为恒压恒频控制V/f或者下垂控制。这也是恒PQ控制的一个边界条件它适合并网运行或者有主电源支撑的系统不适合作为孤岛系统里的唯一电源。我现在设计微网模型时都默认把恒PQ逆变器定位为从属电源把储能或柴发定位为主电源两者角色清楚运行模式切换时才不会乱。7. 建模仿真里那些不起眼却致命的细节与我的习惯最后这部分我把自己建模过程中的习惯和一些容易被忽视的细节列出来算是对这篇文章的一个实用补充。这些内容不一定写在论文里但仿真时遇到莫名其妙的报错或者波形异常多半就出在这些地方。第一全模型要保持一致的参考方向约定。功率正方向、dq轴电流正方向、电感电流正方向这些符号约定一旦混用P/Q公式、解耦项、双向变换器的充放电方向全都会对不上。我现在的习惯是在模型最上面放一张注释图把每个变换器的电流正方向画出来电池放电电流为正光伏输出电流为正逆变器流向交流母线为正。有了这张图排查任何符号问题都能快速定位。第二测量环节的滤波不可省。三相逆变器开关纹波频率是10kHz如果你直接把瞬时功率送给外环PI外环输出会带着大量毛刺。我习惯在功率测量后加一阶低通滤波时间常数1ms~5ms。滤波时间常数太大会拖慢功率外环的响应太小又滤不干净开关纹波需要在仿真里试几次找到平衡点。第三初始条件设置非常关键。双闭环控制系统在仿真启动瞬间如果积分器的初始值给的是0而参考值和反馈值之间偏差很大会产生很大的超调甚至发散。我的做法在稳态工况下先跑一次仿真记录各PI积分器的稳态输出值然后把这些值作为下一次仿真的初始条件。更省事的办法是在模型里加一个软启动环节P_ref和Q_ref先给0t0.5s后再阶跃到目标值这样系统有足够时间建立稳态。第四注意电池SOC初始值的设置。很多仿真模型里电池SOC初始值是100%结果一仿真储能只能放电不能充电光照强的工况下直流母线电压一直飙高你还以为是控制参数问题。排查这个问题的思路很简单一上来先看SOC把它设为50%左右给充放电都留出空间。第五尽量模块化封装。光伏DC/DC、储能DC/DC、逆变器恒PQ控制、PLL这些功能块我全部封装成子系统端口的信号名统一命名比如Vdc_meas、P_ref、PLL_theta。这样做最大的好处是后面你要在这个模型上扩展下垂控制、孤岛切换、能量管理策略时不需要重写整个模型只要在对应子系统的接口上增加信号就行。我自己的体会是光储微网的仿真模型拓扑和参数都是可以抄的真正拉开差距的是对母线电压到底由谁守这个问题的理解深度。恒PQ控制再简单放在一个多变换器并存的微网里它也只是一环而不是全部。搞清楚每一级变换器的角色分工再把环路带宽按从内到外的顺序拉开这套模型大概率一次就能跑稳。