Está en la página 1de 38

Universidad Nacional del Callao

Calculadora de Impedancias de Circuitos en


Serie para RC, RL y RLC.

PROGRAMACION AVANZADA
Universidad Nacional del Callao

INFORME PROYECTO DE PROGRAMACION


AVANZADA

Profesor: ING. MENDOZA APAZA FERNANDO.

Nombre y Apellidos:
BUSTAMANTE FERNANDEZ CESIL ORLANDO 1613225139

AYALA CERNA JESUS EDINSON 1613215095

Grupo de Laboratorio: 90G

Callao – Perú
2019-2
 OBJETIVOS

 Establecer un proyecto en el cual enfoquemos lo aprendido en clase


acerca del programa Python y que lo apliquemos a algo relacionado
a nuestra carrera de ingeniería electrónica.
 Conocer los diferentes parámetros de programacion ya que se
diferencia de los otros programas como son programación c++, turbo
c++, java, netbeans, etc.
 Comprender mediante cálculos las soluciones.
 Solucionar el problema con Python y compararlo con el resultado
teórico.
 A veces cuando digitamos un número es lo suficientemente grande
para colocarlo en un programa
 cuando lo solicita por ejemplo tenemos el valor de una resistencia
expresado en kilo-omhs y puede
 resultar engorroso hasta puede haber fallas al momento de digitarlo.

 Por ello el propósito de este programa en lenguaje Python es digitar


en la entrada variables que hagan
 uso de PREFIJOS de unidades de S.I. para que este pueda procesar
y asignarle el valor que le
 corresponde. Como es sabido son potencias de 10.

 A continuación, veremos una tabla de prefijos y se resaltaran los que


se van a usar para este caso ya que
 las siguientes variables usualmente se denotan con los siguientes
prefijos de unidades.

 RESISTENCIAS se pueden expresar como un número, en kilo (k) y


en mega (M)

 CAPACITORES se pueden expresar en micro (u), nano(n) y pico(p)

 BOBINAS se pueden expresar como número, en mili(m), micro(u) y


nano (n)

 FRECUENCIAS se pueden expresar en número, kilo(k), mega(M),


giga(G)

 MARCO TEÓRICO
Circuito RC:

Un circuito RC  es un circuito  eléctrico y electrónico compuesto


de resistencias y condensadores. La forma más simple de circuito RC es
el circuito RC de primer orden, compuesto por una resistencia y un
condensador. Los circuitos RC pueden usarse para filtrar una señal alterna,
al bloquear ciertas frecuencias y dejar pasar otras. Los filtros RC más
comunes son el filtro paso alto, filtro paso bajo, filtro paso banda, y el filtro
de rechazo de banda. Entre las características de los circuitos RC está la
de ser sistemas lineales e invariantes en el tiempo.

La impedancia compleja, ZC (en ohmios) de un condensador con capacidad


C (en faradios) es

1
ZC=R− j
ωC

donde

j representa la unidad imaginaria:

j=√−1, ω=2 πf
ω es la frecuencia angular sinusoidal (también en radianes por segundo).

Circuito RL:
Un circuito RL es un circuito eléctrico y electrónico que contiene una resistencia y
una bobina en serie. Se dice que la bobina se opone transitoriamente al
establecimiento de una corriente en el circuito.

La impedancia compleja, ZL (en ohmios) de un condensador con capacidad


C (en faradios) es

ZL=R+ωLj

Circuito RLC:
En electrodinámica, un circuito RLC es un circuito lineal que contiene
una resistencia eléctrica, una bobina y un capacitor.
Existen dos tipos de circuitos RLC, en serie o en paralelo, según la interconexión
de los tres tipos de componentes. El comportamiento de un circuito RLC se
describe generalmente por una ecuación diferencial de segundo orden (en donde
los circuitos RC o RL se comportan como circuitos de primer orden).
Con ayuda de un generador de señales, es posible inyectar en el
circuito oscilaciones y observar en algunos casos el fenómeno de resonancia,
caracterizado por un aumento de la corriente (ya que la señal de entrada elegida
corresponde a la pulsación propia del circuito, calculable a partir de la ecuación
diferencial que lo rige).
La impedancia compleja, ZT (en ohmios) de un condensador con capacidad
C (en faradios) es

