1. 为什么要在Simulink里折腾虚拟同步机
新能源并网这件事,绕不开一个核心矛盾:风电、光伏这类电源通过电力电子变换器接入电网,本身没有传统同步发电机那种"转子惯性"。电网频率一旦波动,它们响应太快、太"硬",反而容易把系统推向失稳。虚拟同步机(VSG)技术就是给这些变换器"装上"一套模拟同步机的控制逻辑,让它们在电气特性上表现得像一台有惯量、有阻尼的同步发电机。
我最初接触这个方向,是因为一个模拟项目里需要验证多台逆变器并联时的频率支撑能力。当时用纯理论推导算了一遍,发现小信号模型在弱电网条件下跟实际仿真偏差不小,于是老老实实回到Simulink里搭模型。这篇内容就是把我从零搭一套VSG并网仿真模型的过程、踩过的坑、以及几个关键参数的整定思路完整梳理出来。
适合谁看?如果你已经会用Simulink搭基本的电力电子模型,对Park变换、锁相环、电流环有概念,但没系统做过VSG,那这篇基本能让你照着走一遍。如果你是完全的新手,建议先把三相逆变器的平均模型跑通再回来,不然容易在坐标变换那一层就卡住。
核心关键词先摆出来:虚拟同步机、新能源并网、惯量支撑、有功-频率控制、无功-电压控制、Simulink仿真。这几个词贯穿全文,后面每个章节都会围绕它们展开。
2. 整体方案设计与思路拆解
2.1 VSG到底在模拟什么
传统同步发电机之所以能稳住电网频率,靠的是转子运动方程。转子有物理惯量,频率变化时转子转速不会突变,这个"慢半拍"的特性就是惯量支撑的来源。VSG的核心思路,是在逆变器的控制环里用一套数学方程复现这个行为,让逆变器对外呈现出"虚拟惯量"和"虚拟阻尼"。
具体到控制结构,VSG通常包含三层:最外层是有功-频率环和无功-电压环,负责模拟同步机的调频调压特性;中间层是虚拟阻抗和电压电流双闭环,负责把外环给出的指令变成实际的PWM驱动信号;最底层是逆变器主电路和滤波环节。这三层的关系,你可以理解成"大脑-神经-肌肉":外环决定往哪走,内环负责走得稳,主电路负责真正出力。
我选择在Simulink里做这件事,理由很直接:VSG涉及机电暂态和电磁暂态的耦合,纯靠手算很难看清动态过程,而Simulink的Simscape Electrical工具箱里有现成的逆变器、滤波器和电网模型,能把精力集中在控制策略上。另一个原因是,Simulink支持从平均模型快速切到开关模型,方便先验证控制逻辑再评估开关损耗和谐波。
2.2 为什么选这个控制架构而不是别的
VSG的实现有几种常见路线:一种是直接模仿同步机的二阶或三阶模型,把转子运动方程和励磁方程搬过来;另一种是基于下垂控制做改进,在下垂环里加入惯量项。我最终选的是二阶转子运动方程加下垂特性的混合结构,原因有三。
第一,纯下垂控制响应快但没有惯量,频率跌落时支撑不够"柔",而纯同步机模型参数多、整定复杂,对新手不友好。混合结构保留了转子方程里的惯量和阻尼两个可调参数,同时用下垂系数处理稳态功率分配,调参时有明确的物理意义。
第二,二阶模型在Simulink里实现起来干净。转子运动方程就是两个积分环节加反馈,用基础模块就能搭,不需要额外的工具箱支持,移植性强。
第三,这个结构对弱电网的适应性更好。我在模拟项目里对比过,纯下垂方案在短路比偏低的场景下容易和锁相环产生耦合振荡,而加入虚拟惯量后,系统的相位裕度明显改善。
注意:这里说的"弱电网"指的是电网阻抗较大、短路比偏低的场景,不是指某个具体电网,纯粹是仿真里的参数设定。
2.3 仿真模型的整体分层
整个Simulink模型我分成四个子系统,用Subsystem模块封装,方便单独调试:
- 主电路子系统:直流源、三相全桥逆变器、LC滤波器、并网点。
- VSG控制子系统:有功-频率环、无功-电压环、虚拟阻抗。
- 内环控制子系统:电压外环、电流内环、Park变换与反变换。
- 测量与信号处理子系统:电压电流采样、锁相环、功率计算。
这样分层的好处是,调试时可以先断开VSG外环,用固定指令跑通内环,确认电流跟踪正常后再逐层接入。我见过不少人一上来就把整个闭环搭完,结果一出问题根本不知道是哪一层的事,排查起来非常痛苦。
3. 核心细节解析与实操要点
3.1 转子运动方程的离散实现
VSG的有功-频率环核心就是转子运动方程:
J·dω/dt = Pm - Pe - D·(ω - ω0)
其中J是虚拟惯量,D是虚拟阻尼,Pm是机械功率指令,Pe是电磁功率,ω是虚拟角频率,ω0是额定角频率。这个方程在Simulink里用两个积分器串联实现:第一个积分器把功率差除以J得到角频率偏差,第二个积分器把角频率积分得到功角。
这里有个细节很多人会忽略:积分器的初始条件。如果初始功角设成0,仿真启动瞬间会有一个功率冲击。我的做法是把初始功角设成稳态工作点对应的值,具体算法是先根据额定功率和电网电压反推功角,再填进积分器初值。这样启动过程平滑,不会出现电流尖峰。
另一个要点是J和D的取值。J越大,频率响应越慢、惯量支撑越强,但太大容易导致功率振荡;D越大,阻尼越强、振荡衰减越快,但太大会增加稳态误差。我一般先按J = 2H·S/ω0²估算,H取3到5秒(模拟同步机的惯性时间常数),S是逆变器容量,然后再根据仿真波形微调D,让功率阶跃时的超调控制在10%以内。
3.2 无功-电压环的耦合问题
无功-电压环相对简单,本质是一个带积分环节的电压调节器,输出的是虚拟电动势幅值指令。但这里有个坑:有功环和无功环通过功角耦合,如果两个环的带宽太接近,会互相干扰。
我的处理办法是把无功环的积分时间常数设得比有功环大一个数量级,让两个环在频域上拉开距离。具体来说,有功环的等效带宽大概在几十赫兹量级,无功环压到几赫兹。这样有功动态过程中,无功环基本"跟不上",不会产生明显的耦合振荡。
还有一点,虚拟电动势的幅值指令要限幅。我设的是额定电压的0.9到1.1倍,防止无功环在暂态过程中把电压指令推到不合理范围,导致内环饱和。
3.3 虚拟阻抗的作用与整定
虚拟阻抗是VSG里容易被低估的一环。它的作用是在控制上模拟一个串联阻抗,改善多机并联时的功率分配精度,同时抑制环流。实现方式是在电压指令上减去一个与电流成正比的压降:Vref = E - Zv·I。
Zv的取值有讲究。取太小,多机之间的功率分配受线路阻抗差异影响大;取太大,会削弱电压支撑能力,还会影响稳定性。我的经验值是取实际线路阻抗的0.5到1倍,感性和阻性分量按线路的阻抗角分配。在Simulink里,这个环节用一个增益模块加一个减法器就能实现,但要注意电流的采样要经过滤波,否则开关噪声会直接串进电压指令。
提示:虚拟阻抗的引入会改变系统的等效输出阻抗,整定完虚拟阻抗后,内环的PI参数最好重新校核一遍,不然可能出现相位裕度不足。
3.4 锁相环的带宽取舍
锁相环(PLL)在VSG里扮演的是"电网同步"的角色,提供电网电压的相位基准。PLL的带宽是个两难:带宽高,动态响应快,但对电网电压的谐波和不对称更敏感;带宽低,抗干扰强,但动态跟踪慢。
我一般把PLL带宽设在电网基频的十分之一左右,也就是5到6赫兹。这个带宽下,PLL对基频附近的扰动有足够的抑制,同时动态跟踪不至于太迟钝。在Simulink里,PLL可以用自带的PLL模块,也可以自己用Park变换加PI搭,我倾向自己搭,因为可以清楚地看到每个环节的信号,调试时心里有数。
4. 实操过程与核心环节实现
4.1 主电路搭建与参数选择
主电路从直流源开始。我设直流母线电压为800V,这个值要满足并网电压的要求:并网相电压峰值约311V(对应220V有效值),加上滤波器和线路压降,直流侧至少要700V以上才能保证调制比合理。800V留了一定裕度,调制比大概在0.8左右,线性调制区工作。
逆变器用三相全桥,开关器件先用理想开关做平均模型,验证控制逻辑后再换成带开关损耗的模型。LC滤波器的参数:滤波电感Lf取2mH,滤波电容Cf取20μF。这两个值的选取依据是截止频率要远低于开关频率、远高于基频。开关频率设10kHz,LC截止频率算下来约800Hz,落在基频50Hz和开关频率10kHz之间,滤波效果和动态响应比较平衡。
并网点通过一个线路阻抗接到电网,线路电感取1mH、电阻取0.1Ω,模拟一个短路比中等的并网场景。这个参数在后续做弱电网对比时会调整,短路比降低时把线路电感加大。
4.2 控制环的搭建顺序
搭建顺序我坚持"从内到外":先搭电流内环,再搭电压外环,最后接VSG外环。每一步都单独验证。
电流内环用dq坐标系下的PI控制,d轴和q轴各一个PI。PI参数按典型I型系统整定:电流环带宽取开关频率的十分之一,约1kHz,PI比例系数按Kp = Lf·ωc计算,积分系数按Ki = R·ωc计算(R是电感等效电阻)。整定完跑一个电流阶跃,看响应时间是否在1ms左右、超调是否小于5%。
电压外环同样在dq下做PI,带宽取电流环的五分之一,约200Hz。这里要注意,电压外环的输出是电流指令,必须限幅,防止内环过流。我设的限幅值是额定电流的1.5倍。
内环都跑通后,再接VSG外环。外环输出的是电压幅值和相位指令,送给电压外环作为参考。接入时先把VSG的惯量设成很小、阻尼设成很大,相当于退化成下垂控制,确认功率能正常跟踪后再逐步加大惯量、减小阻尼,观察动态过程。
4.3 功率计算的滤波处理
电磁功率Pe的计算是VSG外环的输入,算法是三相电压电流的瞬时功率。但瞬时功率里含有二倍频脉动,直接送进转子方程会让虚拟角频率跟着抖。我的做法是加一个低通滤波器,截止频率设在二倍频以下,比如20Hz。
滤波器的阶数用一阶就够,二阶会引入额外相移,影响外环稳定性。滤波后的功率再送进转子方程,波形就干净多了。这个细节在教科书里往往一笔带过,但实际仿真里不加滤波,功率波形会抖得没法看。
4.4 仿真步长与求解器设置
VSG模型里既有电磁暂态(开关过程)又有机电暂态(转子动态),时间尺度差得远。用平均模型时,步长可以设大一些,我一般用变步长求解器ode23tb,最大步长设1e-4秒。切到开关模型时,步长必须小于开关周期的十分之一,10kHz开关频率对应步长上限1e-5秒,我通常设5e-6秒,保证开关边沿采样准确。
仿真时长方面,做启动过程看2秒,做功率阶跃看5秒,做频率扰动看10秒。时长设太短看不到稳态,设太长又浪费时间,按验证目标来定。
5. 常见问题与排查技巧实录
5.1 启动冲击电流过大
这是最常见的第一个坑。现象是仿真一开始,并网电流出现一个远大于额定值的尖峰。原因通常是VSG的初始功角和电网实际相位不匹配,或者积分器初值没设对。
排查思路:先看锁相环输出的相位和电网相位是否对齐,再看VSG积分器的初始功角。我的解决办法是加一个预同步环节,启动前先把VSG的虚拟电动势相位慢慢拉到和电网一致,再闭合并网开关。预同步过程大概持续0.5秒,用一个小增益的PI把相位差调零。
5.2 功率振荡不衰减
功率阶跃后振荡一直不收敛,说明阻尼不够。先检查D的取值是不是太小,再检查虚拟阻抗是不是引入了额外的谐振点。我遇到过一次,虚拟阻抗的感性分量设得过大,和LC滤波器产生了低频谐振,把虚拟阻抗减小后振荡就消失了。
还有一种可能是PLL和VSG外环的带宽太接近,两者耦合。把PLL带宽降低或者把VSG外环带宽提高,拉开频率距离,通常能解决。
5.3 弱电网下失稳
短路比降低后系统失稳,表现为电流发散或者功率大幅波动。这是VSG在弱电网下的典型问题,根源是PLL在弱电网下等效负阻尼。缓解办法有几个:降低PLL带宽、增加虚拟阻抗的阻性分量、适当减小VSG惯量。我在模拟项目里试过,把PLL带宽从6Hz降到3Hz,短路比2.5的场景下系统就能稳住。
5.4 常见问题速查表
| 现象 | 可能原因 | 排查方向 | 处理办法 |
|---|---|---|---|
| 启动电流尖峰 | 初始功角不匹配 | 查PLL相位与积分器初值 | 加预同步环节 |
| 功率振荡不衰减 | 阻尼不足或谐振 | 查D值、虚拟阻抗 | 加大D、调整Zv |
| 弱电网失稳 | PLL负阻尼 | 查短路比与PLL带宽 | 降PLL带宽、加阻性虚拟阻抗 |
| 电压指令饱和 | 无功环限幅过窄 | 查限幅值 | 放宽到0.9-1.1倍 |
| 功率波形抖动 | 未滤二倍频 | 查功率计算环节 | 加20Hz低通滤波 |
注意:以上参数都是针对我自己的仿真场景,换容量、换电压等级后要重新整定,不能直接照搬。
6. 参数整定的经验与扩展方向
6.1 惯量和阻尼的配合整定
J和D不是独立调的,它们共同决定二阶系统的动态特性。我的做法是先把D设成一个中等值,调J看响应速度,再回头调D看超调。具体判据:功率阶跃时,上升时间在0.1到0.2秒之间比较合适,超调控制在10%以内,调节时间不超过0.5秒。
有个经验公式可以参考:把VSG等效成一个二阶系统,自然频率ωn = sqrt(1/(J·ω0)),阻尼比ζ = D·ω0/(2·sqrt(J·ω0))。先按想要的ωn和ζ反推J和D,再在仿真里微调。我一般取ζ在0.6到0.8之间,兼顾响应速度和超调。
6.2 从平均模型到开关模型的过渡
平均模型验证完控制逻辑后,切开关模型时要注意两点:一是开关死区要加上,不然桥臂直通;二是电流采样要加滤波,开关噪声会污染采样信号。切过去之后,先看电流波形是否正弦、THD是否在合理范围(我一般要求5%以下),再看功率跟踪是否和平均模型一致。
6.3 后续可以扩展的方向
这套模型跑通后,可以往几个方向扩展:一是多机并联,验证功率分配和环流抑制;二是加入储能环节,做VSG的调频调压综合支撑;三是模拟电网故障,看VSG的低电压穿越能力。每个方向都是在现有模型上加子系统,不用推倒重来。
我在实际搭这套模型的过程中最大的体会是:VSG的难点不在单个环节的实现,而在各环节之间的配合。转子方程的惯量、虚拟阻抗的取值、PLL的带宽,这三个参数互相牵制,调一个往往要动另外两个。所以别指望一次调好,准备好反复迭代的心态,每改一次参数就存一版模型,方便回退对比。另外,仿真波形一定要存下来,光看曲线不记录参数,过两天就忘了当时改的是什么,这个习惯能省很多重复劳动。