光伏并网这块,早期大家做仿真基本都绕不开 PQ 控制和 droop 控制。PQ 控制简单粗暴,有功无功解耦,并网稳定,但说白了它就是个“跟屁虫”,电网电压稍微晃一下,逆变器就懵了,既没有惯量也不参与调频,电网里全是电力电子设备的时候,整个系统的稳定性就会变得很脆弱。下垂控制好一些,能让逆变器模拟出一次调频和调压的外特性,但它本质上还是静态的,缺少转动惯量和阻尼,动态响应过程跟真实同步机差了十万八千里。
直到 VSG(Virtual Synchronous Generator,虚拟同步发电机)出现,才算是从底层思路上解决了这个问题。它把同步发电机的转子运动方程、调速器和励磁调节特性全部写进逆变器的控制算法里,让一台纯粹由电力电子器件构成的逆变器,在电网眼里变成了一台“假的”同步发电机。这个思路妙就妙在,你不改变硬件,只改控制策略,就能让新能源机组拥有与火电、水电类似的惯量支撑和阻尼特性。
我用 Matlab/Simulink 搭了一套基于 VSG 控制的三相光伏并网逆变器仿真模型,完整覆盖了从光伏阵列、Boost 电路、逆变桥、LCL 滤波器到 VSG 核心控制算法的全部环节。这篇文章就把这套模型的搭建思路、参数设计、实操过程和一些容易踩的坑一次讲清楚。你要是正在做新能源并网控制相关课题,或者准备拿 VSG 做毕业设计、发论文,这套东西值得花点时间好好弄明白。
1. VSG 控制到底解决了什么问题
1.1 传统并网控制方案的两个死穴
先说 PQ 控制。PQ 控制的核心思想是让逆变器输出功率严格跟随指令值,用电流内环把并网电流锁在给定的 dq 轴分量上。这种控制方式在电网电压理想的情况下毫无问题,稳定、快速、精度高,电流波形控制得漂漂亮亮。但它的致命弱点在于,逆变器本身没有任何“感知”电网频率变化的能力——系统频率掉下来,它不觉得紧张,也不肯多出力气,完全是一个被动型的电流源。
在光伏渗透率低的年代,这个弱点不算什么,因为电网里还有大量同步发电机在“扛着”频率,个别逆变器偷懒不影响大局。但到今天,很多局部电网的光伏占比已经超过 50%,同步发电机被一步步替换掉,电网的等效惯量急剧下降。这个时候再让所有逆变器都当“跟屁虫”,频率一波动就没人站出来提供支撑,严重的频率事故就离你不远了。
下垂控制算是向前走了一步。它借鉴了同步发电机的一次调频和一次调压外特性:频率下降,有功功率自动增加;电压下降,无功功率自动增加。这种 P-f 和 Q-V 的静态关系确实能让逆变器参与电网调节,不再完全当一个透明人。
但下垂控制的局限也很明显——它模拟的只是同步发电机的静态外特性,完全不包含转子运动方程带来的动态响应过程。真实同步机在受到扰动后,转子会在惯量和阻尼的共同作用下经历一个振荡衰减的过程,这个过程的动态行为对电网稳定至关重要。下垂控制没有这层机制,动态响应是纯比例式的,有功功率突变时频率和功率之间没有任何惯性缓冲,直接一步到位,在弱电网下容易激发振荡模式。
1.2 VSG 的本质:把机械方程塞进电力电子控制里
VSG 的核心思路可以概括为一句话:用同步发电机的数学模型去驱动逆变器的控制环路,让逆变器在机电暂态层面“像”一台同步机。
具体实现上,VSG 控制通常会用到两个关键方程:
转子运动方程(摇摆方程):
J · dω/dt = Pm/ω - Pe/ω - D·(ω - ωn)
其中 J 是虚拟转动惯量,D 是虚拟阻尼系数,Pm 是机械功率(由调速器方程给出),Pe 是电磁功率(由输出功率反馈得到),ωn 是额定角频率。
调速器方程(一次调频):
Pm = Pref + Kp·(ωn - ω)
其中 Kp 是有功-频率下垂系数,模拟同步机的调速器特性,让 VSG 能参与一次调频。
励磁调节方程(一次调压):
E = E0 + Kq·(Qref - Qe)
其中 Kq 是无功-电压下垂系数,E0 是额定电动势幅值,Qe 是输出无功功率。
有了这三个方程,控制架构就变得非常清晰了:VSG 算法接收外部参考功率、测量得到的输出功率和电网电压频率,算出虚拟电动势的相位 θ 和幅值 E,然后生成三相参考电压,交给电压电流双闭环跟踪,最终驱动 PWM 逆变桥。
这套方案比下垂控制强在哪儿?两个词:惯量和阻尼。J 给系统提供了“记忆”,功率突变时频率不会瞬间跳变,而是像真实转子一样有一个惯性过渡;D 给系统提供了“摩擦”,振荡能量会被逐步消耗掉,而不是无限振荡下去。这两个参数直接决定了系统并网后的动态品质,也是 VSG 研究中最有意思、最值得调的部分。
1.3 VSG 在光伏场景下的特殊意义
光伏和传统同步电源有个本质区别:光照强度一变,输出功率立刻跟着变,你没办法像火电机组一样随时调整“汽门”来跟踪指令。所以光伏 VSG 系统里,通常把“机械功率”这个概念做了一个映射——最大功率点跟踪(MPPT)给出当前光照下的最大可发功率,VSG 只需要在这个功率上限之内去响应频率调节需求。
这就带来一个非常实际的好处:光伏 VSG 既能保证让组件尽可能多发电,又能在电网频率跌落时,通过让直流侧电容放电释放能量,暂时性地增加有功输出,给电网一个“虚拟惯量支撑”。等频率恢复稳定,再逐步回到 MPPT 工作点。这种双重身份让光伏不再只是一个“只知道晒太阳发电”的设备,而是真的能承担电网支撑责任的发电单元。
2. 仿真模型整体架构设计
2.1 系统拓扑选型
我搭建的这套模型采用两级式拓扑结构:
光伏阵列 + Boost 升压电路 + 直流母线电容 + 三相两电平逆变桥 + LCL 滤波器 + 电网
选择两级式而不是单级式,有几个考虑因素。单级式结构虽然省了一个变换器,但直流母线电压完全依赖光伏阵列输出电压,而光伏阵列的输出电压随光照和温度波动很大,这会直接干扰逆变器的调制比,导致交流输出电压难以稳定。加入 Boost 电路之后,直流母线电压被主动控制在 700V 左右,不管光伏阵列输出是 300V 还是 500V,逆变器都工作在理想的调制条件下,控制品质更有保障。
三相两电平逆变桥是目前的绝对主流配置,技术成熟、控制简单、成本可控,对于研究 VSG 控制而言完全够用。T型三电平或者 ANPC 拓扑当然更好,但那是另一个层次的课题,放在 VSG 控制研究阶段意义不大——先把这个控制算法跑通,再考虑拓扑升级不迟。
2.2 控制分层设计
整套控制系统分成三个层次:
第一层是底层控制,包含电流内环和电压外环。电压外环跟踪 VSG 算法生成的虚拟电动势参考值,输出电流参考给电流内环;电流内环进行精细的跟踪控制,生成 PWM 调制波。这一层的作用是让逆变器输出电压在几十微秒的时间尺度上严格跟随指令,是整个控制精度的基础。
第二层是 VSG 核心算法层。这一层输入额定频率、虚拟惯量、阻尼系数、参考有功功率和参考无功功率,输出虚拟电动势的幅值和相位。它工作的本质是实时求解同步发电机的转子运动方程和励磁方程,时间尺度在几十毫秒量级,决定了系统的机电暂态行为。
第三层是上层调度层,包括 MPPT、模式切换、限幅保护逻辑。MPPT 用扰动观察法,跟踪光伏阵列的最大功率点,把最大功率值作为 VSG 的功率上限输入。这一层还负责处理启动、停机、故障穿越等特殊情况下的模式切换。
三层结构各管各的频段,互不干扰,这也是工程上设计 VSG 系统比较通行的做法。
2.3 Matlab 建模的整体思路
Matlab/Simulink 里搭建这套系统,我建议采用“主电路 + 控制子系统 + 测量与保护”三块分离的结构。主电路放电力电子元件,控制子系统用封装好的 S-Function 或 Function Block 写 VSG 算法,测量与保护负责采样、坐标变换和故障检测。
主电路部分的建模不用太复杂,光伏阵列用 Simscape Electrical 里的 PV Array 模块,Boost 和逆变桥用 Universal Bridge 模块,LCL 滤波器直接用 RLC 元件搭。控制部分我建议写成离散的嵌入式 MATLAB Function,这样方便后期把算法移植到 DSP 或者做硬件在环测试时复用。
有一点值得特别提醒:整个仿真模型一定要用离散求解器,步长建议取 1e-6 秒到 1e-5 秒之间。连续求解器虽然精度高,但算力消耗大,而且 VSG 算法本身是数字控制器里实现的,用离散求解器更贴合真实硬件运行环境。我在这个模型里用的是步长 1e-5 秒的离散求解器,逆变桥的 PWM 开关频率设成 10kHz,两者匹配良好,仿真速度也还能接受。
3. 核心模块搭建与参数配置
3.1 光伏阵列与 MPPT 模块
光伏阵列的建模参数直接决定了整个系统的功率底座。我选的是某厂家 260W 光伏组件的参数,12 块串联、14 串并联,标准测试条件(STC)下的最大功率大约 44kW。这个容量配合 50kVA 的逆变器,留出了一点功率余量,方便做 VSG 惯量支撑实验时看到明显的动态过程。
光伏阵列的输出特性是典型的非线性 I-V 和 P-V 曲线,不同光照和温度下最大功率点位置差异很大。MPPT 用扰动观察法(P&O):
- 采样当前电压 V、电流 I,计算功率 P = V × I
- 与前一步功率 P_old 比较
- 若 P > P_old,维持扰动方向;若 P < P_old,反转扰动方向
- 以固定步长增量更新参考电压 V_ref
扰动步长我取的是直流母线电压参考值的 0.1%,既保证了跟踪速度,又不会让稳态波动太大。MPPT 的输出经过一个限幅环节后,作为 VSG 的有功功率参考上限输入给调速器方程,这样 VSG 在有功调节时就不会试图请求超过光伏实际可发能力的功率。
3.2 Boost 升压电路与直流母线电压控制
Boost 电路的任务就是把光伏阵列的可变直流电压升到稳定的 700V 直流母线。这个环节用电压外环、电流内环的双闭环控制结构。
电压外环的 PI 参数需要好好调。母线电容我用的是 5000μF,这个容量对 44kW 级别逆变器来说属于中等偏大,好处是直流母线电压的动态波动小,VSG 在做惯量支撑、有功突变的时候直流母线不容易大幅跌落。代价是电容体积、成本增加,但仿真里不用考虑这个,大点更稳。
电压环带宽取 20Hz 左右,电流环带宽取 200Hz 左右。这样频率分层明确,母线电压调节比 VSG 有功调节慢,但比 MPPT 快,三个控制环路不会互相打架,各司其职。
这里有一个仿真中经常被忽略的细节:Boost 电感的取值。电感太小,电流纹波大,高频谐波污染直流侧;电感太大,电流响应慢,动态性能变差。我用的电感是 2mH,在开关频率 10kHz、平均电流 60A 工况下,电流纹波率大约 8%,比较均衡。公式是 ΔI = (V_in × D × T_sw) / L,拿数据算一下就知道这个参数是合理的。
3.3 VSG 核心算法的 Simulink 实现
VSG 核心算法是整个模型的灵魂,我把它封装在一个 MATLAB Function 模块里,输入是参考有功功率、参考无功功率、实测输出有功功率、实测输出无功功率和电网频率,输出是虚拟电动势幅值 E 和相位 θ。
实现代码的核心逻辑大致如下:
function [E, theta, Pm] = vsg_core(Pref, Qref, Pmeas, Qmeas, omega_grid, param) % 参数提取 J = param.J; % 虚拟惯量 D = param.D; % 虚拟阻尼 Kp = param.Kp; % 有功下垂系数 Kq = param.Kq; % 无功下垂系数 omega_n = param.omega_n; E0 = param.E0; % 调速器方程:计算等效机械功率 Pm = Pref + Kp * (omega_n - omega_grid); % 转子运动方程:更新角频率 persistent omega_m; if isempty(omega_m) omega_m = omega_n; end d_omega = (Pm / omega_m - Pmeas / omega_m - D * (omega_m - omega_n)) / J; omega_m = omega_m + d_omega * param.dt; % 相位积分 persistent theta_m; if isempty(theta_m) theta_m = 0; end theta_m = theta_m + omega_m * param.dt; theta = theta_m; % 励磁调节方程:计算虚拟电动势幅值 E = E0 + Kq * (Qref - Qmeas); end这里有几个关键细节需要说明。
第一,转子运动方程里我用的是 Pm/ω - Pe/ω 的形式,而不是简化的 Pm - Pe。虽然在小扰动分析下这两者近似相等,但在大扰动场合,转矩形式的方程更接近物理本质,动态响应更准确。
第二,相位 θ 一定要用积分器自己积分,不能直接用 ω × t 去计算。VSG 本质上是建立自己的相位参考,需要维持相位连续,如果每次都从 ω × t 重新算,控制器输出的参考会跳变,并网瞬间会引发非常大的冲击电流。
第三,无功-电压下垂方程的实现里,E0 是额定电动势幅值,取电网相电压幅值 311V。Kq 的取值要跟无功功率的额定值配合好,一般让无功从 0 到额定无功变化时,电压幅值变化 5%~8% 左右。
VSG 输出的三相参考电压为:
phase_a = E * sin(theta); phase_b = E * sin(theta - 2*pi/3); phase_c = E * sin(theta + 2*pi/3);这三路信号就是电压外环的参考值。
3.4 电压电流双闭环与 PWM 调制
VSG 算法生成的是虚拟电动势参考,接下来需要电压外环和电流内环来精确跟踪。这里的电压环是交流电压环,工作在 dq 旋转坐标系下,带宽设为 100Hz 到 200Hz;电流环带宽更高,设为 1kHz 到 2kHz。
我用了 LCL 滤波器,电感一取 0.4mH,电感二取 0.2mH,电容取 15μF,阻尼电阻取 2Ω。LCL 滤波器的优势在于高频谐波衰减能力强,同样的滤波效果下总电感量比 L 型滤波器小得多。但代价是 LCL 存在谐振峰,必须加阻尼。
有源阻尼可以采用电容电流反馈或者电容电压反馈的方式,我选的是电容电流反馈,反馈系数取 2。这个方法比在电容支路串电阻的无源阻尼方案效率高,不额外消耗有功功率,而且实现也不复杂。注意 LCL 谐振频率要避开控制带宽和开关频率:
$$f_{res} = \frac{1}{2\pi}\sqrt{\frac{L_1+L_2}{L_1 L_2 C_f}}$$
按上述参数,LCL 谐振频率约为 3.3kHz,远低于 10kHz 开关频率,又明显高于电流环带宽,比较安全。
3.5 核心参数总表
下面的参数表是我反复调试后确定的一套比较稳定可靠的配置,可以直接照搬作为初始值,再根据自己的实验目的微调:
| 参数名称 | 符号 | 数值 | 备注 |
|---|---|---|---|
| 额定功率 | Sn | 50kVA | 留有一定裕量 |
| 直流母线电压 | Vdc | 700V | Boost 输出稳压 |
| 电网线电压有效值 | Vg | 380V | 50Hz |
| 虚拟转动惯量 | J | 2.5 kg·m² | 可调范围 0.5~10 |
| 虚拟阻尼系数 | D | 30 | 可调范围 5~100 |
| 有功下垂系数 | Kp | 20000 | 满功率对应 0.5Hz 频差 |
| 无功下垂系数 | Kq | 1000 | 满无功对应 6% 电压差 |
| LCL 电感一 | L1 | 0.4mH | 逆变器侧 |
| LCL 电感二 | L2 | 0.2mH | 网侧 |
| LCL 电容 | Cf | 15μF | 星形接法 |
| LCL 阻尼电阻 | Rd | 2Ω | 无源阻尼备用 |
| 开关频率 | fsw | 10kHz | PWM 载波 |
| 直流母线电容 | Cdc | 5000μF | 支撑惯量响应 |
| MPPT 扰动步长 | ΔV | 0.7V | 对应母线电压的 0.1% |
这套参数的来历不是拍脑袋,都是按公式推出来的。比如 Kp 的取值逻辑是:电网频率下降 0.5Hz(1% 额定频率),VSG 应增发满功率 50kW,所以 Kp = 50kW / 0.5Hz = 100000 W/Hz。我实际上取 20000,是为了让逆变器在光伏可用功率范围内安全运行,留出了比较大的调节裕度,避免频率下跌时 VSG 请求的功率超过光伏实际能发出来的量,导致直流母线电压崩掉。
J 和 D 的取值更有讲究。虚拟转动惯量的物理意义是,当功率不平衡量为 50kW 时,频率的变化率为 dω/dt = ΔP / (J·ω) = 50000 / (2.5 × 314) ≈ 63.7 rad/s²,大约每秒 10Hz 的变化率。这比真实同步机大得多(真实大型发电机 J 值往往是这个量级的百倍以上),但在逆变器场景下是合理的——逆变器能提供的惯量支撑时间本来就短,惯量太小支撑时间不够,惯量太大反而可能造成频率过冲过大。仿真里多调几组对比就明白了。
4. 实操过程与仿真结果分析
4.1 仿真模型搭建步骤
整套模型的搭建我按下面的顺序推进,建议你也照着这个次序来,能少走很多弯路:
第一步,搭主电路。在 Simulink 里放置 PV Array 模块,设置组件参数;接 Boost 电路,用 MOSFET 加二极管构成;再接三相全桥逆变器,用 Universal Bridge 模块,选 IGBT 加反并联二极管,导通压降设为默认值就行;最后接 LCL 滤波器、电网电压源。
第二步,搭 Boost 控制。电压外环参考值设 700V,反馈取母线电压测量值,经过 PI 调节器后作为电流内环参考,跟电感电流反馈比较后经第二个 PI 输出占空比,调制 PWM 驱动 MOSFET。这一步跑通后先验证一个静态工况:光照 1000W/m²,温度 25°C,看直流母线能不能稳稳站住 700V。
第三步,搭 VSG 算法。按照前面贴的 MATLAB Function 代码写好核心逻辑,输入功率测量值、输出电动势参考。这一步先不用接电压电流双闭环,直接把 VSG 输出电动势参考接到一个理想三相电压源上,先看 VSG 算法本身能不能稳定起振、能不能响应功率指令。
第四步,搭电压电流双闭环。电压外环跟踪 VSG 的电动势参考,电流内环跟踪电压环输出,PWM 调制逆变桥。这层接好后,整个功率链路就全通了,可以在负载突变工况下测试动态响应。
第五步,整合 MPPT 和保护逻辑。MPPT 算出来的最大功率作为 VSG 的有功参考上限。保护逻辑里至少要有直流母线过压保护、过流保护和电网电压跌落检测。
4.2 空载启动与并网预同步
空载启动是 VSG 系统最容易翻车的地方。我先让 VSG 带着一个很小的空载功率指令启动,观察它能不从零开始平滑建立电压,能不能稳定运行,有没有启动冲击。
初始相位必须做预同步处理,保证 VSG 虚拟电动势与电网电压在并网断路器闭合瞬间的相位差足够小,不然合闸瞬间会产生巨大的冲击电流。我这里做了一个简单的预同步模块:测量电网电压相位 θ_grid,测量 VSG 输出电压相位 θ_vsg,把两者的差值经过一个 PI 调节器叠加到 VSG 的角频率指令上,让 VSG 的相位慢慢追到跟电网同步。
预同步成功后相位差小于 0.01rad,系统判断满足并网条件,闭合并网断路器,VSG 进入并网运行模式。
4.3 光照突变下的惯量支撑响应
我最想看的一个工况是光照突变:光伏阵列在 1000W/m² 满发状态下运行,t=1s 时云层遮住,光照突然降到 400W/m²。
传统 PQ 控制在这个工况下的表现是:MPPT 检测到功率下降,有功输出直线跌落,电网频率瞬间失去支撑,如果没有别的机组顶上,频率就会明显下跌。而 VSG 控制下,转动惯量 J 提供了“缓冲”:光伏功率虽然骤降,但 VSG 可以在短时间内调用直流母线电容储存的能量,维持有功输出不会瞬间崩塌。
仿真波形显示,频率跌落幅度明显减小、频率变化率也明显变缓,VSG 向电网提供的动态支撑时间大约维持了 0.3 秒,然后平稳过渡到新的稳态功率点。这个动态过程的照片式曲线,是发论文时最好的素材之一。
4.4 负载突变与并网功率阶跃响应
我还做了负载突增实验:在 t=2s 时,电网侧突然并入一个 20kW 的额外负载。
仿真结果能清晰地看到 VSG 频率的过渡过程:频率先下降,然后由于 VSG 的调速器作用自动增加有功输出,频率在经历一个短暂的振荡后逐渐回升,最终稳定在比初始值略低的位置——这正是同步发电机一次调频的真实表现。振荡的幅度和衰减速度,直接由 J 和 D 决定。
这里 J 和 D 的配合规律值得展开讲讲。J 太大时,频率变化慢,但超调量大、振荡持续时间长;D 太大时,振荡衰减快,但稳态频率偏差也大(等效下垂变大)。理想的配合是:J 决定“惯性姿态”,D 决定“姿态恢复速度”,两者协同调整,才能得到漂亮的有阻尼振荡响应。
我调了三组参数做了对比:
| 参数组合 | J (kg·m²) | D | 响应特征 |
|---|---|---|---|
| 组合 A | 0.5 | 10 | 频率变化快,振荡大,稳态偏差小 |
| 组合 B | 2.5 | 30 | 频率变化平缓,阻尼适中,工程推荐 |
| 组合 C | 10 | 80 | 频率几乎不变,过阻尼,恢复慢 |
组合 C 的波形虽然看起来“稳”,但实际上过阻尼会让频率在功率扰动后长期回不到额定值,对电网来说也不是好事。组合 B 是兼顾了动态速度和稳定裕度的折中选择。
5. 常见问题排查与避坑心得
5.1 并网瞬间冲击电流大
仿真里最常见的故障就是断路器闭合瞬间,电流直接冲到一个极高值然后发散。原因九成是预同步没做好,VSG 输出电压跟电网电压之间存在较大的相位差或幅值差。
排查顺序:第一步看波形,把 VSG 虚拟电动势相位和电网电压相位画在同一张图里,闭合时刻相位差必须小于 0.02rad;第二步看幅值,幅值差要控制在 5% 以内;第三步看 VSG 角频率是否已经稳定在接近 50Hz 的地方再合闸。我一般会把相位误差信号画出来,等它收敛到 0 附近以后再给闭合信号。
5.2 VSG 起振失败或振荡发散
这个问题通常跟 J 和 D 的参数不匹配有关。J 太大、D 太小,系统在同步力矩和阻尼之间失衡,就会出现等幅或增幅振荡。另一个原因是调速器系数 Kp 太大,有功调节过强,跟转子运动方程耦合产生正反馈。
处理办法是把 J、D、Kp 三个参数一起缩放。初始参数最好从同步发电机的典型标幺值出发换算到实际值,不要随便拍脑袋给个数。我调试时习惯先用小 J 大 D 的组合把系统跑稳定,然后在保持阻尼比不变的前提下逐步增大 J,观察振荡形态的变化,最后再微调 D。
5.3 直流母线电压崩溃
这个问题的根源通常是 VSG 请求的有功功率超过光伏实际可发功率。比如调速器方程根据频率偏差计算出一个很大的 Pm,但光伏阵列在当时的低光照条件下根本发不出那么多电,直流母线电容的能量被抽干,电压就会崩掉。
解决办法是给有功参考加一个上限钳位,上限就是 MPPT 实时计算出的最大功率,再加上一个基于直流母线电压的功率降额逻辑:母线电压低于 650V 时,线性降低 VSG 有功参考值;低于 600V 时清零。这层保护逻辑在并网弱电网时尤其重要。
5.4 LCL 滤波器谐振导致电流波形畸变
如果电流波形里能看到明显的 3kHz 左右的谐波尖刺,大概率是 LCL 谐振没有被有效阻尼。检查电容电流反馈系数设置是否合理,以及采样环节的延迟是否影响了阻尼效果。
在仿真中,如果遇到谐振问题,可以先临时增大无源阻尼电阻看波形是否有改善,如果改善了就说明有源阻尼的参数或采样延迟有问题。我最后留了 2Ω 的阻尼电阻作为“保底方案”,虽然会带来大约 1% 的额外功率损耗,但可靠性是最高的。
5.5 仿真速度太慢或数值不收敛
用 Simulink 做这种多时间尺度的电力电子仿真,计算瓶颈主要在 PWM 开关和 LCL 滤波器的快速动态。建议用离散求解器,PWM 开关频率相关的快速动态用固定步长强制解算,把步长设在开关周期的 1/10 到 1/5 之间,也就是 10kHz 开关频率对应步长 1e-5 秒。
把不必要的高频测量滤波去掉,测量模块里不要加带宽特别高的滤波器,那样只会增加计算量。光伏阵列模型如果不需要详细研究,可以简化成受控电流源并联一个小电容,能显著提升仿真速度而不影响 VSG 层面的动态研究。
6. 基于这套模型的后续扩展方向
6.1 弱电网下的 VSG 稳定性分析
这套模型可以直接把电网参数改弱,比如增大电网阻抗、接上非线性负载,研究 VSG 在弱电网下的稳定性边界。常见结论是,VSG 在弱电网下比 PQ 控制稳得多,但在极弱的电网下也会遇到新的失稳模式,比如跟锁相环的动态产生耦合振荡。做这个扩展时,重点关注 J、D 参数取值对稳定裕度的影响。
6.2 VSG 与储能系统的协调
前面说过,光伏 VSG 做惯量支撑时本质上是在调用直流母线电容里的能量,但如果实际需要长时间、大幅度的功率支撑,单靠电容是不够的。可以在直流母线上加一个储能系统(电池或者超级电容),由储能系统接管 VSG 惯量支撑和一次调频的能量需求,光伏则专心做 MPPT。这套模型的直流母线接口可以直接扩展出去,加一个双向 DC-DC 变换器就能实现。
6.3 多机并联与孤岛微电网运行
VSG 真正的用武之地是微电网。你可以复制几个一样的 VSG 模型,通过线路阻抗并联,研究多 VSG 之间的功率分配和环流抑制问题。这个时候 J、D 参数的差异会导致各机组之间有功分配不均,需要加入二次调频和均功率控制策略。这个方向做出来就是一篇很扎实的论文。
6.4 硬件在环测试前的算法优化
仿真模型稳定跑通后,下一步往往是往实际控制器里移植。这个阶段我的建议是,仔细检查 VSG 算法实现里有没有用到变步长相关的模块,把所有连续模块全部改成离散定步长,并且在每个采样周期里把所有状态变量显式更新。算法代码里避免使用代数环,必要时加单位延迟打断。这些细节决定了后期硬件在环测试顺不顺利。
最后再分享一个小技巧
调试 VSG 参数的时候,不要只看最终的并网波形,要多画内部状态变量的波形——虚拟角速度 ωm、机械功率 Pm、虚拟电动势幅值 E、相位差 Δθ。这些内部状态能告诉你系统到底是怎么响应外部扰动的,而不是只看到结果。
我最开始调参的时候就是只看并网电流,总觉得波形不对但不知道为什么,后来把 ωm 和 Pm 画出来,一眼就看出问题出在调速器方程的超调上。把内部状态暴露在视线里,VSG 这台“虚拟机器”的行为才能彻底透明,调参效率会翻倍。
我用的这套光伏 VSG Matlab 仿真模型,本质上就是给你提供了一个研究新能源并网支撑能力的“沙盘”——把电网、光伏、逆变器和控制算法全部放到一个可控的仿真环境里,想怎么测试就怎么测试。特别是在你还不想动硬件、或者没有实际光伏平台条件的情况下,这套模型就是你跟 VSG 控制打交道最靠谱的起点。把这套模型的每一个环节吃透了,后续不管是做课题深化还是往工程落地走,你都会有一个非常扎实的基础。