过载与燃烧
概述
当电缆上传输的电压或电流超过其额定值时,电缆会燃烧(Burn)——被替换为 Minecraft 的火块(fire block),从而被销毁。这是 GT5-Unofficial 电力系统的核心保护机制,防止高压电流直接烧毁机器或造成更大范围的设备损坏。
电缆燃烧是永久性的:一旦某段路径被锁定(Locked),即使移除原因也不会自动恢复,除非重启世界或手动清除锁定标记。
两种过载触发器
GT5 的电缆燃烧机制有两个独立的触发条件,分别针对电压和电流:
触发器 1:过电压(Overvoltage)
触发条件:电缆路径上的瞬时电压超过了该路径中最弱电缆的额定电压(mVoltage)。
if (aVoltage > mMaxVoltage) {
// 触发燃烧
}
特点:
- 瞬时触发:只要有一次电压超过额定值,就会立即燃烧
- 只烧额定值不足的电缆:路径中只有
mVoltage < currentVoltage的电缆会燃烧,额定值足够的电缆不受影响 - 多段路径:路径中最弱的电缆首先燃烧,然后可能蔓延
示例:
发电机输出 512V (HV)
├─ 电缆1: 铜缆, mVoltage=128 (MV 等级) ← 额定值不足!
│ 512 > 128 → 立即燃烧
└─ 电缆2: 银缆, mVoltage=512 (HV 等级)
512 = 512 → 安全,不燃烧
错误示例(新手常见):
- 用 MV 电缆(额定 128V)连接 HV 发电机(输出 512V)→ 电缆立即燃烧
- 用 LV 电缆(额定 32V)连接 MV 机器(输出 128V)→ 电缆立即燃烧
正确做法:电缆电压等级必须 ≥ 设备输出/输入电压。
触发器 2:过电流(Overcurrent)
触发条件:电缆路径上的累积电流超过了该电缆额定载流量(mAmperage)的 40 倍,并且持续超过 40 个游戏刻(2 秒)。
if (this.mAmps > mMaxAmps * 40) {
// 触发燃烧
}
累积机制:
- 每 tick 注入的电流会累加到
mAmps字段 - 当没有电流通过时,
mAmps会按照mMaxAmps × 经过的tick数衰减 - 只有当累积值持续超过 40× 额定载流量才会触发
40× 阈值的意义:
- 允许短暂的电流涌入(如机器启动时的浪涌电流)
- 防止因短暂的电流尖峰而误触发
- 2 秒的持续超载才会触发,给玩家反应时间
示例:
电缆额定载流量: 2A (铜缆 1x)
阈值: 2A × 40 = 80A
场景: 5 个 HV 机器同时工作,每个需要 2A
总电流需求: 5 × 2A = 10A
10A < 80A → 不会触发,安全运行
电缆额定载流量: 2A (铜缆 1x)
阈值: 2A × 40 = 80A
场景: 连接了过多高功率机器,总需求 100A 持续 3 秒
100A > 80A → 持续 3 秒 (60 ticks) → 触发燃烧
只烧额定值不足的电缆:路径中只有 mAmperage × 40 < 当前累积电流 的电缆会燃烧。
示例(混合电缆路径):
电缆路径: 铜缆 1A → 银缆 2A → 机器
铜缆阈值: 1A × 40 = 40A
银缆阈值: 2A × 40 = 80A
如果总电流为 50A 持续超载:
- 铜缆: 50 > 40 → 燃烧
- 银缆: 50 < 80 → 安全
燃烧机制详解
setToFire() 执行过程
public final void setToFire() {
worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.fire);
}
- 电缆方块被替换为火(fire)方块
- 火块会自然蔓延到相邻的方块(如果可燃)
- 火块会烧毁电缆方块本身
- 电缆被永久销毁,需要玩家手动替换
锁定机制(Lock)
public class Lock {
public void addTileEntity(TileEntity tileEntity) {
tiles.add(tileEntity); // 添加 null 会永久锁定
}
public boolean isLocked() {
return !tiles.isEmpty(); // 一旦锁定,永不自动解除
}
}
锁定行为:
- 过载时调用
lock.addTileEntity(null),永久锁定该路径 - 被锁定的路径在能量传输时直接跳过
null无法通过removeTileEntity移除- 锁定状态不会因过载原因消除而自动解除
解除锁定的方式:
- 重启游戏/重载世界
- 破坏并重新放置电缆
- 使用调试工具手动清除(如果有)
过载时的视觉表现
- 电缆变红/冒烟(部分版本/配置)
- 电缆消失,替换为火块
- 火块蔓延(如果相邻有其他可燃方块)
- 路径断路:下游设备失去电力供应
玩家如何避免过载
避免过电压
| 错误做法 | 正确做法 |
|---|---|
| 用 MV 电缆连接 HV 发电机 | 使用 HV 电缆(额定 ≥ 512V) |
| 用 LV 电缆连接 EV 变压器 | 使用 EV 电缆(额定 ≥ 2048V) |
| 混用不同电压等级的电缆 | 整个路径使用统一或更高电压等级的电缆 |
| 在高压线路上使用低压分支 | 分支也要使用匹配的电缆等级 |
原则:电缆的 mVoltage 必须 ≥ 线路上传输的最高电压。
避免过电流
| 错误做法 | 正确做法 |
|---|---|
| 一根 1× 铜缆连接 10 个 HV 机器 | 使用更粗的电缆(4×/8×/16×)或分开多条电缆 |
| 电缆载流量远小于设备总电流需求 | 计算总电流需求,确保 电缆载流量 × 40 > 最大总电流 |
| 同一电缆回路连接过多高功率设备 | 将设备分散到不同的电缆回路 |
| 长距离输电使用细电缆 | 使用更粗的电缆增加载流量 |
计算示例:
计划: 1 条电缆连接 20 个 HV 机器
每个机器最大电流: 2A (HV 等级)
总最大电流需求: 20 × 2A = 40A
选择电缆:
- 铜缆 1×: 载流量 1A, 阈值 40A → 刚好临界,不安全
- 铜缆 4×: 载流量 4A, 阈值 160A → 40 < 160, 安全
- 银缆 4×: 载流量 4A, 阈值 160A → 同上,且损耗更低
安全设计原则
- 电压匹配:电缆电压等级 ≥ 设备最高电压
- 电流冗余:电缆载流量 × 40 > 最大总电流需求(留有安全余量)
- 分路供电:大电流需求设备使用独立电缆回路
- 定期检查:使用扫描仪监控电缆负载情况
- 使用超导体:对超高电流需求使用超导体,避免普通电缆的损耗和过载问题
过载的常见场景
场景 1:高压发电机直连低压电缆
错误配置:
HV 发电机 (输出 512V) → LV 电缆 (额定 32V) → 机器
结果:电缆立即燃烧(过电压)
场景 2:同一电缆连接过多发电设备
错误配置:
发电室: 10 个 HV 发电机 (每个 512V, 2A)
全部并联到 1 根 HV 电缆 (载流量 2A)
结果:电流累加超过 2A × 40 = 80A 持续 → 过电流燃烧
正确配置:
方案 A: 每 2-3 个发电机使用独立电缆
方案 B: 使用 16× 载流量电缆 (32A, 阈值 1280A)
方案 C: 使用超导体
场景 3:分支电路超载
HV 主干电缆 → 分支到 50 个 LV 机器
主干 HV 电缆载流量: 8A (8× 铜缆)
每个 LV 机器需求: 1A
总需求: 50A > 8A × 40 = 320A? 实际上不会超载...
但如果分支电缆本身是 LV 1×:
每个分支 LV 电缆载流量: 1A
如果 1 个分支上连接 50 个机器 → 50A > 1A × 40 = 40A → 该分支电缆燃烧
场景 4:长距离输电后电压不足
正确但不够:
HV 发电机 (512V) → 100 格铜缆 (损耗 200 EU/t) → 机器
机器收到电压: 512 - 200 = 312V (低于 HV 等级 512V)
机器可能运行异常或无法启动,但不一定会燃烧
修复方案:
1. 使用低损耗电缆 (银缆 loss=1 → 312V)
2. 使用超导体 (零损耗 → 512V)
3. 中途设置变压器升压
过载保护机制总结
| 触发条件 | 阈值 | 触发速度 | 影响范围 |
|---|---|---|---|
| 过电压 | 电压 > 电缆 mVoltage | 瞬时(一次就触发) | 路径中额定值不足的电缆燃烧 |
| 过电流 | 电流 > 载流量 × 40 | 持续 2 秒+ | 路径中载流量不足的电缆燃烧 |