fluxcontrol/fluxcontrol.py
2025-04-01 17:07:40 +02:00

66 lines
1.5 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__':
archivoEnsayos = "Ensayos.xlsx"
archivoCurvas = "PLACond.mdb"
material = "PLACond"
E_obj, f_obj = gc.valores_objetivo(archivoEnsayos, material)
vTension = []
log(f"La tension inducida objetivo son {E_obj} V")
offset = 0
errorObjetivo = 0.01
flag = False
iteration = 0
while flag == False:
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)
error.append(tension/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}")
log("-----------------------")
flag, offset = gc.logica_offset(offset, error, errorObjetivo)
iteration = iteration + 1