fluxcontrol/fluxcontrol.py
Oscar Suescun Elizalde bc813743af cambios menores
2025-04-02 15:21:39 +02:00

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