并联逆变器这个事,说起来挺有意思。你去看现场,会发现两台参数几乎一样的逆变器,搁那儿并联跑,输出电流愣是不一样,一台烫得能煎鸡蛋,另一台还在那儿优哉游哉。电流表一卡,好家伙,环流比负载电流还大。这个问题要是靠硬件去堆,加电抗器、加粗电缆,治标不治本,成本还高。所以大家才把目光转向控制算法——下垂控制就是其中之一,而虚拟阻抗加电压负反馈,是让下垂控制真正能落地的关键一环。
我这篇东西,主要是把这套控制思路掰开揉碎了讲清楚:环流是怎么产生的、下垂控制为什么能均流、虚拟阻抗到底在干嘛、电压负反馈又补了什么坑。适合刚接触微电网、储能逆变器并联或者UPS冗余供电的工程师,也适合研究生做仿真前先建立整体概念。内容以原理为主,最后会带上实际的调试经验和参数整定建议,属于可以直接往自己的仿真模型里搬的那种。
1. 并联逆变器环流问题的本质:一台机器为什么不好带
1.1 环流是怎么冒出来的
先看最基本的并联模型。两台逆变器输出端接在一起,共同带一个负载。如果两台逆变器的输出电压完全一致——幅值一样、相位一样、波形也一致——那它们之间不会有电流流动,负载电流自然按各自容量比例分配。但现实中不可能完全一致,只要幅值差一点,或者相位差一点,就会在逆变器之间形成一个回路电流,这就是环流。
用简单的电路关系理解:两台逆变器等效为两个电压源,各自带着输出阻抗(包括逆变器自身的等效输出阻抗、滤波电感、线路阻抗)。电压源之间有电压差,阻抗之间有回路,压差除以阻抗和,就是环流。公式上写就是 I_cir = (V1 - V2) / (Z1 + Z2)。这个式子简单到不像话,但所有的并联均流问题,归根结底都是在处理它。
环流分两种:有功环流和无功环流。相位差引起的环流主要是有功性质的,它会导致两台逆变器之间来回传输有功功率,表现为一台吸收有功、一台发出有功;幅值差引起的环流主要是无功性质的,表现为无功功率分配不均。这俩一个烧IGBT,一个烧电容,都不好受。
1.2 线路阻抗为什么是“看不见的搅局者”
理想情况下,你认为两台逆变器输出阻抗一样,但实际上输出阻抗里有很大一部分来自线路——电缆长短不一样、铜排截面积不一样、端子接触电阻不一样,都会让 Z1 和 Z2 出现差异。
更麻烦的是阻感比。在低压配电网里(400V以下),线路的寄生电阻不可忽略,甚至电阻分量比电感分量还大。这种情况下,传统的感性下垂控制(Q-V下垂)就会受到严重的耦合干扰——逆变器输出有功功率时,在电阻上产生的压降会直接影响输出电压幅值,导致无功均分被破坏。
这也就是为什么光有硬件对称还不够:你做不到绝对对称,即便做了对称,负载变化带来的非线性也会打破它。所以,必须从控制上找办法,把“不可控的线路阻抗”变成“可控的东西”。
2. 下垂控制的内在与外在局限:均流和稳压天然冲突
2.1 下垂控制的原理:用“电压掉落”换“自动均流”
下垂控制的思路来源于同步发电机的调速器原理。发电机并联时,谁出力多,转速就下降一点,频率自然下垂,最后达到平衡。逆变器把它数字化:有功功率大的那一台,频率稍微降一点;无功功率大的那一台,电压幅值稍微降一点。公式表达就是:
- f = f0 - m × P
- V = V0 - n × Q
这里 m 是频率下垂系数,n 是电压下垂系数。两台逆变器带同一个负载时,如果负载功率分配不均,比如1号机出200kW、2号机出100kW,那么1号机的频率会低于2号机,频率差会导致两者的相位持续拉开,最终迫使1号机减少出力、2号机增加出力,直到频率一致、功率分配趋于均衡。
这个机制的好处是:不需要逆变器之间拉通信线,纯靠本地电气量就能实现自动均流。这在微电网和UPS并联里非常实用,尤其是那些要求高可靠性、不希望有单点故障的场合。
2.2 下垂系数的“两难”:调得越狠,电压越差
下垂系数 m 和 n 的选择,本身就是一个矛盾。系数越大,均流效果越好——因为微小的功率失衡就会产生较大的频率/电压偏差,从而快速纠正功率分配。但系数大了,带来的副作用也很明显:频率偏差变大、电压跌落加深。以电压下垂为例,满载时无功功率为 Q_max,下垂系数 n 若取得过大,输出电压可能跌到额定值的90%以下,负载端的用电设备受不了。
量化看一下。假设额定电压220V(相电压峰值311V)、额定无功10kvar,取 n = 5V/kvar,满载时电压就掉了50V,这显然不行。但取 n = 0.5V/kvar,满载只掉5V,可当两台逆变器的线路阻抗差异导致测量到的 Q 有明显偏差时,这个下垂量不足以补偿阻抗差异,均流精度又不行。
这个矛盾是下垂控制的“先天病”:它靠电压偏差换取均流精度,但你既想要小电压偏差,又想要高均流精度,单靠一条下垂曲线是办不到的。
2.3 传统下垂控制在实际并联中的三个具体痛点
第一个痛点:线路阻抗差异导致的容量分配偏离。两台100kW的逆变器并联,理想情况是一台出50kW。但1号机线路阻抗大、2号机线路阻抗小,同样的输出电压在1号机线路上压降大,负载端实际电压低,用户负载就会更多地从2号机取电。结果2号机超载,1号机轻载。
第二个痛点:阻性线路引起的功-频与功-压交叉耦合。低压线路电阻大的时候,有功功率的变化主要影响电压幅值而不是频率,P-f下垂变成了P-V下垂,Q-V下垂变成了Q-f下垂。如果你还用传统的P-f/Q-V算法,会发现无论怎么调参数,功率就是均不了,甚至会出现振荡。
第三个痛点:空载环流。两台逆变器并联但负载断开时,理论上应该一台都不出力。但只要有微小的电压幅值差,就会有无功环流;有微小的相位差,就有有功环流。空载时这些环流没有负载电流“压制”,占比非常明显,IGBT发热、电容发热都跟它有关系。
要解决这些问题,就必须引入一个“东西”来改变逆变器从输出端看进去的等效阻抗——这个“东西”就是虚拟阻抗。
3. 虚拟阻抗:把固有阻抗“改写”成我们想要的数值
3.1 从物理阻抗到算法阻抗:思路转变是关键
虚拟阻抗的字面意思很直白:它不是实际存在的电阻或电感,而是在控制算法里“模拟”出一个阻抗来。它的实现方法很直接:采样逆变器输出电流 io,经过一个模拟阻抗 Zo(s),得到电压降 io × Zo(s),然后用这个压降去修正输出电压指令。
数学上表达就是:
V_ref_修正 = V_ref_original - Zo(s) × io
这样做的直接效果是:从逆变器的输出端口看进去,逆变器的等效输出阻抗变成了“原电路固有阻抗 + Zo(s)”。因为你从输出电压指令里减去了一块随电流变化的量,相当于人为制造了一个电压降,这就是在“充当”一个阻抗。
这个思路最大的好处在于:你可以把线路阻抗的影响“覆盖”掉。以前Zline是1mΩ还是10mΩ,你决定不了;现在你在控制里加一个虚拟阻抗,比如50mΩ,那么整体输出阻抗就变成了Zline + 50mΩ,线路那点差异就被稀释了。谁线路长、谁线路短,从控制上看差别就不大了。
3.2 数字实现:别直接用纯微分
理论推导的时候,虚拟阻抗最理想的形式是纯电感,即 Zo(s) = sL。但在数字控制器里,纯微分是非常不好处理的——你如果在C语言里写一个 sL,本质上就是对电流信号做微分,而电流采样里稍微有点噪声,微分之后就是巨大尖峰,直接给谐振控制器或者PWM调制器送去,振荡是分分钟的事。
工程上常用的做法有两种。一种是加一阶惯性滤波器近似:
Zo(s) ≈ (sL) / (1 + sT)
T 取电流滤波时间常数附近的值,这样高频段微分增益被抑制,不影响基波附近的虚拟电感效果。
另一种是直接做高通滤波器的形式,对低频电流不敏感、对高频电流产生阻抗作用。这个写法在消除环流和谐波方面更有效,但电压跌落更明显。
我调试下来,比较稳的思路是:先用惯性滤波形式,把截止频率取在基波频率的5~10倍(比如300~500Hz),保证基波电流能产生完整的虚拟压降,谐波电流的微分噪声被滤掉大半。
3.3 dq坐标系下的实现:Ld和Lq分开设计
在同步旋转坐标系下,三相电流变成直流量的 id 和 iq,虚拟电感的压降就变成:
Vd_补偿 = -ωL × iq(耦合项) Vq_补偿 = +ωL × id(耦合项)
为什么会有交叉项?因为电感在dq坐标下的电压方程本来就有耦合,ωL 是耦合阻抗。这就意味着,要想实现虚拟电感,你必须把 d 轴电压指令减去 ωL_iq,同时把 q 轴电压指令加上 ωL_id。
这里有个工程坑:如果你只加虚拟电阻(即Zo(s) = R),那实现就非常简单,Vd_补偿 = R×id,Vq_补偿 = R×iq,没有耦合项。所以很多低成本的并联方案用的是虚拟电阻而不是虚拟电感。
但虚拟电阻与虚拟电感对环流的影响有本质区别:虚拟电阻对有功环流和无功环流都有阻尼作用,而虚拟电感主要压制无功环流、同时为下垂控制提供感性的输出阻抗特性。我个人的做法是:基波环流用虚拟电感压,谐波环流用虚拟电阻压,两者加在一起,也就是 Zo(s) = R + sL 带滤波。
3.4 虚拟阻抗取值怎么定:一个计算实例
拿一个实际项目做例子:两台50kW逆变器并联,额定线电压400V(相电压230V),额定电流约72A,线路阻抗大约0.05Ω + 0.2mH。
下垂系数取 n = 2V/kvar(满载10kvar时掉20V,约8.7%的电压跌落,勉强可接受)。现在要知道虚拟阻抗取多少才能“盖住”线路阻抗差异:假设线路阻抗有±50%的偏差,即0.025Ω的差异,那么虚拟阻抗至少应该取到差异的5倍以上,才能把差异稀释到5%以内。
取虚拟电感 Lv = 1mH,在50Hz下对应的感抗是 2π×50×0.001 ≈ 0.314Ω,远大于0.025Ω的差异。整体输出阻抗从0.05Ω + 0.2mH变成0.05Ω + (0.2mH+1mH),阻抗的差异占比迅速下降,均流精度大幅度提高。
但注意,虚拟电感压降也会产生电压跌落:72A × 0.314Ω ≈ 22.6V,这可比下垂带来的跌落还大。所以,虚拟阻抗不是越大越好,必须和下垂系数综合起来看。整个系统的空载电压是V0,满载时总跌落 = 下垂跌落 + 虚拟阻抗压降,这个总跌落一定要在负载允许范围之内。
这就是为什么需要电压负反馈——因为虚拟阻抗和下垂都在主动制造压降,如果不加一个闭环去修正电压指令,负载端的电压质量是没法保证的。
4. 电压负反馈的设计:虚拟阻抗控制之外的稳压闭环
4.1 为什么加了虚拟阻抗还不够
虚拟阻抗解决了“均流”问题,但它带来的是“电压质量”问题。你人为叠加了 io × Zo(s) 的压降,负载电流越大,输出电压越低。如果负载是一台冲击性设备,电流突然拉到额定值,输出电压瞬间掉一截,这在工程上是不能接受的。
有人可能会想:那我减小虚拟阻抗不就行了?不行,前面说了,虚拟阻抗小了,线路阻抗差异导致的环流就压不住。所以虚拟阻抗和电压质量之间,靠开环补偿是解不开这个结的,必须引入闭环——电压负反馈。
电压负反馈的作用很直接:把输出电压采样回来,和参考电压比较,误差经过调节器(通常是PI或准PR),输出作为调制波的一部分,去调节逆变器的PWM占空比。只要输出电压低于参考值,控制器就加大占空比把电压抬回来;高于参考值,就减小占空比。
4.2 完整的控制环路:电压外环加电流内环
实际逆变器控制系统里,电压负反馈极少单独使用,通常采用双环结构:电压外环、电流内环。电压环负责稳定输出电压、跟踪参考指令;电流环负责加快动态响应、限制过流、同时抑制电容电流振荡。
控制信号流是这样走的:
输出电压V_负载采样 → 与V_ref相减 → 经过电压调节器 → 得到电流参考I_ref → 与电感电流采样相减 → 经过电流调节器 → 得到调制波 → PWM → 逆变桥 → LC滤波器 → 输出。
为什么需要电流内环?因为逆变器本质是一个电压源型的开关电路,LC滤波器本身是二阶系统,有谐振峰。电压环单独控制,动态响应慢、易振荡,而且对非线性负荷(整流性负载)的抑制能力差。加上电流内环后,系统对电感电流的响应快,阻尼增强,LC谐振峰的幅值被压下来,稳定性大幅提升。
4.3 电压调节器用PI还是准PR
在同步旋转坐标系下,PI调节器可以做到对基波(直流分量)的无静差跟踪。但在三相系统中,d轴和q轴都需要一个PI,而且两个轴之间有耦合,通常需要做解耦控制。解耦网络本质上就是把交叉项 -ωL×iq 和 +ωL×id 补偿回来。
准PR调节器(比例谐振调节器)在静止坐标系下使用,它可以在基波频率处提供足够高的增益,对基波正弦指令实现近似无静差跟踪。公式形式是:
G_PR(s) = Kp + Kr × (s) / (s² + ω0²)
实际工程中用带带宽的准PR:G(s) = Kp + 2Krωc s / (s² + 2ωc s + ω0²),ωc取5~10rad/s。准PR的好处是坐标系变换简单、实现直观,而且对频率偏移(比如下垂控制导致的频率变化)有一定的容忍度。我在并联系统里更倾向于用准PR,因为当两台逆变器频率不一致时(下垂控制过程中),dq坐标系解耦会变得不准确,而静止坐标系下的PR调节器不需要依赖锁相环做旋转坐标变换,鲁棒性更好。
4.4 电压反馈采样点放在哪里:反馈位置决定控制特性
采样点不同,控制系统看到的“输出电压”完全不一样。常见的三种采样位置:逆变器桥臂出口、LC滤波器电容端、负载端。
桥臂出口采样的问题:桥臂电压是高频PWM方波,必须经过滤波才能采样,滤波相移会直接影响控制相位裕度。电容端采样是最常规的做法,因为LC滤波器的电容电压就代表了输出正弦电压的主要分量,且这个点离PWM开关噪干扰较远,采样可靠。负载端采样需要采样线拉长,在高频电磁环境下容易受干扰,但在补偿线路压降方面更有优势。
从控制效果看,反馈点选得越靠近负载,电压精度越高,但采样噪声越大、稳定性越差;选得越靠近桥臂,稳定性越好,但负载端电压误差可能达到线路压降的几伏。具体选哪里,取决于系统对电压精度和抗扰能力的要求。就并联均流这个场景来说,我推荐电容端采样作为主反馈,另加线路压降补偿项作为前馈修正。
5. 完整的并联控制系统:从理论框图到能上机的代码
5.1 整体控制框架:功率计算-下垂-虚拟阻抗-电压环-电流环
把以上所有模块串起来,完整的单台逆变器控制逻辑是这样的:
第一步,采样三相输出电压和输出电流,通过功率计算得到有功P和无功Q。功率计算有瞬时功率法和滤波法,工程上常用二阶低通滤波或移动平均窗来平滑功率波动。
第二步,P和Q进入下垂控制器,输出频率指令ω和电压幅值指令E0。频率指令通过积分得到相位θ,电压幅值指令经过虚拟阻抗修正环节,减去 Zo×io 的压降,得到电压环的参考值V_ref。
第三步,V_ref进入电压环,和电容电压反馈比较,误差经准PR调节器后得到电感电流参考值I_ref。I_ref与电感电流反馈比较,误差经电流调节器(工程上用P或者PI)得到调制波。
第四步,调制波经PWM模块输出开关信号到逆变桥。
这里面有一个很容易犯的错:虚拟阻抗压降的计算要用“输出电流”,即流向负载和线路的电流,而不是电感电流。有的人直接用电感电流采样来做虚拟阻抗,结果就等于额外增加了一个滤波电感压降,补偿效果完全不对,输出电压畸变更严重。并联场景下,输出电流采样通常加在LC滤波器电容后面、并网点之前。
5.2 参数整定的顺序:从内到外、先电流后电压
参数整定是这套系统最容易让人崩溃的环节。我的建议是严格按下面的顺序来:
先设计电流内环。电流环带宽要求比电压环快5~10倍,通常取开关频率的1/10~1/5。比如开关频率10kHz,电流环带宽取1~2kHz。电流调节器的Kp不能太大,否则PWM调制饱和会引入振荡。
再设计电压外环。电压环带宽取电流环的1/5~1/10,即200~400Hz。准PR的Kp、Kr先按理论公式算一版,再在仿真里微调。
接着加虚拟阻抗。先只加虚拟电阻,手动调到一个环流开始被抑制的数值,然后在此基础上加虚拟电感。注意观察输出电压跌落情况,如果跌落太多,说明虚拟阻抗偏大或者下垂系数偏小,需要折中调整。
最后调下垂系数。调下垂系数时要两只机器一起看波形,观察P和Q的分配是否接近容量比例,同时看输出电压是否在允许范围。这个环节最花时间,因为要反复加载卸载。
我实测过的经验是:参数整定顺序如果反过来,先调下垂再调虚拟阻抗,你会在环流和电压波形之间来回折腾半天,因为虚拟阻抗改变了等效输出阻抗,绕回来又影响了下垂环路的“增益匹配”。所以一定从内环到外环推着走。
5.3 仿真与实际之间的三处落差
仿真里跑得完美的系统,搬到实验台上经常翻车,原因基本集中在下面三个地方。
第一个是采样延时。DSP里所有采样、计算、PWM更新都有延迟,通常是一个开关周期或者两个开关周期。这个延迟在仿真里往往被忽略,但它实实在在地削减了控制环路的相位裕度。模型里相位裕度50°的环路,实际做出来可能只剩下20°。解决办法是在仿真里显式地加入一阶惯性延时或者ZOH环节,模拟真实采样。
第二个是滤波器的相位偏移。电压反馈和电流反馈都要经过模拟滤波或数字滤波,滤波器在基波附近的相移会导致补偿方向偏差。如果你的虚拟阻抗实现里用了高通或惯性滤波,务必检查它的相频响应在50Hz处的相移是否在可接受范围内。
第三个是PWM死区。死区时间在轻载的时候会引入明显的电压误差,而且这个误差呈现非线性。它对虚拟阻抗的干扰是:轻载时虚拟压降很小,死区带来的非线性压降占比变大,导致环流在某些工况下突然明显。这不是算法本身的问题,但往往被锅扣到下垂控制头上。为了压制它,可以用死区补偿算法,或者干脆在实验数据解读时段避开轻载工况来分析。
6. 实测中的几个经典工况与排查思路
6.1 并联瞬间的冲击电流:软启动和预同步
两台逆变器并联的最关键时刻,是刚合闸那一下。如果1号机和2号机的输出电压相位不一致,合闸瞬间就是两台交流电源直接短路,冲击电流可能达到额定电流的数倍,直接触发过流保护。
解决思路有两个:一是预同步控制,即并联之前,通过锁相环把待并机的输出电压相位拉到与运行机一致,幅值也调到一致,然后再合闸并联。这个对通信系统来说比较容易实现,对没有通信的系统(纯下垂),则依赖每台机器自己的软启动逻辑——先并联母线,再逐步抬升电压指令。
实际调试中我用的方案是:主从机并机时,从机先运行在电压开环模式,幅值略低于母线电压,等锁相环收敛后,将控制模式切换到下垂模式,同时把电压指令平滑抬升到与母线一致。这样能有效减少合闸冲击,但要注意切换瞬间的控制量衔接,避免出现控制量跳变。
6.2 谐波环流:虚拟电阻的隐藏价值
负载是整流器或者变频器时,输出电流含有大量5次、7次谐波。这些谐波在并联系统里会形成谐波环流——因为每台逆变器的滤波参数、线路阻抗不一样,谐波电流分配就不均匀。谐波环流的存在会让IGBT结温升高,同时污染电流波形。
虚拟电阻对谐波环流的抑制作用很明显:谐波电流经过虚拟电阻产生的压降,会强制各台逆变器的谐波输出电压趋向一致,从而迫使谐波电流按照阻抗比例分配。改用虚拟电阻之后,5次谐波环流振幅通常能被压低30%~50%。所以建议在虚拟阻抗里保留一个电阻分量,哪怕只是很小的一点点,对谐波环境也有明显的改善作用。
6.3 调制饱和引发的振荡:电压环积分饱和要重视
负载突然增加时,电压环误差变大,PI积分器会快速累积,输出控制量达到上限,PWM占空比饱和。这时候逆变器的实际输出电压不再跟随参考电压,电压环失效,系统表现为“掉电压后过冲振荡”。尤其在并联系统里,饱和会引起电流内环参考值突变,冲击更大。
我的处理办法:
- 电压环调节器加限幅,限幅值按电流内环允许的最大电流计算,不能超过IGBT的安全工作区;
- 积分器加抗饱和功能,当输出达到限幅时冻结积分,防止过度积分;
- 下垂控制输出的电压幅值指令本身也要限幅,不能让下垂系数把参考电压拉到太低的位置——这会在负载恢复瞬间引发反向冲击。
6.4 线路阻抗不确定下的鲁棒性:虚拟阻抗的自适应思路
固定参数的虚拟阻抗对付固定的线路阻抗差异绰绰有余,但实际工程中,线路长度可能随着现场布局变化,甚至温度变化导致电阻漂移。这种情况下,固定虚拟阻抗可能会过补偿或者欠补偿。
自适应方案的主流思路:在线辨识线路阻抗或输出阻抗,然后动态调整虚拟阻抗参数。辨识方法可以注入谐波、或者利用PWM方波的间谐波分量作激励,继而用最小二乘法实时拟合阻抗值。虽然目前在工业产品中还不是标配,但至少在重载、长距离并联场景下,值得多花一点点算力去做。对大多数研究者和工程师来说,固定参数的虚拟阻抗已经能解决80%的问题。
7. 关于这套控制策略的实践心得
我做过的经验总结如下:虚拟阻抗加电压负反馈的下垂控制,不是复杂到只有学术论文能用的东西,它就是在你手边可落地的方案。核心是把“物理上不可控的线路参数差异”,转成“算法里可设计的等效阻抗”。这个转变需要你对逆变器的输出阻抗有清晰的建模理解,同时对数字控制器的实现细节保持警觉——纯微分不能用、采样延时不能忽略、饱和限幅不能不做。
调试顺序方面,强烈推荐从单台机的电压环和电流环调稳开始,然后做虚拟阻抗,再做并联下垂。三块分开调试的定位效率远高于整体瞎调。仿真阶段就加上采样延时和滤波器的模型,实测翻车的概率会大幅降低。
另外说一句,很多人喜欢问“虚拟阻抗到底取多大合适”,这个真没有万能答案。它取决于你的线路阻抗差异、负载特性、允许的电压跌落,以及下垂系数的设置。拿仿真模型慢慢扫参数,找到均流精度和电压质量的最佳平衡区间,再留出20%的裕量,是最稳妥的路线。