Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GSMC(1)				 User Manuals			       GSMC(1)

       gsmc - A	GTK Smith Chart	Calulator for RF impedance matching


       gsmc  is	a GTK application that allow to	do all the calculation usually
       done on a Smith Chart.  It permits to make calculation for network com-
       posed by	resistor, capacitor, inductance, and trasmission line (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 the initial impedance	to  be
       matched,	 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	 anal-
       isys; current work can be saved for succesive retrieve.

       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.


       gsmc is a menu based GTK	application with as much as possible accelera-
       tors and	mnemonics. Nearly all the command can to be issued as a	single
       keystroke or keystroke with modifiers. This is, in the  author's	 opin-
       ion,  the  preferable way for very specialistic programs	that has to be
       used extensively.

       Ctrl+q Quit the program.

       Ctrl+1 Toggle visualization of impedance	(Z) circle

       Ctrl+2 Toggle visualization of admittance (Y) circle

       Ctrl+3 Toggle visualization of reflection coefficient (RHO) circle

       Ctrl+4 Toggle visualization of constant Q circle

       s      Set start	point: can be entered as impedance, admittance or  re-
	      flection coefficient

       Ctrl+0 (zero)
	      Set characteristic impedance z0

       f      Set frequency (f0)

       r      Add a resistor

       l      Add an inductor

       c      Add a capacitor

       t      Add a transmission line or stub

	      Insert a resistor	before the highlighted element

	      Insert an	inductor before	the highlighted	element

	      Insert a capacitor before	the highlighted	element

	      Insert  a	 transmission line or stub before the highlighted ele-

       d      Delete the currently highligthed element

       Shift+Curs Up
	      Highlight	previous element

       Shift+Curs Down
	      Highlight	next element

       Shift+Curs Left
	      Decrease the first field of currently highlighted	element

       Shift+Curs Rigth
	      Increase the first field of currently highlighted	element

       Mod+Curs	Left
	      Decrease the second field	of currently highlighted element

       Mod+Curs	Rigth
	      Increase the second field	of currently highlighted element

       Mod+Curs	Up
	      Increase the tuning step

       Mod+Curs	Down
	      Decrease the tuning step

       Ctrl+w Write network file in spice format

       Ctrl+n Restart for a new	calculation with a clean chart

       =      Change first field of currently highlighted element

       Mod+=  Change second field of currently highlighted element

       Ctrl+a Start autotune procedure (tune goal is characteristic impedance)

       Ctrl+x Toggle lock flag in autotune procedure

       Ctrl+p Write an EPS or PS file

       Ctrl+l Load a previously	saved .B gsmc job

       Ctrl+l Save a .B	gsmc job

       Ctrl+f Increase frequency

	      Decrease frequency

       Check online keystroke for an updated list of commands.


       For operation that requires data	entry a	widget is created; it is  com-
       posed  by  an text entry	field and optionaly some radio button to chose
       the format of data entry.

       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.  Unit of measure
       are not allowed to be in	the text entered.

       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. Immaginary operator can be issued	as 'i'
       as well as 'j'.

       The single window of gsmc 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  net-
	      work element are listed.

       -      The portion in the lower right portion, for future use...

       Let's try a simple example to understand	how gsmc 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. in-
       ductances and capacitors.

       So start	with setting operating frequency: press	'f' and	a  dialog  win
       will  appear.  Type  in the string '15.5M' and then press enter.	Now in
       the vertical bar	the frequency entered is displayed.

       Next set	the start point	impedance: press 's' and a dialog win will ap-
       pear  with  the	title "Start Point"; select the	format for start point
       either clicking the "Z" radio buttono or	using the menmonic via	Mod+Z.
       Now the impedance can be	entered	as the string '10-j35' followed	by en-
       ter. The	starting point is now displayed	as a small circle.

       The network has now to be constructed: let start	with a	series	induc-
       tance of	800nH, so press	'l' and	next introduce the value as enter. TAB
       and Shift+TAB is	usefull	to move	across items  in  dialog  win  without
       leave  hands  from  keyboard.   This  value  is	really	too large, use
       Shft+Left cursor	to reduce a bit. Up to where? Let's help you displaing
       the  admittance	constant circles pressing "Ctrl+2", the	arc should ar-
       rive to the G=1 circle (also called the mirror  circle),	 it's  arround

       Now  add	a capacitor in parallel	connection, saying of 200pF: press 'c'
       and insert the string '200p' and	select Parallel	either with  mouse  or
       with  "Mod+p".  Now  the	 admittance  circles may confuse, remove it by
       pressing	"Ctrl+2" again.	The value of 200pF is too small, enlarge it by
       pressing	 Shift+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 Shift+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 "Mod+Cursor down" and the "tunestep"	 value
       shown  in  the vertical bar is reduced from 10% to 5%, try again	to use
       Shift+Curors left and right. It feel better. Now	do the same on the ca-
       pacitor,	 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 Shift+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  (Shift+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 two 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 two	parameter, the
       electrical lenght and the caracteristic impedance: the  former  can  be
       adjusted	 with  Shift+Cursor left/rigth as for resistor,	inductance and
       capacitor; the latter can be adjusted with Mod+cursor left/right.

       Now the network can be saved either in a	gsmc format  (.gdt  extension)
       by  pressing  Ctrl+s  or	 in spice format pressing Ctrl+w:  The file so
       generated can be	now analized with  a  spice  simulator	or  gnucap  or
       ngspice	;  maybe  you are interested in	simulating it sweeping arround
       15.5MHz,	so modify the line

	    .ac	lin 1  15.50MEG	 15.50MEG


	    .ac	lin 51	10MEG  30MEG

       and run spice or	gnucap

       This example should be included in gsmc package an can be retreived  by
       pressing	Ctrl+l and selecting example1.gdt.

       Autotune	 algorithm  is	very  primitive	and may	not reach what is very
       simple to do by hand, do	not ask	to much	from it, work in progress...

       Charts so drawed	can be printed to a Postscript or  Encapsulated	 Post-
       script  file;  in  printed file some information	are added on the chart
       drawing as well as Circuit Description and some of  the	Current	 Value
       are  transcripted.  Automatic recognition of filename extension .eps or
       .ps allow to specify if the file	has to be in  encapsulated  format  or

       gsmc don't use special configuration file, a gtkrc file is supplied and
       can  be	tuned  to  user	 preferences;  if  present  it	must   be   in
       /root/.gsmc/gtkrc.   File describing the	network	currently analized can
       be generated, it's only needed that a minimum file  permission  is  al-
       lowed, if not the program will work but data could not be saved.

       Data  file (.gdt) contain a copy	of internal data structures in a quite
       human readable format; by inspection one	can recognize and modify  some
       parts  using  a	text editor. For more details compare a	.gdt file with
       smcdata struct defined in source	file main.h.

       Porting can be very very	difficult, since all is	 based	on  X  windows
       programming and GTK library, but	for other platform a plenty of similar
       program are available, free and good one	too.

       Help me to find.

       +o Improve autotune algorithm

       +o Target	settting (not alwais one want to match to z0) for autotune.

       +o Auxiliary window for error reporting instead of stderr.

       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.

	Lapo Pieri  (IK5NAX)

	Home address: via A. dei Corbizi 9  I-50127 Firenze Italy
	Phone: +39 055 410209

       spice3(?), gnucap(1), ngspice(1)

Linux				SEPTEMBER 2003			       GSMC(1)


Want to link to this manual page? Use this URL:

home | help