☰
三相并网逆变器PQ控制Simulink仿真:从建模到调试全流程
2026/10/19 14:46:14 网站建设 项目流程

做三相并网逆变器的PQ控制仿真,是我这几年接触新能源并网课题时反复打磨的基础内容。PQ有功无功双闭环加上PLL锁相环,这套结构在光伏并网、储能变流器甚至风电变流器里都是通用的底层框架,Simulink里搭一套能跑、能调、能出波形的模型,比只看理论公式要扎实得多。这篇内容我尽量把从建模到调试的完整过程讲清楚,适合刚接触并网逆变器仿真的同学,也适合想把手头工程模型调得更稳的工程师。

1. 这个仿真到底在做什么

1.1 三相并网逆变器仿真:先搞清楚你搭的是什么

仿真对象说白了就是一台三相桥式逆变器,直流侧接一个模拟直流源(比如光伏电池特性或者储能电池端电压),交流侧通过滤波电感或者LCL滤波器并联到三相电网上。控制目标非常明确:让逆变器按照你给定的有功功率和无功功率向外输送电能,同时保证并网电流满足谐波要求、功率因数可控、动态响应稳定。

很多初学者一上来就堆了一大堆模块,结果调完参数发现电流乱飞、PLL锁不住相,根本原因就是没有把被控对象的模型边界搞清楚。三相并网逆变器本质上是一个强耦合、非线性、带有外部扰动(电网电压)的被控系统。电网电压在你控制不起作用的时候它就在那儿,你控制的目标其实是“通过改变逆变器输出电压的幅值和相位,控制流过耦合电感的电流”,从而间接控制功率。这个因果链条想清楚了,后面搭模型就会顺很多。

仿真相比硬件实验最大的优势是可以反复改参数、看波形、加故障,而且不需要担心炸管子。但这不代表可以乱来,仿真模型本身也有假设边界:器件用理想开关还是带导通压降、电网用无穷大电源还是带阻抗、控制周期比实际DSP快还是慢,这些都会影响仿真结果和实际硬件之间的差异。

1.2 PQ控制、双闭环、PLL是怎么配合的

PQ控制的核心思想很直观:把三相交流量通过Park变换放到dq旋转坐标系下,这时候有功功率P主要由d轴电流决定,无功功率Q主要由q轴电流决定。如果能精确锁住电网电压矢量的相位,P和Q就能近似解耦控制,你会得到一个非常清爽的控制结构。

双闭环指的是功率外环加电流内环。外环负责算参考电流,把你要的P_ref、Q_ref换算成id_ref、iq_ref;内环负责快速跟踪参考电流,把电流误差转换成电压指令,再通过PWM生成驱动信号。内环的带宽要比外环高很多,这样内外环才能解耦,不然两个环抢带宽,系统容易出现振荡。

PLL在这套结构里的角色经常被低估。dq变换最核心的输入就是那个旋转角度θ,如果θ不准,整个坐标系都是歪的。PLL的任务就是从电网电压里实时提取相位信息,让d轴和电网电压矢量对齐。PLL锁得准不准、抗扰能力强不强,直接决定了电流波形质量,很多PQ控制的奇怪问题,最后排查下来都是PLL的锅。

三层配合起来就是:PLL提供坐标基准,功率外环给出电流指令,电流内环完成快速跟踪,三者缺一不可。

1.3 整套系统的模型分块

我在Simulink里一般把模型分成五块:主电路、测量与坐标变换、PLL、控制器、PWM驱动。分块不只是为了好看,而是调试的时候能单独看每一路信号。举个例子,排查电流畸变的时候,你先看PLL输出的θ稳不稳定,再看坐标变换之后的id、iq是不是直的,再看PI输出有没有振荡,最后再看PWM调制波和载波有没有问题。一条链路查下去,很快就能定位问题出在哪一层。

分块的另外一个好处是方便移植到实时仿真平台或者生成嵌入式代码。理论上这套结构在PLECS、RTDS里都能搭,Simulink的好处是调试方便、资料多、搭起来快。后面我会把这五个模块的搭建过程一个个说明。

2. 关键控制原理:为什么这么设计

2.1 PQ控制的数学依据

要理解PQ控制,必须把dq变换下面的功率公式写出来看。在等幅值Park变换下,d轴和q轴电压电流和功率的关系是:

P = 1.5 × (vd×id + vq×iq)

Q = 1.5 × (vq×id − vd×iq)

如果PLL把d轴对齐到电网电压矢量上,那么理论上vq = 0,上述两个式子瞬间简化成:

P = 1.5 × vd × id

Q = −1.5 × vd × iq

这时候控制就变得非常舒服:你控制id就能控制有功,控制iq就能控制无功,两个通道完全解耦。这也是为什么PLL的锁相精度那么关键,如果θ有偏差,vq不为零,功率通道之间就会出现交叉耦合,你调有功的时候无功跟着跳。

注意我这里用的是等幅值变换,很多人一不留神用了等功率变换,系数就会变成3/2和3倍的关系,导致功率环PI参数差了一个系数,仿真波形上不太容易发现,但是硬件上电流指令就全偏了。建议在模型里把变换系数做成一个常量,功率计算模块和电流环PI全用它,保持一致。

2.2 双闭环结构的内外分工

可能有人会问,既然要控制功率,直接用功率环输出直接作为调制波不就行了,为什么非要加一层电流内环?我在实际调试中给出的答案是:电流内环承担了最核心的动态特性和保护职能。

功率环的带宽一般做得很低,响应速度按几十到一百赫兹来设计,它本质上是“慢变量”的指挥官。而电流环带宽能到几百赫兹甚至上千赫兹,它能迅速抑制电网扰动、滤波电感参数误差和PWM死区带来的电流畸变。更关键的是,电流环给你提供了一个天然的过流保护入口:直接在Simulink里对id_ref和iq_ref做限幅,或者对电流误差做钳位,硬件上对应就是限流保护逻辑。如果单环控制,功率误差大时候电流已经冲得很高了,限幅逻辑完全来不及。

内环设计的时候还有一对相互制约的量:dq轴之间有交叉耦合项ωL×iq和ωL×id,如果不处理,两个轴会互相串扰。工程上常见的做法是加解耦前馈项,在电流环PI输出电压指令的时候补偿掉耦合:

vd_ref = vd_pi − ω×L×iq + vd_grid

vq_ref = vq_pi + ω×L×id + vq_grid

这里的vd_grid、vq_grid就是电网电压前馈,作用是让电流环不用费力去对抗电网电压扰动,静态误差会更小。加上解耦和前馈之后,d轴和q轴通道就变成两个相对独立的单入单出系统,可以分别整定PI参数。

2.3 为什么PLL的相位对齐那么重要

PLL的原理说起来不复杂:三相电压先做Clark变换变成αβ静止坐标,再做Park变换变成dq坐标,用PI控制器调节q轴电压让它归零,PI的输出作为电网角频率的修正量,再积分得到角度θ。如果q轴电压稳定为零,说明当前dq坐标系的d轴正好对准了电网电压矢量。

我实际调试中发现PLL最容易出问题的不是稳态,而是初始条件和动态过程。仿真开始的时候θ初始值如果和电网电压相位对不上,前面几个周期id、iq会有很大的振荡;如果电网发生跌落或者有谐波,PLL的响应又过慢,会导致坐标系旋转角度滞后,电流波形跟着变形。

PLL参数整定一般按照二阶系统来:阻尼比取0.707左右,自然角频率根据动态响应需求取50~200rad/s。电网是50Hz,也就是314rad/s,如果你把PLL带宽设计到200rad/s,它能比较快地跟上相位变化,同时还能滤掉一部分电网谐波对相位提取的影响。带宽太高则锁出来的角度噪声大,太低则动态跟不上,两者权衡需要根据电网环境调整。

3. Simulink建模全流程:一步步把系统搭出来

3.1 主电路部分:电网、滤波器、逆变桥、直流侧

Simulink里搭主电路我有固定的套路,不搞花哨。电网侧用Three-Phase Source模块,三相线电压设成380V、50Hz,这是国内低压并网很常见的参数。滤波器我用LCL结构居多,因为实际并网逆变器基本都要求用LCL滤波才能把高次谐波压下去,比单纯一个L电感效果好。

我常用的一组LCL参数是:逆变器侧电感L1取2mH,网侧电感L2取1mH,滤波电容Cf取10uF,阻尼电阻Rd取5欧姆左右。这组参数下谐振频率可以算一下:f_res ≈ 1/(2π×sqrt(L_eq×Cf)),其中L_eq是L1和L2串联等效约3mH,算下来大约919Hz。这非常关键:谐振频率必须远高于基频50Hz,又要远低于开关频率的一半,保证不会激发出可见的谐振尖峰。10kHz的开关频率下,919Hz落在合理区间,实际仿真和硬件验证都算稳定。

