ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

单相UPS逆变器准PR双闭环控制仿真设计与参数整定

单相UPS逆变器准PR双闭环控制仿真设计与参数整定

1. 单相UPS的底层逻辑与PR控制切入思路

单相不间断电源的核心任务说起来简单——市电正常时把电干净地送给负载、顺便给电池充电,市电异常时无缝切到电池逆变继续供电。但真正做过UPS逆变器的人都知道,难的不是"能出电",而是"出好电"。所谓好电,就是输出电压波形总谐波失真低、动态响应快、带非线性负载不塌、切换过程不跳变。这几个指标里,任何一个单拎出来都不算太难,难的是同时满足。

传统单相UPS逆变环节最常用的控制策略是电压外环加电流内环的双闭环PI控制。这套结构在工业界跑了二十多年,成熟、稳定、工程师熟悉。但它有一个绕不开的软肋:PI控制器对正弦参考信号的跟踪存在稳态幅值和相位误差。原因很直白——PI控制器在基波频率处的增益是有限的,不是无穷大。要想把基波误差压下去,就得把比例增益P调大,但P一大,系统带宽上去,高频噪声放大,相位裕度下降,动态容易振荡。这就是PI双闭环在单相逆变器里的经典矛盾。

比例谐振(PR)控制器恰好补上了这个短板。它的核心思想是在基波频率处引入一对共轭极点,让控制器在该频率处的增益趋于无穷大,从而实现对正弦参考量的零稳态误差跟踪。你可以把它理解成"专门为50Hz定制的追踪器"——在50Hz附近增益极高,偏离50Hz后增益迅速衰减,既保证了基波跟踪精度,又不会像高P值PI那样把高频噪声全放进来。

我这次做的仿真设计,就是围绕"改进型PR控制器+双闭环结构"在单相UPS逆变环节的应用展开的。整个模型在Simulink里搭建,涵盖直流母线、全桥逆变、LC滤波、负载切换、电池充放电逻辑,控制部分采用电压外环PR+电流内环P(或准PR)的架构。适合正在做电力电子仿真、UPS逆变器控制、或者想从PI过渡到PR的工程师参考。下面我把整个设计思路、参数计算、仿真搭建、调试踩坑的过程完整拆一遍。

2. 为什么选PR而不是PI:控制策略选型的深度拆解

2.1 PI双闭环在单相逆变里的固有短板

先把这个事情说透。单相逆变器的参考信号是50Hz正弦波,不是直流。PI控制器对直流参考能做到零稳态误差,因为积分器在直流处的增益是无穷大。但到了50Hz,积分器的增益是1/(jωL),ω=2π×50≈314 rad/s,增益只有1/314,约等于0.0032。这个数值非常小,意味着积分环节对50Hz基波的"纠正能力"很弱。

实际表现就是:你用PI双闭环跑单相逆变,空载时输出电压可能还行,一带载,输出电压幅值就往下掉,相位也往后偏。你加大积分系数,幅值误差能压下去一些,但相位误差依然存在,而且积分系数太大容易引起低频振荡。这就是PI的物理极限,不是调参能根本解决的。

2.2 PR控制器的数学本质与改进方向

PR控制器的传递函数标准形式是:

G_PR(s) = Kp + Kr·s / (s² + ω₀²)

其中ω₀是谐振频率,对应基波角频率314 rad/s;Kp是比例增益,Kr是谐振增益。在s=jω₀时,分母s²+ω₀²=0,整个谐振项趋于无穷大,所以控制器在ω₀处的增益无穷大,实现零稳态误差。

但理想PR有一个致命问题:它在谐振频率处的增益无穷大,带宽极窄,实际数字实现时由于离散化和量化误差,谐振频率可能偏离实际基波频率,导致增益急剧下降。而且无穷大增益在仿真里容易引起数值问题。

所以工程上普遍采用准PR控制器,传递函数改为:

G_QPR(s) = Kp + 2·Kr·ωc·s / (s² + 2·ωc·s + ω₀²)

多了个ωc,叫截止频率,它决定了谐振峰的带宽。ωc越大,谐振峰越宽,对频率波动的容忍度越高,但增益峰值下降。一般ωc取5~15 rad/s,我这次取10 rad/s,对应带宽约±1.6Hz,足够覆盖电网频率的正常波动范围。

2.3 双闭环结构的角色分工

双闭环的外环是电压环,用准PR控制器,负责把输出电压跟踪到参考正弦。输出是电流内环的参考值。内环是电流环,用P控制器或者准PR控制器,负责让电感电流快速跟踪外环给出的参考。内环带宽要远高于外环,一般取外环的5~10倍,这样内外环可以解耦设计。

为什么内环用P而不是PI或PR?因为内环的目标是快速性,不是零稳态误差。电感电流的稳态误差由外环的积分作用来消除。内环用P控制器,带宽高、响应快、相位裕度好调。如果内环也用PR,两个谐振峰叠加,调试难度陡增,容易自激。

