☰
Simulink电网不平衡下充电装置正负序分离控制策略仿真
2026/10/21 17:29:13 网站建设 项目流程

去年做并网充电装置仿真时,我把一个自认为很成熟的Simulink三相整流模型直接丢进电网电压不平衡工况,结果直流母线电压波形抖得像心电图的P波高尖,网侧电流也开始明显偏相。后来把正负序分离加进控制链路,问题才真正收住。如果你也想在Simulink里复现这套基于正负序分离的充电策略,这篇内容可以当一份操作笔记来用:从为什么必须做分离、分离模块怎么搭、控制环怎么连、参数怎么整,到调模型时踩过的几个坑,我都会按实际推进的顺序写出来。它适合对Simulink有基础操作、但对电力电子控制策略还不熟的人,也适合正在做并网或充电类仿真项目的同学拿来对照。

1. 电网不平衡下,充电装置到底在“扛”什么

1.1 三相不平衡的现场来源与典型场景

很多人做仿真习惯用理想三相电压源,幅值一致、相位严格相差120°,控制策略怎么跑都好看。但现场工况完全是另一回事。充电桩所在站点的低压母线往往同时挂着照明、空调、监控、光伏逆变器,表面上是三相系统,实际单相负载大量存在,某相电流天然就比其他相大。线路阻抗不对称、变压器绕组接线方式、甚至站内多台整流设备同时启动,都会让公共连接点的三相电压幅值不再相等、相位不再严格120°。

更常见的是电压暂降场景。比如某相发生接地故障,保护动作切除期间,剩余两相电压升高,故障相电压跌到正常值的30%到80%,之后系统恢复。对充电桩这种电力电子装置来说,恢复过程一旦处理不好,电容过压、过流保护动作、甚至直流母线损坏都有可能。还有分布式光伏以单相逆变器形式接入,局部反送功率会让某一相电压偏高。可以说,三相不平衡不是“偶发异常”,而是低压配网里的常态。

1.2 不平衡带来的三个层次危害

第一个层次是交流侧负序电流。三相PWM整流器在理想对称电网下工作,网侧电流三相平衡;一旦电压出现负序分量,如果不加抑制,整流器电流就会跟着不对称,某相电流峰值显著抬高,开关管电流应力不均,容易触发过流保护或烧毁器件。

第二个层次是直流侧二次纹波。电压负序分量与电流正序分量相互作用,会形成2倍工频的瞬时功率波动。50Hz系统就是100Hz的功率脉动,反映到直流母线就是100Hz电压纹波。这个纹波会加速电解电容老化,影响后级DCDC充电模块的稳定,电池端电流也会跟着出现低频脉动。持续的二次纹波还会让充电策略中的电压环“手忙脚乱”,严重时产生振荡。

第三个层次是锁相环的“视力模糊”。常规SRF-PLL锁相环的前提是三相电压对称,一旦不平衡,锁出的相位中会掺入2倍频振荡分量。控制器利用这个相位做坐标变换,正序dq轴电流里就会残留交流分量,负序dq轴分量也无法正确解耦。控制器的带宽再高,也压不住这种结构性的误差。

我当年调试时最先看到的表象就是直流母线纹波异常和电流偏相。当时没有直接往负序方向想,先调了好几天PI参数,加滤波器,效果都一般。后来才意识到,问题不在控制器的参数,而在控制器的“坐标系本身就不干净”。这也是为什么正负序分离不是可选项,而是必选项。

2. 正负序分离的“数学牌”怎么打

2.1 对称分量法:三序分解的基本逻辑

任何一组不对称的三相相量,都可以分解成正序、负序、零序三组对称相量。定义旋转因子 (a = e^{j120°} = -0.5 + j0.866),则三相电压的相序分量为:

[ \begin{bmatrix} \dot{U}{A1} \ \dot{U}{A2} \ \dot{U}_{A0} \end{bmatrix}

\frac{1}{3} \begin{bmatrix} 1 & a & a^2 \ 1 & a^2 & a \ 1 & 1 & 1 \end{bmatrix} \begin{bmatrix} \dot{U}_A \ \dot{U}_B \ \dot{U}_C \end{bmatrix} ]

