Você está na página 1de 2

ZmatchPy

Acople de Impedancias con Carta de Smith en Python


Santiago Cuervo, Juan Pablo Velez & Carlos Pardo
Universidad Distrital Francisco Jose de Caldas, Facultad de Ingeniera, Proyecto
Curricular de Ingeniera Electronica
dscuervog@gmail.com , jpvelezr1996@hotmail.com , cp4213@gmail.com
Abstract
La carta de Smith fue creada con el objetivo de simplificar los clculos usuados frecuentemente en circuitos de comunicaciones, los cuales tienden a ser tediosos al implicar magnitudes usualmente complejas, y en extremo repetitivos, al reducirse
en la mayora de los casos al analisis de circuitos resonantes simples en cascada. La carta permite mediante un analisis grafico
hacer operaciones entre impedancias con suma facilidad y rapidez, as como obtener magnitudes como el SWR o el coeficiente
de reflexion. Sin embargo con las herramientas que nos brinda la tecnologa actualmente, aun la carta de Smith se convierte
en un proceso poco eficiente, y se vuelve mas una herramienta educativa, cuando un computador en fracciones de segundo
puede hacer los calculos. El proposito de este proyecto es dar una aproximacin computacional a la carta de Smith, mediante
las libreras de computacion cientfica de Python

Software Utilizado

def c o n v e r t a r g s ( args ) :
i f l e n ( a r g s ) == 1 :
return args [ 0 ]
e l i f l e n ( a r g s ) == 2 :
return args [ 0 ] + args [ 1 ] 1 j
d e f m o e b i u s z ( z , norm ) :
r e t u r n norm ( z 1 ) / ( z + 1 )
def

1. Python 2.7.11

moebius z ( self , args ) :


return s m i t h h e l p e r . moebius z ( c o n v e r t a r g s ( args ) , s e l f . s c a l e )

Ya que el modulo pySmithPlot no permita hacer la transformacion para las operaciones sobre el plano, se
requirio escribir funciones que generaran el conjunto de puntos complejos para las operaciones serie y
paralelo, como sigue:

2. Paquetes Python
Matplotlib y Pyplot
Numpy
PySmithPlot
Desarrollado en Sistema Operativo Manjaro Linux. Probado en Windows y Manjaro Linux

Objetivo General
Disenar e implementar un modulo empaquetado Python que permita realizar calculos de acople de impedancias para redes L, T y Pi en cualquier topologa

Objetivos Especificos
1. Programar en lenguaje de programacin Python los procesos necesarios para llevar a cabo los clculos del
acople de impedancias de redes L, T y Pi en cualquier topologa.
2. Programar en lenguaje Python los procesos necesarios para obtener las curvas de las operaciones de
impedancia.
3. Generar mediante software el grfico de la carta de Smith.
4. Graficar las curvas de las operaciones de impedancias en la carta de Smith.
5. Construir un paquete instalable Python para permitir la distribucin de los mdulos.
6. Compartir el paquete instalable Python en un repositorio

Materiales y Metodos
Seccion Matematica
La construccin de la carta de Smith se basa en una transformacin del plano complejo mediante la transformada
de Mobius, definida como:
az b
f (z) =
cz + d
Partiendo del coeficiente de reflexion normalizado:
Zo 1
=
Zo + 1
Que representa una magnitud compleja. Mediante su representacin en forma rectangular:

(1)

(2)

R + jX 1
= p + jq =
R + jX + 1

(3)

R2 1 + X 2
p=
(R + 1)2 + X 2

(4)

Y despejando para p y q se obtienen:

2X
q=
(5)
2
2
(R + 1) + X
Despejando para X y luego para R de p y substituyendo en q se obtienen finalmente las ecuaciones que
representan la carta de Smith:
R 2
1 2
2
(p
) +q =(
)
R+1
R+1

(6)

1 2
1 2
2
(p 1) + (q ) = ( )

(7)

