tomcl / addie Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
The DC value of a voltage source cannot be changed from the Properties
tab. If a different value is required, the Voltage Source has to be deleted and re-added.
Describe the solution you'd like
Voltage Sources should support instant value/type change from the Properties
tab, as all other components do.
Describe alternatives you've considered
N/A
Additional context
The simulator does not work with a simple integrator circuit. An integrator contains 1 capacitor, 1 op-amp and 1 resistor. The error message says there is an unknown error in the circuit.
The simulator can normally support 1 capacitor/inductor/diode. I don't see why this circuit breaks it.
There is an op-amp in there so that might be the problem. When replacing the capacitor with an inductor or a diode, the transient analysis works. Only the capacitor seems to break the simulator in this case.
Frequency Response currently works by calculating the magnitude and phase at 20 points per decade (equally spaced in the log axis) starting from
However, the following two improvements would significantly improve the frequency response offered by ADDIE:
Explanations:
Sheets in ADDIE cannot have underscores in their names. When creating a new sheet ADDIE lets yu create a sheets with underscores in their name.
A warning should be given during the creation of a sheet, when the name is invalid.
ADDIE's error messages currently originate from a simple error-checking function that checks for the most common errors in circuits, such as the absence of ground, short-circuits, parallel Voltage Sources, etc.
This could be improved by adding a function that analyzes the nullspace of the MNA matrix, and is able to deduct from there which nodes and/or voltage sources make the circuit not solvable. Then, it should give this information to the users using an informative notification.
Something crucial that is currently not appropriately handled is checking that the opamps are used with negative feedback. Opamps with positive or no feedback can cause erroneous results when used with the current MNA algorithm.
This should be checked by the error-checking function and give appropriate warnings to the users.
Currently, ADDIE supports only diodes when it comes to non-linear components. This is done using the iterative Newton-Raphson method along with Modified Nodal Analysis. More information on the algorithm can be found in the Addie Wiki. The function performing the simulation of non-linear components is called newtonRaphson
and is in Simulation.fs
.
This issue aims in ADDIE supporting other non-linear components such as MOSFETs and transistors in a similar way as it is done for diodes (using the linear companion models). A good starting point for the linear companion models of MOSFETS and transistors is this paper.
Before implementation, the newton-raphson with MNA method would have to be further evaluated to guarantee that a solution can always be obtained, or explore what should happen when a solution cannot be obtained. Also, a more
advanced problem that will be encountered when dealing with more complex circuits, is finding all
the operating points (DC Solutions) of a non-linear circuit. This is a fundamental problem in the
computer-aided design of analog circuits, and this paper presents a SPICE-Oriented Method for Finding Multiple DC Solutions in Nonlinear Circuits using a deflation-based technique .
PENDING
There is a type of circuit that will not give you any warning messages when trying to do transient analysis, but the output is blank.
If this is due to the simulator not supporting this type of circuit, there should be some sort of error message.
I tried circuits with 1 diode or 1 capacitor and the analysis works. It seems to break down when both a capacitor and a diode are used in a circuit.
When trying a diode and an inductor, I got an error message:
As stated in the error message "Time Simulation currently supports a maximum of one Voltage Source and one Capacitor or Inductor". This circuit has an inductor and a diode and it generates that error message.
I believe that more than one capacitor/inductor/diode or any combination of those will break the simulator. The error message appears in some of those cases but it does not appear in some others (like the one in the first picture).
Describe the bug
In the file src/Renderer/UI/SelectedComponentView.fs
for a value between 0.1 and 0.99 a maximum value of 0.099 is returned even though it should be 0.99:
|v when (v>=0.1 && v<1) -> 0.1,0.099,0.01
(line 217)
When creating a sheet with a long enough name, the toolbar will move to the right enough to get some buttons off screen. I discovered this while making an opamp circuit sheet.
Here, the ground component is missing from the toolbar.
As a demo of this point, I tried with a longer name...
As seen here, almost all components are off the screen.
The components can still be found in the catalogue on the right hand side, but the ease of the toolbar is lost.
In the graph area, when a transient simulation is run, the input and output are labeled as x and y.
This should be changed so that the legend contains the voltage source label (for inputs) and node number (for outputs).
ADDIE should have proper tests that check all of the supported features to ensure that the correctness of the algorithms doesn't break when making changes or improvements. Given that the simulation requires the use of NodeJS packages, the tests cannot run on the .NET environment (as done in ISSIE).
The interface to run the tests is already set up and this is done via the Tests
tab on the RHS pane which appears only when ADDIE runs in dev mode (i.e. does not appear when published as a desktop app).
An example of a test exists in Simulator/Tests.fs
. To add a test, follow a similar pattern to testCase1
in Simulator/Tests.fs
.
The slider used to fast-change the values of components from the Properties
tab does not work properly when it is used with very small values (e.g. 40nF for a capacitor). This should be fixed.
Also, the usability of the slider could be improved by:
The current build scripts do not work on macOS.
./build.sh
exits with error message:
Script is not valid:
unknown (1,0)-(1,0): Error FS0193: The specified file name or path is too long, or a component of the specified path is too long.
The existing build scripts can be updated as in ISSIE to allow build on macOS, i.e. use dotnet fsi build.fsi
instead of dotnet fake
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.