GeckoCIRCUITS 手把手教程 —— 从零搭一个 Boost PFC
你将学会:打开 GeckoCIRCUITS → 从空白画布拖元件搭建一个 Boost PFC → 设定滞环电流控制 → 运行仿真 → 看输入电流波形 → 比对 THD。 预计时间:45 分钟(第一次)。前置:无需仿真经验。建议先读完 LTspice 手把手 了解 buck 原理(PFC = boost + 电流环)。 本机安装:
/home/sam/GeckoCIRCUITS/。启动:~/gecko-build/start-gecko-stack.sh(带远程接口)或直接java -jar /home/sam/GeckoCIRCUITS/GeckoCIRCUITS.jar。
本教程的目标电路
一个滞环电流控制的 Boost PFC(与 Gecko 官方实验课 TutorialExercises/2_PFC/C_pfc.ipes 同拓扑):
电网 230V/50Hz ── [二极管桥] ── [电感 10mH] ── [开关管] ── [输出电容] ── 390V DC
↑ │
[电流控制器] ←── 电流采样
↑ │
[正弦参考] ←── 电压外环 ── 输出电压反馈
比对目标:输入电流 THD ≈ 11.3%(官方实验课解答数据,已收入 90_资料源/Gecko_PFC_Solution.pdf)。
第 1 步:启动 GeckoCIRCUITS
方式 A:GUI 启动
java -jar /home/sam/GeckoCIRCUITS/GeckoCIRCUITS.jar &
应该看到 GeckoCIRCUITS 主窗口:左侧是元件库面板(分类树),右侧是白色画布,顶部是工具栏。
方式 B:先打开官方示例参考
# 在 GeckoCIRCUITS 中:File → Open → 选择:
/home/sam/GeckoCIRCUITS/TutorialExercises/2_PFC/C_pfc.ipes
打开后你会看到完整的 PFC 电路——本教程教你从空白画布自己搭一个等效的。可以先看一眼官方版,然后 File → New 新建空白,跟着下面步骤做。
第 2 步:认识元件库面板
左侧元件面板按类别分组。PFC 需要的元件:
| 面板分类 | 元件 | 本例用途 |
|---|---|---|
| Electrical → Sources | VOLTAGE_SOURCE(交流电压源) | 电网 230V/50Hz |
| Electrical → Machines... 等不用 | ||
| Electrical → Semiconductors → Diodes | DIODE | 二极管桥 ×4 + 升压二极管 ×1 |
| Electrical → Switches | IDEAL_SWITCH 或 IGBT/MOSFET | PFC 开关管 |
| Electrical → Passives | INDUCTOR, CAPACITOR, RESISTOR | 电感/电容/负载 |
| Control → Sources | CONST(常数), SINE(正弦) | 参考信号 |
| Control → Math | SUB(减法), MUL(乘法), GAIN(增益) | 控制运算 |
| Control → Discrete | HYSTERESIS(滞环比较器) | 滞环电流控制核心 |
| Control → Filters | PT1(一阶低通) | 采样滤波 |
| Measurement | VOLTAGE_SCOPE / CURRENT_SCOPE | 示波器 |
第 3 步:搭主功率级
3.1 放交流源
- 左侧面板 → Electrical → Sources → VOLTAGE_SOURCE
- 拖到画布左侧
- 双击 → 参数设置:
- Type: SINE
- Amplitude (peak): 326V(= 230V × √2)
- Frequency: 50Hz
- 点 OK
3.2 放二极管桥
- 拖 4 个 DIODE 到画布
- 连成全桥(D1: AC_L→DC+, D2: DC+→AC_L, D3: AC_N→DC+, D4: DC+→AC_N)
- 双击每个 → Forward voltage: 0.6V(默认)
- 或者直接用 桥式整流模块(如果元件库有 BRIDGE_RECTIFIER)
3.3 放升压电感
- 拖 INDUCTOR 到画布,放在 DC+ 输出后
- 双击 → L = 10mH(10e-3)
- 点 OK
3.4 放开关管
- 拖 IDEAL_SWITCH(或 IGBT)到画布
- 位置:电感输出端对地
- 双击 → Ron = 10mΩ
- 点 OK
3.5 放升压二极管
- 拖 DIODE,从开关管上端到输出
- Forward voltage: 0.6V
3.6 放输出电容
- 拖 CAPACITOR
- 输出到地
- C = 470µF
3.7 放负载电阻
- 拖 RESISTOR
- 输出到地
- R = 85Ω(对应 1793W @ 390V,与官方实验课口径一致)
3.8 连线
- 点击一个元件的端子 → 拖到另一个元件的端子 → 释放完成连线
- 或者:先点起点端子 → 再点终点端子
主回路连线清单:
AC_L → 桥D1/D2 → 桥DC+ → L.1(左)
L.1(右) → SW上端 + 升压D1阳极
SW下端 → GND
升压D1阴极 → C+ → RL → GND
桥DC- → GND
第 4 步:搭控制环(滞环电流控制)
这是 PFC 的控制核心:让电感电流跟踪正弦参考。
4.1 电流采样
- 拖 CURRENT_SCOPE 或 AMMETER,串在电感回路中
- 这给出实际电感电流 iL 的测量信号
4.2 正弦参考信号
- 拖 SINE 控制块
- Amplitude = 11A(对应 ~1793W/230V 的基波幅值)
- Frequency = 50Hz
- 这个信号 = “理想输入电流波形”
4.3 电流误差 = 实际 - 参考
- 拖 SUB(减法器)
- 输入 A = 电感电流采样
- 输入 B = 正弦参考
- 输出 = 电流误差
4.4 滞环比较器
- 拖 HYSTERESIS 控制块
- 参数 h = 1.0(滞环阈值 ±1A)
- 输入 = 电流误差
- 输出 = 开关控制信号(误差 > +1A 时输出 -1 关断,误差 < -1A 时输出 +1 开通)
原理:电感电流超过正弦参考 +1A → 关断开关(电流下降);低于参考 -1A → 开通开关(电流上升)。电流被“夹”在正弦参考 ±1A 的带内。
4.5 驱动信号
- 滞环输出(±1)需要转换为开关驱动(0/1)
- 用 GAIN 块:增益 = 0.5,偏置 = 0.5 → 将 ±1 映射为 0/1
- 或者用限制块(LIMIT 0→1)
4.6 连接控制信号到开关管
- 控制输出 → 开关管的栅极端子
第 5 步:放示波器
- 拖 SCOPE(或 VOLTAGE_SCOPE/CURRENT_SCOPE)
- 通道 1:电网电压(VOLTAGE_SCOPE 接 AC 源)
- 通道 2:电感电流(CURRENT_SCOPE 串在电感回路)
- 通道 3:开关控制信号
- 通道 4:输出电压
第 6 步:设仿真参数
- 菜单 Simulation → Simulation Control(或按工具栏齿轮图标)
- 设置:
- Tstart: 0
- Tstop: 0.1s(5 个工频周期 @50Hz)
- dt (Timestep): 2e-6 s(2µs——够解析 50Hz 和开关细节)
- 点 OK
第 7 步:运行仿真
- 菜单 Simulation → Start Simulation(或点工具栏▶按钮)
- 底部状态栏显示进度
- 10ms 工频仿真在普通电脑上 <30 秒
第 8 步:读波形
仿真结束后,双击示波器图标打开波形窗口。
你应该看到:
| 通道 | 波形 | 检查点 |
|---|---|---|
| 电网电压 | 正弦波 ±326V | 频率 50Hz |
| 电感电流 | 正弦形包络 + 高频纹波 | 包络峰值 ~11A,纹波 ±1A |
| 输出电压 | 逐渐充到 ~390V 的直流 | 纹波 50Hz 分量 |
| 控制信号 | 高频脉冲序列 | 过零处频率最高 |
比对官方数据:
| 量 | 官方解答 | 你应该量到 |
|---|---|---|
| 输入电流 THD | 11.3% | 11~12%(取决于过零处理) |
| 电流峰值 | ~13 A | 11+1 = 12~13 A |
| 输出电压 | ~390V | 稳态 ~390V |
第 9 步:比对 THD
GeckoCIRCUITS 内置 THD 分析:
- 菜单 Tools → Fourier Analysis(或右键示波器)
- 选电感电流通道
- 设置:
- 基频: 50Hz
- 窗口: 整数个周期(如 0.08~0.10s = 1 个周期)
- 点 Calculate
你应该得到 THD ≈ 11.3%(如果取了非整数周期会得到荒谬值——见下方的陷阱)。
第 10 步:参数扫描(体验仿真的价值)
改两个参数看效果:
实验 1:改电感
- 双击电感 → 10mH 改为 2mH
- 重新运行仿真
- 读 THD:应该几乎不变(~11.4%)——电感不影响 THD(影响开关频率)
实验 2:改滞环带宽
- 双击滞环块 → h = 1.0 改为 3.0(容差带 ×3)
- 重新运行仿真
- 读 THD:应该恶化到 ~14%——容差带是 THD 的旋钮
实验结论(写入实验报告)
| 扫描 | THD 变化 | 设计含义 |
|---|---|---|
| L: 10→2 mH | 11.4→12.0%(几乎不变) | 电感决定开关频率(频率升高→损耗增大) |
| 容差带: ±1→±3 A | 11.4→14.1%(恶化) | 容差带决定 THD |
常见陷阱与排查
| 现象 | 原因 | 解法 |
|---|---|---|
| THD = 2807% | 傅里叶窗口不是整数个工频周期 | 取窗 = 20ms 的整数倍 |
| 仿真报 “singular matrix” | 开关管没有栅极信号(控制环没接好) | 检查滞环输出→开关栅极的连线 |
| 电感电流为平直的直流 | 控制环没工作(开关不动作) | 检查 SINE 参考和 SUB 减法器的连线方向 |
| 输出电压为零 | 升压二极管方向接反 | 阳极接电感,阴极接输出电容 |
| 打开旧版 .ipes 弹窗 | 2012 年教程文件在 2025 版 Gecko 中打开 | 手动点 OK 确认一次 |
| 仿真极慢 | dt 太小或电路有收敛问题 | dt 从 2µs 试起,逐步减小 |
精炼速查
元件拖放清单
| # | 元件 | 面板位置 | 关键参数 |
|---|---|---|---|
| 1 | VOLTAGE_SOURCE (SINE) | Sources | 326V pk, 50Hz |
| 2 | DIODE ×5 | Semiconductors | Vf=0.6V |
| 3 | INDUCTOR | Passives | 10mH |
| 4 | IDEAL_SWITCH | Switches | Ron=10mΩ |
| 5 | CAPACITOR | Passives | 470µF |
| 6 | RESISTOR | Passives | 85Ω |
| 7 | SINE (控制) | Control | 11A pk, 50Hz |
| 8 | SUB | Math | |
| 9 | HYSTERESIS | Discrete | h=1.0 |
| 10 | SCOPE | Measurement | 4 通道 |
仿真参数卡
| 参数 | 值 | 为什么 |
|---|---|---|
| Tstop | 0.1s | 5 个工频周期 |
| dt | 2µs | 解析开关动作 |
| THD 窗口 | 20ms 整数倍 | 整数个工频周期 |
| 滞环阈值 h | ±1A | 官方实验课口径 |
上一级:教程