逆变桥我用Universal Bridge模块,选三个桥臂的IGBT/Diodes组合。直流侧用DC Voltage Source设到700V,这是三相380V并网很典型的选择,能确保逆变器输出足够的电压幅值,留有调制裕度。直流电压不足会出现过调制,电流波形就开始出现削顶畸变,这个现象很多初学者的模型里都能看到。

3.2 控制部分:坐标变换、功率计算、PI控制器和限幅

坐标变换模块我一般不用Simulink自带的abc_to_dq0 Transformation模块也可以,但更推荐自己搭一个复用函数封装,因为可以清楚控制变换矩阵和初值。等幅值Park变换矩阵需要在模型里明确写出来,同时把θ输入给sin和cos函数模块。注意这里θ必须用PLL的输出,不能自己定个固定角度,否则模型跑起来你会看到功率算出来忽大忽小,其实就是dq变换坐标系和实际电网相位没有同步。

功率计算模块比较直接,用vd、vq和id、iq按照公式做乘法和增益1.5就行。算出来的P和Q送到外环PI,和P_ref、Q_ref比较。外环PI输出就是id_ref和iq_ref,这里一定要加限幅。我在模型里通常把id_ref限幅在±50A,iq_ref限幅在±30A,这个限幅值本质上决定逆变器的最大视在功率,要结合直流电压和交流额定电流来选,不能拍脑袋。

电流内环PI输出加上解耦项和电网电压前馈之后,得到的是dq轴电压指令。反变换回αβ之后,送到PWM调制模块。整个控制链路里PI控制器我建议选择带积分限幅和抗饱和功能的版本,Simulink的PID Controller模块有这些选项,实际调试中非常有用。

3.3 参数怎么整定:从带宽出发反推

参数整定是我觉得最值得分享的部分。很多人拿到模型第一件事就是瞎试参数,结果越试越乱。正确做法是从你期望的带宽出发,反推PI参数。

先整定电流内环。把经过解耦后的电流环看成一阶惯性系统,模型简化后传递函数近似为1/(L×s+R)。如果期望电流环闭环带宽是α_c,那么:

Kp_c = α_c × L

Ki_c = α_c × R

比如L取3mH、R取0.1Ω、期望电流环带宽α_c取1000rad/s(约160Hz),得到Kp_c = 3,Ki_c = 100。这个结果是近似值,Simulink里面基本直接用,再微调就行。

功率外环带宽一般取电流环的1/10左右,也就是100rad/s。外环PI参数可以根据同样的思路估算:功率换算成电流的系数是1.5×vd,当vd约311V时,系数约466。于是外环Kp可取带宽/系数约0.21,Ki可取带宽×Kp约21。实际调试时我一般从这组值开始,再根据动态波形微调。整定顺序必须是先内环后外环,这个顺序不能反过来。

PLL参数前面提过按二阶系统来整定。我常用的一组是Kp_pll = 0.14,Ki_pll = 10,阻尼比约0.707,自然频率约100rad/s,在普通电网环境下锁相速度和噪声抑制折中得不错。

整定的时候我习惯把这些参数算好了再进模型改,并且记录每一组参数对应的波形表现,这样反复调几次之后你会得到手感。

3.4 连续仿真还是离散仿真:步长设置与采样环节

很多人在Simulink里直接跑连续仿真,PI控制器用连续模块,PWM用连续比较器,结果跑起来特别慢,而且后面想移植到DSP的时候完全对不上。我的建议是:从一开始就做离散化控制,模拟真实DSP的工作方式。

具体做法是控制部分用一个采样保持模块统一采集,采样周期设定为1e-4秒,也就是10kHz。PWM载波频率也设成10kHz,这样控制频率和PWM频率一致,最接近实际硬件。Simulink里把PI控制器设为离散形式,积分方式选Forward Euler或者Tustin都可以,仿真求解器我用离散求解器Fixed-step,步长设成1e-6秒。这个步长比采样周期小很多,是为了在PWM比较瞬间有足够的分辨率,波形毛刺会少很多。

一个很重要但容易被忽略的环节是,PWM生成模块里载波和调制波的比较结果输出的是0和1的逻辑信号,用于驱动Universal Bridge的开关信号时要注意上下桥臂的互补和死区设置。Simulink里Universal Bridge本身就支持外部死区时间配置,我一般设一个2us死区,不然直流侧上下桥臂共通漏电,波形上会出现奇怪的尖刺。

