☰
单相PWM整流器Simulink仿真:PI电压外环+PR电流内环控制策略
2026/10/21 19:10:09 网站建设 项目流程

做单相PWM整流器的Simulink仿真,最核心的就是控制策略和调制策略这两块。我手里这套模型用的是电压外环PI、电流内环PR的双环控制结构,配合SPWM双极性调制,目标是实现网侧单位功率因数、直流侧稳压输出和低谐波电流。这套方案在并网变流器、UPS、电机回馈制动等场景里都比较常见,也适合电力电子方向的学生和控制工程师拿来练手参考。

很多人在做这个仿真时,最大的困惑不是模型本身,而是“为什么电压环用PI,电流环却要换成PR?”、“SPWM调制波和载波到底怎么接到MOS管上?”、“参数整定有没有一套可以照抄的公式?”这些问题如果不理顺,仿真模型很容易出现电流发散、电压波动大、谐波高这些让人头疼的波形。这篇文章我把整个模型的方案选型、电路搭建、参数计算、波形分析和调参踩坑记录完整地梳理一遍,希望读者能直接照着搭,不用再走弯路。

1. 控制方案选型与双环结构拆解

1.1 单相PWM整流器到底要解决什么问题

三相PWM整流器在工业里很常见,但单相的应用更贴近中小功率场合,比如电动车充电机、家用光伏并网、UPS前端整流。核心诉求无非三条:第一,让输入电流接近正弦波,不要给电网增加谐波污染;第二,让输入电压和电流同相位,实现单位功率因数,尽量少吸收无功;第三,稳定输出直流电压,给后级逆变器或负载提供可靠母线。

和普通二极管整流器相比,PWM整流器最大的优势是主动可控。二极管整流只能依赖电网电压自然导通,电流波形畸变严重,功率因数也难以调节。而PWM整流器通过高频开关管动作,给电感两端施加一个可控的PWM电压,主动“塑造”输入电流波形。从控制角度看,本质就是一个跟踪问题:实时采集电感电流,让它跟随一个正弦参考;同时根据直流电压误差调节这个正弦参考的幅值。跟踪的精度和控制策略直接相关,这也是PR控制器在这个场景下格外好用的原因。

单相和三相还有一个明显差异,就是直流侧会有二倍频脉动。单相瞬时功率不是恒定的,是50Hz基频的两倍频波动,这会在直流电压上留下100Hz的纹波。这个纹波如果进入电压外环,又会导致电流参考出现畸变。这一点在后面的模型里需要特别注意,也是很多新手第一次仿真时波形和预期不符的根源之一。

1.2 为什么外环用PI,内环用PR

先明确一个概念:双环控制里的“外环”和“内环”,职责完全不同。

电压外环处理的是直流侧信号。直流电压本身就是直流量,参考值是400V或者600V这样的恒定值,反馈量也是缓慢变化的直流量。PI控制器对直流量有无穷大的稳态增益,只要误差不为零,积分项就会持续调节,直到误差被彻底消除。所以直流电压用PI控制,理论上就足够好,没有必要引入复杂的谐振项。

电流内环处理的是交流侧信号。电感电流的参考是50Hz正弦量,如果也用PI控制器,情况就变了。PI在中低频对正弦信号会产生幅值衰减和相位滞后,而且稳态误差不为零。换句话说,PI控制交流正弦参考时,电流波形会存在增益误差,导致幅值偏小,同时相位滞后会让输入电流和电压不再严格同相,功率因数下降。这是PI控制器固有的局限,不是参数没调好。

PR控制器就是为解决这个问题出现的。它的核心是给控制器传递函数里加入一个谐振项,形式上是分母带有一个基波频率对应的复极点,在50Hz处的增益近似无穷大。这样一来,对50Hz正弦参考信号,电流环同样能做到“零稳态误差”跟踪。谐振项的增益和带宽还可以独立调节,既不影响高频抗干扰能力,又能精确选中基波频率。

表格对比一下更直观:

对比维度PI控制器PR控制器
控制对象直流/缓变信号交流/正弦信号
稳态误差对正弦交流存在对设定频率正弦为零
相位滞后明显谐振点附近极小
实现复杂度简单略高,需离散化处理
适用场景电压外环、直流母线电流内环、并网电流

1.3 双环配置里容易被忽略的细节

外环输出是内环的电流参考幅值。一个特别容易忽略的细节是:电压外环PI的输出需要加限幅,否则启动瞬间电容充电电流会特别大,电流内环就算有PR控制器也追不上一个超大参考值,最终导致电流尖峰甚至过流。

