第 03 讲 / 共 09 讲 · 建模与仿真
平均变流器与 LCL 电路
电气振荡究竟从哪里来?
从一个实际问题出发
电气振荡究竟从哪里来?
一个很小的变流器电压阶跃,引起了快速电流振荡,而较慢的功率控制尚未来得及响应。理想电流源无法解释这一现象。本讲保留 LCL 电路,沿能量流向建立动态。
学完本讲,你应该能够…
- 推导旋转坐标中的 LCL 方程。
- 区分物理电感与虚拟阻抗。
03.01 机理与推导
储能元件决定电气状态
每个电感电流与电容电压都需要演化方程。在 dq 坐标下,i₁、v_c、i₂ 各有两个分量,共六个电气状态。网侧滤波电感与电网电感流过相同 i₂,因此可以串联合并后写微分方程。
这一合并并不意味着 PoC 消失:若要测量端口电压,应通过滤波支路重建。开环实验在 10 ms 给平均变流器 d 轴电压施加 0.005 pu 阶跃,采用 30 ms 窗口和 2 μs 积分步长观察快速响应。
03.02 机理与推导
正确加入旋转坐标耦合项
先对电感写 KVL、对电容节点写 KCL,再转换到旋转坐标。采用 J = [[0, 1], [−1, 0]] 时,每个向量都增加 +ω_bωJ 乘自身的项。这些跨轴项来自坐标旋转,并不产生或消耗能量。
此处 ℓ = L/Z_b、c = CZ_b 是时间系数。若把额定电抗误作 ℓ,导数会相差 ω_b 倍。还要区分电气输入电压 u 与控制层功率指令:控制器先生成 u,电路方程再决定实际电流。
\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)03.03 机理与推导
先正确初始化,再判断响应
本电气实验在无穷大母线端口设 i₂ = 0.6 + j0。依次计算 v_c = 1 + (r₂ + jω_bℓ₂)i₂、i₁ = i₂ + jω_bcv_c,以及 u = v_c + (r₁ + jω_bℓ₁)i₁。它们一起满足稳态电路。
把所有电流设为零,实际上是在仿真上电过程;把 i₁ 设为 i₂,则遗漏了电容电流。这个差别也说明:本讲 LCL 案例在无穷大母线端口初始化,后续低阶模型比较则在 PoC 匹配功率。
03.04 机理与推导
用能量关系检查推导
定义 W = (ℓ₁|i₁|² + c|v_c|² + ℓ₂|i₂|²)/2,再用电路方程求导。向量与其 J 旋转结果正交,因此旋转项相消,剩下输入功率减去母线输出功率与电阻损耗。
这条关系能同时核对多个符号。小能量变化率残差说明方程自洽,不能验证已忽略的 PWM 或器件限制。在电气状态上加入两个功率滤波、一个角度、四个 PI 积分状态,就得到源仓库中的 13 状态 droop 实现。
\dot W=u^Ti_1-v_g^Ti_2-r_1\lVert i_1\rVert^2-r_2\lVert i_2\rVert^2把推导变成数量判断
把案例算清楚
额定转速下,设 v_c = [1, 0]、c = 0.0008 s,求稳态电容电流导致的 i₁q − i₂q。
- 令电容方程中的 v̇_c = 0。
- J[1,0] = [0,−1],所以 i₁ − i₂ = −ω_bcJv_c。
- q 分量为 +2π × 50 × 0.0008。
结果为 +0.251327 pu。这个给定电压的算例解释了为什么变流器侧与网侧电流指令不能直接相等。
从预测走向证据
观察电气时间尺度
10 ms 的 0.005 pu d 轴电压阶跃激发开环电路,联合读取 i₂d 与电容电压。
- 10 ms 变流器电压阶跃是输入,电感电流随后按演化方程响应。
- 能量在储能元件间交换,电容电压与输出电流共同响应。
- 用能量变化率关系核对符号,振荡曲线本身无法检查方程。
你的实验任务
- 运行 +0.005 pu 变流器电压阶跃,观察事件后 20 ms。
- 将 SCR 从 5 降为 2 再运行,说明电气支路中哪个参数改变了。
- 检查 lcl_run(),识别每项储能,并验证能量变化率残差。
实验室 · Python 在浏览器内运行
预测 → 运行 → 检查
先预测响应,再修改参数并点击运行。初始曲线是由同一求解器生成的基准结果。首次计算需要联网加载 Python,之后无需重新下载。
正在读取基准结果…
数值检查与采样结果
六状态平均 LCL,开环电压阶跃发生在 10 ms;固定积分步长 2 μs。未加入控制 PI、PWM、直流动态或限流。
检查推理,再形成判断
你能解释,也能算对吗?
本讲的工程判断
通过储能与耦合解释振荡。将能量变化率残差与电流曲线一起报告,并指出若要研究闭环阻尼,还必须加入哪些内环。
复现与拓展
把证据带回你的模型
核心方程速查
\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打开 Python 实验与模型源码
代码读取上方实验参数,结果独立绘制。修改实验或展开模型源码,检验自己的预测。下载实验可得到含参数、完整求解器与实验的单个 .py 文件,本地只需 Python 3。
case 是点击运行时的参数快照。调用 solve(case),将最终解赋给 result,即可绘制代码结果。
首次运行需联网下载 Python 环境。计算在浏览器内完成,求解器只用 Python 标准库。
准备运行。
输出将在这里显示。
Python 计算结果
查看并编辑模型源码(进阶)
修改源码影响下次 Python 实验;上方实验继续使用原始教学方程。
对应的源仓库材料与模型范围
基于 PINN-IBR 本地材料整理,审阅日期 2026-10-03。网页采用独立教学实现;低频模型保留额定频率代数网络与理想执行器。下列材料用于继续研究完整模型。
Coding/Modeling/src/ibrsim/models/droop_gfm.pyCoding/Modeling/src/ibrsim/conventions.py
下一步
电路如何响应电压已经明确。下一步要回答:GFL 如何获得参考角度,并生成电流指令?