3.5 波形验证与动态性能测试

模型搭好之后,第一件事不是直接带功率运行,而是先看空载或很小的功率下,PLL输出和电流波形对不对。我习惯的做法是让P_ref从0逐步爬升到比如20kW,Q_ref先设0,观察电流波形是不是正弦、功率是不是稳定跟踪参考值。

稳态波形主要看三个指标:三相并网电流有没有畸变,频谱上低次谐波占比是否合理,功率波形是不是平坦。因为仿真模型里没有太多非理想因素,如果仿真波形就有畸变,那基本就是控制参数或者PWM调制环节出了问题,别急着怀疑电网污染。

动态测试我会做两个典型的阶跃试验:一个是有功功率从20kW阶跃到40kW,观察功率环响应速度和超调,电流有没有冲击;另一个是无功功率从0阶跃到10kVar,观察功率因数变化和电压支撑效果。这两个测试做下来,你的控制参数动态特性基本就有谱了。

这里面有一个我反复踩过的坑:一开始模型运行时,千万不要把P_ref一步到位设成额定功率。因为初始时刻直流侧电容没有充电、PLL角度还没对准,控制系统有一个收敛过程,如果一开始就要全功率,电流会在第一个周期冲到几倍额定值,模型虽然不炸,但是波形惨不忍睹,还会误导你对参数好坏判断。我在模型里加一个阶跃时间开关,让P_ref在0.05秒左右才从零开始爬坡,这让整个启动过程自然很多。

4. 实操过程与核心细节

4.1 建立模型前先列好参数清单

我见过不少同学上来就开Simulink,搭到一半发现参数全都卡在某个模块里出不来。我的建议是先把参数表列出来,放到模型Description里或者单独存一个参数脚本。下面这组参数是我最常用的一套基础配置,可以直接抄去用,注意单位统一成国际单位:

参数名数值说明
电网线电压380V50Hz三相
直流电压Vdc700V直流母线模拟
L12mH逆变器侧电感
L21mH电网侧电感
Cf10uFLCL电容
Rd5Ω无源阻尼电阻
开关频率10kHzPWM载波和控制频率
电流环带宽1000rad/s内环整定目标
功率环带宽100rad/s外环整定目标
P_ref额定20kW有功参考
Q_ref额定0kVar无功参考
电流环Kp3按带宽反推
电流环Ki100按电阻时间常数
功率环Kp0.2按系数换算
功率环Ki20按带宽反推
PLL Kp0.14阻尼比0.707
PLL Ki10自然频率约100rad/s
死区时间2us防上下管共通

这组参数对应的是中等功率等级的一个仿真案例,不同直流电压、不同滤波参数下的PI参数会差出好几倍,不能直接套,但整套推算方法是一样的。

4.2 控制模块连接顺序与信号路由

在Simulink里搭控制部分我习惯从后往前连:先画PWM调制部分需要的αβ电压指令,再画电流环得到这个指令,再画功率环给出电流参考,最后连上测量信号。这样每一级输入输出清晰,排查信号流容易。

具体来说,θ从PLL出来之后一路分给两组变换:一组用于电网电压的dq变换(得到vd、vq给功率计算和前馈),一组用于并网电流的dq变换(得到id、iq给电流环反馈)。这两组变换用的θ是同一个,但是需要注意初始相位对齐问题。很多模型的病根就在这里:电网电压变换和电流变换的θ没有完全同步,差了一个相位偏移,功率计算和电流解耦就全错了。可以创建一个“θ_sync”信号,保证所有dq变换用的是同一个来源。

信号线上建议加Goto/From标签,模型层级多了以后信号线密密麻麻根本看不清。尤其是θ、id、iq、vd、vq这几个核心信号,加上标签后整个模型的思维负担会小很多。

4.3 两个实用的初始化技巧

第一个技巧是设置状态初值。PI控制器积分器的初始值、PLL的θ初始值尽量设成合理的值,比如PLL的θ初值设成0即可,但这要求仿真开始时电网电压相位恰好从0度过零。为了让模型有可重复性,我通常把电网电源模块的相位源设为0度,这样一开跑PLL就能很快锁定,避免起始阶段θ乱跳。

第二个技巧是使用预充电逻辑。仿真开始的前几十毫秒,我会把P_ref设成0,先让直流电压建立、PLL锁定、滤波器电流建立稳定,然后再投入功率输出。这个逻辑可以用一个简单的Step时间开关实现。虽然真实逆变器有预充电控制,仿真里你用这个技巧能更好地区分启动过程和本体性能,波形看起来整齐得多。

