algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf ·...

24
1 Profesor Leopoldo Silva Bijit. 25/09/2006 Algoritmos para análisis de redes no lineales. SPICE es una aplicación muy útil para el análisis de redes no lineales dinámicas. Se desarrolla a continuación los procedimientos matemáticos que están en el interior de SPICE, para resolver sistemas simultáneos de ecuaciones no lineales, esto se muestra a través de programas simplificados Maple. Formulación de ecuaciones no lineales. Vin + 0 D1 2 R 1 Figura 1. Diodo no lineal con resistencia serie. La ecuación no lineal de equilibrio del diodo es: / ( 1) v Vt d s i I e = Vt es el voltaje térmico del diodo. Vt = KT/q, donde K es la constante de Boltmann, T es la temperatura absoluta (300 grados Kelvin temperatura ambiente), y q es la carga de un electrón. Vt toma valor cercano a 0.026 Volts a temperatura ambiente. Is es la corriente inversa de saturación y un valor típico para este parámetros es 10 -14 A.

Upload: ngoanh

Post on 11-Oct-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

1

Profesor Leopoldo Silva Bijit. 25/09/2006

Algoritmos para análisis de redes no lineales.

SPICE es una aplicación muy útil para el análisis de redes no lineales dinámicas.

Se desarrolla a continuación los procedimientos matemáticos que están en el interior de SPICE, para resolver sistemas simultáneos de ecuaciones no lineales, esto se muestra a través de programas simplificados Maple.

Formulación de ecuaciones no lineales.

Vin +

0

D1

2

R

1

Figura 1. Diodo no lineal con resistencia serie.

La ecuación no lineal de equilibrio del diodo es:

/( 1)v Vtd si I e= −

Vt es el voltaje térmico del diodo. Vt = KT/q, donde K es la

constante de Boltmann, T es la temperatura absoluta (300 grados Kelvin temperatura ambiente), y q es la carga de un electrón. Vt toma valor cercano a 0.026 Volts a temperatura ambiente. Is es la corriente inversa de saturación y un valor típico para este parámetros es 10-14 A.

Page 2: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

2 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

El modelo del diodo es simplificado. En la formulación del modelo matemático, basado en consideraciones de la física de semiconductores, no se representan, entre otros, los efectos capacitivos ni el voltaje inverso de ruptura.

Aplicando método nodal, a la red de la Figura 1, se obtiene:

in dV Ri v− = Dados ,inV R , y los parámetros ,s tI V del diodo, se requiere

calcular v . Eliminando di de las ecuaciones anteriores, se obtiene la

ecuación no lineal, en términos del voltaje de nodo.

/( ) ( 1) 0v Vtin sf v V RI e v= − − − =

La solución de ( ) 0f v = , puede ser difícil de encontrar

analíticamente, pero como veremos es sencilla de resolver iterativamente.

Método de Newton-Raphson.

Para resolver ( ) 0f x = , se parte de un valor 0x y se genera

una serie de iteraciones ix que se acerquen a la solución sx ,

donde ( ) 0sf x = . En cursos de análisis numérico se responden las preguntas:

¿Cuándo la secuencia ix converge a la solución correcta? ¿Cuán rápido se converge? ¿La convergencia depende del intento inicial 0x ? ¿Cuándo detener las iteraciones?.

El método de Newton-Raphson consiste en reemplazar,

mediante la expansión de Taylor, la función por su versión lineal, en torno a la solución:

( ) ( ) ( )( )s s sdff x f x x x xdx

= + −

Page 3: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 3

Profesor Leopoldo Silva Bijit. 25/09/2006

Para un punto cualquiera se obtiene:

1 1( ) ( ) ( )( )k k k k kdff x f x x x xdx+ += + −

Efectuando: 1( ) 0kf x + = , se obtiene la fórmula de la iteración

de Newton-Raphson, despejando 1kx + :

1

1 ( ) ( )k k k kdfx x x f xdx

+⎡ ⎤= − ⎢ ⎥⎣ ⎦

Podemos interpretar la fórmula de la iteración, planteando la

relación anterior en 0x , y calculando 1x . Situación que se ilustra en la Figura 2.

x0 x1

f(x)

