Difference between revisions of "229-A1.2"

From Microlab Classes
Jump to navigation Jump to search
Line 26: Line 26:
 
{{NumBlk|::|<math>L = \frac{X_1^\prime}{\omega} = \frac{X_1^\prime}{2\pi f_0} = 795.77 \mathrm{pH}</math>|{{EquationRef|6}}}}
 
{{NumBlk|::|<math>L = \frac{X_1^\prime}{\omega} = \frac{X_1^\prime}{2\pi f_0} = 795.77 \mathrm{pH}</math>|{{EquationRef|6}}}}
  
We can then create a SPICE netlist so we can verify the performance of our matching network. For circuits that you will reuse often, it is more often convenient to create a sub-circuit. In this case, a sub-circuit for our lowpass L-section, which we can save in a separate file, (e.g. matching_subckts.sp).
+
We can then create a SPICE netlist so we can verify the performance of our matching network. For circuits that you will reuse often, it is more often convenient to create a sub-circuit. In this case, a sub-circuit for our lowpass L-section, which we can save in a separate file, (such as matching_subckts.sp).
  
 
<source lang="bash" line>
 
<source lang="bash" line>
Line 42: Line 42:
  
 
Note that the two voltage sources, '''VC1''' and '''VL1''', do not affect the circuit since they are set to zero volts. These ''dummy'' voltage sources are just there so we can measure the currents passing through the capacitor and inductor.
 
Note that the two voltage sources, '''VC1''' and '''VL1''', do not affect the circuit since they are set to zero volts. These ''dummy'' voltage sources are just there so we can measure the currents passing through the capacitor and inductor.
 +
 +
We can then instantiate this sub-circuit, as instance '''X1''', in our main SPICE file:
 +
 +
<source lang="bash" line>
 +
* Passive Matching Circuits
 +
* LPA 05 Aug 2020
 +
 +
.options savecurrents seed=random
 +
.include matching_subckts.sp
 +
 +
X1 hir lor l_match_lp C=636.62f L=795.77p
 +
Rs hir vin 50
 +
Rl lor x 25
 +
VRl x 0 dc=0 ac=0
 +
 +
Vs vin 0 dc=0 ac=1
 +
 +
.control
 +
ac dec 1000 100meg 100G
 +
 +
let pin = abs(v(hir)*i(vs))
 +
let pout = abs(v(lor)*i(v.x1.vl1))
 +
let zin = abs(v(hir)/i(vs))
 +
let zout = abs(v(lor)/i(v.x1.vl1))
 +
 +
meas ac poutmax max pout from=100meg to=100G
 +
meas ac zinf0 find zin at=5G
 +
meas ac zoutf0 find zout at=5G
 +
.endc
 +
 +
.end
 +
</source>
 +
 +
We can also include simple expressions to calculate the power entering the matching network, the power delivered to <math>R_L</math>, the input and output impedances, as well as the value of the maximum power delivered to the load, and the impedances at <math>f_0 = 5\mathrm{GHz}</math>.
  
 
== Case 2: <math>R_S < R_L</math> ==
 
== Case 2: <math>R_S < R_L</math> ==

Revision as of 17:40, 6 September 2020

  • Activity: Passive Matching Networks
  • Instructions: Each activity is structured as a tutorial, and you are expected to download the netlists, run the simulation, and make sure you understand the concepts and ideas presented. Should you have any questions, clarifications, or issues, please contact your instructor as soon as possible.
  • At the end of this activity, the student should be able to:
  1. Design and verify the performance of passive impedance matching circuits using ngspice.

Case 1:

Let's design a single L-section circuit between a voltage source with output resistance, and an amplifier with input resistance, .

  • Calculate the matching factor, ,and the quality factor, .

 

 

 

 

(1)

 

 

 

 

(2)

  • Calculate the value of the reactance parallel to the larger resistance. In this case, the larger resistance is .

 

 

 

 

(3)

  • Calculate the second reactance, , used to cancel .

 

 

 

 

(4)

  • If we want a lowpass matching circuit, we need to use a capacitor for , and an inductor for . We can then calculate the capacitor and inductor values for .

 

 

 

 

(5)

 

 

 

 

(6)

We can then create a SPICE netlist so we can verify the performance of our matching network. For circuits that you will reuse often, it is more often convenient to create a sub-circuit. In this case, a sub-circuit for our lowpass L-section, which we can save in a separate file, (such as matching_subckts.sp).

 1 * Passive Matching Circuits
 2 * LPA 05 Aug 2020
 3 .subckt l_match_lp hiR loR C=1p L=1n 
 4 
 5 C1		hiR y 	{C}
 6 VC1		y 0	dc=0 ac=0
 7 L1		loR x	{L}
 8 VL1		x hiR	dc=0 ac=0
 9 
10 .ends l_match_lp

Note that the two voltage sources, VC1 and VL1, do not affect the circuit since they are set to zero volts. These dummy voltage sources are just there so we can measure the currents passing through the capacitor and inductor.

We can then instantiate this sub-circuit, as instance X1, in our main SPICE file:

 1 * Passive Matching Circuits
 2 * LPA 05 Aug 2020
 3 
 4 .options savecurrents seed=random
 5 .include matching_subckts.sp
 6 
 7 X1 		hir lor		l_match_lp		C=636.62f L=795.77p
 8 Rs		hir vin		50
 9 Rl		lor x		25
10 VRl		x 0 		dc=0 ac=0
11 
12 Vs		vin 0		dc=0 ac=1
13 
14 .control
15 ac dec 1000 100meg 100G
16 
17 let pin = abs(v(hir)*i(vs))
18 let pout = abs(v(lor)*i(v.x1.vl1))
19 let zin = abs(v(hir)/i(vs))
20 let zout = abs(v(lor)/i(v.x1.vl1))
21 
22 meas ac poutmax max pout from=100meg to=100G
23 meas ac zinf0 find zin at=5G
24 meas ac zoutf0 find zout at=5G
25 .endc
26 
27 .end

We can also include simple expressions to calculate the power entering the matching network, the power delivered to , the input and output impedances, as well as the value of the maximum power delivered to the load, and the impedances at .

Case 2:

Case 3: with High-Q

Case 4: with High-Q

Case 5: with Optimally Low-Q

End of Activity