1
ZT=R+ ωLj− j
ωC
IMPEDANCIA.
La impedancia es una medida de oposición que presenta un circuito a una
corriente cuando se aplica una tensión. La impedancia extiende el concepto
de resistencia a los circuitos de corriente alterna, y posee tanto magnitud
como fase, a diferencia de la resistencia, que sólo tiene magnitud.

Tipos de Impedancia:

Una impedancia puede ser de 3 diferentes maneras:


- Impedancia solo con componentes reales: (resistencias)

Z=a+0 j

- Impedancia solo con componentes imaginarios: (capacitores, inductores


o ambos)

Z=0+bj

- Impedancia con componentes reales e imaginarios: (resistencias,


inductores y/o capacitores)

Z=a+bj
A esto, se deduce que una impedancia está incluida en el mundo de los
complejos.

Impedancia puramente resistiva:

Es un circuito con solamente valor resistivo.


Z=R+0 j

Impedancia puramente capacitiva:

Es un circuito con solamente valor capacitivo.


1
Z=0− j
ωC

Impedancia puramente inductiva:

Es un circuito con solamente valor inductivo.


Z=0+ωLj

 EJERCICIOS TEÓRICOS PRACTICOS:

1. Hallar la suma resistiva, la reactancia total y la impedancia total con los


siguientes valores en un circuito RC:

o 2 resistencias:

R1=600 ohm, R 2=4700 ohm, R 3=800 ohm

o 1 capacitor:

C=0.0001 F

A una frecuencia de 10000 Hz.

Solución:

Impedancia resistiva total:

Z R=600+4700+800=6100 ohm
Impedancia capacitiva total:

−j
ZC = =−0.1591 j ohm
2 ∙ π ∙ 10000∙ 0.0001

Impedancia total:

ZT =6100−0.1591 j ohm

En el programa:
2. Hallar la suma resistiva, la reactancia total y la impedancia total con los
siguientes valores en un circuito RL:

2 resistencias:

R1=100 ohm , R 2=300 ohm

1 bobinas:

L1=0.001 H

A una frecuencia de 2000 Hz.

Solución:

Impedancia resistiva total:

Z R=400 ohm
Impedancia inductiva total:

ZC =2 π ( 2000 ) ( 0.001 ) j=+12.5663 j ohm

Impedancia total:

ZT =400+12.5663 j ohm

En el programa:
3. Hallar la suma resistiva, la reactancia total y la impedancia total con los
siguientes valores en un circuito RLC:

5 resistencias:
R1=10 ohm , R 2=100 ohm, R3=1000 ohm, R 4 =10000 ohm, R5=470 ohm

2 bobinas:

L1=0.007 H , L2=0.0009 H
1 capacitor:

C=0.0000001 F

A una frecuencia de 100 Hz.

Solución:

Impedancia resistiva total:

Z R=10+ 100+1000+10000+470=11580 ohm


Impedancia inductiva total:

Z L =2 π ( 100 ) ( 0.007+0.0009 ) =+ 4.9637 j ohm

Impedancia capacitiva total:

−j
ZC = =−15915.4943 j ohm
2 ∙ π ∙ 100∙ 0.0000001

Impedancia total:

ZT =11580+ 4.9637 j−15915.4943 j ohm


ZT =11580−15910.5306 j ohm

En el programa:
 CODIGO EN PYTHON
Primeramente, vamos a analizar con valores por variables; debidamente
como sabemos pondremos los valores que nos piden, pero de manera
abreviada para así hacernos más fácil la presentación:

A continuación, presentaremos el programa:


