User:Divyanshu: Difference between revisions

From ASCEND
Jump to navigation Jump to search
Divyanshu (talk | contribs)
No edit summary
Divyanshu (talk | contribs)
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};
FIX R ;
R := 1000 {ohm};
R := 1000 {ohm};
FIX Is;
Is := 1e-10 {amp};
Is := 1e-10 {amp};
END on_load;
END values;
 
METHOD default_self;
METHOD default_self;
VD := 0.7 {volt};
VD := 0.7 {volt};
VD.lower_bound := 0.7 {volt};
VD.upper_bound := 0.8 {volt};
END default_self;
END default_self;


Line 54: Line 59:
REQUIRE "atoms.a4l";
REQUIRE "atoms.a4l";


MODEL transistor;
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;
(*variables*)
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;
VBE 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;
VT IS_A voltage;
Is IS_A current;
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 *)


aF IS_A variable;
bF IS_A variable;
bF IS_A variable;
aR IS_A variable;
bR IS_A variable;
bR IS_A variable;


(* Equations *)
BJT11 IS_A BJT( VCC, VBB, VEE, VE, VB, VC,
aF = bF/(1 + bF);
RC, RE, RB,
aR = bR/(1 + bR);
IE, IB, IC,
VBE = VB - VE;
bF, bR);


(*Ebers-Moll Model Equations*)
METHODS
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);
METHOD on_load;
(VCC - VC)/RC = (Is)*(exp((VB - VE)/VT) - 1) - (Is/aR)*(exp((VB - VC)/VT) - 1);
RUN default_self;
(VB - VBB)/RB = (Is/bF)*(exp((VB - VE)/VT) - 1) + (Is/bR)*(exp((VB - VC)/VT) - 1);
RUN values;
RUN specify;
END on_load;


METHODS
METHOD specify;
METHOD on_load;
RUN BJT11.specify;
FIX Is;
Is := 1e-15 {amp};
FIX VT;
VT := 0.025 {volt};
FIX bF;
FIX bF;
bF := 100;
FIX bR;
FIX bR;
bR := 0.02;
VBE := 0.7 {volt} ;
FIX VCC;
FIX VCC;
VCC := 15 {volt};
FIX VEE;
FIX VEE;
VEE := -15 {volt};
FIX VB;
FIX VB;
VB := 0.0 {volt};
FIX RB;
FIX RB;
RB := 1e-100 {ohm}; (*RB set very low not zero because division by zero not possible*)
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 on_load;
END values;
END transistor;
 
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;
Error creating thumbnail: File missing
Model 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;
Error creating thumbnail: File missing
Screenshot of solving various parameters of a transistor


Error creating thumbnail: File missing
Another example solved by changing the fixable values using the gui