Thursday, May 21, 2015

Notes on Antenna Tuners: More on the W8ZR EZ-Tuner

I thought it would be interesting to use my recently-purchased copy of MATLAB (see this post: http://k6jca.blogspot.com/2015/04/notes-on-antenna-tuners-t-network-part-1.html) to create a MATLAB script to plot the range of load impedances that can be matched by different tuner networks.

To keep things simple, I decided to limit the tuner networks to those that have, at most, two adjustable components, such as, say, a variable inductor and a variable capacitor.  Also, and again for simplicity, I've assumed the components to be lossless (infinite Q).

Networks with three adjustable components can be modeled, too, as long as one of the components is fixed and only the other two components are adjusted.  But doing this only makes sense if one of the components is normally not changed by design.  For example, although the EZ-Tuner (designed by W8ZR and published in QST) has three adjustable components (input capacitor, output capacitor, and shunt inductor), the inductor is not continuously variable, but instead it has taps that are switch selected.  And a user would typically select a tap and then adjust the two caps, effectively giving us two variables rather than three.

I initially wrote the MATLAB script to plot an outline on a Smith Chart that would enclose the range of impedances that could be matched to 1:1 at a selected frequency.  Here's an example of how that plot looked:

(click on image to enlarge)
 

But I wasn't happy with the "visibility" of the outline, and so I changed the script to show the encompassed area a bit more dramatically by filling it in, like this:

 

I hope you agree that this second plot is much easier to see.

As for the MATLAB script itself, all it's really doing is stepping the values of the network's two variable components over the range of all of their possible values, using a size that I set arbitrarily before I start the run (e.g. if I set the step size to 100, the component values would independently step from their minimum value to their maximum value in increments equal to (MaxValue - MinValue)/StepSize, and I would end up with 10,000 points (100 x 100).

This MATLAB routine assumes that a 50 ohm load is connected to the network's input and the program calculates the impedance that this 50 ohms is transformed to be when looking into the network's output terminals.  This transformed-impedance is the complex-conjugate of a load impedance that, when connected to the network's output terminals, would be transformed to 50 ohms at the network's input with those same settings of the variable component values.  So I just need to take the complex-conjugate of my calculation and then plot it on the Smith Chart.

(For a quick Smith Chart tutorial, go here: http://k6jca.blogspot.com/search/label/Smith%20Chart )



The W8ZR EZ-Tuner

I originally looked at the W8ZR EZ-Tuner (and possible power-loss) in this blog post:  http://k6jca.blogspot.com/2015/04/notes-on-antenna-tuners-t-network-part-1.html

First, a recap:  here's my crudely drawn schematic of the tuner:


The EZ-Tuner uses a tapped-inductor as its shunt-L component.   Here are the recommended inductances that should be used on the various amateur bands (from the QST article).



Let's look at the range of loads that can be matched with some of these inductances.  Here are the impedances that can be matched to a 1:1 SWR on 1.8 MHz when the inductor is set to 20.5 uH (its maximum):

 (click on image to enlarge)
 

Keep in mind, though, what we saw in my previous blog post.  We can match a wide range of impedances, but there could be significant power loss within the tuner.

 Here are the impedances that can be matched to a 1:1 SWR on 1.8 MHz when the inductor is set to 10 uH:

 (click on image to enlarge)
 

Here are the impedances that can be matched to a 1:1 SWR on 3.5 MHz when the inductor is set to 10 uH:

 (click on image to enlarge)
 

Remember, at this inductance setting we could have significantly more power loss within the tuner than at other (smaller) inductances.

But there's a tradeoff -- the smaller inductances don't cover as broad a range of load impedances.  Here are the impedances that can be matched to a 1:1 SWR on 3.5 MHz when the inductor is set to 4.6 uH:

 (click on image to enlarge)
 

And here are the impedances that can be matched to a 1:1 SWR on 3.5 MHz when the inductor is set to 3.1 uH:

 (click on image to enlarge)
 

Here are the impedances that can be matched to a 1:1 SWR on 7 MHz when the inductor is set to 3.1 uH:

 (click on image to enlarge)
 

I'm now skipping a number of bands and inductances and go to 30 MHz.  Here are the impedances that can be matched to a 1:1 SWR on 30 MHz when the inductor is set to 0.4 uH:

 (click on image to enlarge)
 

Here are the impedances that can be matched to a 1:1 SWR on 30 MHz when the inductor is set to 0.3 uH:

 (click on image to enlarge)
 

But what is causing that dark area that I've outlined below?

 (click on image to enlarge)

 If you look closely at the above plot, you can see that the dark area is actually caused by curves overlapping each other.  This means that, in those areas, there is not a single Cin/Cout solution that matches those impedances to a 1:1 match.  Instead, each impedance has 2 solutions.

Let's look at this more closely.  I've replotted the data for L = 0.3 uH at 30 MHz with the step size decreased to 50 steps.  Now the "loops" are further apart and you can see the overlap more easily.

(click on image to enlarge)

For example, you can see that the arc representing Cout = 40 pF intersects the arc representing Cout = 30 pF.  This intersection represents two solutions for the matching network to match the impedance at that point to 1:1.  One solution is for Cout = 30 pF, and the other is for Cout = 40 pF.

I've plotted these two solutions using Smith, assuming that this intersection is at an impedance of 55.61 + j97.32 ohms:

(click on image to enlarge)

(click on image to enlarge)

(I personally find this result very informative, as I'd assumed that, with only two variables, there could only be a single, unique solution for a match.  Clearly I was wrong!)

For reference, here's the part of the MATLAB code that calculates the load impedances:

(click on image to enlarge)

Essentially, this code connects 50 ohms to the INPUT of the tuner and then calculates the impedances seen looking into the tuner's OUTPUT terminals for all combinations of Cin and Cout, for a fixed L (in the code above, L is fixed at 0.3 uH).  These impedances are the complex-conjugates of the actual load impedances that the tuner can match to a 1:1 SWR.


Antenna Tuner Blog Posts:

A quick tutorial on Smith Chart basics:
http://k6jca.blogspot.com/2015/03/a-brief-tutorial-on-smith-charts.html

Plotting Smith Chart Data in 3-D:
http://k6jca.blogspot.com/2018/09/plotting-3-d-smith-charts-with-matlab.html

The L-network:
http://k6jca.blogspot.com/2015/03/notes-on-antenna-tuners-l-network-and.html

A correction to the usual L-network design constraints:
http://k6jca.blogspot.com/2015/04/revisiting-l-network-equations-and.html

Calculating L-Network values when the components are lossy:
http://k6jca.blogspot.com/2018/09/l-networks-new-equations-for-better.html

A look at highpass T-Networks:
http://k6jca.blogspot.com/2015/04/notes-on-antenna-tuners-t-network-part-1.html

More on the W8ZR EZ-Tuner:
http://k6jca.blogspot.com/2015/05/notes-on-antenna-tuners-more-on-w8zr-ez.html  (Note that this tuner is also discussed in the highpass T-Network post).

The Elecraft KAT-500:
http://k6jca.blogspot.com/2015/05/notes-on-antenna-tuners-elecraft-kat500.html

The Nye Viking MB-V-A tuner and the Rohde Coupler:
http://k6jca.blogspot.com/2015/05/notes-on-antenna-tuners-nye-viking-mb-v.html

The Drake MN-4 Tuner:
http://k6jca.blogspot.com/2018/08/notes-on-antenna-tuners-drake-mn-4.html

Measuring a Tuner's "Match-Space":

Standard Caveat:

I could easily have made a mistake in my MATLAB program or in my post above.  If anything looks wrong, or if you'd like clarification, please feel free to contact me!

And if you'd like me to apply this MATLAB script to other networks, again, please feel free to contact me.


2 comments:

Anonymous said...

In line 251 zo is not declared in the script resulting in:

??? Subscript indices must either be real positive integers or logicals.

Error in ==> tuner_calc_01_19_16 at 34
rc_zlcc(i*(num_Pts+1)+1+1) =(z1_cc-zo)/(z1_cc+zo);

Is zo to be declared with some non-zero initial value?

Thanks!!

Jeff said...

Much earlier in the program I had defined zo:

zo = 50;

You can use other values, but most tuners are designed to match to a Zo of 50 ohms.

And I hope you have fun with the code -- I'm glad to see someone is trying it!

Note that the Matlab code I used for plotting is, essentially, below (I haven't included SWR circle generation, for example).

figure
hsm = smithchart([rc_zlcc]);
set(hsm,'Linewidth',2,'Marker','.','LineStyle','None');

legend(gca,'Match-Space','Location','BestOutside');

annotation('textbox',[0.75 0.067 0.1 0.1],...
'String',{'W8ZR EZ-Tuner,','Loads that tune to a 1:1 match',...
['at ' num2str(freq) ' MHz, L = ' num2str(Lw8zr) ' uH']},...
'BackgroundColor',[1 1 1],...
'HorizontalAlignment','center');