User:Divyanshu: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 7: | Line 7: | ||
Model of a simple diode circuit with dc voltage source and a resistance | Model of a simple diode circuit with dc voltage source and a resistance in series. | ||
<source lang="a4c"> | <source lang="a4c"> | ||
| Line 30: | Line 30: | ||
METHOD on_load; | METHOD on_load; | ||
FIX V; | RUN default_self; | ||
RUN values; | |||
RUN specify; | |||
END on_load; | |||
METHOD specify; | |||
FIX V , R , Is; | |||
END specify; | |||
METHOD values; | |||
V := 5 {volt}; | V := 5 {volt}; | ||
R := 1000 {ohm}; | R := 1000 {ohm}; | ||
Is := 1e-10 {amp}; | Is := 1e-10 {amp}; | ||
END | END values; | ||
METHOD default_self; | METHOD default_self; | ||
VD := 0.7 {volt}; | VD := 0.7 {volt}; | ||
END default_self; | END default_self; | ||
| Line 54: | Line 59: | ||
REQUIRE "atoms.a4l"; | REQUIRE "atoms.a4l"; | ||
MODEL | MODEL BJT | ||
( (* Biasing Voltages *) | |||
VCC WILL_BE voltage; | |||
VBB WILL_BE voltage; | |||
VEE WILL_BE voltage; | |||
VE WILL_BE voltage; (* Emitter Voltage *) | |||
VB WILL_BE voltage; (* Base Voltage *) | |||
VC WILL_BE voltage; (* Collector Voltage *) | |||
RC WILL_BE resistance; | |||
RE WILL_BE resistance; | |||
RB WILL_BE resistance; | |||
IE WILL_BE current; (* Emitter Current *) | |||
IB WILL_BE current; (* Base Current *) | |||
IC WILL_BE current; (* Collector Current *) | |||
(*BJT parameters*) | |||
bF WILL_BE variable; | |||
bR WILL_BE variable; | |||
); | |||
aF IS_A variable; | |||
aR IS_A variable; | |||
VT IS_A voltage; | |||
Is IS_A current; (*Scaling Current*) | |||
(* Equations *) | |||
aF = bF/(1 + bF); | |||
aR = bR/(1 + bR); | |||
(*Ebers-Moll Model Equations*) | |||
IE = (Is/aF)*(exp((VB - VE)/VT) - 1) - (Is)*(exp((VB - VC)/VT) - 1); | |||
IC = (Is)*(exp((VB - VE)/VT) - 1) - (Is/aR)*(exp((VB - VC)/VT) - 1); | |||
IB = (Is/bF)*(exp((VB - VE)/VT) - 1) + (Is/bR)*(exp((VB - VC)/VT) - 1); | |||
(VE - VEE)/RE = (Is/aF)*(exp((VB - VE)/VT) - 1) - (Is)*(exp((VB - VC)/VT) - 1); | |||
(VCC - VC)/RC = (Is)*(exp((VB - VE)/VT) - 1) - (Is/aR)*(exp((VB - VC)/VT) - 1); | |||
(VB - VBB)/RB = (Is/bF)*(exp((VB - VE)/VT) - 1) + (Is/bR)*(exp((VB - VC)/VT) - 1); | |||
METHODS | |||
METHOD specify; | |||
FIX Is; | |||
FIX VT; | |||
END specify; | |||
METHOD values; | |||
Is := 1e-15 {amp}; | |||
VT := 0.025 {volt}; | |||
END values; | |||
METHOD bound_self; | |||
END bound_self; | |||
METHOD bound_all; | |||
RUN bound_self; | |||
END bound_all; | |||
METHOD scale_self; | |||
END scale_self; | |||
METHOD scale_all; | |||
RUN scale_self; | |||
END scale_all; | |||
END BJT; | |||
MODEL BJT1; | |||
VE IS_A voltage; (* Emitter Voltage *) | VE IS_A voltage; (* Emitter Voltage *) | ||
VB IS_A voltage; (* Base Voltage *) | VB IS_A voltage; (* Base Voltage *) | ||
| Line 65: | Line 138: | ||
VBB IS_A voltage; | VBB IS_A voltage; | ||
VEE IS_A voltage; | VEE IS_A voltage; | ||
RC IS_A resistance; | RC IS_A resistance; | ||
RE IS_A resistance; | RE IS_A resistance; | ||
RB IS_A resistance; | RB IS_A resistance; | ||
IE IS_A current; (* Emitter Current *) | IE IS_A current; (* Emitter Current *) | ||
| Line 78: | Line 147: | ||
IC IS_A current; (* Collector Current *) | IC IS_A current; (* Collector Current *) | ||
bF IS_A variable; | bF IS_A variable; | ||
bR IS_A variable; | bR IS_A variable; | ||
( | BJT11 IS_A BJT( VCC, VBB, VEE, VE, VB, VC, | ||
RC, RE, RB, | |||
IE, IB, IC, | |||
bF, bR); | |||
METHODS | |||
METHOD on_load; | |||
RUN default_self; | |||
RUN values; | |||
RUN specify; | |||
END on_load; | |||
METHOD specify; | |||
METHOD | RUN BJT11.specify; | ||
FIX bF; | FIX bF; | ||
FIX bR; | FIX bR; | ||
FIX VCC; | FIX VCC; | ||
FIX VEE; | FIX VEE; | ||
FIX VB; | FIX VB; | ||
FIX RB; | FIX RB; | ||
FIX VC , IC; | FIX VC , IC; | ||
END specify; | |||
METHOD values; | |||
RUN BJT11.values; | |||
bF := 100; | |||
bR := 0.02; | |||
VCC := 15 {volt}; | |||
VEE := -15 {volt}; | |||
VB := 0.0 {volt}; | |||
RB := 1e-100 {ohm}; (*RB set very low not zero because division by zero not possible*) | |||
VC := 5 {volt}; | VC := 5 {volt}; | ||
IC := 0.002 {amp}; | IC := 0.002 {amp}; | ||
END | END values; | ||
END | |||
METHOD default_self; | |||
VE := VB - 0.7{volt}; | |||
END default_self; | |||
END BJT1; | |||
</source> | </source> | ||
Revision as of 19:46, 11 April 2011
Name : Divyanshu Bandil
University : Delhi University
College : Netaji Subhas Institute of Technology, Dwarka, Delhi, India
Model of a simple diode circuit with dc voltage source and a resistance in series.
REQUIRE "atoms.a4l"; MODEL diode; (*variables*) V IS_A voltage; R IS_A resistance; VD IS_A voltage; Is IS_A current; I IS_A current; (*equations*) (V - VD)/R = Is * ((exp(VD/0.043478261)) - 1); I = Is * ((exp(VD/0.043478261)) - 1); METHODS (*Fixing values for a simple circuit connecting a diode , a dc voltage and a resistor in series*) METHOD on_load; RUN default_self; RUN values; RUN specify; END on_load; METHOD specify; FIX V , R , Is; END specify; METHOD values; V := 5 {volt}; R := 1000 {ohm}; Is := 1e-10 {amp}; END values; METHOD default_self; VD := 0.7 {volt}; END default_self; END diode;
Model of a transistor with fixed collector voltage and collector current.
REQUIRE "atoms.a4l"; MODEL BJT ( (* Biasing Voltages *) VCC WILL_BE voltage; VBB WILL_BE voltage; VEE WILL_BE voltage; VE WILL_BE voltage; (* Emitter Voltage *) VB WILL_BE voltage; (* Base Voltage *) VC WILL_BE voltage; (* Collector Voltage *) RC WILL_BE resistance; RE WILL_BE resistance; RB WILL_BE resistance; IE WILL_BE current; (* Emitter Current *) IB WILL_BE current; (* Base Current *) IC WILL_BE current; (* Collector Current *) (*BJT parameters*) bF WILL_BE variable; bR WILL_BE variable; ); aF IS_A variable; aR IS_A variable; VT IS_A voltage; Is IS_A current; (*Scaling Current*) (* Equations *) aF = bF/(1 + bF); aR = bR/(1 + bR); (*Ebers-Moll Model Equations*) IE = (Is/aF)*(exp((VB - VE)/VT) - 1) - (Is)*(exp((VB - VC)/VT) - 1); IC = (Is)*(exp((VB - VE)/VT) - 1) - (Is/aR)*(exp((VB - VC)/VT) - 1); IB = (Is/bF)*(exp((VB - VE)/VT) - 1) + (Is/bR)*(exp((VB - VC)/VT) - 1); (VE - VEE)/RE = (Is/aF)*(exp((VB - VE)/VT) - 1) - (Is)*(exp((VB - VC)/VT) - 1); (VCC - VC)/RC = (Is)*(exp((VB - VE)/VT) - 1) - (Is/aR)*(exp((VB - VC)/VT) - 1); (VB - VBB)/RB = (Is/bF)*(exp((VB - VE)/VT) - 1) + (Is/bR)*(exp((VB - VC)/VT) - 1); METHODS METHOD specify; FIX Is; FIX VT; END specify; METHOD values; Is := 1e-15 {amp}; VT := 0.025 {volt}; END values; METHOD bound_self; END bound_self; METHOD bound_all; RUN bound_self; END bound_all; METHOD scale_self; END scale_self; METHOD scale_all; RUN scale_self; END scale_all; END BJT; MODEL BJT1; VE IS_A voltage; (* Emitter Voltage *) VB IS_A voltage; (* Base Voltage *) VC IS_A voltage; (* Collector Voltage *) (* Biasing Voltages *) VCC IS_A voltage; VBB IS_A voltage; VEE IS_A voltage; RC IS_A resistance; RE IS_A resistance; RB IS_A resistance; IE IS_A current; (* Emitter Current *) IB IS_A current; (* Base Current *) IC IS_A current; (* Collector Current *) bF IS_A variable; bR IS_A variable; BJT11 IS_A BJT( VCC, VBB, VEE, VE, VB, VC, RC, RE, RB, IE, IB, IC, bF, bR); METHODS METHOD on_load; RUN default_self; RUN values; RUN specify; END on_load; METHOD specify; RUN BJT11.specify; FIX bF; FIX bR; FIX VCC; FIX VEE; FIX VB; FIX RB; FIX VC , IC; END specify; METHOD values; RUN BJT11.values; bF := 100; bR := 0.02; VCC := 15 {volt}; VEE := -15 {volt}; VB := 0.0 {volt}; RB := 1e-100 {ohm}; (*RB set very low not zero because division by zero not possible*) VC := 5 {volt}; IC := 0.002 {amp}; END values; METHOD default_self; VE := VB - 0.7{volt}; END default_self; END BJT1;