电流参考本身不能直接拿外环输出当瞬时值。因为单相PWM整流器需要网侧电流和电网电压同相,所以电流参考应该是“外环输出幅值 × 电网电压归一化波形”。这个波形一般由锁相环提供。锁相环需要准确跟踪电网电压相位,推荐用Simulink自带的PLL模块,省去自己搭同步坐标变换的麻烦。

电感电流的符号也很关键。整流器正常工作时,电流从电网流向直流侧,如果IGBT桥接反或者电流传感器方向接反,电流反馈就变成负反馈变正反馈,模型直接发散。这个坑我后面详细说。

2. Simulink模型搭建与参数整定全流程

2.1 主电路搭建要点

打开MATLAB Simulink,建议先搭主电路再搭控制部分,分模块做,别一次性堆在一张图里。

输入侧用交流电压源,设置为220Vrms、50Hz。为了模拟电网阻抗,在交流源和整流桥之间串联一个电感L和一个等效电阻R。这个电感既是滤波电感,也是PWM整流器的升压电感,没有它电流根本无法实现正弦跟踪。Simulink里面直接用一个“串联RLC支路”加上一个电压测量模块就行。

整流主电路我推荐用Universal Bridge模块,桥臂数选1,选择IGBT/Diode,这样既保留了开关管的导通特性,也带有反并联二极管续流路径。直流侧接一个电解电容和电阻负载并联,电容大小直接影响直流电压纹波,负载电阻决定稳态功率。

仿真环境设置要特别注意:PWM整流器是强非线性系统,建议使用离散仿真模式,在Powergui模块里选择discrete,采样时间设一个固定值,比如1e-6秒,开关频率10kHz。如果用连续变步长解算器,Universal Bridge的功率电子开关会导致仿真速度极慢,而且波形上还会出现开关毛刺叠加,很难看清真实趋势。

2.2 控制环路与SPWM调制实现

控制部分分成四个功能块:锁相环、电压外环、电流内环、SPWM生成。

锁相环获得电网电压相位θ和归一化正弦信号。我这里用Simscape Electrical自带的PLL模块,也可以自己搭一个简化过零检测,但从抗谐波干扰和动态性能角度看,自带PLL更稳。输出一个sin(θ)信号,作为电流参考的相位基准。

电压外环取直流电压反馈减去直流电压参考,进入一个离散PI控制器,输出经过限幅后得到电流参考幅值Im。这个Im乘以锁相环输出的sin(θ),再加上一个很小的相位修正或电流前馈,就得到内环的电流参考Iref。

电流内环取电感电流反馈,减去Iref,误差进入PR控制器。PR控制器的输出本质上就是一个调制电压指令,加上电网电压前馈(也就是把电网电压的瞬时值加到输出上),就能得到桥臂交流侧应该输出的PWM电压参考。为什么要加电网电压前馈?因为PR控制器只负责消除电流误差,但电感上还有电网电压这个“外部扰动”,不加前馈时控制器要花更大的增益去抵消电网电压,瞬态性能会变差。加了前馈之后,控制器只处理误差部分,响应更快,波形也更干净。

SPWM生成部分,将PR输出与前馈叠加后的调制波信号,和三角载波比较。载波频率为10kHz,幅值范围要和调制波对应调好。我习惯把调制波信号限制在±1,三角载波也设置在±1,然后比较输出一个双极性PWM波形,再经过逻辑取反生成互补信号,接入Universal Bridge的上下桥臂。

为什么选双极性SPWM而不是单极性?在单相全桥里,单极性SPWM需要两组独立载波或复杂的逻辑,谐波虽然更优,但实现和调参对新手而言太容易出错。双极性SPWM用同一载波和调制波比较,直接生成导通逻辑,简单可靠,仿真结果也已经能满足大多数研究需求。实验样机里更多人用单极性或混合调制来降低开关损耗,但那是后话,仿真阶段先落地最重要。

2.3 参数计算实例

这一节给出一套可以直接复现的参数设计过程。设计指标:输入交流220Vrms/50Hz,输出直流电压400V,额定功率2kW,开关频率10kHz。

电感取值要兼顾电流纹波和跟踪速度。电感太小,电流纹波大,谐波含量高;电感太大,电流跟踪又慢,动态性能差。工程经验公式是令电感上的基波压降在额定工况下为输入电压的10%左右。额定电流约为2000W / 220V ≈ 9.1A,考虑峰值电流12.9A,电感基波阻抗取输入电压的10%除以额定电流:Z = 0.1 × 220 / 9.1 ≈ 2.42Ω,对应电感L = 2.42 / (2π×50) ≈ 7.7mH。实际仿真中考虑开关纹波抑制,取5到7mH都能跑,我这里取5mH。

