第 01 讲 / 共 09 讲 · 建模与仿真

系统边界与模型表示

这个问题,究竟需要多复杂的模型?

60 分钟案例 · 图解 · 推导 · 实验本讲练习 ↗

从一个实际问题出发

这个问题,究竟需要多复杂的模型?

一个并网项目拿到了四套逆变器模型,也得到了四条不同的阶跃曲线。团队准备据此选择控制方案。但在比较优劣之前,必须先回答:每条曲线究竟能解释什么?本讲先界定研究问题,再决定模型边界。

学完本讲,你应该能够…
  • 区分状态、输入、输出与代数变量。
  • 明确模型边界与研究目标。

01.01 机理与推导

先明确要解释的现象

同一台变流器可以在开关周期、电气暂态或较慢的同步动态上被研究。若关心开关纹波,就要保留开关动作;若关心 LCL 振荡,就要保留电感和电容的储能;若关心数秒内的小功率指令响应,低阶同步模型可能已足够。

建模的取舍发生在“需要保留的机理”与“决策需要的证据”之间。因此,先写清观察量、扰动和时间尺度,再选择控制家族。GFM 是控制概念,并不能单独确定模型阶次。

由研究问题选择模型表示
机理图解 由研究问题选择模型表示 左右滑动查看全图 放大图示 ↗

01.02 机理与推导

先画端口,再数状态

沿平均变流器电压,依次经过 L₁、电容、L₂、并网点 PoC、电网阻抗,最后到达无穷大母线。电容端口与 PoC 之间的支路会储能和耗能,因此,未说明测量端口的功率数值并不完整。

本课程规定电流流向电网,正 P、Q 表示在声明端口向电网注入。无穷大母线设定电压和频率,直流侧采用理想电源。这些假设共同界定了实验能够支持的并网结论。

三类储能元件,六个电气状态
机理图解 三类储能元件,六个电气状态 左右滑动查看全图 放大图示 ↗

01.03 机理与推导

把边界写成模型契约

把模型分成微分状态 x、代数网络变量 z、输入 u 和输出 y。某个量之所以是状态,是因为它有自己的演化方程,而不是因为它出现在曲线上。网络约束必须在每个时刻与控制器一致。

三状态 droop 实验采用 x = [δ, P_f, Q_f]。PCC 电压和支路电流是代数量,功率指令和电网条件是输入。电容电压没有被保留。这也直接解释了:该模型无法复现第 3 讲的六状态 LCL 谐振。

\dot{x}=f(x,z,u),\qquad 0=g(x,z,u),\qquad y=h(x,z,u)

把推导变成数量判断

把案例算清楚

完整 droop 实现有 13 个状态,浏览器中的 droop 实现有 3 个。减少的状态来自哪里?

  1. 电气状态有 6 个:i₁、v_c、i₂ 各有 d、q 两个分量。
  2. PI 积分状态有 4 个:电压环两个、电流环两个。
  3. 留下角度与两个功率滤波状态,构成三状态模型。

13 − 3 = 10 个状态被移除。减少的是电气储能与内环控制的动态及其耦合,并非只把状态向量缩短。

从预测走向证据

同一端口,不同轨迹

四种模型从 P = 0.6 pu、Q = 0 出发,1 s 的 +0.03 pu 指令揭示各自保留的动态。

端口运行点相同,暂态轨迹仍然不同
求解器计算 端口运行点相同,暂态轨迹仍然不同 左右滑动查看全图 放大图示 ↗
  1. 事件前四条曲线都为 0.6 pu,说明匹配的是端口工作点。
  2. 事件后轨迹分开,差异来自保留的同步规律与执行器动态。
  3. 这些低阶模型都未保留 LCL 状态,因此不能用它们解释电气谐振。

你的实验任务

  1. 运行默认比较,指出每条曲线保留了哪些动态。
  2. 改为电压阶跃,解释为什么这些轨迹不能检验开关纹波精度。
  3. 写出四行模型约定:边界、状态、输入、测量输出。

实验室 · 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、直流动态或限流。

检查推理,再形成判断

你能解释,也能算对吗?

计算练习 · 使用题目给定值

states

概念判断

在三状态 droop 实验中,哪个量是代数量?

本讲的工程判断

本讲交付一份四行模型契约:研究问题、测量端口、保留状态、排除机理。用它限定四模型曲线可以支持的结论。

复现与拓展

把证据带回你的模型

核心方程速查
\dot{x}=f(x,z,u),\qquad 0=g(x,z,u),\qquad y=h(x,z,u)
打开 Python 实验与模型源码

代码读取上方实验参数,结果独立绘制。修改实验或展开模型源码,检验自己的预测。下载实验可得到含参数、完整求解器与实验的单个 .py 文件,本地只需 Python 3。

case 是点击运行时的参数快照。调用 solve(case),将最终解赋给 result,即可绘制代码结果。

下载求解器

首次运行需联网下载 Python 环境。计算在浏览器内完成,求解器只用 Python 标准库。

准备运行。

输出将在这里显示。
查看并编辑模型源码(进阶)

修改源码影响下次 Python 实验;上方实验继续使用原始教学方程。

对应的源仓库材料与模型范围

基于 PINN-IBR 本地材料整理,审阅日期 2026-10-03。网页采用独立教学实现;低频模型保留额定频率代数网络与理想执行器。下列材料用于继续研究完整模型。

  • Teaching/Tutorial-IBR/src/tutorial_en.tex
  • Coding/Modeling/Single-IBR-Infinite-Bus/README.md
PINN-IBR ↗

下一步

模型边界确定以后,下一个风险来自约定:坐标与基值不同,两条看似正确的方程可能描述不同的量。

全部九个模块
  1. 系统边界与模型表示
  2. 坐标变换与标幺约定
  3. 平均变流器与 LCL 电路
  4. PLL 与跟网型控制
  5. 下垂构网型控制
  6. VSM 与虚拟惯量
  7. GFL–GFM 并联混合模型
  8. 模式切换混合模型
  9. 平衡点、扰动与公平比较