IBR 动态建模与仿真
下垂构网型控制
C1-05 · 讲解 + 仿真 + 练习 · 建议 90 分钟
用功率滤波与级联 PI 建立电压形成控制。
学习目标
- 解释 P–f 与 Q–V 反馈链路。
- 识别标准 13 状态模型的组成。
从结构到模型
由功率–频率规律生成角度
Droop GFM 通过积分频率指令生成内部电压角度,这个同步规律不需要 PLL。滤波有功偏差改变频率,滤波无功偏差改变电压幅值,再由网络决定实际注入功率。
教学模型的三个状态为 δ、P_f、Q_f。内部电压 E exp(jδ) 通过 Z_f = 0.00625 + j0.1 pu 接入网络,支路电流为 (E exp(jδ) − V)/Z_f。物理 LCL 与 PI 环节被这条代数关系替代;Z_f 是教学模型中声明的源阻抗。
通过网络闭合反馈环
P* 小幅增加时,P_f 不能瞬间跳变,因此频率首先提高;δ 前移,电气功率增加,随后 P_f 跟上。在额定频率无穷大母线约束下重新达到平衡时,ω = 1、P_f = P*。功率参考是控制输入,不是对测量功率轨迹的直接赋值。
增大 m_p 同时改变稳态频率–功率斜率和暂态环路增益。测量滤波固定为 τ_p = 0.1 s、τ_q = 0.05 s。解释响应时,还要考虑网络和滤波时间尺度。
匹配端口运行点
所有控制类别都初始化到 PoC P = 0.6、Q = 0。由于源阻抗中有电流,所需内部电压幅值通常大于 1。E₀ 固定为 1 时,必须选择适当 Q*,使 E = E₀ − n_q(Q_f − Q*) 满足所需幅值。因此端口 Q 为零,并不要求 droop 的 Q* 为零。
SCR = 5 时,基准 Q* 约为 0.316795 pu。它是匹配平衡点的控制偏置,不表示 PCC 注入了同样大小的无功。实验会展示实际指令,便于检查这个区别。
用频率阶跃检验稳态斜率
电网频率增加 +0.1 Hz。稳态锁定时 ω = ω_g,P ≈ P* − (ω_g − 1)/m_p。m_p = 0.02 时,预测有功变化为 −0.1/(50 × 0.02) = −0.1 pu。这是模型内部的稳态预测;代数阻抗仍在额定频率下计算。
建立完整串级控制实现
保留内部环节时,使用 x = [δ, P_f, Q_f, ξ_vd, ξ_vq, ξ_id, ξ_iq, i₁d, i₁q, v_cd, v_cq, i₂d, i₂q]。设 v* = [E, 0]、电压误差 e_v = v* − v_c、ξ̇_v = e_v。启用输出电流前馈和电容解耦时,电压 PI 按下方新增的第一个方程产生 i₁*。电流误差为 e_i = i₁* − i₁、ξ̇_i = e_i;电流 PI 按第二个方程产生变流器电压 u,再代入模块 3 的 LCL 方程,闭合整个模型。
源仓库经典 droop 实现用 v_c、i₂ 的功率驱动滤波器,基准输出则在 PoC 重构,这两个端口需要区分。初始化无限幅平衡点时,先求电气状态,再令 ξ_v = (i₁ − F i₂ + ω_b ω c Jv_c)/K_iv、ξ_i = (u − v_c + ω_b ω ℓ₁ Ji₁)/K_ii。控制误差为零,不代表 PI 积分状态为零。网页 droop 实验明确省略了这四个积分状态与六个电气状态。
核心方程
\tau_p\dot P_f=P_{PoC}-P_f,\qquad\tau_q\dot Q_f=Q_{PoC}-Q_f\omega=1-m_p(P_f-P^*),\quad E=E_0-n_q(Q_f-Q^*),\quad\dot\delta=\omega_b(\omega-\omega_g)I=\frac{Ee^{j\delta}-V}{Z_f},\qquad P+jQ=VI^*e_v=v^*-v_c,\quad\dot\xi_v=e_v,\quad i_1^*=F i_2-\omega_b\omega cJv_c+K_{pv}e_v+K_{iv}\xi_ve_i=i_1^*-i_1,\quad\dot\xi_i=e_i,\quad u=v_c-\omega_b\omega\ell_1Ji_1+K_{pi}e_i+K_{ii}\xi_i仿真实验
- 运行 +0.03 pu P* 阶跃,观察频率并解释为何它先变化。
- 检查匹配后的 Q*,与初始测量 Q 比较。
- 施加 +0.1 Hz,比较最终 P 变化与 −0.1/(50 m_p)。
实验室 · Python 在浏览器内运行
预测 → 运行 → 检查
先预测响应,再修改参数并点击运行。初始曲线是由同一求解器生成的基准结果。首次计算需要联网加载 Python,之后无需重新下载。
正在读取基准结果…
数值检查与采样结果
低频教学模型:额定频率代数网络、理想电流 / 电压实现。50 Hz,10 kVA,400 V;PCC 初始总 P = 0.6、Q = 0;X/R = 10。τᵢ = 0.02 s,τₚ = 0.1 s,τq = 0.05 s,nq = 0.0325;GFM 源阻抗 0.00625 + j0.1 pu。未保留 LCL、内部 PI、直流动态或限流。
修改模型与复现实验
下方代码读取上方参数,但结果独立绘制。修改实验或展开模型源码,可检验自己的预测。下载实验可获得含参数、完整求解器和实验代码的单个 .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/Single-IBR-Infinite-Bus/00_Droop_GFM_Infinite_Bus_Model_Library.ipynb