Comments (8)
Thanks for the comment. I shared it with Paul Falstad who wrote the simulation code. Basically the maths it uses won't work for this case (how will the current split between two zero resistance conductors?). Paul says "if there are any wire loops with no resistance (not just through the voltage source, but anywhere), the circuit matrix will be singular and unsolvable. The trip around the two switches at lower right clearly qualifies.".
from circuitjs1.
A possible solution to this would be to assign a very low default resistance value to wires and swtiches, that would be consistent with reality too. However, I'm not sure how the maths function would handle this - for example it may require good decimal accuracy.
from circuitjs1.
If it helps, in my branch of Paul Falstad's original simulator, I have made WireElm a subclass of ResistorElm to work around this isse. See: https://github.com/hausen/circuit-simulator/blob/master/src/WireElm.java
It causes some side effects, though, so I had to add an "ideal wires" option to the menu. The user may select which behavior she wants.
from circuitjs1.
Interesting, I'll take a look when I get a chance.
from circuitjs1.
Nice! I always thought that wires should have at least very tiny resistance to stabilize the simulation... However there should be global setting to set wire resistance. With 0 still being the option. Sometimes you might want to add your resistors manualy for more precise simulation. We still might want to make superconductor simulations :-)
from circuitjs1.
Also lot of times there are no "wires" in circuit, there are just multiple components bonded directly by it's pins. so "global wire resistance" should be applied to all component pins in the first place. once this will be done, the "wires" will not really need it as they will always end in some component with series resistance of it's own.
from circuitjs1.
The convention that wires in circuit simulators are ideal is pretty well established and benefits in consistency with components directly joined and helps the performance. Real wires are not simple resistors but also have inductive and capacitative effects (and perhaps even non-linear in extreme cases). If non-ideal performance of wires is critical to the design then users should create their own model.
Therefore wires as ideal will be retained as the behaviour for now.
from circuitjs1.
But there are cases where simulator fails to converge or throws error because of this.
from circuitjs1.
Related Issues (20)
- Feature Request: Wire Junction Points HOT 2
- Most recent version HOT 3
- Bug: Transformers HOT 1
- mac .dmgs "damaged HOT 6
- Incorrect audio output file header HOT 1
- Option for making a circuit with zero resistance for educational purpose HOT 1
- NAND on Small Grid Bugs Simulation when Paused
- 错误:无法创建子电路 HOT 1
- Single pulse generator HOT 2
- [Feature request] ability to add user's own circuits to menu
- [Feature] Draw MOSFET's body diode on symbol if it's being simulated
- subcircuits with 2-terminal voltage sources don't work HOT 3
- FEATURE-merge two circuits HOT 1
- ArrayIndexOutOfBoundsException in YTb (circuitjs1-0.js:997)
- [FEATURE] remove subcircuit definition in circuitJS (standalone)
- [BUG] Some inputs do not appear in subcircuit HOT 1
- Feature: Noise generator - nV/√Hz or PINK/WHITE/BROWN
- 1N34 (germanium diode) incorrectly simulated? HOT 3
- [FEATURE] a lot of value for research.
- No current run visualisation when adding the DPDT Switch with 4 poles
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from circuitjs1.