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

模式切换混合模型

控制器切换时,究竟什么应该连续?

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

从一个实际问题出发

控制器切换时,究竟什么应该连续?

逆变器在 1 s 扰动后,于 2 s 从 GFL 切换到 VSM。两个简化状态向量恰好都长四维,直接复制似乎很方便,却会把不同物理含义的变量混在一起。

学完本讲,你应该能够…
  • 区分模式切换与并联运行。
  • 解释 reset、hold 与 release 操作。

08.01 机理与推导

模式改变的是生效方程与状态含义

事件之间,当前模式决定 ẋ = f_m(x,u);切换时,由重置映射决定 x⁺ = R(x⁻,u)。GFL 使用 [δ_PLL, ξ_PLL, i_d, i_q],VSM 使用 [δ_source, ω, P_f, Q_f]。维数相等,并不意味着状态含义兼容。

实现中可以保存多个控制器的 checkpoint 并集,但这个并集不会自动变成更高阶 ODE。设计重置时,应从物理端口量出发,而不是从数组位置出发。

切换是不同状态含义之间的重置映射
机理图解 切换是不同状态含义之间的重置映射 左右滑动查看全图 放大图示 ↗
\dot x=f_m(x,u),\qquad x^+=R_{m^-\to m^+}(x^-,u)

08.02 机理与推导

从端口重建进入模式的内部源

切换前记录 V⁻、I⁻、P⁻、Q⁻ 与 PLL 频率。若要使 Z_f 中的端口电流不变,进入模式的内部源必须满足 U⁺ = V⁻ + Z_fI⁻。因此源角度为 arg U⁺,未必等于旧 PLL 角度。

将 VSM 速度初始化为旧估计速度,功率滤波初始化为测量功率,就能把新模式对齐到旧端口。重置检查应显示电压、电流、功率与内部频率的跳变接近浮点舍入量级。

U^+=V^-+Z_f I^-,\quad\delta^+=\arg U^+,\quad\omega^+=\omega^-,\quad P_f^+=P^-,\quad Q_f^+=Q^-

08.03 机理与推导

明确切换策略中的取舍

教学策略还选择 E₀⁺ 匹配源幅值,并设置 P*⁺ = P⁻ + D(ω⁻ − 1),使初始加速度为零。它会重新标定进入模式的指令。若坚持保留旧指令,则属于另一种策略,可能引入加速功率偏差。

本实验只安排一次切换。可部署设计还需要触发条件、非激活控制器跟踪、驻留规则、限幅与保护。源 transition notebook 进一步研究 hold/release 策略与不同激活状态维数;端点响应良好,本身不能证明切换良好。

E_0^+=|U^+|+n_q(Q^--Q^*),\qquad P^{*+}=P^-+D(\omega^--1)

把推导变成数量判断

把案例算清楚

在一个给定重置算例中,取 V⁻ = 1 + j0、I⁻ = 0.6 + j0、Z_f = 0.00625 + j0.1 pu,求进入模式的内部源角度。

  1. 计算 Z_fI⁻ = 0.00375 + j0.06。
  2. 加上端口电压,U⁺ = 1.00375 + j0.06。
  3. 用 atan2(0.06, 1.00375),再从弧度换为角度。

进入模式的源角度约为 3.421°。PLL 可以在端口电压对齐的 0°,而内部源仍然需要非零角度。

从预测走向证据

把扰动与重置分开读

扰动位于 1 s,GFL→VSM 切换位于 2 s。端口兼容的切换应与先前扰动分别解读。

2 s 显式重置保持端口功率连续
求解器计算 2 s 显式重置保持端口功率连续 左右滑动查看全图 放大图示 ↗
  1. 1 s 的指令扰动与 2 s 的模式切换,是两个不同事件。
  2. 2 s 时,进入模式通过 U⁺ = V⁻ + Z_fI⁻ 重建原端口。
  3. 功率连续还应结合重置检查中的电压、电流与频率共同核对。

你的实验任务

  1. 运行定时切换,检查 2 s 前后的轨迹。
  2. 读取数值检查中的重置残差和最终指令偏置。
  3. 在 reset_to_vsm() 中,故意将重置角度改为 PLL 角度,观察跳变。

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

检查推理,再形成判断

你能解释,也能算对吗?

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

°

概念判断

GFL 与 VSM 状态向量长度相同时,可以直接复制吗?

本讲的工程判断

写出连续性检查清单与指令策略。将 2 s 的重置与 1 s 的扰动分别检查,再解释为什么本例不应要求两个角度相等。

复现与拓展

把证据带回你的模型

核心方程速查
\dot x=f_m(x,u),\qquad x^+=R_{m^-\to m^+}(x^-,u)
U^+=V^-+Z_f I^-,\quad\delta^+=\arg U^+,\quad\omega^+=\omega^-,\quad P_f^+=P^-,\quad Q_f^+=Q^-
E_0^+=|U^+|+n_q(Q^--Q^*),\qquad P^{*+}=P^-+D(\omega^--1)
打开 Python 实验与模型源码

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

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

下载求解器

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

准备运行。

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

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

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

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

  • Coding/Modeling/Single-IBR-Infinite-Bus/10_VSM_PLL_Transition_Infinite_Bus.ipynb
  • Coding/Modeling/src/ibrsim/models/vsm_pll_transition.py
PINN-IBR ↗

下一步

最后一讲把这些接口组织成可复现的比较,让曲线成为有依据的工程判断。

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