Presentación de Programa Respectivo:
print("CALCULADORA DE IMPEDANCIAS - CIRCUITOS EN SERIE")
print("1. Circuito RL")
print("2. Circuito RC")
print("3. Circuito RLC")
Tipo = input("Ingresar el tipo de circuito: ")
freq = input("\nIngresar frecuencia a trabajar: ")
prefk = freq.endswith('k')
prefm = freq.endswith('m')
prefg = freq.endswith('g')
isnume = freq.isnumeric()
#print(type(freq))
#print(freq.isnumeric())
if isnume == True:
newfreq = float(freq)

if isnume == False:
if prefk == True:
numfreq = float(freq.strip("k"))
newfreq = numfreq*1000

elif prefm == True:


numfreq = float(freq.strip("m"))
newfreq = numfreq*1000000

elif prefg == True:


numfreq = float(freq.strip("g"))
newfreq = numfreq*1000000000

else:
newfreq = float(freq)

freq = float(newfreq)
#frecuencia angular relativa w
w = 2*3.1416*freq
sumaR = 0
sumaL = 0
sumaC = 0

if int(Tipo) == 1:
print("\nCIRCUITO RL")

NR = input("\ningrese el numero de resistencias : ")


NR = int(NR)

print("Ingrese valor de resistencias: ")


for i in range(1, NR+1):
resist=input()
prerk = resist.endswith('k')
prerm = resist.endswith('m')
isnumer = resist.isnumeric()
#print(type(resist))
#print(resist.isnumeric())
if isnumer == True:
newr = float(resist)

if isnumer == False:
if prerk == True:
numr = float(resist.strip("k"))
newr = numr*1000

elif prerm == True:


numr = float(resist.strip("m"))
newr = numr*1000000
else:
newr = float(resist)

resist= float(newr)
sumaR = sumaR + resist
print("suma de resistencias: ",sumaR)

NL = input("\ningrese el numero de bobinas : ")


NL = int(NL)

print("Ingrese valor de bobinas: ")


for j in range(1, NL+1):
bobi=input()
prelm = bobi.endswith('m')
prelu = bobi.endswith('u')
preln = bobi.endswith('n')
prelp = bobi.endswith('p')
isnumel = bobi.isnumeric()
#print(type(bobi))
#print(bobi.isnumeric())
if isnumel == True:
newl = float(bobi)

if isnumel == False:
if prelm == True:
numl = float(bobi.strip("m"))
newl = numl/1000
elif prelu == True:
numl = float(bobi.strip("u"))
newl = numl/1000000

elif preln == True:


numl = float(bobi.strip("n"))
newl = numl/1000000000

elif prelp == True:


numl = float(bobi.strip("p"))
newl = numl/1000000000000

else:
newl = float(bobi)

bobi= float(newl)
xL = w*bobi
sumaL = sumaL + xL
print("Suma de reactancia inductiva xL: ",sumaL)
print("\nZt=",sumaR,"+",sumaL,"j")

if int(Tipo) == 2:
print("\nCIRCUITO RC")

NR = input("\ningrese el numero de resistencias : ")


NR = int(NR)

print("Ingrese valor de resistencias: ")


for i in range(1, NR+1):
resist=input()
prerk = resist.endswith('k')
prerm = resist.endswith('m')
isnumer = resist.isnumeric()
#print(type(resist))
#print(resist.isnumeric())
if isnumer == True:
newr = float(resist)

if isnumer == False:
if prerk == True:
numr = float(resist.strip("k"))
newr = numr*1000

elif prerm == True:


numr = float(resist.strip("m"))
newr = numr*1000000

else:
newr = float(resist)

resist= float(newr)
sumaR = sumaR + resist
print("suma de resistencias: ",sumaR)

NC = input("\ningrese el numero de capacitores : ")


NC = int(NC)

print ("Ingrese valor de capacitores: ")