注意:内环用P控制器时,比例增益不能太大,否则电流纹波放大,开关管应力增加。一般内环带宽取开关频率的1/10~1/5。

3. 仿真模型搭建与核心参数计算

3.1 主电路拓扑与关键参数确定

单相UPS逆变主电路采用全桥结构,四个IGBT组成H桥,输出经LC滤波器接负载。直流母线电压取400V,输出电压有效值220V,频率50Hz,额定功率1kVA。

开关频率选20kHz。这个频率的选择有讲究:太低,滤波器体积大、动态差;太高,开关损耗大、仿真步长要很小。20kHz在1kVA级别是常见选择,开关周期50μs。

LC滤波器设计是重头戏。截止频率一般取开关频率的1/10~1/5,我取2kHz。滤波电感L和电容C的计算:

截止频率 fc = 1/(2π√(LC)) = 2000Hz

同时考虑无功容量,滤波电容吸收的无功一般不超过额定功率的5%。额定1kVA,5%就是50Var。电容无功Qc = U²·ωC = 220²×314×C = 50,解得C≈3.3μF。实际取4.7μF标准值。

再由截止频率反推L:L = 1/((2πfc)²·C) = 1/((2π×2000)²×4.7e-6) ≈ 1.35mH。取1.5mH标准值。

验证一下:实际截止频率 fc = 1/(2π√(1.5e-3×4.7e-6)) ≈ 1897Hz,接近2kHz,可以接受。

3.2 准PR控制器参数整定过程

电压外环准PR参数:Kp_v、Kr_v、ωc。ωc已定10 rad/s。Kp_v影响动态响应,Kr_v影响稳态精度。

整定思路:先只加Kp_v,从小到大调,观察输出电压跟踪情况。Kp_v=0.1时响应慢,Kp_v=1时开始有超调,Kp_v=0.5时比较折中。然后加Kr_v,从10开始加,加到100时稳态误差基本消除,加到200时启动冲击变大。最终取Kp_v=0.5,Kr_v=100。

电流内环P参数:Kp_i。内环带宽目标2kHz左右。被控对象是电感,传递函数1/(Ls)。P控制器增益Kp_i,开环传递函数Kp_i/(Ls),带宽ωbw=Kp_i/L。要ωbw=2π×2000≈12566 rad/s,L=1.5mH,则Kp_i=12566×1.5e-3≈18.8。取Kp_i=15,留点裕度。

参数数值说明
直流母线电压400V保证220V输出有足够裕度
开关频率20kHz兼顾损耗与滤波器体积
滤波电感L1.5mH截止频率约1.9kHz
滤波电容C4.7μF无功约5%额定
电压环Kp_v0.5动态与超调折中
电压环Kr_v100稳态误差消除
电压环ωc10 rad/s谐振带宽约±1.6Hz
电流环Kp_i15内环带宽约2kHz

3.3 Simulink模型搭建要点

模型分几个子系统:主电路子系统、控制子系统、PWM生成子系统、负载切换子系统、测量显示子系统。

主电路用Simscape Electrical里的IGBT/Diode模块搭全桥,直流侧用DC Voltage Source,交流侧接LC滤波和负载。负载用可变电阻,通过Step模块在0.1s时从空载切到满载,模拟突加负载。

控制子系统里,电压外环的准PR用Transfer Fcn模块实现,传递函数写成:

% 准PR控制器传递函数系数 % G(s) = Kp + (2*Kr*wc*s) / (s^2 + 2*wc*s + w0^2) Kp = 0.5; Kr = 100; wc = 10; w0 = 2*pi*50; % 分子分母系数 num = [Kp, 2*wc*(Kp+Kr), Kp*w0^2]; den = [1, 2*wc, w0^2];

这里要注意,准PR写成通分形式后,分子是二次多项式,分母也是二次。Simulink里用Transfer Fcn模块直接填num和den即可。

PWM生成用三角波比较法,20kHz三角载波与电流环输出比较,生成四路驱动信号。注意死区时间要加,仿真里设1μs,实际硬件一般2~3μs。

提示:仿真步长要小于开关周期的1/20,20kHz对应50μs,步长取1μs或更小。我用的是ode23tb变步长,最大步长设1e-6,保证PWM边沿精度。

4. 仿真结果分析与典型问题排查

4.1 稳态性能:THD与跟踪误差

空载稳态时,输出电压THD在0.5%以下,基波幅值219.8V,接近220V参考。带满载阻性负载时,THD约1.2%,幅值218.5V,压降0.7%。这个压降主要来自滤波电感和开关管导通压降,属于正常范围。

对比PI双闭环的仿真结果:同样参数下,PI控制的满载压降约3~5%,THD约2~3%。PR的优势在稳态精度上体现得很明显。

带整流性非线性负载时,PR控制的THD会上升到4~5%,因为非线性负载电流含大量低次谐波,这些谐波在滤波电容上产生谐波电压。要进一步改善,可以在PR基础上并联3次、5次谐振控制器,做成多谐振PR。这次仿真没做,但思路是通的。

