40_仿真验证 02 —— 仿真实战:GeckoCIRCUITS 运行 PFC 与 LLC
本篇回答的问题:仿真软件到底怎么“跑起来”?01_开源仿真与设计工具 盘点的是工具矩阵(“该用哪个”);本篇是上手实战课——以本机可用的 GeckoCIRCUITS(电力电子专用仿真器)为平台,真跑三个模型、真对三组数据,并把两条实测踩出来的操作纪律写清楚。
实测声明:本篇所有数据为 2026-10-01 在本机 GeckoCIRCUITS(安装于
/home/sam/GeckoCIRCUITS)经远程接口实际运行所得;官方对照数据出自教程解答 Gecko_PFC_Solution.pdf(ETH Zurich 2012 版 PFC 实验课解答)。两组数据独立取得,吻合度见 §3.3 比对表。软件操作按实测接口描述,界面细节以当前版本为准;工程结论标「本机实测」或「官方原文」。与本库的关系:PFC 控制策略对照 NCP1622(CrM)/ NCP1654(CCM)篇;LLC 对照 HR1000A / NCP1399 篇;环路平均模型对照 TND381 全译;仿真在流程中的门禁位置见 04_设计开发流程。
本篇总结
- 本机即可跑:GeckoCIRCUITS(Java 开源、ETH Zurich 教学血统)已装在本机,自带示例库、教程 PDF 与远程接口——“装软件、找模型”这一步被省掉,仿真直接进“跑数据”阶段。
- 比对三连全部吻合(本机实测 vs 官方解答):整流基线 THD 162.9% vs 163%、PFC 解 THD 11.42% vs 11.3%、基线电感电流峰值 52.0 A vs 52 A——三组独立数据,误差 ≤1%。
- 滞环 PFC 的设计权衡被两个扫描实验钉死:电感 10→2 mH,THD 几乎不动(11.4%→12.0%);容差带等效放宽 3 倍,THD 明显恶化(11.4%→14.1%)。THD 由容差带决定,电感决定开关频率——与官方解答“fS 随电感减小而升”的原话互证。
- 两条操作纪律(实际运行排障):① 2012 年的旧版
.ipes文件在打开时会弹“旧版本”确认框,会阻塞自动化调用,手动确认一次即可;② THD/傅里叶分析的窗口必须取整数个工频周期——40 ms 窗口会算出 2807% 的假 THD(窗口基频 25 Hz,50 Hz 信号被当成谐波),换 20 ms 窗口即得正确的 11.42%。 - LLC 模型可直接上手:谐振电容/谐振电感/励磁电感/匝比全部可读可改,5 ms 仿真即得稳态波形——库内 LLC 理论(增益、ZVS、死区)可在同一平台复现。
- 与 LTspice 的分工(公开常识口径):Gecko 内置元器件与控制系统块、测量即插即用,适合拓扑级/控制级快速验证;LTspice 适合器件级/环路级精细仿真(厂商 SPICE 模型、平均模型波特图扫描)。两者互补,见 07 篇 工具矩阵。
- 库内资料已存档:官方实验课练习册与解答 PDF 已收入 90_资料源(
Gecko_PFC_Exercise.pdf/Gecko_PFC_Solution.pdf)。
1. 本机环境:有什么、怎么起
1.1 安装与资产
| 资产 | 位置 | 说明 |
|---|---|---|
| 主程序 | /home/sam/GeckoCIRCUITS/GeckoCIRCUITS.jar |
电力电子/电力传动专用仿真器(Java) |
| 示例库 | Examples/Topologies/、Examples/education_www.ipes.ethz.ch/ 等 |
官方拓扑示例(Buck/Boost、VSR、Vienna、PFC 等) |
| 教程实验课 | TutorialExercises/{1_DCDC, 2_PFC, 3_three_phaseInverter}/ |
带练习册与解答 PDF 的成套课程(本文用 2_PFC) |
| 入门教程 | GeckoCIRCUITS_beginners_tutorial.pdf |
界面与建模入门 |
| 脚本接口 | GeckoSCRIPT/(GeckoSCRIPT.ipes、buck_control.ipes 等) |
官方脚本化仿真示例 |
1.2 启动方式
带远程访问的启动脚本:~/gecko-build/start-gecko-stack.sh(启动 GeckoCIRCUITS + HTTP 桥接服务)。桥接就绪后即可用命令行/工具接口驱动仿真——本文全部操作均通过远程接口完成,不需要手点界面。
1.3 远程接口能做什么(本篇用到的操作)
| 操作 | 接口 | 用途 |
|---|---|---|
| 打开模型 | gecko_open_file |
载入 .ipes |
| 查结构 | gecko_circuit_elements |
列出电路/控制/热元件 |
| 读参数 | gecko_get_parameter / gecko_list_parameters |
元件的全部可写参数 |
| 改参数 | gecko_set_parameter(s) |
参数扫描的基础 |
| 运行仿真 | gecko_run_simulation(dt, end_time) |
指定步长与时长 |
| 读波形 | gecko_scope_channels |
逐端口 avg/RMS/min/max/纹波 |
| 专项分析 | gecko_scope_analysis(kind=thd/fourier/rms/...) |
THD、谐波、有效值等 |
| 稳态检测 | gecko_steady_state |
自动跑到周期性稳态 |
2. 实战一:PFC 实验课(官方教程 2_PFC 全流程)
2.1 课程设计:三步递进
官方实验课给了三个模型(TutorialExercises/2_PFC/):
| 模型 | 内容 | 回答什么问题 |
|---|---|---|
A_Rectifier.ipes |
230 V/50 Hz 电网 + 二极管桥 + 10 mH 电感 + 输出 | 不控整流的电流到底多差?(基线) |
B_pfc.ipes |
升压 PFC 雏形 | 加开关管与电感后的中间形态 |
C_pfc.ipes |
完整滞环电流控制 PFC | 容差带控制能把 THD 压到多少? |
2.2 基线实测(A_Rectifier)
本机实测(仿真 0.12 s、dt=10 µs、取 0.08~0.10 s 稳态窗):
| 量 | 实测值 | 官方解答 |
|---|---|---|
| 电网电压 RMS | 231.2 V(峰值 ±326 V) | 230 V/50 Hz(隐含) |
| 电感电流峰值 | ±52.0 A | “最大电流 52 A” |
| 输入电流 THD | 162.9% | “THD = 163%” |
官方解答同时给出参照:若输入电流是正弦(理想 PFC),230 V/1793 W 输出下电流峰值只需约 11 A(出处:Gecko_PFC_Solution.pdf 开篇)。52 A vs 11 A 的 4.7 倍差距,就是“没有 PFC”的代价——电流被二极管桥挤成窄脉冲,频谱上除 50 Hz 基波外全是奇次谐波(150 Hz、250 Hz……)。
2.3 PFC 解实测(C_pfc,滞环容差带控制)
模型要点(实读元件表):二极管桥 + 升压电感(10 mH)+ 开关管 + 升压二极管 + 输出,控制环为滞环电流控制——电流误差信号经增益(0.003058)送入滞环比较器(阈值 ±1.0),直接产生栅极驱动。
本机实测(仿真 0.12 s、dt=2 µs、取 0.08~0.10 s 稳态窗):
| 量 | 实测值 | 官方解答 |
|---|---|---|
| 输入电流 RMS | 7.73 A | — |
| 输入电流峰值 | ±13.0 A | — |
| 容差带信号 | ±1.0(实测确认) | “±1 A 容差带” |
| 电网电压 RMS | 229.8 V | — |
| 输入电流 THD | 11.42% | “11.3%(L=10 mH、k=0.2)” |
2.4 比对表(三组独立吻合)
| # | 指标 | 官方值 | 本机实测 | 偏差 |
|---|---|---|---|---|
| 1 | 整流基线电流峰值 | 52 A | 52.0 A | +0.1% |
| 2 | 整流基线 THD | 163% | 162.9% | −0.06% |
| 3 | PFC 解 THD | 11.3% | 11.42% | +1.1%(相对) |
三组数据分别来自官方 PDF 文字与独立实际运行,偏差都在仿真设置差异(二极管压降设置,官方注明“不同设置会得到略有差异的结果”)可解释的范围内。
2.5 官方解答的三个关键结论(翻译)
- THD 定义:“全部谐波的几何和与基波幅值之比”——163%(整流)与 11.3%(PFC)即按此口径。
- 过零畸变的原因(原文直译):“在电流过零附近,输入电流偏离理想值——因为此处升压变换器的输入电压非常小。开关频率(由容差带给定)在此工况下不足以跟随理想电流形状。”这就是 PFC 电路 THD 的天然下限来源之一(对应库内 NCP1622 的 DCM 谷底工作段)。
- 开关频率与电感/容差带的关系(原文):“平均开关频率 fS 随电感减小或容差带减小而升高”——频率与两者成反比关系,这就是下一节参数扫描的理论依据。
3. 实战二:参数扫描——“仿真是低成本试错台”
3.1 实验 1:电感扫描(10 mH → 2 mH)
| 设置 | 输入电流 THD(本机实测) |
|---|---|
| L = 10 mH(原设计) | 11.42% |
| L = 2 mH(缩小 5 倍) | 11.96% |
结论:电感缩小 5 倍,THD 几乎不动(差 0.54 个百分点)。原因是滞环控制下电流纹波被 ±1 A 容差带直接钳制——电压高时电流爬升快、开关频率自然升高,纹波幅度仍被压在容差带内。代价在开关频率:官方解答明确“fS 随电感减小而升高”(§2.5 结论 3),电感减小的真实代价是开关损耗上升。这条结论直接对应库内教训:电感取值在滞环 PFC 里是“频率/损耗”的设计变量,而不是“THD”的设计变量。
3.2 实验 2:容差带扫描(等效 ±1 A → ±3 A)
滞环阈值由外部增益链设定(增益 0.003058 ↔ 等效 ±1 A),把增益降到 1/3:
| 设置 | 输入电流 THD(本机实测) |
|---|---|
| 等效 ±1 A(原设计) | 11.42% |
| 等效 ±3 A(增益 ×1/3) | 14.13% |
结论:容差带放宽 3 倍,THD 从 11.4% 恶化到 14.1%。滞环 PFC 里 THD 的主导变量是容差带——它直接决定电流能“贴”理想正弦多近。设计上的代价同样清楚:容差带收窄 = THD 更好 + 开关频率更高 + 开关损耗更大,这就是为什么实际 PFC 芯片(如库内 NCP1622 的 CrM、NCP1654 的 CCM)用固定频率/谷底检测等不同机制,而不是无限收窄的滞环。
3.3 两个实验合起来的一句话
滞环 PFC 的设计权衡(实测版):容差带定 THD,电感定频率;要 THD 就收带(付损耗),要频率就减感(付 THD 一点点、损耗更多)。 参数扫描在仿真里几秒钟就能看趋势,在硬件上要改板重测——这是“低成本试错台”的具体含义。
4. 实战三:LLC 模型上手
4.1 模型与参数(实读)
~/Downloads/LLC.ipes(LLC 半桥 + 变压器 + 副边整流 + 闭环反馈):
| 元件 | 参数 | 值 |
|---|---|---|
| C.1(谐振电容 Cr) | C | 19.35 nF |
| L.1(谐振电感 Lr) | L | 71.8 µH |
| L.2(励磁电感 Lm) | L | 104.7 µH |
| Trans.1(变压器) | ratio | 3.13 |
| 谐振腔特征 | — | fr ≈ 1/(2π√(Lr·Cr)) ≈ 135 kHz(本机推算) |
4.2 实际运行读数(仿真 5 ms、dt=100 ns、稳态窗 3~5 ms)
示波器 5 个有效通道(OUTSCOPE):
| 端口 | RMS | 峰峰值 | 推测信号(本机读图,待核实) |
|---|---|---|---|
| 0 | 800 | ±800 | 半桥中点/原边方波电压 |
| 1 | 21.6 | ±28.5 | 谐振腔电流(Lr 支路) |
| 3 | 1350 | ±1479 | 谐振电容电压 |
| 4 | 8.85 | ±15.4 | 副边/输出相关 |
| 5 | 1665 | ±2416 | 原边电流或驱动相关 |
通道与信号的对应关系由模型连线决定,本表为按数值量级的推测;打开模型在 Gecko 界面看探针标注可精确确认。
4.3 怎么用它继续(与库内 LLC 篇联动)
- 改参数看趋势:改
C.1/L.1/L.2复现 HR1000A 的 LLC 增益曲线(fn、Q、Lm/Lr 对增益的影响);改死区观察 ZVS 条件(对应 NCP1399 的自动死区)。 - 稳态加速:模型可用稳态检测接口(
gecko_steady_state)自动跑到周期稳态,比盲跑长仿真快。
5. 操作纪律(实测排障)
5.1 旧版本文件会弹确认框
2012 年的教程 .ipes 在新版 Gecko 打开时会弹“旧版本文件”确认框——弹窗会阻塞自动化调用(本篇第一次二次打开 C 模型时接口调用超时 30 s 即为该弹窗所致;手动确认一次后正常)。批量脚本处理旧教程文件时预留手动确认,或先由界面打开一次。
5.2 THD/傅里叶窗口必须取整数个工频周期
实测教训:同一段波形,40 ms 窗口(0.08~0.12 s)算出 THD = 2807%,换 20 ms 窗口(0.08~0.10 s)得到 11.42%。原因:傅里叶分析以窗口长度定基频——40 ms 窗口的基频是 25 Hz,50 Hz 信号被判成“二次谐波”,分母(基波)几乎为零,THD 爆炸。取窗规则:整数个工频周期(50 Hz 取 20 ms 的整数倍)。这一陷阱对任何做 FFT 的工具都成立(LTspice 的 .four 同样要求整周期)。
5.3 步长(dt)选择速查
| 仿真对象 | 建议 dt | 本篇用例 |
|---|---|---|
| 工频级(整流、PFC 的工频评估) | 1~10 µs | A 模型 10 µs |
| 开关级(PFC 开关周期、跳周期) | 0.5~2 µs | C 模型 2 µs |
| 谐振级(LLC、ZVS 换流细节) | 50~100 ns | LLC 模型 100 ns |
5.4 与真实测量的关系
仿真过 ≠ 实测过——库内01_待核实与推断总表 的 A 级风险没有一条是仿真能拦住的(07 篇 §「仿真纪律」)。本篇的定位是数据比对:仿真数(11.42%)与官方数(11.3%)吻合,证明模型设置正确;仿真与手算的预期吻合,证明理解正确。两者都对,才轮到硬件。
6. 精炼速查
6.1 本机资产与命令卡
| 项 | 值/操作 |
|---|---|
| 安装目录 | /home/sam/GeckoCIRCUITS |
| 启动(带远程接口) | ~/gecko-build/start-gecko-stack.sh |
| PFC 实验课 | TutorialExercises/2_PFC/{A_Rectifier,B_pfc,C_pfc}.ipes |
| 官方数据 | 库内 90_资料源/Gecko_PFC_Solution.pdf |
| 运行仿真 | gecko_run_simulation(dt, end_time) |
| 读数据 | gecko_scope_channels / gecko_scope_analysis(kind=thd) |
| 参数扫描 | gecko_set_parameter → 跑 → 读,循环 |
6.2 比对数据卡(本篇核心)
| 场景 | 官方 | 本机实测 |
|---|---|---|
| 整流基线电流峰值 | 52 A | 52.0 A |
| 整流基线 THD | 163% | 162.9% |
| 滞环 PFC THD(±1 A、10 mH) | 11.3% | 11.42% |
| 电感 10→2 mH | —(趋势:fS 升高) | THD 11.42→11.96% |
| 容差带 ±1→±3 A | — | THD 11.42→14.13% |
6.3 陷阱清单
- 旧版
.ipes弹窗阻塞自动化——手动确认一次; - THD 窗口非整周期 → 假结果(2807% 案例);
- 滞环 PFC 里“改电感降 THD”是错误方向——容差带才是 THD 的旋钮;
- 参数扫描前先跑一次基准并对上官方数(本篇比对三连),否则扫描的是错误配置;
- 仿真读数与库内手算比对是硬纪律(07 篇 §「仿真纪律」五条)。
上一级:仿真验证