- Posts: 7
Pvwattsv8 results in SAM and PySAM
- jbonilla
- Topic Author
Less
More
23 Jun 2023 06:22 #12247
by jbonilla
Pvwattsv8 results in SAM and PySAM was created by jbonilla
Hello,
I’m getting different results in SAM and PySAM. This is a nexample for Pvwattsv8 with my own custom weather file. I only changed in SAM the system capacity to 100 MW, I generate the code to PySAM JSON and import it in Python. This works fine, with minor differences.
SAM results
But when I change the system_capacity to 500 MW, I get quite different values for the LCOE nominal.
SAM results
This is the Python code.
Am I missing something in the Python code? Thanks.Best regards,
Javier.
I’m getting different results in SAM and PySAM. This is a nexample for Pvwattsv8 with my own custom weather file. I only changed in SAM the system capacity to 100 MW, I generate the code to PySAM JSON and import it in Python. This works fine, with minor differences.
SAM results
Code:
PySAM results
----------------------
PV capacity: 100.0 MW
PV power: 186,487,766 kWh
PV capacity factor: 21.3 %
PV LCOE nominal: 4.9 c$/kWh
Code:
PySAM results
----------------------
PV capacity: 500.0 MW
PV power: 932,435,679 kWh
PV capacity factor: 21.3 %
PV LCOE nominal: 2.01 c$/kWh
Code:
import json
import PySAM.Grid as Grid
import PySAM.Pvwattsv8 as Pvwattsv8
import PySAM.Singleowner as Singleowner
import PySAM.Utilityrate5 as UtilityRate
def execute_modules(modules):
for m in modules:
m.execute()
def load_modules(path, file_names, modules, execute=False):
for f, m in zip(file_names, modules):
with open(f'{path}/{f}.json', 'r') as file:
data = json.load(file)
for k, v in data.items():
if k != "number_inputs":
m.value(k, v)
if execute:
execute_modules(modules)
def load_pv(path, file_names, execute=True) -> [Pvwattsv8, Grid, UtilityRate, Singleowner]:
pv = Pvwattsv8.new()
pv_grid = Grid.from_existing(pv)
pv_ur = UtilityRate.from_existing(pv)
pv_so = Singleowner.from_existing(pv)
modules = [pv, pv_grid, pv_ur, pv_so]
load_modules(path, file_names, modules, execute)
return modules
if __name__ == '__main__':
# PySAM JSON path and files
pv_path = '/home/javi/Documents/PycharmProjects/IDA_2023/data/PV_watt_json'
pv_file_names = ['untitled_pvwattsv8', 'untitled_grid', 'untitled_utilityrate5', 'untitled_singleowner']
# Load PV modules, execute and show results
[pv, pv_grid, pv_ur, pv_so] = load_pv(pv_path, pv_file_names)
print(f'PV capacity: {pv.value("system_capacity")/1000:,} MW')
print(f'PV power: {round(sum(pv.Outputs.gen)):,} kWh')
print(f'PV capacity factor: {round(pv.Outputs.capacity_factor, 1)} %')
print(f'PV LCOE nominal: {round(pv_so.Outputs.lcoe_nom, 2)} c$/kWh')
print('\n')
# Change capacity
capacity = 500 * 1000 # kW
pv.value('system_capacity', capacity)
# Execute and show results
execute_modules([pv, pv_grid, pv_ur, pv_so])
print(f'PV capacity: {pv.value("system_capacity")/1000:,} MW')
print(f'PV power: {round(sum(pv.Outputs.gen)):,} kWh')
print(f'PV capacity factor: {round(pv.Outputs.capacity_factor, 1)} %')
print(f'PV LCOE nominal: {round(pv_so.Outputs.lcoe_nom, 2)} c$/kWh')
Javier.
Please Log in or Create an account to join the conversation.
- pgilman
Less
More
- Posts: 5447
30 Jun 2023 09:13 #12268
by pgilman
Replied by pgilman on topic Pvwattsv8 results in SAM and PySAM
Hi Javier,
Please attach or post a copy of your Python script with correct indentation and a copy of the .sam file you are using for the comparison if you would like me to help troubleshoot.
Best regards,
Paul.
Please attach or post a copy of your Python script with correct indentation and a copy of the .sam file you are using for the comparison if you would like me to help troubleshoot.
Best regards,
Paul.
Please Log in or Create an account to join the conversation.
- jbonilla
- Topic Author
Less
More
- Posts: 7
03 Jul 2023 05:48 #12271
by jbonilla
Replied by jbonilla on topic Pvwattsv8 results in SAM and PySAM
Hi Paul,
I provide a link where you can find the Python code, the SAM project and the weather CSV file, thanks.
Best regards,
Javier.
I provide a link where you can find the Python code, the SAM project and the weather CSV file, thanks.
Best regards,
Javier.
Please Log in or Create an account to join the conversation.
- jbonilla
- Topic Author
Less
More
- Posts: 7
25 Jul 2023 01:13 #12348
by jbonilla
Replied by jbonilla on topic Pvwattsv8 results in SAM and PySAM
Hi Paul,
Did you have time to have a look at this? Thanks.
Best regards,
Javier.
Did you have time to have a look at this? Thanks.
Best regards,
Javier.
Please Log in or Create an account to join the conversation.
- pgilman
Less
More
- Posts: 5447
27 Jul 2023 15:19 #12355
by pgilman
Replied by pgilman on topic Pvwattsv8 results in SAM and PySAM
Hi Javier,
Thanks for the reminder.
I am getting the same results from PySAM 4.2.0 and SAM 2012.11.21 r3 SSC 280. It is possible the differences you are seeing are because the PySAM and SAM versions you are using are not consistent. To see what versions of SAM go with PySAM versions, go to the Releases list on GitHub: github.com/NREL/pysam/releases .
Best regards,
Paul.
Thanks for the reminder.
I am getting the same results from PySAM 4.2.0 and SAM 2012.11.21 r3 SSC 280. It is possible the differences you are seeing are because the PySAM and SAM versions you are using are not consistent. To see what versions of SAM go with PySAM versions, go to the Releases list on GitHub: github.com/NREL/pysam/releases .
Best regards,
Paul.
Please Log in or Create an account to join the conversation.
- jbonilla
- Topic Author
Less
More
- Posts: 7
28 Jul 2023 00:55 #12357
by jbonilla
Replied by jbonilla on topic Pvwattsv8 results in SAM and PySAM
Hi Paul,
Thanks for checking. I'm getting same results as yours. The issue is the nominal LCOE provided by SAM is 4.89 c$/kWh, whereas it's 2.01 c$/kWh in PySAM, for the 500 MW PV plant, The 100 MW PV plant yields the same results in SAM and PySAM.
Best regards,
Javier.
Thanks for checking. I'm getting same results as yours. The issue is the nominal LCOE provided by SAM is 4.89 c$/kWh, whereas it's 2.01 c$/kWh in PySAM, for the 500 MW PV plant, The 100 MW PV plant yields the same results in SAM and PySAM.
Best regards,
Javier.
Please Log in or Create an account to join the conversation.
Moderators: pgilman