74 lines
1.7 KiB
Python
74 lines
1.7 KiB
Python
import numpy as np
|
|
import genCurvas as gc
|
|
import motorcad as mc
|
|
import os
|
|
|
|
def log(msg):
|
|
rutaLog = "results/log.txt"
|
|
|
|
with open(rutaLog, 'a') as f:
|
|
f.write(msg + '\n')
|
|
print(msg)
|
|
|
|
if __name__ == '__main__':
|
|
|
|
os.system('cls')
|
|
archivoEnsayos = "Ensayos.xlsx"
|
|
archivoCurvas = "PLACond.mdb"
|
|
material = "PLACond"
|
|
|
|
|
|
E_obj, f_obj = gc.valores_objetivo(archivoEnsayos, material)
|
|
|
|
log(f"La tension inducida objetivo son {E_obj} V")
|
|
|
|
offset = 0
|
|
|
|
errorObjetivo = 0.01
|
|
|
|
flag = False
|
|
iteration = 0
|
|
|
|
while flag == False:
|
|
|
|
vTension = []
|
|
|
|
gc.generar_curva(offset, archivoCurvas)
|
|
|
|
log("-----------------------")
|
|
print(f"Iniciando iteración {iteration}")
|
|
|
|
for i in np.arange(len(E_obj)):
|
|
|
|
error = []
|
|
|
|
corriente = 0
|
|
frecuencia = f_obj[i]
|
|
|
|
mcadIteration = f"{iteration}.{i}"
|
|
print(f"Calculando punto de operación: {mcadIteration}")
|
|
|
|
tension = mc.simularMCAD(corriente, frecuencia, material, mcadIteration)
|
|
|
|
vTension.append(tension)
|
|
|
|
vTension = np.array(vTension)
|
|
|
|
error = vTension/E_obj
|
|
|
|
error = np.mean(error)
|
|
|
|
log(f"El resultado de la iteración {iteration} es:")
|
|
log(f"- E_calculada = {vTension}")
|
|
log(f"- E_obj = {E_obj}")
|
|
log(f"- Error = {error}")
|
|
|
|
flag, offset, delta = gc.logica_offset(offset, error, errorObjetivo)
|
|
|
|
if flag:
|
|
log(f'Offset final es de {offset}')
|
|
else:
|
|
log(f"La delta empleada para la siguiente iteración será {delta}")
|
|
log(f"El offset total es de {offset}")
|
|
|
|
iteration = iteration + 1 |