面向电子信息、自动化等专业的模拟电路教学与实训,开发一套可在浏览器运行的三维虚拟实验平台。平台涵盖单管及多级放大、运算放大、滤波、比较、波形发生、振荡、整流稳压、功率放大等21类实验及多个子实验。用户可在三维实验板上选择端子完成交互连线,使用重置、故障检测和一键布线等功能;系统能够识别缺失连接和多余连接,并根据当前实际连线自动生成SPICE网表,调用ngspice完成电路仿真,再通过可缩放、平移和导出的示波器波形展示输入输出结果,适用于课前预习、课堂演示、实验训练和故障排查。
项目采用H5前端与Python后端分层架构。前端使用JavaScript、Three.js和FBXLoader加载三维实验板模型,通过射线拾取、工作平面投影、端子标签映射及分段连线,实现端子选择、连线绘制、撤销、重置和模型交互;基于实验配置文件维护元件参数、必接线路、器件模型、分析命令和探测节点,使不同实验能够复用统一引擎。
为解决“视觉连线如何转换为可仿真的电气网络”问题,我实现了基于并查集思想的节点归并逻辑,将相互连通的端子映射为统一SPICE节点,并固定接地端为0节点,再按当前连线动态生成电阻、电容、电感、二极管、三极管及子电路网表。后端使用Flask提供仿真接口,通过临时目录和子进程以批处理方式调用ngspice,设置网表长度校验和60秒超时,并解析仿真输出为JSON数据。
前端使用Plotly绘制多通道波形,支持缩放、平移和图片导出,并自动识别电压、电流、功率等信号类型及匹配显示单位。故障检测模块依据各实验的标准连线规则判断少线和多线,对多余导线进行红色高亮并输出具体端子信息;一键布线模块结合路径候选、空间边界约束和路径评分机制,自动生成实验所需的连接线路。