正序分量的相序是A-B-C,负序分量的相序是A-C-B,零序分量三相同相位。对三相三线制系统来说,因为没有中性线提供零序通路,零序分量为零,所以只需要分离正序和负序两层就够了。这是简化问题的关键:不要一上来就对着三序公式犯怵,三相三线制系统只需要两路通道。

2.2 常用分离方法的横向对比

在Simulink里做正负序分离,常见的有四种路子,优缺点差异很大。做选型之前,先搞清楚自己的需求:是要快速验证控制策略,还是要贴近工程实现?是要应对谐波环境,还是只在纯工频下跑?

方法实现复杂度动态响应频率适应性适用场景
低通滤波法最低慢,有相位延迟差工频稳定、对动态无要求
T/4延时法低中等,有固定1/4周期延时对频率偏移敏感数字控制中常用,适合基波分离
SOGI正交信号法中等较快较好,可锁定中心频率工程实际首选,兼具滤波能力
DDSRF双同步坐标系高最快最好高性能控制,适合主控性能强的场合

低通滤波法最直观:把αβ静止坐标系下的电压分量通过低通滤波器提取基波,再经过延时重构正负序。但低通滤波器的相位延迟会让动态响应变差,控制环带宽稍微往上提就出问题。

T/4延时法利用正序和负序在αβ坐标系下旋转方向相反的特点,用当前值减去延时1/4周期的值,再乘以相应系数即可分离。这个方法在离散控制里非常好理解,也不难实现,但对频率偏差比较敏感:电网频率一旦偏离50Hz,延时对应的角度就不准,分离效果会打折。

SOGI,即二阶广义积分器,通过构造彼此正交的两个信号来提取指定频率分量。它不仅能把正负序分离出来,本身还是一个带通滤波器,能抑制谐波。我可以直接给出SOGI的传递函数:

[ H(s) = \frac{k \omega_0 s}{s^2 + k \omega_0 s + \omega_0^2}, \quad Q(s) = \frac{k \omega_0^2}{s^2 + k \omega_0 s + \omega_0^2} ]

其中 (\omega_0) 是基波角频率,(k) 决定带宽。(H(s)) 输出与输入同相,(Q(s)) 输出滞后90°,构成正交对。工程上常用 (k = \sqrt{2}) 附近,兼顾动态和滤波。

DDSRF方法则在两套同步旋转坐标系里分别锁正序和负序,再通过解耦网络消除2倍频振荡,动态性能最好,但结构复杂度最高,仿真模型容易出错。对刚接触这个领域的人来说,我不建议一上来就啃DDSRF。

2.3 我的选型结论与Simulink实现路径

很多人会纠结“到底用哪个方法才专业”。我的建议是分两步走:先在Simulink的Simscape/Electrical/Specialized Power Systems库中找到Three-Phase Sequence Analyzer模块,让它直接输出正序分量和负序分量,用这个搭建完整的充电策略控制模型,验证控制思路是否成立。这个模块自带FFT或相量分解能力,配置基频后就能输出三相正序、负序的幅值和相位,非常适合做策略验证。

等验证通过、确定控制逻辑没问题之后,再把分离部分替换成自己搭的SOGI模块。这样做的原因是:Three-Phase Sequence Analyzer适合离线仿真,但它依赖傅里叶分解,动态过程里的表现并不完全等同工程实现;SOGI模块虽然搭建起来多花半小时,但可以直接对应到嵌入式代码里,后边做代码生成或者硬件在环测试时不会推倒重来。我实际推进时的顺序就是“先验证策略逻辑,再替换分离算法”,整体上最省时间。

3. 从零搭模型:主电路、分离、坐标变换一条龙

3.1 模型整体架构

在Simulink里搭这套系统,我的习惯是把模型分成三块区域,用颜色或注释框区分开:主电路区(三相电源、整流桥、直流电容、负载)、测量与控制区(电压电流采样、正负序分离、坐标变换、PI调节)、调制与脉冲区(SVPWM或PWM生成、脉冲分配)。

主电路用Simscape电气模块还是用普通Simulink模块,取决于你要不要看得见细节。用Simscape/SimPowerSystems库里的Universal Bridge整流器模型,可以把IGBT的通断、反并二极管、导通损耗都体现出来,仿真结果更真实。但模型求解速度会慢一些,调试时可以先从理想开关模型开始,跑通后再换成带损耗的详细模型。

负载端建议用受控电流源来模拟恒功率充电行为,电流参考值等于给定功率除以直流母线电压。这里不要直接用固定电阻,因为电池充电本质上是恒功率负载,电阻负载会让母线电压的响应趋势完全不同,控制参数整出来到现场也用不上。

3.2 怎么在Simulink里构造“会呼吸”的不平衡电网

不平衡电网建模是很多人忽略的第一步,以为随便把三相电压源参数改一改就完事了。实际上要精确控制不平衡度,最好用三个独立的单相AC Voltage Source来搭。

以我经常用的一组参数为例:目标相电压幅值分别设为311V、270V、295V,相位分别设置为 (0°)、(-120°)、(120°)。这就对应A相正常、B相跌落约13%、C相跌落约5%的典型电压暂降工况。三个单相源串联成星形连接,中性点接地或不接地取决于你要不要分析零序——三相三线制系统里通常中性点不接地,这也有助于把零序分量排除在外。

用Three-Phase Source统一模块也可以做,通过Customize harmonic parameters或直接改幅值向量实现。但我仍然推荐单相源叠加的方式,逻辑最清楚,修改哪一相直接改那个模块的幅值即可。调试时把B相幅值设成变量,就能扫出不同不平衡度下控制策略的表现。

3.3 正负序分离模块的搭建方式

用Simulink自带模块时,把三相电压接到Three-Phase Sequence Analyzer的输入端,在“Sequence”选项里勾选Positive和Negative,基频设置50Hz。它的输出是复数形式,需要在后续用Complex to Magnitude-Angle或者Real-Imag to Complex模块拆出实部虚部,再接入坐标变换。我一开始没注意复数输出格式,直接拿幅值当瞬时值用,结果预警了好几天的波形错乱,这里提醒一句:注意模块库里信号的数据类型和物理含义。

用SOGI自己搭分离模块时,先把三相电压经过Clarke变换到αβ静止坐标系:

[ \begin{cases} v_\alpha = \frac{2}{3}\left(v_A - \frac{1}{2}v_B - \frac{1}{2}v_C\right) \ v_\beta = \frac{2}{3}\left(\frac{\sqrt{3}}{2}v_B - \frac{\sqrt{3}}{2}v_C\right) \end{cases} ]

然后 (v_\alpha) 和 (v_\beta) 分别经过SOGI生成同相输出 (v') 和正交输出 (qv')。最后用下面的对称分量合成公式得到正负序分量:

[ \begin{bmatrix} v_{\alpha}^{+} \ v_{\beta}^{+} \end{bmatrix}

\frac{1}{2} \begin{bmatrix} 1 & -q \ q & 1 \end{bmatrix} \begin{bmatrix} v_{\alpha} \ v_{\beta} \end{bmatrix}, \quad \begin{bmatrix} v_{\alpha}^{-} \ v_{\beta}^{-} \end{bmatrix}

\frac{1}{2} \begin{bmatrix} 1 & q \ -q & 1 \end{bmatrix} \begin{bmatrix} v_{\alpha} \ v_{\beta} \end{bmatrix} ]

这里 (q) 代表90°滞后算子。在Simulink里实现SOGI时,可以用连续传递函数模块直接填 (k\omega_0 s/(s^2 + k\omega_0 s + \omega_0^2)),也可以用积分器搭二阶结构。传递函数模块最简单,调 (k) 和 (\omega_0) 都能在模块参数里直接改。我推荐把 (\omega_0) 设成2π乘以实际电网频率,并用PLL锁出的频率信号实时更新,这样电网频率有波动时分离效果也能维持。

3.4 坐标变换:从αβ到dq,正负序各自安家

分离出αβ轴的正负序分量之后,要把它们分别转进各自的同步旋转坐标系。正序分量用PLL锁出来的 (\theta_1) 做Park变换,负序分量的旋转方向和正序相反,所以用 (-\theta_1) 做Park变换:

[ \begin{bmatrix} v_d^{+} \ v_q^{+} \end{bmatrix}

\begin{bmatrix} \cos\theta_1 & \sin\theta_1 \ -\sin\theta_1 & \cos\theta_1 \end{bmatrix} \begin{bmatrix} v_{\alpha}^{+} \ v_{\beta}^{+} \end{bmatrix} ]

[ \begin{bmatrix} v_d^{-} \ v_q^{-} \end{bmatrix}

\begin{bmatrix} \cos(-\theta_1) & \sin(-\theta_1) \ -\sin(-\theta_1) & \cos(-\theta_1) \end{bmatrix} \begin{bmatrix} v_{\alpha}^{-} \ v_{\beta}^{-} \end{bmatrix} ]

用Simulink里的Park Transform模块时,注意模块的“Rotating frame alignment”设置,不同版本默认的旋转方向都不一样。负序坐标变换前,最好用关于Y轴对称的负角度去驱动模块,免得输出里残留交流分量。电流信号也按照同一思路处理,这样正序电流dq分量在稳态下是直流量,PI控制器才能无静差跟踪。

3.5 SVPWM调制与脉冲输出

控制环最终输出的是dq轴参考电压,需要反变换回αβ静止坐标系,送入SVPWM模块生成IGBT的门极脉冲。Simulink里有Discrete SVPWM Generator可以直接调用,输入参考电压和直流母线电压,输出六个IGBT的开关信号。这个模块内部已经包含扇区判断、矢量作用时间计算,比自己手写逻辑要省事得多。

用SVPWM时有一个关键设置:参考电压的单位和标幺系统。很多人把PI输出的电压直接接到SVPWM模块,结果发现调制波超出线性范围,波形出现大量锯齿状的削顶。正确做法是根据直流母线电压把参考电压归一化到SVPWM模块要求的范围内。直流母线有100Hz纹波时,调制比上限也要留出裕量,我习惯限制在0.95以内。

4. 充电策略控制环:正序通道维持功率,负序通道专门“挡刀”

4.1 为什么单正序电流环压不住不平衡

如果在控制策略里只保留正序dq电流环,负序电压会通过整流器自然产生负序电流。负序电流本身不做功,但它会占据IGBT的通流能力、增加损耗,还会造成三相电流不对称。更麻烦的是,电压负序分量与正序电流作用会在直流侧产生100Hz的有功脉动,这个脉动通过电压外环倒灌回电流环指令,让电流波形里出现明显的低频毛刺。

所以正负序分离只是第一步,关键是把分离出来的负序分量送进控制器,让控制器“看得到”不平衡,并且主动去压制它。这就是正负序双电流环的基本思路。

4.2 负序电流抑制与瞬时功率恒定两种充电策略

针对充电场景,有两种典型的控制策略,侧重点不同,选择取决于你的硬件约束。

策略A:负序电流抑制。把负序dq电流指令都设为零,负序电流环努力把实际负序电流压到零。这种策略下网侧三相电流恢复对称,各相电流峰值基本一致,开关管应力均匀,对进线断路器、熔断器等交流侧设备友好。缺点是直流侧仍然会有100Hz功率脉动,因为负序电压和正序电流之间的交互作用并没有消失。对充电策略来说,直流侧纹波如果过大,后级DCDC的输入电容和电池端电流都会受影响。但三相电流对称这个优势仍然让它成为很多三相PFC充电模块的默认选择。

策略B:瞬时功率恒定补偿。不再强制负序电流为零,而是主动注入一定的负序电流,用它来抵消负序电压造成的功率波动。实现上需要根据正序电压、负序电压和功率指令实时解算负序电流参考值。公式推导出来实际上是一个二维线性方程组的求解,可以用Simulink里的Matrix Multiply模块配合Selector完成。这个策略能把直流侧100Hz纹波压到很小,但网侧三相电流会重新出现不对称,某相电流可能明显偏高,对交流侧设备不太友好。

从工程实践看,我刚做这个方向时先用策略A,至少保证整个系统不会因为电流不对称而保护动作;在后续优化直流侧纹波、或者需要提高充电功率质量时,再切换到策略B。两者可以共用同一套正负序双环框架,只是负序电流指令的计算方式不同,切换起来很方便。

