1. 从一次弱电网下的振荡说起:为什么要给VSG做阻抗建模
做逆变器控制的人应该都有感触,前几年光伏、储能项目大量上马,很多并网逆变器在强电网下跑得稳稳当当,一到弱电网就出幺蛾子。轻则功率波动,重则跳闸甚至炸机。我印象很深的是某储能电站,采用虚拟同步发电机(VSG)控制,在并网点短路比(SCR)降到2附近时,有功功率出现持续的低频振荡,频率大约在十几赫兹。当时团队里有人怀疑是功率环参数问题,试了很多组PI参数效果都不理想。
后来我们换了思路,不再盯着时域波形猜,而是把逆变器当作一个阻抗网络来建模,用阻抗分析法做稳定性评估。这个思路在电力电子领域其实不算新,但真正落地到VSG这种复杂控制结构上,还是有挺多坑的。这篇文章就围绕"逆变器VSG阻抗建模与扫描验证"这条主线,讲清楚三个问题:VSG的阻抗模型是怎么推出来的,阻抗扫描验证怎么搭,以及复现过程中最容易踩的坑有哪些。适合正在做并网逆变器控制、新能源发电并网稳定性分析,或者被导师丢了一个"论文复现"任务的研究生和工程师参考。
阻抗分析法的好处在于,它把逆变器和电网拆成两个独立的子系统,两边分别建模,用奈奎斯特判据判断互联系统的稳定性。而这个模型本身,也能通过注入扰动、扫频测量的方式直接验证。也就是说,理论建模和实验验证可以形成闭环——这正是"从理论到复现"这条链路的核心价值。
2. VSG控制结构与阻抗建模的理论基础
2.1 VSG控制回路梳理:阻尼、惯性和一次调频在阻抗里怎么体现
先快速过一遍VSG的控制结构,因为后面所有阻抗推导都建立在这个基础上。典型的三相电压源型逆变器VSG控制,通常包含以下几层:
- 功率计算环节:采集三相电压电流,计算瞬时有功功率P和无功功率Q,一般用派克变换或瞬时功率理论
- 虚拟转子运动方程:这是VSG区别于传统PQ控制的核心,模拟同步发电机的摇摆方程,输出虚拟同步电角度θ和角频率ω
- 无功-电压下垂环:模拟励磁调节特性,输出虚拟电动势幅值E
- 电压电流双闭环:作为内层控制,跟踪上层生成的电压参考值
- 调制与滤波环节:SPWM或SVPWM调制,LC或LCL滤波器并网
从阻抗建模的角度看,VSG的"虚拟惯性"和"虚拟阻尼"是通过转子运动方程直接作用于相位和频率的。也就是说,功率环的动态特性会直接影响逆变器在中低频段的输出阻抗。这里有个关键点:传统PQ控制逆变器的输出阻抗主要取决于电流环和锁相环的带宽,而VSG的阻抗在中低频段还叠加了功率环的贡献。所以如果直接套用PQ控制的阻抗模型去分析VSG,低频段会差得很远。
2.2 dq域阻抗模型的推导思路:从状态方程到小信号导纳
阻抗建模的核心思想是:在稳态运行点附近给逆变器施加小扰动,通过线性化得到输出导纳矩阵。对于三相平衡系统,最有代表性的做法是在dq旋转坐标系下建立小信号模型,得到2×2的导纳矩阵:
Ydd Ydq Yqd Yqq矩阵中的每个元素都是在某个频率s下,某一轴电压扰动对同一轴或交叉轴电流响应的影响。推导的通用步骤如下:
第一步,列写主电路状态方程。以LC滤波器为例,电感电流和电容电压满足:
L * d(ild)/dt = vd_i - vd_c + ωg * L * ilq L * d(ilq)/dt = vq_i - vq_c - ωg * L * ild C * d(vcd)/dt = ild - iod + ωg * C * vcq C * d(vcq)/dt = ilq - ioq - ωg * C * vcd其中 ωg 是电网角频率,注意这里的交叉耦合项在标幺化和小信号化之后会变成与运行点相关的项。
第二步,对控制环节线性化。VSG的阻尼项和惯量项直接出现在功率环传递函数里。比如转子运动方程写成频域形式:
J * s * Δω = ΔPref - ΔP - Dp * Δω这里的 Δω 会进一步影响输出电压的相位,通过相位到dq变量的转换关系,形成一条功率-相位-电压的耦合路径。
第三步,把各部分联立,消除中间变量,得到从电压扰动到电流响应的传递函数矩阵。这一步代数运算量很大,一般借助MATLAB的符号工具箱完成,手推容易出错。
在推VSG阻抗模型时,最常犯的错误是忽略了锁相环的动态。有些论文在建模时假设VSG的相位完全由虚拟转子决定,省掉了PLL,这在逆变器独立供电或者微网孤岛场景下成立,但并网场景下PLL必须存在,它的动态会改变dq坐标系的参考方向,进而影响整个阻抗矩阵的低频段特性。
2.3 频率耦合:为什么不能只看单个频率的阻抗
阻抗建模还有一个绕不开的话题:频率耦合。在dq坐标系下建出来的2×2矩阵,天然包含了正负序频率的耦合关系。而在静止坐标系或序分量坐标系下,这种耦合表现为:在某个频率下注入正序电压扰动,不仅会在该频率产生正序电流响应,还会在对偶频率(对于50Hz系统,是100Hz减去注入频率)产生负序或零序电流响应。
对于VSG控制,频率耦合主要由两个来源造成:一是功率计算环节的乘法运算,二是不对称的控制结构或不对称的运行点。实际做阻抗扫描验证时,如果你只测了某个频率下的单频响应,没有考虑耦合频率,最后算出来的阻抗幅值和相角都是有偏差的。后面在扫描验证部分我会细讲怎么处理这个问题。
3. 阻抗扫描验证的工程实现
3.1 扫频法的原理与两种实现形式
阻抗扫描,简单说就是"在并网点注入一个小幅扰动,测量对应的电压和电流响应,用FFT提取扰动频率分量的幅值和相角,从而计算出阻抗"。这是电力电子领域很常用的实验方法,在光伏逆变器和风电变流器的并网测试中都能见到。
在仿真环境里做阻抗扫描,有两种常见形式:
一种是硬件在环测试。把控制器搭在DSP或FPGA里,主电路用RT-LAB、MT 8020这类实时仿真器跑,在并网点注入扰动,通过示波器或录波数据离线分析。这种方式的优点是贴近真实控制器行为,但配置门槛高,而且实时仿真步长有限,扫高频段时容易出现数值噪声。
另一种是全离线仿真,也就是我们做论文复现最常用的方式。在MATLAB/Simulink或PSCAD里搭建完整的主电路模型,用受控电压源在并网点注入扫频扰动,记录电压电流波形,然后用脚本做FFT分析。这种方式灵活度高,参数修改方便,而且可以精确控制扰动幅值和注入时间,特别适合验证理论模型。
3.2 扰动注入与信号处理的实操细节
离线仿真中阻抗扫描的具体操作流程,我按自己常用的步骤整理如下:
第一步,确定扫描频率点。对于VSG,重点关注功率环带宽附近(通常是几赫兹到几十赫兹)和LCL谐振频率附近(几百赫兹到几千赫兹)。一般用对数分布取30到50个频率点,低频段可以加密一些。
第二步,设置扰动幅值。这是最考验经验的地方。扰动太大,系统进入非线性区,测出来的"小信号阻抗"已经失真;扰动太小,响应信号淹没在FFT的数值噪声和开关纹波里。我的经验是,电压扰动取额定相电压幅值的2%到5%,比如380V系统取5V到10V左右。如果发现某个频点FFT结果毛刺明显,优先减小扰动而不是加大。
第三步,注入时序设计。假设我们要扫描第k个频率点fk:
- 0到0.1秒:系统启动并达到稳态,不注入扰动
- 0.1到0.5秒:在并网点注入频率为fk的正弦小扰动
- 0.5到1.0秒:停止注入,让系统回到稳态,再做下一个频率点
这样做的好处是每次扫描一个频率,避免多个扰动频率叠加导致FFT频谱混叠。缺点是仿真时间较长,50个频率点跑下来,在1微秒步长下可能要跑几个小时。
第四步,FFT分析与阻抗计算。取扰动注入段最后0.2秒的数据(此时系统已进入稳态周期),用Hanning窗做FFT。提取扰动频率fk处的电压幅值Vk和电流幅值Ik,然后:
Z(fk) = Vk / Ik注意这里的Vk和Ik都应该是复数,即包含幅值和相位信息。
3.3 理论阻抗与扫描阻抗对比:拿什么指标判断"复现成功"
有了理论模型和扫描结果,最后一步是对比验证。这里我习惯用两个指标:一个是幅度误差,一个是相位误差。工程上可以接受的误差范围一般在5%以内,但如果某个频点附近存在谐振,误差允许放宽到10%左右。
对比时要特别注意频段的分段差异。在VSG的功率环带宽以内,理论模型和扫描结果吻合度通常较高,因为主要动态都由功率环主导,参数也比较确定。但在开关频率附近,扫描结果往往会出现一些理论模型没有的谐振峰,这通常是滤波器寄生参数或数字控制延时造成的。如果目标只是验证主电路和控制参数的影响,这些高频段差异不必过度纠结。
4. 复现过程中的常见问题与排查技巧
这一节的内容来自我实际折腾这类项目时踩过的坑,也有一部分是帮学生看代码时发现的共性问题。写出来给大家做个参考。
4.1 仿真扫频结果全是毛刺,曲线根本没法看
这是出现频率最高的问题。现象是扫频出来的阻抗曲线在高频段剧烈震荡,完全没有光滑的趋势。排查方向分成三步:
第一步,确认扰动幅值。如果扰动太弱,高频段的电流响应幅值可能只有微安级,相对于开关纹波就是"蚂蚁和大象"的关系。先把扰动幅值提到5%尝试,看曲线是否改善。
第二步,确认FFT窗口长度。高频段频率高,需要的窗长反而短,但如果FFT点数太少,频率分辨率不足,提取出来的幅值误差很大。建议每个扫频点至少取4到8个完整扰动周期做FFT,并且用Hanning窗抑制频谱泄漏。
第三步,也是最容易忽略的:检查仿真步长。如果你的扫频最高频率是1000Hz,用固定的10微秒步长仿真,虽然满足采样定理,但数值积分误差在边缘频段可能很明显。建议把最大步长设为最高扫频频率对应的周期的1/100,也就是1kHz对应10微秒,同时打开Simulink的零穿越检测。
我自己的习惯是,在数据记录环节增加一个带通滤波后再做FFT,这个操作能显著减少非目标频率分量的干扰。具体做法是,如果扫频频率是fk,就设计一个中心频率为fk、品质因素为20的带通滤波器,只保留目标频率附近的分量。
4.2 低频段阻抗与理论模型偏差大,特别是几十赫兹以下
低频段偏差是VSG阻抗建模的"重灾区",原因通常出在锁相环和功率环的交互动态上。排查思路如下:
首先,确认锁相环带宽是否被正确建模。有些理论推导为了简化,会假设锁相环的跟踪速度足够快,从而忽略PLL动态。但VSG并网时,PLL带宽通常只有几十赫兹,恰好落在低频扫频范围内,不能忽略。
其次,检查电压电流环的离散化影响。连续域推导的阻抗模型在低频段跟离散域差异很小,但如果仿真里用零阶保持器离散化,控制延迟(通常是一到两个采样周期)会在几十到几百赫兹区间引入额外的相位滞后。如果发现低频段相位误差随频率增加而增大,大概率是这个问题。
最后,确认功率平均值滤波器的加入。VSG的功率环一般都需要低通滤波消除瞬时功率的纹波,这个低通滤波器的截止频率也会在阻抗里形成一个低频极点或零点。很多复现者做理论建模时忘了这一项,结果低频段幅值总是对不上。
4.3 频率耦合分量怎么判断和处理
做扫频时,除了在目标频率fk处测阻抗,还应该在100Hz减去fk的位置同时测量电流响应。如果这个耦合频率分量与目标频率分量的比值超过5%到10%,说明频率耦合较强,不能简单用单输入单输出的阻抗模型来分析。
处理方式有两种。保守的做法是:所有分析直接用2×2的dq域阻抗矩阵,不做单频率简化。如果下游稳定性分析工具不支持矩阵形式,也可以用"等效单输入单输出阻抗"的概念,但需要基于运行点和扰动幅值做归一化处理,同时明确说明这个等效阻抗只在特定条件下成立。
4.4 参数汇总与复现建议
用一张表总结一下典型参数范围,方便大家对照调整:
| 控制环节 | 典型参数 | 对阻抗的影响 |
|---|---|---|
| 虚拟惯量J | 0.5~5 kg·m²(或标幺值2~10s) | 决定中低频段相位峰位置,惯量越大等效感抗越明显 |
| 虚拟阻尼Dp | 10~50 N·m·s/rad | 直接抑制阻抗幅频曲线低频段峰值 |
| 功率环低通滤波 | 截止频率20~100Hz | 在阻抗中引入低频极点 |
| 锁相环带宽 | 10~50Hz | 影响10~100Hz段阻抗相位 |
| 电流环带宽 | 1~2kHz | 决定高频段阻抗的幅值边界 |
| 滤波电感/电容 | 0.5mH/10uF左右 | 决定LC谐振峰位置 |
给第一次做这个复现的同学一个建议:不要一上来就搭完整的VSG模型。先搭一个简单的单电流环逆变器,扫频验证电流环阻抗模型;然后加入电压环,再验证一次;最后才加入VSG的功率环。每加一层控制就扫一次频,这样出了偏差能快速定位是哪一层控制的问题。当初我自己图省事一步到位,结果花了三倍的时间才把偏差来源分成清楚。
5. 几个提高复现效率的小经验
扫频验证是一个非常消耗仿真时间的环节,我在这里补充一些能显著提高效率的做法。不是标准操作流程,但确实是我实际验证过的。
第一,并行仿真提速。不同扫频点之间完全独立,可以在MATLAB里用parfor把频率点分给多个worker同时仿真。我实测下来,16个worker大概能提速8到10倍。如果用的是PSCAD,也可以把多个Case合并成Multi-Run模式。
第二,理论模型用解析表达式预处理。别每个频率点都去调符号工具箱重新推导,先在关键频点(比如1Hz、10Hz、50Hz、100Hz、500Hz)快速验证解析式与扫频结果是否一致,确认模型结构正确后,再把完整的频响曲线批量计算出来。这样能避免"推了一天公式,结果公式从头就错了"的尴尬。
第三,保存历史数据做对比。每改一版控制参数,固定扫同样的频率点,把结果追加到一个汇总表里。这样做有两个好处:一是参数调整对某个频段的影响一目了然;二是如果后面换了新电脑或新版本软件,可以通过重新跑一两个关键频点快速判断环境和数值格式是否引入差异。阻抗曲线如果出现莫名其妙的偏移,很多情况下就是软件版本或仿真精度设置改变导致的。
还有一个容易被忽略的点:VSG的直流侧电压在扫频过程中要保持稳定。如果直流侧用理想电压源当然没问题,但如果是模拟光伏或储能电池的动态模型,扫频时功率扰动会传导到直流侧,导致直流电压波动,进而影响交流侧阻抗测量。这种情况建议在直流侧并联大容量电容,或者用电压源替代直流源模型做扫频验证,等验证通过后再换成真实动态模型做整体仿真。
6. 关于这个方向,我最后想说两句
逆变器并网系统的阻抗建模与验证,这几年在光伏、储能、风电的工程应用里越来越被看重。VSG控制作为构网型逆变器的代表性方案,其阻抗特性的准确建模直接关系到弱电网下稳定性分析的可信度。把理论推导与扫频验证结合起来,不仅是论文复现的要求,更是工程交付前必须走通的一环。
我在实际做项目时一个很深的体会是:理论模型再漂亮,如果不能用扫频数据证实,就只是一纸空文。反过来,扫频数据如果只停留在曲线层面,不理解每条曲线背后的控制环节贡献,改参数时依然只能靠试错。两者的闭环,才是阻抗分析这件事真正的价值所在。
如果你正在复现VSG阻抗建模的论文,建议从简单的两电平逆变器拓扑开始,先把扫频工具链跑通,再逐步往VSG控制、LCL滤波器、弱电网适应性分析这些方向展开。多留点时间给调试和排查,这门功夫急不来。