Implementacion de funciones mecanicas
This commit is contained in:
parent
f045c115d8
commit
26186fc38e
3
src/debug_mecanica_disparo.py
Normal file
3
src/debug_mecanica_disparo.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from funcionesSimELectrica import *
|
||||||
|
from funcionesSimFisica import *
|
||||||
|
|
@ -71,7 +71,8 @@ def simular(tensionCap, Rtotal, Lbobina, Ctotal, lts_path, tSim = 100e-3, toff_s
|
|||||||
'tiempo': np.array(raw.get_trace('time')),
|
'tiempo': np.array(raw.get_trace('time')),
|
||||||
'vCap': np.array(raw.get_trace('V(condensador)')),
|
'vCap': np.array(raw.get_trace('V(condensador)')),
|
||||||
'vBob': np.array(raw.get_trace('V(v1)')) - np.array(raw.get_trace('V(v2)')),
|
'vBob': np.array(raw.get_trace('V(v1)')) - np.array(raw.get_trace('V(v2)')),
|
||||||
'iBob': np.array(raw.get_trace('I(L1)'))
|
'iBob': np.array(raw.get_trace('I(L1)')),
|
||||||
|
'iMos' : np.array(raw.get_trace('Id(M1)'))
|
||||||
}
|
}
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
print(f'Error al leer señal del archivo .raw: {e}')
|
print(f'Error al leer señal del archivo .raw: {e}')
|
||||||
@ -79,9 +80,9 @@ def simular(tensionCap, Rtotal, Lbobina, Ctotal, lts_path, tSim = 100e-3, toff_s
|
|||||||
|
|
||||||
def dibujar(resultado):
|
def dibujar(resultado):
|
||||||
plt.figure()
|
plt.figure()
|
||||||
plt.plot(resultado['tiempo'], resultado['vCap'], label='Tension Cap [V]')
|
plt.plot(resultado['tiempo']*1e3, resultado['vCap'], label='Tension Cap [V]')
|
||||||
plt.plot(resultado['tiempo'], resultado['vBob'], label='Tension Bobina [V]')
|
plt.plot(resultado['tiempo']*1e3, resultado['vBob'], label='Tension Bobina [V]')
|
||||||
plt.plot(resultado['tiempo'], resultado['iBob'], label='Corriente Bobina [A]')
|
plt.plot(resultado['tiempo']*1e3, resultado['iBob'], label='Corriente Bobina [A]')
|
||||||
plt.grid()
|
plt.grid()
|
||||||
plt.legend()
|
plt.legend()
|
||||||
plt.show()
|
plt.show()
|
||||||
@ -91,10 +92,10 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
lts_path = "C:/Users/osuescuneli/AppData/Local/Programs/ADI/LTspice/LTspice.exe"
|
lts_path = "C:/Users/osuescuneli/AppData/Local/Programs/ADI/LTspice/LTspice.exe"
|
||||||
|
|
||||||
Tension = 50
|
Tension = 150
|
||||||
Resistencia = 1.942
|
Resistencia = 4
|
||||||
Inductancia = 11e-6
|
Inductancia = 100e-6
|
||||||
Capacitancia = 1e-3
|
Capacitancia = 500e-6
|
||||||
|
|
||||||
tiempoSimulacion = 15e-3
|
tiempoSimulacion = 15e-3
|
||||||
tiempoSwitch = 25e-6
|
tiempoSwitch = 25e-6
|
105
src/funcionesSimFisica.py
Normal file
105
src/funcionesSimFisica.py
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
import numpy as np
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
global muVacio
|
||||||
|
global muFeRel
|
||||||
|
global kDisp
|
||||||
|
global cteRoz
|
||||||
|
global g
|
||||||
|
|
||||||
|
densidadHierro = 7800 # kg/m3
|
||||||
|
muVacio = 4*np.pi*1e-7
|
||||||
|
muFeRel = 5000
|
||||||
|
kDisp = 2 # cte de dispersion
|
||||||
|
cteRoz = 0.1
|
||||||
|
g = 9.8
|
||||||
|
|
||||||
|
__author__ = 'Oscar Suescun'
|
||||||
|
|
||||||
|
def calcular_diametro_ext(longitudBobina, diametroCuBobina, espirasBobina, diametroInteriorBobina):
|
||||||
|
|
||||||
|
espirasCapa = int(longitudBobina/diametroCuBobina)
|
||||||
|
numeroCapas = int(espirasBobina/espirasCapa +.5)
|
||||||
|
|
||||||
|
return 2 * numeroCapas * diametroCuBobina + diametroInteriorBobina
|
||||||
|
|
||||||
|
def reluctancia_funcX(longFe, diamFe, longC, diamCint, diamCu, espiras):
|
||||||
|
'''
|
||||||
|
Esta funcion devuelve un vector que contenga la reluctancia total en
|
||||||
|
funcion de la distancia que recorre el vastago dentro de la bobina.
|
||||||
|
|
||||||
|
Para esto se utiliza un vector de 0 -> longC con un estep de longC/100
|
||||||
|
|
||||||
|
Entrada:
|
||||||
|
- longFe --> longitud del vastago
|
||||||
|
- diamFe --> diametro del vastago
|
||||||
|
- longC --> longitud de la bobina
|
||||||
|
- diamCint --> diametro interior de la bobina
|
||||||
|
- diamCu --> diametro del hilo de cobre
|
||||||
|
- espiras --> numero de espiras en la bobina
|
||||||
|
|
||||||
|
Salida:
|
||||||
|
- relTotal --> devuelve un vector con la reluctancia total en
|
||||||
|
funcion de la distancia recorrida en la bobina.
|
||||||
|
|
||||||
|
'''
|
||||||
|
|
||||||
|
diamCext = calcular_diametro_ext(longC, diamCu, espiras, diamCint)
|
||||||
|
|
||||||
|
seccionFe = (np.pi * diamFe**2) / 4
|
||||||
|
seccionSc = (np.pi * diamCext**2) / 4
|
||||||
|
seccionDisp = (np.pi * (kDisp * diamCint)**2) / 4
|
||||||
|
|
||||||
|
x = np.arange(0,longC + longC/100, longC/100)
|
||||||
|
longFe = np.full(len(x), longFe)
|
||||||
|
longC = np.full(len(x), longC)
|
||||||
|
|
||||||
|
|
||||||
|
relFe = longFe / (muVacio * muFeRel * seccionFe)
|
||||||
|
relDisp = longC / (muVacio * seccionDisp)
|
||||||
|
relAire = (longC - x) / (muVacio * seccionSc)
|
||||||
|
relFlujo = (longC + longFe - x) / (muVacio * seccionDisp)
|
||||||
|
|
||||||
|
relTotal = relFe + relDisp + relAire + relFlujo
|
||||||
|
|
||||||
|
return relTotal
|
||||||
|
|
||||||
|
|
||||||
|
def induccion(corriente, reluctancia, espiras, diamFe):
|
||||||
|
flujo = espiras * corriente / reluctancia
|
||||||
|
|
||||||
|
secFe = np.pi * diamFe**2 / 4
|
||||||
|
|
||||||
|
return flujo / secFe
|
||||||
|
|
||||||
|
def fuerza_magnetica(corriente, reluctancia, espiras, diamFe):
|
||||||
|
|
||||||
|
b = induccion(corriente, reluctancia, espiras, diamFe)
|
||||||
|
|
||||||
|
secFe = np.pi * diamFe**2 / 4
|
||||||
|
|
||||||
|
return 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))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
numeroModulos = 1
|
||||||
|
|
||||||
|
longitudBobina = 53.21e-3 # m
|
||||||
|
diametroInteriorBobina = 6.035-3 * 2 # m
|
||||||
|
espirasBobina = 500
|
||||||
|
diametroCuBobina = 0.8e-3 # m
|
||||||
|
|
||||||
|
longitudVastago = 96e-3 # m
|
||||||
|
diametroVastago = 3.045e-3 * 2 # m
|
||||||
|
|
||||||
|
|
@ -16,10 +16,10 @@ R1 condensador V1 {R}
|
|||||||
.param tsim 15m
|
.param tsim 15m
|
||||||
.param toff_sw 25u
|
.param toff_sw 25u
|
||||||
.param ton_mos 50u
|
.param ton_mos 50u
|
||||||
.param R 1.942
|
.param R 4
|
||||||
.param C 1m
|
.param C 500u
|
||||||
.param L 11u
|
.param L 100u
|
||||||
.param V 50
|
.param V 150
|
||||||
.param delta tsim-ton_mos
|
.param delta tsim-ton_mos
|
||||||
.backanno
|
.backanno
|
||||||
.end
|
.end
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user