资讯动态

从PI到PR:并网逆变器单位功率因数控制的原理与调试

发布时间:2026/10/20 18:30:45 来源:尧图企业网站定制
做并网逆变器控制的同行都清楚所谓“单位功率因数”不是一句口号它落到波形上就是入网电流和电网电压严格同频、同相有功输出达到最大而无功分量几乎为零。很多刚接触逆变器控制的朋友第一反应是用PI把电流环做出来不就好了仿真里看着也挺正常可一旦把参考信号从直流改成50Hz正弦PI的固有短板就暴露了——稳态误差根本压不到零。这也是我写这篇文章的初衷聊清楚为什么基于PR控制器的并网逆变器更合适以及实现单位功率因数到底靠哪几个环节。文中会涉及控制原理、参数整定、离散化和调试中的常见坑适合正在做光伏并网、储能PCS或微电网样机的工程师也适合刚把目光从拓扑转到控制策略的学生。这篇文章从原理到落地把“电流电压同相位”这件事拆开讲透。1. 从PI切到PR正弦电流跟踪的原理性拐点1.1 PI控制器为什么压不掉正弦误差你去看电流内环很多教材都从PI讲起这是有道理的PI在处理直流参考时几乎是万能药积分项把开环传递函数在零频处的增益顶到很大静差自然趋近于零。但并网逆变的参考不是直流而是带工频的正弦麻烦就从这里开始了。要解释清楚用内模原理最合适。内模原理说的是闭环系统要想对某类信号实现无差跟踪控制器里必须复制出该类信号的动力学模型。直流信号的特征是s0处的1/s极点PI里恰好有这个内模而正弦信号的特征是s±jω0处的谐振极点PI里完全没有这个东西所以无论Kp、Ki怎么调理论上都无法把正弦跟踪误差消到零。仿真里可能看着只是幅值、相位有一点偏差但这点偏差会直接恶化入网电流的谐波和无功分量。进一步看频域表达设开环传递函数为Gol(s)Gc(s)·Gp(s)若Gc是PIGol在ω0处只是某一有限值系统对正弦参考的稳态误差幅值近似1/(1Gol(jω0))相位上也会残留一个与Gol幅相有关的弧度。Kp调大一点能减小误差但又会把高频噪声放大顾此失彼。这也是为什么很多人把PI的参数调到极限电流波形依然“差点意思”。需要的不是调参而是换一个结构上更匹配的控制器。1.2 准PR控制器把直流内模换成交流内模PR控制器的思路很直接把PI的积分项换成谐振项。理想PR传递函数是Gc(s)KpKr·s/(s²ω0²)sjω0处谐振项可以提供的开环增益理论上趋近无穷于是正弦参考的稳态误差被压到接近零。这个逻辑和PI对待直流完全是一样的。这也是很多资料里说“PR相当于正弦域的PI”这句话的来源。不过理想PR真正用起来并不舒坦原因有两点其一物理电网频率并非恒定50.000Hz偏一点谐振项增益就会掉下来其二离散化之后位于单位圆上的谐振极点很容易因为系数量化、采样误差而跑到圆外产生自激或长时间振荡。工程上因此普遍用准PRGc(s)KpKr·ωc·s/(s²2ωc·sω0²)这里的ωc给谐振项增加了一个小带宽让控制器的选择性从“一根针”变成“一小段频带”。ωc太小频率漂移导致性能迅速下滑太大又会把50Hz附近其他谐波也放大。实际项目里比较常见的范围是2π×52π×20 rad/s如果电网频率波动大可以往2π×20靠。1.3 PI和PR的适用边界容易有一个误解以为PR必须全盘取代PI。其实在许多拓扑中直流电压外环仍用PI只有电流内环用PR两者并不冲突。选择边界其实很清晰如果你控制变量是直流量比如电池BUCK那一级的电流、母线电压PI就非常顺手如果你控制变量是工频交流量又希望在静止坐标系里直接做PR就是更合理的选项。反过来PR在非基频处的增益有限如果想抑制5、7次等特定谐波还可以在控制器里并联多个谐振支路扩展性也比PI好。对比项PIPR/准PR内置信号模型直流极点交流谐振极点对工频正弦参考存在稳态幅值/相位偏差可接近零稳态偏差常用坐标系dq旋转或αβ直用αβ下非常自然对参数依赖对dq角度同步依赖对谐振频率设定敏感扩展谐波抑制需多个旋转坐标变换并联谐振支路即可这个对照表基本概括了两类控制器的差异。可以说PR并不是一种比PI更“高级”的控制器而是在正弦跟踪这个特定任务上结构恰好对上了内模原理的要求。理解这一点后面所有参数整定和调试动作就有了依据。2. 单位功率因数的三个支柱基准电流、锁相环与调制度2.1 单位功率因数到底由谁决定单位功率因数在功率理论里意味着cosφ1也就是电压与电流相位差为零、无功电流为零。很多初学者容易把PR控制器和单位功率因数直接挂钩好像用了PR就自动同相了。事实不是这样。电流内环只是一台追踪器它忠实跟随的是“电流基准”基准长什么样最终电流就长什么样。换句话说决定能不能实现单位功率因数第一位是基准电流的相位和波形第二位才是PR环路的跟踪能力。正常控制流程是外环一般取直流母线电压环或有功功率环给出电流幅值指令PLL给出电网电压相位两者合成为电流基准PR内环再去抑制误差把实际电流拉到基准上。只要基准相位和电网电压一致实际电流又与基准一致网侧电流和电压自然同相。所以这篇文章的核心与其说是“用PR实现单位功率因数”不如说是“让基准、PLL、电流环三者对齐”。2.2 电流基准的生成让指令与电压天然同相在αβ静止坐标系里这个基准生成的逻辑最直观。假设PLL已经锁定了电网电压的基波正序相位θ那么电网电压可以近似写作eαEm·cosθ, eβEm·sinθ如果外环给出的电流幅值是Im只要让iα_refIm·cosθ, iβ_refIm·sinθ就天然构造出了一个与电压同相、同时维持恒定幅值的正弦基准。PR电流环在这两个轴上各有一个各自对该轴的误差做调节。这也是PR和静止坐标系配合得很舒服的原因不需要额外做Park变换每个轴都是一个单输入单输出的调节回路。从dq域看上述等式其实和“id_refIm、iq_ref0”完全等价。dq域把正弦基准变成类似直流PI可以工作而αβ域把基准保持成正弦PR可以工作。两条路最终殊途同归。但在弱电网或畸变工况下“电压归一化”或者“直接乘正序电压”这类做法要小心。如果直接用采样电压的瞬时值当基准电压里的谐波、负序分量都会被带进电流基准PR环节再努力也滤不干净。我的习惯是只取PLL输出的角度/单位向量再用这个干净向量构造正弦基准把谐波挡在基准生成之前。2.3 PLL和调制度这两个隐藏约束既然基准相位来自PLLPLL的动态和稳态精度就直接影响功率因数。同步旋转坐标系锁相环SRF-PLL结构简单、稳态精度好但在电网电压的谐波和不平衡比较明显时锁出的角度会有小纹波导致电流基准出现附加的谐波。对三相系统可以改用基于正序分量提取的锁相方法比如带正交信号发生器DSOGI的PLL或者用陷波器把2倍频谐波挡掉。对于单相并网逆变器正弦和余弦基准的质量更依赖正交信号发生器不能只靠一个简单过零比较去锁相。总之PLL的干净程度决定基准的干净程度基准又决定并网电流的纯净度这个因果链不能断。再有一个容易被忽略的是调制度/直流母线电压约束。单位功率因数下逆变器要向电网输送有功桥臂输出电压矢量的幅值必须高于电网电压矢量和电感压降的合成。如果母线电压偏低或者调制深度接近饱和在电流过零附近就会表现出“跟不上”的现象电流削顶、谐波升高实测功率因数也掉下来。设计时除了控制参数还要检查调制比余量尤其电网电压偏高或动态波动时不能贴着限幅跑。3. PR参数整定与离散化从连续域到DSP的落地3.1 一套可以起步的参数整定方法先列一个单L电流环的控制对象逆变器在中频段近似为一个增益环节滤波电感L、线路电阻R于是从控制量到并网电流的传递函数约是1/(LsR)。电网电压作为扰动量PR控制器的主要任务就是在基频处提供足够高的环路增益并保持相位裕度。实际中我们不用执着于从零推导每个系数下面这套步骤可以作为起步点。第一确定Kp。Kp主要决定电流环的穿越频率和动态响应。在只考虑Kp的简化开环下期望穿越频率fc附近的幅值条件大约是Kp·Kpwm ≈ 2π·fc·L很多数字控制里把PWM调制增益折算成1于是Kp≈2π·fc·L。fc一般取开关频率的1/101/20。举个例子开关频率10kHz、L3mHfc取500Hz时Kp初值大概是9.4取整可以先从58试起。Kp太大高频噪声和延迟导致的相位滞后都会被放大太小动态和抗扰动都不行。第二确定谐振带宽ωc。它的作用是给基频附近留出容差。对电网频率偏差不大的情况ωc2π×52π×15足够如果当地电网频率飘得比较厉害就取到2π×20甚至更大。带宽过大时会对基频附近的其他谐波也产生较高增益需要自行权衡。第三确定Kr。Kr直接决定基频点的峰值增益峰值增益大致是KpKr/2。为了让基频处稳态误差足够小峰值增益通常做到比中频段高1020倍按这个目标反推Kr。还是用L3mH那套参数Kp8、希望峰值增益约20倍Kr大概可以取到300附近。然后放进仿真里闭环验证观察阶跃响应和并网电流THD再用波特图看看相位裕度一般至少留40°以上。3.2 离散化路上的几个关键决定连续域设计完成后真正的分水岭是离散化。PR和PI不一样谐振极点非常“精细”如果用普通双线性变换且不做任何修正离散后的谐振频率可能发生偏移轻则稳态误差变差重则系统不稳定。我的做法是采用带预畸变的双线性变换把ω02π×50这个频率点提前对齐。大多仿真工具里的离散化函数可以直接指定prewarp频率写法类似Gd c2d(Gc_continuous, Ts, prewarp, 2pi50)这一行看起来简单但决定了谐振器是否恰好落在电网频率上。得到离散传递函数后落到DSP里就是一个二阶递归IIR结构。代码骨架是/* err: 当前拍电流误差ctrl: 控制器输出 */ ctrl b0*err b1*err_prev1 b2*err_prev2 - a1*ctrl_prev1 - a2*ctrl_prev2; err_prev2 err_prev1; err_prev1 err; ctrl_prev2 ctrl_prev1; ctrl_prev1 ctrl;这里最想提醒的是b0a2这些系数每次改采样周期、改ω0、改Kr都要重新计算千万不要从老的工程里复制一套“经典系数”直接用。谐振器的系数对精度很敏感稍有不对波形上就是持续的小毛刺或低频抖动。如果DSP中断支持还可以把采样点设在PWM计数顶部和底部控制周期等于开关周期或半开关周期这样能减少一拍延迟但计算负担和中断负荷也随之增加。具体取哪种要看主控芯片的余量和项目对动态响应的要求没有统一答案。3.3 延迟补偿是实验和仿真最大的分水岭数字控制天然有延迟电流采样通常在PWM周期开始或中间控制器计算需要时间PWM比较值要到下一个周期才更新合起来常用一个1.5倍采样周期来描述。连续域仿真里如果不加这个延迟PR参数往往可以给得比较激进一旦把延迟模型加进去相位裕度立刻下降足够让控制出现振荡或纹波。常用的补偿思路有两种。一种是在设计控制器时就把延迟放进被控对象模型里让整定结果天然预留余量这最稳妥另一种是在PR输出后做角度补偿相当于给控制器增加一个相位项按延迟对应的基频相位差来取补偿谐振器在离散化、延迟下拉偏的频率点。对多数项目把1.5拍延迟建模进仿真系统比事后补偿更容易落地。调试时如果你发现参数在仿真里跑得好、上机就抖第一件事不是怀疑示波器而是回头确认延迟模型建了没有。实际参数里如果控制器开关频率10kHz、Ts100μs1.5拍延迟在50Hz处对应的相位滞后大约为 1.5×0.0001×50×360°2.7°看着不大但谐振器的相位曲线在ω0附近很陡这点滞后叠加到环路里足以吞掉好几十度裕度。这也是PR调试中“差一点点就振荡”现象最常见的来源。4. 调试实录那些仿真看不出来的并网坑4.1 LCL谐振与有源阻尼单L设计简单但滤波效果有限要用更小电感达到并网THD要求多数方案上LCL。LCL好处是高频衰减快坏处是幅频特性里有一个尖锐谐振峰如果没有阻尼即使PR参数在工频处再漂亮系统也很容易在这个谐振频率附近振荡。仿真里这个问题很容易看见但如果模型没建全你会误以为是PR调得不对。常用处理办法是给LCL加有源阻尼。简单有效的是电容电流反馈把滤波电容上的电流采进来乘一个虚拟电阻系数反馈到调制波等效于在谐振峰上串联了一个虚拟电阻。也可以用电容电压反馈但电流反馈在实现上更常见。无源阻尼电感并联电阻、电容串联电阻也可以代价是损耗在线缆长、温升高、效率要求严格的场合会比较头疼。还有一个可选方案是加陷波器把谐振峰削掉但它会给整个环路的相位带来额外滞后一般不作为首选。判断是不是LCL振荡用FFT看电流里那个高频分量是否和理论谐振频率接近即可。4.2 启动瞬间的相位对齐问题仿真里初始化条件理想PLL一上电就把角度锁准真实硬件却常有意外。比如接触器闭合的瞬间PLL还没锁定此时如果电流控制已经开始动作基准角度和电网实际相位对不上就可能出现一个大电流冲击严重的直接触发保护或损坏器件。我的调试顺序是先空载并网上下管封锁只让母线电容充电PLL在这个过程中把相位锁住然后给一个极小的电流指令比如额定电流的2%5%观察实际电流方向是不是与预期一致。如果电流反向多半是采样极性、PLL输出的sin/cos符号或者基准构造环节有一处反号。这类问题在仿真中几乎不出现但实际接线时一个采样霍尔的方向就能让人查一天。所以上电前一定要对通道逐个通道扳电压波形确认PLL角度的零点与采样电压正半周起点对齐。另外启动电流指令不要给阶跃。仿真里阶跃无所谓硬件上阶跃意味着电流基准瞬间从0跳到额定值电感承受的冲击和器件应力都很大。给一段斜坡比如100ms到200ms内从0升到目标值既能保护设备也能让你清楚看到电流环的动态过程一旦有振荡不至于直接炸机。4.3 电网频率漂移与带宽设计电网工频名义上是50Hz但在实际台区或微网里频率漂个±0.2Hz是常有的事弱电网甚至更大。如果准PR带宽很窄比如ωc只取2π×2频率一旦偏0.2Hz谐振增益就会明显下降输出电流出现幅值和相位误差。这正是整定ωc时不能照抄别人项目参数的原因不同并网点频率质量差很远。如果你的项目面对的是频率波动比较大的电网有两个改进方向。第一把ωc放宽到2π×20甚至更大牺牲一点选择性换鲁棒性。第二做频率自适应PLL实时输出ω0控制器系数在线更新。第二种思路理论很漂亮但要注意离散系数变化时不能突变否则电流会抖一下。实际实现中可以给ω0加一个低通或斜坡让系数平滑地跟着电网频率走。用DSP做这个不难但每次系数更新都要重新算一遍IIR系数中断里的计算量要预先评估。4.4 现场问题快速排查现象优先排查常用对策电流过零处削顶、THD升高调制度饱和、死区效应提高母线电压、减小电流幅值或加死区补偿并网电流相位有稳定偏差PLL角度不准、数字延迟未补偿检查PLL输出与采样电压对齐补偿延迟并网瞬间大电流冲击基准相位错误、指令阶跃从零斜坡给电流基准先空载锁相电流高频振荡LCL谐振峰未阻尼电容电流有源阻尼或调整LCL参数功率因数偏离1无功电流指令不为零、PLL环路误差检查基准iq_ref是否清零验证PLL稳态这张表是给调试时走捷径用的。实际中这五类问题经常混在一起比如LCL振荡和死区效应同时存在时电流波形千奇百怪。我的办法是每次只动一个变量先稳住相位再降THD最后调稳态精度。同时样机调试时保留一套“保底参数”Kp小一点、Kr按最低需求、ωc偏宽遇到环路发散先回到安全区再渐进优化。我在这些项目里最后保留的调试习惯是一切改动都从仿真中的“数字延迟LCL完整模型”开始确保稳定裕度足够再上实际样机验证。单位功率因数表面上是一个波形指标真正实现起来考验的却是整条链路——PLL、基准构造、PR参数、离散化、延迟补偿、滤波器阻尼每一环都要对齐。希望这篇记录能把原理和落地之间的那层窗户纸捅破也祝大家在并网调试时少一点示波器前的漫长抓挠多一点一次通过的顺畅。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