d e f g e t Z O p L i n e ( Z0 , Zf ) :
l i n e = np . a r r a y ( [ Z0 ] )
bound0 = np . a b s o l u t e ( np . imag ( Z0 ) )
b o u n d f = np . a b s o l u t e ( np . imag ( Zf ) )
i f np . imag ( Z0 ) >= 0 and np . imag ( Zf ) >= 0 :
i f np . imag ( Zf ) > np . imag ( Z0 ) :
r a n g = b o u n d f bound0
e l i f np . imag ( Zf ) < np . imag ( Z0 ) :
r a n g = ( bound0 b o u n d f )
e l i f np . imag ( Z0 ) <= 0 and np . imag ( Zf ) <= 0 :
i f np . imag ( Zf ) < np . imag ( Z0 ) :
r a n g = ( b o u n d f bound0 )
e l i f np . imag ( Zf ) > np . imag ( Z0 ) :
r a n g = bound0 b o u n d f
e l i f np . imag ( Z0 ) >= 0 and np . imag ( Zf ) <= 0 :
r a n g = (np . imag ( Z0 ) np . imag ( Zf ) )
e l i f np . imag ( Z0 ) <= 0 and np . imag ( Zf ) >= 0 :
r a n g = bound0 + b o u n d f
x = np . l i n s p a c e ( 0 , r a n g , 2 0 0 )
l i n e = l i n e + x 1 j
return l i n e
Este segmento de codigo permite la obtencion de un arreglo n-dimensional de NumPy con el conjunto de
puntos en el plano complejo que representan la adicin de reactancias a una impedancia Z0 hasta llegar a una
impedancia Zf . Estas impedancias son previamente obtenidas de las funciones de calculo de acople. Las
ecuaciones empleadas para el calculo de cualquiera de las redes implementadas se pueden generalizar a partir
de las del acople tipo L ya que las demas redes no son sino conexiones en cascada de redes L, por lo que a
continuacion se mostraran u nicamente y para proposito de ilustracion las ecuaciones para la red L.
Para el diseno de una red de acople tipo L se emplean las siguientes ecuaciones:
s
Rp
Qs = Qp =
1
(8)
Rs
Xs
Qs =
Rs
Rp
Qp =
(9)
Xp
Donde Qs es el factor de calidad de la rama en serie, Qp es el factor de calidad de la rama en paralelo, Rp la
resistencia en paralelo, Xp la reactancia en paralelo, Rs la resistencia en serie, y Xs la reactancia en serie.
Estos componentes se observan mejor en el circuito de la *figura 2*.
En caso de que la carga o la fuente cuenten con reactancias, se requiere usar el metodo de absorcion o bien el
metodo de resonancia. El metodo de absorcion consiste en aprovechar la reactancia del elemento a acoplar
como parte del acople, por lo que para usar este metodo se requiere que las reactancias de los elementos a
operar sean del mismo tipo, de lo contrario se usa el metodo de resonancia. El metodo de resonancia consiste
en anadir otro elemento reactivo, del mismo tipo del del acople que anule la reactancia del elemento
conectado (Carga o fuente), para este calculo se usa la ecuacion de la frecuencia de resonancia de un circuito
LC:
1
=
(10)
LC
Donde es la frecuencia angular de operacin del circuito, L la inductancia y C la capacitancia.

X
X
Siendo la primera la ecuacion de la familia de crculos de resistencia constante y la segunda la familia de
crculos de reactancia constante. As, la carta de Smith es una representacion visual de la transformada de
Mobius, donde cada punto en el plano es una magnitud compleja, tal como se observa en la figura 1.

Figure 2: Componentes de la red de acople L.

Para las demas redes se aplican las mismas ecuaciones, pero partiendo de un Q especfico. Esta generalizacion
del metodo de calculo permitio obtener los elementos de la red de acople mediante un sencillo metodo:

Figure 1: Carta de Smith como transformacin plano complejo. Explicacin de la representacin de impedancias

Esta transformacion del plano complejo para graficar la carta de Smith. Partiendo de la definicion de los ejes
reales e imaginario en Matplotlib aplica la transformada de Mobius para obtener las familias de crculos de
resistencia y reactancia constantes. El codigo empleado para este proposito es el siguiente:

def calcNetwork ( R p , R s ) :
Q = np . s q r t ( ( R p / R s ) 1)
X s = R s Q
X p = R p /Q
X match = np . a r r a y ( [ X s , X p ] )
r e t u r n X match
Como generalizacion del metodo de calculo de una red de acople, se muestra la funcion para una red L pasa
altos resumida, mostrando el calculo del primer elemento del acople:

def getLmatching ( Z g , Z L ) :
n e t w o r k . a p p e n d ( g e t C s (X [ 0 ] , Z g ) )
# C a l c u l a e l c o n d e n s a d o r s e r i e y l o anade
#como p r i m e r e l e m e n t o d e l a r r e g l o n e t w o r k
n e t w o r k . a p p e n d ( g e t L p (X [ 1 ] , Z L ) )
# C a l c u l a l a b o b i n a p a r a l e l o y l a anade
#como s e g u n d o e l e m e n t o d e l a r r e g l o n e t w o r k
# . . . e l metodo p a r a e l c a l c u l o de l a b o b i n a
# t i e n e una e s t r u c t u r a s i m i l a r a g e t C s ( )
d e f g e t C s (X, Z x ) :
# C a l c u l o de un c o n d e n s a d o r s e r i e
C s = 1 / ( n e t w o r k p a r a m s . wX)
# O b t e n c i o n de l a c a p a c i t a n c i a a p a r t i r de l a r e a c t a n c i a
i f np . imag ( Z x ) < 0 :
# S i l a r e a c t a n c i a de l a f u e n t e e s c a p a c i t i v a s e u s a a b s o r c i o n
C x s = np . a b s o l u t e ( 1 / ( n e t w o r k p a r a m s . w np . imag ( Z x ) ) )
C s = invParallel (C s , C x s )
e l i f np . imag ( Z x ) > 0 :
# S i l a r e a c t a n c i a de l a f u e n t e e s c a p a c i t i v a s e u s a r e s o n a n c i a
C aux = np . a b s o l u t e ( r e s o n a t e ( np . imag ( Z x ) ) )
C s = p a r a l l e l ( C s , C aux )
return C s

