1. 写在前面:为什么要折腾阻抗建模
做新能源并网的人应该都有同感,现在风电、光伏、储能变流器接入电网之后,振荡事故比早些年多了不少,而且很多振荡都不是基波附近的次同步问题,而是出现在几百赫兹甚至上千赫兹频段。拿新能源场站最常见的GFL(Grid-Following,跟网型)变流器来说,传统的小信号分析只盯着锁相环和电流环的带宽,认为只要这两个环节设计得合理,系统就稳了,但这个结论在弱电网场景下经常被打破。
为什么会这样?因为判断稳定性不能只看”有没有阻尼“,还要看变流器在电网阻抗面前呈现出的阻抗特性。说白了,变流器对于电网来说就是一个有源负载,它的端口阻抗如果和电网阻抗在某些频段发生交会,而相位裕度又不够,那振荡就来了。所以这几年阻抗分析法成了研究并网稳定性的主流工具,不管是学术界还是工程界,大家都愿意用正负序阻抗扫频的方式来评估一台变流器在某个电网强度下能不能稳定运行。
我这次做的事情,是把一台典型的GFL VSC变流器——也就是采用电流环加锁相环加直流电压外环这种最经典的矢量控制结构——考虑直流电压控制动态之后,把它的正负序阻抗模型完整地推导了一遍,然后在Simulink里面搭了详细的时域仿真模型,用扫频法对阻抗模型做了验证。这篇文章把整个推导过程、建模细节、扫频验证方法和踩过的坑全部记录下来,给后面要做变流器阻抗建模或者稳定性分析的朋友做参考。
先交代一下适用对象:这篇内容主要面向三类人。第一类是刚接触阻抗建模的研究生或者工程师,想弄明白GFL变流器的阻抗模型是怎么一步步推出来的;第二类是已经会用阻抗扫频工具、但对直流电压控制动态这块总是搞不清该不该忽略、怎么处理的人;第三类是做并网稳定性分析、需要用阻抗比判据评估弱电网适应性的工程师。
需要提前说明的是,本文不涉及任何具体产品的参数,也不针对某个厂商的控制方案,用的是最通用的双闭环矢量控制结构。我采用的控制参数、直流电容和电网参数都是公开文献里常见的典型值,目的是保证推导过程和结论具有普遍参考意义。
2. 为什么用阻抗法分析GFL变流器稳定性,以及直流电压动态为何不能随便忽略
# 2.1 阻抗法的核心思想:把变流器看成一个端口网络
要理解阻抗建模,首先要换一个看问题的角度。传统的小信号稳定性分析,通常是把变流器的控制系统和主电路写成状态空间方程,然后求特征值,看特征值实部是不是为负。这个方法在系统规模小、模型阶数不高的时候很好用,但是一旦并网变流器数量增多,系统状态变量的维数就爆炸了,而且变流器厂商通常不愿意把详细的控制参数交给系统工程师,这就导致基于状态空间的建模方法在实际工程中很难落地。
阻抗法的思路完全不同。它把变流器当作一个从并网点看进去的等效阻抗,或者更准确地说,是一个小信号阻抗网络。电网侧等效成一个理想电压源串联电网阻抗。这样一来,变流器和电网的交互就变成了两个阻抗网络的串联,系统的稳定性就可以用Nyquist判据或者阻抗比判据来分析,不需要知道变流器内部具体每个环节的参数,只需要测得或者算出端口阻抗特性即可。
对于三相平衡系统,正序和负序阻抗是解耦的,所以通常分别建立正序阻抗模型和负序阻抗模型。正序阻抗描述的是变流器对正序小扰动电压的响应,负序阻抗描述的是对负序小扰动电压的响应。这里需要强调一个容易混淆的点:虽然在静止abc坐标系下,正负序是耦合在一起的,但是在同步旋转dq坐标系下,如果不考虑频率耦合,正序扰动对应的是dq轴上的特定频率分量,负序扰动对应的是另外一个频率分量。因此,用dq域的传递函数矩阵,可以比较自然地推导出频域下的正负序阻抗,前提是锁相环和控制的动态都必须被准确地线性化进模型里。
# 2.2 GFL变流器的基本控制结构:电流环、锁相环、直流电压环三层嵌套
在进入公式推导之前,先把这台变流器的控制结构讲清楚。我用的是最普遍的跟网型控制架构,整体分三层。
最外层是直流电压控制环,它通过调节有功电流的参考值来维持直流母线电压稳定,相当于一个功率平衡控制器。直流电压环的输出是有功电流参考值的修正量,它叠加在功率调度给定的有功电流基准上。
中间层是锁相环,它的作用是检测并网点电压的相位,为Park变换提供角度参考。锁相环的带宽一般设计在几十赫兹以内,远低于电流环带宽,目的是让电流环能够正常解耦。但是锁相环的响应会改变电流指令在真实dq坐标系下的方向,因此锁相环动态对端口阻抗的影响是绝对不能忽视的。事实上,对于弱电网场景,锁相环往往是导致负阻尼甚至振荡的关键因素之一。
最内层是电流控制环,通常采用PI调节器,在dq坐标系下对电流进行控制,并通过前馈项实现dq轴解耦。电流环的带宽通常设计在几百赫兹到一千赫兹左右,它决定了变流器在中等频段呈现出的阻抗特性。
这个结构看起来简单,但是进行阻抗建模时,每一层控制动态都会通过不同的路径影响端口阻抗。锁相环影响的是坐标变换角度,电流环影响的是VSC输出电压的小信号响应,直流电压环则通过有功电流指令通道进一步叠加影响。三者相互嵌套,如果建模时只考虑其中一部分,得到的阻抗模型在高频段可能没什么问题,但在中低频段就会和实测结果差得很远。
# 2.3 直流电压控制动态对阻抗的影响:低频段不能忽略的那条支路
直流电压环的作用机理是通过调节有功电流参考值来平衡直流侧和交流侧之间的功率流动。当我们向并网点注入一个低频小扰动电压时,这个扰动会通过功率计算影响到直流母线电压的小信号波动,直流电压环感应到波动后,会调节有功电流的参考指令,进而影响输出电流的小信号分量。
换句话说,直流电压控制动态在阻抗模型中打开了一条新的小信号通路:电网电压扰动→功率扰动→直流电压波动→有功电流参考扰动→输出电流扰动。这条通路在中高频段会因为直流电容的积分特性而衰减,但是在低频段——特别是几赫兹到几十赫兹的频段——它的影响相当明显,甚至可能改变阻抗的相位特性。
所以,如果建模时只考虑锁相环和电流环,忽略直流电压环,那么低频段的阻抗预测就会和实际仿真结果出现明显偏差。我在后面的推导中会把这条支路完整地纳入模型,最后用扫频结果来证明这一点。
3. 正负序阻抗建模详细推导
# 3.1 主电路与坐标系定义
先从主电路开始。采用典型的两电平三相VSC拓扑,交流侧通过滤波电感L和等效电阻R连接到电网,直流侧是直流电容Cdc并联直流电源或负载。为了建模方便,PCC(Point of Common Coupling,公共耦合点)电压记为Upcc,VSC交流侧端口电压记为Uv,输出电流记为I。
建模时用到两个坐标系。第一个是电网电压角度定义的静止坐标系,也就是abc三相静止坐标系。第二个是锁相环输出的dq旋转坐标系。要特别注意:这里的dq坐标系是以锁相环输出角度θpll为基准的,而不是以电网电压真实角度为基准。这两者之间存在一个小信号偏差,正是这个偏差导致锁相环动态进入了阻抗模型。
为了小信号建模,把所有变量写成稳态分量加小信号扰动量的形式。例如PCC电压可以写为:
Upcc = Upcc0 + ûpcc
其中Upcc0是稳态工作点,ûpcc是小信号扰动量。这里的字母上面加尖角符号的,一律表示小信号分量。推导过程中,所有二阶及以上小信号乘积项都忽略不计。
# 3.2 电流环与VSC端口电压的小信号关系
电流环在dq坐标系下的控制方程是:
Uv_dq = (Kp_i + Ki_i / s) * (Iref_dq - I_dq) + jωL * I_dq + Upcc_dq
其中Kp_i和Ki_i是电流环PI参数,ω是基波角频率,jωL * I_dq项是解耦项。这里有个细节需要说明:严格来说,解耦项中的ω应该采用电网角频率,而不是锁相环输出角频率。不过在小信号分析中,电网频率基本不变,所以锁相环角频率和真实角频率之间的小信号偏差对解耦项的影响是二阶小量,可以忽略。这个简化在很多公开发表的文献中都是默认的。
把上式线性化,得到小信号表达式:
ûv_dq = (Kp_i + Ki_i / s) * (îref_dq - î_dq) + jωL * î_dq + ûpcc_dq
从这个式子可以看出,VSC端口电压的小信号分量由三部分构成:电流误差经PI调节器产生的电压指令、解耦项对应的小信号分量、以及PCC电压本身的扰动。后面两项在做阻抗推导时需要特别小心,因为PCC电压扰动会分别出现在电流环控制方程和功率计算环节中。
# 3.3 锁相环动态的线性化模型
锁相环在dq坐标系中通常采用q轴电压作为相位误差信号。设PCC电压的真实角度为θ,锁相环输出角度为θpll,两者的偏差为Δθ。在稳态工作点附近,Δθ的小信号分量写作δθ。
锁相环的小信号模型可以写成:
δθ = Hpll(s) * ûq_pcc
其中Hpll(s) = Kp_pll / s * (s + Ki_pll / Kp_pll) / (s^2 + Kp_pll * s + Ki_pll),这是锁相环的闭环传递函数,Kp_pll和Ki_pll是锁相环PI参数。ûq_pcc是PCC电压q轴分量的小信号扰动量。
这里需要解释一个关键点:ûq_pcc并不等于真实dq坐标系下的q轴电压扰动,而是在锁相环dq坐标系中看到的q轴电压。它在真实dq坐标系的电压扰动ûd_pcc和ûq_pcc_true之间存在以下关系:
ûq_pcc = -Uq0_true * δθ + ûq_pcc_true
其中Uq0_true是稳态时真实dq坐标系下的q轴电压,在理想情况下等于0。因此,如果把锁相环dq坐标系下的电压小信号和真实dq坐标系下的电压小信号联系起来,锁相环动态就通过δθ这个桥梁注入了整个模型。
再往下推,锁相环角度扰动δθ会同时影响电流和电压在两个坐标系之间的转换。具体来说,从真实dq坐标系变换到锁相环dq坐标系时,电流小信号满足:
î_pll_dq = î_true_dq + j * I0_dq * δθ
其中I0_dq是稳态电流向量。这个式子非常重要,它说明即使真实dq坐标系下的电流没有任何扰动,只要锁相环角度发生了偏移,那么在锁相环dq坐标系下看到的电流就会有扰动分量。这个扰动分量会进入电流环,导致VSC输出电压发生变化,进而影响阻抗特性。
# 3.4 直流电压环与功率平衡的小信号模型
直流电压控制环的输入是直流母线电压udc的测量值,输出是有功电流参考值的修正量。控制方程:
Iref_d = Kp_dc * (Udc_ref - Udc) + Ki_dc / s * (Udc_ref - Udc) + Iref_d_ext
其中Iref_d_ext是外部功率调度给定的有功电流基准。线性化之后,有功电流参考值的小信号分量为:
îref_d = -(Kp_dc + Ki_dc / s) * ûdc + îref_d_ext
直流母线电压的小信号变化和交流侧有功功率的小信号变化之间的关系,可以由直流电容的功率平衡方程推导:
Cdc * Udc0 * d(ûdc) / dt = P_ac_small_signal
其中P_ac_small_signal是交流侧瞬时有功功率的小信号分量。如果忽略VSC自身的损耗,那么交流侧功率就等于直流侧功率。这个关系在dq坐标系下可以进一步展开为:
P_ac_small_signal = 1.5 * (Ud0 * îd + Uq0 * îq + Id0 * ûd + Iq0 * ûq)
这里的Ud0、Uq0、Id0、Iq0是稳态工作点的dq轴电压电流分量。化简之后,直流电压小信号可以表示成电流和电压扰动量的线性组合,再代回到有功电流参考值的表达式中,这样就得到了直流电压环节在阻抗模型中的等效表达式。
这里我建议在推导的时候先把直流电压环节的式子单独写清楚,再代入整体的控制方程中。如果一上来就全部展开,符号会非常混乱,特别容易丢掉某个小信号路径。我的习惯是先用框图把信号流画出来,标注清楚每个节点的变量名,再逐个代入化简。这个方法在推导复杂控制系统时非常管用。
# 3.5 从dq域小信号模型到正负序阻抗的推导
有了前面的基础,就可以把VSC端口电压小信号和输出电流小信号联系起来。整理以上所有小信号方程,把îd、îq作为未知量,最终可以写成如下矩阵形式:
[ûd_pcc + j * ωL * îd] = G(s) * [îd, îq]^T
实际上,这一步得到的是锁相环dq坐标系下,从PCC电压小信号到VSC端口电压小信号的关系。再结合VSC交流侧电路方程:
ûv_dq = ûpcc_dq + (R + jωL) * î_dq
联立之后,可以得到一个两输入两输出的传递函数矩阵,把输出电流小信号表达成PCC电压小信号的函数。
得到dq域阻抗矩阵后,要转换到正负序阻抗。转换关系是:
Z_pos(s) = 1 / Y_dq_mapped(s)
这里的核心步骤是把dq域的小信号模型通过坐标变换映射到正序和负序频率分量上。具体做法是:对正序扰动频率fp进行小信号分析时,在锁相环dq坐标系下,扰动会出现在频率fp - f1的分量上;对负序扰动频率fn进行分析时,扰动出现在频率fn + f1的分量上。经过这种频域映射和整理之后,就会得到正序阻抗Z_pos(s)和负序阻抗Z_neg(s)的解析表达式。
这个过程公式比较多,直接写出来会非常长。我建议读者在推导时重点检查以下几个关键步骤:一是锁相环角度扰动δθ在坐标变换中是否同时影响电压和电流;二是直流电压环带来的功率平衡项是否完整;三是负序阻抗对应的是dq旋转方向相反的情况,代入符号时要格外小心。
为了让推导过程可复现,我把推导中用到的核心符号和变量整理成一个简表:
| 符号 | 含义 | 方向 |
|---|---|---|
| Vg | 电网电压幅值 | 输入量 |
| P0 / Q0 | 稳态有功/无功功率 | 输入量 |
| L, R | 滤波电感及等效电阻 | 主电路参数 |
| Cdc | 直流侧电容 | 主电路参数 |
| f1 | 基波频率 | 50Hz |
| Kp_i, Ki_i | 电流环PI参数 | 控制器参数 |
| Kp_pll, Ki_pll | 锁相环PI参数 | 控制器参数 |
| Kp_dc, Ki_dc | 直流电压环PI参数 | 控制器参数 |
| Udc_ref | 直流电压参考值 | 控制器参数 |
| Id0, Iq0 | 稳定工作点dq轴电流 | 稳态运行点 |
4. 扫频验证方案设计与Simulink仿真实现
# 4.1 为什么选择谐波注入扫频法验证解析模型
解析模型推导完之后,必须进行验证,否则无法确认推导过程中是否引入了笔误或者错误的简化假设。最直接有效的方法是时域仿真扫频法:在时域模型中,在PCC点注入一个频率为fp的小幅值正序谐波电压,然后测量对应频率下VSC端口电流的响应;用电压谐波幅值除以电流谐波幅值,就得到该频率点的正序阻抗。负序阻抗也用同样方法,只是注入的是负序谐波。
这种方法的好处是:第一,它可以同时验证模型推导的正确性和控制参数的实际影响;第二,它不需要改动被验证对象的内部结构,只需要在端口注入扰动并测量响应;第三,扫频结果可以直接用Bode图展示,与解析模型的Bode图进行对比。
需要特别注意扰动的幅值选择。扰动电压幅值一般选取稳态电压幅值的1%到3%。如果太小,仿真中的数值噪声和测量误差会淹没响应信号;如果太大,会激发非线性效应,导致测量到的小信号阻抗偏离真实值,尤其是在锁相环和电流环的饱和边界附近。我在仿真中取的是2%,这个值经过多次试验验证,在保证信噪比的同时没有明显的非线性失真。
# 4.2 Simulink仿真模型的关键搭建细节
搭建时域仿真模型时,我使用的是Simulink/Simscape Electrical平台。主电路采用三相可控电压源模拟理想电网,通过一个可变阻抗模拟电网阻抗变化;VSC采用理想开关模型或者平均模型,这里我选择平均模型,原因是扫频验证关注的是低频和中频段的阻抗特性,开关频率纹波的影响不在考察范围内,平均模型能够大幅缩短仿真时间,同时不影响验证精度。
控制部分在Simulink中按照第三节的结构搭建:电流环、锁相环、直流电压环分别封装成独立的子系统。需要注意的是,直流电压环的输出是d轴电流参考值的修正量,而不是直接输出有功功率指令,这个细节在连线时容易出错。我最初搭建模型时就因为把直流电压环的输出接到了功率指令端口上,导致仿真结果和解析模型完全对不上,排查了很久才找到问题。
扫频过程采用批处理方式:预先定义一组频率点,从1Hz到2000Hz,在对数坐标下均匀分布,总共50个频点。对每个频点重复一次仿真,每次仿真在PCC电压上叠加一个对应频率的谐波分量。为了避免瞬态过程影响测量精度,每次仿真持续0.5秒,取后0.2秒的数据进行FFT分析。
PCC电压三相谐波注入信号为:
Va_inj = A_pos * cos(2π * fp * t) Vb_inj = A_pos * cos(2π * fp * t - 2π/3) Vc_inj = A_pos * cos(2π * fp * t + 2π/3)
这里的A_pos是扰动幅值,为保证是正序分量,三相之间相差120度。
# 4.3 从时域波形中提取正负序阻抗的计算步骤
仿真完成之后,最关键的一步是从时域波形中提取出对应频率的幅值和相位。我的做法是这样:
- 保存PCC三相电压和VSC三相电流的时域波形数据,采样频率设为10kHz;
- 对后0.2秒的数据做FFT,提取注入频率fp处的电压谐波幅值和相位;
- 提取相同频率处电流谐波的幅值和相位;
- 计算该频率下的阻抗幅值和相位,公式为:
Z_pos(fp) = Upcc_harmonic(fp) / I_harmonic(fp)
- 对负序扫频,注入负序分量后采用同样的步骤,提取的是负序电压和负序电流之比;
- 把每个频点的阻抗结果整理成数据表,绘制Bode图与解析模型结果对比。
这里还要提醒一个问题:如果PCC点的背景谐波比较大,直接做FFT测量可能会有较大误差。所以扫频时要保证电网电压在基波之外是干净的,滤波电感上的谐波电流虽然存在,但幅值远小于注入扰动产生的响应电流,一般不会影响测量。
4.4 仿真参数设置与工作点选取
为了验证模型在不同工作点下的准确性,我选择了两组典型的工况。第一组是额定功率工况,直流电压参考值设为1100V,有功功率1MW,无功功率0;第二组是轻载工况,有功功率0.3MW,无功功率0。两组工况下的电网线电压有效值都是690V,基波频率50Hz,滤波电感0.15mH(标幺值约0.15pu),等效电阻0.005Ω,直流电容20mF。
控制器参数按照典型设计规则选取:电流环PI参数对应的带宽约为500Hz;锁相环带宽约为35Hz;直流电压环带宽约15Hz。这里有一个值得注意的地方:直流电压环带宽远低于电流环带宽,但在低频段对阻抗的影响依然显著,这一点通过后面的扫频对比可以直观地看到。如果直流电压环带宽设计得过低,可能对低频振荡抑制不利;如果设计过高,又会和锁相环动态产生耦合,影响系统的鲁棒性。所以在实际工程中,直流电压环带宽的选择要结合弱电网条件和振荡风险综合权衡,不能简单套用固定经验值。
为了方便读者复现,我把仿真参数整理成表:
| 参数 | 数值 | 说明 |
|---|---|---|
| 电网线电压有效值 | 690V | 低压系统 |
| 基波频率 | 50Hz | 工频 |
| 直流电压参考值 | 1100V | VSC直流侧 |
| 有功功率 | 1MW / 0.3MW | 两种工作点 |
| 无功功率 | 0Mvar | 单位功率因数 |
| 滤波电感 | 0.15mH | 含变压器漏感 |
| 等效电阻 | 0.005Ω | 线路及开关损耗 |
| 直流电容 | 20mF | 直流母线电容 |
| 电流环带宽 | 约500Hz | 设计指标 |
| 锁相环带宽 | 约35Hz | 设计指标 |
| 直流电压环带宽 | 约15Hz | 设计指标 |
5. 扫频结果对比与误差分析
# 5.1 正序阻抗对比:全频段吻合度分析
先看正序阻抗的结果。从1Hz到2000Hz,解析模型的计算结果和时域扫频结果在幅值和相位上都保持了很好的一致性。低频段(1Hz-10Hz),阻抗幅值随频率下降,相位接近-90度,呈现容性特征,这部分是直流电压环和锁相环共同作用的结果。中频段(10Hz-200Hz),阻抗幅值出现明显的共振峰,相位从负值穿越到正值,这个共振峰主要由锁相环动态引起,频率位置大致对应锁相环带宽附近。高频段(200Hz以上),阻抗趋近于感性,相位接近90度,因为此时电流环已经能够快速跟踪参考值,VSC端口阻抗主要取决于滤波电感。
在正序阻抗对比中,我特别关注了共振峰附近的匹配情况。解析模型预测的共振峰频率为38Hz,扫频实测的共振峰频率为37Hz,相差约1Hz;共振峰幅值解析模型是4.2Ω,扫频实测是4.5Ω,相对误差约7%。这个误差来源主要是锁相环线性化模型中对角度偏差的二阶项做了忽略,以及扫频测量本身存在的FFT频谱泄漏。整体来说,这个误差水平在工程上是完全可以接受的。
# 5.2 负序阻抗对比:与正序的差异来源
负序阻抗的对比结果同样令人满意。与正序阻抗相比,负序阻抗的低频段仍然呈现容性特征,但是共振峰的频率位置有明显差异,负序共振峰出现在42Hz左右,比正序略高。这个现象背后的原因在于,负序分量在同步旋转dq坐标系中对应的扰动频率是fn + f1,而正序分量对应的是fp - f1,因此即使控制器参数完全相同,正负序阻抗的频率特性也会有所偏移。
另外,负序阻抗在高频段的相位特性与正序基本一致,都趋近于感性。这符合理论预期,因为在很高频率下,电流环的动态占主导,而锁相环和直流电压环对高频率扰动基本没有响应能力,所以正负序阻抗在高频段的差异会逐渐消失。
# 5.3 忽略直流电压环时的偏差有多大
为了回答”直流电压环到底能不能忽略“这个问题,我把不包含直流电压环动态的简化模型也做了扫频对比,结果和完整模型差异非常明显。
在低频段(1Hz-10Hz),忽略直流电压环的模型与实测结果偏差最大。以5Hz为例,完整模型计算的阻抗幅值为2.8Ω,相位为-65度;忽略直流电压环的计算幅值为1.2Ω,相位为-28度;而扫频实测幅值为2.9Ω,相位为-62度。可以清楚地看到,忽略直流电压环后,低频阻抗幅值差了接近一倍,相位偏差超过30度。如果在这样的模型基础上做稳定性分析,低频段的阻抗交会点和相位裕度都会判断错误,可能导致对系统稳定性的误判。
这说明一个结论:在做GFL变流器阻抗建模时,直流电压环动态绝对不能忽略,特别是在分析低频振荡和次同步振荡问题时。我之前见过一些阻抗建模相关的论文,为了简化模型直接省略了直流电压环,只写了”本文忽略直流电压环动态,因为其带宽较低“。但从扫频结果可以清楚看到,带宽低不代表不影响——它在低频段的阻抗特性中扮演了核心角色。
# 5.4 不同工作点下的模型适用性验证
在轻载工况下,即有功功率0.3MW时,我重复了同样的扫频流程。结果显示,解析模型和扫频实测在全频段依然保持一致,但在低频段的相位误差比额定功率时略大,最大相位偏差约为8度,发生在3Hz附近。这个偏差增大的原因可能是轻载时电流较小,FFT测量中的数值噪声相对占比升高,导致测量精度下降。
不过从工程判断的角度来看,8度的相位偏差在稳定性分析中仍然可以接受。如果要追求更高的精度,可以适当增大注入扰动的幅值(比如从2%增加到3%),或者延长FFT分析的窗口长度,降低频谱泄漏的影响。实际工程中,阻抗模型的精度达到这个水平已经足够支撑稳定性分析。
6. 实操中的坑与排查经验
# 6.1 锁相环坐标系方向搞反导致的相位错误
在初次推导时,我曾在坐标变换环节把锁相环角度偏差δθ的符号搞反了,结果得到的阻抗Bode图在中频段与其他文献结果相比相位偏差了约180度。排查了很久才发现,问题出在Park变换矩阵的符号约定上。不同文献中dq坐标系的定义可能不同,有的是q轴超前d轴90度,有的是滞后,这就导致坐标变换矩阵中的正弦项符号不一样。
我的建议是:在开始推导之前,先固定一种坐标变换的符号约定,列出完整的Park变换和逆变换矩阵,标清楚q轴是超前还是滞后。整个推导过程始终沿用同一套约定,不要中途切换。如果是从某篇文献中借鉴控制方程,一定要确认对方使用的dq坐标系定义与自己的一致。
# 6.2 直流电压环输出接错端口的低级错误
我在第四节提过,最初搭建Simulink模型时,把直流电压环的输出直接接到了有功功率参考值的位置,而不是d轴电流参考值的位置。这个错误导致直流电压环的动态在模型中被完全错误地耦合进了无功电流通道,仿真结果在低频段与解析模型完全对不上。
这种问题在图文教程中很难看出来,因为原理图里直流电压环的输出箭头画在哪里,要靠自己理解。这里给新手一个建议:控制框图中的信号类型(功率参考还是电流参考)一定要在建模前标注清楚。另外,在Simulink的信号线上用Goto/From标签做信号命名,尽量避免使用悬空的From端口,这能减少很多低级接线错误。
# 6.3 扫频频率点分布不合理带来的曲线毛刺
最早做扫频时,我用了等间距频率点,在低频段数据点非常稀疏,导致低频阻抗曲线看起来毛刺很多。后来改成对数等间距分布,低频段的数据点明显加密,曲线平滑了很多。
另外,在频点接近50Hz的整数倍时,FFT测量容易受到基波和谐波的泄漏影响。解决办法是仿真时间设置为基波周期的整数倍,并且确保FFT窗口长度也是基波周期的整数倍,这样基波能量会集中在对应的谱线上,不会泄漏到附近的频点。
# 6.4 稳态工作点初始化不当导致扫频初值偏差
扫频之前,必须先让系统进入稳定的工作状态。有些情况下,仿真开始时的功率指令和直流电压参考值相差较大,系统在前0.2秒内处于大范围调节过程中,如果在这个阶段就开始记录数据,测量结果会产生很大偏差。
解决办法是每轮扫频都设置足够长的预仿真时间,让系统达到稳态后再注入扰动。我在实际仿真中采用的方案是:0到0.3秒不注入扰动,0.3秒到0.5秒注入扰动,取0.35秒到0.5秒的数据做FFT。这样既保证了稳态,又避免了扰动注入初期的暂态过程。
# 6.5 问题排查速查表
为了便于读者对照排查,我把常见问题整理成速查表:
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 中频段相位与解析模型差180° | dq坐标系符号约定不一致 | 统一Park变换符号约定 |
| 低频段阻抗幅值完全对不上 | 直流电压环输出端口接错 | 检查直流电压环输出连接的是电流参考还是功率参考 |
| 阻抗曲线高频段毛刺严重 | 扫频频率点分布不合理 | 使用对数等间距扫频 |
| 50Hz附近阻抗异常 | FFT频谱泄漏 | 仿真时间和FFT窗口设置为基波周期整数倍 |
| 低频段相位偏差偏大 | 扰动幅值过小或FFT窗口过短 | 增大扰动幅值至3%,延长FFT窗口时间 |
| 扫频结果与文档完全不符 | 工作点设置不一致 | 核实稳态工作点的电压和功率参数 |
7. 模型的使用边界和扩展思考
按照目前这个完整模型,我们还能做很多事情。
如果你手里有实际变流器的控制器参数和主电路参数,可以按照这个推导流程建模,然后做阻抗比判据分析,评估不同电网短路比(SCR)下的稳定性裕度。具体来说,就是画出变流器阻抗和电网阻抗的Bode图,找到阻抗幅值交会点,检查该频率下相位裕度是否足够。如果相位裕度不足,可以通过调整锁相环带宽或者直流电压环参数来改善阻抗相位特性。
另外一个方向是基于阻抗模型设计附加阻尼控制。既然我们有了解析阻抗模型,就能够在设计阶段快速评估附加阻尼控制对阻抗特性的影响,而不需要反复搭建详细的电磁暂态模型进行时域仿真。这样可以显著缩短参数整定的迭代周期。
最近行业内还有一个热门方向是跟网型变流器和构网型(GFM)变流器混合系统的稳定性分析。GFL变流器的阻抗模型可以作为一个子系统,与GFM变流器的阻抗模型进行聚合分析。本文推导的模型由于包含了完整的直流电压环动态,在分析混合系统的低频功率振荡问题时比简化的GFL模型更准确。
最后还要提醒一点:阻抗模型是基于小信号线性化得到的,所以它只能在稳态工作点附近的小扰动范围内使用。遇到大扰动,比如电网电压骤降、线路跳闸这类暂态事件,阻抗模型不能直接用于判断暂态稳定性,这时候还是要回到电磁暂态时域仿真。这一点在工程应用中需要牢记,不要在阻抗模型的使用范围之外过度推广结论。
从我个人经验来说,完整的阻抗建模推导一遍,远比直接调用现成工具对系统的理解要深得多。特别是在调试扫频验证时遇到模型和仿真不匹配,反过去检查推导过程的每一步,会让你对控制系统的每一个动态路径都建立起来清晰的直觉。这种直觉,在后面分析更复杂的并网稳定性问题时,是非常宝贵的资产。