IBR 动态建模与仿真
平均变流器与 LCL 电路
C1-03 · 讲解 + 仿真 + 练习 · 建议 60 分钟
推导多种控制家族共用的电气状态。
学习目标
- 推导旋转坐标中的 LCL 方程。
- 区分物理电感与虚拟阻抗。
从结构到模型
保留六个电气状态
平均变流器施加连续电压指令 u,不描述逐次开关动作。LCL 电路保留变流器侧电流 i₁、电容电压 v_c、输出电流 i₂,每个量都有 d、q 两个分量。网侧滤波电感与电网电感流过同一电流,所以微分方程可以合并串联 r、ℓ;需要独立端口测量时,再重构 PoC 电压。
取 J = [[0, 1], [−1, 0]]。在以 ω_b ω 旋转的坐标中,复数 dq 向量产生 −jω_bω 倍自身的项;实数向量写法则是 +ω_bωJ 倍自身。这些符号来自旋转坐标变换的求导。
控制指令不等于闭环状态
实验先保持平衡点变流器电压,在 10 ms 给 d 分量增加 0.005 pu。这是开环电路实验。闭环 droop GFM 还需要角度、P–Q 滤波、电压 PI 和电流 PI 状态。六个电气状态,加一个角度、两个功率滤波状态、四个 PI 积分状态,组成仓库中的 13 状态 droop 实现。
一致地初始化每个元件
令无穷大母线端 i₂ = 0.6 − j0,依次计算 v_c = 1 + (r₂ + jω_bℓ₂)i₂、i₁ = i₂ + jω_b c v_c、u = v_c + (r₁ + jω_bℓ₁)i₁。若简单地将电容设为 1、所有电流设为零,会引入并未要求的上电暂态。
默认系数:r₁ = 0.00625、ℓ₁ = 84.375 μs、c = 0.0008 s、r₂ = 0.00625 + r_g、ω_bℓ₂ = 0.1 + x_g。仿真覆盖 30 ms,积分步长为 2 μs。这是明确声明的教学参数,并非对源 Notebook 各参数配置的逐一复现。
同时检查能量关系
定义 W = (ℓ₁|i₁|² + c|v_c|² + ℓ₂|i₂|²)/2。dq 交叉项在 Ẇ 中抵消。下方能量变化率恒等式同时检查电压符号、支路方向和损耗项。残差反映方程一致性,不能替代变流器的外部验证。
核心方程
\dot i_1=\frac{u-v_c-r_1i_1}{\ell_1}+\omega_b\omega Ji_1\dot v_c=\frac{i_1-i_2}{c}+\omega_b\omega Jv_c,\qquad\dot i_2=\frac{v_c-v_g-r_2i_2}{\ell_2}+\omega_b\omega Ji_2v_{PoC}=v_c-r_{f2}i_2-\ell_{f2}(\dot i_2-\omega_b\omega Ji_2)\dot W=u^Ti_1-v_g^Ti_2-r_1\lVert i_1\rVert^2-r_2\lVert i_2\rVert^2仿真实验
- 运行 +0.005 pu 变流器电压阶跃,观察事件后 20 ms。
- 将 SCR 从 5 降为 2 再运行,说明电气支路中哪个参数改变了。
- 检查 lcl_run(),识别每项储能,并验证能量变化率残差。
实验室 · Python 在浏览器内运行
预测 → 运行 → 检查
先预测响应,再修改参数并点击运行。初始曲线是由同一求解器生成的基准结果。首次计算需要联网加载 Python,之后无需重新下载。
正在读取基准结果…
数值检查与采样结果
六状态平均 LCL,开环电压阶跃发生在 10 ms;固定积分步长 2 μs。未加入控制 PI、PWM、直流动态或限流。
修改模型与复现实验
下方代码读取上方参数,但结果独立绘制。修改实验或展开模型源码,可检验自己的预测。下载实验可获得含参数、完整求解器和实验代码的单个 .py 文件;本地只需 Python 3。
case 是点击运行时的参数快照。调用 solve(case),将最终解赋给 result,即可绘制代码结果。
首次运行需联网下载 Python 环境。计算在浏览器内完成,求解器只用 Python 标准库。
准备运行。
输出将在这里显示。
Python 计算结果
查看并编辑模型源码(进阶)
源代码包含坐标变换、LCL、PLL、droop、VSM、共享 PCC 与显式模式重置。修改源码只影响下次 Python 实验;上方仿真实验继续使用原始教学方程。
检查理解
列出电气状态并解释测量端口。
继续学习:源仓库
本单元根据 PINN-IBR 本地材料整理(审阅日期 2026-10-03)。网页代码为单独编写的教学实现;以下路径对应完整模型、配置和研究案例。
Coding/Modeling/src/ibrsim/models/droop_gfm.pyCoding/Modeling/src/ibrsim/conventions.py