Provided by: xsmc-calc_1.0.0-6.1_amd64 

NAME
xsmc - An X Smith Chart Calulator for RF impedance matching
SYNOPSIS
xsmc [ -h ]
DESCRIPTION
xsmc is a X application that allow to do all the calculation usually done on a Smith Chart. It permits
to make calculation for network composed by resistor, capacitor, inductance, and trasmission (also as
stub). Network topology is limitated to series, parallel and as trasmissive for trasmission line. No
series connection are allowed in parallel branch, neither parallel connection in series branch.
Trasmission line can be placed as quadrupole or as a parallel or series stub, either opened or shorted at
the other end.
Calculation procedure starts with setting initial impedance to be match, next network elements are added
and tuned to obtain the desidered impedance value.
The network so obtained can be saved in spice format for other analisys.
The initial (start) impedance is thought as "the load" so when adding a trasmission line placed as a
quadrupole rotation is clockwise, going "toward generator"; generator is placed after the last network
element, as can be seen from spice output.
OPTIONS
-h A little help.
INTERACTIVE COMMANDS
xsmc dosn't have menu or such simple command explained in its windows, since it's intended for an
exentesive use where several repetitive command has to be issued during a session. So nearly all the
command has to be issued as a single keystroke. This is, in the author's opinion, the preferable way for
very specialistic programs that has to be used exetensively.
q Quit the program.
1 Toggle visualization of impedance (Z) circle
2 Toggle visualization of admittance (Y) circle
3 Toggle visualization of reflection coefficient (RHO) circle
4 Toggle visualization of constant Q circle
s Set start point
z: set start point as impedance
y: set start point as admittance
r: set start point as refletction coefficient
0 (zero)
Set characteristic impedance z0
f Set frequency (f0)
a Add a network element (see dialog window explaination):
r: add a resistor
l: add an inductor
c: add a capacitor
t: add a transmission line or stub
i Insert a network element before the highlighted element, as in 'a'
d Delete the currently highligthed element
Curs Up
Highlight previous element
Curs Down
Highlight next element
Curs Left
Decrease the first field of currently highlighted element
Curs Rigth
Increase the first field of currently highlighted element
Shift+Curs Left
Decrease the second field of currently highlighted element
Shift+Curs Rigth
Increase the second field of currently highlighted element
Page Up
Increase the tuning increment
Page Down
Decrease the tuning increment
w Write network file:
s: spice format
r: RFCS format (to be implemented, when RFCS will exist)
= Change first field and placement of currently highlighted element
*** Of future implementation ***
o Start optimization, ESC to stop.
l Lock currently highlighted element for optimization
p Print smitchart on a postscript file
DIALOG WIN
The interactive command that require data input uses a common entry point located in the bottom
right of the window, called the dialog win. It's a three row entry point: the top one show the
item to be introduced, that is the title of the dialog win. The intermediate one can exist or not
depend on the kind of data to be inserted: if present is a single key choice; when the choice is
done this menu is replaced by a letter indicating the choice done. The bottom line is the entry
line when values are supplied (for current version cursor indicating where keypress will be echoed
are not implemented).
The format for data entry can be a single number, or a more complex string. First of all every
number can be supplyed using standar prefix for unit of measure i.e.:
a (atto) 1e-18
f (femto) 1e-15
p (pico) 1e-12
n (nano) 1e-9
u (micro) 1e-6
m (milli) 1e-3
k (kilo) 1e3
M (mega) 1e6
G (giga) 1e9
T (tera) 1e12
Note that for spice output format mega is written as MEG instead of M, that will be otherwise
recognized by spice as milli.
Where a complex number is required both the rectangular and the polar format are recognized: the
former can be supplied as '12.3-j456m' while the latter can be supplied as '34.2 145' meaning a
modulus of 34.2 with a phase of 145 degrees. If the complex number is purely immaginary only
something like 'j82' can be supplied, while if immaginary part is zero a single number can be
given.
When the data to be inserted in the last line must contain both a number and a placement (i.e. the
resistor value and if it is placed in series or in parallel) the placement must be specified after
the value as a single letter (see below) separated by a space.
s Series placement
p Parallel placement
t Trasmission line placed in trasmissive mode, i.e. as a quadrupole
o Open parallel stub
c Short parallel stub
a Open series stub
l Short series stub
And if you are again in dubt about how placement are save the network as a spice file and look at
it...
DATA PRESENTATION
The single window of xsmc is divided in four parts:
- The Smith chart itself in the upper left portion, where arcs and constant circle are drawn.
- The vertical bar on the rigth of the Smith chart, where initial, final and cursor impedance are
presented togheter general data.
- The horizontal bar on the bottom of Smith chart where the network element are listed.
- The dialog portion in the lower right portion, where data are introduced.
EXAMPLE OF USE
Let's try a simple example to understand how xsmc work. Suppose to have a load of 10-j35ohm to be matched
to 50+j0ohm at an operating frequency of 15.5MHz and we can use only concentrated reactive elements, i.e.
inductances and capacitors.
So start with setting operating frequency: press 'f' and in the dialog win the string 'f0' appear; since
the data requested is a single number the middle line is unused, and in the bottom line the frequency can
be introduced. Type the string '15.5M' and then enter. Now in the vertical bar the frequency entered is
displayed.
Next set the start point impedance: press 's' and in the dialog win top line appear the title "Start
Point"; in the middle line the choices "Z Y Rho" are displayed, so press 'z' to insert starting point as
impedance. The choices' string are substituted by the actual choice, that's 'z'. Now the impedance can be
entered as the string small oval (3x2pixel!).
The network has now to be constructed, use 'a' command to add elements to network. Let start with a
series inductance of 800nH, so press 'a' and then chose 'l', next introduce the value as '800n s' and
enter that means 800nH placed in series. This value is really too large, use left cursor to reduce a bit.
Up to where? Let's help you displaing the admittance constant circles pressing '2', the arc should arrive
to the G=1 circle (also called the mirror circle), it's arround 546nH.
Now add a capacitor in parallel connection, saying of 200pF: press 'a' then 'c' and now insert the string
'200p p'. Now the admittance circles may confuse, remove it by pressing '2' again. The value of 200pF is
too small, enlarge it by pressing the left cursor up to get the end point near to the chart's center. The
point reached with 429pF has nearly zero imaginary but is 43ohm of real part instead of 50ohm.
So back to the inductance and try to modify it, with cursor up move to the first component and then try
to change the inductance value by pressing cursor left and right. The changes are too large and 50+j0
cannot be reached. So press PageDown and the "tunestep" value shown in the vertical bar is reduced from
10% to 5%, try again to use curors left and right. Better. Now do the same on the capacitor, moving to it
by pressing cursor down and than adjusting value as for the inductance.
Final values should be arround 568nH and 408pF. Now you want to see what appen using the closest standard
commercial values, that is 560nH and 390pF in the E12 series. Select (with cursor up), if needed, the
inductance and then press '=', the dialog window appear (middle line is unused) and the string '560n s'
has to be introduced. Next move to capacitor (curs down) and pressing '=' here insert '390p p'. The final
result is of SWR=1.14, if it's enough for you...
Moving the mouse to the point where the to arcs ends you can see that the point has an impedance of about
10+j20ohm.
Trasmission line and resistor can be used similary refer to the section INTERACTIVE COMMANDS for knowing
how they can be placed. The major difference with transmission line is that they have to parameter, the
electrical lenght and the caracteristic impedance: the former can be adjusted with cursor left/rigth as
for resistor, inductance and capacitor; the latter can be adjusted with Shift+cursor left/right. For
introducing parameter for transmission line the string to be entered in the bottom line of dialog win
must be
"<electrical length [deg]> <characteristic impedance> <placement>".
Now the network can be saved pressing 'w': actually only spice format is supported, so type 's' and than
enter a valid filename, e.g. 'net1.cir'. The file so generated can be now analized with spice simulator;
maybe you are intereste in simulating it sweeping arround 15.5MHz, so modify the line
.ac lin 1 15.50MEG 15.50MEG
in
.ac lin 51 10MEG 30MEG
and run spice.
FILES
xsmc dosen't need any (configuration) file. File describing the network currently analized can be
generated, it's only needed that a minimum file permission is allowed, if not the program can, however
work, but data cannot be saved.
SPECIAL FILES
xsmc dosen't need any special file (such as fifos, etc...).
ENVIRONMENT
xsmc dosen't care about environment.
LIMITATIONS
Porting can be very very difficult, since all is based on X windows programming, but for other platform a
plenty of similar program are available, free and good one too.
BUGS
• When in dialog window if resizing or other windows signal occour the dialog session is aborted
Help me to find more.
TODO
In order of importance and urgence:
• Automatic optimization function, comprising a target settting (not alwais one want to match to z0) and
a component locking.
• Postscript printing of chart and arcs.
• Cursor in the dialog window.
• Auxiliary window for error reporting instead of stderr.
COPYING
This program is free software; you can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
AUTHOR
Lapo Pieri (IK5NAX)
Home address: via A. dei Corbizi 9 I-50127 Firenze Italy
Phone: +39 055 410209
e-mail: ik5nax@amsat.org
packet radio: ik5nax@ik5skv.#fi.itos.ita.eu
website: www.qsl.net/ik5nax
SEE ALSO
spice3(?)
Linux OCTOBER 2001 XSMC(1)