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
	 Oscar Suescun Elizalde
						Oscar Suescun Elizalde