直流电容设计主要看电压纹波指标。假设允许纹波5%,即20V,100Hz功率脉动为P=2000W,单相电容需要的容量约为C = P / (2×ω×Ud×ΔU) 代入ω=2π×50,Ud=400V,ΔU=20V,得到C = 2000 / (2×314×400×20) ≈ 398μF。考虑启动冲击和负载突变,取2200μF是安全的,纹波也会更小。

控制参数可以按带宽法整定。电压外环要求响应慢一些,避免二倍频脉动传到电流环,取穿越频率ωcv = 20rad/s。忽略电容ESR,把电压环对象近似为积分环节,PI参数可以取:

% 参数计算脚本(单位:SI) L = 5e-3; % 滤波电感 H R = 0.1; % 电感等效电阻 Ohm Ud = 400; % 直流电压 V Um = 220*sqrt(2); % 交流电压幅值 V P = 2000; % 额定功率 W Irated = P/Ud; % 直流侧电流 A % 电流内环PR参数 w0 = 2*pi*50; % 基波角频率 wc = 3000; % 电流环穿越频率 rad/s(约为开关频率的1/20) Kp_i = wc*L; % 6 --> 15 Kr_i = 200; % 谐振增益,影响稳态跟踪速度 % 若用理想 2nd resonant: G_PR = Kp + Kr*2*wc*s/(s^2 + 2*wc*s + w0^2) % 这里简化为离散谐振器的形式在Simulink中实现 % 电压外环PI wcv = 20; % 电压环穿越频率 rad/s,低于100Hz纹波频率 C = 2200e-6; % 直流电容 F Kp_v = C*wcv/4; % 4.4 左右 Ki_v = Kp_v*wcv/4; % 220 左右,实际按仿真微调

这个脚本不是唯一答案,但能给出一个合理起点。PR控制器在Simulink里推荐用二阶谐振传递函数实现,而不是简化的Kp+积分谐振。离散化时记得用Tustin法做一个预畸变,保证50Hz处增益和相位都准确。没有预畸变的话,谐振点会偏移,仿真里看到的电流误差就是那个偏移导致的。

3. 仿真结果分析与波形解读

3.1 稳态性能:电流正弦度与功率因数

把仿真跑起来,稳定后在Scope里同时看电网电压、电感电流、直流电压三路波形。正常状态下,电感电流应该是一个平滑的正弦波,峰值稳定在12A左右,与电网电压同相位。如果电流波头有削平或者毛刺,说明调制波饱和或者载波频率不够高。

看电流波形的THD时,建议用Powergui的FFT分析工具,取电流信号做频谱,重点看基波50Hz以及3、5、7次谐波含量。PWM整流器在PR控制下,3次和5次谐波应该有明显抑制,THD一般能压在3%以下。如果THD偏高,优先怀疑两个点:一是电流采样噪声,二是PR控制器的谐振带宽过大,导致周围频率的干扰也被放大。

直流电压稳态时应稳定在400V附近,纹波幅值约2到5V,对应1%左右。如果纹波太大,先看电容是不是太小;电容没问题,再看电压外环的带宽是不是过高。外环带宽一旦超过100Hz,会把直流纹波传进电流参考,导致输入电流出现明显的三次谐波杂波。

3.2 动态响应:突加负载和电压跳变

稳态没问题之后,要测试动态性能。我习惯在0.3秒时候把负载电阻从80Ω突变到40Ω,等效功率从2kW跳到4kW。观察直流电压的跌落深度和恢复时间,以及电流参考幅值的爬升过程。

负载突加瞬间,直流电容开始放电,电压会暂时跌落,跌落深度由外环响应速度决定。好的参数下,电压跌落在10到20V以内,恢复时间约50到100ms。如果电压跌落太深,说明电压外环的带宽太小,适当增大Kp_v;如果恢复过程中出现振荡,说明相位裕度不够,需要降低积分增益或者给电压反馈加一阶低通滤波。

动态响应里另一个典型测试是直流电压参考从400V跳到450V。这种情况下电流内环应该立刻增大充电电流,电容快速充电,电压平滑上升,没有超调尖峰。如果看到电流波形在过渡过程中出现过冲甚至反向,说明内环参数跟不上外环指令的变化,需要适当提高PR控制器的Kp。

3.3 PR与PI在电流环上的实际表现对比

我做了好几轮对照仿真,把电流内环换成传统PI控制器,其他参数完全不变,差异非常直观。

PI控制时,电流波形在基波频率下存在2到3A的稳态幅值误差,相位也滞后大约10到15度。这直接导致输入电流和电压不同相,功率因数掉到0.96左右。看起来数值还能接受,但电流波形在正弦峰附近有明显失真,谐波含量偏高。把PI的Kp调大能缩短相位滞后,但增益太大后电流环出现振荡,稳定性变差。这就是PI在交流量控制上的死穴:增益和相位性能互相拉扯。