for j in range(1,NC+1):
cap=input()
precu = cap.endswith('u')
precn = cap.endswith('n')
precp = cap.endswith('p')
isnumec = cap.isnumeric()
#print(type(cap))
#print(cap.isnumeric())
if isnumec == True:
newc = float(cap)

if isnumec == False:
if precu == True:
numc = float(cap.strip("u"))
newc = numc/1000000

elif precn == True:


numc = float(cap.strip("n"))
newc = numc/1000000000

elif precp == True:


numc = float(cap.strip("p"))
newc = numc/1000000000000

else:
newc = float(cap)

cap= float(newc)
xC = 1/(w*cap)
sumaC = sumaC + xC
print("Suma de reactancia capacitiva xC: ",sumaC)
print("\nZt=",sumaR,"-",sumaC,"j")

if int(Tipo) == 3:
print("\nCIRCUITO RLC")

NR = input("\ningrese el numero de resistencias : ")


NR = int(NR)

print("Ingrese valor de resistencias: ")


for i in range(1, NR+1):
resist=input()
prerk = resist.endswith('k')
prerm = resist.endswith('m')
isnumer = resist.isnumeric()
#print(type(resist))
#print(resist.isnumeric())
if isnumer == True:
newr = float(resist)

if isnumer == False:
if prerk == True:
numr = float(resist.strip("k"))
newr = numr*1000

elif prerm == True:


numr = float(resist.strip("m"))
newr = numr*1000000
else:
newr = float(resist)

resist= float(newr)
sumaR = sumaR + resist
print("suma de resistencias: ",sumaR)

NL = input("\ningrese el numero de bobinas : ")


NL = int(NL)

print("Ingrese valor de bobinas: ")


for j in range(1, NL+1):
bobi=input()
prelm = bobi.endswith('m')
prelu = bobi.endswith('u')
preln = bobi.endswith('n')
prelp = bobi.endswith('p')
isnumel = bobi.isnumeric()
#print(type(bobi))
#print(bobi.isnumeric())
if isnumel == True:
newl = float(bobi)

if isnumel == False:
if prelm == True:
numl = float(bobi.strip("m"))
newl = numl/1000
elif prelu == True:
numl = float(bobi.strip("u"))
newl = numl/1000000

elif preln == True:


numl = float(bobi.strip("n"))
newl = numl/1000000000

elif prelp == True:


numl = float(bobi.strip("p"))
newl = numl/1000000000000

else:
newl = float(bobi)

bobi= float(newl)
xL = w*bobi
sumaL = sumaL + xL
print("Suma de reactancia inductiva xL: ",sumaL)

NC = input("\ningrese el numero de capacitores : ")


NC = int(NC)

print ("Ingrese valor de capacitores: ")


for j in range(1,NC+1):
cap=input()
precu = cap.endswith('u')
precn = cap.endswith('n')
precp = cap.endswith('p')
isnumec = cap.isnumeric()
#print(type(cap))
#print(cap.isnumeric())
if isnumec == True:
newc = float(cap)

if isnumec == False:
if precu == True:
numc = float(cap.strip("u"))
newc = numc/1000000

elif precn == True:


numc = float(cap.strip("n"))
newc = numc/1000000000

elif precp == True:


numc = float(cap.strip("p"))
newc = numc/1000000000000

else:
newc = float(cap)

cap= float(newc)
xC = 1/(w*cap)
sumaC = sumaC + xC
print("Suma de reactancia capacitiva xC: ",sumaC)

xt = sumaL - sumaC
if xt>0:
print("\nImpedancia inductiva")
print("Zt=",sumaR,"+",xt,"j")
elif xt<0:
xt=xt*-1
print("\nImpedancia capacitiva")
print("Zt=",sumaR,"-",xt,"j")
else:
print("\nImpedancia puramente resistiva")
print("Zt=",sumaR,"+",xt,"j")

