hay que ajustar valores para ver como se comporta realmente, los resultados son bastante jujos
This commit is contained in:
parent
26186fc38e
commit
3a87c4e4bd
@ -1,3 +1,73 @@
|
||||
from funcionesSimELectrica import *
|
||||
from funcionesSimFisica import *
|
||||
from scipy.integrate import cumulative_trapezoid as integrar
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
|
||||
__author__ = 'Oscar Suescun'
|
||||
|
||||
lts_path = "C:/Users/osuescuneli/AppData/Local/Programs/ADI/LTspice/LTspice.exe"
|
||||
|
||||
'''
|
||||
Esto sirve para hacer debug del sistema y ver como se comportan
|
||||
las funciones para la
|
||||
|
||||
'''
|
||||
if __name__ == '__main__':
|
||||
tiempoSimulacion = 20e-3
|
||||
tiempoSwitch = 1e-6
|
||||
tiempoMos = 1e-3
|
||||
|
||||
numeroModulos = 1
|
||||
|
||||
longitudBobina = 53.21e-3 # m
|
||||
diametroInteriorBobina = 6.035-3 * 2 # m
|
||||
espirasBobina = 800
|
||||
diametroCuBobina = 0.8e-3 # m
|
||||
|
||||
longitudVastago = 96e-3 # m
|
||||
diametroVastago = 3.045e-3 * 2 # m
|
||||
|
||||
Tension = 30 # V
|
||||
Capacitancia = 500e-6 # F
|
||||
|
||||
masa = calcular_masa(diametroVastago, longitudVastago)
|
||||
anguloDisparo = 40
|
||||
|
||||
|
||||
resistencia = calcular_resistencia(diametroCuBobina, longitudBobina,
|
||||
diametroInteriorBobina, espirasBobina)
|
||||
|
||||
reluctancia = np.mean(reluctancia_funcX(longitudVastago, diametroVastago,
|
||||
longitudBobina, diametroInteriorBobina,
|
||||
diametroCuBobina, espirasBobina))
|
||||
|
||||
inductancia = espirasBobina**2 / reluctancia
|
||||
|
||||
resultadosSim = simular(Tension, resistencia,
|
||||
inductancia, Capacitancia, lts_path,
|
||||
tSim= tiempoSimulacion,
|
||||
toff_sw= tiempoSwitch,
|
||||
ton_mos= tiempoMos)
|
||||
|
||||
tiempo = resultadosSim['tiempo'][resultadosSim['tiempo'] >= tiempoMos]
|
||||
|
||||
dt = np.full(len(tiempo), tiempoMos)
|
||||
tiempo -= dt
|
||||
|
||||
corriente = resultadosSim['iBob'][resultadosSim['tiempo'] >= tiempoMos]
|
||||
|
||||
fuerzaMag = fuerza_magnetica(corriente, reluctancia,
|
||||
espirasBobina, diametroVastago)
|
||||
|
||||
aVastago = aceleracion(masa, anguloDisparo, fuerzaMag)
|
||||
vVastago = integrar(aVastago, initial=0)
|
||||
xVastago = integrar(vVastago, initial=0)
|
||||
|
||||
plt.figure()
|
||||
plt.plot(tiempo * 1e3, xVastago)
|
||||
plt.grid()
|
||||
plt.legend()
|
||||
plt.show()
|
@ -83,6 +83,7 @@ def dibujar(resultado):
|
||||
plt.plot(resultado['tiempo']*1e3, resultado['vCap'], label='Tension Cap [V]')
|
||||
plt.plot(resultado['tiempo']*1e3, resultado['vBob'], label='Tension Bobina [V]')
|
||||
plt.plot(resultado['tiempo']*1e3, resultado['iBob'], label='Corriente Bobina [A]')
|
||||
plt.xlabel("Tiempo [ms]")
|
||||
plt.grid()
|
||||
plt.legend()
|
||||
plt.show()
|
||||
|
@ -6,10 +6,12 @@ global muFeRel
|
||||
global kDisp
|
||||
global cteRoz
|
||||
global g
|
||||
global resCu
|
||||
|
||||
densidadHierro = 7800 # kg/m3
|
||||
muVacio = 4*np.pi*1e-7
|
||||
muFeRel = 5000
|
||||
resCu = 1.7e-8 # ohm/m
|
||||
kDisp = 2 # cte de dispersion
|
||||
cteRoz = 0.1
|
||||
g = 9.8
|
||||
@ -78,16 +80,32 @@ def fuerza_magnetica(corriente, reluctancia, espiras, diamFe):
|
||||
|
||||
secFe = np.pi * diamFe**2 / 4
|
||||
|
||||
return 0.5 * b**2 * secFe / muVacio
|
||||
return np.sign(corriente) * 0.5 * b**2 * secFe / muVacio
|
||||
|
||||
def aceleracion(masa, anguloDisparo, fuerzaMagnetica):
|
||||
|
||||
anguloDisparo = anguloDisparo * np.pi / 180
|
||||
|
||||
return fuerzaMagnetica/masa - g*(cteRoz * np.cos(anguloDisparo) + np.sen(anguloDisparo))
|
||||
return fuerzaMagnetica/masa - g*(cteRoz * np.cos(anguloDisparo) + np.sin(anguloDisparo))
|
||||
|
||||
|
||||
def calcular_resistencia(diamCu, longC, diamC, espiras):
|
||||
|
||||
espirasCapa = int(longC/diamCu)
|
||||
nCapasEnteras = int(espiras/espirasCapa) # solo capas completametne llenas
|
||||
espirasUltimaCapa = espiras - espirasCapa * nCapasEnteras # las espiras de la ultima capa
|
||||
|
||||
longitud = 0
|
||||
|
||||
for i in range(nCapasEnteras): longitud += espirasCapa*np.pi*(diamC + (1+i)*diamCu) # Calculo longitud de total de las capas llenas
|
||||
|
||||
longitud += espirasUltimaCapa*np.pi*(diamC + (1 + nCapasEnteras)*diamCu)
|
||||
|
||||
seccionCu = np.pi * diamCu**2 / 4
|
||||
|
||||
return resCu * longitud / seccionCu
|
||||
|
||||
def calcular_masa(diamFe, longFe): return np.pi * diamFe**2 / 4 * longFe * densidadHierro
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
@ -96,10 +114,11 @@ if __name__ == '__main__':
|
||||
|
||||
longitudBobina = 53.21e-3 # m
|
||||
diametroInteriorBobina = 6.035-3 * 2 # m
|
||||
espirasBobina = 500
|
||||
espirasBobina = 600
|
||||
diametroCuBobina = 0.8e-3 # m
|
||||
|
||||
longitudVastago = 96e-3 # m
|
||||
diametroVastago = 3.045e-3 * 2 # m
|
||||
|
||||
|
||||
|
||||
|
@ -13,13 +13,13 @@ R1 condensador V1 {R}
|
||||
.lib C:\Users\osuescuneli\AppData\Local\LTspice\lib\cmp\standard.mos
|
||||
.tran 0 {tsim} 0
|
||||
.Model SW SW(Ron=1m Roff=100Meg Vt = 5)
|
||||
.param tsim 15m
|
||||
.param toff_sw 25u
|
||||
.param ton_mos 50u
|
||||
.param R 4
|
||||
.param tsim 20m
|
||||
.param toff_sw 1u
|
||||
.param ton_mos 1m
|
||||
.param R 3.42142
|
||||
.param C 500u
|
||||
.param L 100u
|
||||
.param V 150
|
||||
.param L 13.8963m
|
||||
.param V 30
|
||||
.param delta tsim-ton_mos
|
||||
.backanno
|
||||
.end
|
||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user