4.3 电流环、电压环与整体信号流

整个控制环路的信号流向是这样走的:直流母线电压给定 (V_{dc}^) 与实测 (V_{dc}) 的误差进电压外环PI,输出作为正序d轴电流指令 (i_d^{+}),用于维持有功平衡和直流电压稳定。正序q轴电流指令 (i_q^{+*}) 通常设为0,也就是单位功率因数运行,也可以根据充电策略给定无功需求。负序电流指令按策略A设为0,或者按策略B由功率波动计算模块输出。

正序d/q电流环和负序d/q电流环各自独立,每个环都包含前馈解耦和电网电压前馈。以正序d轴电流环为例,PI输出经过解耦项相加后,再加上 (v_d^{+}) 前馈,得到正序d轴参考电压。负序环同理,虽然负序指令通常为零,但负序电压前馈可以减少控制器负担,让负序电流环更容易把电流压住。

我用过的初始PI参数供参考:电流环 (Kp = 0.3),(Ki = 12);电压环 (Kp = 0.05),(Ki = 2)。这些参数只能当起点,实际要根据开关频率、滤波电感和直流电容重新整定。母线电压给700V,滤波电感3mH,开关频率10kHz,启动时按这些初值跑,波形基本稳定,再进一步调优带宽。

5. 波形怎么读,参数怎么整,坑在哪里

5.1 仿真结果里的几条关键波形

仿真跑完后,不要只看最后的结果曲线,要分层看。第一步看三相电压和三相电流的原始波形,确认不平衡度是否符合设置,有无明显畸变。第二步看分离模块的输出:正序电压dq分量在稳态下应该是平滑的直流量,负序电压dq分量则应该是100Hz的正弦波动,但均值接近零。如果你看到正序dq电压里出现明显的100Hz振荡,说明PLL锁相或者SOGI分离环节的参数有问题。

第三步看直流母线电压。策略A控制下,直流母线电压会带有少量100Hz纹波,这是正常现象,不必当成故障去“消灭”它。但如果纹波幅值超过你设计的电容容许范围,就要考虑改用策略B或者增大直流侧电容。第四步看三相电流的包络。加入负序抑制后,三相电流峰值应当趋于一致;如果仍然参差不齐,多半是负序电流环没有闭环成功,或者负序指令不是零。

我做具体实验时设置B相电压跌落到正常的80%,A相和C相保持311V。未加负序控制前,A相电流峰值约21A,B相电流只有约14A,C相却有25A左右。加入负序抑制环后,三相电流峰值都回到18A附近,同时直流母线电压的波动从原来的约12V峰峰值降到约5V。这个对照效果非常直观,仿真里先做好对照实验,后面给硬件调试时就有了判断基准。

5.2 参数整定与几个容易踩的坑

先说SOGI的参数问题。中心频率 (\omega_0) 直接对应电网基波,必须由PLL锁出的频率实时更新,否则电网频率偏移一点,分离出的分量就会带有缓慢的旋转误差。阻尼系数 (k) 的选择是个权衡: (k) 越大,响应越快,但滤波能力越弱,谐波容易混进来; (k) 越小,滤波越强,但启动时动态过程变慢。我的经验值是1.4左右,如果想加强滤波还可以调到1.2,不要低于1,否则响应速度会明显拖后腿。

再说离散化和步长的坑。控制环和SVPWM使用离散模块时,采样时间必须和PWM载波周期保持整数倍关系,否则脉冲位置会发生抖动。固定步长我习惯取 (2 \times 10^{-5}) 秒,也就是20微秒,对应50kHz的求解频率,能看到10kHz开关频率下脉冲边沿的细节,又不会慢到调一次参数要等半天。如果发现仿真结果发散,首先要检查仿真求解器用的是不是固定步长、步长是否过大,而不是急着改PI参数。

还有一个典型的代数环问题。Simulink里如果电流环输出又反馈到输入形成无延时环,仿真会出现“Algebraic Loop”报错,或者结果奇奇怪怪。解决办法是在反馈路径中插入一个Memory模块,或者把PI模块的离散采样时间设成和载波同步,人为打破瞬时反馈关系。这个坑几乎每个做过电力电子仿真的人都遇到过,不用怀疑自己技术不行,加个Memory就好。