5. 常见问题与排查技巧实录

5.1 PLL锁不住相怎么办

PLL锁不住相的表现是变换到dq坐标系下的vd、vq上下乱跳,θ对时间做输出不是一条平滑的斜坡,而是反复波动。排查顺序是这样:先看αβ电压有没有三相平衡,电网电压源本身需不需要设成平衡的要确认一下;然后看PLL输入三相电压的排列顺序,ABC三相如果接错一相,PLL特定情况下也能锁住,但dq轴会跟着偏移120°或240°,功率计算全乱;最后调PLL参数,把Kp、Ki按我前面给的方向调,效果不明显就检查一下PI输出有没有限幅。

我在某个逆变器模型里还碰到过θ每零点几秒跳一个周期的现象,后来发现是PLL积分器初值和仿真步长不匹配导致的数值问题。解决办法是把PLL积分器初值显式设成0,步长降细一行,问题就消失了。

5.2 电流波形畸变大

电流波形如果正弦度不好,先看一眼是不是没有加LCL阻尼电阻。LCL本身在谐振频率附近有很高的增益尖峰,没有阻尼电阻或者没有做有源阻尼的话,谐振频率附近的谐波会被放大得特别明显,电流波形上就会出现周期性纹波甚至“毛边”。加上Rd之后谐振尖峰会被压低很多,波形立刻变干净。

如果加了阻尼还是畸变,就看PWM调制波:直流电压利用情况检查一下,如果调制比接近甚至超过1,说明直流电压偏低,逆变器进入了过调制区,电流削顶畸变就不可避免。处理方法要么提高直流电压,要么降低最大功率或降低交流输出电压幅值,总之要留出调制裕度。

还有一种不大容易定位的情况是电流采样延迟。离散控制里,电流采样和PWM更新的时序如果不匹配,或者采样周期设置太大,会造成电流环环路延迟过大,表现为在特定频率上出现振荡。这类问题在纯连续仿真里看不见,必须按离散控制模型来复现。

5.3 启动冲击电流过大,模型看起来像是要炸

这个问题几乎每个做并网仿真的人都会遇到。原因多为启动瞬间P_ref直接设满了、PLL还没锁上、直流电容初始电压为零等。启动冲击的处理方法说过了:要么用斜坡给定的P_ref,要么加预充电阶段,要么两样都加。硬件上同样如此,所以仿真里你越大意,后面做硬件就越容易吃亏。

5.4 仿真速度慢到怀疑人生

如果你的仿真跑了好几十分钟才走完0.2秒,多半是用了变步长连续求解器,而且把电力电子器件建模得特别精细。我自己常用的方案是:电力电子开关器件选用平均模型或者理想器件,不要开热损耗细节;控制部分用离散化模型;整体求解器用固定步长离散求解器,步长1e-6到5e-6秒。这样相同的仿真时间,速度能提升好几倍,而且控制层波形几乎不损失精度。

值得注意的是,如果接了示波器Scope,记录波形太密也会拖慢仿真。尽量用To Workspace只记录关键信号,或者后期简化Scope的采样率,仿真效率会明显改善。

5.5 常见问题速查

现象可能原因排查方向
电流严重畸变且带毛刺LCL谐振无阻尼检查Rd阻尼电阻或有源阻尼
功率无法跟踪参考dq变换系数/相位错检查变换矩阵系数和θ同步
d轴q轴功率互相干扰vq不为零、PLL相位偏移检查PLL锁相偏差和解耦项
启动电流巨大参考功率给太快使用斜坡给定或预充电逻辑
高频振荡电流环带宽过高降低α_c,检查离散化延迟
PWM输出不正常载波频率和求解步长不匹配确认固定步长远小于载波周期
仿真卡死或发散代数环/状态初值不合理在关键回路加单位延时或设初值

最后提一个我自己的使用心得。这套PQ双闭环加PLL的模型搭起来以后,后续很多方向都能复用:改一下外环参考生成方式就能变成恒直流电压控制的并网变换器;把电流内环替换成模型预测控制就是一套MPC验证平台;甚至把电网换成带阻抗的弱电网模型,立刻就能做并网稳定性研究。建议你第一次搭的时候老老实实把每一级信号都认真看一遍,搭明白一套,后面各种课题方向都能省一半时间。

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

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

立即咨询