
最近在做不平衡电网电压下的虚拟同步发电机VSG并网控制仿真时我把自己负责的那套 Simulink 模型从传统的同步旋转坐标系 PI 控制整体切换到了静止坐标系下的 PR比例谐振控制然后完整跑完了单相跌落、两相跌落和轻度三相不平衡三组工况。这个方向看起来是个很常规的研究题真正搭起来才发现正负序分离、PR 谐振点离散化、VSG 功率环在负序分量干扰下的反馈脉动每一步都可能让仿真结果偏离理论预期。如果你正在做 VSG 并网控制、微电网逆变器控制或者需要把电网电压不平衡工况加进自己的 Simulink 模型这篇文章应该能帮你省下不少调试时间。我会把主电路搭建、VSG 控制环、PR 电流内环的实现顺序、参数整定时的计算过程都写清楚最后再讲几个我在调试阶段反复踩过的坑全部基于实际仿真经验不绕弯子。1. 先从控制需求说起VSG的惯性优势与不平衡电压的“搅局”方式1.1 虚拟同步机提供的并不是“同步”而是惯性响应很多初学者会把 VSG 理解成一种“让逆变器像同步电机一样转动”的神秘算法其实核心就是一个带惯性和阻尼的二阶运动方程。用最经典的形式写成J·dω/dt Pm - Pe - Dp·(ω - ωg)其中 J 是虚拟转动惯量Dp 是虚拟阻尼系数Pm 是机械功率指令Pe 是实测电磁功率ω 是 VSG 输出的虚拟角频率ωg 是并网点角频率。和传统下垂控制相比VSG 多出来的就是这个 J·dω/dt 惯性项——并网点频率发生变化时有功功率不会瞬间跳变而是按 J 和 Dp 共同决定的机电时间常数平滑过渡。从并网友好性角度看这确实是个好特性。弱电网下频率波动频繁VSG 能让逆变器具备“抵抗频率突变”的能力这也是很多微电网研究选 VSG 做接口控制的原因。但问题来了摇摆方程里用的是 P 和 ω这两个量在最基础的平衡电网假设下是干净平滑的一旦电网电压不平衡Pe 的测量值里会混入负序分量引起的 100Hz 脉动整个控制链路都会受到影响。1.2 负序电压进入功率环后产生的连锁反应三相电压不平衡时电网电压会分解为正序分量、负序分量和零序分量。三相三线制 VSC 没有零序电流通路所以控制上主要面对正序和负序两套分量。负序电压和正序电流互相作用会在瞬时功率计算中产生一个 2 倍工频的脉动项数值上大约等于p2ω 1.5·(vα_neg·iα_pos vβ_neg·iβ_pos)举个直观的例子如果负序电压幅值达到正序的 3%功率脉动幅度可能达到额定功率的 2%6%。这个 2ω 脉动进入 VSG 有功环后虚拟功角会发生波动ω 指令上出现小幅度振荡进入无功环后电压幅值指令会抖动。更要命的是VSG 的惯性时间常数通常只有几十到几百毫秒对 100Hz 的脉动几乎没有滤波能力只能依靠电流环和序分量分离来从源头削弱。所以在做不平衡工况仿真前第一件事不是急着搭模型而是想清楚一个问题并网电流要不要主动抑制负序分量答案通常是“要”因为如果不抑制负序电流不仅会让三相电流幅值不平衡还会在电网阻抗上产生压降反过来加剧并网点电压不平衡形成恶性循环。1.3 为什么这个场景下PI不如PR传统 dq 坐标系 PI 控制的优势在于同步旋转坐标系把工频交流量变成了直流PI 的积分器可以无静差跟踪。但代价是需要锁相环需要 dq 解耦而且一旦电压不平衡负序分量在 dq 坐标系下是 2 倍频交流量原 PI 环的积分作用会被削弱。想抑制负序就得再搭一套负序 dq 环控制结构翻倍参数之间还会相互牵连调试复杂度明显上升。PR 控制把坐标统一到 αβ 静止坐标系控制器直接在 50Hz 处放置谐振极点等效于把积分器搬到了正弦频率上因此能对 αβ 轴上的基波正弦指令实现零稳态误差跟踪。更关键的是正序电流误差和负序电流误差可以各接一个 PR 支路输出直接相加共用同一个 αβ 结构不需要额外的旋转坐标变换。这在 Simulink 里搭起来非常简洁尤其是加负序补偿支路时改动量很小。下面的表是我在做方案对比时常用的几种路线可以直观看到 PR 在这个场景下的优势对比项同步旋转坐标系 PI静止坐标系 PR基波跟踪需 dq 坐标变换依赖锁相环直接 αβ 轴跟踪结构简单负序抑制需要额外负序 dq 环参数耦合并联负序 PR 支路即可谐波抑制需要多同步旋转轴可并联多个谐振支路不平衡工况适应性较差动态补偿能力弱较好正负序独立控制2. Simulink仿真模型搭建从主电路到控制环路的完整接线逻辑2.1 主电路参数与模块选择我用的是一套 380V/10kW 的三相两电平 VSC 并网模型直流侧用稳定电压源参数如下项目参数额定功率10 kW交流额定电压380 V线电压/ 220 V相电压额定频率50 Hz直流母线电压700 V滤波电感1.2 mH网侧电阻0.05 Ω开关频率10 kHz控制步长100 μs主电路模块我直接用 Simulink 里的 Universal Bridge器件选 IGBT/Diode电网侧用 Three-Phase Programmable Voltage Source这个模块可以方便地设置单相或两相电压跌落比手动拼接 RLC 支路模拟故障要省事很多。直流侧建议用理想受控电压源模拟 700V 稳压母线而不是带电池内阻的复杂模型——这样可以减少不相关变量对控制结果的干扰等控制策略验证完毕后再把直流侧细节补上去。2.2 VSG功率环在模型里的四个实现步骤VSG 功率环不是某个现成模块而是由几个环节拼出来的我把实现步骤拆成四段第一步采集并网点三相电压 ua、ub、uc 和三相电流 ia、ib、ic通过 Clarke 变换得到 αβ 分量。第二步计算瞬时功率P 1.5·(uα·iα uβ·iβ)Q 1.5·(uβ·iα - uα·iβ)第三步有功环做一次调频和惯性计算。一次调频部分用 Pm Pref Kf·(f0 - fmeas) 生成机械功率指令然后解摇摆方程 J·dω/dt Pm - Pe - Dp·(ω - ωg)积分得到 ω再积分得到相位 θvsg。第四步无功环用 Qref 和实测 Q 的差值通过下垂系数或 PI 环节得到电压幅值指令 E。这里有个容易出错的地方摆动方程积分出来的相位 θvsg必须同时用于 Clarke 反变换和后续电流环的坐标基准。也就是说VSG 的相位不仅是功率环的输出也是整个电流内环的参考相位源。很多模型跑一段时间波形开始漂移就是因为功率环和电流环各自用了一个相位产生角度偏差最后导致坐标变换错位。2.3 正负序分离与PR电流内环的接线方式电流内环我采用的是 αβ 静止坐标系下的双 PR 支路结构参考电流由 VSG 功率环输出的电压幅值和相位合成把三相参考电压变换到 αβ 后分别与实测 αβ 电流做差误差信号送入两个并联的 PR 控制器输出相加后得到调制波参考电压 uα_ref 和 uβ_ref。正负序分离是这里面最容易被低估的一步。我用的方法是 DSOGI-FLL即双二阶广义积分器加锁频环从 αβ 电压中分离出正序和负序分量。二阶广义积分器的核心是带通特性正序提取和负序提取各用一组锁频环负责把谐振频率始终对准电网频率。仿真中一定要留意DSOGI 是有动态延时的负序通道对不平衡电压的识别通常需要 23 个工频周期才能稳定所以合闸瞬间不要直接看控制效果要先让分离环节收敛。负序补偿支路的增益我习惯取正序支路的 0.60.8 倍避免在严重不平衡比如电压跌落到 30%时输出饱和。如果不加这个幅值限制PR 控制器的输出会顶到调制波上限反而产生大量低次谐波。2.4 调制环节与仿真求解器的联动设置调制部分我用三角波比较法将 αβ 参考电压变换到三相 abc 后与 10kHz 载波比较生成开关信号。这里有一个常被忽略的联动设置如果控制步长和载波频率不匹配调制波会比较粗糙波形出现“毛刺”。我的做法是控制步长取 100μs即一个开关周期采样 10 次。仿真求解器选择离散型 ode4固定步长 1e-5s这样 PWM 比较器每个载波周期至少有 10 个计算点波形不会出现数值失真。很多人喜欢用可变步长求解器方便是方便但遇到同时存在开关器件和连续积分器的模型时Simulink 会在瞬间把步长缩小到极小的值一台机器跑一整天都出不来结果这个后面我会展开说。3. 参数整定从计算公式到仿真验证的完整链条3.1 虚拟惯量与阻尼系数不是拍脑袋定的VSG 的 J 和 Dp不同文献里的单位形式差异很大有的用国际单位有的用标幺值。我在 Simulink 里用的是标幺值形式把摇摆方程写成TJ·dω_pu/dt Pm_pu - Pe_pu - Dp·(ω_pu - 1)其中 TJ 相当于惯性时间常数单位是秒物理意义和同步发电机的 H 常数类似。常规同步发电机组的 H 大约在 16 秒之间VSG 仿真里 TJ 也从这个量级开始调。我最初把 TJ 设成 0.1s发现频率跟踪非常快VSG 的“惯性感”完全消失后来又试了 8s系统响应慢到不行一次功率阶跃后要好几秒才稳定在微电网里会显得很迟钝。最后选定 TJ 1.5sDp 按有功-频率下垂关系反推允许频率偏差 1Hz 对应功率变化额定值 10kW那么 Dp ΔP/Δω 10000/(2π×1) ≈ 1591。但在标幺值下这个数要折算到基准功率和基准角频率上实际操作时我直接用小信号扫描验证。调试经验是J 大则虚拟功角振荡周期长系统越稳但响应越慢D 大则阻尼强超调小但稳态下垂偏差变大。建议先用大 J 观察基本稳定性再逐步减小 J 并同步调整 D直到动态响应和稳态精度都能接受。3.2 PR控制器参数的分步计算PR 控制器我用带限带宽的改进形式传递函数为G_PR(s) Kp 2·Kr·ωc·s / (s² 2ωc·s ω0²)其中 ω0 是电网基波角频率ωc 是带宽参数通常取 2π×5 到 2π×10 rad/s用来覆盖电网频率的正常偏移范围。Kp 的作用和普通比例环节一样决定响应速度和相位裕度Kr 决定谐振频率处的增益数值越大稳态误差越小但过大会导致谐振峰过高与电网阻抗相互作用后可能引起震荡。我的整定顺序是先根据电流环穿越频率定 Kp再单独调 Kr最后微调 ωc。以 L 1.2mH 为例基波电抗只有约 0.377Ω电流环开环穿越频率我取在开关频率的 1/10左右也就是 1kHz反推 Kp 在个位数范围内。Kr 我一般从 100 开始逐步往上加观察到谐振频率处出现明显振荡就回调。仿真模型里常见的误区和这里有关Kr 太大时仿真在 50Hz 附近会出现持续啸叫般的振荡很多人第一反应是步长问题其实改小 Kr 就解决了。3.3 功率环滤波器对VSG动态性能的影响VSG 功率环计算出的 P 和 Q 含有 2 倍频脉动为了不让它干扰虚拟功角大多数仿真模型会在功率测量路径上加低通滤波器或陷波器。我的处理是在 P、Q 计算后各加一个截止频率 20Hz 左右的一阶低通滤波器能滤掉大部分 100Hz 脉动同时不影响 VSG 的惯性和一次调频动态。但这里有一个隐性代价低通滤波器本身有相位滞后会让 VSG 的虚拟功角响应看上去“更慢”等效于增大了系统阻尼。如果你把所有功率脉动都寄托在滤波上仿真波形会显得很平滑但控制器的真实动态被掩盖了。所以我的建议是功率环滤波只用来滤高频噪声负序电流的抑制责任交给电流环的负序 PR 支路承担两者分工明确不要互相替代。4. 仿真波形对比单相跌落、两相跌落与轻度不平衡三个工况4.1 单相跌落负序电流从明显到几乎消失第一个工况是 A 相电压从 311V 跌落到 260V持续 0.2s其他两相正常。这种单相跌落算比较温和的不平衡负序电压大约为正序的 3% 左右。在没有负序补偿支路的版本里A 相电流明显减小B、C 两相电流幅值变大且不对称三相电流的峰值差最大超过 30%。有功功率波形上可以看到明显的 100Hz 纹波平均功率约 8kW 时脉动幅度大约 ±500W。这个纹波传到 VSG 功率环里虚拟频率上也叠加了小幅波动。切换到带负序 PR 支路后三相电流明显趋于对称A 相电流从 12.8A 回升到接近额定电流三相幅值差缩小到 5% 以内有功功率的 2 倍频脉动被压缩到 ±140W 左右。这说明负序 PR 支路确实在把负序电流压下去并网电流质量改善明显。4.2 两相跌落控制器输出饱和边界的应对第二个工况更严苛A、B 两相电压同时跌落到 200V持续时间 0.2s。这更像是故障状态而不是正常波动负序电压比例接近 10%远超日常运行允许范围。这种工况下负序 PR 支路的输出会非常大调制波很容易触顶。上面提到的输出限幅策略在这里发挥了决定性作用如果不限幅控制器的积分项会在一两个工频周期内迅速积分饱和跌落结束时模型已经发散加了限幅后控制器在输出钳位区间内工作跌落期间虽然不能完全消除负序电流但至少能保证系统不失稳跌落切除后能快速恢复。从波形看两相跌落下带 PR 的模型有功功率脉动依然存在但频率和功角波动幅度比不带 PR 时低一半以上电流在跌落期间虽然畸变率升高但没有出现保护性发散。如果你的仿真重点是故障穿越这个工况值得单独做一轮分析。4.3 轻度三相不平衡THD和功率脉动的综合对比第三组工况是三相电压幅值分别设为 311V、290V、260V模拟一种真实工程中可能出现的长期不平衡状态不平衡度约 4%。这种工况下单看电流幅值可能还能接受但并网电流 THD 和功率脉动依然明显偏高。带 PR 负序补偿后三相电流 THD 从约 7% 降到约 3%有功功率脉动幅值从 ±400W 降到 ±150W。这里特别说明一下THD 下降不完全来自负序抑制还有一部分来自 PR 控制器在谐振点周围的谐波衰减作用。如果你需要更严格的谐波指标可以在 PR 支路上并联 5 次和 7 次谐波补偿器模型改动不大但效果提升很明显。三个工况的结果汇总如下工况控制策略三相电流峰值差有功2倍频脉动电流THD表现A相跌落至260V无负序补偿约30%±500W明显增大A相跌落至260V带负序PR支路约5%±140W改善明显A、B相跌至200V带负序PR支路限幅跌落期间仍偏大脉动仍存畸变率偏高但不失稳轻度三相不平衡带负序PR支路约7%±150WTHD约3%5. 调试过程中最容易被忽视的三个模型缺陷5.1 负序分离延时引发的低频耦合振荡DSOGI-FLL 的负序通道有大约 23 个工频周期的动态延时这个延时在个别模型中会和控制器的积分环节形成额外耦合产生一种 1020Hz 的低频振荡。表现是三相电流包络呈波浪状上下起伏频率在十几赫兹左右和电网频率、PR 谐振频率都不一致。我当时排查了很久最后确认不是 PR 参数问题而是负序分离的带宽太窄跟不上电压跌落的动态。解决办法有两个一是把 DSOGI 的带宽参数适当调大让负序提取速度加快二是在负序分离通道前加一个低通预滤波器把高频噪声先滤掉避免噪声进入 DSOGI 后引起锁频环抖动。两个方案都有效我更推荐后者因为预滤波还能顺带提升 PR 控制器在高频段的稳定性。5.2 仿真发散往往是数值噪声而不是真正的控制器失稳有一次模型在加入 PR 负序支路后波形在 1.5s 左右突然散掉我第一反应是控制器参数过大了。后来检查发现问题出在功率计算环节——瞬时功率中包含的高频开关纹波没有被有效抑制进入 VSG 功率环后微小的数值噪声被积分器逐步放大最终表现为“发散”。这个现象的迷惑性在于波形初期看起来完全正常到了某个时间点才开始失稳很像参数临界稳定导致的振荡。排查时最好的方法是在功率测量路径上临时加一个截止频率很低的滤波器如果模型立刻恢复稳定说明是高频噪声问题而不是控制器失稳。确定了问题根源之后再换用带宽合理的低通滤波器保留必要的动态响应。5.3 固定步长、可变步长与PWM载波频率之间的“隐性冲突”很多刚开始接触 Simulink 的人喜欢用可变步长求解器因为模型“自动”选择步长省心。但在 VSG PR PWM 这种混合系统里可变步长会带来两个麻烦一是开关器件和连续积分器使步长控制频繁切换仿真速度慢到离谱二是步长突然变化时PR 控制器的离散化模型和实际 PWM 载波不同步可能在调制波上产生微小的周期畸变。我的建议是直接使用离散固定步长求解器将步长设在 1e-5s这样 PWM 比较器、PR 控制器、VSG 功率环都在同一个时间基准下工作结果一致性很好。如果你需要更快的仿真速度可以将步长放宽到 2e-5s但不要超过 5e-5s否则采样点太少PR 谐振频率会偏移。再补充一个小技巧如果仿真速度实在太慢不要急着调步长先检查模型里有没有不必要的示波器记录和终端模块这些模块很多看似无害实际上会拖慢整个仿真速度我在实际调试中删掉几个冗余记录模块后仿真时间整整减少了一半。