Ahora presentaremos el programa pero sin agregar ningun valor determinado para
calcularlo el cual debemos de colocar todos lo numeros correspondientes :
print("CALCULADORA DE IMPEDANCIAS - CIRCUITOS EN SERIE")
print("1. Circuito RL")
print("2. Circuito RC")
print("3. Circuito RLC")
Tipo = input("Ingresar el tipo de circuito: ")
freq = input("Ingresar frecuencia a trabajar: ")
freq = int(freq)
#frecuencia angular relativa w
w = 2*3.1416*freq
sumaR = 0
sumaL = 0
sumaC = 0

if int(Tipo) == 1:
print("\nCIRCUITO RL")

NR = input("\ningrese el numero de resistencias : ")


NR = int(NR)

print("Ingrese valor de resistencias: ")


for i in range(1, NR+1):
resist=input()
resist = int(resist)
sumaR = sumaR + resist
print("suma de resistencias: ",sumaR)

NL = input("\ningrese el numero de bobinas : ")


NL = int(NL)

print("Ingrese valor de bobinas: ")


for j in range(1, NL+1):
bobi=input()
bobi = float(bobi)
xL = w*bobi
sumaL = sumaL + xL
print("Suma de reactancia inductiva xL: ",sumaL)
print("\nZt=",sumaR,"+",sumaL,"j")

if int(Tipo) == 2:
print("\nCIRCUITO RC")

NR = input("\ningrese el numero de resistencias : ")


NR = int(NR)

print("Ingrese valor de resistencias: ")


for i in range(1, NR+1):
resist=input()
resist = int(resist)
sumaR = sumaR + resist
print("suma de resistencias: ",sumaR)

NC = input("\ningrese el numero de capacitores : ")


NC = int(NC)

print ("Ingrese valor de capacitores: ")


for j in range(1,NC+1):
cap=input()
cap = float(cap)
xC = 1/(w*cap)
sumaC = sumaC + xC
print("Suma de reactancia capacitiva xC: ",sumaC)
print("\nZt=",sumaR,"-",sumaC,"j")

if int(Tipo) == 3:
print("\nCIRCUITO RLC")

NR = input("\ningrese el numero de resistencias : ")


NR = int(NR)

print("Ingrese valor de resistencias: ")


for i in range(1, NR+1):
resist=input()
resist = int(resist)
sumaR = sumaR + resist
print("suma de resistencias: ",sumaR)

NL = input("\ningrese el numero de bobinas : ")


NL = int(NL)

print("Ingrese valor de bobinas: ")


for j in range(1, NL+1):
bobi=input()
bobi = float(bobi)
xL = w*bobi
sumaL = sumaL + xL
print("Suma de reactancia inductiva xL: ",sumaL)

NC = input("\ningrese el numero de capacitores : ")


NC = int(NC)

print ("Ingrese valor de capacitores: ")


for j in range(1,NC+1):
cap=input()
cap = float(cap)
xC = 1/(w*cap)
sumaC = sumaC + xC
print("Suma de reactancia capacitiva xC: ",sumaC)

xt = sumaL - sumaC
if xt>0:
print("\nImpedancia inductiva")
print("Zt=",sumaR,"+",xt,"j")
elif xt<0:
print("\nImpedancia capacitiva")
print("Zt=",sumaR,xt,"j")
else:
print("\nImpedancia puramente resistiva")
print("Zt=",sumaR,"+",xt,"j")

 CONCLUSIONES

 Python es un programa eficaz para resolver problemas de diversa


manera, solo conociendo como programar puedes facilitar muchos
problemas en diferentes ámbitos, en este caso, la ingeniería
electrónica.
 La impedancia es un parámetro muy importante para el análisis de
circuitos en corriente alterna y este programa nos permite hallarlo en
cuestión de segundos.
 Tenemos un programa que ha logrado la conversión de prefijos
como se pudo apreciar. Pero este código se puede acoplar a otro
con el fin de que el procesamiento de información se optimice a
continuación vamos a colocar imágenes de una aplicación de este
código a otro.

También podría gustarte