电压前馈环节也要注意符号。正序d轴电压前馈和PI输出方向一致还好理解,负序d/q电压前馈的极性千万别搞反。我因为省事把正序环的前馈结构直接复制到负序环,结果负序电流不仅没压下去,反而被“放大”了,查了半天才意识到负序Park变换里 (dq) 轴定义和正序不同,前馈符号反了。这种问题用波形很难一眼看出来,建议每次改结构后都回到“负序指令为零、看负序电流是否收敛到零”这个基准判断上。

5.3 从连续模式切换到离散模式:迟早要过的一关

仿真正式跑通后,下一步往往是把连续控制模块换成离散控制模块。这里我建议从一开始就按离散模块来搭,别贪图连续模块的省事。连续模块里PI参数的意义和离散域不完全一致,等模型导入到控制器里再迁移,参数整定等于重来一遍。用Discrete PI Controller,采样时间和PWM模块同步,后边做代码生成或硬件在环时直接复用模型。

离散化之后要注意每个模块的采样时间设置。PLL、正负序分离、电流环、电压环、SVPWM的采样时间如果不一致,波形上会看到阶梯状跳变,这个其实不一定是控制有问题,只是模块间采样不匹配。理论上可以把采样时间统一设成一个值,比如100微秒,再根据性能要求逐步分级。

6. 从仿真到工程样机:下一步可以这么走

6.1 模型离散化与代码生成的衔接

当仿真模型完全稳定之后,就可以考虑把它往实际控制器上搬。Simulink的代码生成能力很成熟,控制部分的模型几乎可以直接生成C代码。但有几个细节需要提前清理:一是把所有不需要的Scope、Display等显示模块删掉或用条件编译排除;二是将采样时间统一为基采样率,避免多速率模块导致生成的代码出现复杂的任务调度;三是确认负序分离模块用的传递函数是离散域实现,SOGI结构也最好改成用积分器离散化的等价结构,这样生成的代码逻辑清楚,调试时能一行一行对上。

如果你们有RT硬件在环平台,可以直接把主电路放到实时仿真器里,控制模型跑在控制器上。这一阶段最容易暴露的问题是执行时间和模型复杂度不匹配。SOGI模块如果用连续积分器,离散化步长够不够;SVPWM模块的内部计算在目标芯片上的耗时是多少。这些在离线仿真中完全看不出来,只有到了实时仿真的阶段才会暴露。提前对模型做一次计算量估算,能省很多现场时间。

6.2 扩展方向:谐波、跌落穿越和V2G

正负序分离控制策略本身是一个基座,往上面可以叠加不少扩展功能。如果电网谐波严重,SOGI的带通性能有限,可以考虑改成DSOGI结构,把5次、7次谐波也纳入分离和抑制的范围。更简单一点的办法是在SOGI前级加一个陷波器,把特定频率的谐波提前滤掉,代价是动态性能略降。

如果充电装置需要满足并网电压跌落穿越要求,那就要在策略里增加低电压穿越逻辑。电压严重不平衡时,负序电流指令往往需要根据无功支撑要求重新分配,不能简单地设为零或者追求瞬时功率恒定。这时候充电策略要从“保电流对称”切换到“保电压支撑”,控制目标变化后,之前的分离模块和控制框架仍然可以复用,主要新增的是工况判断和指令切换逻辑。

对于V2G场景,充电装置需要能够同时支持整流和逆变两种模式。正负序双电流环框架天然支持双向功率流动,只需要把电压环指令极性、电流环限幅等按双向工况重新设置即可。我最近在做的扩展就是把负序电流抑制和V2G模式下电池SOC管理结合起来,充电和放电工况共用一套正负序分离模块,差别只在功率指令的方向和限制条件。

这类控制策略的学习路径确实是层层递进的。先理解对称分量法,再掌握瞬时分量计算,然后才是Simulink里的工程化实现。回头再看最初那个“直流母线抖成心电图”的问题,其实原理并不复杂,难的是把理论概念落地成模型里的每一个模块连接。希望这份操作笔记能帮你把这段路走顺一点。

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

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

立即咨询