4.2 动态性能:突加突卸负载响应

0.1s突加满载,输出电压跌落最大约15V,恢复时间约2ms。0.2s突卸负载,电压冲高约12V,恢复时间约1.5ms。这个动态表现对于1kVA UPS来说是可以接受的。如果要求更高,可以适当加大Kp_v,但会牺牲一些相位裕度。

4.3 常见问题与排查速查表

问题现象可能原因排查方法解决措施
输出电压振荡电压环Kp_v过大减小Kp_v观察降到0.3~0.5
稳态幅值偏低Kr_v不足加大Kr_v加到100~200
电流环自激Kp_i过大减小Kp_i降到10~15
THD偏高滤波器截止频率太高加大L或C截止频率降到1.5kHz
突加负载跌落大内环带宽不足加大Kp_i配合减小L
仿真报错步长太大减小步长最大步长1e-6
谐振峰偏移ωc太小加大ωc取10~15 rad/s

4.4 实操踩坑记录

第一个坑:一开始用理想PR,Kr设了1000,仿真直接发散。后来才明白理想PR在谐振点增益无穷大,数值求解器处理不了。换成准PR,ωc=10,Kr=100,稳了。

第二个坑:内环P控制器一开始设了50,结果电流波形全是毛刺,开关管电流应力巨大。后来算了一下带宽,50对应带宽约5kHz,太接近开关频率了。降到15,带宽2kHz,波形干净了。

第三个坑:死区时间忘了加,仿真里上下管直通,电流瞬间冲到几千安。加上1μs死区后正常。实际硬件死区要更大,因为要考虑驱动延迟和开关时间。

第四个坑:负载切换用Breaker模块,切换瞬间产生数值尖峰。后来改用可变电阻加Step信号,平滑切换,结果更可信。

5. 从仿真到硬件的落地建议

仿真跑通只是第一步,真要做硬件,有几个地方必须提前考虑。

采样与延迟:仿真里采样是理想的,实际ADC采样有延迟,一般1~2个开关周期。这个延迟会降低相位裕度,仿真时可以在反馈通道加一个Transport Delay模块模拟,步长设50μs,看看系统还稳不稳。如果稳不住,Kp_v和Kp_i都要往下调。

数字实现:准PR控制器在DSP里是离散化实现的,常用Tustin变换或后向差分。离散化会引入频率畸变,谐振频率可能偏移。建议在MATLAB里用c2d函数离散化,对比离散前后的Bode图,确认谐振峰位置没跑偏。如果跑偏了,可以在离散化时做频率预畸变。

死区补偿:实际死区会导致输出电压波形畸变,THD上升。仿真里可以加死区模块看看影响,硬件里一般做死区补偿,根据电流方向修正占空比。

电池充放电逻辑:这次仿真只做了逆变部分,实际UPS还有充电器和电池管理。充电器一般是Buck或Buck-Boost拓扑,控制策略用PI就够了,因为电池充电是直流量的控制,不需要PR。

切换逻辑:市电与逆变切换是UPS的关键。仿真里可以用理想开关模拟,实际要用继电器或可控硅,切换时间影响负载是否掉电。在线式UPS切换时间可以做到0ms,因为逆变一直在跑;后备式有10ms左右的切换时间。

注意:仿真里所有参数都是理想值,实际电感有电阻、电容有ESR、开关管有导通压降,这些都会影响最终性能。建议仿真时把电感串联电阻设0.1Ω、电容串联电阻设0.05Ω,更接近实际。

6. 参数整定的个人经验与扩展方向

调PR双闭环,我的经验是先把内环调好再调外环,内环没调好之前外环怎么调都是白费。内环的判据很简单:给一个电流阶跃参考,看实际电流跟踪的上升时间和超调。上升时间在0.5ms以内、超调小于10%,内环就算合格了。

外环调的时候,先把Kr_v设0,只调Kp_v,看输出电压能不能大致跟上参考。能跟上之后再加Kr_v,一点点加,加到稳态误差满意为止。不要一上来就把Kr_v设很大,那样启动冲击会很大,仿真里可能直接报错。

ωc的选择有个经验公式:ωc ≈ 2π×Δf,Δf是你希望容忍的电网频率波动范围。比如希望容忍±1Hz,ωc≈6.28 rad/s;容忍±2Hz,ωc≈12.56 rad/s。我取10 rad/s,对应±1.6Hz,覆盖了绝大多数电网频率波动场景。

后续可以扩展的方向:多谐振PR抑制低次谐波、重复控制与PR复合控制、无差拍预测控制替代电流内环、以及把仿真模型代码化用C语言在DSP上实现。每一个方向都够单独写一篇。我个人的体会是,PR控制器的价值不在于它有多新,而在于它用相对简单的结构解决了PI在交流跟踪上的根本缺陷,对于做UPS、光伏逆变、储能变流器的工程师来说,这是一个值得花时间吃透的基础工具。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进