CircuitJS的原型最初发布于2013年,是由美国大学教授Paul Falstad编写的一个JavaApplet 程序演化而来,他的初衷是用来设计和测试自己的电路。在他的工作基础上,另外一位开发者Iain Sharp将其扩展和优化,并移植到了浏览器上。
CircuitJS的开源性质和易于使用的特点使得它很受电子爱好者和专业工程师的欢迎,并且在电子电路教育领域应用广泛,很多学生和教师都使用它来学习和教授电子电路相关的知识。
产品特点
CircuitJS虽然是基于web的轻量化工具,但是电路仿真的基本功能它都具备:
- 完备的元器件库,且内置信号发生器:可用于测试电路的参数和性能
- 虚拟仪器功能,包括示波器、频谱分析仪、逻辑分析仪等:可用于观察电路的行为和特性
- 支持将模拟结果导出至其他工具进行分析
目前电子森林已经嵌入了这款电路仿真器,点击即可访问。
使用说明
打开链接:https://www.eetree.cn/circuitjs/circuitjs.html
CircuitJS 的初始界面展示了一个简单的RLC震荡电路。
它能动态显示当前电路上的电压电路特性,比如:绿色代表当前是正电压,红色代表负电压。移动的黄点表示了电路的运动方向和大小。
- 界面底部区域是示波器工具,实时显示流过器件的电压电流特性;
- 界面右侧是仿真参数调整栏,可以实时调整仿真速度,器件参数等。
菜单栏介绍:
1、文件:可根据需求导出各种格式,支持SVG图像格式、文本代码格式等。便捷共享,通过文本导出、复制代码、转发给小伙伴,他就能得到一份一模一样的电路。
2、编辑:活用快捷键可以增加工作效率。
3、绘制:绘制电路时,选择相应的子菜单。常用零件通常有快捷键,也可以自定义元器件快捷键,元件类型丰富,小伙伴们可以自己上手体验。
4、示波器:菜单栏中的示波器选项仅用于更改示波器的显示方式 ,更多示波器的相关设置,需要点击窗口最下方的波形滚动区域中的齿轮符号。
5、选项:可根据需求设置,显示参数等。
6、电路:该选项卡主要存放典型电路示例,通过这些示例来学习模拟/数字电路,能达到事半功倍的效果。配合电流电压参数可视化,能增加理解深度。
操作:
CircuitJS 中的多数操作均可通过鼠标点击、拖拽完成。
添加元器件:
可以通过“绘制”选项卡, 添加所需元件。不过此方法较为繁琐,效率低。平时使用的过程中,可以通过自定义快捷键(区分大小写)的方式来快速添加元件。下面列举 CircuitJS 中的一些常用快捷键:
移动元件 & 布局布线:
更改电路中的元件参数只需双击,或通过鼠标邮件点击,编辑即可。
还可以将该参数添加到侧边栏中进行滚轮调节,方便后续实验中改变电路参数。
仿真需要注意的地方:
仿真的原理是软件在一系列微小的时间间隔里,根据当前电路状态和元件模型,计算该微小时间内的电压和电流的改变量,更新当前电路状态。如此往复,计算电路的仿真结果。那么,如果是仿真高速电路,仿真步长也要相应设置的小一些,要保证其至少要比电路的时钟周期要短。
实验操作:
以电子森林STM32G031简易示波器平台为例(详情点击:https://www.eetree.cn/project/detail/662),参考电路原理图中的部分电路(如下图),在CircuitJS中搭建一个仿真电路。
搭建完成的仿真电路如下:
点击仿真电路中的“档位切换”,可以看到开关由“L”档位切换为“H”档位。
切换档位之后,运放的输出信号发生了衰减。
双击调整电路的偏压输入,将1.5V改成2.5V:
可以看到输出的电压发生了偏移:
这个电路就是STM32G031示波器开发板中前端电路档位切换的工作原理,该仿真电路的内容可以通过底部的链接获取。