# etw_emul **Repository Path**: jasydong/etw_emul ## Basic Information - **Project Name**: etw_emul - **Description**: 两轮电动车模拟器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-30 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # etw_emul — 两轮电动车整车电路模拟器 一个基于**真实电路解算**的两轮电动车(48V 电动踏板车)整车电路模拟与排故实训系统。纯前端实现,零依赖,离线可用。 ![界面](docs/screenshot.png) ## 功能特性 ### 真实电路解算(不是预设动画) - 内置**改进节点法(MNA)直流求解器**,每帧对整车 45 节点 / 60+ 元件网络求解真实工作点 - 导线颜色代表真实电位:红 ≈ 48V、橙 ≈ 12V、蓝灰 ≈ 0V;白色流动虚线表示电流方向与大小 - 所有电压/电流/功率均由解算涌现,例如: - 主线路对地短路 → 按 I²t 热特性**熔断器真实熔断** - 12V 短路 → 转换器限流 → 3 秒后**过流保护关断** - 电压低于 41.5V → 控制器**欠压保护打嗝**(带滞环恢复) - 转向灯烧坏一只 → 该侧负载电流减小 → **闪光器频率变快**(真实闪光器特性) - 负极搭铁不良 → 大电流时地电位抬升,全车异常 ### 整车电路(典型 48V 踏板车架构) - **48V 回路**:锂电池组(13串 20Ah, 带内阻与SOC模型) → 主熔断器 F1(30A) → 断路器 QF(40A) → 电门锁 → 控制器 / DC-DC 转换器 - **12V 回路**:大灯(近/远光双丝)、尾灯(位置丝+刹车丝)、四只转向灯(经闪光器)、喇叭、仪表 - **控制回路**:转把霍尔信号 0.8~4.2V、刹把高电平刹车信号、电机三相与霍尔(示意) - **电机模型**:限流 24A / 功率 800W 双重限制,整车质量、风阻、滚阻、刹车减速,车速-加速度真实积分 ### 排故实训 - **24 种故障**注入:电源系统 / 灯光信号 / 控制与电机 / 综合挑战,每条附现象、排查提示、答案 - **数字万用表**: - V 档:点击原理图节点放置红/黑表笔,实时测量任意两点电压 - Ω 档:断电状态下测电阻/通断(带电测量会被拒绝——教学要点) - A 档:钳流表,点击任意导线读取电流 - **随机排故挑战**:系统随机隐藏一个故障,观察现象 → 测量定位 → 修复 - 元件点击查看实时参数,熔断器可更换、断路器可合闸、转换器可复位 - 事件日志记录熔断、保护动作等关键事件 ### 操作方式 钥匙上电 → 转把滑条/按住 W 骑行 → 空格捏刹车 → L 切换灯光 → T 切换转向 → H 喇叭 → 充电器接入充电(带 SOC 回充) ## 运行 无任何构建与依赖,二选一: ```bash # 方式一:直接双击打开 index.html(file:// 协议即可运行) # 方式二:本地服务 python3 -m http.server 8080 # 浏览器打开 http://localhost:8080 ``` ## 软件架构 ``` index.html 页面骨架 css/style.css 暗色工控风格 js/solver.js MNA 改进节点法直流求解器(电压源/电流源/电阻,Ω档测量模式) js/netlist.js 整车网表 + 原理图几何数据(节点/元件/符号/布局) js/sim.js 整车仿真引擎(电池SOC、电机动力学、熔断器热模型、 转换器状态机、闪光器、欠压保护、万用表、故障注入) js/faults.js 故障目录(24 种,含现象/提示/答案) js/ui.js SVG 原理图渲染、电流动画、万用表、故障面板、控制台 js/audio.js Web Audio 音效(喇叭双音、转向继电器、熔断爆响、电机电流声) js/main.js 固定步长主循环(120Hz 仿真 + 60Hz 渲染) tests/run.js 无头测试(求解器单元测试 + 整车联动场景,52 项断言) ``` 仿真帧流程:开关状态 → 保护与受控源(基于上帧工作点)→ 电机/车辆动力学 → MNA 解算 → 电池 SOC / 熔断器热模型 → 事件与故障码。 ## 测试 ```bash node tests/run.js # 结果: 52 通过, 0 失败 ``` 覆盖:求解器(分压/电流源/Ω模式)、上电时序、灯光、转向闪光、刹车断电、骑行加速、 短路熔断(涌现)、接触不良欠压、12V 短路保护、充电、万用表三档、全部故障注入回归。 ## 教学场景示例 | 场景 | 现象 | 排查思路 | |------|------|----------| | 熔断器熔断 | 全车无电 | 电压档从电池正极逐点向后测量 | | 电门锁烧蚀 | 能开但一加速就欠压 | 测锁进出线压差(正常≈0V) | | 负极搭铁不良 | 空载正常带载异常 | 测负载时电池负极与地母线压差 | | 转换器损坏 | 电机正常但灯光全灭 | 测转换器输入 48V / 输出 12V | | 刹车开关常通 | 刹车灯常亮且电机不转 | 测刹车信号线电压 | | 转把卡滞 | 上电即飞车(危险!) | 测转把信号电压是否回位 | ## 参与贡献 欢迎提交 Issue / PR:新增车型拓扑(60V/72V、铅酸)、更多故障、示波器功能等。