%m a t p l o t l i b i n l i n e
import w a r n i n g s
warnings . f i l t e r w a r n i n g s ( ignore )
import z m a t c h p y a s zm
zm . s e t N e t w o r k ( 2 , 0 , 6 0 e6 ,25 15 j ,100 25 j ) # A c o p l e t i p o L Pasa b a j o s
zm . g e t M a t c h ( )
zm . S m i t h p l o t ( 5 0 )
Este es un acople tipo L pasa bajos para una impedancia de fuente de 25 - 15j y de carga de 100 - 25j a
una frecuencia de 60Mhz, estos parmetros se configuran en la funcion setNetwork(). Se usa una
normalizacion de 50, parametro de la funcion Smithplot(). Se observa que el resultado coincide con el
indicado en el libro de referencia
zm . s e t N e t w o r k ( 5 , 5 , 3 0 e6 , 1 5 + 1 5 j , 2 2 5 ) # A c o p l e t i p o T Pasa b a j o s
zm . S m i t h p l o t ( 7 5 )
zm . S m i t h p l o t ( 5 0 )

d e f r e s o n a t e (X ) :
i f X < 0:
# C a l c u l a e l v a l o r d e l e l e m e n t o con e l c u a l r e s o n a r
# p a r t i e n d o de l a r e a c t a n c i a
e l m n t = 1 / ( n e t w o r k p a r a m s . wX)
e l i f X > 0:
e l m n t = X/ n e t w o r k p a r a m s . w
e l m n t a u x = 1 / ( ( n e t w o r k p a r a m s . w 2 ) e l m n t )
# C a l c u l a e l v a l o r d e l e l e m e n t o que e n t r a r en r e s o n a n c i a
# con e l a n t e r i o r
return elmnt aux
El codigo de los ejemplos anteriores es un codigo resumido e incompleto. Para revisar los metodos
completos, u obtener la totalidad del proyecto, puede consultarse el repositorio en GitHub :
https://github.com/tiagoCuervo/ZmatchPy

Resultados
El modulo final permite una interfaz mediante tres funciones. A continuacin se muestran ejemplos de dos
redes de acople de diferentes tipos (L y T), y se comparan para verificar su validez con ejemplos del libro RF
Smart Design de Chris Bowick.

Figure 5: Acople tipo T pasa bajos.

Figure 6: Acople tipo T pasa bajos del texto de referencia.

Este es un acople tipo T pasa bajos para una impedancia de fuente de 15 + 15j y de carga de 225 a una
frecuencia de 60Mhz. Se observa que el resultado coincide con el indicado en el libro de referencia:

Conclusiones
Los resultados obtenidos por el modulo coinciden a la perfeccion con los esperados debido a calculos
manuales y referencias de confianza, tal como se observa en los ejemplos del libro RF Circuits Design.
Figure 3: Acople tipo L pasa bajos.

El modulo creado proporciona una interfaz sencilla para la obtencion de redes de acople de impedancias, y
puede ser implementado con proyectos de mayor escala que requieran estas utilidades dado que se diseno
como un mdulo empaquetado instalable (Instrucciones en
https://github.com/tiagoCuervo/ZmatchPy).
Las libreras de computacion cientfica de Python Numpy, y Matplotlib son herramientas de mucha utilidad
en ingeniera, pues permiten realizar simulaciones y operaciones complejas con pocas lineas de codigo y
alta eficiencia en procesamiento.
El proceso de acoplamiento de impedancias es fundamental en cualquier circuito de comunicaciones, dado
que al tratarse de senales de baja potencia cualquier perdida es representativo, por lo que se debe asegurar
la mxima transferencia de potencia.
Dados los recursos computacionales de hoy la carta de Smith se reduce a una curiosidad ante todo
pedagogica, sin embargo sigue siendo un metodo manual sencillo y poderoso. Es una herramienta de
notable eficacia para su simplicidad, que permite realizar operaciones complejas manualmente en cuestion
de segundos y que proporciona una gran cantidad de informacin pertinente para las redes de
comunicaciones.

Referencias
RF Circuits Design, Chapter 4, Chris Bowick.
Mobius Transformation. http://www.math.bas.bg/rkovach/lectures/Moebius.pdf
Repositorio ZmatchPy: https://github.com/tiagoCuervo/ZmatchPy
Figure 4: Acople tipo L pasa bajos del texto de referencia.

Repositorio ZmatchPy: https://github.com/vMeijin/pySmithPlot

Você também pode gostar