而PR控制下,电流波形和参考波形几乎完全重合,相位误差肉眼很难看出来,功率因数能到0.999以上。这也是我在最终模型里保留PR作为电流内环的核心原因。

4. 调参实战:常见异常波形与排查技巧

4.1 电流发散或大幅振荡

这是仿真中遇到最多的问题,现象是电流波形在几毫秒内冲到几百安甚至几千安,然后系统直接报错或波形上天。

排查顺序如下:第一,检查电流反馈方向。电感电流采样模块的测量方向如果接反,负反馈就变正反馈,必然发散。在模型里给电流信号加一个简单的增益-1测试,如果波形从发散变成正常,说明就是这个原因。第二,检查PR控制器的离散化方式。如果谐振项离散得不准确,谐振频率偏移,控制器在50Hz处不仅不提供增益,反而引入相位突变,系统很容易振荡。建议直接用Tustin带预畸变,不要用普通ZOH。第三,检查Kp_i是否过大。电流环穿越频率不应该超过开关频率的1/10,也就是10kHz开关频率下,Kp_i算出来的穿越频率尽量低于1000Hz,否则数字控制延迟会导致相位余量不足。

4.2 直流输出电压二倍频纹波过大

这个问题在单相整流器里尤其常见,也最让人头疼。

我一开始用2200μF电容,100Hz纹波大约3V,还算能接受。但如果负载功率再往上加,纹波会线性变大。想要进一步抑制,两个方向:一是增加直流电容,但成本太高;二是在电压外环的反馈路径上加一个100Hz陷波器,把二倍频分量滤掉,避免它通过电压PI进入电流参考。我这里采用后者,在Simulink里用一个二阶带阻滤波器,中心频率100Hz,品质因数Q取1到2。注意陷波器会给电压反馈增加相位延迟,影响外环动态,所以带宽不能太宽,能压住纹波就行。

4.3 SPWM驱动异常,开关管不动作

如果仿真波形完全静止,或者直流电压起不来,大概率是PWM驱动信号没有正确送到开关管。

排查要点是检查Universal Bridge的门极信号格式。如果使用IGBT/Diode组合,门极输入需要是两个独立的标量信号,上桥臂和下桥臂互补,而不是单个PWM。很多新手直接把SPWM信号接到桥臂的“g”端子上,但看到的结果就是不起振。我的做法是用一个NOT逻辑或比较器生成互补信号,再分别接入上下桥臂的G端子。另外还要检查载波频率和仿真步长:开关频率10kHz,仿真步长如果设置成1e-4秒,每个开关周期只有10个仿真点,PWM精度严重不足,波形肯定乱七八糟。把步长压到1e-6秒,才能看到干净的调制过程。

4.4 常见问题速查表

异常现象可能原因解决操作
电流发散反馈方向错误、Kp过大、PLL相位跳变检查符号、降低Kp、PLL加滤波
直流电压纹波大电容偏小、外环带宽过高加大电容、加100Hz陷波器
输入电流谐波偏高PR谐振带宽过大、采样噪声收缩Kr带宽、加低通滤波
PWM不起振门极信号未互补、仿真步长过大确认门极接线、缩小步长
启动电流冲击外环输出未限幅给电流参考幅值加饱和限幅

5. 我个人在实际操作中的几点体会

这套模型我前前后后迭代了很多个版本,最想给读者的一句建议是:搭建顺序一定要从开环开始验证。先把SPWM调制、主电路和门极逻辑搭好,不接任何闭环,给调制波硬塞一个开环正弦指令,确认交流侧能产生正弦电流、直流电压能升到预期值,再接入PI、PR闭环。很多人一上来就闭环,一旦出问题,根本分不清是主电路搭错了还是控制器调错了,排查成本高得离谱。

另外一个体会是PR控制器的参数整定不要追求“一步到位”。先拿一个很小的Kr值跑通,确认系统稳定,再逐步加大Kr提高跟踪精度。Kp也一样,从0.1倍计算值起步,观察波形稳定后再往上加。调参过程中每次只动一个变量,纪录波形变化,这是最笨也是最有效的方法。

最后再分享一个小技巧:仿真结果的分析不要只盯Scope图形,尽量用Powergui里的Measurement和FFT工具,把电压电流的幅值、相位、THD、功率因数这些量化指标导出来看。图形只能让你知道“行不行”,数据才能让你知道“为什么行”。有了量化指标做对比,后续做参数优化、写报告、做毕业设计答辩都会踏实很多。这套PR与PI双环控制加SPWM调制的单相PWM整流器模型,按我前面说的方法搭建和调参,基本都能跑出满意的波形。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询