B-release
© Janssens Erik 1998
Erik.Janssens@vub.ac.be
The one and only circuit solver for TI-92
programmed by Erik Janssens
2.1 Installation
2.2 Making a new file
2.3 The Editor
2.4 The Analyser
2.5 The Equation Generator
2.6 The Equation Solver
2.7 The Solution Browser
3.1 Different Files
3.2 Cirsim II file format
This program uses the Laplace library from Lars Frederiksen which is included in this zip-file, I have nothing to do with errors in that part of the program. But this is a very powerful library which allows you to use Dirac and Heaviside functions. Therefore, read his file
You can always download the latest version of my program at the ticalc.org site.
Please mail me if you like this program, because I am planning a new version with much more posibilities, but if nobody uses this one, I won't take the time to put it on the net or to write a manual.
Plans for the next verion :
My experience is that the program works fine as long as you don't draw non-sense circuits. Every circuit I have tried yet was right (and I have tried a lot of ciruits). If you might find a bug, please mail me your circuit with a description of the bug.
Greetings to all TI-users,
Erik Janssens,
Notice : This zip-file may be distributed freely, as-is. Please do not modify anything. No-commercial use without written permission of the author.
(Please forgive me my bad English writing style)
If you already have another version of Cirsim on your calculator, be sure to remove that version first. Some files won't be used in this version, so they only use your calculator's memory. Then use a TI-Graph Link to move these files to your calculator :
1. Cirsim2.92g
2. Laplace242.92g
Then make the cirsim directory active on your calculator and start the program by entering cirsim().
Start the dialog box from the main menu <F1> <3>
The dimension of the network must be at least 5*12.
You can create three kinds of networks :
Start the editor from the main menu : <F3> <1>
You can draw wires using the keys 0 1 2 3 4 5 6 7 8 9 * + , (Just try it). Notice that you may never draw two objects next to each other, there must be a wire connecting them. Unlike in Cirsim I, you must enter the properties of the objects between {}. E.g. 5 Volt becomes {5}.
Start the analyser from the main menu : <F3> <2>
Use the analyser when you are finished drawing your circuit. It searches for connections between objects in your circuit. This is a critical part of the program because there is not much error-checking, so you may not have drawn non-sense circuits. Checking for errors would seriously slow down the algorithm. The anayser gives each object and each node a number. From now on you can use the <i> key in the editor when the cursor is on an object, it gives you the number of the object and the nodes where it is connected to. Now you can also use the option to view object numbers from the main menu, press <F2> <2>.
Once your circuit has been analysed, you can search for equatoins by pressing <F3> <3>. The equations are stored in the file 'eq'.
Solve the equations by pressing <F3> <4>. Additional questions about how the solution should look like are asked during the proces. This can take a while because here a matrix inversion is needed. The solutions are stored in the file 'solution', this are the potentials of each node. Node zero has offcourse potential 0 V.
Is launched by pressing <F4> <Enter>.
In my opinion, everybody should be able to write a program that works together with Cirsim. To make this easy for you, I have add this section to my manual. It discribes the working of the program and how the information is stored in files. So if one of you thinks he can write a better editor, analyser or equation finder, just do it.:
anal.92m
This matrix contains the number of an objecte that corresponds with the objects in ccwire. This information is not stored in a Cirsim II file.
ciranal.92p
This program analyses the circuit in ccwire.92m and ccpar.92m. The information is stored in nobj.92e, nono.92e, anal.92m, objects.92m
ccwire.92m
Matrix that contains the wires of the current circuit. If the element of the matrix is a number between 1 and 14, the element stands for a wire. If it is greater than 14, the element stands for an object numbered as in objects.92m when 15 corresponds with object 1.
ccpar.92m
Matrix that contains the parameters of the objects in the current circuit. The place of the parameter in the matrix corresponds with the objects in ccwire.92m
ciredit.92p
The circuit editor. Stores the circuit in ccwire.92m and ccpar.92m
cirmode.92e
This is a list with different parametres of the current circuit. The first defines in which mode the current
circuit has to be solved :
R = Resistive : Only Resistive circuit
S = Single frequency : All sources have the same frequency and you only want the stable state conditions.
M = Multi frequency : sources have different frequencies or you want a complete solution.
If the first parameter is S, the second parameter is that frequency.
The third parameter is a string that may contain the lettres A,E,S. An A means that the circuit has been
analysed, an E means that the equations have been found and an S means that they have been solved.
file.92e
The name of the current file.
fopen.92p
Opens a file
fsave.92p
Saves a file
mxx.92e, mxy.92e
The maximum (x,y) coordinates of the circuit.
nobj.92e
the number of objects in the current circuit
nono.92e
the number of nodes in the current circuit
objects.92m
Contains the objects that are in the circuit in the same order as they are numbered by the circuit
analyser. Each with the following properties :
1. The first node to which they are connected
2. The second node to which they are connected
3. Type object :
V = voltage source
C = current source
R = resistor
A = capacitor
O = coil
4. Their parametres
objlst.92c
Contains a list of the different objects that can be put in a circuit. Each object has the following
properties :
1. The name of the object which is the same as the name of their bitmap
2. Type object :
V = voltage source
C = current source
R = resistor
A = capacitor
O = coil
3. How their parametres have to be saved in objects.92m
objm.92c
Contains a copy of objlst.92c if the circuit mode is Multi Frequency.
objr.92c
Contains a copy of objlst.92c if the circuit mode is Resistive.
objs.92c
Contains a copy of objlst.92c if the circuit mode is Single Frequency.
p.92e
A temporary variable used by cirsim
plot.92p
Plots the contents of ccwire[x+relx,y+rely] at position (x,y) on the screen.
point.92p
Lets you browse the circuit with the pointer and addapts the values of x,y,relx,rely
ql.92l
A list with 5 files you opened lately.
qladd.92p
Adds a file to ql.
relx.92e, rely.92e
The (x,y) coordinate of coordinate (1,1) from the screen in the circuit. So the real coordinate of the pointer in the circuit is (x + relx,y + rely)
supern.92p
Searches the equations that determine the circuit. It gets his information from objects.92m, nono.92e, nobj.92p, cirmode.92e and stores the equations in eq.92m
vct.92m
Matrix used internally by ciranal.92p
x.92e, y.92e
The (x,y) coordinate of the pointer on the screen
The other files are left for your inspiration.
The Cirsim II file format is a list with various strings. This makes the Cirsim II file format incompatible
with the Cirsim I file format which was a matrix. The list contains the following strings :
1. The exact version number, here : "CS2.00"
2. The list cirmode
3. The matrix ccwire
4. The matrix ccpar
5. The matrix objects if the circuit has been analysed
6. The list eq if the equations were found
7. The list solution if the equations were solved
Special thank goes to :
Lars Frederiksen for his Laplace library
Everybody who mailled me with his sugestions and comments, keep on goïng !
The equation browser stinks.
So does the current editor.