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