x2

f(x0)

xs θ0

f(x1)

Figura 2. Iteración Newton-Raphson.

Resulta, de la interpretación gráfica de la derivada en 0x : Despejando 1x , se obtiene el primer valor de aproximación

del método de Newton-Raphson: Nótese que 1( )f x no es cero, lo cual implica que 1x es una

aproximación de sx . También debe notarse que para calcular la

00 0

0 1

( )( ) ( ) f xdftg xdx x x

θ ⎡ ⎤= =⎢ ⎥ −⎣ ⎦

1

1 0 0 0( ) ( )dfx x x f xdx

−⎡ ⎤= − ⎢ ⎥⎣ ⎦

Page 4: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

4 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

siguiente aproximación deben calcularse la función y la derivada en el punto anterior.

El proceso debe repetirse hasta que: 1k kx x tolerancia+ − < Donde el valor de tolerancia debe ser un valor lo

suficientemente pequeño, para que la solución se considere aceptable. Con números reales de precisión simple (float en C), un valor razonable de tolerancia es 10-6, que es el valor del número real más pequeño representable, en el formato interno normalizado IEEE754.

Si el valor inicial es adecuado conviene limitar el número

máximo de iteraciones, de este modo si no existe convergencia se asegura que el algoritmo termine.

También puede verificarse que la ordenada en los puntos

sucesivos esté dentro de cierto rango:

1( )kf x tolerancia+ < Emplearemos el método anterior para calcular, usando

Maple, el punto de operación para el circuito de la Figura 1.

Implementación Maple de Newton-Raphson.

Se definen los parámetros de la red no lineal: > restart; with(plots): > Vin:=2: R:=100: Is:=1e-14: Vt:=.026: id:=Is*(exp(v/Vt)-1): Se calcula la función f(v)=0 y la derivada de f respecto a v. > f:=Vin-R*id-v: df:=diff(f,v): La característica del diodo, con la ordenada en mA, se

obtiene con: > plot(1000*id, v=0.6..0.8, thickness=2);

Page 5: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 5

Profesor Leopoldo Silva Bijit. 25/09/2006

Figura 3. Característica diodo no lineal.

Los valores que da el comando .op, de SPICE, que calcula el punto de operación, son: V(2) = 0,7211 e I(D1)= 1.279E-02 = 12,8 mA.

Se efectúa un gráfico detallado de f(v), en la zona de solución,

mediante: > plot(f,v=0.72..0.73,thickness=2);

Se obtiene:

Figura 4. Punto de operación.

Se procede ahora a implementar el algoritmo de Newton-Raphson. Se ha puesto un límite de 100 iteraciones y una tolerancia de 10-8.

> v[0]:=2: nmax:=100: tolerancia:=1e-8: Se repite desde n igual 0 hasta nmax lo que está entre do y

od, mediante el comando for. El break, dentro del if, detiene las iteraciones. Note el uso del

then, y del fi, con que termina el if.

Page 6: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

6 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

> for n from 0 to nmax do v[n+1]:=v[n]-subs(v=v[n],f)/subs(v=v[n],df); if abs( v[n+1] - v[n] ) < tolerancia then # solución dentro de la tolerancia break ; fi ; od: Al salir del lazo for, v[n+1] contiene el valor de la última

iteración, siendo la solución buscada. La secuencia de valores de v, para acercarse a la solución,

pueden visualizarse colocando un punto y coma en lugar de los dos puntos, en la secuencia: > S:=[seq([k,v[k]],k=0..n+1)]:

Una gráfica de los valores de v calculados en cada paso de la iteración, se logra con: > pointplot(S,symbol=circle);

Figura 5. Convergencia hacia la solución.

Punto de operación. El valor de la solución obtenida, se despliega mostrando el

voltaje y la corriente en el diodo, mediante:

> v[n+1];eval(id,v=v[n+1]);

.7247286818

Page 7: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 7

Profesor Leopoldo Silva Bijit. 25/09/2006

.01275271318

Valor de voltaje que coincide con el cruce por cero de la gráfica de la Figura 4; y también con el punto de operación obtenido con .op en SPICE.

El método de Newton-Raphson está incorporado en Maple,

mediante el comando fsolve, se obtiene prácticamente igual solución a la anterior, ejecutando simplemente:

> fsolve(f);

.7247286819

El algoritmo fsolve de Maple considera refinaciones del algoritmo anterior que se ha descrito en forma simplificada.

El análisis DC repite el cálculo anterior para diferentes

valores de Vin.

Análisis DC. Se implementa el comando de Spice: .DC Vi 0V 2.5V 25mV Empleando el comando fsolve, el algoritmo para efectuar un

barrido DC, calculando los puntos de V(2) y la corriente en el diodo Id, para los voltajes Vin desde 0 a 2.5V, en incrementos de 25 mV, se logra con:

> restart;with(plots): > R:=100:Is:=1e-14:Vt:=.026:id:=Is*(exp(v/Vt)-1): > f:=Vini-R*id-v: > Vin[0]:=0:DeltaV:=0.025:nmax:=2.5/DeltaV: > for n from 0 to nmax do V2[n]:=fsolve(subs(Vini=Vin[n],f)): Id[n]:=eval(id,v=V2[n]): Vin[n+1]:=Vin[n]+DeltaV; od:

Las trazas se confeccionan mediante las secuencias: > S1:=[seq([Vin[k],1000*Id[k]],k=0..nmax)]: S2:=[seq([Vin[k],V2[k]],k=0..nmax)]: > p1:=pointplot(S1,symbol=circle,color=red): p2:=pointplot(S2,symbol=circle,color=blue): display(p1);display(p2);

Page 8: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

8 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

Nótese que se almacenan los puntos Vin, y que la gráfica de la corriente se expresa en miliamperes.

Figura 6. Corriente en el diodo en [mA] versus Vin.

Figura 7. Voltaje en el diodo versus Vin.

Esta es la forma en que SPICE realiza los cálculos en forma interna, pero con algoritmos más eficientes.

Generalización para sistemas de ecuaciones no lineales.

Para un sistema de ecuaciones no lineales, se emplea la expansión de Taylor para varias variables.

La expansión es una linealización en torno a la solución:

( ) ( ) ( )( )s s sF x F x J x x x= + −

Page 9: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 9

Profesor Leopoldo Silva Bijit. 25/09/2006

Las cantidades ( )F x y ( )sx x− se expresan como vectores, y

( )sJ x como una matriz, denominada Jacobiano. Para un punto cualquiera, con aproximación de primer

orden, se tiene:

1 1( ) ( ) ( )( )k k k k kF x F x J x x x+ += + − Para entender la relación anterior se ilustra la forma que ella

toma para dos funciones de dos variables x1 y x2, se tiene:

1 1

1 1 1 1 1

2 1 1 2 12 2

( 1 , 2 ) ( 1 , 2 )( 1 , 2 ) ( 1 , 2 ) 1 11 2

( 1 , 2 ) ( 1 , 2 ) 2 2( 1 , 2 ) ( 1 , 2 )

1 2

k k k k

k k k k k k

k k k k k kk k k k

F x x F x xF x x F x x x xx x

F x x F x x x xF x x F x x

x x

+ + +

+ + +

∂ ∂

−∂ ∂= +

−∂ ∂

∂ ∂

⎡ ⎤⎢ ⎥⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎢ ⎥⎢ ⎥⎣ ⎦

Una explicación del cambio de la función de dos variables,

puede efectuarse considerando el plano tangente a la superficie en el punto (x10, x20) que pasa también por el punto (x11, x21).

Donde el punto 0 es el inicial, y el punto 1, se obtiene pasando un plano tangente a la superficie en el punto 0.

x10

x11

x20

x21 θx1 θx2

ΔF1x1

ΔF1x2

Figura 8. Interpretación del Jacobiano de dos variables.

Aplicando la interpretación geométrica de las derivadas parciales, se tienen:

Page 10: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

10 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

1 0 0 1 11

0 1

1 0 0 1 22

0 1

( 1 , 2 )( ) 1 1 1

( 1 , 2 )( ) 2 2 2

xx

xx

F x x Ftgx x x

F x x Ftgx x x

θ

θ

∂ Δ= =

∂ −

∂ Δ= =

∂ −

El cambio total de la función, resulta:

1 0 0 1 0 01 1 1 2 0 1 0 1

( 1 , 2 ) ( 1 , 2 )( 1 1 ) ( 2 2 )1 2x x

F x x F x xF F x x x xx x

∂ ∂Δ + Δ = − + −

∂ ∂

Aplicando el método de Newton-Raphson, que consiste en

asumir que el plano tangente pasa por el punto que es una aproximación a la solución. Esto equivale a efectuar:

1 1 1

2 1 1

( 1 , 2 )( 1 , 2 )

0k k

k k

F x xF x x

+ +

+ +

⎡ ⎤⎢ ⎥⎣ ⎦

=

Entonces la fórmula de iteración, resulta:

1 1

1 1

1 22 2

( 1 , 2 ) ( 1 , 2 )1 1 ( 1 , 2 )1 22 2 ( 1 , 2 )( 1 , 2 ) ( 1 , 2 )

1 2

k k k k

k k k k

k k k kk k k k

F x x F x xx x F x xx xx x F x xF x x F x x

x x

+

+

∂ ∂−∂ ∂

= −−∂ ∂

∂ ∂

⎡ ⎤⎢ ⎥⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦⎢ ⎥⎢ ⎥⎣ ⎦

Finalmente, despejando el nuevo punto:

1 1

1 1

1 22 2

1( 1 , 2 ) ( 1 , 2 )1 1 ( 1 , 2 )1 22 2 ( 1 , 2 )( 1 , 2 ) ( 1 , 2 )

1 2

k k k k

k k k k

k k k kk k k k

F x x F x xx x F x xx xx x F x xF x x F x x

x x

+

+

−∂ ∂

∂ ∂= −∂ ∂

∂ ∂

⎡ ⎤⎢ ⎥⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥

⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎢ ⎥⎢ ⎥⎣ ⎦

La que expresada en términos de vectores y la matriz inversa

del Jacobiano, resulta en general, para n variables:

11 ( ) ( ) k k k kx x J x F x−

+ = −

Page 11: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 11

Profesor Leopoldo Silva Bijit. 25/09/2006

Una mejor visualización de la suma de los incrementos, se logra observando los triángulos semejantes en la Figura 8a. Por el punto inicial (2, 2, 10) se pasa el plano z=2x+3y que también pasa por el punto (0, 0, 0). Se han dibujado además los planos de z constante, z=4 y z=6.

2, 3z zx y

∂ ∂= =

∂ ∂ , 64z zx y

x y∂ ∂

Δ = Δ =∂ ∂

Figura 8a. Variación total de función de dos variables.

Volviendo al caso de dos variables, considerando el álgebra de matrices, se tiene:

1 1a b x by dxc d y cx ayad bc

− −⎡ ⎤ ⎡ ⎤ ⎡ ⎤− =⎢ ⎥ ⎢ ⎥ ⎢ ⎥−−⎣ ⎦ ⎣ ⎦ ⎣ ⎦

Entonces las fórmulas de iteración de Newton-Raphson para

un sistema de ecuaciones no lineales de dos variables:

1 22 1

11 2 1 2

( ) ( )( ( ) ( ))2 21 1 ( ) ( ) ( ) ( )

1 2 2 1

k k

F k F kF k F kx xx x F k F k F k F k

x x x x

+

∂ ∂−

∂ ∂= +∂ ∂ ∂ ∂

−∂ ∂ ∂ ∂

2 1

1 2

11 2 1 2

( ) ( )( ( ) ( ))2 12 2 ( ) ( ) ( ) ( )

1 2 2 1

k k

F k F kF k F kx xx x F k F k F k F k

x x x x

+

∂ ∂−

∂ ∂= +∂ ∂ ∂ ∂

−∂ ∂ ∂ ∂

Page 12: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

12 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

En caso de mayores órdenes debe invertirse el Jacobiano, o alternativamente resolverse el sistema lineal de ecuaciones, para las incógnitas 1kx + :

1( )( ) ( ) k k k kJ x x x F x+ − = −

Sistema no lineal de dos ecuaciones.

Vin +

0

D1

2

R 3

E1

D2

E2 4

i1 i2

v1 v2

1

Figura 9. Red no lineal con dos diodos.

Se tienen: 1 1

2 2

1 2

in

in

V Ri E vV Ri E vi i i

− = +− = −

= −

Las ecuaciones exponenciales de los diodos, que se asumen

iguales son: 1

2

/1

/2

( 1)

( 1)

v Vts

v Vts

i I e

i I e

= −

= −

Eliminando las corrientes, se obtiene el sistema de

ecuaciones no lineales:

1 2

1 2

/ /1 1 2 1 1

/ /2 1 2 2 2

( , ) ( ) 0

( , ) ( ) 0

t t

t t

v V v Vin s

v V v Vin s

F v v V RI e e E v

F v v V RI e e E v

= − − − − =

= − − − + =

Definiendo los valores de los parámetros, se tiene:

> restart;with(plots): > datos:={R=1,Is=1e-14,Vt=.026,E1=10,E2=10,Vin=10.2}:

Page 13: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 13

Profesor Leopoldo Silva Bijit. 25/09/2006

> F1:=Vin-R*Is*(exp(v1/Vt)-exp(v2/Vt))-E1-v1;

:= F1 − − − 11 R Is⎛⎝⎜⎜

⎞⎠⎟⎟ − e

⎛⎝⎜⎜

⎞⎠⎟⎟

v1Vt e

⎛⎝⎜⎜

⎞⎠⎟⎟

v2Vt E1 v1

> F2:=Vin-R*Is*(exp(v1/Vt)-exp(v2/Vt))-E2+v2;

:= F2 − − + 11 R Is⎛⎝⎜⎜

⎞⎠⎟⎟ − e

⎛⎝⎜⎜

⎞⎠⎟⎟

v1Vt e

⎛⎝⎜⎜

⎞⎠⎟⎟

v2Vt E2 v2

Pueden obtenerse las gráficas de las funciones F1 y F2 en términos de v1 y v2, mediante:

> rangos:= v1=-1..1,v2=-1..1: p1:=implicitplot(eval(F1,datos),rangos,numpoints=10000,color=red,thickness=2):p2:=implicitplot(eval(F2,datos),rangos,numpoints=10000,color=blue,thickness=2): display(p1,p2);

Se obtienen, para Vin =10.2 V:

Figura 10. Vin>10. D1 conduce, D2 no conduce.

Nótese que la solución se encuentra en el cuarto cuadrante, debido a que el Vin es mayor que 10.

Cambiando el parámetro Vin a 9,8 V, se obtiene una

solución en el segundo cuadrante, como se muestra en la Figura 11.

Page 14: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

14 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

Figura 11. Vin<10. D1 no conduce, D2 conduce.

Punto de operación. La implementación de Newton-Raphson, para un sistema de

dos ecuaciones simultáneas de dos variables se logra mediante: Se dan valores a los parámetros:

> Vin:=11: > datos:={R=1,Is=1e-14,Vt=.026,E1=10,E2=10}:

Se calcula el Jacobiano:

> a:=diff(F1,v1):b:=diff(F1,v2): c:=diff(F2,v1):d:=diff(F2,v2): > det:=a*d-b*c:det1:=b*F2-d*F1:det2:=c*F1-a*F2: > df1:=eval(det1/det,datos):df2:=eval(det2/det,datos):

Elección de punto de inicio. > if Vin>10 then v1p[0]:=1: v2p[0]:=-1: else v1p[0]:=-1: v2p[0]:=1: fi: De las Figuras 11 y 12, el punto para iniciar el proceso de

aproximación se elige adecuadamente, en puntos del segundo o cuarto cuadrante.

Se repite desde n igual 1 hasta nmax lo que está entre do y

od, mediante el comando for. El break, dentro del if, detiene las iteraciones. Note el uso del then, y del fi, con que termina el if.

> nmax:=100: tolerancia:=1e-8:

Page 15: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 15

Profesor Leopoldo Silva Bijit. 25/09/2006

> for n from 0 to nmax do v1p[n+1]:=v1p[n]+ eval(df1,{v1=v1p[n],v2=v2p[n]}); v2p[n+1]:=v2p[n]+ eval(df2,{v1=v1p[n],v2=v2p[n]}); if (abs(v1p[n+1]-v1p[n])<tolerancia) and (abs(v2p[n+1]-v2p[n])<tolerancia) then # solución dentro de la tolerancia break; fi; #printf("%f %f \n",v1p[n+1],v2p[n+1]); od: La solución para Vin dado, se obtiene con: > v1p[n+1];v2p[n+1]; Repitiendo esta iteración para diferentes valores de Vin, se

obtienen similares curvas de v1 y v2, a las generadas por SPICE.

Figura 12. Solución SPICE. Barrido DC 0<Vin<15.

Barrido DC. Puede emplearse el siguiente segmento para obtener las

trazas de v1 y v2 en función de diferentes valores de Vin. Se emplea fsolve, para resolver el sistema no lineal

simultáneo de ecuaciones. Debido a que este comando entrega el resultado como un conjunto se requiere, antes de almacenar los puntos, identificar la variable y su valor en cada conjunto;

v1(Vin)

v2(Vin)

Page 16: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

16 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

para esto se emplean los operadores lhs y rhs (por left y right hand side)

Se implementa el comando de SPICE: .DC Vi 0V 15V 75mV

> Vin[0]:=0: DeltaV:=0.2: nmax:=15/DeltaV: datosDC:={R=1,Is=1e-14,Vt=.026,E1=10,E2=10,Vin=Vin[n]}: > for n from 0 to nmax do Cp[n]:=fsolve({eval(F1,datosDC),eval(F2,datosDC)}, {v1=0, v2=0}); if lhs(Cp[n][1])=v1 then V1[n]:=rhs(Cp[n][1]) else V2[n]:=rhs(Cp[n][1]) fi; if lhs(Cp[n][2])=v2 then V2[n]:=rhs(Cp[n][2]) else V1[n]:=rhs(Cp[n][2]) fi; Vin[n+1]:=Vin[n]+DeltaV; od:

Los siguientes comados generan las secuencias de puntos,

generan los gráficos en base a puntos y finalmente se despliegan.

> S1:=[seq([Vin[k],V1[k]],k=0..nmax)]: S2:=[seq([Vin[k],V2[k]],k=0..nmax)]: > p1:=pointplot(S1,symbol=circle,color=red): p2:=pointplot(S2,symbol=circle,color=blue): display(p1,p2);

Figura 13. Solución Maple. Barrido DC 0<Vin<15.

Que es comparable con la Figura 12.

v1(Vin)

v2(Vin)

Page 17: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 17

Profesor Leopoldo Silva Bijit. 25/09/2006

Transistor.

Las ecuaciones de Ebers-Moll para un transistor npn consideran corrientes exponenciales en los diodos.

E

DF

B αRIc

DR αFIe

C Ic

Ib

Ie

C

B

E

Figura 14. Modelo de Ebers-Moll.

0

0

/

/

( 1)

( 1)e EB R c

c CB F e

tbe

tbc

v V

v V

I I I

I I I

e

e

α

α

− = − +

− = − +

Las siguientes relaciones se tienen entre los coeficientes, del

modelo de Ebers-Moll: 0

0

0 0

(1 )(1 )

1

EB SE R F

CB SC R F

F EB R CB

Ffe

F

I II I

I I

h

α αα α

α αα

α

= −= −

=

=−

Spice emplea el modelo de Gummel-Poon que considera

parámetros adicionales que permiten ajustar el modelo a cualquier transistor.

Parámetros del transistor. Se planteará el modelo de Eber-Moll, empleando Maple, y se

ajustarán los parámetros para tener igual modelo en SPICE.

Page 18: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

18 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

Planteando las ecuaciones de Ebers-Moll: > restart;with(plots): > ecs:={-ib-ic=-Iebo*(exp((vbe)/Vt)-1)-ar*ic, ic=-Icbo*(exp(((vbe)-vce)/Vt)-1)+af*(ib+ic)}: > ecs1:=solve(ecs,{ib,ic}): > datos:={Icbo=0.19733360e-15, af=0.990099,ar=0.90,Vt=25.8e-3}: hf:= eval(af/(1-af),datos);Iebo:=eval(ar*Icbo/af,datos): Ise:=eval(Iebo/(1-ar*af),datos):Isc:=eval(Icbo/(1-ar*af),datos);

:= hf 99.99989900

:= Isc .1811881088 10-14

El modelo SPICE tiene los parámetros Is y BF, para describir Isc y hfe.

Las curvas características del transistor se obtienen con:

> sol:=eval(ecs1,datos):assign(sol): > plot({eval(ic,vbe=0.65),eval(ic,vbe=0.75)},vce=0.0..1, color=[red,blue]); > plot({eval(ib*1e6,vce=.1),eval(ib*1e6,vce=10)}, vbe=0.5..0.7,color=[red,blue]);

Figura 15. Características de salida.

Nótese que la unidad de la corriente de base es μA, en la Figura 16.

Vbe=0,65

Vbe=0,70

Page 19: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 19

Profesor Leopoldo Silva Bijit. 25/09/2006

Figura 16. Características de entrada.

Para comprobar el ajuste de los parámetros, la corriente de base, en microamperes cuando vce=10 y vbe=0,68, resulta:

> eval(ib*1e6,{vce=10,vbe=0.68});

4.559254875 Obteniendo la corriente de base y colector en el siguiente

modelo SPICE, en el cual se han ajustado los parámetros de la corriente inversa de saturación y la ganancia del transistor BF, que equivale a hfe. Se obtiene la gráfica que se ilustra en la Figura 17.

Características Ib(Vbe) en BJT Vce 1 0 DC 10V Vbe 2 0 DC 0; * C B E Q1 1 2 0 transistor .model transistor NPN (Is=.18111881088e-14A BF=100) * Análisis DC Vbe varía desde 1 a 10 V en incrementos de 100mV .DC Vbe 500mV 700mV 10mV .probe .end

Vce=0,1

Vce=10

Page 20: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

20 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

Figura 17. Corrientes en SPICE.

Nótese que ajustando sólo los valores de Is y BF, las corrientes de colector y base tienen la misma forma. Mostrando una ganancia constante de 100; esto observando las diferentes escalas para las corrientes, en la Figura 17.

Los valores de los parámetros son de fundamental

importancia en el ajuste del modelo.

Punto de operación. Agregando redes de polarización se deja al transistor

trabajando en un punto (ib, vbe) de la característica de entrada, y en un punto (ic, vce) de la característica de salida. Los valores pueden obtenerse aplicando método nodal, a la red de la Figura 18, calculando los voltajes vbe, vce. Mediante éstos pueden calcularse ib e ic.

Resolveremos el problema no lineal, empleando SPICE, que

entrega los resultados; y empleando Maple para resolver las ecuaciones no lineales. Mediante este proceder intentamos ilustrar la forma de cálculos que están incorporados en SPICE.

Para poder comparar los resultados los parámetros del

transistor Maple y SPICE deben modelar la misma componente. Esto se explicó en el punto anterior.

ib=4,7μA

Page 21: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 21

Profesor Leopoldo Silva Bijit. 25/09/2006

NPNRb

Vc

+Vcc

Rc

3

2

0

1

4

Vin

Figura 18. Redes de polarización.

Emplearemos los siguientes valores para las mallas de polarización: Rb=10K, Rc=2K, Vcc=5, Vin=0,8.

El siguiente netlist representa la red de la Figura 18. Punto de Operación de transistor * Rb 1 2 10k Rc 4 3 2k * C B E Q1 3 2 0 transistor Vcc 4 0 5V Vin 1 0 0.8 .model transistor NPN (Is=.1811881088e-14A BF=100 ) .op .probe .end Los resultados quedan en un archivo con extensión .out,

resultan: SMALL SIGNAL BIAS SOLUTION TEMPERATURE = 27.000 DEG C **************************************************************** NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE ( 1) .8000 (2) .6994 (3) 2.9886 (4) 5.0000 Donde V(2) es el voltaje base-emisor, y V(3) es el voltaje

collector-emisor. Las siguientes líneas, describen en Maple, las funciones no

lineales de las redes de polarización. El comando fsolve, encuentra, empleando el método de Newton-Raphson, la solución del sistema no lineal simultáneo de ecuaciones.

Page 22: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

22 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

> F1:=vce+Rc*ic-Vcc:F2:=vbe+Rb*ib-Vin: > datospol:={Vcc=5,Rb=10e3,Rc=2e3,Vin=.8}: > fsolve({eval(F1,datospol),eval(F2,datospol)},{vbe,vce});

{ }, = vce 3.004198067 = vbe .7002098022 Los cuales son comparables a la solución obtenida por

SPICE. 2.9886, 0.6994ce bev v= =

Empleando Maple, pueden graficarse las características no

lineales de las mallas de polarización: > rangos:= vbe=0..0.8,vce=0..5: p1:=implicitplot(eval(F1,datospol),rangos, numpoints=10000,color=red): p2:=implicitplot(eval(F2,datospol),rangos, numpoints=1000,color=blue): display(p1,p2);

Se obtiene la gráfica de la Figura 19.

Figura 19. Redes de polarización.

Característica de transferencia. En el programa SPICE, basta agregar el comando para

efectuar un barrido DC, variando el voltaje de entrada y obteniendo el voltaje de salida.

Variaremos desde 0,4 hasta 1,4 el voltaje de entrada, en intervalos de 10 mV:

.dc Vin 0.4 1.4 0.010

F1(vbe, vce)

F2(vbe, vce)

Page 23: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

Teoría de Redes Eléctricas 23

Profesor Leopoldo Silva Bijit. 25/09/2006

Se obtiene la gráfica de la Figura 20.

Figura 20. Vout/Vin mediante SPICE.

En Maple es preciso repetir el cálculo anterior, para el punto de operación, variando el voltaje de entrada y almacenando los valores del punto de operación correspondiente en el arreglo Cp[n].

> Vin[0]:=0.4:DeltaV:=0.05:nmax:=1/DeltaV: datosDC:={Vcc=5,Rb=10e3,Rc=2e3,Vin=Vin[n]}: > for n from 0 to nmax do Cp[n]:=fsolve({eval(F1,datosDC),eval(F2,datosDC)}, {vbe,vce}); if lhs(Cp[n][1])=vbe then Vbe[n]:=rhs(Cp[n][1]) else Vce[n]:=rhs(Cp[n][1]) fi; if lhs(Cp[n][2])=vce then Vce[n]:=rhs(Cp[n][2]) else Vbe[n]:=rhs(Cp[n][2]) fi; Vin[n+1]:=Vin[n]+DeltaV; #printf(" %f %f %f \n",Vin[n] ,Vbe[n],Vce[n]); od:

Mediante los puntos generados, se generan gráficos, y se

obtiene la Figura 21.

> S1:=[seq([Vin[k],Vbe[k]],k=0..nmax)]: S2:=[seq([Vin[k],Vce[k]],k=0..nmax)]:

Page 24: Algoritmos para análisis de redes no lineales. - …lsb/elo102/ejercicios/analisinolineales.pdf · Dados VRin,, y los parámetros Is,Vt del diodo, se requiere calcular v. Eliminando

24 Redes no lineales

Profesor Leopoldo Silva Bijit. 25/09/2006

> p1:=pointplot(S1,symbol=diamond,color=red): p2:=pointplot(S2,symbol=circle,color=blue): display(p1,p2);

Figura 21. Transferencia Vout/Vin mediante Maple.

La cual puede compararse con la Figura 20.

Resumen.

Mediante Maple se muestra cómo se efectúan cálculos en redes no lineales. Estos algoritmos, pero más avanzados, se encuentran incorporados internamente en la aplicación SPICE.

Debe considerarse a SPICE como un analizador de redes no

lineales dinámicas. En un ambiente de diseño electrónico interesa cambiar el

valor de alguna componente o estudiar el efecto de agregar o quitar una componente, con miras a posteriormente armar el sistema para pruebas de laboratorio. Dependiendo de la habilidad y experiencia del diseñador, pueden someterse a análisis determinadas interconexiones de componentes, considerando precisas definiciones de los modelos de cada una (modelado). A este proceso suele denominarse simulación.

Mientras mayor sea la experiencia del diseñador, más

cercanos serán los resultados obtenidos por simulación a los medidos experimentalmente en el laboratorio. Las diferencias en los resultados se deben a modelos incompletos.