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 [ ]: