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) 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) error.append(tension/E_obj) error = np.mean(error) log(f"El resultado de la iteración {iteration} es:") log(f"- E_calculada = {tension}") log(f"- E_obj = {E_obj}") log(f"- Error = {error}") log("-----------------------") flag, offset = gc.logica_offset(offset, error, errorObjetivo) iteration = iteration + 1