In [4]:
import json
import PySAM.Pvsamv1 as pvsamv1
import PySAM.Windpower as windpower
import PySAM.Battery as battery
from PySAM.Hybrids import HybridSystem
# Crear el sistema híbrido pasando los módulos como clases (NO instancias)
m = HybridSystem([pvsamv1, windpower, battery], 'singleowner')
m.default('PhotovoltaicWindBatteryHybridSingleOwner')
# Cargar recursos solares y eólicos
m.pv.SolarResource.solar_resource_file = "C:/Users/acostes/SAM Downloaded Weather Files/39.704_-2.795_39.704_-2.795_nsrdb-msg-v1-0-0-tmy_60_tmy.csv"
m.wind.Resource.wind_resource_filename = "C:/Users/acostes/Downloads/Base datos Vortex 19032025.csv"
# Cargar JSON de configuración
json_dir = "C:/Users/acostes/OneDrive - Tecnicas Reunidas, S.A/DOCUMENTOS DE MI ORDENADOR/TFM/pySAM/JSON FILES/intento 0704.json"
with open(json_dir, 'r') as file:
data = json.load(file)
input_data = data["input"]
successful_params = 0
failed_params = []
# Asignar parámetros a cada módulo
for module_name, params in input_data.items():
if module_name in ["compute_modules", "number_metrics", "number_compute_modules"]:
continue # ignorar metadatos
try:
mod = getattr(m, module_name)
for param, value in params.items():
try:
setattr(mod, param, value)
successful_params += 1
except Exception:
failed_params.append(f"{module_name}.{param}")
except AttributeError:
print(f"Módulo '{module_name}' no reconocido por HybridSystem")
# Mostrar resumen de la carga
print(f"\n Carga completada:")
print(f"- Parámetros asignados correctamente: {successful_params}")
print(f"- Parámetros no reconocidos: {len(failed_params)}")
if failed_params:
print(" (Estos parámetros no se pudieron asignar):")
for param in failed_params:
print(f" - {param}")
# Ejecutar la simulación
m.execute()
print("\n Simulación híbrida ejecutada correctamente.\n")
# Mostrar resultados
print(f" Producción PV anual (kWh): {m.pv.Outputs.annual_energy}")
print(f" Producción eólica anual (kWh): {m.wind.Outputs.annual_energy}")
print(f" Eficiencia de ida y vuelta de batería (%): {m.battery.Outputs.average_battery_roundtrip_efficiency}")
print(f" Energía total enviada a la red (kWh): {m._grid.SystemOutput.annual_energy}")
print(f" Valor actual neto del proyecto (NPV): {m.singleowner.Outputs.project_return_aftertax_npv}")
Módulo 'windpower' no reconocido por HybridSystem Módulo 'pvsamv1' no reconocido por HybridSystem Módulo 'hybrid' no reconocido por HybridSystem Módulo 'number table entries' no reconocido por HybridSystem Carga completada: - Parámetros asignados correctamente: 125 - Parámetros no reconocidos: 0 Simulación híbrida ejecutada correctamente. Producción PV anual (kWh): 195913595.082307 Producción eólica anual (kWh): 409916307.2058005 Eficiencia de ida y vuelta de batería (%): 91.05755943497847 Energía total enviada a la red (kWh): 601926860.4852593 Valor actual neto del proyecto (NPV): -110339789.05061632
In [ ]: