This shows you the differences between two versions of the page.
gnucap:manual:examples:nonlinear_devices_--_diodes [2009/06/24 23:58] aldavis |
gnucap:manual:examples:nonlinear_devices_--_diodes [2015/12/11 15:39] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Nonlinear Devices -- Diodes ====== | ||
+ | |||
+ | All of the previous circuits have been linear. This is to say that all | ||
+ | the devices (voltage sources, current sources, dependent source and | ||
+ | resistors) are linear devices and the overall "shape" of the problem | ||
+ | does not change as the values of the system are scaled up or down. | ||
+ | For example, if a circuit is solved once, then after that all of the voltage | ||
+ | sources in the circuit are doubled, the circuit doesn't need to be solved | ||
+ | a second time because all the node voltages will merely be double those | ||
+ | of the first solution. Try it yourself if you disbelieve. | ||
+ | |||
+ | Linear circuits also obey the principle of "superposition" which is | ||
+ | to say that the circuit can be solved for each source separately and | ||
+ | then all of those solutions can be added up to get the solution of a | ||
+ | circuit containing many sources. A textbook in basic circuit theory will | ||
+ | explain superposition in linear circuits and you can try working through | ||
+ | the textbook examples on the simulator using what has been explained so far. | ||
+ | |||
+ | At this point, we take the step into nonlinear circuits which do NOT | ||
+ | obey superposition and do NOT scale. The most elementary nonlinear | ||
+ | component is a diode. | ||
+ | |||
+ | eg6.ckt | ||
+ | |||
+ | <code> | ||
+ | DIODE CASCADE | ||
+ | |||
+ | .model 1N414 D IS=2e-14 | ||
+ | |||
+ | Vcc 1 0 5 | ||
+ | Dx 1 10 1N414 | ||
+ | Dy 10 20 1N414 | ||
+ | Dz 20 30 1N414 | ||
+ | Rd1 10 0 1k | ||
+ | Rd2 20 0 1k | ||
+ | Rd3 30 0 1k | ||
+ | |||
+ | .print dc v(10) v(20) v(30) | ||
+ | .dc Vcc 0 5 0.5 >eg6.dat | ||
+ | .end | ||
+ | </code> | ||
+ | |||
+ | |||
+ | You can run this example and look at the results like so: | ||
+ | |||
+ | gnucap -b eg6.ckt | ||
+ | gnuplot | ||
+ | set style data lines | ||
+ | plot 'eg6.dat' using 1:2, 'eg6.dat' using 1:3, 'eg6.dat' using 1:4 | ||
+ | exit | ||
+ | |||
+ | You may not like using gnuplot and may prefer some other plotting program | ||
+ | such as gwave or gle. Gnucap output can be used by most plotting programs | ||
+ | in much the same manner as above by using the redirection arrow on the | ||
+ | command that runs the simulation ("dc" in this case). Note that it usually | ||
+ | won't work to redirect the normal output to a file using your shell and then | ||
+ | cut and paste that output into your plotting program because the normal output | ||
+ | does not use standard scientific notation, using the internal redirection | ||
+ | option provided also guarantees you get a nice, portable data file | ||
+ | in standard exponential notation. | ||
+ | |||
+ | If the above did work you should have been able to see the node voltages | ||
+ | as a function of supply voltage and see the diodes move into their conductive | ||
+ | band one by one. And see the traditional 0.7 volt drop across each diode. | ||
+ | However, various diodes behave differently so gnucap needs to know what sort | ||
+ | of diode you are using. That is what the ".model" command line is doing | ||
+ | for you -- it associated parameters in the diode model with a name that | ||
+ | you choose to assign to your diodes. (By the way, I have no idea what the | ||
+ | true measured parameters are for a real 1N414). | ||