diff --git a/deploy/runtime/startup.lk b/deploy/runtime/startup.lk index 4969819311..792082d868 100644 --- a/deploy/runtime/startup.lk +++ b/deploy/runtime/startup.lk @@ -159,7 +159,7 @@ function setup_pages_battery_cell_and_system(is_reopt,is_btm) {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', - ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_btm', 'bin_name'='Battery' } ); + ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); } elseif( is_btm ) { @@ -171,7 +171,7 @@ function setup_pages_battery_cell_and_system(is_reopt,is_btm) {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', - ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_btm', 'bin_name'='Battery' } ); + ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); } else // fom has different help id { @@ -183,7 +183,7 @@ function setup_pages_battery_cell_and_system(is_reopt,is_btm) {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', - ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_fom', 'bin_name'='Battery' } ); + ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); } } @@ -1542,7 +1542,7 @@ addpage( [[ { 'name'='Battery None', 'caption'='No Battery'}], { 'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, { 'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable' ]], - { 'sidebar'='Battery Storage', 'help'='battery-storage/battery_storage_btm', 'exclusive_var'='en_batt'} ); + { 'sidebar'='Battery Storage', 'help'='battery-storage/battery_storage', 'exclusive_var'='en_batt'} ); addpage( [[ {'name'='Battery Dispatch Peak Shaving BTM', 'caption'='Peak Shaving'} ], [ {'name'='Battery Dispatch Grid Power Targets', 'caption'='Grid Power Targets'} ], [ {'name'='Battery Dispatch Battery Power Targets', 'caption'='Battery Power Targets'}], @@ -1604,7 +1604,7 @@ addpage( [[ { 'name'='Battery None','caption'='No Battery'}], { 'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, { 'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable' ]], - { 'sidebar'='Battery Storage', 'help'='battery-storage/battery_storage_fom', 'exclusive_var'='en_batt'} ); + { 'sidebar'='Battery Storage', 'help'='battery-storage/battery_storage', 'exclusive_var'='en_batt'} ); addpage( [[ { 'name'='Battery Dispatch Automated FOM', 'caption'='Automated'} ], [ { 'name'='Battery Dispatch PV Smoothing', 'caption'='PV Smoothing'} ], [ { 'name'='Battery Dispatch Custom Time Series', 'caption'='Custom Time Series'} ], @@ -3214,7 +3214,7 @@ addpage( [[{'name'='AA Empty', 'caption'='Fixed Output'}], [{'name'='Fuel Cell D addpage( [[ 'Fuel Cell Costs Hybrid' ]], { 'sidebar'='Fuel Cell Installation Costs', 'help'='installation-costs/cc_fuel_cell', 'bin_name'='FuelCell' } ); addpage( [[ 'Operating Costs Fuel Cell Hybrid' ]], { 'sidebar'='Fuel Cell Operating Costs', 'help'='operating-costs/oc_fuel_cell', 'bin_name'='FuelCell' } ); // battery -addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_fom', 'bin_name'='Battery' } ); +addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Life Cycle Calendar', 'caption'='Calendar and Cycle Degradation'}], [{'name'='Battery Life Empty 1','caption'='Li-on NMC/Graphite Degradation'}], [{'name'='Battery Life Empty 2','caption'='Li-ion LMO/LTO Degradation'}]], {'sidebar'='Battery Life', 'help'='battery-storage/battery_life' , 'exclusive_var' = 'batt_life_excl', 'exclusive_header_pages' = ['Battery Replacements','Battery Life Options' ], 'exclusive_tabs' = true, 'exclusive_hide' = true, 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Dispatch Automated FOM', 'caption'='Automated'} ], [{'name'='Battery Dispatch PV Smoothing', 'caption'='System Smoothing'}], [ {'name'='Battery Dispatch Custom Time Series', 'caption'='Custom Time Series'} ], [ {'name'='Battery Dispatch Manual', 'caption'='Manual'}] ], { 'sidebar'='Battery Dispatch', 'help'='battery-storage/battery_dispatch_fom', 'exclusive_var' = 'batt_dispatch_excl', 'exclusive_header_pages' = ['Battery Dispatch Common', 'Battery Dispatch Options FOM'], 'exclusive_tabs'=true, 'exclusive_hide'=true, 'bin_name'='Battery'} ); addpage( [[ 'Standalone Battery Costs'/*, 'Battery Enable' set on battery dispatch automated fom*/ ]], { 'sidebar'='Battery Installation Costs', 'help'='installation-costs/cc_standalone_battery', 'bin_name'='Battery' } ); @@ -3287,7 +3287,7 @@ addpage( [[ {'name'='AA Empty', 'caption'='Fixed Output'} ], [ {'name'='AA Empty addpage( [[ 'Fuel Cell Costs Hybrid' ]], { 'sidebar'='Fuel Cell Installation Costs', 'help'='installation-costs/cc_fuel_cell', 'bin_name'='FuelCell' } ); addpage( [[ 'Operating Costs Fuel Cell Hybrid' ]], { 'sidebar'='Fuel Cell Operating Costs', 'help'='operating-costs/oc_fuel_cell', 'bin_name'='FuelCell' } ); // battery -addpage( [[ 'Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_btm', 'bin_name'='Battery' } ); +addpage( [[ 'Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Life Cycle Calendar', 'caption'='Calendar and Cycle Degradation'}], [{'name'='Battery Life Empty 1','caption'='Li-on NMC/Graphite Degradation'}], [{'name'='Battery Life Empty 2','caption'='Li-ion LMO/LTO Degradation'}]], {'sidebar'='Battery Life', 'help'='battery-storage/battery_life' , 'exclusive_var' = 'batt_life_excl', 'exclusive_header_pages' = ['Battery Replacements','Battery Life Options' ], 'exclusive_tabs' = true, 'exclusive_hide' = true, 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Dispatch Peak Shaving BTM', 'caption'='Peak Shaving'} ], [ {'name'='Battery Dispatch Grid Power Targets', 'caption'='Grid Power Targets'} ], [ {'name'='Battery Dispatch Battery Power Targets', 'caption'='Battery Power Targets'}], [ {'name'='Battery Dispatch Manual', 'caption'='Manual'}], [ {'name'='Battery Dispatch Retail Rate', 'caption'='Retail Rate'} ], [ {'name'='Battery Dispatch Self Consumption', 'caption'='Self Consumption'} ]], { 'sidebar'='Battery Dispatch', 'help'='battery-storage/battery_dispatch_btm', 'exclusive_var' = 'batt_dispatch_excl', 'exclusive_header_pages' = ['Battery Dispatch Common', 'Battery Dispatch Options BTM'], 'exclusive_tabs'=true, 'exclusive_hide'=true, 'bin_name'='Battery' } ); addpage( [[ 'Standalone Battery Costs', 'Battery Enable' ]],{ 'sidebar'='Battery Installation Costs', 'help'='installation-costs/cc_standalone_battery', 'bin_name'='Battery' } ); @@ -3501,7 +3501,7 @@ addpage( [[{'name'='AA Empty', 'caption'='Fixed Output'}], [{'name'='Fuel Cell D addpage( [[ 'Fuel Cell Costs Hybrid' ]], { 'sidebar'='Fuel Cell Installation Costs', 'help'='installation-costs/cc_fuel_cell', 'bin_name'='FuelCell' } ); addpage( [[ 'Operating Costs Fuel Cell Hybrid' ]], { 'sidebar'='Fuel Cell Operating Costs', 'help'='operating-costs/oc_fuel_cell', 'bin_name'='FuelCell' } ); // battery -addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_fom', 'bin_name'='Battery' } ); +addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Life Cycle Calendar', 'caption'='Calendar and Cycle Degradation'}], [{'name'='Battery Life Empty 1','caption'='Li-on NMC/Graphite Degradation'}], [{'name'='Battery Life Empty 2','caption'='Li-ion LMO/LTO Degradation'}]], {'sidebar'='Battery Life', 'help'='battery-storage/battery_life' , 'exclusive_var' = 'batt_life_excl', 'exclusive_header_pages' = ['Battery Replacements','Battery Life Options' ], 'exclusive_tabs' = true, 'exclusive_hide' = true, 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Dispatch Automated FOM', 'caption'='Automated'} ], [{'name'='Battery Dispatch PV Smoothing', 'caption'='PV Smoothing'}], [ {'name'='Battery Dispatch Custom Time Series', 'caption'='Custom Time Series'} ], [ {'name'='Battery Dispatch Manual', 'caption'='Manual'}] ], { 'sidebar'='Battery Dispatch', 'help'='battery-storage/battery_dispatch_fom', 'exclusive_var' = 'batt_dispatch_excl', 'exclusive_header_pages' = ['Battery Dispatch Common', 'Battery Dispatch Options FOM'], 'exclusive_tabs'=true, 'exclusive_hide'=true, 'bin_name'='Battery'} ); addpage( [[ 'Standalone Battery Costs'/*, 'Battery Enable' set on battery dispatch automated fom*/ ]], { 'sidebar'='Battery Installation Costs', 'help'='installation-costs/cc_standalone_battery', 'bin_name'='Battery' } ); @@ -3585,7 +3585,7 @@ addpage( [[ {'name'='AA Empty', 'caption'='Fixed Output'} ], [ {'name'='AA Empty addpage( [[ 'Fuel Cell Costs Hybrid' ]], { 'sidebar'='Fuel Cell Installation Costs', 'help'='installation-costs/cc_fuel_cell', 'bin_name'='FuelCell' } ); addpage( [[ 'Operating Costs Fuel Cell Hybrid' ]], { 'sidebar'='Fuel Cell Operating Costs', 'help'='operating-costs/oc_fuel_cell', 'bin_name'='FuelCell' } ); // battery -addpage( [[ 'Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage_btm', 'bin_name'='Battery' } ); +addpage( [[ 'Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery-storage/battery_storage', 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Life Cycle Calendar', 'caption'='Calendar and Cycle Degradation'}], [{'name'='Battery Life Empty 1','caption'='Li-on NMC/Graphite Degradation'}], [{'name'='Battery Life Empty 2','caption'='Li-ion LMO/LTO Degradation'}]], {'sidebar'='Battery Life', 'help'='battery-storage/battery_life' , 'exclusive_var' = 'batt_life_excl', 'exclusive_header_pages' = ['Battery Replacements','Battery Life Options' ], 'exclusive_tabs' = true, 'exclusive_hide' = true, 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Dispatch Peak Shaving BTM', 'caption'='Peak Shaving'} ], [ {'name'='Battery Dispatch Grid Power Targets', 'caption'='Grid Power Targets'} ], [ {'name'='Battery Dispatch Battery Power Targets', 'caption'='Battery Power Targets'}], [ {'name'='Battery Dispatch Manual', 'caption'='Manual'}], [ {'name'='Battery Dispatch Retail Rate', 'caption'='Retail Rate'} ], [ {'name'='Battery Dispatch Self Consumption', 'caption'='Self Consumption'} ]], { 'sidebar'='Battery Dispatch', 'help'='battery-storage/battery_dispatch_btm', 'exclusive_var' = 'batt_dispatch_excl', 'exclusive_header_pages' = ['Battery Dispatch Common', 'Battery Dispatch Options BTM'], 'exclusive_tabs'=true, 'exclusive_hide'=true, 'bin_name'='Battery' } ); addpage( [[ 'Standalone Battery Costs', 'Battery Enable' ]],{ 'sidebar'='Battery Installation Costs', 'help'='installation-costs/cc_standalone_battery', 'bin_name'='Battery' } ); @@ -3691,7 +3691,7 @@ addpage( [[ 'MSPT System Control' , addpage( [[ 'Tower SolarPilot Capital Costs' ]],{ 'sidebar'='MSPT Installation Costs', 'help'='cc_tower','bin_name'='CSPTowerMoltenSalt' } ); addpage( [[ 'Operating Costs', 'Operating Costs Land Lease' ]], {'sidebar' = 'MSPT Operating Costs', 'help'='oc_operating', 'bin_name'='CSPTowerMoltenSalt'} ); // battery -addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery_storage_fom', 'bin_name'='Battery' } ); +addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery_storage', 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Life Cycle Calendar', 'caption'='Calendar and Cycle Degradation'}], [{'name'='Battery Life Empty 1','caption'='Li-on NMC/Graphite Degradation'}], [{'name'='Battery Life Empty 2','caption'='Li-ion LMO/LTO Degradation'}]], {'sidebar'='Battery Life', 'help'='battery_life' , 'exclusive_var' = 'batt_life_excl', 'exclusive_header_pages' = ['Battery Replacements','Battery Life Options' ], 'exclusive_tabs' = true, 'exclusive_hide' = true, 'bin_name'='Battery' } ); addpage( [[ {'name'='Battery Dispatch Automated FOM', 'caption'='Automated'} ], [{'name'='Battery Dispatch PV Smoothing', 'caption'='System Smoothing'}], [ {'name'='Battery Dispatch Custom Time Series', 'caption'='Custom Time Series'} ], [ {'name'='Battery Dispatch Manual', 'caption'='Manual'}] ], { 'sidebar'='Battery Dispatch', 'help'='battery_dispatch_fom', 'exclusive_var' = 'batt_dispatch_excl', 'exclusive_header_pages' = ['Battery Dispatch Common', 'Battery Dispatch Options FOM'], 'exclusive_tabs'=true, 'exclusive_hide'=true, 'bin_name'='Battery'} ); */ @@ -3755,7 +3755,7 @@ addpage( [[ 'Operating Costs', 'Operating Costs Land Lease' ]], {'sidebar' = 'MS // battery */ -//addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery_storage_fom', 'bin_name'='Battery' } ); +//addpage( [['Battery Model', 'Battery Bank Sizing', 'Battery Current and Capacity', 'Battery Configuration', {'name'='Battery Voltage', 'caption'='Battery Voltage', 'collapsible'=true, 'collapsible_var'='battery_voltage_shown'}, {'name'='Battery Losses', 'caption'='Battery Losses', 'collapsible'=true, 'collapsible_var'='battery_losses_shown'}, {'name'='Battery Thermal', 'caption'='Battery Thermal', 'collapsible'=true, 'collapsible_var'='battery_thermal_shown'}, 'Battery Standalone Enable', ]], { 'sidebar'='Battery Cell and System', 'help'='battery_storage', 'bin_name'='Battery' } ); //addpage( [[ {'name'='Battery Life Cycle Calendar', 'caption'='Calendar and Cycle Degradation'}], [{'name'='Battery Life Empty 1','caption'='Li-on NMC/Graphite Degradation'}], [{'name'='Battery Life Empty 2','caption'='Li-ion LMO/LTO Degradation'}]], {'sidebar'='Battery Life', 'help'='battery_life' , 'exclusive_var' = 'batt_life_excl', 'exclusive_header_pages' = ['Battery Replacements','Battery Life Options' ], 'exclusive_tabs' = true, 'exclusive_hide' = true, 'bin_name'='Battery' } ); //addpage( [[ {'name'='Battery Dispatch Automated FOM', 'caption'='Automated'} ], [{'name'='Battery Dispatch PV Smoothing', 'caption'='System Smoothing'}], [ {'name'='Battery Dispatch Custom Time Series', 'caption'='Custom Time Series'} ], [ {'name'='Battery Dispatch Manual', 'caption'='Manual'}] ], { 'sidebar'='Battery Dispatch', 'help'='battery_dispatch_fom', 'exclusive_var' = 'batt_dispatch_excl', 'exclusive_header_pages' = ['Battery Dispatch Common', 'Battery Dispatch Options FOM'], 'exclusive_tabs'=true, 'exclusive_hide'=true, 'bin_name'='Battery'} ); //addpage( [[ 'Standalone Battery Costs'/*, 'Battery Enable' set on battery dispatch automated fom*/ ]], { 'sidebar'='Battery Installation Costs', 'help'='cc_standalone_battery', 'bin_name'='Battery' } ); diff --git a/deploy/runtime/ui/Electric Building Load Calculator.json b/deploy/runtime/ui/Electric Building Load Calculator.json index 2eb04be587..e924c54379 100644 --- a/deploy/runtime/ui/Electric Building Load Calculator.json +++ b/deploy/runtime/ui/Electric Building Load Calculator.json @@ -12,11 +12,11 @@ }, "X": { "Type": 3.0, - "Integer": 9.0 + "Integer": 6.0 }, "Y": { "Type": 3.0, - "Integer": 510.0 + "Integer": 516.0 }, "Width": { "Type": 3.0, @@ -90,7 +90,7 @@ }, "Y": { "Type": 3.0, - "Integer": 522.0 + "Integer": 531.0 }, "Width": { "Type": 3.0, diff --git a/deploy/runtime/ui/MSPT IPH Dispatch Control.json b/deploy/runtime/ui/MSPT IPH Dispatch Control.json index 28f838de81..03d3c4bf26 100644 --- a/deploy/runtime/ui/MSPT IPH Dispatch Control.json +++ b/deploy/runtime/ui/MSPT IPH Dispatch Control.json @@ -352,7 +352,7 @@ }, "ColLabels": { "Type": 5.0, - "String": "Turbine output fraction" + "String": "Heat sink output fraction" }, "NumRowsLabel": { "Type": 5.0, diff --git a/deploy/runtime/ui/Solar Resource Download.json b/deploy/runtime/ui/Solar Resource Download.json index 19682c3d8d..7d2a26680e 100644 --- a/deploy/runtime/ui/Solar Resource Download.json +++ b/deploy/runtime/ui/Solar Resource Download.json @@ -32,11 +32,11 @@ }, "Caption": { "Type": 5.0, - "String": "Visit the SAM website Weather Page for links to other data sources." + "String": "Visit the SAM website Weather Page for links to other data sources" }, "URL": { "Type": 5.0, - "String": "https://sam.nrel.gov/weather-data" + "String": "https://sam.nlr.gov/weather-data" }, "TabOrder": { "Type": 3.0, @@ -110,7 +110,7 @@ }, "Caption": { "Type": 5.0, - "String": "Show download log" + "String": "Show Download Log" }, "TabOrder": { "Type": 3.0, @@ -643,7 +643,7 @@ "Callbacks": [ "on_load{'Solar Resource Download'} = define() {\r", "\t//msgbox('Debug\\non_load Solar Resource Download');", - "\tenable('in_location_list', value('in_location_options') == 1 );\r", + "\tenable_options();\r", "\tshow_hide_advanced();\r", "};", "\r", @@ -668,31 +668,37 @@ "};\r", "\r", "on_change{ 'in_nsrdb_options' } = define() {\r", - "\tenable('in_location_list', value('in_location_options') == 1 && !value('is_advanced'));\r", - "\tenable('in_location', value('in_location_options') == 0 && !value('is_advanced'));\r", - "\tenable('in_location_options', !value('is_advanced') );\r", - "\t// 30-minute data not available for tmy\r", - "\tshow('in_time_step', value('in_nsrdb_options') != 0 && !value('is_advanced')); \r", - "\trefresh();\r", + "\tenable_options();\r", "};\r", "\r", "on_change{ 'is_advanced' } = define() {\r", "\tshow_hide_advanced();\r", "};\r", "\r", + "function enable_options() {\r", + "\tenable('in_location_list', value('in_location_options') == 1 && !value('is_advanced'));\r", + "\tenable('in_location', value('in_location_options') == 0 && !value('is_advanced'));\r", + "\tenable('in_location_options', !value('is_advanced') );\r", + "\t// 30-minute data not available for tmy\r", + "\tenable('in_time_step', value('in_nsrdb_options') != 0 && !value('is_advanced')); \r", + "}\r", + "\r", "function show_hide_advanced() {\r", "\tif ( value('is_advanced') ) {\r", "\t\tproperty( 'download_weather_caption' , 'Caption' , 'Click the Download button to choose files from a complete list of files available from the NSRDB, including TMY, TGY, TDY for different years and subhourly data.');\r", "\t\tproperty( 'download_weather_caption' , 'TextColour', 'black' );\r", + "\t\tproperty( 'btn_download', 'Caption', 'Advanced NSRDB Options...');\r", "\t}\r", "\telse {\r", "\t\tproperty( 'download_weather_caption' , 'Caption' , 'The NSRDB is a database of weather files that you can download and add to your to your solar resource library: Download a default typical-year (TMY) file for most long-term cash flow analyses, or choose files for single-year or P50/P90 analyses. See Help for details.' );\r", "\t\tproperty( 'download_weather_caption' , 'TextColour', 'black' );\r", + "\t\tproperty( 'btn_download', 'Caption', 'Download');\r", + "\r", "\t}\r", "\tshow('options_divider', !value('is_advanced') );\r", "\tshow('in_location_options', !value('is_advanced') );\r", "\tshow('in_nsrdb_options', !value('is_advanced') );\r", - "\tshow('in_time_step', value('in_nsrdb_options') != 0 && !value('is_advanced')); \r", + "\tshow('in_time_step', !value('is_advanced')); \r", "\tshow('in_location_list', !value('is_advanced') );\r", "\tshow('in_location', !value('is_advanced') );\r", "\trefresh();\r", @@ -914,6 +920,12 @@ "}\r", "\r", "function nsrdb_get() {\r", + "\r", + "\tif (value('in_location') == '' ) {\r", + "\t\tmsgbox('Weather File Download Error!\\nPlease type a location name, street address, or coordinates before clicking Download.');\r", + "\t\texit;\r", + "\t}\r", + "\t\r", "\tenum { ADDRESS, COORDINATES };\r", "\tenum { TMY, SINGLE_YEAR, ALL_YEARS };\r", "\tenum { ONE_LOCATION, MULTIPLE_LOCATIONS };\r", diff --git a/deploy/runtime/ui/Solar Resource Information.json b/deploy/runtime/ui/Solar Resource Information.json index 90724d96a0..87f91f0316 100644 --- a/deploy/runtime/ui/Solar Resource Information.json +++ b/deploy/runtime/ui/Solar Resource Information.json @@ -1511,7 +1511,7 @@ }, "Caption": { "Type": 5.0, - "String": "" + "String": "Caption set by update_info()" }, "TextColour": { "Type": 4.0, @@ -2026,7 +2026,6 @@ "on_load{'Solar Resource Information'} = define() {", "\t//msgbox('Debug\\non_load Solar Resource Information');", "\tupdate_info( 'on_load Solar Resource Information');\r", - "\tdisplay_tech_message();\r", "};", "", "on_change{'btn_view_data'} = define() {", @@ -2110,10 +2109,10 @@ "\t\t\tvalue( 'annual_snow', ssc_var(obj, 'annual_snow') );\r", "\t\t\tvalue( 'annual_albedo', ssc_var(obj, 'annual_albedo') );\r", "\t\t\tvalue( 'step', ssc_var(obj, 'step') );\r", - "\t\t\t\r", + "\r", "\t\t\trhum = ssc_var(obj, 'rhum');\r", "\t\t\trhum_ok = true;\r", - "\t\t\tif ( isnan( rhum[0] ) ) { rhum_ok = false; }\r", + "\t\t\t\r", "\t\t\t// used for timestep calculation in editscene3d\r", "\t\t\tvalue( 'wf_nrecords', ssc_var(obj, 'nrecords') );\r", "\t\t}\r", @@ -2126,10 +2125,8 @@ "\t\t}\r", "\t\tssc_free( obj );\r", "\t}\r", - "}\r", - "", - "function display_tech_message() \r", - "{\r", + "\r", + "\t// display tech-specific messages\r", "\tstr = '';\r", "\tstr_and = '';\r", "\ttech = technology();\r", @@ -2143,6 +2140,9 @@ "\t}\r", "\tif ( tech == 'Biopower' )\r", "\t{ \r", + "\r", + "\t\tif ( isnan( rhum[0] ) ) { rhum_ok = false; }\r", + "\t\r", "\t\tif ( isnan( value('annual_global') ) || !rhum_ok )\r", "\t\t{\r", "\t\t\tstr = 'The Biopower model requires ';\r", @@ -2159,11 +2159,8 @@ "\t}\r", "\tproperty( 'caption_techs' , 'Caption', str );\t\t\r", "\tproperty( 'caption_techs' , 'TextColour', 'red' );\r", - "}\r", - "\r", - "\r", - "\r", "\r", + "}\r", "\r", "" ] diff --git a/deploy/runtime/ui/Solar Resource Library.json b/deploy/runtime/ui/Solar Resource Library.json index 1bbc4ea5d8..4f89eddce2 100644 --- a/deploy/runtime/ui/Solar Resource Library.json +++ b/deploy/runtime/ui/Solar Resource Library.json @@ -73,7 +73,7 @@ }, "TabOrder": { "Type": 3.0, - "Integer": 2.0 + "Integer": 1.0 } } }, @@ -106,11 +106,11 @@ }, "Caption": { "Type": 5.0, - "String": "Browse" + "String": "Browse..." }, "TabOrder": { "Type": 3.0, - "Integer": -1.0 + "Integer": 5.0 } } }, @@ -147,7 +147,7 @@ }, "TabOrder": { "Type": 3.0, - "Integer": 3.0 + "Integer": 2.0 } } }, @@ -525,7 +525,7 @@ }, "Caption": { "Type": 5.0, - "String": "Choose a weather file from the library or from a folder." + "String": "Choose a weather file from the library, or disable the library and choose a file directly." }, "TextColour": { "Type": 4.0, @@ -691,7 +691,7 @@ }, "TabOrder": { "Type": 3.0, - "Integer": -1.0 + "Integer": 3.0 } } }, diff --git a/doc/readme.md b/doc/readme.md index d029313034..0cfacb4db7 100644 --- a/doc/readme.md +++ b/doc/readme.md @@ -237,7 +237,7 @@ If possible, avoid using headings in snippet files to avoid inconsistencies betw ## Headings -Limit section headings to three levels, plus Level 4 for procedure titles. +Limit section headings to three levels. In reStructuredText, headings are identified by underline characters (https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#sections). The character used to underline the text determines the heading level based on the "succession of headings" in each file. This means that each file can use different characters to represent heading levels. @@ -269,9 +269,10 @@ The "~" character now represents Heading 2 because of the order above. Use `#` to automatically number lists. Use `*` for bulleted lists. Lines in a list can be separated by a blank line or not. +For the title of step-by-step instructions, use **bold** text (`**bold**`) instead of a heading so that the format is consistent across all documents. + ``` -Heading 4: Step-by-step instructions: -..................................... +**Step-by-step instructions:** #. This is Step 1 with automatically numbered lines. @@ -305,13 +306,13 @@ When creating and editing cross references, you may need to clean and rebuild th Use `:doc:` for a cross reference to a topic file to create a hyperlink that points to the beginning of the file. -Use the file's title as the hyperlink text: +To use the file's title as the hyperlink text: ``` This is a reference to :doc:`path/to/filename` ``` -Use custom hyperlink text: +To use custom hyperlink text: ``` This is a reference to :doc:`hyperlink text ` @@ -459,3 +460,31 @@ You can also use `topic` to create a text box with a custom title. This can be u An AC degradation rate of 1% for a system with a net annual AC output of 100,000 kWh in Year one results in annual output values of 100,000 kWh in year 1, 99,000 kWh in year 2, 98,010 kWh in year 3, 97,029.9 kWh in year 4, etc. ``` + +## Literal Blocks + +A literal or code block is indented and preceded by `::`. + +This results in "This is some code:" (colon is appended to end of line): + +``` +This is some code:: + + One line of code. + Another line of code. + And so on. +``` + +This is just a literal block: + +``` +:: + First line. + Second line. + Third line. +``` + +## File Names and Paths + +Use backticks (\`) to enclose file names or paths like `C:\SAM\2025.4.16`. + diff --git a/doc/source/battery-storage/battery_cell_and_system.rst b/doc/source/battery-storage/battery_cell_and_system.rst new file mode 100644 index 0000000000..4d476c7af1 --- /dev/null +++ b/doc/source/battery-storage/battery_cell_and_system.rst @@ -0,0 +1,647 @@ +Battery Cell and System +======================= + +The Battery Cell and System page displays inputs describing the battery's performance characteristics. + +Behind-the-meter (BTM) and Front-of-meter (FOM) Batteries +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The financial model determines whether you are modeling a behind-the-meter (BTM) or front-of-meter (FOM) battery. + +A BTM battery can discharge to the grid or to meet a building or facility's electricity load. A BTM battery may be standalone or installed with on-site power generating equipment to reduce a residential or commercial building or facility owner's electricity bill. SAM assumes the battery is BTM for the Distributed financial models (Residential, Commercial, and Third Party Ownership). + +A FOM battery can only discharge to the grid. It may be standalone or installed as part of a power generation project to maximize revenue for a power generation project. The battery is FOM for the PPA financial models (Single Owner, Partnership Flip, Sale Leaseback) and for the Merchant Plant model. + +The battery in a PV-battery application may be connected either to the AC or DC side of the inverter. + +.. image:: ../images/IMG_BATT-configurations.png + :align: center + :alt: IMG_BATT-BTM-configurations.png + +Figure 1: Battery Configurations. Standalone battery is the same as Custom Generation Profile but with no system. + +.. note:: For a DC-connected PV-storage system, SAM assumes that the inverter on the Inverter page is a bidirectional or hybrid inverter that converts both DC power to AC and AC power to DC whether or not the inverter actually supports bidirectional conversion. You can use the "CEC hybrid" field in the inverter library to help identify bidirectional inverters. + +Chemistry +~~~~~~~~~ + +The battery type defines the battery chemistry for (lithium ion, lead acid, or flow battery), and the type of battery for each chemistry. When you choose a battery type, SAM automatically changes the battery property input variables to default values for that type. These default values were drawn from DiOrio (2015) "Technoeconomic Modeling of Battery Energy Storage in SAM" available `here `__, which also includes more details on how SAM calculates battery capacity. + +**Battery type** + Choose the battery chemistry and battery type for the batteries in your system. + + When you choose a battery type, SAM replaces the values of **Voltage Properties** and **Current and Capacity** input variables as appropriate with values for each battery type. + + When you choose a custom battery type for either the lead acid or lithium ion chemistry, SAM does not replace the input variable values. + +To model a battery type not included in the list, choose either **Lead Acid: Custom** or **Lithium Ion: Custom**, and specify your voltage, current, and capacity properties appropriate for the battery. +When you choose the custom lead acid battery type, SAM retains the capacity and discharge rate values from the table below from the previous state. For example, if you change the battery type from flooded lead acid to custom lead acid, SAM will apply the capacity/discharge rate table for flooded batteries to your custom battery. + +Lead Acid +--------- + +The three lead acid battery types use the lead acid battery capacity model described in DiOrio (2015), cited above: + +* Flooded lead acid batteries with a liquid electrolyte. + +* Valve Regulated (VRLA) batteries are sealed, and the electrolyte is bound in a gel. + +* VRLA Absorptive Glass Mat (AGM) batteries are sealed, and the electrolyte is immobilized in porous separators. + +Lead acid battery capacity is dependent on the discharge rate. When you choose different lead-acid battery types from the list, SAM changes internal variable values that define the relationship between capacity and discharge rate as shown in the table below. It is not possible to change these values from the Battery Storage input page. These values are based on analysis of information for batteries from different manufacturers. SAM considers the 20-hour discharge rate to be the nominal capacity of a lead-acid battery and scales the capacity at faster discharge rates as a percent of the that 20-hour capacity. + +.. list-table:: + :width: 100% + :align: center + :header-rows: 1 + + * - Discharge Rate + - Flooded Capacity % + - VRLA Gel Capacity % + - VRLA AGM Capacity % + * - 20-hr ( 0.05 C ) + - 100 + - 100 + - 100 + * - 10-hr ( 0.1C ) + - 87 + - 84.9 + - 93.2 + * - 1-hr ( C ) + - 47 + - 63.1 + - 58.1 + +Lithium Ion +----------- + +The six lithium ion battery types use of the lithium-ion battery capacity model described in DiOrio (2015) "Technoeconomic Modeling of Battery Energy Storage in SAM" cited above: + +* LMO: Lithium Manganese Oxide (|EQ_BATT_lmo|) – An inexpensive high-voltage cathode material with high power capabilities but potentially lower lifespan. + +* LFP: Lithium Iron Phosphate (|EQ_BATT_lfp| – A lower voltage cathode material with excellent safety properties but lower volumetric energy. + +* LCO: Lithium Cobalt Oxide (|EQ_BATT_lco| – Among the first and still a common cathode material with high specific energy, but potentially costly and toxic. + +* LTO: Lithium Titanate (|EQ_BATT_lto| – A promising anode material with excellent lifetime properties but lower specific capacity and important cost considerations. + +* NMC: Nickel Manganese Cobalt (|EQ_BATT_nmc| – A less expensive cathode material than LCO with potentially improved safety characteristics + +* NCA: Nickel Cobalt Aluminum (|EQ_BATT_nca| – Similar in respects to NMC as a cathode material with high specific energy + +When you choose a lithium ion battery, SAM assigns values to voltage, lifetime, and thermal properties as appropriate from Reddy (2011), available `here `__, and from manufacturer data sheets. SAM does not change any internal variables or calculations. + +Flow Batteries +-------------- + +Flow battery designers can decouple power output (kW) from energy capacity (kWh) when sizing systems. Flow batteries may be able to cycle more deeply and operate for more total cycles than lithium ion or lead acid batteries, but flow batteries also have pumps, which should be considered when calculating **Ancillary Equipment Losses**. + +**Vanadium Redox Flow** + The vanadium redox flow battery model available in SAM comes from R. D’Agnostino et. al, (2014) "A Vanadium-Redox Flow-Battery Model for Evaluation of Distributed Storage Implementation in Residential Energy Systems" + + VRFB: Vanadium Redox Flow (V \ :sup:`2+`\ ,V \ :sup:`3+`\ *anolyte* ), (VO \ :sup:`2+`\ , VO \ :sup:`2+`\ , *catholyte* ) + +**All Iron Redox Flow** + The all iron redox flow battery model available in SAM shares the same input field framework as the vanadium flow battery, but relies on tabular voltage vs. depth-of-discharge in place of a voltage model. Default iron flow battery values are based on preliminary manufacturer data and feedback for an all-iron hybrid-redox flow battery. + + AIFB: All Iron Redox Flow (Fe \ :sup:`2+`\ , Fe \ :sup:`3+`\ ) + +Battery Bank Sizing +~~~~~~~~~~~~~~~~~~~ + +The two battery bank sizing options allow you to either automatically size the battery bank based on desired size, or to manually specify the number of cells per string and strings in parallel. + +The automatic option uses the basic equations described below to determine numbers of cells and strings or stacks, which may not always result in realistic values. If you use the automatic sizing option, be sure to check the **Computed Properties** values to be sure they are what you expect. + +Set Desired Bank Size: Automatic Sizing +--------------------------------------- + +For automatic sizing choose **Set desired bank size**. + +**Desired bank power, kW** + The battery's maximum discharge rate in kW. Compare this to **Maximum discharge power** under **Computed Properties** to verify that SAM calculated a discharge power close enough to the desired value to meet your requirements. + + The desired bank power can be in either DC kW or AC kW depending on whether you choose **DC units** or **AC units**. If you use AC units, SAM calculates the nominal bank power in DC kW using the appropriate conversion efficiency from the **Power Converters** section for either an AC- or DC-connected battery. + +**Desired bank capacity, h or kWh** + The nominal size of the battery bank. Choose h to specify the size in hours of storage at the nominal discharge rate, or choose kWh to specify the size in kWh of available energy. Compare this to **Nominal bank capacity** under **Computed Properties** to verify that SAM calculated a nominal value close enough to the desired value to meet your requirements. + +.. note:: Some battery data sheets provide both a nominal battery capacity and an available or usable battery capacity that is less than the nominal capacity. Use the higher nominal capacity value for the desired bank size, and then use the inputs under **Charge Limits and Priority** on the Battery Dispatch page to limit the battery to the available capacity. This will ensure that SAM calculates costs in $/kWh based on the nominal capacity. + +Specify Cells: Manual Sizing +---------------------------- + +For manual sizing choose **Specify cells**. + +**Number of cells in series** + The number of cells in series in each string of the battery bank. The number of cells in series determines the maximum discharge power and the nominal bank voltage. + +**Number of strings in parallel** + The number of strings of cells in parallel in the battery bank. The number of strings in parallel determines the nominal bank capacity. + +**Max C-rate of charge, per/hour** + The maximum charge rate as a fraction of the battery bank capacity. For example, a 10 kWh battery with C-rate of charge of 0.5 can charge at a maximum rate 10 kWh × 0.5/h = 5 kW. + +**Max C-rate of discharge, per/hour** + The maximum discharge rate as a fraction of the battery bank capacity. For example, a 10 kWh battery with C-rate of discharge of 0.5 can discharge at a maximum rate 10 kWh × 0.5/h = 5 kW. + +.. note:: For flow batteries, the capacity and power are decoupled so the the C-rate is a calculated value rather than an input. + +Calculations for Automatic Bank Sizing +-------------------------------------- + +SAM's bank sizing calculations use basic equations using the cell property information you specify. The calculated values are designed to help you get started with your system design. They do not account for many real-life design factors. You should use these values for an initial preliminary analysis and then use **Specify cells** for conventional batteries or **Specify capacity and stack configuration** for flow batteries to refine your analysis. + +**Number of cells in series, Number of cells per stack** + SAM calculates a number of cells in series for a conventional battery, or cells per stack for a flow battery assuming one stack, that either meets exactly or slightly exceeds the desired bank voltage based on the cell nominal voltage. For example, for a desired bank voltage of 24 V with a nominal cell voltage of 3.6 V, SAM calculates *24 V ÷ 3.6 V/cell = 6.7*, or 7 cells in series. The actual nominal bank voltage is *3.6 V/cell × 7 cells = 25.2 V*. SAM displays the actual battery bank properties as calculated values under Current and Capacity. + +**Number Strings in parallel (Lithium-ion and Lead-acid Batteries)** + SAM calculates the bank capacity by determining the number of strings of cells in parallel required to ensure that the actual capacity is as close as possible to the desired value given the cell capacity that you specify under **Current and Capacity**. For the example above, if the desired bank capacity is 3 kWh, and the cell capacity is 1.5 Ah, the calculated bank voltage would be 25.2 V, and one string of cells has a capacity of *25.2 V × 1.5 Ah = 37.8 Wh*, or 0.0378 kWh. To reach the desired bank capacity of 3 kWh: *3 kWh ÷ 0.0378 kWh/string = 79.4*, or 80 strings. + + The calculated C-rates of charge and discharge are the desired bank power divided by the computed bank capacity. + +**Capacity and Stack Configuration (Flow Batteries)** + For flow batteries, the capacity is independent of the power block and can be specified exactly by the amount of electrolyte in the tanks. SAM sets nominal bank capacity to the desired capacity you specify. SAM calculates the nominal power ratings using the desired stack (bank) voltage and other properties in the **Current and Capacity** group. The number of stacks in parallel is depends on whether the cells are power limited or current limited. + + For the **Power limited** option, the number of stacks in parallel is the ceiling of the desired bank power divided by the product of **Cell max power discharge** and the number of cells in the stack (assuming one stack in series). For example, consider a flow battery with a desired bank capacity of 100 kWh, bank power of 50 kW, and bank voltage of 48V with 1.4V cells and a cell power discharge max of 2W. The number of cells in the stack is *ceiling(48V ÷ 1.4V/cell) = ceiling(34.2 cells) = 35 cells* . The bank voltage is *35 cells × 1.4V/cell = 49V* . To achieve 50KW with limitations of 2W/cell, there must be *ceiling(50 kW / (0.002 kW/cell * 35 cells)) = 715 stacks in parallel*. + + For the **Current limited** option, the number of stacks in parallel is the ceiling of the desired bank power divided by the product of the battery bank voltage and **Cell max current discharge**. In the example above, if all properties are the same except the battery is current limited with 10A per cell (and consequently per stack), the number of stacks in parallel must be: *ceiling(50 kW / (49V * 10 A * 0.001) ) = 103 stacks in parallel*. + + For the **Limit both current and power** option, the stacks are sized by using the current limit, and within the model at each time step the current and power through the cells are checked and reduced if necessary. + +Current and Capacity +~~~~~~~~~~~~~~~~~~~~ + +The Current and Capacity parameters depend on the battery chemistry: + +* For lead acid and Lithium-ion batteries, you specify a cell capacity value, and SAM displays the computed properties based on the battery bank sizing parameters. + +* For flow batteries, you choose whether the battery is power- or current-limited and specify minimum and maximum rates. + +Lead Acid and Lithium-ion Battery Parameters +-------------------------------------------- + +**Desired bank voltage** + The battery bank voltage you are trying to achieve in your design. This input is only enabled when you choose **Set desired bank size**. SAM calculates the number of cells in series based on the desired bank voltage and cell nominal voltage: + + *Number of Cells in Series = ROUND UP ( Desired Bank Voltage ÷ Cell Nominal Voltage )* + +**Cell nominal voltage** + The reference voltage of a single, fully charged cell in the battery as reported by the manufacturer. The typical nominal voltage for a lead acid cell is 2 V, and for lithium ion cell is 3.7 V. + + SAM uses the nominal voltage to size the battery bank and compute the battery bank's nominal voltage. + +**Cell capacity** + The capacity of a single cell when the battery is fully charged. SAM sets this value to a default value when you choose a battery chemistry, but you can change its value. + +Flow Battery Parameters +----------------------- + +**Desired bank voltage** + The battery bank voltage you are trying to achieve in your design. This input is only enabled when you choose **Set desired bank size**. SAM calculates the number of cells in series based on the desired bank voltage and cell nominal voltage: + + *Number of Cells in Series = ROUND UP ( Desired Bank Voltage ÷ Cell Nominal Voltage )* + +**Cell nominal voltage** + The reference voltage of a single, fully charged cell in the battery as reported by the manufacturer. + + SAM uses the nominal voltage to size the battery bank and compute the battery bank's nominal voltage.**Power limited with Cell max power charge and discharge** + Limit the maximum charge and discharge power. + +**Current limited with Cell max current charge and discharge** + Limit the maximum charge and discharge current. + +**Limit both current and power** + Limit both the charge limits by both power and current. + +Computed Properties +------------------- + +The computed properties are a summary of the battery bank system design. The values may either be ones that you specify or that SAM calculates depending on whether you choose the **Set desired bank size** or **Specify cells** option. + +**Nominal bank capacity, DC kWh** + The nominal size of the battery. SAM uses this value in battery cost calculations with $/kWh units, and to determine the battery state of charge and capacity reduction over the battery life. + + *Nominal Bank Capacity (DC kWh) = Cell Capacity (Ah) × Cell Voltage (VDC) × Total Number of Cells* + + The cell voltage is shown under **Battery Voltage**. + +**Nominal bank power, DC kW** + The nominal maximum discharge power in DC kW. SAM uses this value in battery cost calculations with $/kW units. + +**Time at maximum power** + The number of hours the battery could discharge continuously at its maximum discharge power. This is either the input value you provide under **Battery Bank Sizing**, or calculated as: + + *Time at Maximum Power (h) = Nominal Bank Capacity (kWh) ÷ Maximum Discharge Power (kW)* + +**Nominal bank voltage, VDC** + The nominal voltage of the battery bank. + + *Nominal Bank Voltage (VDC) = Cell Voltage (VDC) × Cells in Series* + +**Total number of cells** + The product of cells (stacks) in series and strings (stacks) in parallel. + +**Cells in series / Cells per stack** + The number of cells in series in each string. + + If you choose **Set desired bank size** under **Battery Bank Sizing**: + + *Cells in Series = Nominal Bank Voltage (VDC) ÷ Nominal Cell Voltage (VDC)* + + If you choose **Specify cells**, then this is the value you entered for **Number of cells in series** under **Battery Bank Sizing**. + +**Strings in parallel / Stacks in parallel** + The number of strings of battery cells in series in the battery bank. + + If you choose **Set desired bank size** under **Battery Bank Sizing**: + + *Strings in Parallel = Nominal Bank Capacity (kWh) ÷ ( Cell Capacity (Ah) × Nominal Cell Voltage (VDC) )* + + If you choose **Specify cells**, then this is the value you entered for **Number of strings in parallel** under **Battery Bank Sizing**. + +**Stacks in series** + For flow batteries, the number of stacks in series. + +**Max C-rate of discharge, per/h** + If you choose **Set desired bank size** under **Battery Bank Sizing**, SAM calculates the value as: + + *Max C-rate of Discharge (per/h) = Maximum Discharge Power (DC kW) ÷ Nominal Bank Capacity (DC kWh)* + + If you choose **Specify cells**, then this is the value you entered for **Max C-rate of discharge** under **Battery Bank Sizing**. + +**Max C-rate of charge, per/h** + If you choose **Set desired bank size** under **Battery Bank Sizing**, SAM calculates the value as: + + *Max C-rate of Charge (per/h) = Maximum Charge Power (DC kW) ÷ Nominal Bank Capacity (DC kWh)* + + If you choose **Specify cells**, then this is the value you entered for **Max C-rate of charge** under **Battery Bank Sizing**. + +**Maximum discharge current, A** + The battery's maximum discharge current. The battery may discharge at a rate up to the maximum. + + *Maximum Discharge Current (A) = Nominal Bank Capacity (DC kWh) ÷ Nominal Bank Voltage (VDC) × Max C-rate of Discharge (1/h) × 1000 Wh/kWh* + +**Maximum charge current, A** + The battery's maximum charge current. The battery may charge at a rate up to the maximum. + + *Maximum Discharge Current (A) = Nominal Bank Capacity (DC kWh) ÷ Nominal Bank Voltage (VDC) × Max C-rate of Charge (1/h) × 1000 Wh/kWh* + +**Maximum discharge power, DC kW** + The battery can discharge at up to the maximum discharge power. The maximum discharge power is also the nominal DC power of the battery bank used for $/kW-based battery cost calculations. + + When the units for **Desired bank power** are DC kW: + + *Maximum Discharge Power (DC kW) = Cell Capacity (Ah) × Cell Nominal Voltage (VDC) × Max C-rate of Discharge (1/h) × Total Number of Cells ÷ 1000 W/kW* + + When the units for **Desired bank power** are AC kW, the discharge power in DC kW depends on whether the battery is AC-connected or DC-connected. + + AC-connected: + + *Maximum Discharge Power (DC kW) = Desired Bank Power (AC kW) ÷ DC to AC Conversion Efficiency* + + DC-connected: + + *Maximum Discharge Power (DC kW) = Desired Bank Power (AC kW) ÷ ( DC to AC Conversion Efficiency × Inverter Nominal Efficiency )* + +**Maximum charge power, DC kW** + The maximum charge power, calculated from the nominal bank capacity and maximum C-rate of charge. + + When the units for **Desired bank power** are DC kW: + + *Maximum Charge Power (DC kW) = Cell Capacity (Ah) × Cell Nominal Voltage (VDC) × Max C-rate of Charge (1/h) × Total Number of Cells ÷ 1000 W/kW* + + When the units for **Desired bank power** are AC kW, the discharge power in DC kW depends on whether the battery is AC- or DC-connected. + + AC-connected: + + *Maximum Charge Power (DC kW) = Desired Bank Power (AC kW) ÷ DC to AC Conversion Efficiency* + + DC-connected: + + *Maximum Charge Power (DC kW) = Desired Bank Power (AC kW) ÷ ( DC to DC Conversion Efficiency × Inverter Nominal Efficiency )* + +**Maximum discharge power, AC kW** + The AC equivalent of the discharge power in DC kW. + + For the **Set desired bank size** option, if the **Desired bank power** units are AC kW, SAM sets the maximum discharge power to the desired value. + + Otherwise, it is calculated from the DC value: + + AC-connected: + + *Maximum Discharge Power (AC kW) = Maximum Discharge Power (DC kW) × DC to AC Conversion Efficiency* + + DC-connected: + + *Maximum Discharge Power (AC kW) = Maximum Discharge Power (DC kW) × ( DC to DC Conversion Efficiency × Inverter Nominal Efficiency )* + +**Maximum charge power, AC kW** + The AC equivalent of the charge power in DC kW. + + For the **Set desired bank size** option, if the **Desired bank power** units are AC kW, SAM sets the maximum charge power to the desired value. + + Otherwise, it is calculated from the DC value: + + AC-connected: + + *Maximum Charge Power (AC kW) = Maximum Charge Power (DC kW) × DC to AC Conversion Efficiency* + + DC-connected: + + *Maximum Charge Power (AC kW) = Maximum Charge Power (DC kW) × ( DC to DC Conversion Efficiency × Inverter Nominal Efficiency )* + +Power Converters +~~~~~~~~~~~~~~~~ + +For photovoltaic-battery systems, SAM can model a battery that is connected to either the DC or AC side of the photovoltaic inverter. + +.. note:: The DC connected option is only available with the PV Battery configuration. The Standalone and Custom Generation Profile - Battery configurations assume that the battery is the only DC component in the system. + + The Power Converters conversion efficiency inputs account for electrical losses associated with any battery power converter equipment except for the photovoltaic inverter. SAM models each battery converter as a fixed conversion efficiency. + + The photovoltaic inverter is a separate component from the battery power converters specified here and uses a more sophisticated model with an efficiency curve that varies with the inverter load. You specify the photovoltaic inverter model and parameters on the :doc:`Inverter <../detailed-photovoltaic-model/pv_inverter>` page. SAM models the inverter as a hybrid inverter with inputs for both a photovoltaic array and battery, regardless of whether the inverter you choose is actually a hybrid inverter. You can use the cec_hybrid column in the inverter library to find inverters that are specified as hybrid inverters. + +DC Connected (PV Battery Only) +------------------------------ + +Choose **DC Connected** for a battery connected to the DC side of a hybrid photovoltaic inverter as shown in the diagram above. + +To account for electrical losses from a DC-DC converter between the photovoltaic array and inverter, be sure to assign an appropriate value to the **DC power optimizer loss** on the :doc:`Losses <../detailed-photovoltaic-model/pv_electrical_losses>` page. + +For a DC-connected battery, during time steps when the total power from the photovoltaic array and battery is greater than the inverter's nameplate capacity, the inverter limits its output power to the nameplate capacity. For the dispatch options with **Battery can charge from clipped system power** enabled on the Battery Dispatch page, if the battery is not fully charged and is not discharging, the array power in excess of the inverter's nominal capacity charges the battery. + +**DC to DC conversion efficiency, %** + For the DC-connected option, the electrical conversion efficiency of the battery management system (BMS). SAM applies this loss to power into or out of the battery to account for power consumed by the BMS. SAM disables this input for the AC Connected option. + +**Inverter efficiency cutoff, %** + For the DC-connected option, the inverter efficiency cutoff is the photovoltaic inverter operating efficiency threshold below which the battery is not allowed to charge from the grid, or to discharge when the discharge power is greater than the inverter's maximum rated power. SAM reports the inverter operating efficiency in the time series results. + +AC Connected +------------ + +Choose **AC Connected** for a battery connected to the grid interconnection point as shown in the diagram above. Power conversion equipment is required to convert DC power from the battery to AC power before it can serve the load or be sent to the grid, and to convert AC power from the grid or pvhotovoltaic inverter before it can charge the battery. + +**AC to DC conversion efficiency, %** + For the AC-connected option, the electrical conversion efficiency associated with the equipment that converts AC power from either the photovoltaic inverter output or grid to DC power for the battery. SAM disables this input for the DC Connected option. + +**DC to AC conversion efficiency, %** + For the AC-connected option, the electrical conversion efficiency associated with the equipment that converts DC power from the battery to AC power for either the AC load or grid, or both. SAM disables this input for the DC Connected option. + +Charge Limits and Priority +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Charge Limits and Priority inputs are constraints on the battery dispatch calculations. + +The limits on minimum and maximum state of charge affect both the amount of energy available for battery dispatch calculations, and the depth of charge-discharge cycles for battery life calculations. Choose values appropriate for the type of battery you are modeling. The default values state of charge range of 15% to 95% is reasonable for most Li-ion battery types. + +**Minimum state of charge, %** + A limit on the quantity of energy that can be drained from the battery as a percentage of available capacity. For example, a value of 15% would prevent the battery from discharging below 15% of the battery's available capacity in a given time step. + +.. note:: The minimum and maximum state of charge are both as a percentage of available battery capacity, which changes over time as the batteries degrade and are replaced. The available capacity in a given time step is likely to be less than the battery's nominal capacity shown on the Battery Cell and System page. + +**Maximum state of charge, %** + A limit on the quantity of energy that can be sent to the battery as a percentage of available capacity. For example a value of 95% would prevent the battery from charging above 95% state of charge. + +**Initial state of charge, %** + The state of charge of the battery at the beginning of the simulation. A value of 100% would be for a fully charged battery, 0% would be for a fully discharged battery. + +**Minimum time at charge state, min** + There may be periods of time where the photovoltaic or other power system output varies above and below the load causing rapid cycling of the battery. Rapid cycling may also result for dispatch options that respond to power prices when prices change rapidly from time step to time step. This kind of cycling, especially if the cycles are deep, may degrade battery performance over time. The minimum time at charge state prevents the battery from changing between charging and discharging within the number of minutes that you specify. + +.. note:: The minimum time at charge state only applies when the simulation time step is smaller than the minimum time at charge state. For example, the default value of 10 minutes would only apply for 5-minute or 1-minute simulation time steps; It has no effect for hourly simulations. + +Battery Voltage +~~~~~~~~~~~~~~~ + +The voltage properties are technical specifications available on most battery manufacturer data sheets. + +.. note:: When you change the battery type, SAM changes the voltage properties inputs to default values appropriate for the battery chemistry you selected. You can use these default values unless you have better information from a manufacturer's data sheet or other source. + +Battery voltage varies with state of charge as the internal open circuit potential decreases or increases. Voltage variations in charging and discharging affect the battery's round-trip efficiency reported in the results. During charging, voltage increases, requiring more power to charge the cell. During discharge the voltage decreases and less power can be extracted. The round-trip efficiency is computed as the net amount of energy discharged from a cell divided by how much energy it took to charge the cell. + +**Cell Internal resistance, Ohm** + The cell internal resistance for each cell in the battery in Ohms. SAM assumes that this is a constant value and uses it in voltage and thermal calculations by scaling the cell internal resistance to a total battery resistance based on the cell configuration. + +**Nominal bank voltage, VDC** + The battery bank voltage from the **Computed Properties** on the Battery Cell and System page. + +**Nominal cell voltage, VDC** + The nominal voltage of a single cell from the **Current and Capacity** inputs on the Battery Cell and System page. + +Electrochemical Model +--------------------- + +The electrochemical voltage model can be used for Lithium-ion and lead acid batteries and provides a way to characterize the battery's voltage curve using data provided on some battery manufacturer data sheets. It is disabled for flow batteries. The model is described in Section 2.1 of `DiOrio (2015) Technoeconomic Modeling of Battery Energy Storage in SAM `__. + +**C-rate of discharge curve** + Battery manufacturer data sheets typically include a set of curves like the one below that show cell voltage as a function of charge removed for different discharge rates. The "C-rate" is the current used to discharge the battery. It is defined as the current divided by the rated capacity. + + In this example, if the discharge current is given at the 20-hour discharge rate, the C-rate would be *I\ :sub:`20`\ ÷ q\ :sub:`20`\ × C = 0.05 × C (C/20)* . + +.. image:: /images/IMG_BATT-DischargeCurve.png + :align: center + :alt: IMG_BATT-DischargeCurve.png + +**Cutoff cell voltage, VDC** + The minimum allowed cell voltage. + +**Nominal zone cell voltage, VDC** + The cell voltage (Vnom) at the end of the nominal zone, as shown in the Nominal Current Discharge Characteristic graph below.. The cell charge removed at this point is |EQ_BATT_Nominal| . + +**Exponential zone cell voltage, VDC** + The cell voltage (Vexp) at the end of the exponential zone, as shown in the Nominal Current Discharge Characteristic graph below. The cell charge removed at this point is |EQ_BATT_Exponential| . + +**Fully charged cell voltage, VDC** + The cell voltage (Vfull) at the given C-rate when a cell is at its maximum charge. + +.. note:: The voltage inputs must satisfy Vfull > Vexp > Vnom. + +**Charge removed at exponential and nominal point** + Voltage vs discharge curves show that cell-voltage typically undergoes several distinct regions depending on charge. + +.. image:: /images/IMG_BATT-NominalDischargeCharacteristic.png + :align: center + :alt: IMG_BATT-NominalDischargeCharacteristic.png + +**C-rate of discharge curve** + This parameter determines the shape of the voltage curve between the end of the nominal zone and 100% discharge. + +Voltage Table +------------- + +The voltage table option defines the voltage curve using data from the voltage table. It can be used for any type of battery, but requires data not often provided on manufacturer data sheets. + +SAM uses linear interpolation with an adjustment for cell internal resistance for cell voltage calculations during simulations. Each row in the table must have a different voltage value. + +The voltage table must contain at least two values, and must include cell voltage values less than and greater than the cell nominal voltage. + +**To use the voltage table to define the voltage curve:** + +#. Choose **Voltage table**. + +#. For **Rows**, type the number of pairs of voltage - depth of discharge pairs you want to use to define the voltage. The table will expand to the number of rows you type. + + You can also click Import to import data from a text file. Try clicking Export to create a template file to see what the text format should be. + +#. Type values in the depth of discharge and cell voltage columns. The Voltage Discharge graph will update as you type. + +Battery Losses +~~~~~~~~~~~~~~ + +Some battery systems have losses that are not accounted for by the conversion losses specified under Power Converters above. You can use the ancillary equipment losses to account for these additional losses. By default, these losses are set to zero, which is appropriate for most analyses. + +Ancillary Equipment Losses +-------------------------- + +These are losses to account for electrical losses or consumption by equipment in the battery system such as for heaters and pumps for temperature control equipment. + +For DC-connected batteries, the losses are applied the system's DC power. For AC-connected systems, they are applied to the AC power. + +Losses by operating mode +------------------------ + +Choose this option to specify losses by month that apply when the battery is charging, discharging, or idle. + +**Charging mode losses** + Losses that apply when the battery is charging. + + Click **Edit values** to specify the loss in kW by month. SAM applies the loss in each time step of the month. For example, if the expected loss in January is 500 W, enter 0.5 for January, and SAM will reduce the available power by 0.5 kW for each time step in January. + +**Discharging mode losses** + Losses that apply when the battery is discharging. + +**Idle mode losses** + Losses that apply when the battery is neither charging, nor discharging. + +Time series losses +------------------ + +Choose this option to specify hourly or subhourly time series losses. + +**Time series losses** + Click **Edit array** to enter or import kW loss values for each time step of the simulation. + +Battery Availability +-------------------- + +Battery availability losses can represent battery downtime for maintenance, system outages, or other times when the battery can neither charge nor discharge. The battery availability loss has the effect of reducing electricity to/from battery and battery state of charge in the time steps with availability losses. + +To explore the effect of battery availability losses, use the following output variables + +* **Electricity to/from battery AC (kW)** + +* **Battery state of charge (%)** + +* **Battery availability loss (%)** + +The **Electricity to [...] from battery (kW)** and **Electricity to battery from [...] (kW)** variables may also be useful. + +Battery availability losses affect both power and capacity. For a time step with availability loss, the loss percentage for that time step applies to both the battery power (kW) and capacity (kWh). Because the availability loss is intended to represent downtime for maintenance, the loss percentage also applies to the battery state of charge, assuming that cells are discharged to safely perform maintenance. This means that the battery will have a lower state of charge at the end of the availability loss period than at the beginning. + +.. note:: If the battery state of charge (SOC) is low when the availability loss period begins, the SOC could fall below the minimum SOC from the Battery Dispatch page. For example, a battery with a 10% minimum SOC that is at its minimum charge state when a period of 50% availability begins, would have a SOC of 5% at the end of the period. + +**Edit losses** + The :doc:`Edit Losses <../window-reference/win_edit_losses>` window allows you to define loss factors as follows: + + * Constant loss is a single loss factor that applies to the system's entire output. You can use this to model an availability factor. + + * Time series losses apply to specific time steps. + + SAM multiplies the battery power in each time step by the loss percentage that you specify for that time step. For a given time step, a loss of zero would result in no adjustment. A loss of 5% would reduce the power by 5%, and a loss of -5% would increase the power by 5%. + +.. _fom-thermal: + +Battery Thermal +~~~~~~~~~~~~~~~ + +The battery thermal model calculates the battery temperature in each simulation time step. Battery temperature affects battery capacity and degradation. The model's two main heat-transfer terms are transfer between the battery and its environment, and energy generated by resistive heating inside the battery. The cell internal resistance input is under Battery Voltage. + +.. note:: To verify that the battery thermal model is working as you expect, look at the **Battery temperature** output variable in the time series results to make sure it is within a reasonable range. If the temperature is higher or lower than you expect, you may need to adjust the thermal or physical properties inputs. + +Thermal Properties +------------------ + +**Specific heat Cp, J/kg-K** + Estimated specific heat capacity for the battery. + +**Heat transfer coefficient h, W/m²-K** + Estimated heat transfer coefficient for heat transfer from the battery to the room. + + The default value for smaller batteries assumed for behind-the-meter applications is 7.5 W/m²-K. For larger batteries in front-of-meter applications, the default is 15 W/m²-K. + +**Environment temp option** + Choose how to represent the temperature of the battery's environment. + + .. image:: /images/SS_Battery-TempOption.png + :align: center + :alt: SS_Battery-TempOption.png + +**Enter single fixed temperature** + Choose this option to model the battery environment temperature as a single constant value throughout the year. + +**Enter time series temperature** + Choose this option to provide your own time series temperature data for the battery environment. + +**Single environment temperature** + For the Enter Single Fixed Temperature option, the temperature of the battery environment in degrees Celsius. This is disabled for the Enter Time Series Temperature option. + +**Time series environment temperature** + For the Enter Time Series Temperature option, click **Edit array** to enter or import hourly or subhourly temperature data in degrees Celsius. Note that the number of time steps must match the simulation time step determined by the weather file. This is disabled for the Enter Single Fixed Temperature option. + +.. note:: For a battery in a conditioned space, be sure to account for power required for heating or cooling equipment under **Battery Losses**. SAM does not explicitly model battery heating or cooling equipment, so you should set the battery environment temperature inputs to the temperature of the conditioned space. + +Capacity Fade with Temperature +------------------------------ + +The manufacturer data sheet may include battery capacity versus temperature data showing how the battery's capacity decreases with ambient temperature. The Capacity Fade curve must have at least two rows of data. + +**Temp, °C** + Battery environment temperature in degrees Celsius. + +**Capacity, %** + Battery discharge capacity as a percentage of rated capacity at the given temperature. + +Physical Properties +------------------- + +The physical properties inputs are designed to scale with battery size so you don't have to change them each time you change the size of the battery bank. These values should be reasonable estimates of the battery bank or individual battery's actual dimensions. They do not need to be exact. + +**Specific energy per mass (Wh/kg)** + Energy content per unit mass. SAM uses this value to calculate the battery bank's mass based on its rated capacity in kWh. If you know the battery bank mass, you can calculate the specific energy by dividing the battery bank's rated capacity in DC Watt-hours by its mass in kilograms. + +**Battery mass, kg** + An estimate of the battery bank's mass. + + *Battery Mass (kg) = Nominal Bank Capacity (DC kWh) × 1,000 (Wh/kWh) ÷ Specific Energy per Mass (Wh/kg)* + +**Compute battery surface area as cube** + Choose this option to represent the battery bank as a cube for temperature calculation purposes. This option works better for smaller batteries than larger ones. Disable the option to represent the battery as a single battery. + +**Specific energy per volume, Wh/L** + The battery bank's energy content per unit volume. If you know the battery bank's volume, you can calculate the specific energy by dividing the battery bank's rated capacity in DC Watt-hours by its volume in liters. This option is enabled with **Compute battery surface area as cube**. + +**Battery volume, m³** + For the **Compute battery surface area as cube** option, an estimate the volume of the battery bank, represented as a cube. + + *Battery Volume (m³) = Nominal Bank Capacity (DC kWh) ÷ Specific Energy per Volume (Wh/L)* + +**Energy capacity of one module, kWh** + The nominal capacity of a single battery when **Compute battery surface area as cube** is disabled. This value is only used for battery temperature calculations, so the value should be reasonably close to the actual capacity of a single battery but does not need to be exact. + +**Surface area of one module, m²** + The surface area of a single battery when **Compute battery surface area as cube** is disabled. You can calculate this value by multiplying the battery's length, width, and height measurements. + +**Battery surface area, m²** + An estimate of the surface area of a single battery when **Compute battery surface area as cube** is disabled. + + *Battery Surface Area (m²) = Nominal Bank Capacity (DC kWh) ÷ Energy Capacity of One Module (DC kWh) × Surface Area of One Module (m²)* + +.. |EQ_BATT_lmo| image:: /images/EQ_BATT_lmo.png +.. |EQ_BATT_lfp| image:: /images/EQ_BATT_lfp.png +.. |EQ_BATT_nca| image:: /images/EQ_BATT_nca.png +.. |EQ_BATT_lto| image:: /images/EQ_BATT_lto.png +.. |EQ_BATT_nmc| image:: /images/EQ_BATT_nmc.png +.. |EQ_BATT_lco| image:: /images/EQ_BATT_lco.png +.. |EQ_BATT_Exponential| image:: /images/EQ_BATT_Exponential.png +.. |EQ_BATT_Nominal| image:: /images/EQ_BATT_Nominal.png \ No newline at end of file diff --git a/doc/source/battery-storage/battery_dispatch_btm.rst b/doc/source/battery-storage/battery_dispatch_btm.rst index 32c804cd47..1301e3ef65 100644 --- a/doc/source/battery-storage/battery_dispatch_btm.rst +++ b/doc/source/battery-storage/battery_dispatch_btm.rst @@ -1,7 +1,7 @@ Battery Dispatch BTM ==================== -The Battery Dispatch page for behind-the-meter (BTM) batteries displays inputs for controlling the timing of battery charging and discharging. For inputs that describe the battery's performance characteristics, see the :doc:`Battery Cell and System ` page. +The Battery Dispatch page for behind-the-meter (BTM) batteries displays inputs for controlling the timing of battery charging and discharging. For inputs that describe the battery's performance characteristics, see the :doc:`battery_cell_and_system` page. Charge Limits and Priority ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -11,5 +11,280 @@ Charge Limits and Priority Behind-the-meter (BTM) Storage Dispatch Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. include:: ../includes/snip_battery_dispatch_btm.rst +The battery *dispatch options* determine when the battery charges and discharges. The *charge options* determine any limits on how the battery can charge or discharge. +Dispatch Options +---------------- + +Choose the dispatch option that most closely represents when you want the battery to charge and discharge. + +.. note:: The list below provides a brief description of each option. To see a detailed description of each heading, click the appropriate grey and blue heading below to expand the detailed description. + + If you are modeling :doc:`grid outages <../grid/grid_outage>` to calculate resiliency metrics, during an outage the battery switches to a special dispatch mode that prioritizes meeting the load, regardless of the dispatch option you choose. + +**Peak shaving** + Dispatch the battery to reduce peak demand. Use this option when the electricity rate structure includes energy rates with kWh/kW units or demand charges and you want to use the battery to reduce billing demand. + +**Input grid power targets** + Dispatch the battery in response to time series grid power target data you provide to ensure the power from the grid is at or below the target power levels. + +**Input battery power targets** + Dispatch the battery according to time series charge and discharge power values you provide. Use this option when you know exactly how you want the battery to charge and discharge. + +**Manual dispatch** + Dispatch the battery based on month-by-hour weekday and weekend schedules you provide. Use this option to dispatch the battery in response to time-of-use electricity rates. + +**Retail rate dispatch** + Dispatch the battery to minimize the energy and demand charge portions of the monthly electricity bill. + +**Self-consumption** + Dispatch the battery to minimize power to and from the grid. + +Charge Options +-------------- + +The charge options control how the battery can charge and discharge. SAM enables and disables (greys out) the options as appropriate for the dispatch option and whether the battery is DC- or AC-connected. + +**Battery can charge from grid** + Allow power from the grid to charge the battery. + +**Battery can charge from system** + Allow the photovoltaic array or other power system to charge the battery. + +**Battery can charge from grid-limited system power** + Allow the battery to charge from power in excess of the interconnection limit or from curtailed power when the interconnection limit is enabled and/or curtailment is specified on the :doc:`../grid/grid_limits` page. + +**Battery can charge from clipped system power** + For a photovoltaic array with DC-connected battery, allow the photovoltaic array to charge the battery when the array DC power exceeds the inverter nominal DC input power. + +**Battery can discharge to grid** + Allow the battery to discharge to the grid. + +**Charge from system only when system output exceeds load** + Allow the photovoltaic array or other power system to charge the battery only when the system AC output is greater than  the load. + +**Discharge battery only when load exceeds system output** + Allow the battery to discharge only when the load is greater than the photovoltaic or other power system AC output. + +**Battery can charge from fuel cell** + For system with fuel cells, allow the battery to charge from the fuel cell. (This option is only visible for fuel cell configurations.) + +Peak Shaving +~~~~~~~~~~~~ +The peak shaving dispatch options attempt to discharge the battery during times of peak demand over a forecast period. Peak shaving dispatch considers the load, and either the available solar resource for PV systems, or the AC output for other systems over the forecast period and calculates a grid power target for each time step in that period. It then charges or discharges the battery as possible given the battery's capacity and state of charge to meet the target. Use this option to reduce monthly demand charges when the rates on the :doc:`Electricity Rates <../electricity-rates-and-load/electricity_rates>` page include demand rates. + +Peak shaving discharges the battery each day to reduce that day's peak load. This results in more battery cycling than would result from a dispatch strategy that discharges the battery once a month to reduce the peak load. + +For a detailed description of the behind-the-meter peak shaving dispatch algorithm, see DiOrio, N. (2017). An Overview of the Automated Dispatch Controller Algorithms in SAM. NREL/TP-6A20-68614. (`PDF 770 KB `__) + +Peak Shaving Option +------------------- + +**One day look ahead (perfect)** + For each day, dispatch the battery based on the solar resource over the next 24 hours and the load over the forecast horizon specified below. The look-ahead option is a perfect prediction of the load and solar resource because the battery dispatch coincides with the solar resource and load. + +**One day look behind** + Similar to the one-day look ahead option, but based on the previous 24 hours of solar resource for the prediction. The look-behind option adds some uncertainty to the dispatch because the battery dispatch coincides with solar resource for the previous day, so the battery dispatch for each day may not exactly match the solar resource. + +.. image:: /images/IMG_BATT-dispatch-peak-shaving.png + :align: center + :alt: IMG_BATT-dispatch-peak-shaving.png + +.. note:: SAM allows you to use a different forecast period for the solar resource and the load. Choose both a peak shaving option and a load forecast horizon option as appropriate for your analysis. + +**Custom forecast** + Combines one day look ahead dispatch with a different weather file than the one used for the photovoltaic system simulation. This makes the dispatch more realistic because the battery dispatch does not exactly match the the photovoltaic system output. + + For the custom forecast option, click **Browse** to choose the a weather file to use for battery dispatch. + +Load Forecast Horizon +--------------------- + +**Perfect look ahead** + For each day, dispatch the battery based on the load specified on the :doc:`Electric Load <../electricity-rates-and-load/electricity_load>` page over the next 24 hours and the solar resource over the period specified above. + +**One day look behind** + Similar to perfect look ahead, but based on the previous 24 hours of load data. + +**Look ahead to custom load** + Similar to perfect look ahead, but dispatches the battery based on different load data than the data on the Electric Load page. + +**Custom load profile** + For the Look Ahead to Custom Load Forecast option, the load data to use for the dispatch forecast instead of the data on the Electric Load page. + + Click **Edit array** to import or paste custom load data for the dispatch forecast. + +**Match load growth** + For the Look Ahead to Custom Load Forecast option, use the same load growth rate for the forecast load as the load data on the Electric Load page. + +**Enter custom growth** + For the Look ahead to Custom Load Forecast option, use a different load growth rate than the load data on the Electric Load page. + +**Load forecast growth rate** + For the Look Ahead to Custom Load forecast option with Enter Custom Growth, the annual growth rate for the custom load profile. + +Input grid power targets +~~~~~~~~~~~~~~~~~~~~~~~~ +The input grid power target option is similar to the peak shaving option, except that it attempts to operate the battery in response to grid power targets that you specify instead of automatically calculating the targets to reduce peak demand. In each time step, SAM compares the electric load to the power target, charges the battery when the load is less than the target, and discharges when the load is greater than the target. You can specify either twelve constant monthly targets, or a target for each time step. + +.. note:: The system may not always be able to meet the grid power targets, for example, if the battery is discharged when the photovoltaic array or other power source is not generating power. + +Choose **Input grid power targets**, and then choose either **Monthly power targets** or **Time series power targets**: + +.. image:: /images/ss-battery-dispatch-btm-grid-targets.png + :align: center + :alt: ss-battery-dispatch-btm-grid-targets.png + +**Monthly power targets** + Choose this option to specify a either a single grid power target for the entire year by setting the grid power target for all months to the same value, or a different grid power target for each month. + + For **Monthly grid power targets**, Click **Edit values** to specify the targets. To apply a single target to the entire year, enter the target as a single value in the Edit Values window and click **Apply**. + +**Time series power targets** + Choose this option to enter a grid power target for each time step in the simulation. For **Time series grid power targets**, click **Edit array** to specify the targets. + +Input battery power targets +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The input battery power targets option operates the battery in response to battery power targets you specify. In each time step, the controller attempts to charge to the negative power value you enter, or discharge to the positive power value you enter. + +Choose **Input battery power** targets, and then enter the battery power target data. + +**Time series battery power targets** + Click **Edit array** and import or copy and paste an array of battery power values in kW, where discharge power is positive, charge power is negative. The array must have the same number of rows as simulation time steps: For hourly simulations, 8,760 rows, for for 15-minute simulations 35,040 rows, etc. + +.. note:: For standalone batteries, the time step for time series power targets must be the same as the simulation time step, which you can set on the :doc:`Battery Time Step <../battery-storage/battery_time_step>` page. + +Manual dispatch +~~~~~~~~~~~~~~~ +For the manual dispatch option, you specify the timing of battery charges and discharges using up to six dispatch periods and a set of weekday and weekend hourly profiles by month under **Manual Dispatch**. + +**Charge from system** + For each period that you want to allow the battery to be charged by power from the system, check the box in the **Charge from system** column. + +**Charge from grid** + For each period that you want to allow the battery to be charged by power from the grid, check the box in the **Allow** column, and specify the percentage of the battery's state of charge that can be charged from the grid over the time step in the **Rate** column. + + For example, for hourly simulations, a charge rate of 25% would allow the battery to charge from the grid at 25% of its state of charge at the beginning of the time step over the time step. The purpose of this rate is to avoid damaging the battery by charging it too quickly. + +.. note:: For subhourly simulations, the charge and discharge percentages apply to the subhourly time step even though the periods are defined in hours. + + For a behind-the-meter application, if **Charge from grid** and **Charge from system** are both checked for a given period, and if in a time step in that period the system power is greater than the :doc:`load <../electricity-rates-and-load/electricity_load>`, power from the grid supplements the system power to meet the battery charge requirement. + + If **Charge from grid** and one or both of the discharge options is also checked for a given period, and if in that period the battery state of charge is above the minimum state of charge, the battery discharges until it reaches the minimum state of charge, at which point it starts charging from the grid, either until it reaches the maximum state of charge, or until the time period changes to one that does not allow charging from the grid. + +**Discharge to load** + For each period that you want to allow the battery to discharge to the load, check the box in the **Allow** column, and specify the percentage of the battery's available charge that can be discharged to the load over the time step in the **Rate** column. + + For example, let's assume that Period 3 is the four consecutive hours between 3 pm and 6 pm, the discharge rate is 25%, and the minimum and maximum state of charge limits under **Charge Limits and Priority** are 30% and 96%, respectively. For an hourly simulation, that would allow up to 25% of the battery state of charge at the beginning of the 3 pm hour to be discharged over the hour. For the 4 pm hour, 25% of the charge at the end of the 3 pm hour would be available, and so on until the end of Period 3. The 25% discharge rate would result in the battery being fully discharged over the four-hour period. (A 20% value would have the same effect for a 5-hour period, i.e., if Period 3 were between 3 pm and 7 pm.) + + For a one-minute simulation, a discharge rate of 25% would allow up to 25% of the available charge to be dispatched *every minute* over Period 3, so a smaller percentage would be required to allow the battery to discharge over the full four-hour period. + +**Discharge to grid** + The battery can only discharge to the grid during time steps that it is allowed to discharge to the load. For each period that you want to allow the battery to discharge to the grid, check the box in the **Allow** column. SAM uses the same discharge rate for discharges to the load and the grid. + +**System power priority** + Use this option to determine how to prioritize electricity from the power generating system (PV array or custom generation profile). This option is not available with the **Charge from system only when system output exceeds load** option. + + Choose **Meet load** to prioritize using system power to meet the load over charging the battery. + + Choose **Charge battery** to prioritize using system power to charge the battery over meeting the load. + +**Weekday and Weekend Schedules** + The weekday and weekend schedules determine the hour of day and month of year for each of the up to six dispatch periods. SAM ignores the charge and discharge options for any periods that you do not assign to the weekday or weekend schedules. + + To define the hour of day and month of year that each period applies, use your mouse to select a rectangle in the schedule matrix, and use your keyboard to type the period number (1-6). The number you type should appear in the rectangle. + + See :doc:`Weekday Weekend Schedules <../reference/weekday_schedule>` for a step-by-step description of how to use the schedule matrices. + +**Copy Schedules from TOU/TOD Schedules** +Use this button to copy the the weekday and weekend schedules from the energy charge time-of-use schedule on the Electricity Rates page. + +Retail rate dispatch +~~~~~~~~~~~~~~~~~~~~ + +The retail rate dispatch option operates the battery to minimize the electricity bill based on an estimate of retail electricity price that represents the cost to the system owner of purchasing electricity from the grid in each time step. For this option, battery dispatch depends on: + +* A rolling 24-hour forecast of system power generation and load as defined under **Generation Forecast Horizon**. + +* Energy and demand rates (flat, time-of-use, and/or tiered) + +* Battery state of charge and available capacity + +* Battery degradation + +* Cost of future battery replacements + +The original implementation of the retail rate dispatch option is described (as "price signal forecast") in Mirletz, B.; Guittet, D. (2021). Heuristic Dispatch Based on Price Signals for Behind-the-Meter PV-Battery Systems in the System Advisor Model. NREL/CP-7A40-79575. (`PDF 2.2 MB `__) + +Generation Forecast Horizon +--------------------------- + +The generation forecast horizon determines whether the battery dispatch responds to a perfect forecast of the system's output, or to a forecast that is different from the system's output over the forecast period. + +**Perfect look ahead** + For each day, dispatch the battery based on the system's output over the next 24 hours. + +**One day look behind** + Similar to perfect look ahead, but based on the system's output over the previous 24 hours. This adds some uncertainty to the dispatch because yesterday's generation profile is likely to be different from today's. + +**Look ahead to custom weather file** + For the PV Battery configuration, use a different weather file for the generation forecast than for simulating the system's power output. Use this option when you want the battery dispatch to be more realistic by not responding exactly to the system's output. + +**Weather file for retail rate dispatch** + The weather file to use for the Look Ahead to Custom Weather File option. Click **Browse** to choose a weather file in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` . + +Load Forecast Horizon +--------------------- + +The generation forecast horizon determines whether the battery dispatch responds to a perfect forecast of the building or facility's electric load, or to a forecast that is different from the load over the forecast period. + +**Perfect look ahead** + For each day, dispatch the battery based on the load specified on the :doc:`Electric Load <../electricity-rates-and-load/electricity_load>` page over the next 24 hours. + +**One day look behind** + Similar to perfect look ahead, but based on the previous 24 hours of load data. + +**Look ahead to custom load** + Similar to perfect look ahead, but dispatches the battery based on different load data than the data on the Electric Load page. + +**Custom load profile** + For the Look Ahead to Custom Load Forecast option, the load data to use for the dispatch forecast instead of the data on the Electric Load page. + + Click **Edit array** to import or paste custom load data for the dispatch forecast. + +**Match load growth** + For the Look Ahead to Custom Load Forecast option, use the same load growth rate for the forecast load as the load data on the Electric Load page. + +**Enter custom growth** + For the Look ahead to Custom Load Forecast option, use a different load growth rate than the load data on the Electric Load page. + +**Load forecast growth rate** + For the Look Ahead to Custom Load forecast option with Enter Custom Growth, the annual growth rate for the custom load profile. + +Cycle Degradation Penalty +------------------------- + +The cycle degradation penalty is an estimate of the cost of charge-discharge cycles that makes it possible to account for the effect of cycling the battery on the cost of battery replacements. More frequent charge-discharge cycles can result in faster degradation of the battery and more replacements over the analysis period. Increasing the cycle degradation penalty causes the price signal forecast dispatch algorithm to attempt to reduce the frequency of battery charge-discharge cycles. + +.. note:: Battery degradation and replacement parameters are on the :doc:`Battery Life <../battery-storage/battery_life>` page. + +**Cycle degradation penalty method** + Choose a method for estimating the cost of cycling the battery: + +* Choose **Calculate automatically** if you want SAM to calculate the cost. + +* Choose **Enter penalty** to enter a cost per cycle-kWh value. + + If you choose the Calculate Automatically option, SAM reports the calculated penalty as **Computed cycle degradation penalty** in the :doc:`battery time series results <../battery-storage/battery_results>`. + +**Cycle degradation penalty** + The penalty in $/cycle-kWh of battery total capacity for cycling the battery. You can either enter a single value, or click |SS_AnnSched-valschedbutton| to enter a different penalty for each year of the analysis period as an :doc:`annual schedule <../window-reference/win_edit_data_table_column>` . + +Self-consumption +~~~~~~~~~~~~~~~~ + +The self-consumption dispatch option dispatches the battery to minimize power to and from the grid. + +This dispatch option is equivalent to the input grid power targets dispatch option with the grid power target set to zero for all time steps. + +.. |SS_AnnSched-valschedbutton| image:: /images/SS_AnnSched-valschedbutton.png diff --git a/doc/source/battery-storage/battery_dispatch_fom.rst b/doc/source/battery-storage/battery_dispatch_fom.rst index 52cdbd05a6..4ee15e8d6c 100644 --- a/doc/source/battery-storage/battery_dispatch_fom.rst +++ b/doc/source/battery-storage/battery_dispatch_fom.rst @@ -1,7 +1,7 @@ Battery Dispatch FOM ==================== -The Battery Dispatch page displays inputs for controlling the battery dispatch, or timing of battery charging and discharging. For inputs that describe the battery's performance characteristics, see the :doc:`Battery Cell and System ` page. +The Battery Dispatch page displays inputs for controlling the battery dispatch, or timing of battery charging and discharging. For inputs that describe the battery's performance characteristics, see the :doc:`battery_cell_and_system` page. Charge Limits and Priority ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -11,5 +11,265 @@ Charge Limits and Priority Front-of-meter (FOM) Storage Dispatch Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. include:: ../includes/snip_battery_dispatch_fom.rst +The battery *dispatch options* determine when the battery charges and discharges. The *charge options* determine any limits on how the battery can charge or discharge. +Dispatch Options +---------------- + +Choose the dispatch option that most closely represents when you want the battery to charge and discharge. + +.. note:: The list below provides a brief description of each option. To see a detailed description of each heading, click the appropriate grey and blue heading below to expand the detailed description. + +**Automated dispatch** + Automated dispatch dispatches the battery in response to changes in the power price to maximize revenue from power sales. Use this option for PPA projects that involve time-of-delivery price multipliers or Merchant Plant projects. + +**PV smoothing** + PV smoothing dispatches the battery for photovoltaic-battery systems to limit power ramp rates at the grid interconnection point. Use this option for projects required to meet ramp rate limits. This option is available for PV battery and Custom Generation Profile - Battery systems. It is not available for standalone batteries. + +**Dispatch to custom time series** + Dispatch the battery according to time series charge and discharge power values you provide. Use this option when you know exactly how you want the battery to charge and discharge. + +**Manual dispatch** + No automation. You specify the timing of battery charges and discharges manually using up to six dispatch periods and a set of weekday and weekend hourly profiles by month. Use this option when you want the battery to charge and discharge according to daily or seasonal schedules. + +Charge Options +-------------- + +Choose the source of power for charging the battery. SAM enables and disables (greys out) the options as appropriate for the dispatch option and whether the battery is DC- or AC-connected. + +**Battery can charge from grid** + Allow the grid to charge the battery. + +**Battery can charge from system** + Allow the system to charge the battery. + +**Battery can charge from grid-limited system power** + Allow the battery to charge from power in excess of the interconnection limit or from curtailed power when the interconnection limit is enabled and/or curtailment is specified on the :doc:`Grid Limits <../grid/grid_limits>` page. + + This option is designed so that when system power exceeds a grid limit, system power is delivered to the load and/or grid, and only power in excess of the grid limit is used to charge the battery: The battery is only allowed to charge from grid limited power when it is not allowed to charge from the system. + +**Battery can charge from clipped system power** + For DC-connected batteries with a photovoltaic system, allow DC array power in excess of the inverter's nominal DC input power to charge the battery. + +Automated Dispatch +~~~~~~~~~~~~~~~~~~ + +SAM's front-of-meter automated dispatch algorithm attempts to charge and discharge the battery to maximize revenue from power sales to the grid. It calculates a battery power target for each time step, and charges or discharges the battery to attempt to meet the target, given any constraints on battery capacity and battery state of charge, and accounting for power conversion losses. Note that in some time steps, depending on the battery's state of charge and other constraints, the battery discharge power may be less than the target. + +You can explore the results of the automated dispatch by comparing the output variables **Electricity battery power target for automated dispatch** to **Electricity to/from battery**. Other useful output variables include **Power price for battery dispatch** representing the power prices used for battery dispatch calculations,  **Battery state of charge**, **Electricity to grid from battery**,and **Electricity to grid from system** (for PV Battery and Custom Generation Profile - Battery configurations). + +Automated battery dispatch responds to power prices that vary over time, which can be defined as a PPA price with time-of-delivery multipliers for PPA projects, or market prices for Merchant Plant projects. For batteries connected to a power system (PV Battery and Custom Generation Profile - Battery configurations), battery dispatch also responds to the availability of power from the system. Battery dispatch also accounts for the cost of cycling the battery based on a prediction of how battery cycling will affect battery degradation and replacements. + +The automated dispatch options determine the time horizon over which the algorithm maximizes revenue + +The automated dispatch algorithms are described in DiOrio, N.; Denholm, P.; Hobbs, W. (2020). `A Model for Evaluating the Configuration and Dispatch of PV Plus Battery Power Plants `__. Applied Energy Vol 262 March 2020, also listed on the SAM website at https://sam.nlr.gov/battery-storage/battery-publications.html. + +.. note:: For power purchase agreement (PPA) financial models, the automated dispatch options require that you choose **Specify PPA Price** on the Revenue page (Financial Parameters page for Partnership Flip and Sale Leaseback financial models) because the dispatch algorithm needs to know the power price as the simulation runs. For the Specify IRR Target option, SAM does now know the PPA price until the end of the simulation. + + Automated dispatch is designed to respond to power prices that change over time. For the PPA financial models, you can specify power price multipliers either using weekday and weekend schedules, or by time step. (Set the PPA price to $1/kWh if you want to use $/kWh price data instead of multipliers, or set it to $0.001/kWh for $/MWh price data.) + + The merchant plant financial model may not work well with battery storage systems because of the cleared capacity requirement. + +**Perfect look ahead** + For each day, charge and discharge the battery based on the available power from the photovoltaic or other power source and power price to maximize revenue. For standalone batteries with no power system, charge and discharge the battery based on the power price. + + The look-ahead option is a perfect prediction of available power and prices because the battery dispatch coincides with the actual power generation and prices. + +**One day look behind** + Similar to perfect look ahead, but based on the available power and power prices in the previous 24 hours. The look-behind option adds some uncertainty to the dispatch because the battery dispatch coincides with power generation and prices for the previous day. The following illustration is for behind-the-meter storage with an electric load, but the concept is the same for a front-of-meter battery. + +.. image:: /images/IMG_BATT-dispatch-fom-automatic.png + :align: center + :alt: IMG_BATT-dispatch-fom-automatic.png + +**Custom forecast** + Similar to the look ahead automated dispatch option, except use different time series data for the forecast of power available to charge the battery than that used to model the system's power output: + + * For the PV Battery configuration, use a different weather file than the one on the Location and Resource page. + + * For the Custom Generation Profile - Battery configuration, use a different generation profile for the forecast than the generation profile on the Power Plant page. + +.. note:: The custom forecast option is not available for standalone batteries, which do not dispatch in response to a generation profile of a photovoltaic array or other power generating equipment. + +**Frequency to update dispatch** + For any of the three automated dispatch options, determines how often a new dispatch decision is made. + +**Look ahead period** + For the Perfect Look Ahead and Look Ahead to Custom Weather file options, the number of hours ahead of the current time step to use for the dispatch decision in the current time step. + +**Weather file for automated dispatch** + For the PV Battery configuration, the weather file to use for the custom forecast option. Click **Browse** to choose a weather file in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` . + +**Generation profile for automated dispatch** + For the Custom Generation Profile - Battery configuration, a time series generation profile (hourly or subhourly) to use for the custom forecast option. Click **Edit array** to import or paste a generation profile. + +Cycle Degradation Penalty +------------------------- + +The cycle degradation penalty represents the future cost of replacing the battery. It allows SAM to account for the battery replacement cost in the battery dispatch decision. For any of the automated dispatch options, choose a method for estimating the cost of cycling the battery: + +* **Calculate automatically** if you want SAM to calculate the cost. + +* **Enter penalty** to enter a cost per cycle-kWh value. + +If you choose the Calculate Automatically option, SAM reports the calculated penalty as **Computed cycle degradation penalty** in the :doc:`battery time series results <../battery-storage/battery_results>`. + +**Cycle degradation penalty** + When you choose the "enter penalty" option for the cycle degradation penalty option, this is the penalty in $/cycle-kWh of battery total capacity for cycling the battery. You can either enter a single value, or click the blue and grey **Value/Sched** button to enter a different penalty for each year of the analysis period. + +PV Smoothing +~~~~~~~~~~~~ + +The PV smoothing algorithm dispatches the battery to reduce rapid fluctuations in a photovoltaic-battery system's output that can occur on partly cloudy days. + +.. note:: The PV smoothing algorithms requires a simulation time step of 15 minutes or smaller. For SAM's photovoltaic models, the simulation time step is determined by the temporal resolution of the weather file. You can download 15-minute and 5-minute weather data from the NLR National Solar Radiation Database by choosing the **Advanced download** option on the Location and Resource page, or you can convert data from an hourly weather file to subhourly time steps using the "Solar Resource Interpolation" :doc:`macro <../reference/macros>`. + + When you choose the PV smoothing dispatch option, be sure to check the charge options to allow the battery to charge from the system, grid or both. + + Simulations with PV smoothing can take several minutes to run, depending on your computer and the weather file time step. + +After running a simulation, you can find results of the PV smoothing algorithm on the Results page Data Tables, Time Series, and other tabs by searching for "pv smoothing." The relevant results all start with **PV smoothing...**. **PV smoothing outpower** is the battery target power for PV smoothing algorithm: It attempts to dispatch the battery to meet the target, but constraints such as battery state of charge may prevent the target from being met in some time steps. **Electricity to grid** is power delivered by the PV system and/or battery to the grid, which may be subject to grid constraints or AC losses specified on the :doc:`battery_cell_and_system`, :doc:`Grid <../grid/grid_limits>` and :doc:`Losses <../detailed-photovoltaic-model/pv_electrical_losses>` pages. + +For more information about the algorithm, see: + +* For an introduction to the PV Smoothing algorithm, see the "Battery Updates for Fall 2021" webinar recording available on the SAM website at https://sam.nlr.gov/battery-storage/battery-videos.html. + +* The model is based on the EPRI open source project PV Ramp Rate Smoothing available on GitHub.com at https://github.com/epri-dev/PV-Ramp-Rate-Smoothing. + +* For a description of the model, see Fregosi, D.; Bolen, M.; Hobbs, W. (2023) "An analysis of storage requirements and benefits of short-term forecasting for PV ramp rate mitigation" available from https://sam.nlr.gov/battery-storage/battery-publications.html. + +**Weather file time stamp, minutes** + The temporal resolution of the currently selected weather file on the Location and Resource page. The PV smoothing algorithm requires a weather file with a time step of 15 minutes or smaller. + +**Ramp timestep multiplier** + The ramp interval is a multiple of the simulation time step determined by the ramp timestep multiplier. For example, if the simulation time step is 5 minutes, for a ramp interval of 15 minutes, you would enter a ramp timestep multiplier value of 3. + +**Ramp interval, minutes** + The interval used to calculate the ramp rate. The ramp rate is a change in power from one interval to the next. + +*Ramp Interval (minutes) = Weather File Times Step (minutes) × Ramp Timestep Multiplier* + +**Maximum ramp rate, % of nameplate per ramp interval** + The maximum change in power allowed from one ramp interval to the next as a percentage of the **Nameplate for PV smoothing**, or the interconnection limit from the :doc:`Grid <../grid/grid_limits>` page, whichever is less. + +.. note:: SAM uses the interconnection limit value to calculate the PV smoothing maximum ramp rate even when the interconnection limit on the Grid page is disabled. If you do not want the interconnection limit to affect PV smoothing, enable it and set it to a value much higher than the PV array nameplate capacity, and then disable it. + +**Battery resting SOC, %** + The battery resting state of charge as a percent of its nameplate capacity. + +**Battery energy, kWhac** + The battery's nominal capacity expressed in AC kilowatt-hours, from the :doc:`battery_cell_and_system` page. + +**Battery power, kWac** + The battery's nominal maximum discharge rate expressed in AC kilowatt-hours, from the :doc:`battery_cell_and_system` page. + +**Battery round trip efficiency, %** + An estimate of the battery's nominal round-trip efficiency, calculated from Power Converters parameters on the :doc:`battery_cell_and_system` page. Note that SAM calculates the battery's actual round-trip efficiency during simulations and reports it in the :doc:`Summary tab <../results/summary>` of the Results page. + + For a DC-connected battery: + +*Battery Round Trip Efficiency (%) = ( DC to DC Conversion Efficiency (%) × Inverter Efficiency Cutoff (%) ) ÷ 100%* + + For an AC-connected battery: + +*Battery Round Trip Efficiency (%) = ( AC to DC Conversion Efficiency (%) × DC to AC Conversion Efficiency (%) ) ÷ 100%* + +**Nameplate for PV smoothing, kWac** + The PV array's nameplate capacity in AC kilowatts, from the :doc:`System Size <../detailed-photovoltaic-model/pv_system_size>` page. + +**Interconnection limit, kWac** + The grid interconnection limit from the :doc:`Grid <../grid/grid_limits>` page. Used to calculate the maximum ramp rate. See description above. + +**Enable AC upper bound** + This constraint prevents the output power after PV smoothing from exceeding the AC upper bound that you specify. + +**AC upper bound, fraction of nameplate** + When you enable AC upper bound, the system's output is limited to this fraction of **Nameplate for PV smoothing**. + +**Enable AC lower bound** + This constraint prevents the system's output power after PV smoothing from falling below the AC lower bound that you specify. + +**AC lower bound, fraction of nameplate** + When you enable AC lower bound, the system's output is + +**Correct up-ramp violations** + Use PV smoothing to correct ramp violations when power increases from one interval to the next. + +**Curtail violations** + Curtail up-ramp violations rather than sending excess power to the grid. + +**Enable short-term power forecast** + Consider future power output in battery dispatch decision. + +**Forecasting window, periods of ramp rate intervals** + The forecast period when you enable short-term power forecasts. + +**Perfect look ahead** + For the Enable Short-term Power Forecast option, use the system output in the forecast period for the power forecast. + +**Look ahead to custom weather file** + For the Enable Short-term Power Forecast option, base the power forecast on a different weather file than the weather file from the Location and Resource page used to simulate the system's performance. + +**Weather file for PV smoothing forecast** + For the Look Ahead to Custom Weather File option, the weather file to use for the smoothing forecast. Click **Browse** to choose a weather file in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` for the forecast. The weather file should have the same time step as the simulation weather file. + +Multipliers +----------- + +The multipliers are error terms for a PI (proportional plus integral) controller. + +**Track PV power multiplier (kp)** + Determine how aggressively to PV power. Default is 1.2. + +**Return to rest SOC multiplier (ki)** + Determine how aggressively to return the battery to its resting state of charge. Default is 1.8. + +**Forecast accumulation error multiplier (kf)** + Applies to the difference between the power and forecast power for the ramp rate adjustment. Default is 0.3. + +**Reset to defaults** + Resets the three multipliers kp, ki, and kf to their default values. + +Dispatch to Custom Time Series +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For the dispatch to custom time series option, provide a time series of battery power values. SAM attempts to charge and discharge the battery to meet the battery power target values. + +**Time series battery power targets** + Click **Edit array** to enter time series battery power values. A negative power value for a time step indicates the battery controller should attempt to charge the battery at the given rate in that time step. A positive power value indicates the battery should discharge. + +.. note:: For standalone batteries, the time step for time series power targets must be the same as the simulation time step, which you can set on the :doc:`Battery Time Step <../battery-storage/battery_time_step>` page. + +Manual Dispatch +~~~~~~~~~~~~~~~ + +For the manual dispatch option, you specify the timing of battery charges and discharges using up to six dispatch periods and a set of weekday and weekend hourly profiles by month under **Manual Dispatch**. + +**Charge from system** + For each period that you want to allow the battery to be charged by power from the system, check the box in the **Charge from system** column. Charge from system is disabled for standalone batteries. + +**Charge from grid** + For each period that you want to allow the battery to be charged by power from the grid, check the box in the **Allow** column, and specify the percentage of the battery's state of charge that can be charged from the grid over the time step in the **Rate** column. + + For example, for hourly simulations, a charge rate of 25% would allow the battery to charge from the grid at 25% of its state of charge at the beginning of the time step over the time step. The purpose of this rate is to avoid damaging the battery by charging it too quickly. + +.. note:: For subhourly simulations, the charge and discharge rates apply to the subhourly time step even though the periods are defined in hours. + + If **Charge from grid** and the discharge option is also checked for a given period, and if in that period the battery state of charge is above the minimum state of charge, the battery discharges until it reaches the minimum state of charge, at which point it starts charging from the grid, either until it reaches the maximum state of charge, or until the time period changes to one that does not allow charging from the grid. + +**Discharge to grid** + For each period that you want to allow the battery to discharge to the grid, check the box in the **Allow** column, and specify the percentage of the battery's state of charge that can be discharged to the grid over the time step in the **Rate** column. + + For example, if Period 3 is the four consecutive hours between 3 pm and 6 pm, the discharge rate is 25%, and the charge limits are 30% and 96%, for an hourly simulation, that would allow up to 25% of the battery state of charge at the beginning of the 3 pm hour to be discharged over the hour. For the 4 pm hour, 25% of the charge at the end of the 3 pm hour would be available, and so on until the end of Period 3. The 25% value would discharge the battery over the full four-hour period. (A 20% value would have the same effect for a 5-hour period, i.e., if Period 3 were between 3 pm and 7 pm.) + + For a one-minute simulation, a discharge rate of 25% would allow up to 25% of the available charge to be dispatched *every minute* over Period 3, so a smaller percentage would be required to allow the battery to discharge over the full four-hour period. + +**Weekday and Weekend Schedules** + The weekday and weekend schedules determine the hour of day and month of year for each of the up to six dispatch periods. SAM ignores the charge and discharge options for any periods that you do not assign to the weekday or weekend schedules. + + To define the hour of day and month of year that each period applies, use your mouse to select a rectangle in the schedule matrix, and use your keyboard to type the period number (1-6). The number you type should appear in the rectangle. + + See :doc:`Weekday Weekend Schedules <../reference/weekday_schedule>` for a step-by-step description of how to use the schedule matrices. + +**Copy Schedules from TOU/TOD Schedules** + Use this button to copy the the weekday and weekend schedules from the time-of-delivery (TOD) schedules on the Time of Delivery or Revenue page for front-of-meter (FOM) systems. This option is not available for the Merchant Plant financial model. diff --git a/doc/source/battery-storage/battery_life.rst b/doc/source/battery-storage/battery_life.rst index f292bc1177..84711f0c2e 100644 --- a/doc/source/battery-storage/battery_life.rst +++ b/doc/source/battery-storage/battery_life.rst @@ -8,10 +8,94 @@ The battery life inputs determine how the battery degrades over time, and the ti Battery Bank Replacement ~~~~~~~~~~~~~~~~~~~~~~~~ -.. include:: ../includes/snip_battery_replacement.rst +When you enable battery replacements, SAM determines when batteries need to be replaced based either on battery degradation as determined by the Battery Lifetime inputs or a fixed replacement schedule that you specify. It also calculates an annual replacement cost in the project cash flow based battery replacement cost on the :doc:`Operating Costs <../operating-costs/oc_battery>` page. + +**No replacements** + Use this option if you do not want to account for battery replacement costs, or if you want to account for them using one of the general cost categories on the :doc:`Operating Costs <../operating-costs/oc_battery>` page . + + If you choose the No replacements option, SAM operates the system with no battery after the available storage capacity is depleted. + +**Replace at specified capacity** + Use this option if you want SAM to calculate the year(s) in which batteries are replaced based on degradation of the battery's capacity caused by battery cycling as determined from the **Battery Lifetime** parameters. + + Set **Battery bank replacement threshold** as percentage of the nominal battery capacity that triggers a replacement. When the battery's available capacity has degraded to this percentage, SAM replaces the battery and applies the battery replacement cost from the :doc:`Operating Costs <../operating-costs/oc_battery>` page to the project :doc:`cash flow <../results/cashflow>` . If you set the threshold to less than 2%, SAM sets the value internally to 2% to avoid simulation issues as the battery's available capacity approaches 0% of its original capacity. + +**Replace at specified schedule** + Use this option to specify the years when batteries are replaced and the percent of nominal battery capacity that is replaced in those years, regardless of the battery's degradation. + + Click **Edit array** to specify the percentage of total battery capacity to be replaced in each replacement year. In the Edit Array window, click **Number of values**, and enter the analysis period from the :doc:`Financial Parameters <../financial-parameters/fin_overview>` input page. Then in the table, type a percentage for each year in which the batteries will be replaced. The rows for the remaining years should be zero. Battery Life Options ~~~~~~~~~~~~~~~~~~~~ -.. include:: ../includes/snip_battery_lifetime.rst +The battery life model determines battery's degradation, or reduction in available battery capacity over time. There are two degradation mechanisms: + +* Calendar degradation is a reduction in battery capacity due to age, regardless of how the battery is used. + +* Cycle degradation is a reduction in battery capacity due to the number of charge/discharge cycles. + +SAM provides three options for modeling battery life: + +**Cycle and calendar degradation** + This option characterizes the battery life parameters using tables of cycle degradation and calendar degradation rates that you can customize. SAM applies the  minimum of the the two types of degradation. + +**Li-ion NMC/Graphite** + This option for the Lithium-ion Nickel Manganese Cobalt (NMC) Oxide battery type uses an internal battery life model that you cannot modify. The model includes both calendar and cycle degradation, and applies the sum of the two types of degradation. + +**Li-ion LMO/LTO** + This option for the Lithium-ion LMO/Lithium Titanate battery type uses an internal battery life model that you cannot modify. The model includes both calendar and cycle degradation, and applies the sum of the two types of degradation. + +SAM's Li-ion battery life models are adapted from the work presented in the following papers: + +* Smith, K.; Saxon, A.; Keyser, M.; Lundstrom, B.; Cao, Z.; Roc, A. (2017). Life Prediction Model for Grid-connected Li-ion Battery Energy Storage System. Presented at 2017 American Control Conference. (`PDF 1.4 KB `__) + +* Spotnitz, R. (2002). `Simulation of Capacity Fade in Lithium-ion Batteries `__. Journal of Power Sources. Vol 113 pp 72-80 2003. + +The Cycle and Calendar Degradation model is described in Section 2.3 of: + +* DiOrio, N.; Dobos, A.; Janzou, S.; Nelson, A.; Lunstrom, B. (2015). Technoeconomic Modeling of Battery Energy Storage in SAM. 32 pp. NREL/TP-6A20-64641 (`PDF 2.6 MB `__) + +Cycle and Calendar Degradation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Cycle and Calendar Degradation option determines the battery's available or effective capacity in each time step based on both calendar degradation and cycle degradation, and sets the battery capacity to the minimum of the two. For example, if in a given time step cycle degradation is 75% of total capacity and calendar degradation is 87%, SAM sets the battery capacity to 75% of the total capacity. You can verify this behavior with the **Battery relative capacity to nameplate**, **Battery relative capacity to nameplate (calendar)**, and **Battery relative capacity to nameplate (cycling)** variables in the simulation results. + +Cycle Degradation +----------------- + +Cycle degradation is a reduction in the battery's capacity at 100% state of charge as the battery experiences many charge/discharge cycles. The cycle degradation model relies on information about capacity fade at the number of cycles elapsed at an average depth of discharge in the Cycle Degradation table. + +SAM assigns default values to the table appropriate for the given battery chemistry when you choose a battery type. You can use the default values unless you have better data from a manufacturer data sheet or other source. + +If you decide to use your own cycle degradation data, you must provide at least three rows of data in the table. For a table with more than one depth-of-discharge value, SAM uses bilinear interpolation to consider both the average depth-of-discharge and cycle number to determine the available capacity. If the table contains data for a single depth-of-discharge value, SAM only considers the cycle number in the capacity fade calculation using a rainflow counting algorithm. + +For example, given the following graph from a battery's data sheet showing a curve for three different depth-of-discharge levels: + +.. image:: /images/IMG_BATT-LifeVSDepthDischarge.png + :align: center + :alt: IMG_BATT-LifeVSDepthDischarge.png + +You might enter the following data in the table: + +.. image:: /images/IMG_Batt-LifeToSAM.png + :align: center + :alt: IMG_Batt-LifeToSAM.png + +Calendar Degradation +-------------------- + +Calendar degradation is a reduction in capacity over a battery's life that occurs over time, regardless of the number of charge/discharge cycles. This degradation may be a function of time, temperature and state of charge, or simply a function of time. + +**None** + Choose **None** to ignore calendar degradation. SAM calculates capacity degradation using only the data in the Cycle Degradation table. + +**Empirical** + Choose **Empirical** to use the equations shown to calculate calendar degradation for Lithium-ion batteries. The Empirical Calendar Degradation graph shows the degradation curves resulting from the equations. + + The empirical model accounts for how a Lithium-ion battery's capacity degrades with time, temperature, and state-of-charge. + +**Custom** + Choose **Custom** to use the Custom Calendar Degradation table to specify degradation curves. The Custom Calendar Degradation graph shows degradation curves from the data in the table. + + To enter custom data in the table, click **Custom**, and for **Rows**, type the number of data points in your degradation curve. Each capacity value should be a percentage of the battery nominal full capacity. The battery age should be in days. For example, the table below shows that the battery degrades to 80% of its nominal capacity after 10 years (365 days × 10 years = 3650 days), and to 50% of nominal capacity in after 20 years. diff --git a/doc/source/battery-storage/battery_results.rst b/doc/source/battery-storage/battery_results.rst index 5a50e8e236..3c01544f64 100644 --- a/doc/source/battery-storage/battery_results.rst +++ b/doc/source/battery-storage/battery_results.rst @@ -27,7 +27,7 @@ Battery Storage Results ~~~~~~~~~~~~~~~~~~~~~~~ Metrics -....... +------- .. list-table:: :width: 100% @@ -45,7 +45,7 @@ Metrics - The percentage of total battery charge energy delivered by the power system (PV array in the case of the PV Battery model). If the percentage is less than 100%, the remaining charge energy was supplied by the grid. Lifetime Data -............. +------------- .. list-table:: :width: 100% diff --git a/doc/source/battery-storage/battery_storage.rst b/doc/source/battery-storage/battery_storage.rst index f6cd5a59cf..d46b4f4ae1 100644 --- a/doc/source/battery-storage/battery_storage.rst +++ b/doc/source/battery-storage/battery_storage.rst @@ -1,7 +1,7 @@ -Battery Storage -=============== +Battery Overview +================ -SAM's battery storage models are for an electric battery of electrochemical cells that stores electricity from the grid and/or an on-sit power power generation system. +SAM's battery storage models are for an electric battery of electrochemical cells that stores electricity from the grid and/or an on-site power power generation system. The following configurations combine battery storage with a power generation system: diff --git a/doc/source/battery-storage/battery_storage_btm.rst b/doc/source/battery-storage/battery_storage_btm.rst deleted file mode 100644 index fb5ed37fac..0000000000 --- a/doc/source/battery-storage/battery_storage_btm.rst +++ /dev/null @@ -1,111 +0,0 @@ -Battery Storage: Behind the Meter -================================= - -The Battery Cell and System page displays inputs describing the battery's performance characteristics. For inputs that determine how the system dispatches the battery, see :doc:`Battery Dispatch `. Use the following list to find information about the Battery Cell and System page inputs: - -* :ref:`Behind-the-meter (BTM) Batteries ` - -* :ref:`Chemistry ` - -* :ref:`Battery Bank Sizing ` - -* :ref:`Optimal Sizing and Dispatch from REopt ` - -* :ref:`Current and Capacity ` - -* :ref:`Power Converters ` - -* :ref:`Battery Voltage ` - -* :ref:`Battery Losses ` - -* :ref:`Battery Thermal ` - -* :ref:`Value of RE Macro ` - -For a list of publications about SAM's battery model, see https://sam.nlr.gov/battery-storage/battery-publications.html. - -.. _btm: - -Behind the Meter (BTM) Batteries -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The behind-the-meter (BTM) battery model assumes that the battery is used to reduce a residential or commercial building or facility owner's electricity bill. SAM assumes the battery is behind the meter for the Distributed financial models (Residential, Commercial, Third Party Ownership). - -.. note:: For a DC-connected PV-storage system, SAM assumes that the inverter on the Inverter page is a bidirectional or hybrid inverter that converts both DC power to AC and AC power to DC whether or not the inverter actually supports bidirectional conversion. You can use the "CEC hybrid" field in the library to help identify bidirectional inverters in the library. - -.. image:: ../images/IMG_Batt-BTM-configurations.png - :align: center - :alt: IMG_Batt-BTM-configurations.png - -Figure 1: Behind-the-meter Battery Configurations. Standalone battery is the same as Custom Generation Profile but with no system. - -.. _btm-chemistry: - -Chemistry -~~~~~~~~~ - -.. include:: ../includes/snip_battery_chemistry.rst - -.. _btm-sizing: - -Battery Bank Sizing -~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_bank_sizing.rst - -.. _reopt: - -Optimal Sizing and Dispatch from REopt -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_reopt.rst - -.. _btm-currentcapacity: - -Current and Capacity -~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_current_capacity.rst - -.. _btm-powerconverters: - -Power Converters -~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_power_converters.rst - -.. _btm-voltage: - -Battery Voltage -~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_voltage.rst - -.. _btm-losses: - -Battery Losses -~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_losses.rst - -.. _btm-thermal: - -Battery Thermal -~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_thermal.rst - -.. _btm-macro: - -Value of Renewable Energy Macro -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For residential and commercial PV-battery projects, you can use the Value of Renewable Energy :doc:`macro <../reference/macros>` to help you make an economic comparison between meeting the building electric load from the grid with no renewable energy system or battery, the grid with a renewable energy system, and the grid with a renewable energy system and battery. You can use the macro to analyze rate-switching scenarios where the rate structure for the grid-only scenario is different from the one with the renewable energy system. - -To run the macro, set up a PV battery case, and then click **Macros** (in the lower left corner of the SAM window) and click **Value of RE System** to show the macro. Follow the instructions to choose the appropriate rate structures and run the macro. - -.. image:: ../images/SS_Macro-ValueofRE.png - :align: center - :alt: SS_Macro-ValueofRE.png - diff --git a/doc/source/battery-storage/battery_storage_fom.rst b/doc/source/battery-storage/battery_storage_fom.rst deleted file mode 100644 index e8e348a685..0000000000 --- a/doc/source/battery-storage/battery_storage_fom.rst +++ /dev/null @@ -1,100 +0,0 @@ -Battery Storage: Front of Meter -=============================== - -The Battery Cell and System page displays inputs describing the battery's performance characteristics. For inputs that determine how the system dispatches the battery, see :doc:`Battery Dispatch `. Use the following list to find information about the Battery Cell and System page inputs: - -* :ref:`Front-of-meter (FOM) Batteries ` - - -* :ref:`Chemistry ` - - -* :ref:`Battery Bank Sizing ` - - -* :ref:`Current and Capacity ` - - -* :ref:`Power Converters ` - - -* :ref:`Battery Voltage ` - - -* :ref:`Battery Losses ` - - -* :ref:`Battery Thermal ` - - -For a list of publications about SAM's battery model, see https://sam.nlr.gov/battery-storage/battery-publications.html. - -.. _fom: - -Front of Meter (FOM) Batteries -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The front-of-meter (FOM) battery model assumes that the battery is used to maximize revenue for a power generation project. The battery in a PV-battery front-of-meter application may be connected either to the AC or DC side of the inverter Figure 1. - -.. image:: ../images/IMG_Batt-FOM-configurations.png - :align: center - :alt: IMG_Batt-FOM-configurations.png - -Figure 1: Front-of-meter Battery Configurations.  Standalone battery is the same as Custom Generation Profile but with no system. - -.. _fom-chemistry: - -Chemistry -~~~~~~~~~ - -.. include:: ../includes/snip_battery_chemistry.rst - -.. _fom-sizing: - -Battery Bank Sizing -~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_bank_sizing.rst - -.. _fom-currentcapacity: - -Current and Capacity -~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_current_capacity.rst - -.. _fom-powerconverters: - -Power Converters -~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_power_converters.rst - -.. _chargelimits: - -Charge Limits and Priority -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_charge_limits_priority.rst - -.. _fom-voltage: - -Battery Voltage -~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_voltage.rst - -.. _fom-losses: - -Battery Losses -~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_losses.rst - -.. _fom-thermal: - -Battery Thermal -~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_thermal.rst - diff --git a/doc/source/battery-storage/index.rst b/doc/source/battery-storage/index.rst index 36720edcfa..1382a7d5dd 100644 --- a/doc/source/battery-storage/index.rst +++ b/doc/source/battery-storage/index.rst @@ -4,9 +4,8 @@ Battery Storage .. toctree:: battery_storage - battery_storage_btm + battery_cell_and_system battery_dispatch_btm - battery_storage_fom battery_dispatch_fom battery_time_step battery_life diff --git a/doc/source/biopower/biopower_location_ambient_conditions.rst b/doc/source/biopower/biopower_location_ambient_conditions.rst index dfae02a349..a56536a971 100644 --- a/doc/source/biopower/biopower_location_ambient_conditions.rst +++ b/doc/source/biopower/biopower_location_ambient_conditions.rst @@ -7,133 +7,29 @@ The :doc:`biomass power ` model uses data from a weather file to descr Ambient conditions also affect biomass composition, but on a monthly rather than hourly timescale. SAM calculates average monthly temperature, pressure, and humidity values from the hourly values in the weather file, and uses those values to represent the average ambient conditions for each month of the year. SAM uses the same set of twelve monthly average values for each year of the plant's life. - - - .. note:: The biomass power model requires a weather file with global horizontal irradiance (GHI) and relative humidity data that is not available in all files from the National Solar Radiation Database (NSRDB). - :ref:`Typical meteorological year (TMY) ` files from the NSRDB PSM V3 dataset do not have relative humidity data, but the single year data does. To download a single year file, use the choose year option to download a file as described under "Download Weather Files" below. - .. note:: The legacy NSRDB MTS1 (NSRDB 1961 - 1990 TMY2) weather files have both GHI and relative humidity data, but the MTS1 data is out of date and only has files for a few hundred weather stations in the United States. + You can access these legacy files from the `NSRDB archives `__. -.. note:: You can access these legacy files from the `NSRDB archives `__. - - -.. note:: Please contact SAM Support at `sam.support@nlr.gov `__ if you need help finding weather data to use for your project. - -The Location and Resource page provides access to the solar resource library, which is a collection of weather files stored on your computer. When you first install SAM, it comes with a few default weather files in the library. As you use SAM for your own projects, you should add files to build your own library. Once files are in your library, you can use them for different projects and with different versions of SAM. - -.. image:: ../images/SS_SolarResource-library.png - :align: center - :alt: SS_SolarResource-library.png - -.. image:: ../images/SS_SolarResource-information.png - :align: center - :alt: SS_SolarResource-information.png - -There are two ways to add files to your solar resource library: - -1. Download a weather file or files from the NLR National Solar Radiation Database (NSRDB) - -Use the download weather file options and click **Download and add to library** to get the most up-to-date data for long-term cash flow analysis, single-year analysis, and P50/P90 analysis, or to download legacy data from the NSRDB. - -2. Add weather file folders - -If you have weather files from a source other than the NSRDB or that you've downloaded yourself from the NSRDB website, put them in a folder, and then click **Add/remove weather file folders** to add the folder to your solar resource library folder list. - -See also -........ - -:doc:`Weather File Formats <../weather-file-formats/weather_format>` - -:doc:`Weather Data Elements <../weather-data/weather_data_elements>` - -:doc:`Typical and Single Year <../weather-data/weather_typical_single>` - -:doc:`Time and Sun Position <../weather-data/weather_time_convention>` - -:doc:`Folders and Libraries <../weather-data/weather_manage_folders>` - -:doc:`Weather Data and LK <../weather-data/accessing-weather-data-from-lk>` - -.. note:: You may want to model your system using weather data from several different sources and locations around your project site to understand how sensitive your analysis results are to the weather assumptions, and how much variation there is in the data from the different weather files. - -.. note:: You can compare results for a system using more than one weather file in a single case by using SAM's :doc:`parametric simulation <../simulation-options/parametrics>` option. - -.. note:: For more information about weather data, including where to find data for locations outside of the United States, see the `SAM website `__. + Please contact SAM Support at `sam.support@nlr.gov `__ if you need help finding weather data to use for your project. -.. note:: For a helpful discussion of weather data and power system simulation, see Sengupta et al., (2015) "Best Practices Handbook for the Collection and Use of Solar Resource Data for Solar Energy Applications," NREL Report No. TP-5D00-63112 (`PDF 8.9 MB `__). +.. include:: ../includes/snip_location_resource.rst -.. _bio-ambient-library: - -Solar Resource Library +Download Weather Files ~~~~~~~~~~~~~~~~~~~~~~ -SAM's solar resource library displays information from weather files in your solar resource data folders. The default solar resource library that comes with SAM contains weather files for a few locations around the United States for the default configurations. As you use SAM, use **Add/remove weather file folders** to build a library of files for locations you frequently use as described in :doc:`Folders and Libraries <../weather-data/weather_manage_folders>`. - -To choose a file from the solar resource library: - -* Click the location name in the list. You can type a few letters of the file name in the Search box to filter the list. - -The full file name and information about the selected file appears under **Weather Data Information**. To see the data in the file, click **View data**. - -.. image:: ../images/SS_SolarResource-library.png - :align: center - :alt: SS_SolarResource-library.png -**Add/remove weather file folders** - Use the folder settings to tell SAM what folders on your computer it should scan for weather files to build the solar resource library. SAM adds any files it can identify as valid weather files in each folder you specify to the library. +.. include:: ../includes/snip_download_weather_files.rst - Before adding a file to the library, SAM checks the data in the file displays a message if it finds any problems with the data in the file. +Choose Weather File +~~~~~~~~~~~~~~~~~~~ - SAM will only add valid weather files to the library. If you add a folder that contains CSV files that are not in the SAM CSV format, it will not add those files to the library. - - The list of solar resource folders are the folders that SAM scans for weather files to build the solar resource library. - -**Refresh library** - Refresh the library after adding files to the weather file folder. In most cases, SAM should automatically refresh the library as needed, but you may need to manually refresh it. - -.. _bio-ambient-nsrdb: - -Download Weather Files -~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_solar_download.rst +.. include:: ../includes/snip_choose_weather_file.rst Weather Data Information ~~~~~~~~~~~~~~~~~~~~~~~~ -.. image:: ../images/SS_SolarResource-information.png - :align: center - :alt: SS_SolarResource-information.png - -**Weather File** - The path and name of the active weather file SAM will use for simulation. Download a different file from the NSRDB, or click a different file name in the library to change the file. - -**View data** - Display weather file data in the :doc:`time series data viewer <../reference/time_series_viewer>` . - -.. note:: You can also see the data after running a simulation on the Results page :doc:`data tables <../results/data>` and :doc:`time series graphs <../results/timeseries>`. - -Header Data from Weather File -............................. - -Header data is information in the weather file that describes the location and type of data in the file. SAM uses the time zone, elevation, latitude and longitude to calculate the sun position during simulations. It does not use the city, state, country, and other descriptive information. - -Annual Averages Calculated from Weather File -............................................ - -When you add a weather file to the solar resource library, SAM reads weather data from the file and calculates the annual averages to display for your reference. It does not use annual averages during simulations. - -**Global horizontal, Direct normal (beam), Diffuse horizontal** - The sum of solar irradiance data (W/m \ :sup:`2`\ ) in the weather file converted to kW and divided by 365 days/year. - -**Average temperature** - The sum of temperature data (°C) in the weather file divided by the number of records in the file (8760 for hourly data). - -**Average wind speed** - The sum of wind speed data (m/s) in the weather file divided by the number of records in the file (8760 for hourly data). -**Maximum snow depth** - The maximum value of snow depth data (cm) in the weather file. **NaN** indicates the file does not contain snow depth data. \ No newline at end of file +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/csp-empirical-trough-model/troughempirical_location_and_resource.rst b/doc/source/csp-empirical-trough-model/troughempirical_location_and_resource.rst index 2b0a4db039..46455be89b 100644 --- a/doc/source/csp-empirical-trough-model/troughempirical_location_and_resource.rst +++ b/doc/source/csp-empirical-trough-model/troughempirical_location_and_resource.rst @@ -3,3 +3,20 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst + diff --git a/doc/source/csp-generic-solar/gss_location_and_resource.rst b/doc/source/csp-generic-solar/gss_location_and_resource.rst index 2b0a4db039..7cbcad667d 100644 --- a/doc/source/csp-generic-solar/gss_location_and_resource.rst +++ b/doc/source/csp-generic-solar/gss_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/csp-linear-fresnel-direct-steam/dslf_location_and_resource.rst b/doc/source/csp-linear-fresnel-direct-steam/dslf_location_and_resource.rst index 2b0a4db039..7cbcad667d 100644 --- a/doc/source/csp-linear-fresnel-direct-steam/dslf_location_and_resource.rst +++ b/doc/source/csp-linear-fresnel-direct-steam/dslf_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/csp-linear-fresnel-molten-salt/mslf_location_and_resource.rst b/doc/source/csp-linear-fresnel-molten-salt/mslf_location_and_resource.rst index 2b0a4db039..7cbcad667d 100644 --- a/doc/source/csp-linear-fresnel-molten-salt/mslf_location_and_resource.rst +++ b/doc/source/csp-linear-fresnel-molten-salt/mslf_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/csp-physical-trough-model/troughphysical_location_and_resource.rst b/doc/source/csp-physical-trough-model/troughphysical_location_and_resource.rst index 2b0a4db039..7cbcad667d 100644 --- a/doc/source/csp-physical-trough-model/troughphysical_location_and_resource.rst +++ b/doc/source/csp-physical-trough-model/troughphysical_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/csp-power-tower-molten-salt/mspt_location_and_resource.rst b/doc/source/csp-power-tower-molten-salt/mspt_location_and_resource.rst index 2b0a4db039..7cbcad667d 100644 --- a/doc/source/csp-power-tower-molten-salt/mspt_location_and_resource.rst +++ b/doc/source/csp-power-tower-molten-salt/mspt_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/custom-generation/custom_generation_profile.rst b/doc/source/custom-generation/custom_generation_profile.rst index b6f9f6d08d..cabe9a5abb 100644 --- a/doc/source/custom-generation/custom_generation_profile.rst +++ b/doc/source/custom-generation/custom_generation_profile.rst @@ -35,7 +35,7 @@ The custom generation profile model provides two overall options for describing **Import single-year hourly or subhourly generation profile from file** Import hourly or subhourly generation data over one year into SAM. SAM will use the same generation profile for each year in the analysis period. -.. note:: The analysis period is specified on the Financial Parameters page. + .. note:: The analysis period is specified on the Financial Parameters page. **Import lifetime hourly or subhourly generation profile from file** Import hourly or subhourly generation data over the analysis period. @@ -43,7 +43,7 @@ The custom generation profile model provides two overall options for describing **Calculate generation profiles and nameplate capacity from open cases** Combine the generation profiles from other cases in the file to use as input for this case. This option only works for cases that run hourly simulations. For cases that run a simulation over the analysis period (lifetime simulation), SAM only uses the Year 1 data to generate the combined generation profile. -.. note:: As of SAM 2023, hybrid system configurations are available that combine the output of PV, wind, custom generation profile and fuel cell models as an alternative to this Calculate Generation Profiles option. + .. note:: As of SAM 2023, hybrid system configurations are available that combine the output of PV, wind, custom generation profile and fuel cell models as an alternative to this Calculate Generation Profiles option. **Nameplate capacity, kWac** The system's nameplate electrical capacity in electric kilowatts. @@ -61,7 +61,7 @@ The custom generation profile model provides two overall options for describing When you import or generate power generation data, this input is disabled because for these options, SAM does not use the capacity factor to calculate the generation profile. -.. note:: SAM reports a separate :doc:`capacity factor <../performance-metrics/mtp_capacity_factor>` in the results after you run a simulation that reflects plant losses and any reduction in output due to system availability. + .. note:: SAM reports a separate :doc:`capacity factor <../performance-metrics/mtp_capacity_factor>` in the results after you run a simulation that reflects plant losses and any reduction in output due to system availability. **Combined nameplate capacity, kWac** When you choose **Calculate generation profiles and nameplate capacity from open cases**, SAM automatically calculates the nameplate capacity as the sum of nameplate capacities of each case. You can edit this value if you want to use a different value than the calculated value. @@ -76,11 +76,11 @@ The custom generation profile model provides two overall options for describing #. Click **Import** to import the data from a text file. -The data must be in a single column with one row for each time step. Each row should contain a value in kW of electricity generated per time step. For example, an hourly data set for a single year should contain 8,760 rows of kW values. A 15-minute data set for one year would contain 35,040 rows of kW values. Lifetime data sets should contain data over the same number of years as the analysis period on the Financial Parameters page. + The data must be in a single column with one row for each time step. Each row should contain a value in kW of electricity generated per time step. For example, an hourly data set for a single year should contain 8,760 rows of kW values. A 15-minute data set for one year would contain 35,040 rows of kW values. Lifetime data sets should contain data over the same number of years as the analysis period on the Financial Parameters page. -The first row is reserved for a header, so do not include any electricity generation data in the first row. SAM checks the number of data rows in the file to ensure it is consistent with the time step you specify. For example, for a 60-minute time step over a single year, the text file should contain 8761 rows: One row at the top of the file for the header followed by 8760 data rows. A 15-minute data set would contain a total of 35,041 rows. + The first row is reserved for a header, so do not include any electricity generation data in the first row. SAM checks the number of data rows in the file to ensure it is consistent with the time step you specify. For example, for a 60-minute time step over a single year, the text file should contain 8761 rows: One row at the top of the file for the header followed by 8760 data rows. A 15-minute data set would contain a total of 35,041 rows. -To paste the data from a text editor, spreadsheet, or other software, copy the data to your clipboard, and then click **Paste**. + To paste the data from a text editor, spreadsheet, or other software, copy the data to your clipboard, and then click **Paste**. #. Click **OK** to return to the Power Plant page. @@ -128,7 +128,7 @@ The calculated values are equivalent to the metrics shown on the Results page af **Capacity factor after plant loss** The capacity factor, accounting for the reduction in output when you specify a non-zero plant loss percentage. Use this capacity value value when you import generation data to verify that the nameplate capacity you enter is reasonable. For example, you might expect a capacity factor greater than 90% for a thermal power plant, about 20% for a photovoltaic system, 40% for a concentrating solar power system, or about 60% for a wind system. -.. note:: The capacity factor after plant loss shown on the Power Plant page accounts for the plant loss, but not for :ref:`system availability `. If you include system availability losses in your analysis, the :doc:`capacity factor <../performance-metrics/mtp_capacity_factor>` SAM reports in the results after you run a simulation reflects those losses. + .. note:: The capacity factor after plant loss shown on the Power Plant page accounts for the plant loss, but not for :ref:`system availability `. If you include system availability losses in your analysis, the :doc:`capacity factor <../performance-metrics/mtp_capacity_factor>` SAM reports in the results after you run a simulation reflects those losses. For the constant generation option, the calculated capacity factor depends on the value that you entered for **Capacity Factor**: *Capacity Factor After Plant Loss (%) = Capacity Factor (%) × ( 1 - Loss (%) ÷ 100% )* diff --git a/doc/source/degradation/degradation.rst b/doc/source/degradation/degradation.rst index f54c3fd57e..5b8296d0ce 100644 --- a/doc/source/degradation/degradation.rst +++ b/doc/source/degradation/degradation.rst @@ -1,5 +1,5 @@ -Degradation -=========== +Degradation Overview +==================== The degradation inputs allow you to model a decline in the system's output over time due, for example, to aging of equipment. @@ -14,12 +14,9 @@ SAM models annual degradation differently for the different performance models: * AC degradation with simulation over analysis period for the Custom Generation Profile - Battery model, where the system generates AC power. Lifetime simulations allow for modeling battery replacements. * The geothermal model calculates the electricity generated by the system in each month over its lifetime rather than hourly or subhourly over a single year. The degradation rate is not available for geothermal systems because the model calculates the system's electrical output from year to year. - - .. note:: When you specify degradation in each year, SAM ignores the value you specify for Year 1 (Row 1 of the input table) because it assumes degradation applies in Years 2 and later. - -.. note:: The multi-year simulation uses the same weather file for each year, so it does not accurately represent the effect of changes in the solar resource and weather from year to year over the analysis period. + The multi-year simulation uses the same weather file for each year, so it does not accurately represent the effect of changes in the solar resource and weather from year to year over the analysis period. The Detailed Photovoltaic and PV Battery models have an additional set of inputs for :ref:`lifetime daily losses ` that can be used to model losses in the system that vary over the analysis period and are not covered by annual degradation. \ No newline at end of file diff --git a/doc/source/degradation/degradation_ac.rst b/doc/source/degradation/degradation_ac.rst index 5fce6d9cc1..cbb2f8f1ba 100644 --- a/doc/source/degradation/degradation_ac.rst +++ b/doc/source/degradation/degradation_ac.rst @@ -38,8 +38,7 @@ In some situations, you may want to assign a different degradation rate to diffe Because Year 1 is the first year of operation before degradation begins, you should set the degradation rate for Year 1 (the first row in the degradation table) to zero. -To enter an annual schedule of degradation rates: -................................................. +**To enter an annual schedule of degradation rates:** .. include:: ../includes/snip_annual_values.rst diff --git a/doc/source/degradation/degradation_dc.rst b/doc/source/degradation/degradation_dc.rst index 46cc3bb18a..ed318b7355 100644 --- a/doc/source/degradation/degradation_dc.rst +++ b/doc/source/degradation/degradation_dc.rst @@ -45,8 +45,7 @@ In some situations, you may want to use "schedule mode" to assign a different de Because Year 1 is the first year of operation before degradation begins, you should set the degradation rate for Year 1 (the first row in the degradation table) to zero. -To enter an annual schedule of degradation rates: -................................................. +**To enter an annual schedule of degradation rates:** .. include:: ../includes/snip_annual_values.rst @@ -55,4 +54,6 @@ Memory Saving Option for Subhourly Simulations If you are running subhourly simulations over the analysis period, the number of values for each output variable can be very large. For, example, one-minute simulations over a 25-year analysis period would result in 1 time step/min × 60 min/hr × 8,760 hr/yr × 25 yr = 13,140,000 time steps, so each output variable would store over 13 million values. -If your computer is experiencing memory problems, or if the tables and graphs on the Results page are not working properly, you can clear **Save all output variables over analysis period** to reduce the amount of memory required to display simulation results.That will cause SAM to save only a selection of variables in "lifetime mode" with values over the entire analysis period. The remaining variables will only store one year's worth of data so you can still examine hourly data to see how the system performs. \ No newline at end of file +If your computer is experiencing memory problems, or if the tables and graphs on the Results page are not working properly, you can clear **Save all output variables over analysis period** to reduce the amount of memory required to display simulation results.That will cause SAM to save only a selection of variables in "lifetime mode" with values over the entire analysis period. The remaining variables will only store one year's worth of data so you can still examine hourly data to see how the system performs. + +.. note:: The option must be checked for PV Battery configurations that require lifetime outputs for battery life calculations. \ No newline at end of file diff --git a/doc/source/detailed-photovoltaic-model/pv_inverter.rst b/doc/source/detailed-photovoltaic-model/pv_inverter.rst index 3ca28967be..ba9c2526de 100644 --- a/doc/source/detailed-photovoltaic-model/pv_inverter.rst +++ b/doc/source/detailed-photovoltaic-model/pv_inverter.rst @@ -1,5 +1,5 @@ Inverter -========= +======== The Inverter page allows you to choose a model to represent the inverter's performance. The inverter converts DC electricity from the photovoltaic array into AC electricity. The inverter model calculates the DC to AC conversion efficiency in each simulation time step. @@ -636,7 +636,7 @@ To model a system with using microinverters in the Detailed Photovoltaic model: #. For Subarray 1, for **Modules per String in subarray**, enter 1. -#. To subarray 1's **Strings in Parallel in subarray**, divide the system's nameplate capacity by the module maximum power rating (Pmp) from the :doc:`Module ` page, and round up or down as appropriate: +#. To calculate **Strings in Parallel in subarray** for Subarray 1, divide the system's nameplate capacity by the module maximum power rating (Pmp) from the :doc:`Module ` page, and round up or down as appropriate: *Strings in Parallel = System Nameplate Capacity (Wdc) / Module Maximum Power (Wdc)* @@ -644,8 +644,8 @@ To model a system with using microinverters in the Detailed Photovoltaic model: *Number of Inverters = Strings in Parallel* -#. On the :doc:`Electrical Losses ` page, for **Module Mismatch**, enter zero. You can also click **Microinverters** to apply default loss values. +#. On the :doc:`pv_electrical_losses` page, for **Module Mismatch**, enter zero. You can also click **Microinverters** to apply default loss values. -#. On the :doc:`Installation costs <../installation-costs/cc_pv>` page, be sure that the inverter cost is appropriate for the microinverter. +#. On the :doc:`../installation-costs/cc_pv` page, be sure that the inverter cost is appropriate for the microinverter. #. On the :doc:`pv_soiling_shading_snow` page, be sure that **Self shading** is set to **None**. \ No newline at end of file diff --git a/doc/source/detailed-photovoltaic-model/pv_location_and_resource.rst b/doc/source/detailed-photovoltaic-model/pv_location_and_resource.rst index ad720fbb1b..2a1b3bcf76 100644 --- a/doc/source/detailed-photovoltaic-model/pv_location_and_resource.rst +++ b/doc/source/detailed-photovoltaic-model/pv_location_and_resource.rst @@ -3,30 +3,40 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst + Albedo - Sky Diffuse Model - Irradiance Data (Advanced) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The albedo, sky diffuse model, and irradiance data inputs are advanced inputs for the detailed photovoltaic model that you can ignore unless you have a reason to change them. These inputs are not available for the PVWatts model, except for some albedo options, which are under **Advanced Inputs** on the :doc:`System Design <../pvwatts/pvwatts_system_design>` page. .. note:: Use the default **DNI and DHI** and **Perez** options unless you have a reason to change them. - - - **DNI:** Direct normal irradiance, sometimes called beam normal irradiance is the amount solar radiation per unit area that reaches a surface that is normal to the rays of solar radiation from the sun. - **DHI:** Diffuse horizontal irradiance is the solar radiation per unit area that reaches a horizontal surface from the sky dome, but not directly from the sun. DHI does not include solar energy reflected from the ground. SAM accounts for that separately using the albedo input described above. - **GHI:** Global horizontal irradiance is the total solar radiation per unit area that reaches a horizontal surface - **POA:** Plane of array, POA irradiance is equivalent to incident irradiance, and is the total solar radiation per unit area that reaches the surface of the photovoltaic array. .. _albedo: Albedo -~~~~~~ +------ SAM uses the albedo (also called ground reflectance) to make a small adjustment to the amount of solar irradiance incident on the array to represent diffuse irradiance reflected onto the array from the ground. SAM also uses albedo to calculate irradiance incident on the rear side of bifacial modules. @@ -70,7 +80,7 @@ After running a simulation, you can see the time series albedo data that SAM use If you want to add albedo data to a weather file, you can edit the file using a text editor or spreadsheet software. See the :doc:`SAM CSV format description <../weather-file-formats/weather_format_sam_csv_solar>` for details. Diffuse Sky Model -~~~~~~~~~~~~~~~~~ +----------------- SAM's detailed photovoltaic model uses DNI and DHI data with sun and subarray angles to calculate the irradiance incident on each subarray. Calculating the incident direct component from the DNI is straightforward, but there are several methods for estimating the incident diffuse component from DHI. The incident diffuse component includes both ground-reflected diffuse irradiance, and sky diffuse irradiance from the sky dome outside of the sun's circle. SAM allows you to choose the method it uses to convert DHI data to incident sky diffuse irradiance. @@ -88,7 +98,8 @@ For more details about these methods, see the photovoltaic reference manual, whi The Perez method is the default value and is best for most analysis. It accounts for horizon brightening, circumsolar and isotropic diffuse radiation using a more complex computational method than the Reindl and Hay and Davies methods. Weather File Irradiance Data -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---------------------------- + A weather file in :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` for the photovoltaic performance models must contain at least two columns for the solar irradiance components or a single column for plane-of-array (POA) irradiance. The weather file may contain columns for all three irradiance components in addition to POA data. SAM determines which columns to use for the simulation based on the Weather File Irradiance Data options you choose. @@ -109,32 +120,20 @@ Unless you choose one of the POA options, SAM's detailed photovoltaic model alwa **POA from pyranometer** Use this option if your weather file contains irradiance data measured in the plane of the array by a pyranometer. SAM uses a POA decomposition model to calculate the DNI and DHI components of the POA irradiance for angle-of-incidence effect calculations. - - - -.. note:: For a technical description of the POA option, see Freeman (2016) Using Measured Plane-of-Array Data Directly in Photovoltaic Modeling: Methodology and Validation, available from https://sam.nlr.gov/photovoltaic/pv-publications. - - -.. note:: When you choose a POA option, SAM uses an irradiance decomposition model to calculate DNI and DHI values, which it reports in the results for your reference. It only uses the calculated DNI and DHI values under the following conditions: - - -.. note::     - With the **POA from pyranometer** option to calculate a reduction in DNI due to angle-of-incidence effects. - - -.. note::     - When you enable external shading, SAM applies the beam and diffuse irradiance shading factors to the - -.. note::     calculated DNI and DHI values, and then calculates the irradiance incident on the subarray to account for + .. note:: For a technical description of the POA option, see Freeman (2016) Using Measured Plane-of-Array Data Directly in Photovoltaic Modeling: Methodology and Validation, available from https://sam.nlr.gov/photovoltaic/pv-publications. -.. note::     shading. + When you choose a POA option, SAM uses an irradiance decomposition model to calculate DNI and DHI values, which it reports in the results for your reference. It only uses the calculated DNI and DHI values under the following conditions: + * With the **POA from pyranometer** option to calculate a reduction in DNI due to angle-of-incidence effects. -.. note::     - When you use the CEC module model with the heat transfer method for temperature correction. + * When you enable external shading, SAM applies the beam and diffuse irradiance shading factors to the calculated DNI and DHI values, and then calculates the irradiance incident on the subarray to account for shading. + * When you use the CEC module model with the heat transfer method for temperature correction. -.. note:: When you use POA data, be careful to check that your array orientation, shading, soiling, and snow model inputs are consistent with your POA data. If your system has more than one subarray, SAM uses the POA data for each subarray. This requires that all subarrays have the same orientation and tracking, but SAM does not enforce this requirement. SAM also allows you to enable shading, soiling, and the snow model with POA data. If the irradiance data already accounts for these effects, you should disable those inputs. + When you use POA data, be careful to check that your array orientation, shading, soiling, and snow model inputs are consistent with your POA data. If your system has more than one subarray, SAM uses the POA data for each subarray. This requires that all subarrays have the same orientation and tracking, but SAM does not enforce this requirement. SAM also allows you to enable shading, soiling, and the snow model with POA data. If the irradiance data already accounts for these effects, you should disable those inputs. Irradiance Data in Results -.......................... +~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: If your weather file contains data for all three irradiance components, the value of the calculated third component that SAM uses for the simulation may differ from the value in the weather file. @@ -144,15 +143,15 @@ You can see the calculated data on the Results page after running a simulation, The data in the weather file. If the column does not exist in the weather file, SAM reports the values in the results as NaN (not a number). **Irradiance GHI/DNI/DHI calculated (W/m2)** - The values of the third irradiance component that SAM calculates from the other two in the weather file. For example, if you choose the **DNI and GHI** option, you should see **Irradiance DHI calculated** in the results. SAM uses the following equations for the calculated values, where *z* is the sun zenith angle: + The values of the third irradiance component that SAM calculates from the other two in the weather file. For example, if you choose the **DNI and GHI** option, you should see **Irradiance DHI calculated** in the results. SAM uses the following equations for the calculated values, where *z* is the sun zenith angle: -*GHI = DHI + DNI × cos(z)* + *GHI = DHI + DNI × cos(z)* -*DHI = GHI - DNI × cos(z)* + *DHI = GHI - DNI × cos(z)* -*DNI = ( GHI - DHI ) ÷ cos(z)* + *DNI = ( GHI - DHI ) ÷ cos(z)* For the POA options, SAM calculates the DHI and DNI values from the POA data in the weather file using the method described in Marion, B. (2015) “A model for deriving the direct normal and diffuse horizontal irradiance from the global tilted irradiance.” Solar Energy, vol. 122, pp. 1037-1046. -**Subarray [*****n*****] POA total irradiance after shading and soiling (W/m2)** - The total irradiance incident on each subarray *n* . \ No newline at end of file +**Subarray n POA total irradiance after shading and soiling (W/m2)** + The total irradiance incident on each subarray *n*. \ No newline at end of file diff --git a/doc/source/detailed-photovoltaic-model/pv_sizing_instructions.rst b/doc/source/detailed-photovoltaic-model/pv_sizing_instructions.rst index 49d99d2717..11e0685b82 100644 --- a/doc/source/detailed-photovoltaic-model/pv_sizing_instructions.rst +++ b/doc/source/detailed-photovoltaic-model/pv_sizing_instructions.rst @@ -1,7 +1,9 @@ PV Sizing Instructions ====================== -To size the system for the Detailed Photovoltaic model, you choose a module and inverter, and then specify the number of modules in a string, and number of strings in the array. You can also divide the array into sections called subarrays to model an array with modules oriented in different directions, or that use different tracking options. Sizing the system in the Detailed Photovoltaic model requires more effort, because you have to choose a appropriate module and inverter for the system, and determine the number of modules and inverters you need for a given DC capacity and DC to AC ratio while ensuring that the array voltages are within the inverter's voltage limits. +To size the system for the Detailed Photovoltaic model, you choose a module and inverter, and then specify the number of modules in a string, and number of strings in the array. You can also divide the array into sections called subarrays to model an array with modules oriented in different directions, or that use different tracking options. + +.. note:: You can use the simpler :doc:`../pvwatts/pvwatts` model instead of the Detailed Photovoltaic model to size the system without specifying numbers of inverters, modules per string, and strings in parallel. .. _pv-sizing: @@ -12,14 +14,14 @@ SAM provides two options on the :doc:`pv_system_size` page for specifying the nu * The best way is to :ref:`specify the number of modules and inverters ` yourself. -* If you are modeling a system with one subarray, you can check :ref:`Estimate Subarray 1 configuration `, and see what values SAM calculates for the number modules per string and number of strings in parallel. +* If you are modeling a system with one subarray, you can check :ref:`Specify desired size and DC/AC ratio `, and see what values SAM calculates for the number modules per string and number of strings in parallel. For information about how SAM models inverter clipping losses, see :ref:`Inverter Clipping Loss `. You can run the System Sizing :doc:`macro <../reference/macros>` to generate a detailed report about clipping losses and the inverter's MPPT performance. The following examples show how to design common system configurations in SAM. The examples show a few modules for a small system for clarity, but the same approach can be used for large systems with thousands of modules and multiple inverters. See :ref:`Microinverters ` for a microinverter configuration example. Example 1: One string, one inverter, one MPPT -............................................. +--------------------------------------------- .. image:: ../images/IMG_PV_Layout_1.png :align: center @@ -40,7 +42,7 @@ Example 1: One string, one inverter, one MPPT - 1 Example 2: Two identical strings, one inverter, one MPPT -........................................................ +-------------------------------------------------------- .. image:: ../images/IMG_PV_Layout_2.png :align: center @@ -61,7 +63,7 @@ Example 2: Two identical strings, one inverter, one MPPT - 2 Example 3: Two different strings, one inverter, one MPPT -........................................................ +-------------------------------------------------------- .. image:: ../images/IMG_PV_Layout_3.png :align: center @@ -82,7 +84,7 @@ Example 3: Two different strings, one inverter, one MPPT - 6 Example 4: Two different strings, one inverter, two MPPTs -......................................................... +--------------------------------------------------------- .. image:: ../images/IMG_PV_Layout_4.png :align: center @@ -107,7 +109,7 @@ Example 4: Two different strings, one inverter, two MPPTs - 2 Example 5: Three strings (two identical), two inverters, one MPPT -................................................................. +----------------------------------------------------------------- .. image:: ../images/IMG_PV_Layout_5.png :align: center @@ -132,7 +134,7 @@ Example 5: Three strings (two identical), two inverters, one MPPT - 1 Example 6: Three strings (two identical), one inverter, two MPPTs -................................................................. +----------------------------------------------------------------- .. image:: ../images/IMG_PV_Layout_6.png :align: center @@ -156,106 +158,130 @@ Example 6: Three strings (two identical), one inverter, two MPPTs * - Strings in parallel in subarray 2 - 1 -**TO DO from original System Design page** +.. _manual: -For example, to configure strings for a 10 MW system consisting of SunPower SPR-305 modules, and Advanced Energy Solaron 333 inverters with two subarrays of 5 MW each with different azimuth angles: +Specify Numbers of Modules and Inverters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#. On the :doc:`Module ` and :doc:`Inverter ` pages, choose the SunPower module and Solaron inverter, respectively. +The following examples show how to specify the number of modules and inverters by hand. -#. On the :doc:`pv_system_size` page, under **AC Sizing**, type 4 for **Number of inverters**. +Basic Example +------------- -#. Clear **Estimate Subarray 1 configuration**. It is not possible for SAM to automatically size a system with more than one subarray. +This basic example shows the steps to configure strings for a 10 MW system consisting of two subarrays of 14,500 SunPower 305 Wdc modules with different azimuth angles, and two Power Electronics 330 kWac inverters for a total size of 8.9 MWdc and a DC to AC ratio of 1.35. -#. Under **DC Sizing and Configuration**, for **Subarray 1**, specify 8 modules per string and 220 strings in parallel, and an azimuth angle of 180. +**Basic example steps:** -#. Enable Subarray 2, and specify 8 modules per string and 220 strings in parallel for Subarray 2, and an azimuth angle of 170. +#. On the :doc:`pv_module` page, type "sunpower" in the Filter box above the list mof modules, and choose the SPT-305-Mono or a similar module from the list. -.. _manual: +#. Clear the **Module is bifacial** box if the module is not a bifacial module. -Specify Numbers of Modules and Inverters -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The following instructions explain one approach for choosing optimal values for the numbers of modules and inverters based on the array's expected DC output instead of its nameplate capacity. +#. On the :doc:`pv_inverter` page, type "power" in the Filter box, and choose FS3190K or a similar inverter. + +#. On the :doc:`pv_system_size` page, choose **Specify number of modules and inverters**. It is not possible for SAM to automatically size a system with more than one subarray. + +#. For **Number of inverters**, type 2. + +#. Under **Subarrays and String Size**, for **Subarray 1**, specify 29 modules per string and 500 strings in parallel. + +#. Enable Subarray 2, and specify 29 modules per string and 500 strings in parallel for Subarray 2. Note the nameplate DC capacity and DC to AC ratio in the blue boxes under **System Size**. The blue boxes are calculated values that you can use that the system size is correct. -.. note:: The System Sizing macro generates a report that you can use to compare the system's operating characteristics to design values, and generates a list of alternative modules that might work with the inverter you chose. +#. On the :doc:`pv_tracking_layout_land` page, under **Tracking and Orientation**, set **Aximuth angle (deg)** to 180 degrees for Subarray 1 and 170 degrees for Subarray 2. -To specify numbers of modules and inverters by hand: +Detailed Example +---------------- -#. Choose an inverter for the system or specify its parameters on the :doc:`Inverter ` page. (For microinverters, see :ref:`Modeling Microinverters `.). If you do not have a specific inverter in mind, either choose one with a rated maximum DC power close to the array size you want to model, or choose one with a maximum AC power that is your desired array DC capacity divided by your desired DC to AC ratio. +This detailed example demonstrates one approach for choosing optimal values for the numbers of modules and inverters based on the array's expected DC output instead of its nameplate capacity. Before you start choose a system size in kWdc and a DC to AC ratio for the system. -#. Choose a module or specify its parameters on the :doc:`Module ` page. If you do not have a specific module in mind, use the default module. +.. note:: You can use the :doc:`System Sizing macro<../reference/macros>` to generate a report that you can use to compare the system's operating characteristics to design values, and generate a list of alternative modules that might work with the inverter you chose. -#. On the :doc:`pv_system_size` page, under **AC Sizing**, for **Number of Inverters**, type 1. +**Detailed example steps:** -#. Under **DC Sizing and Configuration**, for Subarray 1, type a value for **Modules per string in subarray** that results in a string open circuit voltage (**String Voc**) less than but as close as possible to the inverter's maximum DC input voltage, and greater than the inverter's minimum MPPT voltage. For an initial estimate, you can try an integer value less than: +#. Choose an inverter for the system or specify its parameters on the :doc:`pv_inverter` page. (For microinverters, see :ref:`Modeling Microinverters `.). If you do not have a specific inverter in mind, either choose one with a rated maximum DC power close to the array size you want to model, or choose one with a maximum AC power that is your desired array DC capacity divided by your desired DC to AC ratio. -*Modules per String = [ ( Minimum MPPT Voltage + Maximum MPPT Voltage ) ÷ 2 ] ÷ Module Maximum Power Voltage* +#. Choose a module or specify its parameters on the :doc:`pv_module` page. If you do not have a specific module in mind, use the default module. -If the resulting string open circuit DC voltage (**String Voc**) is greater than the inverter's maximum DC voltage, reduce the number of modules per string. You may also want to try a similar module or inverter with slightly lower or higher maximum power. +#. On the :doc:`pv_system_size` page, under **System Size**, for **Number of Inverters**, type 1. For a large system that requires more than one inverter, use this equation to calculate the number of inverters (round the answer to the nearest integer): -#. For **Strings in Parallel in subarray**, type a value that results in an array nameplate capacity that is close to your desired system DC capacity. You can choose an integer value close to the value: + *Number of Inverters = ( Nameplate DC Capacity (kWdc) ÷ DC to AC Ratio ) ÷ Inverter Maximum AC Power (kWac)* -*Strings in Parallel = Array Nameplate Capacity (kWdc) × 1000 (W/kW) ÷ Module Maximum Power (Wdc) ÷ Modules Per String*. +#. Under **Subarrays and String Size**, for Subarray 1, type a value for **Modules per string in subarray** that results in a string open circuit voltage (**String Voc**) less than but as close as possible to the inverter's maximum MPPT voltage, and greater than the inverter's minimum MPPT voltage. For an initial estimate, you can try an integer value less than: + + *Modules per String = [ ( Minimum MPPT Voltage + Maximum MPPT Voltage ) ÷ 2 ] ÷ Module Maximum Power Voltage* + + If the resulting string open circuit DC voltage (**String Voc at reference conditions**) is greater than the inverter's maximum MPPT voltage, reduce the number of modules per string. You may also want to try a similar module or inverter with slightly lower or higher maximum power. + +#. For **Strings in parallel in subarray**, type a value that results in an array nameplate capacity that is close to your system's DC capacity. Choose an integer value close to the value of: + + *Strings in Parallel = Nameplate DC Capacity (kWdc) × 1000 (W/kW) ÷ Module Maximum Power (Wdc) ÷ Modules Per String* #. Depending on the inverter you chose, you may need to modify the number of inverters to match the array size. -*Number of Inverters = ( Modules per String × Strings in Parallel × Module Maximum Power (Wdc) ) ÷ ( DC-to-AC Ratio × Inverter Maximum AC Power (Wac) )* + *Number of Inverters = ( Modules per String × Strings in Parallel × Module Maximum Power (Wdc) ) ÷ ( DC-to-AC Ratio × Inverter Maximum AC Power (Wac) )* + + You may need to experiment with different sizes of modules and inverters within the same family to find a combination that works for your system. -You may need to experiment with different sizes of modules and inverters within the same family to find a combination that works for your system. +#. On the :doc:`pv_tracking_layout_land` page, under **Tracking & Orientation**, specify the tilt angle, tracking option, and azimuth angle as appropriate, or use the default values. -#. Under **Tracking & Orientation**, specify the tracking and orientation and ground coverage ratio as appropriate. +#. Under **Row Dimensions and Spacing**, specify a ground coverage ratio (GCR) as appropriate, or use the default value. #. On the :doc:`pv_electrical_losses` page, specify any losses. #. :doc:`Run a simulation <../getting-started/run_simulations>`. See below for details about any simulation :doc:`notices <../results/notices>`. -#. On the :doc:`Results <../getting-started/results_page>` page, check the :doc:`energy yield <../performance-metrics/mtp_kwhkwyear1>` (kWh/kW) in the :doc:`Metrics table <../results/summary>` to make sure it is a reasonable value. (For example, the energy yield for the default system based on mono-crystalline modules in Phoenix, Arizona is about 1,850 kWh/kW.) If it seems too low, check that the total inverter capacity is not too low and limiting the system's AC output. If it is, you may want to try using a larger inverter, fewer modules, or a module from the same family with slightly lower capacity. +#. On the :doc:`Results <../getting-started/results_page>` page, check the :doc:`energy yield <../performance-metrics/mtp_kwhkwyear1>` (kWh/kW) in the :doc:`Metrics table <../results/summary>` to make sure it is a reasonable value. (For example, the energy yield for the default system based on mono-crystalline modules in Phoenix, Arizona is about 2,300 kWh/kW.) + + If it seems too low, check that the total inverter capacity is not too low and limiting the system's AC output. If it is, you may want to try using a larger inverter, fewer modules, or a module from the same family with slightly lower capacity. #. Also on the Results page, click the :doc:`Time Series <../results/timeseries>` tab. -Display the Hourly Energy variable. This is the system's AC output in kWh/h. You can use this information to decide whether to reduce the inverter capacity. For example if you specified a 400 kW inverter capacity, but the time series data indicates the system rarely operates at that level, you could try reducing the number of inverters to model a system with 315 kW of inverter capacity to reduce the system's installation cost. + Display the Hourly Energy variable. This is the system's AC output in kWh/h. You can use this information to decide whether to reduce the inverter capacity. For example if you specified a 400 kW inverter capacity, but the time series data indicates the system rarely operates at that level, you could try reducing the number of inverters to model a system with 315 kW of inverter capacity to reduce the system's installation cost. -Display the Subarray 1 open circuit voltage and operating voltage variables. You can use these to verify that the array voltage does not exceed your design voltage limits. + Display the Subarray 1 open circuit voltage and operating voltage variables. You can use these to verify that the array voltage does not exceed your design voltage limits. #. Adjust the numbers of inverters, modules per string, and strings in parallel, and run more simulations until you are satisfied with the cost and performance of the system. .. _autosize: -Estimate Subarray 1 Configuration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Specify Desired Size and DC/AC Ratio +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + This option is appropriate for very preliminary analyses to get a rough idea of a system's annual output, or as a first step in determining the number of modules per string, strings in parallel, and number of inverters for your system. .. note:: SAM's array sizing calculator works best for systems with a nameplate DC capacities of greater than about 20 kW. In only works for systems with one subarray (Subarray 1). -The array sizing calculator estimates the number of modules and inverters required for the array size and DC-to-AC ratio that you specify. It uses the nominal specifications of the modules and inverters from the :doc:`Module ` and :doc:`Inverter ` pages to calculate values for the numbers of modules per string, strings in parallel, and inverters. Because SAM makes the calculation before running a simulation, it has no information about the expected output of the array for these calculations. However, SAM does display :doc:`notices <../results/notices>` based on the expected output of the photovoltaic array and inverter that you can use to refine the array size. +The array sizing calculator estimates the number of modules and inverters required for the array size and DC to AC ratio that you specify. It uses the nominal specifications of the modules and inverters from the :doc:`Module ` and :doc:`Inverter ` pages to calculate values for the numbers of modules per string, strings in parallel, and inverters. Because SAM makes the calculation before running a simulation, it has no information about the expected output of the array for these calculations. However, SAM does display :doc:`notices <../results/notices>` based on the expected output of the photovoltaic array and inverter that you can use to refine the array size. -To size the photovoltaic array with the array sizing assistant: +**To size the photovoltaic array with the array sizing calculator:** #. Choose an inverter or specify its parameters on the :doc:`Inverter ` page. (For microinverters, see :ref:`Modeling Microinverters `.) #. Choose a module or specify its parameters on the :doc:`Module ` page. -#. On the :doc:`pv_system_size` page, under **AC Sizing**, check **Estimate Subarray 1 configuration**.. +#. On the :doc:`pv_system_size` page, under **System Size**, choose **Specify desired size and DC/AC ratio**. -#. Type the array DC capacity value in kilowatts for **Desired array size**. +#. For **Desired array size**, type the array DC capacity value in DC kilowatts. -#. Type the ratio of DC array capacity to AC inverter capacity for **Desired DC to AC ratio**. +#. For **Desired DC to AC ratio**, type the ratio of DC array capacity to AC inverter capacity. -SAM calculates and displays values for **Modules per String**, **Strings in Parallel**, and **Number of Inverters** + SAM calculates and displays values for **Modules per String**, **Strings in Parallel**, and **Number of Inverters** -#. Verify that **Nameplate Capacity** under **Modules** and **Total capacity** under **Inverters** are acceptably close to the desired values, and check the sizing messages for any information to help you adjust your assumptions. +#. Verify that the calculated values in blue boxes for **Nameplate DC capacity**, **DC to AC ratio**, and **Total AC Capacity** acceptably close to the desired values, and check the sizing messages for any information to help you adjust your assumptions. -If the capacity is not as close to the desired value, you can try choosing a slightly smaller or larger module or inverter to get closer to the desired capacity. Because these capacity values are based on a multiple of the module and inverter capacities, SAM will probably not be able to suggest a system with your exact nameplate capacity value. + If the capacity is not as close to the desired value, you can try choosing a slightly smaller or larger module or inverter to get closer to the desired capacity. Because these capacity values are based on a multiple of the module and inverter capacities, SAM will probably not be able to suggest a system with your exact nameplate capacity value. #. If the values for the inverter maximum DC voltage, or inverter minimum MPPT voltage and maximum MPPT voltage are zero, see the note below. -#. Under **Tracking & Orientation**, choose options to specify the module tracking, orientation and ground coverage ratio as applicable. +#. On the :doc:`pv_tracking_layout_land` page, under **Tracking & Orientation**, choose options to specify the module tracking, orientation. + +#. Under **Row Dimensions and Spacing**, type a value for the ground coverage ratio (GCR) as applicable. -#. On the Losses page, specify any DC or AC losses. You can use default values if you do not have specific loss values for your system design. +#. On the :doc:`pv_electrical_losses` page, specify any DC or AC losses. You can use default values if you do not have specific loss values for your system design. .. _pv-sizingalgorithm: PV Array Sizing Calculator Algorithm -.................................... +------------------------------------ The array sizing calculator uses the following algorithm to determine the number of modules and inverters in the array: @@ -265,19 +291,13 @@ The array sizing calculator uses the following algorithm to determine the number #. Calculate the number of strings in parallel required to meet the desired array capacity. -#. Calculate the number of inverters required to meet the DC-to-AC ratio you specify. +#. Calculate the number of inverters required to meet the DC to AC ratio you specify. The algorithm uses the following rules to size the array: * The string open circuit voltage (Voc) is less than the inverter's maximum DC voltage. -* The ratio of the array's nameplate capacity in DC kW to the inverter total capacity in AC kW is close to the DC-to-AC ratio that you specify. - -For the inverters in the CEC database with missing voltage limits: - -* If the inverter minimum MPPT voltage and maximum MPPT voltage values are not available, then the number of modules per string is one. - -* If the inverter maximum DC voltage is not available, but the minimum and maximum MPPT voltage values are, then the number of modules in series is determined from the MPPT voltage limits and the module maximum power voltage (see flowchart for details). +* The ratio of the array's nameplate capacity in DC kW to the inverter total capacity in AC kW is close to the DC to AC ratio that you specify. .. image:: ../images/IMG_PVArray-sizing-flowchart.png :align: center @@ -310,4 +330,4 @@ Where * - *Nseries* - Number of modules in series * - *Nparallel* - - Number of strings in parallel * - \ No newline at end of file + - Number of strings in parallel diff --git a/doc/source/detailed-photovoltaic-model/pv_system_size.rst b/doc/source/detailed-photovoltaic-model/pv_system_size.rst index 9bdbd57f05..e0bced9010 100644 --- a/doc/source/detailed-photovoltaic-model/pv_system_size.rst +++ b/doc/source/detailed-photovoltaic-model/pv_system_size.rst @@ -18,7 +18,7 @@ If you just want to quickly size the system for an array with a single subarray, #. Type a value for **Desired DC to AC ratio**, or use the default value. SAM automatically calcualtes the total inverter capacity. For example, given a 454 kWac inverter, for a 227 kWdc array with a DC to AC ratio of 1.2, the number of inverters is 2: *500 kWdc ÷ 227 kWdc = 2.2*. -#. If your system includes battery storage, configure the battery bank on the :doc:`../battery-storage/battery_storage_btm` page. +#. If your system includes battery storage, configure the battery bank on the Battery Cell and System page. See :ref:`pv-sizing` for configuration examples and detailed sizing instructions. @@ -199,7 +199,7 @@ If your system has one inverter and supports up to four maximum power point trac If your system has one inverter and more than four MPPTs, model the system with one MPPT. Alternatively, depending on the design of your system, it may be possible to use a single MPPT number to represent a group of MPPTs in your system that are connected to modules with the same orientation, tracking, and shading. -If your system has more than one inverter and more than one subarray, SAM assumes that all inverters operate at the same voltage determined by a single MPPT. The inverter input voltage is either the average of the subarray voltages or calculated using an iterative method, depending on the method you choose for :ref:`the voltage mismatch option `. +If your system has more than one inverter and more than one subarray, SAM assumes that all inverters operate at the same voltage determined by a single MPPT. The inverter input voltage is either the average of the subarray voltages or calculated using an iterative method, depending on the method you choose for :ref:`pvmismatchoption`. See :doc:`pv_sizing_instructions` for more details and examples. diff --git a/doc/source/electricity-rates-and-load/electricity_bill_results.rst b/doc/source/electricity-rates-and-load/electricity_bill_results.rst index 2048637994..89e541de0b 100644 --- a/doc/source/electricity-rates-and-load/electricity_bill_results.rst +++ b/doc/source/electricity-rates-and-load/electricity_bill_results.rst @@ -3,10 +3,11 @@ Electricity Bill Results The electricity bill is the residential or commercial building owner's monthly electricity payment to the electric service provider. In order to calculate the value of the energy generated by the power system, SAM calculates the electricity bill with the system and the bill without the system. The savings is the difference between the two. SAM calculates the with and without system bill for the same electricity rate schedule as it is defined on the :doc:`Electricity Rates ` page: -  **With system:** The customer's electricity bill for an electric load met by power from both the renewable energy system and grid. +* **With system:** The customer's electricity bill for an electric load met by power from both the renewable energy system and grid. - ** Without system:** The customer's electricity bill if the entire load is met with grid power only. - .. note:: If you are modeling a rate switching scenario, where the electricity rate structure for the electricity bill without the system is different from the rate structure for the bill with the system, you can use the **Value of RE System** :doc:`macro <../reference/macros>` to specify two different electricity rates and calculate key metrics based on the results of two separate simulations. +* **Without system:** The customer's electricity bill if the entire load is met with grid power only. + +.. note:: If you are modeling a rate switching scenario, where the electricity rate structure for the electricity bill without the system is different from the rate structure for the bill with the system, you can use the **Value of RE System** :doc:`macro <../reference/macros>` to specify two different electricity rates and calculate key metrics based on the results of two separate simulations. .. _utility-bill-metrics: @@ -61,17 +62,12 @@ The Data Tables tab shows data for the electricity bill with and without the sys Monthly Data / Electricity Rate Data by Year ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Monthly Data list on the Data Tables tab shows monthly totals that SAM uses for electricity bill calculations. - - .. note:: The monthly electricity bill may be negative in some situations when the value of electricity credits is more than the electricity bill. SAM treats the negative bill as savings in the project cash flow. - - -.. note:: SAM uses the following method to calculate monthly and annual kWh totals from kW time series data: + SAM uses the following method to calculate monthly and annual kWh totals from kW time series data: - -.. note:: *  Monthly Total (kWh) = SUM OVER MONTH( Time Series Value (kW/time step) × Time Steps per Hour (1/h) )* + *Monthly Total (kWh) = SUM OVER MONTH( Time Series Value (kW/time step) × Time Steps per Hour (1/h) )* @@ -79,11 +75,11 @@ The Monthly Data list on the Data Tables tab shows monthly totals that SAM uses For the buy all / sell all metering option, the dollar value of monthly electricity sales. Set to zero for the net metering and net billing options. **Billing demand (kW)** -A value in kW representing the billable peak demand over a given period. + A value in kW representing the billable peak demand over a given period. -The billing demand may be the maximum consumption over a month, over a time-of-use period and tier within a month, or over a lookback period of more than one month. + The billing demand may be the maximum consumption over a month, over a time-of-use period and tier within a month, or over a lookback period of more than one month. -The billing demand may equal to the actual maximum consumption over the period, or calculated as a percentage of the actual maximum consumption. + The billing demand may equal to the actual maximum consumption over the period, or calculated as a percentage of the actual maximum consumption. **Demand charge ($)** The demand charge component of the monthly electricity bill. The total electricity bill includes both a fixed demand charge and TOU demand charge. @@ -153,6 +149,7 @@ The billing demand may equal to the actual maximum consumption over the period, Hourly / n Minute Data ~~~~~~~~~~~~~~~~~~~~~~ + The Hourly or *n* Minute Data list depends on the simulation time step. For hourly simulations, SAM displays an Hourly Data list. For subhourly simulations, it displays the simulation time step. For example, for 15-minute simulations it displays a 15 Minute Data list. In time series results (hourly or subhourly), some electricity bill values are in the last hour of each month: @@ -164,7 +161,7 @@ In time series results (hourly or subhourly), some electricity bill values are i **Bill load (kWh)** The load values used for energy charge and credit calculations. These values are converted to kilowatt-hour (kWh) from the electricity load data kilowatt (kW) values: -*Bill Load (kWh) = Electricity Load (kW) × Simulation Time Stem (minutes) ÷ 60 minutes* + *Bill Load (kWh) = Electricity Load (kW) × Simulation Time Stem (minutes) ÷ 60 minutes* **Demand charge with system ($)** The demand charge amount, shown in the last hour of the month. @@ -215,6 +212,7 @@ In time series results (hourly or subhourly), some electricity bill values are i Electricity Rate Data by Tier and Period ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The Electricity Rate Data by Tier and Period list shows data used to calculate the energy charge portion of the electricity bill for each month when the rate structure includes time-of-use (TOU) periods and/or tiers. **Electricity exports with system MMM (kWh)** @@ -230,12 +228,13 @@ The Electricity Rate Data by Tier and Period list shows data used to calculate t Electricity Demand Data by Period ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The Electricity Demand Data by period list shows data used to calculate demand charge portion of the electricity bill for each month when the rate structure includes demand charges. **Demand peak charge ($)** The portion of the demand charge assessed for each time-of-use period in each month. The total demand charge for each month is the sum of demand charges by time-of-use period. **Demand peak (kW)** -The peak demand value that SAM uses to calculate the demand charge for each time-of-use period by month. For demand rates with time-of-use periods, SAM calculates the billing demand for each time-of-use period. + The peak demand value that SAM uses to calculate the demand charge for each time-of-use period by month. For demand rates with time-of-use periods, SAM calculates the billing demand for each time-of-use period. -If billing demand lookback is enabled on the Electricity Rates page, the billing demand for a given time-of-use period or tier may be different than the actual maximum consumption depending on the lookback parameters on the Electricity Rates page. \ No newline at end of file + If billing demand lookback is enabled on the Electricity Rates page, the billing demand for a given time-of-use period or tier may be different than the actual maximum consumption depending on the lookback parameters on the Electricity Rates page. diff --git a/doc/source/electricity-rates-and-load/electricity_load.rst b/doc/source/electricity-rates-and-load/electricity_load.rst index fbe80bfa9d..611206bef4 100644 --- a/doc/source/electricity-rates-and-load/electricity_load.rst +++ b/doc/source/electricity-rates-and-load/electricity_load.rst @@ -17,11 +17,9 @@ There are three options for specifying the building or facility's electric load: .. note:: You can use the Download Electric Load :doc:`macro <../reference/macros>` to automatically import reference residential and commercial building load data from the `Commercial and Residential Hourly Load Profiles for all TMY3 Locations in the United States `__ to SAM. + For estimates of roof area available for different commercial building types, see the table at https://www.energy.gov/eere/buildings/commercial-reference-buildings and divide the total building area by the number of floors. -.. note:: For estimates of roof area available for different commercial building types, see the table at https://www.energy.gov/eere/buildings/commercial-reference-buildings and divide the total building area by the number of floors. - - -.. note:: If you are modeling a project with critical loads, specify the critical load on the :doc:`Grid Outage <../grid/grid_outage>` page. + If you are modeling a project with critical loads, specify the critical load on the :doc:`Grid Outage <../grid/grid_outage>` page. .. _inputs: @@ -30,7 +28,7 @@ Input Time Series Load Data The Input Time Series Load Data option allows you to import hourly or subhourly load data from a text file, or copy and paste it from a spreadsheet or other program. It also provides an option for scaling the load data to better match the building's load or values from an electricity bill. Hourly or Subhourly Load Profile -................................ +-------------------------------- **Electric load power, kW** Click **Edit array** to either cut and paste load data from another program or import data from a properly formatted text file. See :ref:`Working with Time Series Load Data ` for instructions. @@ -42,10 +40,20 @@ Hourly or Subhourly Load Profile To calculate the scaled load data, SAM multiplies the hourly or subhourly load data you by the scaling factor that you specify. For example, if you specify a scaling factor of 1.5, and the load at 2 p.m. on March 18th is 1.2 kW, SAM would use a load value of 1.5 × 1.2 = 1.8 kW for that hour. -.. include:: ../includes/snip_load_annual_adjustment.rst +**Electric load annual growth rate, %/yr** + The load growth rate scales the load in years two and later by the percentage you specify. For example, if you specify a load growth rate of 0.5% per year, for each year in the analysis period specified on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page, SAM would increase the load value in each time step by 0.5% of the previous year's load value for the same time step. + + You can also assign load growth rates to specific years using the annual schedule: + +.. include:: /includes/snip_annual_values.rst + +**January 1 day of week** + By default, SAM assumes that January 1 is a Monday. + + If the energy or demand rates on the :doc:`electricity_rates` page involve different weekday and weekend rates, and if you are using a weather file for a specific year, you can change the January 1 day of week to the appropriate day for that year to ensure that the weekday and weekend rates are applied on the correct days. Adjust Load Profile to Monthly Usage -.................................... +------------------------------------ Sometimes the only information you have about a building or facility's electric usage is total monthly usage in kWh and perhaps peak usage in kW from a monthly electricity bill. In this case, you can use time series load data from a model or other source of data to approximate the daily load shape, and scale this data so that the monthly totals of your data match the usage data from the electricity bill. @@ -63,7 +71,7 @@ Sometimes the only information you have about a building or facility's electric Opens the :doc:`time series data viewer <../reference/time_series_viewer>` to display graphs of the load data. If you chose one of the options to scale load data, the graphs show both the original data and the scaled data so you can verify that the scaled data is suitable for your analysis. Download -........ +-------- Click **Download Electric Load Data** to download hourly load data for a selection residential or commercial building types. Clicking the button is the same as running the "Download Electric Load" macro from the Macros page, which you can access by clicking **Macros** under the simulate button. @@ -72,7 +80,7 @@ The macro downloads an hourly load file from the `Commercial and Residential Hou .. note:: The `End-Use Load Profiles for the U.S. Building Stock `__ provides access to thousands of 15-minute load profiles for many residential and commercial building types modeled using single-year NSRDB weather files for more recent years than the TMY3 data. You can use the `End Use Load Profiles Python package `__ to access the data to use with SAM. Because of the much larger number of load profiles and building types represented in the data, it is not possible to create a short list of building types to choose from in the same way as the macro does for the older dataset. An API for the newer dataset may be available in the future that will make this possible. Monthly Load Summary -.................... +-------------------- SAM displays the table of monthly and annual totals to help you verify that the load data is correct. SAM calculates these values from the time series load data. To change the monthly values, you have to either change the time series data, or change scaling factors. @@ -104,13 +112,13 @@ Calculate Load Data The calculate load data option for residential buildings allows you to use monthly electric bill data and basic building energy parameters to calculate an hourly load profile. You can use this option to estimate load data when you do not have access to more accurate data. Building Energy Load Profile Estimator -...................................... +-------------------------------------- The Building Energy Load Profile Estimator is a basic residential building model that calculates hourly electric load data given some simple building energy parameters, monthly electricity usage in kWh, and solar resource data from a weather file. .. note:: The Building Energy Load Profile Estimator generates a rough estimate of a residential building's electric load. Click **View load data** to see the data it generates and verify that it is suitable for your analysis before you run a simulation. In some cases, it may generate extreme peak values for some hours that you can either ignore or edit. -To use the estimator +**To use the estimator:** * Enter values and choose options to describe the residential building's basic energy performance. @@ -118,9 +126,23 @@ To use the estimator * Under **Monthly Load Data**, type monthly total electricity consumption values for one year's worth of electricity bills. -* Click **View load data** to open the :doc:`time series data viewer <../reference/time_series_viewer>` with the 8,760 hourly load profile generated by the estimator. +**January 1 day of week** + By default, SAM assumes that January 1 is a Monday. + + If the energy or demand rates on the :doc:`electricity_rates` page involve different weekday and weekend rates, and if you are using a weather file for a specific year, you can change the January 1 day of week to the appropriate day for that year to ensure that the weekday and weekend rates are applied on the correct days. + +**View load data** + Click **View load data** to open the :doc:`time series data viewer <../reference/time_series_viewer>` with the 8,760 hourly load profile generated by the estimator. + +Annual Adjustment +----------------- + +**Load growth rate, %/yr** + The load growth rate scales the load in years two and later by the percentage you specify. For example, if you specify a load growth rate of 0.5% per year, for each year in the analysis period specified on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page, SAM would increase the load value in each time step by 0.5% of the previous year's load value for the same time step. + + You can also assign load growth rates to specific years using the annual schedule: -.. include:: ../includes/snip_load_annual_adjustment.rst +.. include:: /includes/snip_annual_values.rst .. _electric-load-timeseries: @@ -157,7 +179,7 @@ Importing Data from a File SAM can import data from a text file that contains a single column of values representing the load in a single year. SAM ignores the first row, so you can use that row to store text describing the data. The number of rows depends on the number of time steps. For hourly data, the file should contain a total of 8,761 rows: The first row for header information, and the remaining rows for the load data. For 15-minute data, the file should contain 1 + 8760 x 4 = 35,041 rows. -To import load data from a properly formatted text file: +**To import load data from a properly formatted text file:** #. On the Electric Load page, choose the **Input Time Series Load Data** option. @@ -167,7 +189,7 @@ To import load data from a properly formatted text file: #. Navigate to the folder containing the load data file and open the file. -SAM displays the data in the data table. Use the scroll bar to see all of the data. + SAM displays the data in the data table. Use the scroll bar to see all of the data. #. Click **OK** to return to the Electric Load page. @@ -180,7 +202,7 @@ Pasting Load Data from your Computer's Clipboard If you have load data in a spreadsheet or other program that allows you to copy columns of data to your computer's clipboard, you can paste the data into SAM. The data should be a single column of values in kilowatt-hours representing the load in a single year. The number of rows depends on the number of time steps. For hourly data, the column should contain 8,760 rows of load data. -To paste load data from your computer's clipboard: +**To paste load data from your computer's clipboard:** #. On the Electric Load page, choose the **Input Time Series Load Data** option. @@ -190,6 +212,6 @@ To paste load data from your computer's clipboard: #. In SAM's Edit Data window, click **Paste**. -SAM displays the data in the data table. Use the scroll bar to see all of the data. + SAM displays the data in the data table. Use the scroll bar to see all of the data. #. Click **OK** to return to the Electric Load page. \ No newline at end of file diff --git a/doc/source/electricity-rates-and-load/electricity_purchases.rst b/doc/source/electricity-rates-and-load/electricity_purchases.rst index 88e72f3382..95afce55c6 100644 --- a/doc/source/electricity-rates-and-load/electricity_purchases.rst +++ b/doc/source/electricity-rates-and-load/electricity_purchases.rst @@ -13,18 +13,18 @@ SAM provides two options for defining the retail rate structure for electricity **Use PPA or market prices** The **Use PPA Price** option is for projects that purchase power at the same rate as the PPA price, adjusted as appropriate by time-of-delivery (TOD) multipliers and power price escalation rates. -.. note:: The Use PPA Price or Market Prices option is not available with **Specify IRR target** on the Revenue page (Financial Parameters page for Partnership Flip and Sale Leaseback financial models) because SAM needs to know the PPA price at the start of the simulation to calculate the cost of electricity purchases. + .. note:: The Use PPA Price or Market Prices option is not available with **Specify IRR target** on the Revenue page (Financial Parameters page for Partnership Flip and Sale Leaseback financial models) because SAM needs to know the PPA price at the start of the simulation to calculate the cost of electricity purchases. -.. note:: If you want to use the Specify IRR Target option with the PPA price as the price for electricity purchases, choose **Use retail electricity rate(s)**, define an energy rate table with one row, and set the buy rate to the PPA price. You may need to start with an initial guess for the PPA price and run iterative simulations to determine the PPA price. To use time series price data, check **Use hourly (subhourly) buy rates instead of TOU rates** and import the price data. + If you want to use the Specify IRR Target option with the PPA price as the price for electricity purchases, choose **Use retail electricity rate(s)**, define an energy rate table with one row, and set the buy rate to the PPA price. You may need to start with an initial guess for the PPA price and run iterative simulations to determine the PPA price. To use time series price data, check **Use hourly (subhourly) buy rates instead of TOU rates** and import the price data. **Use retail electricity rate(s)** The Use Retail Electricity Rate(s) option is for projects that purchase power at retail rates. You can define the retail buy rate as a fixed rate, a set of time-of-use rates with optional tiers, or a table of hourly or subhourly time-series buy rates. The retail rate structure may also include fixed and minimum charges and demand charges. You can specify the rate structure by hand or download rate data from the OpenEI Utility Rate Database. -.. note:: Only the **Buy all / sell all** metering option with no sell rate is available for electricity purchases. + .. note:: Only the **Buy all / sell all** metering option with no sell rate is available for electricity purchases. -.. note:: SAM uses the same inputs to define retail rates for electricity purchases as it does for behind-the-meter projects that may involve net metering and/or sell rates that are described in the retail rates documentation below. For the front-of-meter system, these inputs are disabled, so you can ignore the descriptions. + SAM uses the same inputs to define retail rates for electricity purchases as it does for behind-the-meter projects that may involve net metering and/or sell rates that are described in the retail rates documentation below. For the front-of-meter system, these inputs are disabled, so you can ignore the descriptions. Rate Structure Definitions ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -43,6 +43,7 @@ SAM's monthly electricity bill calculator includes the features listed below. Th OpenEI Utility Rate Database ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + NREL's Open Energy Information (OpenEI) `Utility Rate Database (URDB) `__ hosts a database of retail electricity rate structures for electric service providers in the United States and some other countries. SAM allows you to search the database and import rate structure data from the database to the input variables on the Electricity Rates page. SAM accesses `Version 8 of the URDB API `__. **Search for Rates** @@ -62,9 +63,9 @@ NREL's Open Energy Information (OpenEI) `Utility Rate Database (URDB) ` page, and degradation rate from the :doc:`Degradation <../degradation/degradation>` page. @@ -121,7 +126,7 @@ The escalation rate is an annual percentage increase that applies to the monthly In some cases, it may be appropriate to use an annual schedule to define a different escalation rate for each year. When you specify the escalation rate using an annual schedule, SAM applies only the escalation rate and excludes inflation from the calculation of out-year values. -To specify annual escalation rates (optional): +**To specify annual escalation rates (optional):** .. include:: ../includes/snip_annual_values.rst @@ -129,6 +134,7 @@ To specify annual escalation rates (optional): Description and Applicability ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + These variables help you identify the rate structure but do not affect simulation results. If you download rate structure data from the Utility Rate Database, SAM populates the variables automatically. **Name** @@ -152,6 +158,7 @@ These variables help you identify the rate structure but do not affect simulatio Energy Charges ~~~~~~~~~~~~~~ + SAM uses the information in the energy rate table and weekday and weekend schedules to calculate the energy charge portion of each month's electricity bill based on the quantity of electricity delivered to the battery from the grid over the month. Energy Rate Table @@ -164,7 +171,7 @@ Each row in the table defines the rates and tier limit for one period and tier. **Number of entries** The total number of energy rates in the structure, equal to the product of the number of time-of-use periods and tiers. The number of rows in the table is equal to the number of entries. When you change the number of entries, SAM changes the number of rows in the table. -.. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. + .. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. **Period (1-12)** Each period number represents a time-of-use period for energy charges. For example, for a simple rate structure with one summer period and one period, you could assign Period 1 to the summer months and Period 2 to the winter months. The time-of-use period must be a number between 1 and 12 and each period must be associated with a time defined by the :doc:`weekday and weekend schedules <../reference/weekday_schedule>` . @@ -188,7 +195,7 @@ Each row in the table defines the rates and tier limit for one period and tier. For maximum usage units of kWh/kW or kWh/kW daily, SAM calculates the energy charge for a given month from both the total consumption in kWh and billing demand in kW for each time-of-use period and tier in that month. See :ref:`Billing Demand ` for details. -.. note:: For rate structures that include tiers with kWh/kW or kWh/kW daily maximum usage units, the maximum usage units for Tier 1 must be kWh/kW. + .. note:: For rate structures that include tiers with kWh/kW or kWh/kW daily maximum usage units, the maximum usage units for Tier 1 must be kWh/kW. **Buy ($/kWh)** The price paid by the project in dollars per kilowatt-hour for electricity delivered by the grid for each period and tier. @@ -289,7 +296,7 @@ For a basic demand rate with no tiers, set the number of entries to 12 (one for For a demand rate structure with tiers, the number of entries should be the total number of tiers. The number of rows in the table is equal to the number of entries. When you change the number of entries, SAM changes the number of rows in the table. -.. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. + .. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. **Month** The month for the demand rate. For a flat demand rate structure with no tiers, the table should have one row for each month of the year. @@ -331,7 +338,7 @@ For a demand rate structure that varies with time of day and year with tiers, sp **Number of entries** The total number of time-of-use periods and tiers the demand rate structure. SAM sizes the table based on the number of entries.  The number of rows in the table is equal to the number of entries. When you change the number of entries, SAM changes the number of rows in the table. -.. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. + .. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. **Period (1-12)** The time-of-use period must be a number between 1 and 12, and must also be defined in the either the :doc:`weekday or weekend schedule <../reference/weekday_schedule>` . If tiers apply to a time-of-use period, assign the same period number to each tier in the period. @@ -345,4 +352,4 @@ For a demand rate structure that varies with time of day and year with tiers, sp The peak demand for the tier and period. **Charge ($/kW)** - The demand rate that applies to the tier and period. \ No newline at end of file + The demand rate that applies to the tier and period. diff --git a/doc/source/electricity-rates-and-load/electricity_rates.rst b/doc/source/electricity-rates-and-load/electricity_rates.rst index 419aa8223c..714838173c 100644 --- a/doc/source/electricity-rates-and-load/electricity_rates.rst +++ b/doc/source/electricity-rates-and-load/electricity_rates.rst @@ -11,10 +11,7 @@ In order to calculate the electricity bill savings, SAM calculates the both the .. note:: If you are modeling a rate switching scenario, where the electricity rate structure for the electricity bill without the system is different from the rate structure for the bill with the system, you can use the **Value of RE** :doc:`macro <../reference/macros>` to specify two different electricity rates and calculate key metrics based on the results of two separate simulations. -Electricity Rates and Self Consumption -...................................... - -For photovoltaic systems with inverters that consume power at night or concentrating power systems (CSP) with night-time parasitic loads, the system may generate net negative power at night or during other times that the system is not generating power. For behind-the-meter projects, the cost of this power is included in the energy charge portion of the monthly electricity bill. For front-of-meter projects with or without batteries, the cost of this power is treated as a tax-deductible operating expense at prices determined by inputs on the :doc:`Electricity Purchases ` page. + For photovoltaic systems with inverters that consume power at night or concentrating power systems (CSP) with night-time parasitic loads, the system may generate net negative power at night or during other times that the system is not generating power. For behind-the-meter projects, the cost of this power is included in the energy charge portion of the monthly electricity bill. For front-of-meter projects with or without batteries, the cost of this power is treated as a tax-deductible operating expense at prices determined by inputs on the :doc:`Electricity Purchases ` page. .. _electricity-rates-overview: @@ -25,13 +22,13 @@ SAM's rate structure model is designed to have enough detail to model most featu .. note:: SAM can import retail electricity rate data from the online `OpenEI Utility Rate Database `__ database. -.. note:: All rates and charges on the Electricity Rates page are in Year 1 dollars. SAM applies both the inflation rate from the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page and the optional electricity bill escalation rate to calculate the electricity bill in Years 2 and later. + All rates and charges on the Electricity Rates page are in Year 1 dollars. SAM applies both the inflation rate from the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page and the optional electricity bill escalation rate to calculate the electricity bill in Years 2 and later. -.. note:: The electricity rate calculations work with the data from the :doc:`Electric Load ` page. Be sure to specify a load that is appropriate for your project. Choose the No Load option on the Electric Load page only if your project sells all of the power it generates at the sell rates specified on the Electricity Rates page. The No Load option in combination with net metering results in a project that sells no power because the sell rate is set to zero for net metering. + The electricity rate calculations work with the data from the :doc:`Electric Load ` page. Be sure to specify a load that is appropriate for your project. Choose the No Load option on the Electric Load page only if your project sells all of the power it generates at the sell rates specified on the Electricity Rates page. The No Load option in combination with net metering results in a project that sells no power because the sell rate is set to zero for net metering. -.. note:: The electricity bill does not affect the project's :doc:`levelized cost of energy (LCOE) <../financial-metrics/mtf_lcoe>`, because the LCOE accounts for the cost of installing and operating the renewable energy system, but not the cost supplying electricity to the building or facility. The electricity bill does affect the project :doc:`net present value (NPV) <../financial-metrics/mtf_npv>`, :doc:`payback period <../financial-metrics/mtf_payback>`, and :doc:`net savings <../financial-metrics/mtf_revenues>`. + The electricity bill does not affect the project's :doc:`levelized cost of energy (LCOE) <../financial-metrics/mtf_lcoe>`, because the LCOE accounts for the cost of installing and operating the renewable energy system, but not the cost supplying electricity to the building or facility. The electricity bill does affect the project :doc:`net present value (NPV) <../financial-metrics/mtf_npv>`, :doc:`payback period <../financial-metrics/mtf_payback>`, and :doc:`net savings <../financial-metrics/mtf_revenues>`. -.. note:: SAM assumes that the first day of the year is Monday, January 1 and does not account for leap years or for daylight savings time. (The last day is Monday, December 31). + SAM assumes that the first day of the year is Monday, January 1 and does not account for leap years or for daylight savings time. (The last day is Monday, December 31). .. _electricity-rates-glossary: @@ -51,7 +48,7 @@ The language used to describe electricity rate structures and compensation for e SAM reports excess generation for the net energy metering option as **Excess generation** in kilowatt-hours per month. For the net billing options that calculate excess generation on a time step basis, SAM reports excess generation as **Electricity to grid from system** in kilowatts for each time step. -.. note:: SAM reports both **Excess generation** and **Electricity to grid from system** regardless of the billing option. Keep in mind that **Excess generation** is only used in the bill calculation for the net energy metering option and **Electricity to grid from system** is only used for the net billing options. + .. note:: SAM reports both **Excess generation** and **Electricity to grid from system** regardless of the billing option. Keep in mind that **Excess generation** is only used in the bill calculation for the net energy metering option and **Electricity to grid from system** is only used for the net billing options. **Flat rate** A constant rate that does not change with hour of day or month of year. @@ -167,8 +164,7 @@ OpenEI Utility Rate Database NLR's Open Energy Information (OpenEI) `Utility Rate Database (URDB) `__ hosts a database of retail electricity rate structures for electric service providers in the United States and some other countries. SAM allows you to search the database and import rate structure data from the database to the input variables on the Electricity Rates page. SAM accesses `Version 8 of the URDB API `__. **Search for Rates** - - Click to search the OpenEI database for a rate structure and import the structure into SAM. This feature requires a :doc:`web connection <../reference/configure_proxy_server>` : + Click to search the OpenEI database for a rate structure and import the structure into SAM. This feature requires a :doc:`web connection <../reference/configure_proxy_server>`: #. In the OpenEI Utility Rate Database window, once the list of electric service providers appears, type either a zip code in **Zip code** or a few letters of the service provider's name in **Filter** to show providers who meet the criteria you typed. @@ -184,9 +180,9 @@ NLR's Open Energy Information (OpenEI) `Utility Rate Database (URDB) ` does not reflect the annual minimum charge. + Like all of the dollar values on the Electricity Rates page, the minimum charge amounts are Year 1 values. If you apply an annual minimum charge, the monthly electricity bill with system data shown in the :doc:`Results ` does not reflect the annual minimum charge. Annual Escalation ~~~~~~~~~~~~~~~~~ @@ -284,7 +280,7 @@ The escalation rate is an annual percentage increase that applies to the monthly In some cases, it may be appropriate to use an annual schedule to define a different escalation rate for each year. When you specify the escalation rate using an annual schedule, SAM applies only the escalation rate and excludes inflation from the calculation of out-year values. -To specify annual escalation rates (optional): +**To specify annual escalation rates (optional):** .. include:: ../includes/snip_annual_values.rst @@ -331,7 +327,7 @@ Each row in the table defines the rates and tier limit for one period and tier. **Number of entries** The total number of energy rates in the structure, equal to the product of the number of time-of-use periods and tiers. The number of rows in the table is equal to the number of entries. When you change the number of entries, SAM changes the number of rows in the table. -.. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. + .. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. **Period (1-36)** Each period number represents a time-of-use period for energy charges. For example, for a simple rate structure with one summer period and one period, you could assign Period 1 to the summer months and Period 2 to the winter months. The time-of-use period must be a number between 1 and 36 and each period must be associated with a time defined by the :doc:`weekday and weekend schedules <../reference/weekday_schedule>` . @@ -355,7 +351,7 @@ Each row in the table defines the rates and tier limit for one period and tier. For maximum usage units of kWh/kW or kWh/kW daily, SAM calculates the energy charge for a given month from both the total consumption in kWh and billing demand in kW for each time-of-use period and tier in that month. See :ref:`Billing Demand ` for details. -.. note:: For rate structures that include tiers with kWh/kW or kWh/kW daily maximum usage units, the maximum usage units for Tier 1 must be kWh/kW. + .. note:: For rate structures that include tiers with kWh/kW or kWh/kW daily maximum usage units, the maximum usage units for Tier 1 must be kWh/kW. **Buy ($/kWh)** The price paid by the project in dollars per kilowatt-hour for electricity delivered by the grid for each period and tier. @@ -391,7 +387,7 @@ For a **simple rate structure with no time-of-use periods or tiers**: * Use Period 1 Tier 1 to define the buy and sell rates. -For the single meter with rollover metering options (net metering), SAM ignores the sell rate, but you should set it to zero to avoid confusion. + For the single meter with rollover metering options (net metering), SAM ignores the sell rate, but you should set it to zero to avoid confusion. * Set the time-of-use periods for all months and hours in the Weekday and Weekend schedules to 1. @@ -399,7 +395,7 @@ For the single meter with rollover metering options (net metering), SAM ignores :align: center :alt: SS_UtilityRate-simple-flat-rate.png -For a rate structure with** time-of-use rates but no tiered rates**, set the number of entries to the number of time-of-use periods, and assign buy and sell rates *only to Tier 1* of each of up to twelve time-of-use periods in the schedule, and set the maximum usage value to a very large number (1e+038 is the largest number SAM will accept). Then, use the Weekday and Weekend schedules to define the time of day and year that each time-of-use period applies. This example has three time-of-use periods: +For a rate structure with **time-of-use rates but no tiered rates**, set the number of entries to the number of time-of-use periods, and assign buy and sell rates *only to Tier 1* of each of up to twelve time-of-use periods in the schedule, and set the maximum usage value to a very large number (1e+038 is the largest number SAM will accept). Then, use the Weekday and Weekend schedules to define the time of day and year that each time-of-use period applies. This example has three time-of-use periods: .. image:: ../images/SS_UtilityRate-simple-tou-rate.png :align: center @@ -451,9 +447,9 @@ For rate structures that calculate billing demand based on consumption in previo **Edit values** to enter the peak load in kW for each month in Year 0. -.. note:: If you clear the Use Monthly Peaks from Year 1 option and change the load on the Electric Load page, be sure to also change the Year 0 values as appropriate. + .. note:: If you clear the Use Monthly Peaks from Year 1 option and change the load on the Electric Load page, be sure to also change the Year 0 values as appropriate. -This option is only available for behind-the-meter projects with the Input Time Series Load Data option enabled on the Electric Load page. + This option is only available for behind-the-meter projects with the Input Time Series Load Data option enabled on the Electric Load page. **Monthly peak demand in Year 0, kW** The monthly peak demand for the year before the renewable energy system is installed. SAM starts the cash flow calculation on January 1 of Year 1, which is the first year that the system generates power, so it does not have information about the load in the previous year. @@ -486,7 +482,7 @@ The Billing Demand by Time-of-use Period table applies when the rate structure i **Included in Billing Demand (0/1)** For each time-of-use period, assign a 1 to include consumption in that period in the billing demand calculation. Assign a zero to exclude consumption in that period from the billing demand calculation. -.. note:: You must assign a 1 to at least one time-of-use period for the demand charge calculations to work correctly, even if the **Charge ($/kW)** column in the Demand Rates by Time-of-use Period and/or Tiers table is set to zero.. note:: for all periods. +.. note:: You must assign a 1 to at least one time-of-use period for the demand charge calculations to work correctly, even if the **Charge ($/kW)** column in the Demand Rates by Time-of-use Period and/or Tiers table is set to zero for all periods. .. _electricity-rates-demand: @@ -516,7 +512,7 @@ For a basic demand rate with no tiers, set the number of entries to 12 (one for For a demand rate structure with tiers, the number of entries should be the total number of tiers. The number of rows in the table is equal to the number of entries. When you change the number of entries, SAM changes the number of rows in the table. -.. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. + .. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. **Month** The month for the demand rate. For a flat demand rate structure with no tiers, the table should have one row for each month of the year. @@ -558,7 +554,7 @@ For a demand rate structure that varies with time of day and year with tiers, sp **Number of entries** The total number of time-of-use periods and tiers the demand rate structure. SAM sizes the table based on the number of entries.  The number of rows in the table is equal to the number of entries. When you change the number of entries, SAM changes the number of rows in the table. -.. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. + .. note:: If you change the number of entries to a smaller number, you will lose data in the rows when SAM resizes the table. **Period (1-12)** The time-of-use period must be a number between 1 and 12, and must also be defined in the either the :doc:`weekday or weekend schedule <../reference/weekday_schedule>` . If tiers apply to a time-of-use period, assign the same period number to each tier in the period. @@ -589,4 +585,4 @@ See :doc:`Weekday Weekend Schedules <../reference/weekday_schedule>` for detaile The time-of-day and month-of-year matrix that assigns a period representing set of time-of-use rates to the five working days of the week. For electricity bill calculations, SAM assumes that weekdays are Monday through Friday and that the year begins on Monday, January 1, in the hour ending at 1:00 am. **Weekend** - The time-of-day and month-of-year matrix that assigns time-of-use periods to the two weekend days of the week: Saturday and Sunday. \ No newline at end of file + The time-of-day and month-of-year matrix that assigns time-of-use periods to the two weekend days of the week: Saturday and Sunday. diff --git a/doc/source/electricity-rates-and-load/electricity_rates_load.rst b/doc/source/electricity-rates-and-load/electricity_rates_load.rst deleted file mode 100644 index 419ba71899..0000000000 --- a/doc/source/electricity-rates-and-load/electricity_rates_load.rst +++ /dev/null @@ -1,12 +0,0 @@ -Electricity Rates and Load -========================== - -For projects with the :ref:`residential or commercial ` or :ref:`third party ownership ` financial model that buy and sell electricity at retail rates, you specify a rate structure (net metering, energy rates, demand charges, and monthly charges) on the :doc:`Electricity Rates ` page, and a building or facility load on the :doc:`Electric Load ` page. - -* :doc:`Electric Load ` - - -* :doc:`Electricity Rates ` - - -* :doc:`Electricity Bill Results ` diff --git a/doc/source/electricity-rates-and-load/index.rst b/doc/source/electricity-rates-and-load/index.rst index d529de04ad..ed45eff4ff 100644 --- a/doc/source/electricity-rates-and-load/index.rst +++ b/doc/source/electricity-rates-and-load/index.rst @@ -1,9 +1,18 @@ Electricity Rates and Load ========================== +For projects with the :ref:`residential or commercial ` or :ref:`third party ownership ` financial model that buy and sell electricity at retail rates, you specify a rate structure (net metering, energy rates, demand charges, and monthly charges) on the :doc:`Electricity Rates ` page, and a building or facility load on the :doc:`Electric Load ` page. + +* :doc:`Electric Load ` + + +* :doc:`Electricity Rates ` + + +* :doc:`Electricity Bill Results ` + .. toctree:: - electricity_rates_load electricity_load electricity_rates electricity_purchases diff --git a/doc/source/fuel-cell/fuelcell.rst b/doc/source/fuel-cell/fuelcell.rst index 8dea5d03a1..97aa2fd4f3 100644 --- a/doc/source/fuel-cell/fuelcell.rst +++ b/doc/source/fuel-cell/fuelcell.rst @@ -13,7 +13,7 @@ The fuel cell performance model uses the following input pages to describe the c * :doc:`Fuel cell ` model that converts a fuel into electricity, heat, and hydrogen. -* :doc:`PVWatts ` for a photovoltaic (PV) system. +* :doc:`PVWatts <../pvwatts/pvwatts>` for a photovoltaic (PV) system. * Optional :doc:`battery storage <../battery-storage/battery_storage>` model for an electric storage system. diff --git a/doc/source/fuel-cell/fuelcell_dispatch.rst b/doc/source/fuel-cell/fuelcell_dispatch.rst index 7e905d8825..b97151db85 100644 --- a/doc/source/fuel-cell/fuelcell_dispatch.rst +++ b/doc/source/fuel-cell/fuelcell_dispatch.rst @@ -11,7 +11,7 @@ Fuel Cell Operation The fuel cell operation parameters determine the fuel cell operates. Dispatch Options -................ +---------------- **Fixed output** Operate the fuel cell at a fixed percentage of the fuel cell rated capacity at all times. @@ -36,7 +36,7 @@ Dispatch Options For the input dispatch option, click **Edit array** to provide a time series array of either kW or percentage values at which to operate the fuel cell in each simulation time step. Operation Options -................. +----------------- **Allowed to shut down** Allow the fuel cell to shut down completely when it is not not needed to meet dispatch requirements. @@ -44,13 +44,4 @@ Operation Options **Idle at minimum power** Run the fuel cell at the minimum unit output from the :doc:`Fuel Cell ` page when it is not needed to meet dispatch requirements. -Storage Battery Dispatch (Behind Meter) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_dispatch_btm.rst - -Storage Battery Dispatch (Front of Meter) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../includes/snip_battery_dispatch_fom.rst diff --git a/doc/source/fuel-cell/fuelcell_pv_system.rst b/doc/source/fuel-cell/fuelcell_pv_system.rst deleted file mode 100644 index eca87dc64c..0000000000 --- a/doc/source/fuel-cell/fuelcell_pv_system.rst +++ /dev/null @@ -1,7 +0,0 @@ -PV System -========= - -The PV System page is where you define the parameters of the photovoltaic system, which includes the photovoltaic array and inverter. The fuel cell model uses an implementation of PVWatts to represent the photovoltaic system. - -.. include:: ../includes/snip_pvwatts_system_design.rst - diff --git a/doc/source/fuel-cell/index.rst b/doc/source/fuel-cell/index.rst index b2fd898afd..2e1591d4ea 100644 --- a/doc/source/fuel-cell/index.rst +++ b/doc/source/fuel-cell/index.rst @@ -4,6 +4,5 @@ Fuel Cell .. toctree:: fuelcell - fuelcell_pv_system fuelcell_fuel_cell fuelcell_dispatch \ No newline at end of file diff --git a/doc/source/geothermal/geo_ambient_conditions.rst b/doc/source/geothermal/geo_ambient_conditions.rst index c1e57e0228..34f219cd8f 100644 --- a/doc/source/geothermal/geo_ambient_conditions.rst +++ b/doc/source/geothermal/geo_ambient_conditions.rst @@ -11,4 +11,23 @@ The geothermal performance model runs a simulation over the life of the plant (d * For an hourly simulation (**Power Block Hourly** option on the :doc:`Power Block ` page), SAM reads hourly data from the weather file, and uses it to represent ambient conditions in each hour for each year of the analysis period. For example, for an analysis period of 30 years, SAM would use the same temperature, pressure, and humidity values for each July 2nd at 2 pm for each of the 30 years. -* For a monthly simulation (**Power Block Monthly** option on the :doc:`Power Block ` page), SAM calculates average temperature, pressure, and humidity values from the hourly values in the weather file, and uses them to represent the average ambient conditions for each month of the year. SAM uses the same set of twelve monthly average values for each year of the plant's life. \ No newline at end of file +* For a monthly simulation (**Power Block Monthly** option on the :doc:`Power Block ` page), SAM calculates average temperature, pressure, and humidity values from the hourly values in the weather file, and uses them to represent the average ambient conditions for each month of the year. SAM uses the same set of twelve monthly average values for each year of the plant's life. + +.. note:: The geothermal model uses weather data from a weather file formatted in the :doc:`SAM CSV for solar format <../weather-file-formats/weather_format_sam_csv_solar>`. The inputs on the Ambient Conditions page are the same as those on the Location and Resource page of SAM's solar power models and use nomenclature from the solar power models. + +.. include:: ../includes/snip_location_resource.rst + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst diff --git a/doc/source/getting-started/getting_started.rst b/doc/source/getting-started/getting_started.rst index 9cd548aaf0..2019581288 100644 --- a/doc/source/getting-started/getting_started.rst +++ b/doc/source/getting-started/getting_started.rst @@ -3,16 +3,13 @@ Getting Started The following procedure describes the basic steps to set up and run a simulation of a project. -See also: - -* :doc:`Financial Models <../introduction/fin_overview>` - - -* :doc:`Performance Models <../introduction/technology_options>` +.. seealso:: + * :doc:`Financial Models <../introduction/fin_overview>` + * :doc:`Performance Models <../introduction/technology_options>` 1. Create a project -................... +~~~~~~~~~~~~~~~~~~~ When you start SAM, it displays the :doc:`Welcome page ` with several options for creating or opening a file. @@ -23,7 +20,7 @@ To :doc:`create a project `, **Start a new project**. :alt: SS_Welcome_CreateNewFile.png 2. Choose models -................ +~~~~~~~~~~~~~~~~ Your project is made up of a :doc:`performance model <../introduction/technology_options>` for the power system and an optional :doc:`financial model <../introduction/fin_overview>` for the project's financial structure. @@ -36,14 +33,14 @@ To :doc:`choose models <../getting-started/choose_models>`, click the performanc When you choose a financial model, and click **OK**, SAM creates a new file and populates all of the input variables with values from the default values database. 3. Review inputs -................ +~~~~~~~~~~~~~~~~ After creating your file, open each input page and review the default assumptions. See :doc:`Input Pages ` for details. 4. Run a simulation -................... +~~~~~~~~~~~~~~~~~~~ To run a simulation, click **Simulate** at the bottom left of the main window. @@ -54,7 +51,7 @@ To run a simulation, click **Simulate** at the bottom left of the main window. See :doc:`Run Simulation <../getting-started/run_simulations>` for details. 5. Review results -................. +~~~~~~~~~~~~~~~~~ When simulations are complete, SAM displays a summary of results in the Metric table. diff --git a/doc/source/getting-started/welcome_page.rst b/doc/source/getting-started/welcome_page.rst index f621d9c3f5..56a9a14184 100644 --- a/doc/source/getting-started/welcome_page.rst +++ b/doc/source/getting-started/welcome_page.rst @@ -9,7 +9,7 @@ When you start SAM, it displays the Welcome page with options for starting your :align: center :alt: SS_Welcome_Window.png -To start a new project: +**To start a new project:** #. Click **Start a new project**. diff --git a/doc/source/high-concentration-photovoltaic/hcpv_location_and_resource.rst b/doc/source/high-concentration-photovoltaic/hcpv_location_and_resource.rst index 3748d2d102..036cc77037 100644 --- a/doc/source/high-concentration-photovoltaic/hcpv_location_and_resource.rst +++ b/doc/source/high-concentration-photovoltaic/hcpv_location_and_resource.rst @@ -3,142 +3,17 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst -Albedo - Sky Diffuse Model - Irradiance Data (Advanced) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The albedo, sky diffuse model, and irradiance data inputs are advanced inputs for the detailed photovoltaic model that you can ignore unless you have a reason to change them. These inputs are not available for the PVWatts model, except for some albedo options, which are under **Advanced Inputs** on the :doc:`System Design <../pvwatts/pvwatts_system_design>` page. +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ -.. note:: Use the default **DNI and DHI** and **Perez** options unless you have a reason to change them. +.. include:: ../includes/snip_download_weather_files.rst - +Choose Weather File +~~~~~~~~~~~~~~~~~~~ +.. include:: ../includes/snip_choose_weather_file.rst -**DNI:** Direct normal irradiance, sometimes called beam normal irradiance is the amount solar radiation per unit area that reaches a surface that is normal to the rays of solar radiation from the sun. +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ - -**DHI:** Diffuse horizontal irradiance is the solar radiation per unit area that reaches a horizontal surface from the sky dome, but not directly from the sun. DHI does not include solar energy reflected from the ground. SAM accounts for that separately using the albedo input described above. - - -**GHI:** Global horizontal irradiance is the total solar radiation per unit area that reaches a horizontal surface - - -**POA:** Plane of array, POA irradiance is equivalent to incident irradiance, and is the total solar radiation per unit area that reaches the surface of the photovoltaic array. - -Albedo -~~~~~~ - -SAM uses the albedo (also called ground reflectance) to make a small adjustment to the amount of solar irradiance incident on the array to represent diffuse irradiance reflected onto the array from the ground. SAM also uses albedo to calculate irradiance incident on the rear side of bifacial modules. - -Albedo values must be greater than zero and less than one, where zero represents completely non-reflective ground and 1 represents completely reflective ground. - -For most analyses, you can use the default albedo value of 0.2, which is reasonable for grassy ground. A value of 0.6 would be reasonable for snow-covered ground. - -After running a simulation, you can see the time series albedo data that SAM uses for simulations on the Results page, and the spatial data on the Spatial tab of the results page. - -"Uniform" albedo data represents the albedo that is the same for the entire ground under the array. "Spatial" albedo data represents albedo that is different under and between rows in the array. - -**Use monthly uniform albedo values** - Choose this option to specify albedo values by month. - - Click **Edit Values** to edit monthly albedo values for each month. - -**Use monthly spatial albedo values** - Choose this option when you have spatial albedo data by month. Each column in the spatial albedo matrix represents a rectangular strip of ground under one row the array and the space between its adjacent row as indicated by the diagram. The leftmost column represents the row closest to the equator. Each row represents a month. - - You specify up to 10 rectangular strips: Use your mouse to select cells in the matrix to represent the strip, and type a number between 0 and 9 for each strip. Then for each strip type an albedo value under **Albedos**. - - To see the resulting albedo, ground irradiance, and rear side irradiance, click the :doc:`Spatial <../results/spatial>` tab on the Results page after running a simulation. - -**Use uniform albedo in weather file if it specified** - Check this option if you want SAM to use hourly or subhourly albedo data from the weather file instead of the monthly albedo values. You should also specify monthly albedo values because SAM uses those values for any time steps that have values less than or equal to zero, or greater than or equal to one. - - For each time step in the simulation, SAM checks the value in the albedo column of the weather file to see if it is between zero and one. If it is within that range, SAM uses that value for the albedo in that hour. If the value in the weather file is outside of that range for a given time step, then SAM uses the appropriate monthly albedo input value for that hour. - - If you want to add albedo data to a weather file, you can edit the file using a text editor or spreadsheet software. See the :doc:`SAM CSV format description <../weather-file-formats/weather_format_sam_csv_solar>` for details. - -Diffuse Sky Model -~~~~~~~~~~~~~~~~~ - -SAM's detailed photovoltaic model uses DNI and DHI data with sun and subarray angles to calculate the irradiance incident on each subarray. Calculating the incident direct component from the DNI is straightforward, but there are several methods for estimating the incident diffuse component from DHI. The incident diffuse component includes both ground-reflected diffuse irradiance, and sky diffuse irradiance from the sky dome outside of the sun's circle. SAM allows you to choose the method it uses to convert DHI data to incident sky diffuse irradiance. - -The isotropic model tends to under-predict the global radiation on a tilted surface, and is included as an option for analysis comparing SAM results with those from other models using this approach. The HDKR and Perez methods provide comparable estimates of the incident diffuse irradiance. - -For more details about these methods, see the photovoltaic reference manual, which is available for download from the `SAM website `__. - -**Isotropic** - The isotropic method assumes that diffuse radiation is uniformly distributed across the sky, called isotropic diffuse radiation. - -**HDKR** - The Hay-Davies-Kluchr-Reindl combination method accounts for the increased intensity of diffuse radiation in the area around the sun, called circumsolar diffuse radiation, in addition to isotropic diffuse radiation. - -**Perez** - The Perez method is the default value and is best for most analysis. It accounts for horizon brightening, circumsolar and isotropic diffuse radiation using a more complex computational method than the Reindl and Hay and Davies methods. - -Weather File Irradiance Data -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A weather file in :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` for the photovoltaic performance models must contain at least two columns for the solar irradiance components or a single column for plane-of-array (POA) irradiance. The weather file may contain columns for all three irradiance components in addition to POA data. SAM determines which columns to use for the simulation based on the Weather File Irradiance Data options you choose. - -Unless you choose one of the POA options, SAM's detailed photovoltaic model always requires the DNI and DHI components to calculate the irradiance incident on each subarray. When you choose the **DNI and GHI** or **GHI and DHI** options, SAM calculates values for the missing irradiance component from the two components that you specify, even if the weather file contains data for the missing component. When you choose a POA option, SAM bypasses the incident irradiance calculations. - -**DNI and DHI** - SAM reads the direct normal irradiance (beam) and diffuse horizontal irradiance data from the weather file. For this option, SAM calculates incident irradiance using the DNI and DHI data from the weather file without any additional calculations. This is the default option, and is best for most analyses because it minimizes the number of irradiance calculations. - -**DNI and GHI** - SAM reads the direct normal irradiance (beam) and global horizontal irradiance (total) data from the weather file, and calculates the diffuse horizontal irradiance values for simulations. SAM calculates the incident irradiance using the DNI data from the weather file and the calculated DHI data. - -**GHI and DHI** - SAM reads the global horizontal irradiance (total) and diffuse horizontal irradiance data from the weather file, and calculates direct normal irradiance values for simulations. SAM calculates the incident irradiance using DHI data from the weather file and the calculated DNI data. - -**POA from reference cell** - Use this option if your weather file contains irradiance data measured in the plane of the array by a reference photovoltaic cell that has the same optical characteristics as the cells in the array. SAM assumes that the POA data accounts for angle-of-incidence (AOI) effects and removes the calculation of AOI-related reduction in incident DNI from the performance model. - -**POA from pyranometer** - Use this option if your weather file contains irradiance data measured in the plane of the array by a pyranometer. SAM uses a POA decomposition model to calculate the DNI and DHI components of the POA irradiance for angle-of-incidence effect calculations. - - - - -.. note:: For a technical description of the POA option see Freeman (2016) Using Measured Plane-of-Array Data Directly in Photovoltaic Modeling: Methodology and Validation, available from https://sam.nlr.gov/photovoltaic/pv-publications. - - -.. note:: When you choose a POA option, SAM reports calculated DNI and DHI values in the results for your reference. It only uses the calculated DNI and DHI values under the following conditions: - - -.. note::     - With the **POA from pyranometer** option to calculate a reduction in DNI due to angle-of-incidence effects. - - -.. note::     - When you enable external shading, SAM applies the beam and diffuse irradiance shading factors to the - -.. note::     calculated DNI and DHI values, and then calculates the irradiance incident on the subarray to account for - -.. note::     shading. - - -.. note::     - When you use the CEC module model with the heat transfer method for temperature correction. - - -.. note:: When you use POA data, be careful to check that your array orientation, shading, soiling, and snow model inputs are consistent with your POA data. If your system has more than one subarray, SAM uses the POA data for each subarray. This requires that all subarrays have the same orientation and tracking, but SAM does not enforce this requirement. SAM also allows you to enable shading, soiling, and the snow model with POA data. If the irradiance data already accounts for these effects, you should disable those inputs. - -Irradiance Data in Results -.......................... - -.. note:: If your weather file contains data for all three irradiance components, the value of the calculated third component that SAM uses for the simulation may differ from the value in the weather file. - -You can see the calculated data on the Results page after running a simulation, for example, on the **Data tables** tab and **Time series** tab: - -**Irradiance GHI/DNI/DHI/POA from weather file (W/m2)** - The data in the weather file. If the column does not exist in the weather file, SAM reports the values in the results as NaN (not a number). - -**Irradiance GHI/DNI/DHI calculated (W/m2)** - The values of the third irradiance component that SAM calculates from the other two in the weather file. For example, if you choose the **DNI and GHI** option, you should see **Irradiance DHI calculated** in the results. SAM uses the following equations for the calculated values, where *z* is the sun zenith angle: - -*GHI = DHI + DNI × cos(z)* - -*DHI = GHI - DNI × cos(z)* - -*DNI = ( GHI - DHI ) ÷ cos(z)* - - For the POA options, SAM calculates the DHI and DNI values from the POA data in the weather file using the method described in Marion, B. (2015) “A model for deriving the direct normal and diffuse horizontal irradiance from the global tilted irradiance.” Solar Energy, vol. 122, pp. 1037-1046. - -**Subarray [*****n*****] POA total irradiance after shading and soiling (W/m2)** - The total irradiance incident on each subarray *n* . \ No newline at end of file +.. include:: ../includes/snip_weather_data_information.rst diff --git a/doc/source/hybrid-systems/hybrid_system.rst b/doc/source/hybrid-systems/hybrid_system.rst index 0ccdee3489..9b9ec23254 100644 --- a/doc/source/hybrid-systems/hybrid_system.rst +++ b/doc/source/hybrid-systems/hybrid_system.rst @@ -6,7 +6,7 @@ The Hybrid System page shows values AC capacity values from other input pages to To change any of the capacity values shown on the Hybrid System page, go to the subsystem page shown in the descriptions below. Generation Capacity -................... +~~~~~~~~~~~~~~~~~~~ The AC generation capacity of each subsystem in the hybrid system. @@ -29,7 +29,7 @@ The AC generation capacity of each subsystem in the hybrid system. Custom generation profile system nameplate capacity, **Nameplate Capacity** from the :doc:`Generation Profile <../custom-generation/custom_generation_profile>` page. Total Generation Capacity -......................... +~~~~~~~~~~~~~~~~~~~~~~~~~ The total nameplate capacity of the hybrid system, calculated as the sum of nameplate capacities of subsystems included in the hybrid system. @@ -37,9 +37,9 @@ The total nameplate capacity of the hybrid system, calculated as the sum of name The nameplate capacity of the hybrid system. Used for operation and maintenance costs specified in $/kW-year on the :doc:`Hybrid System costs ` page, and to calculate capacity-based incentives on the :doc:`Incentives <../incentives-and-depreciation/cash_incentives>` page. Storage Capacity -................ +~~~~~~~~~~~~~~~~ The AC power capacity of the battery storage system. **Battery maximum discharge rate, kWac** - The battery's maximum AC discharge rate, Maximum discharge power (AC) from the :doc:`Battery Cell and System <../battery-storage/battery_storage_btm>` page. \ No newline at end of file + The battery's maximum AC discharge rate, Maximum discharge power (AC) from the :doc:`Battery Cell and System <../battery-storage/battery_storage>` page. \ No newline at end of file diff --git a/doc/source/images/IMG_BATT-configurations.png b/doc/source/images/IMG_BATT-configurations.png new file mode 100644 index 0000000000..c36066f359 Binary files /dev/null and b/doc/source/images/IMG_BATT-configurations.png differ diff --git a/doc/source/images/IMG_NSRDB-map.png b/doc/source/images/IMG_NSRDB-map.png deleted file mode 100644 index ed937bf475..0000000000 Binary files a/doc/source/images/IMG_NSRDB-map.png and /dev/null differ diff --git a/doc/source/images/SS_PV-ArraySizingMessages.png b/doc/source/images/SS_PV-ArraySizingMessages.png index 94b9ae3925..aa92547be4 100644 Binary files a/doc/source/images/SS_PV-ArraySizingMessages.png and b/doc/source/images/SS_PV-ArraySizingMessages.png differ diff --git a/doc/source/images/SS_SolarResource-choose-year.png b/doc/source/images/SS_SolarResource-choose-year.png deleted file mode 100644 index 2bbb54d1de..0000000000 Binary files a/doc/source/images/SS_SolarResource-choose-year.png and /dev/null differ diff --git a/doc/source/images/SS_SolarResource-download.png b/doc/source/images/SS_SolarResource-download.png deleted file mode 100644 index 308b7e4d28..0000000000 Binary files a/doc/source/images/SS_SolarResource-download.png and /dev/null differ diff --git a/doc/source/images/SS_SolarResource-information.png b/doc/source/images/SS_SolarResource-information.png deleted file mode 100644 index fe0090ae93..0000000000 Binary files a/doc/source/images/SS_SolarResource-information.png and /dev/null differ diff --git a/doc/source/images/SS_SolarResource-library.png b/doc/source/images/SS_SolarResource-library.png deleted file mode 100644 index f262cd3c34..0000000000 Binary files a/doc/source/images/SS_SolarResource-library.png and /dev/null differ diff --git a/doc/source/images/SS_SolarResource-multiple-locations.png b/doc/source/images/SS_SolarResource-multiple-locations.png deleted file mode 100644 index be71dc50f4..0000000000 Binary files a/doc/source/images/SS_SolarResource-multiple-locations.png and /dev/null differ diff --git a/doc/source/images/SS_SolarResource-option-list.png b/doc/source/images/SS_SolarResource-option-list.png deleted file mode 100644 index cf9a121178..0000000000 Binary files a/doc/source/images/SS_SolarResource-option-list.png and /dev/null differ diff --git a/doc/source/incentives-and-depreciation/cash_incentives.rst b/doc/source/incentives-and-depreciation/cash_incentives.rst index 539d0ae7df..97898d058c 100644 --- a/doc/source/incentives-and-depreciation/cash_incentives.rst +++ b/doc/source/incentives-and-depreciation/cash_incentives.rst @@ -13,7 +13,7 @@ A cash incentive is an amount paid to the project that contributes to the projec After running a simulation, you can display incentive amounts in the project :doc:`cash flow <../results/cashflow>` and in results :doc:`graphs <../results/graphs>` and :doc:`tables <../results/data>`. -.. note:: See :doc:`depreciation` for information about investment tax credits, production tax credits, and depreciation. +.. note:: See :doc:`tax_credits_depreciation` for information about investment tax credits, production tax credits, and depreciation. Investment Based Incentive (IBI) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -38,7 +38,7 @@ For the Single Owner and other front-of-meter financial models, the effect of th The upper limit of the incentive in dollars. For incentives with no limits, type the value 1e+099. Tax Implications -................ +---------------- The check boxes in the Taxable Incentive and Reduces Depreciation and ITC Bases columns determine whether each IBI qualifies as income for tax purposes, reduces the basis used to calculate the ITC, or reduces the basis used to calculate the depreciation amount, respectively. @@ -90,7 +90,7 @@ Check an option for each capacity based incentive that applies to the project, a The upper limit of the incentive in dollars. For incentives with no limits, type the value 1e+099. Tax Implications -................ +---------------- The check boxes in the Taxable Incentive and Reduces Depreciation and ITC Bases columns determine whether each CBI qualifies as income for tax purposes, reduces the basis used to calculate the ITC, or reduces the basis used to calculate the depreciation amount, respectively. @@ -135,7 +135,7 @@ For the Single Owner and other front-of-meter financial models, you can see the .. note:: If you use an annual schedule to assign PBI amounts to specific years, SAM ignores the escalation rate. Tax Implications -................ +---------------- The check boxes in the Taxable Incentive column determine whether each PBI qualifies as income for tax purposes, reduces the basis used to calculate the PBI, or reduces the basis used to calculate the depreciation amount, respectively. @@ -149,7 +149,7 @@ The check boxes in the Taxable Incentive column determine whether each PBI quali The state and federal tax rates are inputs on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page. PBI and Debt Service -.................... +-------------------- For financial models with debt, you can specify whether the PBI is available for debt service. If the PBI is available for debt service, SAM includes it in the total revenue as taxable income, otherwise it is included in the total pre-tax cash flow as part of the cash flow from from operating activities. @@ -157,7 +157,7 @@ For financial models with debt, you can specify whether the PBI is available for When you check the option for a PBI, SAM includes the PBI amount in the cash available for debt service (CAFDS). Specifying Annual for PBI Values -................................ +-------------------------------- You can specify each PBI as either a single value (amount or percentage) that applies to all years in the analysis period defined on the Financial Parameters page, or you can assign a different value to each year in the analysis period using an annual schedule. diff --git a/doc/source/incentives-and-depreciation/tax_credits_depreciation.rst b/doc/source/incentives-and-depreciation/tax_credits_depreciation.rst index 0c10c413c7..6d9631be7f 100644 --- a/doc/source/incentives-and-depreciation/tax_credits_depreciation.rst +++ b/doc/source/incentives-and-depreciation/tax_credits_depreciation.rst @@ -98,7 +98,7 @@ ITC Qualification Options SAM provides two options for determining the portion of project costs that qualify for the ITC. The **Determine ITC qualification from system components** option makes it possible to include only electric battery storage equipment installation costs in the ITC qualifying cost. The **Determine ITC qualification from depreciation class allocations** determines the ITC qualifying cost from depreciation class allocations and was the only available option for SAM 2025.4.16 and earlier versions. -.. notes:: +.. note:: The current implementation of the ITC qualification from system components option only works for systems with electric battery storage equipment. If you choose this option for a system without electric battery storage, the ITC qualifying cost is based on the total installed cost. diff --git a/doc/source/includes/snip_annual_values.rst b/doc/source/includes/snip_annual_values.rst index 59b596277c..f2442c7396 100644 --- a/doc/source/includes/snip_annual_values.rst +++ b/doc/source/includes/snip_annual_values.rst @@ -1,9 +1,9 @@ #. Click the grey and blue Value/Sched button so **Sched** is highlighted in blue. SAM replaces the variable's value with an Edit button. -.. image:: /images/SS_AnnSched-SchedEdit.png - :align: center - :alt: SS_AnnSched-SchedEdit.png + .. image:: /images/SS_AnnSched-SchedEdit.png + :align: center + :alt: SS_AnnSched-SchedEdit.png #. Click **Edit**. diff --git a/doc/source/includes/snip_battery_bank_sizing.rst b/doc/source/includes/snip_battery_bank_sizing.rst deleted file mode 100644 index cd820e7e90..0000000000 --- a/doc/source/includes/snip_battery_bank_sizing.rst +++ /dev/null @@ -1,60 +0,0 @@ - -The two battery bank sizing options allow you to either automatically size the battery bank based on desired size, or to manually specify the number of cells per string and strings in parallel. - -The automatic option uses the basic equations described below to determine numbers of cells and strings or stacks, which may not always result in realistic values. If you use the automatic sizing option, be sure to check the **Computed Properties** values to be sure they are what you expect. - -Set Desired Bank Size: Automatic Sizing -....................................... - -For automatic sizing choose **Set desired bank size**. - -**Desired bank power, kW** - The battery's maximum discharge rate in kW. Compare this to **Maximum discharge power** under **Computed Properties** to verify that SAM calculated a discharge power close enough to the desired value to meet your requirements. - - The desired bank power can be in either DC kW or AC kW depending on whether you choose **DC units** or **AC units**. If you use AC units, SAM calculates the nominal bank power in DC kW using the appropriate conversion efficiency from the **Power Converters** section for either an AC- or DC-connected battery. - -**Desired bank capacity, h or kWh** - The nominal size of the battery bank. Choose h to specify the size in hours of storage at the nominal discharge rate, or choose kWh to specify the size in kWh of available energy. Compare this to **Nominal bank capacity** under **Computed Properties** to verify that SAM calculated a nominal value close enough to the desired value to meet your requirements. - -.. note:: Some battery data sheets provide both a nominal battery capacity and an available or usable battery capacity that is less than the nominal capacity. Use the higher nominal capacity value for the desired bank size, and then use the inputs under **Charge Limits and Priority** on the Battery Dispatch page to limit the battery to the available capacity. This will ensure that SAM calculates costs in $/kWh based on the nominal capacity. - -Specify Cells: Manual Sizing -............................ - -For manual sizing choose **Specify cells**. - -**Number of cells in series** - The number of cells in series in each string of the battery bank. The number of cells in series determines the maximum discharge power and the nominal bank voltage. - -**Number of strings in parallel** - The number of strings of cells in parallel in the battery bank. The number of strings in parallel determines the nominal bank capacity. - -**Max C-rate of charge, per/hour** - The maximum charge rate as a fraction of the battery bank capacity. For example, a 10 kWh battery with C-rate of charge of 0.5 can charge at a maximum rate 10 kWh × 0.5/h = 5 kW. - -**Max C-rate of discharge, per/hour** - The maximum discharge rate as a fraction of the battery bank capacity. For example, a 10 kWh battery with C-rate of discharge of 0.5 can discharge at a maximum rate 10 kWh × 0.5/h = 5 kW. - -.. note:: For flow batteries, the capacity and power are decoupled so the the C-rate is a calculated value rather than an input. - -Calculations for Automatic Bank Sizing -...................................... - -SAM's bank sizing calculations use basic equations using the cell property information you specify. The calculated values are designed to help you get started with your system design. They do not account for many real-life design factors. You should use these values for an initial preliminary analysis and then use **Specify cells** for conventional batteries or **Specify capacity and stack configuration** for flow batteries to refine your analysis. - -**Number of cells in series, Number of cells per stack** - SAM calculates a number of cells in series for a conventional battery, or cells per stack for a flow battery assuming one stack, that either meets exactly or slightly exceeds the desired bank voltage based on the cell nominal voltage. For example, for a desired bank voltage of 24 V with a nominal cell voltage of 3.6 V, SAM calculates *24 V ÷ 3.6 V/cell = 6.7*, or 7 cells in series. The actual nominal bank voltage is *3.6 V/cell × 7 cells = 25.2* V. SAM displays the actual battery bank properties as calculated values under Current and Capacity. - -**Number Strings in parallel (Lithium-ion and Lead-acid Batteries)** - SAM calculates the bank capacity by determining the number of strings of cells in parallel required to ensure that the actual capacity is as close as possible to the desired value given the cell capacity that you specify under **Current and Capacity**. For the example above, if the desired bank capacity is 3 kWh, and the cell capacity is 1.5 Ah, the calculated bank voltage would be 25.2 V, and one string of cells has a capacity of *25.2 V × 1.5 Ah = 37.8 Wh*, or 0.0378 kWh. To reach the desired bank capacity of 3 kWh: *3 kWh ÷ 0.0378 kWh/string = 79.4*, or 80 strings. - - The calculated C-rates of charge and discharge are the desired bank power divided by the computed bank capacity. - -**Capacity and Stack Configuration (Flow Batteries)** - For flow batteries, the capacity is independent of the power block and can be specified exactly by the amount of electrolyte in the tanks. SAM sets nominal bank capacity to the desired capacity you specify. SAM calculates the nominal power ratings using the desired stack (bank) voltage and other properties in the **Current and Capacity** group. The number of stacks in parallel is depends on whether the cells are power limited or current limited. - - For the **Power limited** option, the number of stacks in parallel is the ceiling of the desired bank power divided by the product of **Cell max power discharge** and the number of cells in the stack (assuming one stack in series). For example, consider  a flow battery with a desired bank capacity of 100 kWh, bank power of 50 kW, and bank voltage of 48V with 1.4V cells and a cell power discharge max of 2W. The number of cells in the stack is *ceiling(48V ÷ 1.4V/cell) = ceiling(34.2 cells) = 35 cells* . The bank voltage is *35 cells × 1.4V/cell = 49V* . To achieve 50KW with limitations of 2W/cell, there must be *ceiling(50 kW / (0.002 kW/cell * 35 cells)) = 715 stacks in parallel* .   - - For the **Current limited** option, the number of stacks in parallel is the ceiling of the desired bank power divided by the product of the battery bank voltage and **Cell max current discharge**. In the example above, if all properties are the same except the battery is current limited with 10A per cell (and consequently per stack), the number of stacks in parallel must be: *ceiling(50 kW / (49V * 10 A * 0.001) ) = 103 stacks in parallel* . - - For the **Limit both current and power** option, the stacks are sized by using the current limit, and within the model at each time step the current and power through the cells are checked and reduced if necessary. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_charge_limits_priority.rst b/doc/source/includes/snip_battery_charge_limits_priority.rst deleted file mode 100644 index 769b0792cc..0000000000 --- a/doc/source/includes/snip_battery_charge_limits_priority.rst +++ /dev/null @@ -1,20 +0,0 @@ - -The Charge Limits and Priority inputs are constraints on the battery dispatch calculations. - -The limits on minimum and maximum state of charge affect both the amount of energy available for battery dispatch calculations, and the depth of charge-discharge cycles for battery life calculations. Choose values appropriate for the type of battery you are modeling. The default values state of charge range of 15% to 95% is reasonable for most Li-ion battery types. - -**Minimum state of charge, %** - A limit on the quantity of energy that can be drained from the battery as a percentage of available capacity. For example, a value of 15% would prevent the battery from discharging below 15% of the battery's available capacity in a given time step. - -.. note:: The minimum and maximum state of charge are both as a percentage of available battery capacity, which changes over time as the batteries degrade and are replaced. The available capacity in a given time step is likely to be less than the battery's nominal capacity shown on the Battery Cell and System page. - -**Maximum state of charge, %** - A limit on the quantity of energy that can be sent to the battery as a percentage of available capacity. For example a value of 95% would prevent the battery from charging above 95% state of charge. - -**Initial state of charge, %** - The state of charge of the battery at the beginning of the simulation. A value of 100% would be for a fully charged battery, 0% would be for a fully discharged battery. - -**Minimum time at charge state, min** - There may be periods of time where the photovoltaic or other power system output varies above and below the load causing rapid cycling of the battery. Rapid cycling may also result for dispatch options that respond to power prices when prices change rapidly from time step to time step. This kind of cycling, especially if the cycles are deep, may degrade battery performance over time. The minimum time at charge state prevents the battery from changing between charging and discharging within the number of minutes that you specify. - -.. note:: The minimum time at charge state only applies when the simulation time step is smaller than the minimum time at charge state. For example, the default value of 10 minutes would only apply for 5-minute or 1-minute simulation time steps; It has no effect for hourly simulations. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_chemistry.rst b/doc/source/includes/snip_battery_chemistry.rst deleted file mode 100644 index 2318d36fa1..0000000000 --- a/doc/source/includes/snip_battery_chemistry.rst +++ /dev/null @@ -1,91 +0,0 @@ - -The battery type defines the battery chemistry for (lithium ion, lead acid, or flow battery), and the type of battery for each chemistry. When you choose a battery type, SAM automatically changes the battery property input variables to default values for that type. These default values were drawn from DiOrio (2015) "Technoeconomic Modeling of Battery Energy Storage in SAM" available `here `__, which also includes more details on how SAM calculates battery capacity. - -**Battery type** -Choose the battery chemistry and battery type for the batteries in your system. - -When you choose a battery type, SAM replaces the values of **Voltage Properties** and **Current and Capacity** input variables as appropriate with values for each battery type. - -When you choose a custom battery type for either the lead acid or lithium ion chemistry, SAM does not replace the input variable values. - - -To model a battery type not included in the list, choose either **Lead Acid: Custom** or **Lithium Ion: Custom**, and specify your voltage, current, and capacity properties appropriate for the battery. -When you choose the custom lead acid battery type, SAM retains the capacity and discharge rate values from the table below from the previous state. For example, if you change the battery type from flooded lead acid to custom lead acid, SAM will apply the capacity/discharge rate table for flooded batteries to your custom battery. - -Lead Acid -......... - -The three lead acid battery types use the lead acid battery capacity model described in DiOrio (2015), cited above: - -* Flooded lead acid batteries with a liquid electrolyte. - -* Valve Regulated (VRLA) batteries are sealed, and the electrolyte is bound in a gel. - -* VRLA Absorptive Glass Mat (AGM) batteries are sealed, and the electrolyte is immobilized in porous separators. - -Lead acid battery capacity is dependent on the discharge rate. When you choose different lead-acid battery types from the list, SAM changes internal variable values that define the relationship between capacity and discharge rate as shown in the table below. It is not possible to change these values from the Battery Storage input page. These values are based on analysis of information for batteries from different manufacturers. SAM considers the 20-hour discharge rate to be the nominal capacity of a lead-acid battery and scales the capacity at faster discharge rates as a percent of the that 20-hour capacity. - -.. list-table:: - :width: 100% - :align: center - :header-rows: 1 - - * - Discharge Rate - - Flooded Capacity % - - VRLA Gel Capacity % - - VRLA AGM Capacity % - * - 20-hr ( 0.05 C ) - - 100 - - 100 - - 100 - * - 10-hr ( 0.1C ) - - 87 - - 84.9 - - 93.2 - * - 1-hr ( C ) - - 47 - - 63.1 - - 58.1 - -Lithium Ion -........... - -The six lithium ion battery types use of the lithium-ion battery capacity model described in DiOrio (2015) "Technoeconomic Modeling of Battery Energy Storage in SAM" cited above: - -* LMO: Lithium Manganese Oxide (|EQ_BATT_lmo|) – An inexpensive high-voltage cathode material with high power capabilities but potentially lower lifespan. - -* LFP: Lithium Iron Phosphate (|EQ_BATT_lfp| – A lower voltage cathode material with excellent safety properties but lower volumetric energy. - -* LCO: Lithium Cobalt Oxide (|EQ_BATT_lco| – Among the first and still a common cathode material with high specific energy, but potentially costly and toxic. - -* LTO: Lithium Titanate (|EQ_BATT_lto| – A promising anode material with excellent lifetime properties but lower specific capacity and important cost considerations. - -* NMC: Nickel Manganese Cobalt (|EQ_BATT_nmc| – A less expensive cathode material than LCO with potentially improved safety characteristics - -* NCA: Nickel Cobalt Aluminum (|EQ_BATT_nca| – Similar in respects to NMC as a cathode material with high specific energy - -When you choose a lithium ion battery, SAM assigns values to voltage, lifetime, and thermal properties as appropriate from Reddy (2011), available `here `__, and from manufacturer data sheets. SAM does not change any internal variables or calculations. - -Flow Batteries -.............. - -Flow battery designers can decouple power output (kW) from energy capacity (kWh) when sizing systems. Flow batteries may be able to cycle more deeply and operate for more total cycles than lithium ion or lead acid batteries, but flow batteries also have pumps, which should be considered when calculating **Ancillary Equipment Losses**. - -**Vanadium Redox Flow** - The vanadium redox flow battery model available in SAM comes from R. D’Agnostino et. al, (2014) "A Vanadium-Redox Flow-Battery Model for Evaluation of Distributed Storage Implementation in Residential Energy Systems" - -* VRFB: Vanadium Redox Flow (V \ :sup:`2+`\ ,V \ :sup:`3+`\ *anolyte* ), (VO \ :sup:`2+`\ , VO \ :sup:`2+`\ , *catholyte* ) - -**All Iron Redox Flow** - The all iron redox flow battery model available in SAM shares the same input field framework as the vanadium flow battery, but relies on tabular voltage vs. depth-of-discharge in place of a voltage model. Default iron flow battery values are based on preliminary manufacturer data and feedback for an all-iron hybrid-redox flow battery. - -* AIFB: All Iron Redox Flow (Fe \ :sup:`2+`\ , Fe \ :sup:`3+`\ ) - - - -.. |EQ_BATT_lmo| image:: /images/EQ_BATT_lmo.png -.. |EQ_BATT_lfp| image:: /images/EQ_BATT_lfp.png -.. |EQ_BATT_nca| image:: /images/EQ_BATT_nca.png -.. |EQ_BATT_lto| image:: /images/EQ_BATT_lto.png -.. |EQ_BATT_nmc| image:: /images/EQ_BATT_nmc.png -.. |EQ_BATT_lco| image:: /images/EQ_BATT_lco.png diff --git a/doc/source/includes/snip_battery_current_capacity.rst b/doc/source/includes/snip_battery_current_capacity.rst deleted file mode 100644 index 9b38ef8ac3..0000000000 --- a/doc/source/includes/snip_battery_current_capacity.rst +++ /dev/null @@ -1,178 +0,0 @@ - -The Current and Capacity parameters depend on the battery chemistry: - -* For lead acid and Lithium-ion batteries, you specify a cell capacity value, and SAM displays the computed properties based on the battery bank sizing parameters. - -* For flow batteries, you choose whether the battery is power- or current-limited and specify minimum and maximum rates. - -Lead Acid and Lithium-ion Battery Parameters -............................................ - -**Desired bank voltage** - The battery bank voltage you are trying to achieve in your design. This input is only enabled when you choose **Set desired bank size**. SAM calculates the number of cells in series based on the desired bank voltage and cell nominal voltage: - -*Number of Cells in Series = ROUND UP ( Desired Bank Voltage ÷ Cell Nominal Voltage )* - -**Cell nominal voltage** - The reference voltage of a single, fully charged cell in the battery as reported by the manufacturer. The typical nominal voltage for a lead acid cell is 2 V, and for lithium ion cell is 3.7 V. - - SAM uses the nominal voltage to size the battery bank and compute the battery bank's nominal voltage. - -**Cell capacity** - The capacity of a single cell when the battery is fully charged. SAM sets this value to a default value when you choose a battery chemistry, but you can change its value. - -Flow Battery Parameters -~~~~~~~~~~~~~~~~~~~~~~~ -**Desired bank voltage** - The battery bank voltage you are trying to achieve in your design. This input is only enabled when you choose **Set desired bank size**. SAM calculates the number of cells in series based on the desired bank voltage and cell nominal voltage: - -*Number of Cells in Series = ROUND UP ( Desired Bank Voltage ÷ Cell Nominal Voltage )* - -**Cell nominal voltage** - The reference voltage of a single, fully charged cell in the battery as reported by the manufacturer. - - SAM uses the nominal voltage to size the battery bank and compute the battery bank's nominal voltage.**Power limited with Cell max power charge and discharge** - Limit the maximum charge and discharge power. - -**Current limited with Cell max current charge and discharge** - Limit the maximum charge and discharge current. - -**Limit both current and power** - Limit both the charge limits by both power and current. - -Computed Properties -................... - -The computed properties are a summary of the battery bank system design. The values may either be ones that you specify or that SAM calculates depending on whether you choose the **Set desired bank size** or **Specify cells** option. - -**Nominal bank capacity, DC kWh** - The nominal size of the battery. SAM uses this value in battery cost calculations with $/kWh units, and to determine the battery state of charge and capacity reduction over the battery life. - -*Nominal Bank Capacity (DC kWh) = Cell Capacity (Ah) × Cell Voltage (VDC) × Total Number of Cells* - - The cell voltage is shown under **Battery Voltage**. - -**Nominal bank power, DC kW** - The nominal maximum discharge power in DC kW. SAM uses this value in battery cost calculations with $/kW units. - -**Time at maximum power** - The number of hours the battery could discharge continuously at its maximum discharge power. This is either the input value you provide under **Battery Bank Sizing**, or calculated as: - -*Time at Maximum Power (h) = Nominal Bank Capacity (kWh) ÷ Maximum Discharge Power (kW)* - -**Nominal bank voltage, VDC** - The nominal voltage of the battery bank. - -*Nominal Bank Voltage (VDC) = Cell Voltage (VDC) × Cells in Series* - -**Total number of cells** - The product of cells (stacks) in series and strings (stacks) in parallel. - -**Cells in series / Cells per stack** - The number of cells in series in each string. - - If you choose **Set desired bank size** under **Battery Bank Sizing**: - -*Cells in Series = Nominal Bank Voltage (VDC) ÷ Nominal Cell Voltage (VDC)* - - If you choose **Specify cells**, then this is the value you entered for **Number of cells in series** under **Battery Bank Sizing**. - -**Strings in parallel / Stacks in parallel** - The number of strings of battery cells in series in the battery bank. - - If you choose **Set desired bank size** under **Battery Bank Sizing**: - -*Strings in Parallel = Nominal Bank Capacity (kWh) ÷ ( Cell Capacity (Ah) × Nominal Cell Voltage (VDC) )* - - If you choose **Specify cells**, then this is the value you entered for **Number of strings in parallel** under **Battery Bank Sizing**. - -**Stacks in series** - For flow batteries, the number of stacks in series. - -**Max C-rate of discharge, per/h** - If you choose **Set desired bank size** under **Battery Bank Sizing**, SAM calculates the value as: - -*Max C-rate of Discharge (per/h) = Maximum Discharge Power (DC kW) ÷ Nominal Bank Capacity (DC kWh)* - - If you choose **Specify cells**, then this is the value you entered for **Max C-rate of discharge** under **Battery Bank Sizing**. - -**Max C-rate of charge, per/h** - If you choose **Set desired bank size** under **Battery Bank Sizing**, SAM calculates the value as: - -*Max C-rate of Charge (per/h) = Maximum Charge Power (DC kW) ÷ Nominal Bank Capacity (DC kWh)* - - If you choose **Specify cells**, then this is the value you entered for **Max C-rate of charge** under **Battery Bank Sizing**. - -**Maximum discharge current, A** - The battery's maximum discharge current. The battery may discharge at a rate up to the maximum. - -*Maximum Discharge Current (A) = Nominal Bank Capacity (DC kWh) ÷ Nominal Bank Voltage (VDC) × Max C-rate of Discharge (1/h) × 1000 Wh/kWh* - -**Maximum charge current, A** - The battery's maximum charge current. The battery may charge at a rate up to the maximum. - -*Maximum Discharge Current (A) = Nominal Bank Capacity (DC kWh) ÷ Nominal Bank Voltage (VDC) × Max C-rate of Charge (1/h) × 1000 Wh/kWh* - -**Maximum discharge power, DC kW** - The battery can discharge at up to the maximum discharge power. The maximum discharge power is also the nominal DC power of the battery bank used for $/kW-based battery cost calculations. - - When the units for **Desired bank power** are DC kW: - -*Maximum Discharge Power (DC kW) = Cell Capacity (Ah) × Cell Nominal Voltage (VDC) × Max C-rate of Discharge (1/h) × Total Number of Cells ÷ 1000 W/kW* - - When the units for **Desired bank power** are AC kW, the discharge power in DC kW depends on whether the battery is AC-connected or DC-connected. - - AC-connected: - -*Maximum Discharge Power (DC kW) = Desired Bank Power (AC kW) ÷ DC to AC Conversion Efficiency* - - DC-connected: - -*Maximum Discharge Power (DC kW) = Desired Bank Power (AC kW) ÷ ( DC to AC Conversion Efficiency × Inverter Nominal Efficiency )* - -**Maximum charge power, DC kW** - The maximum charge power, calculated from the nominal bank capacity and maximum C-rate of charge. - - When the units for **Desired bank power** are DC kW: - -*Maximum Charge Power (DC kW) = Cell Capacity (Ah) × Cell Nominal Voltage (VDC) × Max C-rate of Charge (1/h) × Total Number of Cells ÷ 1000 W/kW* - - When the units for **Desired bank power** are AC kW, the discharge power in DC kW depends on whether the battery is AC- or DC-connected. - - AC-connected: - -*Maximum Charge Power (DC kW) = Desired Bank Power (AC kW) ÷ DC to AC Conversion Efficiency* - - DC-connected: - -*Maximum Charge Power (DC kW) = Desired Bank Power (AC kW) ÷ ( DC to DC Conversion Efficiency × Inverter Nominal Efficiency )* - -**Maximum discharge power, AC kW** - The AC equivalent of the discharge power in DC kW. - - For the **Set desired bank size** option, if the **Desired bank power** units are AC kW, SAM sets the maximum discharge power to the desired value. - - Otherwise, it is calculated from the DC value: - - AC-connected: - -*Maximum Discharge Power (AC kW) = Maximum Discharge Power (DC kW) × DC to AC Conversion Efficiency* - - DC-connected: - -*Maximum Discharge Power (AC kW) = Maximum Discharge Power (DC kW) × ( DC to DC Conversion Efficiency × Inverter Nominal Efficiency )* - -**Maximum charge power, AC kW** - The AC equivalent of the charge power in DC kW. - - For the **Set desired bank size** option, if the **Desired bank power** units are AC kW, SAM sets the maximum charge power to the desired value. - - Otherwise, it is calculated from the DC value: - - AC-connected: - -*Maximum Charge Power (AC kW) = Maximum Charge Power (DC kW) × DC to AC Conversion Efficiency* - - DC-connected: - -*Maximum Charge Power (AC kW) = Maximum Charge Power (DC kW) × ( DC to DC Conversion Efficiency × Inverter Nominal Efficiency )* \ No newline at end of file diff --git a/doc/source/includes/snip_battery_dispatch_btm.rst b/doc/source/includes/snip_battery_dispatch_btm.rst deleted file mode 100644 index 560e24c8bb..0000000000 --- a/doc/source/includes/snip_battery_dispatch_btm.rst +++ /dev/null @@ -1,280 +0,0 @@ - -The battery dispatch options determine when the battery charges and discharges. The charge options determine any limits on how the battery can charge or discharge. - -Dispatch Options -................ - -Choose the dispatch option that most closely represents when you want the battery to charge and discharge. - - - - -.. note:: The list below provides a brief description of each option. To see a detailed description of each heading, click the appropriate grey and blue heading below to expand the detailed description. - - -.. note:: If you are modeling :doc:`grid outages <../grid/grid_outage>` to calculate resiliency metrics, during an outage the battery switches to a special dispatch mode that prioritizes meeting the load, regardless of the dispatch option you choose. - -**Peak shaving** - Dispatch the battery to reduce peak demand. Use this option when the electricity rate structure includes energy rates with kWh/kW units or demand charges and you want to use the battery to reduce billing demand. - -**Input grid power targets** - Dispatch the battery in response to time series grid power target data you provide to ensure the power from the grid is at or below the target power levels. - -**Input battery power targets** - Dispatch the battery according to time series charge and discharge power values you provide. Use this option when you know exactly how you want the battery to charge and discharge. - -**Manual dispatch** - Dispatch the battery based on month-by-hour weekday and weekend schedules you provide. Use this option to dispatch the battery in response to time-of-use electricity rates. - -**Retail rate dispatch** - Dispatch the battery to minimize the energy and demand charge portions of the monthly electricity bill. - -**Self-consumption** - Dispatch the battery to minimize power to and from the grid. - -Charge Options -.............. - -The charge options control how the battery can charge and discharge. SAM enables and disables (greys out) the options as appropriate for the dispatch option and whether the battery is DC- or AC-connected. - -**Battery can charge from grid** - Allow power from the grid to charge the battery. - -**Battery can charge from system** - Allow the photovoltaic array or other power system to charge the battery. - -**Battery can charge from grid-limited system power** - Allow the battery to charge from power in excess of the interconnection limit or from curtailed power when the interconnection limit is enabled and/or curtailment is specified on the :doc:`Grid Limits <../grid/grid_limits>` page. - -**Battery can charge from clipped system power** - For a photovoltaic array with DC-connected battery, allow the photovoltaic array to charge the battery when the array DC power exceeds the inverter nominal DC input power. - -**Battery can discharge to grid** - Allow the battery to discharge to the grid. - -**Charge from system only when system output exceeds load** - Allow the photovoltaic array or other power system to charge the battery only when the system AC output is greater than  the load. - -**Discharge battery only when load exceeds system output** - Allow the battery to discharge only when the load is greater than the photovoltaic or other power system AC output. - -**Battery can charge from fuel cell** - For system with fuel cells, allow the battery to charge from the fuel cell. (This option is only visible for fuel cell configurations.) - -Peak Shaving -~~~~~~~~~~~~ -The peak shaving dispatch options attempt to discharge the battery during times of peak demand over a forecast period. Peak shaving dispatch considers the load, and either the available solar resource for PV systems, or the AC output for other systems over the forecast period and calculates a grid power target for each time step in that period. It then charges or discharges the battery as possible given the battery's capacity and state of charge to meet the target. Use this option to reduce monthly demand charges when the rates on the :doc:`Electricity Rates <../electricity-rates-and-load/electricity_rates>` page include demand rates. - -Peak shaving discharges the battery each day to reduce that day's peak load. This results in more battery cycling than would result from a dispatch strategy that discharges the battery once a month to reduce the peak load. - -For a detailed description of the behind-the-meter peak shaving dispatch algorithm, see DiOrio, N. (2017). An Overview of the Automated Dispatch Controller Algorithms in SAM. NREL/TP-6A20-68614. (`PDF 770 KB `__) - -Peak Shaving Option -................... - -**One day look ahead (perfect)** - For each day, dispatch the battery based on the solar resource over the next 24 hours and the load over the forecast horizon specified below. The look-ahead option is a perfect prediction of the load and solar resource because the battery dispatch coincides with the solar resource and load. - -**One day look behind** - Similar to the one-day look ahead option, but based on the previous 24 hours of solar resource for the prediction. The look-behind option adds some uncertainty to the dispatch because the battery dispatch coincides with solar resource for the previous day, so the battery dispatch for each day may not exactly match the solar resource. - -.. image:: /images/IMG_BATT-dispatch-peak-shaving.png - :align: center - :alt: IMG_BATT-dispatch-peak-shaving.png - -.. note:: SAM allows you to use a different forecast period for the solar resource and the load. Choose both a peak shaving option and a load forecast horizon option as appropriate for your analysis. - -**Custom forecast** - Combines one day look ahead dispatch with a different weather file than the one used for the photovoltaic system simulation. This makes the dispatch more realistic because the battery dispatch does not exactly match the the photovoltaic system output. - - For the custom forecast option, click **Browse** to choose the a weather file to use for battery dispatch. - -Load Forecast Horizon -..................... - -**Perfect look ahead** - For each day, dispatch the battery based on the load specified on the :doc:`Electric Load <../electricity-rates-and-load/electricity_load>` page over the next 24 hours and the solar resource over the period specified above. - -**One day look behind** - Similar to perfect look ahead, but based on the previous 24 hours of load data. - -**Look ahead to custom load** - Similar to perfect look ahead, but dispatches the battery based on different load data than the data on the Electric Load page. - -**Custom load profile** - For the Look Ahead to Custom Load Forecast option, the load data to use for the dispatch forecast instead of the data on the Electric Load page. - - Click **Edit array** to import or paste custom load data for the dispatch forecast. - -**Match load growth** - For the Look Ahead to Custom Load Forecast option, use the same load growth rate for the forecast load as the load data on the Electric Load page. - -**Enter custom growth** - For the Look ahead to Custom Load Forecast option, use a different load growth rate than the load data on the Electric Load page. - -**Load forecast growth rate** - For the Look Ahead to Custom Load forecast option with Enter Custom Growth, the annual growth rate for the custom load profile. - -Input grid power targets -~~~~~~~~~~~~~~~~~~~~~~~~ -The input grid power target option is similar to the peak shaving option, except that it attempts to operate the battery in response to grid power targets that you specify instead of automatically calculating the targets to reduce peak demand. In each time step, SAM compares the electric load to the power target, charges the battery when the load is less than the target, and discharges when the load is greater than the target. You can specify either twelve constant monthly targets, or a target for each time step. - -.. note:: The system may not always be able to meet the grid power targets, for example, if the battery is discharged when the photovoltaic array or other power source is not generating power. - -Choose **Input grid power targets**, and then choose either **Monthly power targets** or **Time series power targets**: - -.. image:: /images/ss-battery-dispatch-btm-grid-targets.png - :align: center - :alt: ss-battery-dispatch-btm-grid-targets.png - -**Monthly power targets** - Choose this option to specify a either a single grid power target for the entire year by setting the grid power target for all months to the same value, or a different grid power target for each month. - - For **Monthly grid power targets**, Click **Edit values** to specify the targets. To apply a single target to the entire year, enter the target as a single value in the Edit Values window and click **Apply**. - -**Time series power targets** - Choose this option to enter a grid power target for each time step in the simulation. For **Time series grid power targets**, click **Edit array** to specify the targets. - -Input battery power targets -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The input battery power targets option operates the battery in response to battery power targets you specify. In each time step, the controller attempts to charge to the negative power value you enter, or discharge to the positive power value you enter. - -Choose **Input battery power** targets, and then enter the battery power target data. - -**Time series battery power targets** - Click **Edit array** and import or copy and paste an array of battery power values in kW, where discharge power is positive, charge power is negative. The array must have the same number of rows as simulation time steps: For hourly simulations, 8,760 rows, for for 15-minute simulations 35,040 rows, etc. - -.. note:: For standalone batteries, the time step for time series power targets must be the same as the simulation time step, which you can set on the :doc:`Battery Time Step <../battery-storage/battery_time_step>` page. - -Manual dispatch -~~~~~~~~~~~~~~~ -For the manual dispatch option, you specify the timing of battery charges and discharges using up to six dispatch periods and a set of weekday and weekend hourly profiles by month under **Manual Dispatch**. - -**Charge from system** - For each period that you want to allow the battery to be charged by power from the system, check the box in the **Charge from system** column. - -**Charge from grid** - For each period that you want to allow the battery to be charged by power from the grid, check the box in the **Allow** column, and specify the percentage of the battery's state of charge that can be charged from the grid over the time step in the **Rate** column. - - For example, for hourly simulations, a charge rate of 25% would allow the battery to charge from the grid at 25% of its state of charge at the beginning of the time step over the time step. The purpose of this rate is to avoid damaging the battery by charging it too quickly. - -.. note:: For subhourly simulations, the charge and discharge percentages apply to the subhourly time step even though the periods are defined in hours. - - For a behind-the-meter application, if **Charge from grid** and **Charge from system** are both checked for a given period, and if in a time step in that period the system power is greater than the :doc:`load <../electricity-rates-and-load/electricity_load>`, power from the grid supplements the system power to meet the battery charge requirement. - - If **Charge from grid** and one or both of the discharge options is also checked for a given period, and if in that period the battery state of charge is above the minimum state of charge, the battery discharges until it reaches the minimum state of charge, at which point it starts charging from the grid, either until it reaches the maximum state of charge, or until the time period changes to one that does not allow charging from the grid. - -**Discharge to load** - For each period that you want to allow the battery to discharge to the load, check the box in the **Allow** column, and specify the percentage of the battery's available charge that can be discharged to the load over the time step in the **Rate** column. - - For example, let's assume that Period 3 is the four consecutive hours between 3 pm and 6 pm, the discharge rate is 25%, and the minimum and maximum state of charge limits under **Charge Limits and Priority** are 30% and 96%, respectively. For an hourly simulation, that would allow up to 25% of the battery state of charge at the beginning of the 3 pm hour to be discharged over the hour. For the 4 pm hour, 25% of the charge at the end of the 3 pm hour would be available, and so on until the end of Period 3. The 25% discharge rate would result in the battery being fully discharged over the four-hour period. (A 20% value would have the same effect for a 5-hour period, i.e., if Period 3 were between 3 pm and 7 pm.) - - For a one-minute simulation, a discharge rate of 25% would allow up to 25% of the available charge to be dispatched *every minute* over Period 3, so a smaller percentage would be required to allow the battery to discharge over the full four-hour period. - -**Discharge to grid** - The battery can only discharge to the grid during time steps that it is allowed to discharge to the load. For each period that you want to allow the battery to discharge to the grid, check the box in the **Allow** column. SAM uses the same discharge rate for discharges to the load and the grid. - -**System power priority** - Use this option to determine how to prioritize electricity from the power generating system (PV array or custom generation profile). This option is not available with the **Charge from system only when system output exceeds load** option. - - Choose **Meet load** to prioritize using system power to meet the load over charging the battery. - - Choose **Charge battery** to prioritize using system power to charge the battery over meeting the load. - -**Weekday and Weekend Schedules** - The weekday and weekend schedules determine the hour of day and month of year for each of the up to six dispatch periods. SAM ignores the charge and discharge options for any periods that you do not assign to the weekday or weekend schedules. - - To define the hour of day and month of year that each period applies, use your mouse to select a rectangle in the schedule matrix, and use your keyboard to type the period number (1-6). The number you type should appear in the rectangle. - - See :doc:`Weekday Weekend Schedules <../reference/weekday_schedule>` for a step-by-step description of how to use the schedule matrices. - -**Copy Schedules from TOU/TOD Schedules** -Use this button to copy the the weekday and weekend schedules from the energy charge time-of-use schedule on the Electricity Rates page. - -Retail rate dispatch -~~~~~~~~~~~~~~~~~~~~ -The retail rate dispatch option operates the battery to minimize the electricity bill based on an estimate of retail electricity price that represents the cost to the system owner of purchasing electricity from the grid in each time step. For this option, battery dispatch depends on: - -* A rolling 24-hour forecast of system power generation and load as defined under **Generation Forecast Horizon**. - -* Energy and demand rates (flat, time-of-use, and/or tiered) - -* Battery state of charge and available capacity - -* Battery degradation - -* Cost of future battery replacements - -The original implementation of the retail rate dispatch option is described (as "price signal forecast") in Mirletz, B.; Guittet, D. (2021). Heuristic Dispatch Based on Price Signals for Behind-the-Meter PV-Battery Systems in the System Advisor Model. NREL/CP-7A40-79575. (`PDF 2.2 MB `__) - -Generation Forecast Horizon -........................... - -The generation forecast horizon determines whether the battery dispatch responds to a perfect forecast of the system's output, or to a forecast that is different from the system's output over the forecast period. - -**Perfect look ahead** - For each day, dispatch the battery based on the system's output over the next 24 hours. - -**One day look behind** - Similar to perfect look ahead, but based on the system's output over the previous 24 hours. This adds some uncertainty to the dispatch because yesterday's generation profile is likely to be different from today's. - -**Look ahead to custom weather file** - For the PV Battery configuration, use a different weather file for the generation forecast than for simulating the system's power output. Use this option when you want the battery dispatch to be more realistic by not responding exactly to the system's output. - -**Weather file for retail rate dispatch** - The weather file to use for the Look Ahead to Custom Weather File option. Click **Browse** to choose a weather file in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` . - -Load Forecast Horizon -..................... - -The generation forecast horizon determines whether the battery dispatch responds to a perfect forecast of the building or facility's electric load, or to a forecast that is different from the load over the forecast period. - -**Perfect look ahead** - For each day, dispatch the battery based on the load specified on the :doc:`Electric Load <../electricity-rates-and-load/electricity_load>` page over the next 24 hours. - -**One day look behind** - Similar to perfect look ahead, but based on the previous 24 hours of load data. - -**Look ahead to custom load** - Similar to perfect look ahead, but dispatches the battery based on different load data than the data on the Electric Load page. - -**Custom load profile** - For the Look Ahead to Custom Load Forecast option, the load data to use for the dispatch forecast instead of the data on the Electric Load page. - - Click **Edit array** to import or paste custom load data for the dispatch forecast. - -**Match load growth** - For the Look Ahead to Custom Load Forecast option, use the same load growth rate for the forecast load as the load data on the Electric Load page. - -**Enter custom growth** - For the Look ahead to Custom Load Forecast option, use a different load growth rate than the load data on the Electric Load page. - -**Load forecast growth rate** - For the Look Ahead to Custom Load forecast option with Enter Custom Growth, the annual growth rate for the custom load profile. - -Cycle Degradation Penalty -......................... - -The cycle degradation penalty is an estimate of the cost of charge-discharge cycles that makes it possible to account for the effect of cycling the battery on the cost of battery replacements. More frequent charge-discharge cycles can result in faster degradation of the battery and more replacements over the analysis period. Increasing the cycle degradation penalty causes the price signal forecast dispatch algorithm to attempt to reduce the frequency of battery charge-discharge cycles. - -.. note:: Battery degradation and replacement parameters are on the :doc:`Battery Life <../battery-storage/battery_life>` page. - -**Cycle degradation penalty method** - Choose a method for estimating the cost of cycling the battery: - -* Choose **Calculate automatically** if you want SAM to calculate the cost. - -* Choose **Enter penalty** to enter a cost per cycle-kWh value. - - If you choose the Calculate Automatically option, SAM reports the calculated penalty as **Computed cycle degradation penalty** in the :doc:`battery time series results <../battery-storage/battery_results>`. - -**Cycle degradation penalty** - The penalty in $/cycle-kWh of battery total capacity for cycling the battery. You can either enter a single value, or click |SS_AnnSched-valschedbutton| to enter a different penalty for each year of the analysis period as an :doc:`annual schedule <../window-reference/win_edit_data_table_column>` . - -Self-consumption -~~~~~~~~~~~~~~~~ -The self-consumption dispatch option dispatches the battery to minimize power to and from the grid. - -This dispatch option is equivalent to the input grid power targets dispatch option with the grid power target set to zero for all time steps. - -.. |SS_AnnSched-valschedbutton| image:: /images/SS_AnnSched-valschedbutton.png diff --git a/doc/source/includes/snip_battery_dispatch_fom.rst b/doc/source/includes/snip_battery_dispatch_fom.rst deleted file mode 100644 index 37fd075f9b..0000000000 --- a/doc/source/includes/snip_battery_dispatch_fom.rst +++ /dev/null @@ -1,268 +0,0 @@ - -The battery *dispatch options* determine when the battery charges and discharges. The *charge options* determine any limits on how the battery can charge or discharge. - -Dispatch Options -................ - -Choose the dispatch option that most closely represents when you want the battery to charge and discharge. - -.. note:: The list below provides a brief description of each option. To see a detailed description of each heading, click the appropriate grey and blue heading below to expand the detailed description. - -**Automated dispatch** - Automated dispatch dispatches the battery in response to changes in the power price to maximize revenue from power sales. Use this option for PPA projects that involve time-of-delivery price multipliers or Merchant Plant projects. - -**PV smoothing** - PV smoothing dispatches the battery for photovoltaic-battery systems to limit power ramp rates at the grid interconnection point. Use this option for projects required to meet ramp rate limits. This option is available for PV battery and Custom Generation Profile - Battery systems. It is not available for standalone batteries. - -**Dispatch to custom time series** - Dispatch the battery according to time series charge and discharge power values you provide. Use this option when you know exactly how you want the battery to charge and discharge. - -**Manual dispatch** - No automation. You specify the timing of battery charges and discharges manually using up to six dispatch periods and a set of weekday and weekend hourly profiles by month. Use this option when you want the battery to charge and discharge according to daily or seasonal schedules. - -Charge Options -.............. - -Choose the source of power for charging the battery. SAM enables and disables (greys out) the options as appropriate for the dispatch option and whether the battery is DC- or AC-connected. - -**Battery can charge from grid** - Allow the grid to charge the battery. - -**Battery can charge from system** - Allow the system to charge the battery. - -**Battery can charge from grid-limited system power** - Allow the battery to charge from power in excess of the interconnection limit or from curtailed power when the interconnection limit is enabled and/or curtailment is specified on the :doc:`Grid Limits <../grid/grid_limits>` page. - - This option is designed so that when system power exceeds a grid limit, system power is delivered to the load and/or grid, and only power in excess of the grid limit is used to charge the battery: The battery is only allowed to charge from grid limited power when it is not allowed to charge from the system. - -**Battery can charge from clipped system power** - For DC-connected batteries with a photovoltaic system, allow DC array power in excess of the inverter's nominal DC input power to charge the battery. - -Automated Dispatch -~~~~~~~~~~~~~~~~~~ -SAM's front-of-meter automated dispatch algorithm attempts to charge and discharge the battery to maximize revenue from power sales to the grid. It calculates a battery power target for each time step, and charges or discharges the battery to attempt to meet the target, given any constraints on battery capacity and battery state of charge, and accounting for power conversion losses. Note that in some time steps, depending on the battery's state of charge and other constraints, the battery discharge power may be less than the target. - -You can explore the results of the automated dispatch by comparing the output variables **Electricity battery power target for automated dispatch** to **Electricity to/from battery**. Other useful output variables include **Power price for battery dispatch** representing the power prices used for battery dispatch calculations,  **Battery state of charge**, **Electricity to grid from battery**,and **Electricity to grid from system** (for PV Battery and Custom Generation Profile - Battery configurations). - -Automated battery dispatch responds to power prices that vary over time, which can be defined as a PPA price with time-of-delivery multipliers for PPA projects, or market prices for Merchant Plant projects. For batteries connected to a power system (PV Battery and Custom Generation Profile - Battery configurations), battery dispatch also responds to the availability of power from the system. Battery dispatch also accounts for the cost of cycling the battery based on a prediction of how battery cycling will affect battery degradation and replacements. - -The automated dispatch options determine the time horizon over which the algorithm maximizes revenue - -The automated dispatch algorithms are described in DiOrio, N.; Denholm, P.; Hobbs, W. (2020). `A Model for Evaluating the Configuration and Dispatch of PV Plus Battery Power Plants `__. Applied Energy Vol 262 March 2020, also listed on the SAM website at https://sam.nlr.gov/battery-storage/battery-publications.html. - - - -.. note:: For power purchase agreement (PPA) financial models, the automated dispatch options require that you choose **Specify PPA Price** on the Revenue page (Financial Parameters page for Partnership Flip and Sale Leaseback financial models) because the dispatch algorithm needs to know the power price as the simulation runs. For the Specify IRR Target option, SAM does now know the PPA price until the end of the simulation. - - -.. note:: Automated dispatch is designed to respond to power prices that change over time. For the PPA financial models, you can specify power price multipliers either using weekday and weekend schedules, or by time step. (Set the PPA price to $1/kWh if you want to use $/kWh price data instead of multipliers, or set it to $0.001/kWh for $/MWh price data.) - - -.. note:: The merchant plant financial model may not work well with battery storage systems because of the cleared capacity requirement. - -**Perfect look ahead** - For each day, charge and discharge the battery based on the available power from the photovoltaic or other power source and power price to maximize revenue. For standalone batteries with no power system, charge and discharge the battery based on the power price. - - The look-ahead option is a perfect prediction of available power and prices because the battery dispatch coincides with the actual power generation and prices. - -**One day look behind** - Similar to perfect look ahead, but based on the available power and power prices in the previous 24 hours. The look-behind option adds some uncertainty to the dispatch because the battery dispatch coincides with power generation and prices for the previous day. The following illustration is for behind-the-meter storage with an electric load, but the concept is the same for a front-of-meter battery. - -.. image:: /images/IMG_BATT-dispatch-fom-automatic.png - :align: center - :alt: IMG_BATT-dispatch-fom-automatic.png - -**Custom forecast** - Similar to the look ahead automated dispatch option, except use different time series data for the forecast of power available to charge the battery than that used to model the system's power output: - -* For the PV Battery configuration, use a different weather file than the one on the Location and Resource page. - -* For the Custom Generation Profile - Battery configuration, use a different generation profile for the forecast than the generation profile on the Power Plant page. - -.. note:: The custom forecast option is not available for standalone batteries, which do not dispatch in response to a generation profile of a photovoltaic array or other power generating equipment. - -**Frequency to update dispatch** - For any of the three automated dispatch options, determines how often a new dispatch decision is made. - -**Look ahead period** - For the Perfect Look Ahead and Look Ahead to Custom Weather file options, the number of hours ahead of the current time step to use for the dispatch decision in the current time step. - -**Weather file for automated dispatch** - For the PV Battery configuration, the weather file to use for the custom forecast option. Click **Browse** to choose a weather file in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` . - -**Generation profile for automated dispatch** - For the Custom Generation Profile - Battery configuration, a time series generation profile (hourly or subhourly) to use for the custom forecast option. Click **Edit array** to import or paste a generation profile. - -Cycle Degradation Penalty -......................... - - The cycle degradation penalty represents the future cost of replacing the battery. It allows SAM to account for the battery replacement cost in the battery dispatch decision. For any of the automated dispatch options, choose a method for estimating the cost of cycling the battery: - -* **Calculate automatically** if you want SAM to calculate the cost. - -* **Enter penalty** to enter a cost per cycle-kWh value. - -If you choose the Calculate Automatically option, SAM reports the calculated penalty as **Computed cycle degradation penalty** in the :doc:`battery time series results <../battery-storage/battery_results>`. - -**Cycle degradation penalty** - When you choose the "enter penalty" option for the cycle degradation penalty option, this is the penalty in $/cycle-kWh of battery total capacity for cycling the battery. You can either enter a single value, or click the blue and grey **Value/Sched** button to enter a different penalty for each year of the analysis period. - -PV Smoothing -~~~~~~~~~~~~ -The PV smoothing algorithm dispatches the battery to reduce rapid fluctuations in a photovoltaic-battery system's output that can occur on partly cloudy days. - - - - -.. note:: The PV smoothing algorithms requires a simulation time step of 15 minutes or smaller. For SAM's photovoltaic models, the simulation time step is determined by the temporal resolution of the weather file. You can download 15-minute and 5-minute weather data from the NLR National Solar Radiation Database by choosing the **Advanced download** option on the Location and Resource page, or you can convert data from an hourly weather file to subhourly time steps using the "Solar Resource Interpolation" :doc:`macro <../reference/macros>`. - - -.. note:: When you choose the PV smoothing dispatch option, be sure to check the charge options to allow the battery to charge from the system, grid or both. - - -.. note:: Simulations with PV smoothing can take several minutes to run, depending on your computer and the weather file time step. - -After running a simulation, you can find results of the PV smoothing algorithm on the Results page Data Tables, Time Series, and other tabs by searching for "pv smoothing." The relevant results all start with **PV smoothing...**. **PV smoothing outpower** is the battery target power for PV smoothing algorithm: It attempts to dispatch the battery to meet the target, but constraints such as battery state of charge may prevent the target from being met in some time steps. **Electricity to grid** is power delivered by the PV system and/or battery to the grid, which may be subject to grid constraints or AC losses specified on the :doc:`Battery Cell and System <../battery-storage/battery_storage_fom>`, :doc:`Grid <../grid/grid_limits>` and :doc:`Losses <../detailed-photovoltaic-model/pv_electrical_losses>` pages. - -For more information about the algorithm, see: - -* For an introduction to the PV Smoothing algorithm, see the "Battery Updates for Fall 2021" webinar recording available on the SAM website at https://sam.nlr.gov/battery-storage/battery-videos.html. - -* The model is based on the EPRI open source project PV Ramp Rate Smoothing available on GitHub.com at https://github.com/epri-dev/PV-Ramp-Rate-Smoothing. - -* For a description of the model, see Fregosi, D.; Bolen, M.; Hobbs, W. (2023) "An analysis of storage requirements and benefits of short-term forecasting for PV ramp rate mitigation" available from https://sam.nlr.gov/battery-storage/battery-publications.html. - -**Weather file time stamp, minutes** - The temporal resolution of the currently selected weather file on the Location and Resource page. The PV smoothing algorithm requires a weather file with a time step of 15 minutes or smaller. - -**Ramp timestep multiplier** - The ramp interval is a multiple of the simulation time step determined by the ramp timestep multiplier. For example, if the simulation time step is 5 minutes, for a ramp interval of 15 minutes, you would enter a ramp timestep multiplier value of 3. - -**Ramp interval, minutes** - The interval used to calculate the ramp rate. The ramp rate is a change in power from one interval to the next. - -*Ramp Interval (minutes) = Weather File Times Step (minutes) × Ramp Timestep Multiplier* - -**Maximum ramp rate, % of nameplate per ramp interval** - The maximum change in power allowed from one ramp interval to the next as a percentage of the **Nameplate for PV smoothing**, or the interconnection limit from the :doc:`Grid <../grid/grid_limits>` page, whichever is less. - -.. note:: SAM uses the interconnection limit value to calculate the PV smoothing maximum ramp rate even when the interconnection limit on the Grid page is disabled. If you do not want the interconnection limit to affect PV smoothing, enable it and set it to a value much higher than the PV array nameplate capacity, and then disable it. - -**Battery resting SOC, %** - The battery resting state of charge as a percent of its nameplate capacity. - -**Battery energy, kWhac** - The battery's nominal capacity expressed in AC kilowatt-hours, from the :doc:`Battery Cell and System <../battery-storage/battery_storage_fom>` page. - -**Battery power, kWac** - The battery's nominal maximum discharge rate expressed in AC kilowatt-hours, from the :doc:`Battery Cell and System <../battery-storage/battery_storage_fom>` page. - -**Battery round trip efficiency, %** - An estimate of the battery's nominal round-trip efficiency, calculated from Power Converters parameters on the :doc:`Battery Cell and System <../battery-storage/battery_storage_fom>` page. Note that SAM calculates the battery's actual round-trip efficiency during simulations and reports it in the :doc:`Summary tab <../results/summary>` of the Results page. - - For a DC-connected battery: - -*Battery Round Trip Efficiency (%) = ( DC to DC Conversion Efficiency (%) × Inverter Efficiency Cutoff (%) ) ÷ 100%* - - For an AC-connected battery: - -*Battery Round Trip Efficiency (%) = ( AC to DC Conversion Efficiency (%) × DC to AC Conversion Efficiency (%) ) ÷ 100%* - -**Nameplate for PV smoothing, kWac** - The PV array's nameplate capacity in AC kilowatts, from the :doc:`System Size <../detailed-photovoltaic-model/pv_system_size>` page. - -**Interconnection limit, kWac** - The grid interconnection limit from the :doc:`Grid <../grid/grid_limits>` page. Used to calculate the maximum ramp rate. See description above. - -**Enable AC upper bound** - This constraint prevents the output power after PV smoothing from exceeding the AC upper bound that you specify. - -**AC upper bound, fraction of nameplate** - When you enable AC upper bound, the system's output is limited to this fraction of **Nameplate for PV smoothing**. - -**Enable AC lower bound** - This constraint prevents the system's output power after PV smoothing from falling below the AC lower bound that you specify. - -**AC lower bound, fraction of nameplate** - When you enable AC lower bound, the system's output is - -**Correct up-ramp violations** - Use PV smoothing to correct ramp violations when power increases from one interval to the next. - -**Curtail violations** - Curtail up-ramp violations rather than sending excess power to the grid. - -**Enable short-term power forecast** - Consider future power output in battery dispatch decision. - -**Forecasting window, periods of ramp rate intervals** - The forecast period when you enable short-term power forecasts. - -**Perfect look ahead** - For the Enable Short-term Power Forecast option, use the system output in the forecast period for the power forecast. - -**Look ahead to custom weather file** - For the Enable Short-term Power Forecast option, base the power forecast on a different weather file than the weather file from the Location and Resource page used to simulate the system's performance. - -**Weather file for PV smoothing forecast** - For the Look Ahead to Custom Weather File option, the weather file to use for the smoothing forecast. Click **Browse** to choose a weather file in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>` for the forecast. The weather file should have the same time step as the simulation weather file. - -Multipliers -........... - -The multipliers are error terms for a PI (proportional plus integral) controller. - -**Track PV power multiplier (kp)** - Determine how aggressively to PV power. Default is 1.2. - -**Return to rest SOC multiplier (ki)** - Determine how aggressively to return the battery to its resting state of charge. Default is 1.8. - -**Forecast accumulation error multiplier (kf)** - Applies to the difference between the power and forecast power for the ramp rate adjustment. Default is 0.3. - -**Reset to defaults** - Resets the three multipliers kp, ki, and kf to their default values. - -Dispatch to Custom Time Series -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -For the dispatch to custom time series option, provide a time series of battery power values. SAM attempts to charge and discharge the battery to meet the battery power target values. - -**Time series battery power targets** - Click **Edit array** to enter time series battery power values. A negative power value for a time step indicates the battery controller should attempt to charge the battery at the given rate in that time step. A positive power value indicates the battery should discharge. - -.. note:: For standalone batteries, the time step for time series power targets must be the same as the simulation time step, which you can set on the :doc:`Battery Time Step <../battery-storage/battery_time_step>` page. - -Manual Dispatch -~~~~~~~~~~~~~~~ -For the manual dispatch option, you specify the timing of battery charges and discharges using up to six dispatch periods and a set of weekday and weekend hourly profiles by month under **Manual Dispatch**. - -**Charge from system** - For each period that you want to allow the battery to be charged by power from the system, check the box in the **Charge from system** column. Charge from system is disabled for standalone batteries. - -**Charge from grid** - For each period that you want to allow the battery to be charged by power from the grid, check the box in the **Allow** column, and specify the percentage of the battery's state of charge that can be charged from the grid over the time step in the **Rate** column. - - For example, for hourly simulations, a charge rate of 25% would allow the battery to charge from the grid at 25% of its state of charge at the beginning of the time step over the time step. The purpose of this rate is to avoid damaging the battery by charging it too quickly. - -.. note:: For subhourly simulations, the charge and discharge rates apply to the subhourly time step even though the periods are defined in hours. - - If **Charge from grid** and the discharge option is also checked for a given period, and if in that period the battery state of charge is above the minimum state of charge, the battery discharges until it reaches the minimum state of charge, at which point it starts charging from the grid, either until it reaches the maximum state of charge, or until the time period changes to one that does not allow charging from the grid. - -**Discharge to grid** - For each period that you want to allow the battery to discharge to the grid, check the box in the **Allow** column, and specify the percentage of the battery's state of charge that can be discharged to the grid over the time step in the **Rate** column. - - For example, if Period 3 is the four consecutive hours between 3 pm and 6 pm, the discharge rate is 25%, and the charge limits are 30% and 96%, for an hourly simulation, that would allow up to 25% of the battery state of charge at the beginning of the 3 pm hour to be discharged over the hour. For the 4 pm hour, 25% of the charge at the end of the 3 pm hour would be available, and so on until the end of Period 3. The 25% value would discharge the battery over the full four-hour period. (A 20% value would have the same effect for a 5-hour period, i.e., if Period 3 were between 3 pm and 7 pm.) - - For a one-minute simulation, a discharge rate of 25% would allow up to 25% of the available charge to be dispatched *every minute* over Period 3, so a smaller percentage would be required to allow the battery to discharge over the full four-hour period. - -**Weekday and Weekend Schedules** - The weekday and weekend schedules determine the hour of day and month of year for each of the up to six dispatch periods. SAM ignores the charge and discharge options for any periods that you do not assign to the weekday or weekend schedules. - - To define the hour of day and month of year that each period applies, use your mouse to select a rectangle in the schedule matrix, and use your keyboard to type the period number (1-6). The number you type should appear in the rectangle. - - See :doc:`Weekday Weekend Schedules <../reference/weekday_schedule>` for a step-by-step description of how to use the schedule matrices. - -**Copy Schedules from TOU/TOD Schedules** - Use this button to copy the the weekday and weekend schedules from the time-of-delivery (TOD) schedules on the Time of Delivery or Revenue page for front-of-meter (FOM) systems. This option is not available for the Merchant Plant financial model. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_lifetime.rst b/doc/source/includes/snip_battery_lifetime.rst deleted file mode 100644 index 4a9e20e9df..0000000000 --- a/doc/source/includes/snip_battery_lifetime.rst +++ /dev/null @@ -1,71 +0,0 @@ - -The battery life model determines battery's degradation, or reduction in available battery capacity over time. There are two degradation mechanisms: - -* Calendar degradation is a reduction in battery capacity due to age, regardless of how the battery is used. - -* Cycle degradation is a reduction in battery capacity due to the number of charge/discharge cycles. - -SAM provides three options for modeling battery life: - -**Cycle and calendar degradation** - This option characterizes the battery life parameters using tables of cycle degradation and calendar degradation rates that you can customize. SAM applies the  minimum of the the two types of degradation. - -**Li-ion NMC/Graphite** - This option for the Lithium-ion Nickel Manganese Cobalt (NMC) Oxide battery type uses an internal battery life model that you cannot modify. The model includes both calendar and cycle degradation, and applies the sum of the two types of degradation. - -**Li-ion LMO/LTO** - This option for the Lithium-ion LMO/Lithium Titanate battery type uses an internal battery life model that you cannot modify. The model includes both calendar and cycle degradation, and applies the sum of the two types of degradation. - -SAM's Li-ion battery life models are adapted from the work presented in the following papers: - -* Smith, K.; Saxon, A.; Keyser, M.; Lundstrom, B.; Cao, Z.; Roc, A. (2017). Life Prediction Model for Grid-connected Li-ion Battery Energy Storage System. Presented at 2017 American Control Conference. (`PDF 1.4 KB `__) - -* Spotnitz, R. (2002). `Simulation of Capacity Fade in Lithium-ion Batteries `__. Journal of Power Sources. Vol 113 pp 72-80 2003. - -The Cycle and Calendar Degradation model is described in Section 2.3 of: - -* DiOrio, N.; Dobos, A.; Janzou, S.; Nelson, A.; Lunstrom, B. (2015). Technoeconomic Modeling of Battery Energy Storage in SAM. 32 pp. NREL/TP-6A20-64641 (`PDF 2.6 MB `__) - -Cycle and Calendar Degradation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The Cycle and Calendar Degradation option determines the battery's available or effective capacity in each time step based on both calendar degradation and cycle degradation, and sets the battery capacity to the minimum of the two. For example, if in a given time step cycle degradation is 75% of total capacity and calendar degradation is 87%, SAM sets the battery capacity to 75% of the total capacity. You can verify this behavior with the **Battery relative capacity to nameplate**, **Battery relative capacity to nameplate (calendar)**, and **Battery relative capacity to nameplate (cycling)** variables in the simulation results. - -Cycle Degradation -................. - -Cycle degradation is a reduction in the battery's capacity at 100% state of charge as the battery experiences many charge/discharge cycles. The cycle degradation model relies on information about capacity fade at the number of cycles elapsed at an average depth of discharge in the Cycle Degradation table. - -SAM assigns default values to the table appropriate for the given battery chemistry when you choose a battery type. You can use the default values unless you have better data from a manufacturer data sheet or other source. - -If you decide to use your own cycle degradation data, you must provide at least three rows of data in the table. For a table with more than one depth-of-discharge value, SAM uses bilinear interpolation to consider both the average depth-of-discharge and cycle number to determine the available capacity. If the table contains data for a single depth-of-discharge value, SAM only considers the cycle number in the capacity fade calculation using a rainflow counting algorithm. - -For example, given the following graph from a battery's data sheet showing a curve for three different depth-of-discharge levels: - -.. image:: /images/IMG_BATT-LifeVSDepthDischarge.png - :align: center - :alt: IMG_BATT-LifeVSDepthDischarge.png - -You might enter the following data in the table: - -.. image:: /images/IMG_Batt-LifeToSAM.png - :align: center - :alt: IMG_Batt-LifeToSAM.png - -Calendar Degradation -.................... - -Calendar degradation is a reduction in capacity over a battery's life that occurs over time, regardless of the number of charge/discharge cycles. This degradation may be a function of time, temperature and state of charge, or simply a function of time. - -**None** - Choose **None** to ignore calendar degradation. SAM calculates capacity degradation using only the data in the Cycle Degradation table. - -**Empirical** - Choose **Empirical** to use the equations shown to calculate calendar degradation for Lithium-ion batteries. The Empirical Calendar Degradation graph shows the degradation curves resulting from the equations. - - The empirical model accounts for how a Lithium-ion battery's capacity degrades with time, temperature, and state-of-charge. - -**Custom** - Choose **Custom** to use the Custom Calendar Degradation table to specify degradation curves. The Custom Calendar Degradation graph shows degradation curves from the data in the table. - - To enter custom data in the table, click **Custom**, and for **Rows**, type the number of data points in your degradation curve. Each capacity value should be a percentage of the battery nominal full capacity. The battery age should be in days. For example, the table below shows that the battery degrades to 80% of its nominal capacity after 10 years (365 days × 10 years = 3650 days), and to 50% of nominal capacity in after 20 years. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_losses.rst b/doc/source/includes/snip_battery_losses.rst deleted file mode 100644 index a434ba6d05..0000000000 --- a/doc/source/includes/snip_battery_losses.rst +++ /dev/null @@ -1,61 +0,0 @@ - -Some battery systems have losses that are not accounted for by the conversion losses specified under Power Converters above. You can use the ancillary equipment losses to account for these additional losses. By default, these losses are set to zero, which is appropriate for most analyses. - -Ancillary Equipment Losses -.......................... - -These are losses to account for electrical losses or consumption by equipment in the battery system such as for heaters and pumps for temperature control equipment. - -For DC-connected batteries, the losses are applied the system's DC power. For AC-connected systems, they are applied to the AC power. - -Losses by operating mode -........................ - -Choose this option to specify losses by month that apply when the battery is charging, discharging, or idle. - -**Charging mode losses** - Losses that apply when the battery is charging. - - Click **Edit values** to specify the loss in kW by month. SAM applies the loss in each time step of the month. For example, if the expected loss in January is 500 W, enter 0.5 for January, and SAM will reduce the available power by 0.5 kW for each time step in January. - -**Discharging mode losses** - Losses that apply when the battery is discharging. - -**Idle mode losses** - Losses that apply when the battery is neither charging, nor discharging. - -Time series losses -.................. - -Choose this option to specify hourly or subhourly time series losses. - -**Time series losses** - Click **Edit array** to enter or import kW loss values for each time step of the simulation. - -Battery Availability -.................... - -Battery availability losses can represent battery downtime for maintenance, system outages, or other times when the battery can neither charge nor discharge. The battery availability loss has the effect of reducing electricity to/from battery and battery state of charge in the time steps with availability losses. - -To explore the effect of battery availability losses, use the following output variables - -* **Electricity to/from battery AC (kW)** - -* **Battery state of charge (%)** - -* **Battery availability loss (%)** - -The **Electricity to [...] from battery (kW)** and **Electricity to battery from [...] (kW)** variables may also be useful. - -Battery availability losses affect both power and capacity. For a time step with availability loss, the loss percentage for that time step applies to both the battery power (kW) and capacity (kWh). Because the availability loss is intended to represent downtime for maintenance, the loss percentage also applies to the battery state of charge, assuming that cells are discharged to safely perform maintenance. This means that the battery will have a lower state of charge at the end of the availability loss period than at the beginning. - -.. note:: If the battery state of charge (SOC) is low when the availability loss period begins, the SOC could fall below the minimum SOC from the Battery Dispatch page. For example, a battery with a 10% minimum SOC that is at its minimum charge state when a period of 50% availability begins, would have a SOC of 5% at the end of the period. - -**Edit losses** - The :doc:`Edit Losses <../window-reference/win_edit_losses>` window allows you to define loss factors as follows: - -* Constant loss is a single loss factor that applies to the system's entire output. You can use this to model an availability factor. - -* Time series  losses apply to specific time steps. - - SAM multiplies the battery power in each time step by the loss percentage that you specify for that time step. For a given time step, a loss of zero would result in no adjustment. A loss of 5% would reduce the power by 5%, and a loss of -5% would increase the power by 5%. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_power_converters.rst b/doc/source/includes/snip_battery_power_converters.rst deleted file mode 100644 index 5b66e5c50f..0000000000 --- a/doc/source/includes/snip_battery_power_converters.rst +++ /dev/null @@ -1,38 +0,0 @@ - -For photovoltaic-battery systems, SAM can model a battery that is connected to either the DC or AC side of the photovoltaic inverter. - - - -.. note:: The DC connected option is only available with the PV Battery configuration. The Standalone and Custom Generation Profile - Battery configurations assume that the battery is the only DC component in the system. - - -.. note:: The Power Converters conversion efficiency inputs account for electrical losses associated with any battery power converter equipment except for the photovoltaic inverter. SAM models each battery converter as a fixed conversion efficiency. - - -.. note:: The photovoltaic inverter is a separate component from the battery power converters specified here and uses a more sophisticated model with an efficiency curve that varies with the inverter load. You specify the photovoltaic inverter model and parameters on the :doc:`Inverter <../detailed-photovoltaic-model/pv_inverter>` page. SAM models the inverter as a hybrid inverter with inputs for both a photovoltaic array and battery, regardless of whether the inverter you choose is actually a hybrid inverter. You can use the cec_hybrid column in the inverter library to find inverters that are specified as hybrid inverters. - -DC Connected (PV Battery Only) -.............................. - - Choose **DC Connected** for a battery connected to the DC side of a hybrid photovoltaic inverter as shown in the diagram above. - - To account for electrical losses from a DC-DC converter between the photovoltaic array and inverter, be sure to assign an appropriate value to the **DC power optimizer loss** on the :doc:`Losses <../detailed-photovoltaic-model/pv_electrical_losses>` page. - - For a DC-connected battery, during time steps when the total power from the photovoltaic array and battery is greater than the inverter's nameplate capacity, the inverter limits its output power to the nameplate capacity. For the dispatch options with **Battery can charge from clipped system power** enabled on the Battery Dispatch page, if the battery is not fully charged and is not discharging, the array power in excess of the inverter's nominal capacity charges the battery. - -**DC to DC conversion efficiency, %** - For the DC-connected option, the electrical conversion efficiency of the battery management system (BMS). SAM applies this loss to power into or out of the battery to account for power consumed by the BMS. SAM disables this input for the AC Connected option. - -**Inverter efficiency cutoff, %** - For the DC-connected option, the inverter efficiency cutoff is the photovoltaic inverter operating efficiency threshold below which the battery is not allowed to charge from the grid, or to discharge when the discharge power is greater than the inverter's maximum rated power. SAM reports the inverter operating efficiency in the time series results. - -AC Connected -............ - - Choose **AC Connected** for a battery connected to the grid interconnection point as shown in the diagram above. Power conversion equipment is required to convert DC power from the battery to AC power before it can serve the load or be sent to the grid, and to convert AC power from the grid or pvhotovoltaic inverter before it can charge the battery. - -**AC to DC conversion efficiency, %** - For the AC-connected option, the electrical conversion efficiency associated with the equipment that converts AC power from either the photovoltaic inverter output or grid to DC power for the battery. SAM disables this input for the DC Connected option. - -**DC to AC conversion efficiency, %** - For the AC-connected option, the electrical conversion efficiency associated with the equipment that converts DC power from the battery to AC power for either the AC load or grid, or both. SAM disables this input for the DC Connected option. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_reopt.rst b/doc/source/includes/snip_battery_reopt.rst deleted file mode 100644 index a05b54f449..0000000000 --- a/doc/source/includes/snip_battery_reopt.rst +++ /dev/null @@ -1,57 +0,0 @@ - -For photovoltaic behind-the-meter systems with battery storage, you can use Optimal Sizing and Dispatch from REopt to automatically size the battery bank and calculate an hour-by-hour dispatch schedule: SAM sends information from your SAM file to the online `REopt API `__, runs an optimization remotely, and replaces the SAM inputs for battery size and dispatch with data from the optimization. - -.. note:: The dispatch schedule REopt calculates is based on a different representation of the photovoltaic-battery system and weather file than SAM uses for simulations. - -This option has the following requirements: - -* Battery bank sizing is in the Set Desired Bank Size mode. - -* The performance model is either PV - Battery or PVWatts - Battery. Optimal sizing and dispatch is not available for the Custom Generation Profile - Battery, hybrid systems, or other models with storage. - -* Hourly simulation time step, which is determined by the weather file time step. The sizing and dispatch does not work with subhourly simulations. - -* For the Detailed PV model, the sizing and optimization does not work if more than one subarray is enabled. - -For information about REopt, see: - -* https://reopt.nlr.gov/tool - - -To optimize battery size and dispatch with REopt: - -#. Choose a weather file and design the photovoltaic system. - -#. On the Battery Cell and System page, choose **Set desired bank size**. - -#. Choose the battery type and set values for the desired bank voltage, cell nominal voltage, and cell capacity, and any other battery parameters you want to change. Use default values if you do not have information about any of those inputs. Do not set values for **Desired bank power** and **Desired bank capacity**: These will be set automatically. - -#. Check the inputs on the Battery Life page and change them as appropriate for your analysis. - -#. Set inputs on the financial model input pages, including installation and operating costs, financial parameters, incentives, electric load, and electricity rates. - -#. If your analysis includes grid outages, check **Consider grid outage in REopt optimization** if you want the REopt optimization to take into account the outage. - -#. Click **Get size and dispatch** to make the call to the REopt API start the optimization process. This may take several minutes to complete. When the process finishes, SAM displays a message asking if you want to replace inputs for the battery size and dispatch. - - SAM sends the following information from your SAM file to the REopt API: - -* Latitude and longitude from the Location and Resource page. - -* Basic system design parameters from the System Design page for the photovoltaic system you are modeling, including the system capacity and an estimate of losses (for PVWatts, the **Total system losses percentage** input from the System Design page, or for the Detailed PV model, the **Total loss from nominal POA to net AC percentage** from the simulation results). - -* Financial information from the Installation Costs, Operating Costs, Financial Parameters and Incentives pages. - -* Electricity rate and load information from the Electric Load and Electricity Rates pages. - - If the REopt optimization is successful, SAM replaces the following input values on the Battery Cell and System page (System Design page for PVWatts) with data from REopt: - -* **Desired bank capacity** - -* **Desired bank power** - -And, on the Battery Dispatch page (System Design page for PVWatts): - -* Set the dispatch option to **Input battery power targets** (**Custom dispatch** for PVWatts). - -* Populate **Time series battery power targets** (**Battery dispatch** for PVWatts) with optimized values. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_replacement.rst b/doc/source/includes/snip_battery_replacement.rst deleted file mode 100644 index a50d6ebddf..0000000000 --- a/doc/source/includes/snip_battery_replacement.rst +++ /dev/null @@ -1,17 +0,0 @@ - -When you enable battery replacements, SAM determines when batteries need to be replaced based either on battery degradation as determined by the Battery Lifetime inputs or a fixed replacement schedule that you specify. It also calculates an annual replacement cost in the project cash flow based battery replacement cost on the :doc:`Operating Costs <../operating-costs/oc_battery>` page. - -**No replacements** - Use this option if you do not want to account for battery replacement costs, or if you want to account for them using one of the general cost categories on the :doc:`Operating Costs <../operating-costs/oc_battery>` page . - - If you choose the No replacements option, SAM operates the system with no battery after the available storage capacity is depleted. - -**Replace at specified capacity** - Use this option if you want SAM to calculate the year(s) in which batteries are replaced based on degradation of the battery's capacity caused by battery cycling as determined from the **Battery Lifetime** parameters. - - Set **Battery bank replacement threshold** as percentage of the nominal battery capacity that triggers a replacement. When the battery's available capacity has degraded to this percentage, SAM replaces the battery and applies the battery replacement cost from the :doc:`Operating Costs <../operating-costs/oc_battery>` page to the project :doc:`cash flow <../results/cashflow>` . If you set the threshold to less than 2%, SAM sets the value internally to 2% to avoid simulation issues as the battery's available capacity approaches 0% of its original capacity. - -**Replace at specified schedule** - Use this option to specify the years when batteries are replaced and the percent of nominal battery capacity that is replaced in those years, regardless of the battery's degradation. - - Click **Edit array** to specify the percentage of total battery capacity to be replaced in each replacement year. In the Edit Array window, click **Number of values**, and enter the analysis period from the :doc:`Financial Parameters <../financial-parameters/fin_overview>` input page. Then in the table, type a percentage for each year in which the batteries will be replaced. The rows for the remaining years should be zero. \ No newline at end of file diff --git a/doc/source/includes/snip_battery_thermal.rst b/doc/source/includes/snip_battery_thermal.rst deleted file mode 100644 index 801ff15bc1..0000000000 --- a/doc/source/includes/snip_battery_thermal.rst +++ /dev/null @@ -1,82 +0,0 @@ - -The battery thermal model calculates the battery temperature in each simulation time step. Battery temperature affects battery capacity and degradation. The model's two main heat-transfer terms are transfer between the battery and its environment, and energy generated by resistive heating inside the battery. The cell internal resistance input is under Battery Voltage. - -.. note:: To verify that the battery thermal model is working as you expect, look at the **Battery temperature** output variable in the time series results to make sure it is within a reasonable range. If the temperature is higher or lower than you expect, you may need to adjust the thermal or physical properties inputs. - -Thermal Properties -.................. - -**Specific heat Cp, J/kg-K** - Estimated specific heat capacity for the battery. - -**Heat transfer coefficient h, W/m²-K** - Estimated heat transfer coefficient for heat transfer from the battery to the room. - - The default value for smaller batteries assumed for behind-the-meter applications is 7.5 W/m²-K. For larger batteries in front-of-meter applications, the default is 15 W/m²-K. - -**Environment temp option** - Choose how to represent the temperature of the battery's environment. - - .. image:: /images/SS_Battery-TempOption.png - :align: center - :alt: SS_Battery-TempOption.png - -**Enter single fixed temperature** - Choose this option to model the battery environment temperature as a single constant value throughout the year. - -**Enter time series temperature** - Choose this option to provide your own time series temperature data for the battery environment. - -**Single environment temperature** - For the Enter Single Fixed Temperature option, the temperature of the battery environment in degrees Celsius. This is disabled for the Enter Time Series Temperature option. - -**Time series environment temperature** - For the Enter Time Series Temperature option, click **Edit array** to enter or import hourly or subhourly temperature data in degrees Celsius. Note that the number of time steps must match the simulation time step determined by the weather file. This is disabled for the Enter Single Fixed Temperature option. - -.. note:: For a battery in a conditioned space, be sure to account for power required for heating or cooling equipment under **Battery Losses**. SAM does not explicitly model battery heating or cooling equipment, so you should set the battery environment temperature inputs to the temperature of the conditioned space. - -Capacity Fade with Temperature -.............................. - -The manufacturer data sheet may include battery capacity versus temperature data showing how the battery's capacity decreases with ambient temperature. The Capacity Fade curve must have at least two rows of data. - -**Temp, °C** - Battery environment temperature in degrees Celsius. - -**Capacity, %** - Battery discharge capacity as a percentage of rated capacity at the given temperature. - -Physical Properties -................... - -The physical properties inputs are designed to scale with battery size so you don't have to change them each time you change the size of the battery bank. These values should be reasonable estimates of the battery bank or individual battery's actual dimensions. They do not need to be exact. - -**Specific energy per mass (Wh/kg)** - Energy content per unit mass. SAM uses this value to calculate the battery bank's mass based on its rated capacity in kWh. If you know the battery bank mass, you can calculate the specific energy by dividing the battery bank's rated capacity in DC Watt-hours by its mass in kilograms. - -**Battery mass, kg** - An estimate of the battery bank's mass. - -*Battery Mass (kg) = Nominal Bank Capacity (DC kWh) × 1,000 (Wh/kWh) ÷ Specific Energy per Mass (Wh/kg)* - -**Compute battery surface area as cube** - Choose this option to represent the battery bank as a cube for temperature calculation purposes. This option works better for smaller batteries than larger ones. Disable the option to represent the battery as a single battery. - -**Specific energy per volume, Wh/L** - The battery bank's energy content per unit volume. If you know the battery bank's volume, you can calculate the specific energy by dividing the battery bank's rated capacity in DC Watt-hours by its volume in liters. This option is enabled with **Compute battery surface area as cube**. - -**Battery volume, m³** - For the **Compute battery surface area as cube** option, an estimate the volume of the battery bank, represented as a cube. - -*Battery Volume (m³) = Nominal Bank Capacity (DC kWh) ÷ Specific Energy per Volume (Wh/L)* - -**Energy capacity of one module, kWh** - The nominal capacity of a single battery when **Compute battery surface area as cube** is disabled. This value is only used for battery temperature calculations, so the value should be reasonably close to the actual capacity of a single battery but does not need to be exact. - -**Surface area of one module, m²** - The surface area of a single battery when **Compute battery surface area as cube** is disabled. You can calculate this value by multiplying the battery's length, width, and height measurements. - -**Battery surface area, m²** - An estimate of the surface area of a single battery when **Compute battery surface area as cube** is disabled. - -*Battery Surface Area (m²) = Nominal Bank Capacity (DC kWh) ÷ Energy Capacity of One Module (DC kWh) × Surface Area of One Module (m²)* \ No newline at end of file diff --git a/doc/source/includes/snip_battery_voltage.rst b/doc/source/includes/snip_battery_voltage.rst deleted file mode 100644 index 24c717e0a8..0000000000 --- a/doc/source/includes/snip_battery_voltage.rst +++ /dev/null @@ -1,75 +0,0 @@ - -The voltage properties are technical specifications available on most battery manufacturer data sheets. - -.. note:: When you change the battery type, SAM changes the voltage properties inputs to default values appropriate for the battery chemistry you selected. You can use these default values unless you have better information from a manufacturer's data sheet or other source. - -Battery voltage varies with state of charge as the internal open circuit potential decreases or increases. Voltage variations in charging and discharging affect the battery's round-trip efficiency reported in the results. During charging, voltage increases, requiring more power to charge the cell. During discharge the voltage decreases and less power can be extracted. The round-trip efficiency is computed as the net amount of energy discharged from a cell divided by how much energy it took to charge the cell. - -**Cell Internal resistance, Ohm** - The cell internal resistance for each cell in the battery in Ohms. SAM assumes that this is a constant value and uses it in voltage and thermal calculations by scaling the cell internal resistance to a total battery resistance based on the cell configuration. - -**Nominal bank voltage, VDC** - The battery bank voltage from the **Computed Properties** on the Battery Cell and System page. - -**Nominal cell voltage, VDC** - The nominal voltage of a single cell from the **Current and Capacity** inputs on the Battery Cell and System page. - -Electrochemical Model -..................... - -The electrochemical voltage model can be used for Lithium-ion and lead acid batteries and provides a way to characterize the battery's voltage curve using data provided on some battery manufacturer data sheets. It is disabled for flow batteries. The model is described in Section 2.1 of `DiOrio (2015) Technoeconomic Modeling of Battery Energy Storage in SAM `__. - -**C-rate of discharge curve** - Battery manufacturer data sheets typically include a set of curves like the one below that show cell voltage as a function of charge removed for different discharge rates. The "C-rate" is the current used to discharge the battery. It is defined as the current divided by the rated capacity. - - In this example, if the discharge current is given at the 20-hour discharge rate, the C-rate would be *I\ :sub:`20`\ ÷ q\ :sub:`20`\ × C = 0.05 × C (C/20)* . - -.. image:: /images/IMG_BATT-DischargeCurve.png - :align: center - :alt: IMG_BATT-DischargeCurve.png - -**Cutoff cell voltage, VDC** - The minimum allowed cell voltage. - -**Nominal zone cell voltage, VDC** - The cell voltage (Vnom) at the end of the nominal zone, as shown in the Nominal Current Discharge Characteristic graph below.. The cell charge removed at this point is |EQ_BATT_Nominal| . - -**Exponential zone cell voltage, VDC** - The cell voltage (Vexp) at the end of the exponential zone, as shown in the Nominal Current Discharge Characteristic graph below. The cell charge removed at this point is |EQ_BATT_Exponential| . - -**Fully charged cell voltage, VDC** - The cell voltage (Vfull) at the given C-rate when a cell is at its maximum charge. - -.. note:: The voltage inputs must satisfy Vfull > Vexp > Vnom. - -**Charge removed at exponential and nominal point** - Voltage vs discharge curves show that cell-voltage typically undergoes several distinct regions depending on charge. - -.. image:: /images/IMG_BATT-NominalDischargeCharacteristic.png - :align: center - :alt: IMG_BATT-NominalDischargeCharacteristic.png - -**C-rate of discharge curve** - This parameter determines the shape of the voltage curve between the end of the nominal zone and 100% discharge. - -Voltage Table -............. - -The voltage table option defines the voltage curve using data from the voltage table. It can be used for any type of battery, but requires data not often provided on manufacturer data sheets. - -SAM uses linear interpolation with an adjustment for cell internal resistance for cell voltage calculations during simulations. Each row in the table must have a different voltage value. - -The voltage table must contain at least two values, and must include cell voltage values less than and greater than the cell nominal voltage. - -To use the voltage table to define the voltage curve: - -#. Choose **Voltage table**. - -#. For **Rows**, type the number of pairs of voltage - depth of discharge pairs you want to use to define the voltage. The table will expand to the number of rows you type. - -You can also click Import to import data from a text file. Try clicking Export to create a template file to see what the text format should be. - -#. Type values in the depth of discharge and cell voltage columns. The Voltage Discharge graph will update as you type. - -.. |EQ_BATT_Exponential| image:: /images/EQ_BATT_Exponential.png -.. |EQ_BATT_Nominal| image:: /images/EQ_BATT_Nominal.png diff --git a/doc/source/includes/snip_choose_weather_file.rst b/doc/source/includes/snip_choose_weather_file.rst new file mode 100644 index 0000000000..5736d7a1d5 --- /dev/null +++ b/doc/source/includes/snip_choose_weather_file.rst @@ -0,0 +1,31 @@ +You can choose a weather file from the solar resource library, or you can disable the library and choose a file directly from a folder on your computer. + +**Solar Resource Library** + SAM's solar resource library displays information from weather files in your solar resource data folders. As you use SAM, use **Add/remove weather file folders** to build a library of files for locations you frequently use as described in :doc:`Folders and Libraries <../weather-data/weather_manage_folders>`. + + To choose a file from the solar resource library, click the location name in the list. You can type a few letters of the file name in the Search box to filter the list. + + The solar resource library is disabled when you check **Choose weather file**. + + .. note:: SAM comes with a few weather files that it loads when you create a new .sam file. These files are always in your library and are required for SAM to work properly. + +**Weather file from library** + The full path and file name for the currently selected file in the library. + +**Add/remove weather file folders** + Click the button to open the :doc:`Solar Resource Data Folder Settings window <../weather-data/weather_manage_folders>` where you choose folders on your computer that SAM scans to build the solar resource library. SAM adds any files it can identify as valid weather files in each folder you specify to the library. + + Before adding a file to the library, SAM checks the data in the file displays a message if it finds any problems with the data in the file. + + SAM only adds valid weather files to the library. If you add a folder that contains CSV files that are not in the SAM CSV format, it will not add those files to the library. + + The list of solar resource folders are the folders that SAM scans for weather files to build the solar resource library. + +**Refresh library** + Refresh the library after adding files to the weather file folder. In most cases, SAM should automatically refresh the library as needed, but you do not see files you just added to the library, click the button to refresh it. + +**Choose a weather file** + Check this box to disable the solar resource library and enable the **Browse** button. + +**Browse** + When the library is disabled, click **Browse** to choose a weather file directly from your computer. SAM checks the file and displays a message if it finds problems with the data in the file. \ No newline at end of file diff --git a/doc/source/includes/snip_csp_system_control.rst b/doc/source/includes/snip_csp_system_control.rst index 43e44b8b62..de9f5f0f05 100644 --- a/doc/source/includes/snip_csp_system_control.rst +++ b/doc/source/includes/snip_csp_system_control.rst @@ -1,7 +1,6 @@ - The System Control inputs determine the operating parameters of the system. -.. note:: The physical trough and molten salt power tower models in SAM use a new power cycle and system dispatch model that does not support thermocline storage or fossil backup because they were not incorporated into the new dispatch controller logic. If you want to use those features, you can use the legacy version SAM 2015.6.30 for power towers or SAM 2018.11.11 for the Physical Trough model, available on the SAM website `Download page `__. +.. note:: The physical trough and molten salt power tower models in SAM use a power cycle and system dispatch model that does not support thermocline storage or fossil backup because they are not incorporated into the dispatch controller logic. If you want to model thermocline storage or fossil backup, you can use the legacy version SAM 2015.6.30 for power towers or SAM 2018.11.11 for the Physical Trough model, available on the SAM website `Download page `__. Plant Energy Consumption ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -58,7 +57,7 @@ When you run a simulation without enabling optimization, SAM attempts to operate The penalty imposed for changing power cycle electrical production from one time step to the next. By penalizing changes, the resulting dispatch profile exhibits improved stability and is potentially more realizable in practice. Increasing this penalty may reduce achieved revenue for the project. This penalty affects the optimal solution, which seeks to maximize revenue. This value does not affect actual operating costs or the calculated SAM financial metrics. **Objective function time weighting exponent** - The relative weight due to time in the dispatch optimization objective function. A weighting factor of 0.99 indicates that the objective function terms are multiplied by *0.99**\ :sup:`t`\*  for each timestep t in the optimization horizon (48 hours, by default). A value of 1.0 indicates no time weighting, a value less than one indicates that – all things equal – generation is preferred sooner than later, and a value greater than one indicates that generation is preferred later than sooner. As the value is displaced from unity, the optimization algorithm is typically able to solve the dispatch problem more quickly, but the resulting revenue may decrease. Note that a value of 0.99 corresponds to an objective discounting in the 24th time period (one day ahead) of *0.99**\ :sup:`24`\**= 0.79*, which is to say that the optimization routine values revenue generated in hour one 21% more than in hour 24, though revenue multipliers and efficiency terms may be identical. + The relative weight due to time in the dispatch optimization objective function. A weighting factor of 0.99 indicates that the objective function terms are multiplied by *0.99**\ :sup:`t`\* for each timestep t in the optimization horizon (48 hours, by default). A value of 1.0 indicates no time weighting, a value less than one indicates that, all things equal, generation is preferred sooner than later, and a value greater than one indicates that generation is preferred later than sooner. As the value is displaced from unity, the optimization algorithm is typically able to solve the dispatch problem more quickly, but the resulting revenue may decrease. Note that a value of 0.99 corresponds to an objective discounting in the 24th time period (one day ahead) of *0.99**\ :sup:`24`\**= 0.79*, which is to say that the optimization routine values revenue generated in hour one 21% more than in hour 24, though revenue multipliers and efficiency terms may be identical. **Maximum branch and bound iterations** Limits the number of iterations in the optimization routine. If you are experiencing problems with the optimization, you can increase the number. The default value is 30,000. @@ -87,20 +86,26 @@ The dispatch control periods determine the timing of adjustments to the power cy **Use output fraction as maximum cycle output** Check this box if you want to limit the power cycle output to the turbine output fraction you specify for dispatch control instead of the **Maximum turbine over design operation** on the Power Cycle page. If you do not check the box and the turbine over design operation is greater than the highest turbine output fraction, the power cycle may operate at the higher value, exceeding the maximum dispatch limit under some conditions. -**Turbine output fraction** - For each of up to nine time-of-delivery periods, specify a multiple of the power cycle thermal input to scale the system's electrical output up or down as desired to match power pricing schedules or other time-dependent constraints. +**Turbine/Heat sink output fraction** + For each of up to nine time-of-delivery periods, specify a multiple of the power cycle or heat sink thermal input to scale the system's electrical output up or down as desired to match power pricing schedules or other time-dependent constraints. **Hybrid cooling fraction** - For each of up to nine time-of-delivery periods, specify how much of the cooling load should be handled by the wet-cooling system. Each value in the table is a fraction of the design cooling load. For example, if you want 60% of heat rejection load to go to wet cooling in Period 1, type 0.6 for Period 1. Directing part of the heat rejection load to the wet cooling system reduces the total condenser temperature and improves performance, but increases the water requirement. SAM sizes the wet-cooling system to match the maximum fraction that you specify in the hybrid dispatch table, and sizes the air-cooling system to meet the full cooling load. + This option is only available for performance models that support hybrid cooling. For each of up to nine time-of-delivery periods, specify how much of the cooling load should be handled by the wet-cooling system. Each value in the table is a fraction of the design cooling load. For example, if you want 60% of heat rejection load to go to wet cooling in Period 1, type 0.6 for Period 1. Directing part of the heat rejection load to the wet cooling system reduces the total condenser temperature and improves performance, but increases the water requirement. SAM sizes the wet-cooling system to match the maximum fraction that you specify in the hybrid dispatch table, and sizes the air-cooling system to meet the full cooling load. + +**Use hourly heat sink fraction** + Check this box to use time series heat sink fractions instead of time-of-use (TOU) fractions. Click **Edit array** to paste or import the time series values. + +**Copy schedule from TOD Factors page** + Click this button to copy weekday and weekend schedules from the PPA price time-of-delivery (TOD) multipliers when you want to the system to respond to power prices. The TOD multipliers are either on the Revenue page or the Financial Parameters page, depending on the financial model. Defining Dispatch Schedules -........................... +--------------------------- The storage dispatch schedules determine when each of the nine periods apply during weekdays and weekends throughout the year. If your analysis includes :ref:`PPA price multipliers ` and you want to use the same schedule for the multipliers and for the power cycle dispatch control, click **Copy schedule from TOD Factors** page to apply the TOD Factors schedule matrices to the dispatch schedule matrices. -To specify a weekday or weekend schedule: +**To specify a weekday or weekend schedule:** #. Assign values as appropriate to the **Turbine output** fraction and **Hybrid cooling fraction** for each of the up to nine periods. @@ -233,4 +238,3 @@ The 34 operating modes are described in the table below. Note that single digit - CR_DF, PC_SU, TES_FULL, AUX_OFF * - 34 - CR_DF, PC_SU, TES_OFF, AUX_OFF - diff --git a/doc/source/includes/snip_download_weather_files.rst b/doc/source/includes/snip_download_weather_files.rst new file mode 100644 index 0000000000..b54a150ef4 --- /dev/null +++ b/doc/source/includes/snip_download_weather_files.rst @@ -0,0 +1,69 @@ + +The Download Weather File options are for downloading weather files from the National Solar Radiation Database (NSRDB). For information about other sources, see the `Weather Data `__ page on the SAM website. + +**Type an address or coordinates to download latest NSRDB data** + Choose this option to download files from the latest available dataset for one location or for a list of locations. You can download a TMY file, a file for a specific year, or files for all available years. + +**Use Advanced NSRDB Options window to access all available data** + Choose this option to download 5-minute or 15-minute data for a specific year, or to download files from a specific NSRDB dataset. The :doc:`Advanced NSRDB Options window <../window-reference/win_nsrdb_advanced_download>` displays a list of files from all available datasets for a given location that you can choose from to download. You can also download files directly from the NSRDB using the `NSRDB Viewer `__. + +**Download** + The **Download** button is available when you choose **Type an address or coordinates to download NSRBD data**. Click the button to start the download after typing an address. + +**Advanced NSRDB Options** + The **Advanced NSRDB Options** button is available when you choose **Use Advanced NSRDB Options window to access all available data**. Click the button to open the :doc:`Advanced NSRDB Options window <../window-reference/win_nsrdb_advanced_download>`. + +The following inputs are only visible for the **Type an address or coordinates to download latest NSRDB data** option. + +**Address or coordinates** + Type a street address, city and state or country name, zip code, or latitude longitude pair. For example: + + * Golden, Colorado + * golden, co + * 15013 Denver West Parkway, Golden CO 80401 + * 80401 + * thimpu, bhutan + +**File options** + Choose the files you want to download from the NSRDB. + + **Default TMY file** downloads a `typical meteorological year `__ weather file for the location or locations you specified. TMY data is appropriate when you are using simulation results for a single year to make cash flow calculations over a multi-year period. + + **Choose year** displays a list of available years when you click **Download** so you can choose a single-year file to download. Single-year files are appropriate when you want to see how the system would perform in a particular year. For example, for a residential or commercial system, if you have measured building load data for a given year, you could use weather data for the same year to see how the system's power output compares to the load. + + **Download files for all years (P50/P90)** downloads a set of files for all available years. When you click **Download**, SAM creates a folder in your weather file download folder to store the single-year files based on the location address or latitude-longitude pair you typed. It also downloads the typical meteorological year (TMY) file for the location and stores it in your weather file download folder. SAM appends an underscore with the year to the single-year file names so that the P50 P90 simulations work correctly. See :doc:`P50/P90 Simulations <../simulation-options/p50p90>` for details. If you choose to download files for all years with **Multiple locations**, SAM downloads a set of files for each location, and puts the files for each location in a separate folder. + +**One location, Multiple locations** + Choose **One location** to download a weather file for a single location. Choose **Multiple locations** to download weather files for more than one location. + +**List of locations** + The list of locations for the **Multiple locations** option. The button is disabled for the **One location option**. Click **Edit data** to open the Edit Data window where you can enter the list of locations. When the window opens, click **Number of Values** to enter the number of locations in the list, and then type or import a list of addresses and/or coordinates. + +**60-minute, 30-minute** + Choose **60-minute** to download weather files with hourly time steps or 8,760 data records. Choose **30-minute** to download files with 30-minute time steps or 17,520 data records. This option is disabled for the **Default TMY file** option because TMY files contain hourly data. (To download 5- or 15-minute data, click **Use Advanced Options window to access all available data**). + +**Show Download Log** + Click this button to open the `/SAM Downloaded Weather Files/sam_nsrdb_download_log.txt` file. This file is a running log of your NSRDB downloads and provides information that can be helpful for troubleshooting weather file downloads. + +.. note:: Downloading multiple weather files from the NSRDB can take a long time. If you download files for multiple locations or years, be prepared to wait for the files to download. The download log file reports the time it takes for each file to download. Download times depend on your internet connection and computer. For a new computer with a fast connection, downloading and processing a single file takes about 10 seconds. + + The NSRDB API on the NLR Developer Network that SAM uses for weather file downloads requires an email address to download weather file. When you download a weather file from SAM, SAM submits the email address that you used to :doc:`register SAM <../reference/registration>`. + + When you download a file using the **Type an address or coordinates to download latest NSRDB data** option, SAM uses the `NSRDB Data Query `__ API on the NLR Developer Network to identify available `NSRDB datasets `__ for a the requested location, and then downloads a file from one of the following datasets depending on the location. For TMY files: + + * GOES TMY PSM v4.0.0 + * Himarawi TMY PSM v3 + * NSRDB Polar Typical Meteorological Year v4.0.0 + * Meteosat Prime Meridian TMY PSM v4 + + And, for single-year files: + + * GOES Aggregated PSM v4.0 + * Himawari 2016-2020 PSM v3 + * METEOSAT IODC Region PSM v3 + * NSRDB Polar v4.0.0 + * GOES Full Disc PSM v4 (only if files are not available for the location in GOES Aggregated PSM v4). + + SAM uses the Mapquest geocoding service through a private NLR Developer Network API to identify the geographic coordinates (latitude and longitude) of a location when you type a street address or city and state name to identify the location. + + diff --git a/doc/source/includes/snip_financing_depreciation_adv.rst b/doc/source/includes/snip_financing_depreciation_adv.rst deleted file mode 100644 index b1cd5a43ae..0000000000 --- a/doc/source/includes/snip_financing_depreciation_adv.rst +++ /dev/null @@ -1,52 +0,0 @@ - -The Depreciation options allow you to specify how SAM calculates depreciation amounts and to specify an optional bonus depreciation. - -The depreciation basis is the **Total depreciation basis prior to allocation** output variable. It is the sum of the total installed cost and any financing costs that apply to the project, including debt-related costs, construction financing cost, and the cost of funding reserves. - -The depreciation amount for each class is the product of the total depreciation basis prior to allocation and the allocation percentage for that class. - -The sum of allocation percentages may be less than 100% to account for situations where the total depreciation basis prior to allocation includes non-depreciable assets or costs. In this case, the total amount allocated for depreciation is less than the total depreciation basis prior to allocation. See the **Gross Amount Allocated** column in the Depreciation and ITC table in the project :doc:`cash flow <../results/cashflow>`. - -For projects with the Investment Tax Credit (ITC), when you check the **Reduces Depreciation Basis** check box for the ITC the :doc:`Incentives <../incentives-and-depreciation/cash_incentives>` page, SAM reduces the depreciation basis by 50% of the ITC amount as required by U.S. Internal Revenue Service rules. - -SAM makes the following simplifying assumptions: - -* To represent depreciation of assets with different classes or service lives, you can specify an allocation percentage for up to six different depreciation methods. - -* State and federal depreciation bases are the same, except for bonus depreciation. - -* Investment-based incentives and capacity-based incentives reduce the depreciation basis proportionally. - -**Depreciation Classes** - Each row in the Depreciation Classes box represents a recovery period (5, 15, 20, or 39 years) and depreciation method (MACRS or Straight Line) based on the guidelines in the United States tax code. See U.S. Internal Revenue Service Publication 946 (https://www.irs.gov/pub/irs-pdf/p946.pdf) for details. - - The following table shows the depreciation percentage by year for each depreciation class: - - .. image:: /images/TBL_DepreciationClasses.png - :align: center - :alt: TBL_DepreciationClasses.png - - Each depreciation class has an associated value or set of check boxes listed under Federal and State Allocations, Bonus Depreciation, and ITC Qualification. - - **Custom Depreciation Schedules** - - For projects outside of the U.S., or for analyses involving depreciation methods other than IRS methods, you can specify a custom depreciation schedule. To specify a custom depreciation schedule, click **Edit**, and enter a percentage for each year in the depreciation schedule table. (Enter values in the table as percentages, not decimals: For example type '25' for 25%.) - -**Federal and State Allocations** - For each depreciation class, specify an allocation. SAM assumes that the same depreciation method and allocations apply to both federal and state taxes. - - SAM assumes the half-year convention for all depreciation methods. - - To model a project with no depreciation, enter zero for all depreciation methods. - -**Bonus Depreciation** - The bonus depreciation applies in Year One as a percentage of the allocations that you specify for the standard depreciation. - - Specify a percentage and check the box for each depreciation allocation that qualifies for the bonus depreciation. - - For example, for a federal bonus depreciation that is 100% of the 5 yr MACRS depreciation class, if you specified the following depreciation allocations: 80% 5 yr MACRS, 1.5% 15 yr MACRS, and 3% 15 yr Straight Line, you would enter 100% for **Federal**, check the **5-yr MACRS** box, and clear the remaining boxes. - -.. note:: The Tax Relief, Unemployment Insurance Reauthorization, and Jobs Creation Act of 2010 extended the bonus depreciation incentive through 2010. Projects placed in service in 2011 qualify for 100% bonus depreciation, while projects placed in service in 2012 qualify for 50% bonus depreciation. Note that these bonus depreciation provisions are temporary. - -**ITC Qualification** - Check the box for each depreciation allocation that qualifies for investment tax credits (ITC). For example, if you check the box for 5-yr MACRS, and the 5-yr MACRS allocation is 90%, then the ITC basis would be 90% of the total depreciation basis prior to allocation. \ No newline at end of file diff --git a/doc/source/includes/snip_financing_depreciation_basic.rst b/doc/source/includes/snip_financing_depreciation_basic.rst deleted file mode 100644 index a49e86c8ef..0000000000 --- a/doc/source/includes/snip_financing_depreciation_basic.rst +++ /dev/null @@ -1,30 +0,0 @@ - -The depreciation inputs represent the decrease in value of project assets over the analysis period. Depreciation reduces federal and state taxable income, shown under *Tax Effect on Equity* in the project :doc:`cash flow <../results/cashflow>`. - -For the Commercial financial model, SAM assumes that the depreciation method you choose applies to the entire depreciable basis. For these projects, the depreciable basis in each year of the project cash flow is the total installed cost less any incentives you specify as reducing the depreciation basis on the :doc:`Incentives <../incentives-and-depreciation/cash_incentives>` page: - -*Depreciable Basis = Total Installed Cost + Total Construction Financing Cost - ( Total ITC × 0.5 + Total IBI + Total CBI + Total PBI )* - -Where *Total Installed Cost* is from the Installation Costs page, and *ITC* includes all tax credits that you specified on the Incentives page to reduce the depreciation basis, and *IBI*, *CBI*, and *PBI* include all incentives you specified to reduce the depreciation basis. - -.. note:: After running a simulation, you can verify the depreciation percentages and amounts in the :doc:`cash flow <../results/cashflow>` in the rows under Tax Effect on Equity. - -**No Depreciation** - The project does not claim a depreciation tax deduction. - -**5-yr MACRS** - Modified Accelerated Cost Recovery System depreciation schedule offered by the Federal government and some states using a five-year life and half-year convention. - - This tax deduction, expressed as a percentage of the depreciable basis, applies to the first five years of the project life as follows: 20%, 32%, 19.2%, 11.52%, 11.52%, and 5.76%. - -**Straight Line (specify years)** - A depreciation schedule offered by the Federal government and some states. - - SAM calculates the depreciation percentage for the straight line depreciation option by dividing the analysis period by the number of years: - -*SL Depreciation Percentage = Analysis Period (years) ÷ SL Number of Years (years) × 100%* - -**Custom (specify percentages)** - Allows you to assign a depreciation deduction as a percentage of the total installed cost for each year in the project life. - - To specify a custom depreciation schedule, click **Custom (specify percentages)**, and then click **Edit** to open the Edit Schedule Window. Each row in the table represents a year in the analysis period. For **# Values**, type a number equal to or greater than the analysis period. (SAM ignores any values you enter for years after the analysis period.) For each year in the table, type a percentage. SAM will calculate the depreciation amount for each year in the :doc:`cash flow <../results/cashflow>` by multiplying the percentage you specify for that year by the depreciable basis described above. \ No newline at end of file diff --git a/doc/source/includes/snip_installation_costs.rst b/doc/source/includes/snip_installation_costs.rst index 819f237709..056768b65e 100644 --- a/doc/source/includes/snip_installation_costs.rst +++ b/doc/source/includes/snip_installation_costs.rst @@ -8,10 +8,7 @@ Recurring costs that apply in Years 1 and later of the project cash flow are on Variable values in boxes with white backgrounds are values that you can edit. Boxes with blue backgrounds contain calculated values or values from other pages that SAM displays for your information. SAM provides the categories under **Direct Capital Costs** and **Indirect Capital Costs** for your convenience to help keep track of project installation costs. Only the **Total Installed Cost** value affects the cash flow calculations, so you can assign capital costs to the different cost categories in whatever way makes sense for your analysis. For example, you could assign the cost of designing the array to the module cost category or to the engineering category with equivalent results. After you assign costs to the categories, you should verify that the total installed cost value is what you expect. - - .. note:: The default cost values that appear when you create a file or case are intended to illustrate SAM's use. The cost data are meant to be realistic, but not to represent actual costs for a specific project. For more information and a list of online resources for cost data, see the technology pages on the `SAM website `__. - -.. note:: The Installation Costs page only available for cases with a cash-flow-based financial model. It is not available with the No Financial Model option or the LCOE Calculator financial model. \ No newline at end of file + The Installation Costs page only available for cases with a cash-flow-based financial model. It is not available with the No Financial Model option or the LCOE Calculator financial model. \ No newline at end of file diff --git a/doc/source/includes/snip_load_annual_adjustment.rst b/doc/source/includes/snip_load_annual_adjustment.rst deleted file mode 100644 index 33d54a817d..0000000000 --- a/doc/source/includes/snip_load_annual_adjustment.rst +++ /dev/null @@ -1,8 +0,0 @@ - -**Load annual growth rate, %/yr** - The load growth rate scales the load in years two and later by the percentage you specify. For example, if you specify a load growth rate of 0.5% per year, for each year in the analysis period specified on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page, SAM would increase the load value in each time step by 0.5% of the previous year's load value for the same time step. - - You can also assign load growth rates to specific years using the annual schedule: - -.. include:: /includes/snip_annual_values.rst - diff --git a/doc/source/includes/snip_location_resource.rst b/doc/source/includes/snip_location_resource.rst index a98709a31a..ec24e5bee9 100644 --- a/doc/source/includes/snip_location_resource.rst +++ b/doc/source/includes/snip_location_resource.rst @@ -1,173 +1,33 @@ -The Location and Resource page provides access to the solar resource library, which is a collection of weather files stored on your computer. When you first install SAM, it comes with a few default weather files in the library. As you use SAM for your own projects, you should add files to build your own library. Once files are in your library, you can use them for different projects and with different versions of SAM. +The Location and Resource page is where you choose a weather file for the simulation. It provides access to the solar resource library and tools for downloading files from the National Solar Radiation Database (NSRDB). -.. image:: /images/SS_SolarResource-library.png - :align: center - :alt: SS_SolarResource-library.png +The solar resource library is a list of CSV files with valid and correctly formatted solar resource data. SAM builds the library from the folders that you identify as containing weather files. When you first install SAM, it comes with a few default weather files stored in the `/SAM Downloaded Weather Files` folder that are automatically added to the library. As you use SAM for your own projects, you can add and remove folders to manage the library. -.. image:: /images/SS_SolarResource-download.png - :align: center - :alt: SS_SolarResource-download.png +There are two ways to add weather files to your solar resource library: -.. image:: /images/SS_SolarResource-information.png - :align: center - :alt: SS_SolarResource-information.png +* Use the **Download** button or the Advanced NSRDB Options window to download files from the NSRDB and add them to your library. -There are two ways to add files to your solar resource library: +* Use the **Add/remove weather file folders** button to add files that are on your computer. -1. Download files from the NLR National Solar Radiation Database (NSRDB) +.. tip:: You may want to model your system using weather data for several different locations around your project site, and if available, from different data sources to understand how sensitive your analysis results are to the weather assumptions, and how much variation there is in the data from the different weather files. -Use the download weather file options and click **Download and add to library** to get the most up-to-date data from the NSRDB for long-term cash flow analysis, single-year analysis, and P50/P90 analysis. + You can compare results for a system using more than one weather file in a single case by using SAM's :doc:`parametric simulation <../simulation-options/parametrics>` option. -2. Add weather file folders + For a list of sources of solar resource data other than the NSRDB, see the `Weather Data page on the SAM website `__. -If you have weather files from a source other than the NSRDB or that you've downloaded yourself directly from the NSRDB website, click **Add/remove weather file folders** to add the folder containing the files to the **Solar Data File Folders** list. SAM automatically adds any weather files it finds in these folders to the solar resource library so they will appear in the list. + For a helpful discussion of weather data and power system simulation, see the `Best Practices Handbook for the Collection and Use of Solar Resource Data for Solar Energy Applications `__. -When you install SAM, it creates the default download folder /SAM Downloaded Weather Files folder where weather files you download from the NSRDB are stored. You can change that folder by clicking **Add/remove weather file folders** and changing the **Folder for Downloaded Solar Data Files**. +.. seealso:: -For a list of sources of data other than the NSRDB, see the `Weather Data page on the SAM website `__. - -See also -........ - -:doc:`Weather File Formats <../weather-file-formats/weather_format>` - -:doc:`Weather Data Elements <../weather-data/weather_data_elements>` - -:doc:`Typical and Single Year <../weather-data/weather_typical_single>` - -:doc:`Time and Sun Position <../weather-data/weather_time_convention>` - -:doc:`Folders and Libraries <../weather-data/weather_manage_folders>` - -:doc:`Weather Data and LK <../weather-data/accessing-weather-data-from-lk>` - - - - -.. note:: You may want to model your system using weather data for several different locations around your project site, and if available, from different data sources to understand how sensitive your analysis results are to the weather assumptions, and how much variation there is in the data from the different weather files. - - -.. note:: You can compare results for a system using more than one weather file in a single case by using SAM's :doc:`parametric simulation <../simulation-options/parametrics>` option. - - -.. note:: For more information about weather data, including where to find data for locations outside of the United States, see `Weather Data `__ on the SAM website. - - -.. note:: For a helpful discussion of weather data and power system simulation, see Sengupta, M.; Habte, A.; Gueymard, C.; Wilbert, S.; Renne, D.; Stoffel, T. (2017). "Best Practices Handbook for the Collection and Use of Solar Resource Data for Solar Energy Applications: Second Edition." NREL Report No. TP-5D00-68886. (`PDF 8.1 MB `__) - - -Solar Resource Library -~~~~~~~~~~~~~~~~~~~~~~ -SAM's solar resource library displays information from weather files in your solar resource data folders. The default solar resource library that comes with SAM contains weather files for a few locations around the United States for the default configurations. As you use SAM, use **Add/remove weather file folders** to build a library of files for locations you frequently use as described in :doc:`Folders and Libraries <../weather-data/weather_manage_folders>`. - -To choose a file from the solar resource library: - -* Click the location name in the list. You can type a few letters of the file name in the Search box to filter the list. - -The full file name and information about the selected file appears under **Weather Data Information**. To see the data in the file, click **View data**. - -.. image:: /images/SS_SolarResource-library.png - :align: center - :alt: SS_SolarResource-library.png - -**Add/remove weather file folders** - Use the folder settings to tell SAM what folders on your computer it should scan for weather files to build the solar resource library. SAM adds any files it can identify as valid weather files in each folder you specify to the library. - - Before adding a file to the library, SAM checks the data in the file displays a message if it finds any problems with the data in the file. - - SAM will only add valid weather files to the library. If you add a folder that contains CSV files that are not in the SAM CSV format, it will not add those files to the library. - - The list of solar resource folders are the folders that SAM scans for weather files to build the solar resource library. - -**Refresh library** - Refresh the library after adding files to the weather file folder. In most cases, SAM should automatically refresh the library as needed, but you may need to manually refresh it. - - -Download Weather Files -~~~~~~~~~~~~~~~~~~~~~~ -.. include:: /includes/snip_solar_download.rst - -Weather Data Information -~~~~~~~~~~~~~~~~~~~~~~~~ -.. image:: /images/SS_SolarResource-information.png - :align: center - :alt: SS_SolarResource-information.png - -**Weather File** - The path and name of the active weather file SAM will use for simulation. Download a different file from the NSRDB, or click a different file name in the library to change the file. - -**View data** - Display weather file data in the :doc:`time series data viewer <../reference/time_series_viewer>` . - -.. note:: You can also see the data after running a simulation on the Results page :doc:`data tables <../results/data>` and :doc:`time series graphs <../results/timeseries>`. - -Header Data from Weather File -............................. - -Header data is information in the weather file that describes the location and type of data in the file. SAM uses the time zone, elevation, latitude and longitude to calculate the sun position during simulations. It does not use the city, state, country, and other descriptive information. - -Annual Values Calculated from Weather File -.......................................... - -When you add a weather file to the solar resource library, SAM reads weather data from the file and calculates the annual values to display for your reference. It does not use annual values during simulations. - -**Global horizontal, Direct normal (beam), Diffuse horizontal** - The sum of solar irradiance data (W/m \ :sup:`2`\ ) in the weather file converted to kW and divided by 365 days/year. - -**Average temperature** - The sum of temperature data (°C) in the weather file divided by the number of records in the file (8760 for hourly data). - -**Average wind speed** - The sum of wind speed data (m/s) in the weather file divided by the number of records in the file (8760 for hourly data). - -**Maximum snow depth** - If the weather file contains snow depth data, the maximum value of snow depth data (cm) in the weather file. NaN indicates the file does not contain snow depth data. Snow depth data is required for to model snow losses for the Detailed Photovoltaic and PVWatts models. - -.. note:: For information about where to find weather files with snow depth data, see the note on the `Weather Data `__ page of the SAM website. - -**Annual albedo** - If the weather file contains albedo (ground reflectance) data, the average value of albedo values in the weather file. NaN indicates the file does not contain albedo data. - -About the NSRDB -~~~~~~~~~~~~~~~ -The `NLR National Solar Radiation Database (NSRDB) `__ is an online database of weather files containing solar resource data in the :doc:`SAM CSV format <../weather-file-formats/weather_format_sam_csv_solar>`. Files are available both as :doc:`typical-year <../weather-data/weather_typical_single>` files and :doc:`single-year <../weather-data/weather_typical_single>` files. The database covers the parts of the world shown in the map below. The current data is called PSM (Physical Solar Model). - -.. image:: /images/IMG_NSRDB-map.png - :align: center - :alt: IMG_NSRDB-map.png - -.. note:: SAM's CSP models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + * :doc:`Weather File Formats <../weather-file-formats/weather_format>` + * :doc:`Weather Data Elements <../weather-data/weather_data_elements>` + * :doc:`Typical and Single Year <../weather-data/weather_typical_single>` + * :doc:`Time and Sun Position <../weather-data/weather_time_convention>` + * :doc:`Folders and Libraries <../weather-data/weather_manage_folders>` + * :doc:`Weather Data and LK <../weather-data/accessing-weather-data-from-lk>` -.. note:: The NSRDB requires an email address to download weather file. When you download a weather file from SAM, SAM submits the email address that you used to :doc:`register SAM <../reference/registration>`. NLR uses your email address to determine how many people are using the NSRDB. It does not share email addresses. - - -.. note:: SAM uses the `Google Maps API Geocoding Service `__ service to identify the geographic coordinates (latitude and longitude) of a location when you type a street address or city and state name to identify the location. - - -.. note:: For information about downloading weather files and data from other sources, see the `Weather Data `__ page on the SAM website. - -SAM downloads weather files with the following hourly data from the NSRDB: - -* Direct normal (beam) irradiance, DNI (W/m²) - -* Diffuse horizontal irradiance, DHI (W/m²) - -* Dry-bulb temperature (°C) - -* Dew-point temperature (°C) - -* Relative humidity (%), for single-year files only - -* Atmospheric pressure (mbar) - -* Wind speed at 2 meters above the ground (m/s) - -* Wind direction (°E of N) -* Albedo -.. note:: Weather files with snow depth data for the Detailed Photovoltaic model are not available from the NSRDB PSM dataset. They are available for 239 locations in the United States from the legacy MTS1 (TMY2) files in the original format, which cover the period 1961 - 1990. See :ref:`Snow Losses ` for details. \ No newline at end of file diff --git a/doc/source/includes/snip_pvwatts_system_design.rst b/doc/source/includes/snip_pvwatts_system_design.rst deleted file mode 100644 index f0e354fdd7..0000000000 --- a/doc/source/includes/snip_pvwatts_system_design.rst +++ /dev/null @@ -1,308 +0,0 @@ - -The inputs on the System Design page describe the physical characteristics of the photovoltaic system. You only need to provide basic information about the system. PVWatts makes assumptions about modules, inverter, and other parts of the system so you do not need to provide detailed information about those parts of the system. - -System Parameters -~~~~~~~~~~~~~~~~~ - -The system inputs define the size of the system, losses, and the array orientation. - -**System nameplate capacity, kWdc** - The DC system capacity is the DC (direct current) power rating of the photovoltaic array in kilowatts (kW) at standard test conditions (STC). PVWatts can model any size of array, from residential rooftop systems to large ground-mounted power generation systems. - -**Module type** - The type of modules in the system. If you do not have information about the modules in the system, use the default standard module type. - -.. list-table:: - :width: 100% - :align: center - :header-rows: 1 - - * - Module Type - - Approximate Nominal Efficiency - - Module Cover - - Temperature Coefficient of Power - - Fill Factor (for self-shading) - * - Standard (crystalline Silicon) - - 19% - - Anti-reflective glass - - -0.37 %/°C - - 77.8% - * - Premium (crystalline Silicon) - - 21% - - Anti-reflective glass - - -0.35 %/°C - - 78.0% - * - Thin film - - 18% - - Anti-reflective glass - - -0.32 %/°C - - 77.7% - -.. note:: The premium module type has a higher efficiency at Standard Operating Conditions (STC) than the standard and thin film module types. However, under different irradiance and weather conditions, the premium module type may operate at a lower efficiency than the standard or thin film type. For this reason, if you compare two systems that are identical except for the module type, you may find that the total annual or monthly output is slightly higher for the standard module type than the premium or thin film type. - - Note that a system with a given nameplate capacity in kW and premium modules requires less area than a system with the same capacity and standard or thin film modules. If space for the array is limited, you may be able to design a higher capacity system using premium modules. - - STC is defined as 1000 W/m² solar irradiance, 25°C cell temperature, and air mass of 1.5. For time steps with solar irradiance ranges of about 400 to 600 W/m², the  premium module's efficiency may be less than the standard module. - -**Module is bifacial** - Check this box for an array with bifacial modules that converts sunlight from both the front and back of the module to electricity. - - For an array with bifacial modules, SAM calculates the plane-of-array irradiance on the rear side of the array in each time step based on the available solar resource, position of the sun, and array orientation and considering ground reflectance (albedo) and spacing between rows of modules. It then multiplies the rear-side irradiance by a module bifaciality factor of 0.65 to calculate the total irradiance available to the array. - -.. note:: For PVWatts, SAM assumes a bifaciality factor of 0.7, transmission factor of 0.013, and ground clearance height of 1 meter. You can adjust these parameters for the Detailed PV model, but not for PVWatts. - -**DC to AC ratio** - The DC to AC size ratio is the ratio of the inverter's AC rated size to the array's DC rated size. Increasing the ratio increases the system's output over the year, but also increases the array's cost. The default value is 1.10, which means that a 4 kW system size would be for an array with a 4 DC kW nameplate size at standard test conditions (STC) and an inverter with a 3.63 AC kW nameplate size. - - For a system with a high DC to AC size ratio, during times when the array's DC power output exceeds the inverter's rated DC input size, the inverter limits the array's power output by increasing the DC operating voltage, which moves the array's operating point down its current-voltage (I-V) curve. PVWatts models this effect by limiting the inverter's power output to its rated AC size. - - The default value of 1.10 is reasonable for most systems. A typical range is 1.10 to 1.25, although some large-scale systems have ratios of as high as 1.50. The optimal value depends on the system's location, array orientation, and module cost. - -**Rated inverter size, kWac** - The nameplate capacity of inverters in the system. - -*Rated Inverter Size (kWac) = System Nameplate Capacity (kWdc) ÷ DC to AC Ratio* - -**Inverter efficiency** - The inverter's nominal rated DC-to-AC conversion efficiency, defined as the inverter's rated AC power in kilowatts divided by its rated DC power in kilowatts expressed as a percentage. The default value is 96%. - - This is a nominal value. PVWatts calculates the inverter's hourly operating efficiency based on the nominal efficiency and an efficiency curve. - -**Estimated total module area, m²** - This estimate of the total module area is used for the land area estimate under Land Area below. This represents the total surface area of the modules, regardless of the tilt angle. The approximate nominal efficiency depends on the module type as shown in the table above. - -*Estimated Total Module Area (m²) = System Nameplate Capacity (kW) ÷ Approximate Nominal Efficiency* - -Orientation and Tracking -~~~~~~~~~~~~~~~~~~~~~~~~ - -**Array type** - The array type describes whether the PV modules in the array are fixed, or whether they move to track the movement of the sun across the sky with one or two axes of rotation. The default value is for a fixed array with no tracking. - -**Fixed open rack and roof mount** - The array is fixed at the tilt and azimuth angles defined by the values of **Tilt** and **Azimuth** and does not follow the sun's movement. - - .. image:: /images/IMG_PVArray-fixed-tilt.png - :align: center - :alt: IMG_PVArray-fixed-tilt.png - - For systems with fixed arrays, you can choose between an open rack or a roof mount. - -**Fixed open rack** is appropriate for ground-mounted systems. The open rack option assumes that air flows freely around the array, helping to cool the modules and reduce cell operating temperatures. (The array's output increases as the cell temperature decreases for at a given incident solar irradiance.) The open rack option also assumes that modules are arranged in rows and uses the ground coverage ratio (GCR) to estimate irradiance losses due to self shading caused when modules in neighboring rows cause shadows on the array. - -**Fixed roof mount** is typical of residential installations where modules are attached to the roof surface with standoffs that providing limited air flow between the module back and roof surface (typically between two and six inches). The roof mount option assumes that there is no self shading between modules. - -**1-axis tracking and 1-axis backtracking** - The array is fixed at the angle from the horizontal defined by the value of **Tilt** and rotates about the tilted axis from east in the morning to west in the evening to track the daily movement of the sun across the sky. **Azimuth** determines the array's orientation with respect to a line perpendicular to the equator. - - .. image:: /images/IMG_PVArray-one-axis.png - :align: center - :alt: IMG_PVArray-one-axis.png - - For **1-axis tracking**, PVWatts models self shading based on the ground coverage ratio (GCR). - - For **1-axis backtracking**, PVWatts assumes that there is no self shading because the trackers rotate modules to avoid it. Backtracking is a tracking algorithm that rotates the array toward the horizontal during early morning and late evening hours to reduce the effect of self shading. The one-axis tracking algorithm assumes a rotation limit of ±45 degrees from the horizontal. - -**2-axis tracking** - The array rotates from east in the morning to west in the evening to track the daily movement of the sun across the sky, and north-south to track the sun's seasonal movement throughout the year. For two-axis tracking, SAM ignores the values of **Tilt** and **Azimuth**. - - .. image:: /images/IMG_PVArray-two-axis.png - :align: center - :alt: IMG_PVArray-two-axis.png - - PVWatts does not model self shading for 2-axis tracking. You can adjust the losses to account for those losses. - -**Tilt, degrees** - The array's tilt angle in degrees from horizontal, where zero degrees is a horizontal array, and 90 degrees is a vertical array. The tilt value must be between zero and 90 degrees, inclusive. - - For fixed arrays, as a rule of thumb, system designers sometimes use the location's latitude (shown on the Location and Resource page) as the optimal array tilt angle. The actual tilt angle will vary based on project requirements. You can run a :doc:`parametric analysis <../simulation-options/parametrics>` on tilt to find its optimal value. - - For one-axis tracking, the tilt angle is typically zero for horizontal tracking. - - The effect of the tilt angle depends on the tracking option: - -* **Fixed open rack**, **Fixed roof mount**: The tilt angle is the angle formed between the surface of the array and a horizontal line parallel to the azimuth. An array with an azimuth angle of 180° and a tilt angle of 20° would be tilted from the horizontal at 20° facing south. An array with an azimuth angle of 0° and a tilt angle of 20° would be tilted from the horizontal at 20° facing north. For a horizontal array, use a tilt angle of zero. - -* **1-axis tracking**, **1-axis backtracking**:  The tilt angle is the angle between the axis of rotation and the horizontal. One-axis trackers typically have a tilt angle of zero for a horizontal tracking axis. - -* **2-axis tracking**: The Tilt input is disabled because the tracker sets the tilt and azimuth angle so the array follows the movement of the sun. - -* **Azimuth Axis**: The tilt angle is fixed, and is the angle formed between the surface of the array and a line perpendicular to the bottom edge of the array. - -**Azimuth, degrees** - The azimuth angle in degrees determines the array's east-west orientation, where 0 = North, 90 = East, 180 = South, and 270 = West, regardless of whether the array is in the northern or southern hemisphere. The azimuth value must be greater than or equal to zero and less than 360. - - The effect of the azimuth angle depends on the tracking option: - -* **Fixed open rack**, **Fixed roof mount**: The azimuth angle determines the direction the array faces. North of the equator, the azimuth for a south-facing array is 180 degrees. South of the equator, the azimuth for a north-facing array is 0 degrees. - -* **1-axis tracking**, **1-axis backtracking**: The azimuth angle determines the orientation of the rotation axis. An azimuth of 180 is for a tracker with a North-South rotation axis that rotates from East to West. When the azimuth angle is 180°, the rotation angles reported in the results are negative when the tracker faces east and positive when it faces west. When the azimuth angle is 0°, rotation angles are positive when the tracker faces east and negative when it faces west. - -* **2-axis tracking**: The Azimuth input is disabled because the tracker sets the azimuth angle so the array follows the movement of the sun. - -**Ground coverage ratio (GCR)** - The ratio of the photovoltaic array area to the  ground area occupied by the array. The ground coverage ratio must be a value greater than 0.01 and less than 0.99. - - PVWatts uses the GCR to estimate self-shading losses for the fixed open rack and 1-axis array types, and to determine when to backtrack for the 1-axis backtracking option. The GCR does not apply to the fixed roof mount and 2-axis tracking array types. - - For an array configured in rows of modules, the GCR is the length of the side of one row divided by the distance between the bottom of one row and the bottom of its neighboring row. Increasing the GCR decreases the spacing between rows. - - -System Losses -~~~~~~~~~~~~~ - -Losses account for reduction in performance not explicitly calculated by the PVWatts model. SAM applies the total system losses to the AC power output calculated by the model. You can either enter a total loss value, or have SAM calculate the total loss value from the loss categories. - -**Specify total system loss** - Check this option if you want to specify a single loss value instead of values for each of the categories listed below. - -**Soiling** - Losses due to dust, dirt, and other foreign matter on the surface of the PV module that prevent solar radiation from reaching the cells. Soiling is location- and weather-dependent. There are greater soiling losses in high-traffic, high-pollution areas with infrequent rain. - -**Shading** - Reduction in the incident solar radiation caused by hills, trees, or other objects on the horizon. The default value is 3%. Note that PVWatts accounts for self shading between rows of modules for the fixed open rack and 1-axis tracking array types, so you should not include self-shading in the shading loss for those options. - -**Snow** - Reduction in the system's annual output due to snow covering the array. The default value is zero, assuming either that there is never snow on the array, or that the array is kept clear of snow. - -.. note:: If your weather file includes snow depth data and you enable the snow model, you should set the Snow loss to zero. - -**Mismatch** - Electrical losses due to slight differences caused by manufacturing imperfections between modules in the array that cause the modules to have slightly different current-voltage characteristics. The default value of is 2%. - -**Wiring** - Resistive losses in the DC and AC wires connecting modules, inverters, and other parts of the system. The default value is 2%. - -**Connections** - Resistive losses in electrical connectors in the system. The default value is 0.5%. - -**Light-Induced Degradation** - Effect of the reduction in the array's power during the first few months of its operation caused by light-induced degradation of photovoltaic cells. The default value is 1.5%. - -**Nameplate Rating** - The nameplate rating loss accounts for the accuracy of the manufacturer's nameplate rating. Field measurements of the electrical characteristics of photovoltaic modules in the array may show that they differ from their nameplate rating. A nameplate rating loss of 5% indicates that testing yielded power measurements at STC that were 5% less than the manufacturer's nameplate rating. The default value is 1%. - -**Age** - Effect of weathering of the photovoltaic modules on the array's performance over time. The default value is zero. - -.. note:: If you specify a degradation rate on the :doc:`AC Degradation <../degradation/degradation_ac>` page to represent module degradation, you should set the Age loss to zero. - -**Availability** - Reduction in the system's output cause by scheduled and unscheduled system shutdown for maintenance, grid outages, and other operational factors. The default value is 3%. - -.. note:: If you specify system availability losses to represent operating losses, you should set the Availability loss to zero. - -**Total system losses** - The total loss, either calculated from the loss categories listed above, or equal to the total system loss you specify. - -*Total system losses = 100% × { 1 - [  ( 1 - Soiling ÷ 100% )* - *× ( 1 - Shading ÷ 100% )* - *× ( 1 - Snow ÷ 100% )* - *× ( 1 - Mismatch ÷ 100% )* - *× ( 1 - Wiring ÷ 100% )* - *× ( 1 - Connections ÷ 100% )* - *× ( 1 - Light-induced degradation ÷ 100% )* - *× ( 1 - Nameplate ÷ 100% )* - *× ( 1 - Age ÷ 100% )* - *× ( 1 - Availability ÷ 100% )  ] }* - -Land Area -~~~~~~~~~ -.. include:: /includes/snip_land_area_pv.rst - -Advanced Inputs -~~~~~~~~~~~~~~~ -The advanced inputs provide access to inputs for optional features of PVWatts. - -Albedo -...... - -Albedo is a measure of the amount of sunlight reflected by the ground. Most of the sunlight that reaches the surface of a photovoltaic module comes directly from the sun (direct or beam irradiance) or reflected from clouds or particles in the atmosphere (diffuse irradiance), but a small amount is also reflected from the ground (ground diffuse irradiance), depending on the array's orientation and the position of the sun. SAM uses albedo data to calculate this ground diffuse irradiance incident on the module, and for bifacial modules, to calculate the irradiance incident on the rear side of the module. - -**Use albedo input** - Choose this option to specify a constant albedo value for all time steps of the year. For **Albedo input**, type a value greater than 0 and less than 1. Zero is completely non-relfective, and one is completely reflective. The default value of 0.2 is reasonable for grassy ground. A value of 0.6 would be reasonable for snowy ground. - -**Use albedo from weather file** - Choose this option to use albedo data from the weather file. - - - - -.. note:: For PVWatts, you can only specify a single input albedo value. For the Detailed PV model, you can specify a different albedo value for each month. (The SSC compute module pvwattsv8, the 'albedo' input is an array of 12 monthly values. The SAM user interface sets the 12 values to the constant **Albedo input** value.) - - -.. note:: If your weather file contains missing or invalid albedo data for a given time step, PVWatts automatically assigns a default value of 0.2. If the snow model is enabled and the weather file contains snow depth data, it assigns a default value of 0.6 for time steps with invalid or missing albedo data and valid snow depth data. - -Soiling -....... - -Soiling losses account for reduction in incident solar irradiance caused by dust or other seasonal soiling of the module surface that reduce the radiation incident on the subarray. Soiling losses cause a uniform reduction in the total irradiance incident on each subarray. - -SAM calculates the nominal incident irradiance value for each time step using solar irradiance values from the weather file, and sun and array surface angles. When you specify soiling losses, SAM adjusts the nominal incident irradiance value by each soiling loss percentage that applies to the time step. - - - -.. note:: If you included soiling losses as part of the DC System Losses and are specifying monthly soiling losses, you may want to set the Soiling system DC loss category to zero. - - -.. note:: Soiling losses apply in addition to any shading losses you specify. - -**Monthly soiling losses** - Click **Edit values** to specify a set of monthly soiling losses. To apply a single soiling loss to all months to represent a constant loss throughout the year, in the Edit Values window, type a value for **Enter single value** and then click **Apply**. - - -Shading by Nearby Objects -......................... - -The shading losses represent a reduction of the incident solar irradiance due to external shading of the array caused by nearby objects such as trees and buildings. You can specify time series beam shading losses and a single sky diffuse shading loss or import shading loss data from shade analysis tools or calculators in the Edit Shading window. - -The time series :doc:`results <../pvwatts/pvwatts_results>` show the effect of external shading: SAM displays the shading factor for beam radiation and the plane-of-array (POA) irradiance. The beam and diffuse shading losses that you specify both reduce the POA irradiance. - -SAM offers several options for specifying shading losses. - -* You must choose at least one option. - -* SAM does not prevent you from enabling more than one option even if that results in an unrealistic shading model. Be sure to verify that you have enabled the set of options you intend before running a simulation. - -To enable the external shading: - -#. Click **Edit Shading**. - -#. If you are working with a shading file from PVsyst, Solmetric Suneye, or Solar Pathfinder software, in the Edit Shading window, click the appropriate button under **Import shading data from external tools** to import the file. - -#. If you are using a table to specify shading factors (you can type, import, or paste values into the table), check the appropriate **Enable** box in the Edit Shading window. - -.. note:: For detailed instructions on specifying shading losses, click **Help** in the Edit Shading Data window. - -|IMG_PVShading-EnableDisable| - -.. note:: If you use specify beam and diffuse shading losses, be sure to set the Shading loss to zero. - -Snow -.... - -If you are using a weather file with snow depth data, you can enable the snow model to estimate reduction in the system's output due to snow covering the array. For a description of SAM's snow model, see - -* Ryberg, D.; Freeman, J. (2017). Integration, Validation and Application of a PV Snow Coverage Model in SAM. National Renewable Energy Laboratory. 33 pp. TP-6A20-68705 available along with other technical documentation from the `SAM website `__. - -.. note:: Snow depth data is not available in the NSRDB PSM V3 dataset. It is available in the `NSRDB 1961 - 1990 Archive Data `__. This older data does not represent the best up-to-date data from the NSRDB, but may be useful for testing SAM's snow loss model. - - -The Ryberg (2017) paper cited above includes a United States map of annual average snow loss values that could be used to estimate snow loss using inputs on the Losses page instead of the snow model when snow depth data is not available. - -If you enable the snow model, you may want to set the system losses Snow category to zero. - -The snow model estimates the loss in system output during time steps when the array is covered in snow. It uses snow depth data from the weather file, and for time steps with snow, estimates the percentage of the photovoltaic array that is covered with snow based on the array's tilt angle, plane-of-array irradiance, and ambient temperature. The model assumes that the array is completely covered with snow when the snow depth data indicates a snowfall, and that snow slides off the array as the ambient temperature increases. - -**Estimate snow losses** - Check this option to model snow losses if the weather file on the Location and Resource page includes snow depth data. - - -System Availability -................... - -.. include:: /includes/snip_system_availability.rst - - - -.. |IMG_PVShading-EnableDisable| image:: /images/IMG_PVShading-EnableDisable.png diff --git a/doc/source/includes/snip_revenue_capacity_payments.rst b/doc/source/includes/snip_revenue_capacity_payments.rst index 13d60aa9ca..42c7cad9c2 100644 --- a/doc/source/includes/snip_revenue_capacity_payments.rst +++ b/doc/source/includes/snip_revenue_capacity_payments.rst @@ -1,6 +1,8 @@ Capacity payments are is an annual payment to the project for available capacity. SAM reports the annual capacity payment revenue in the project :doc:`cash flow <../results/cashflow>`. +The capacity payment is either the fixed amount you specify, or the product of the capacity payement ($/MW), system nameplate capacity (MW), and capacity credit (%). + .. note:: If your project does not involve capacity payments, set **Capacity payment amount** to zero. **Capacity basis** diff --git a/doc/source/includes/snip_solar_download.rst b/doc/source/includes/snip_solar_download.rst deleted file mode 100644 index 35e33c3c17..0000000000 --- a/doc/source/includes/snip_solar_download.rst +++ /dev/null @@ -1,134 +0,0 @@ - -SAM can download weather files from the National Solar Radiation Database (NSRDB) Physical Solar Model (PSM) datasets: - -* Type an address and click **Download and add to library** to download TMY (typical meteorological year) data. - -* Check **Advanced download** and click **Download and add to library** to choose from all files available from the NSRDB for your location, including file with subhourly data, files for different years, and files from different datasets. - -.. image:: /images/SS_SolarResource-download.png - :align: center - :alt: SS_SolarResource-download.png - -To download a TMY weather file for a single location: - -#. Replace the text "Type a location name, street address or latitude and longitude" with a street address, city and state or country name, zip code, or latitude longitude pair. For example: - -* Golden, Colorado - -* golden, co - -* 15013 Denver West Parkway, Golden CO 80401 - -* 80401 - -* thimpu, bhutan - -#. Click **Download and add to library**. - -.. note:: For more instructions to download multiple files, see Weather File Download Instructions below. - -SAM converts the address you type to a latitude and longitude pair for the location, and submits that information to the NSRDB along with your email address. If the location is in the region covered by the NSRDB, it returns a weather file in the SAM CSV format, and adds it to your weather file download folder. Otherwise, it displays a message telling you the location is not covered by the NSRDB. - -When you first install SAM, it creates the SAM Downloaded Weather Files folder and assigns it as your weather file download folder. You can change the weather file download folder by clicking **Add/Remove weather file folders**. See :doc:`Folders and Libraries <../weather-data/weather_manage_folders>` for details. - -When the download finishes, SAM displays a prompt asking you if you want to open the weather file download log. This prompt is the indication that the download finished. During the download and before that prompt appears, SAM may become unresponsive. If it does, wait for the prompt to avoid interrupting the download. - -The weather file download log is a text file that SAM creates in your weather file download folder, and serves as a record of all of the files you download from the NSRDB. For each download, it lists the date and time of the request, the information you provided, the URL SAM generated, the name of the file returned by the NSRDB, or error messages it returns if the download fails. This information is useful for troubleshooting weather file download problems. - -.. note:: Downloading multiple weather files from the NSRDB can take a long time. If you download files for multiple locations or years, be prepared to wait for the files to download. The download log file reports the time it takes for each file to download. Download times depend on your internet connection and computer. For a new computer with a fast connection, downloading and processing a single file takes about 10 seconds. - -**One location, Multiple locations** - Choose **One location** to download a weather file for a single location. - - Choose **Multiple locations** to submit a list of locations and download a file or files for each location. For Multiple locations, click **Edit data** to open the Edit Data window where you can enter the list of locations and click **Number of Values** to enter the number of locations in the list. - - .. image:: /images/SS_SolarResource-multiple-locations.png - :align: center - :alt: SS_SolarResource-multiple-locations.png - -**60-minute, 30-minute** - Choose **60-minute** to download weather files with hourly time steps or 8,760 data records. - - Choose **30-minute** to download files with 30-minute time steps or 17,520 data records. Thirty-minute data is not available for the NSRDB SUNY International dataset. - -**Download options** - .. image:: /images/SS_SolarResource-option-list.png - :align: center - :alt: SS_SolarResource-option-list.png - -**Default TMY file** - Download a typical meteorological year weather file for the location or locations you specified. - - Typical year data is appropriate when you are using simulation results for a single year to make cash flow calculations over a multi-year period. - - -**Choose year** - Choose a single year file to download. After you click the Download button, SAM prompts you with a list of available years for each location you requested to choose a year. - - .. image:: /images/SS_SolarResource-choose-year.png - :align: center - :alt: SS_SolarResource-choose-year.png - - The single year option is appropriate when you want to see how the system would perform in a particular year. For example, for a residential or commercial system, if you have measured building load data for a given year, you could use weather data for the same year to see how the system's power output compares to the load. - - If you use both **Choose year** and **Multiple locations**, SAM prompts you for a year for each location. - - SAM queries the NSRDB to generate the list of available years. The list of available years varies between regions. - -**Download files for all years (P50/P90)** - Download a set of single-year files covering the range of historical data (nineteen files for 1998 through 2017 as of October 2018 for PSM data). When you click download, SAM creates a folder in your weather file download folder to store the single year files based on the location address or latitude-longitude pair you typed. It also downloads the typical meteorological year (TMY) file for the location and stores it in your weather file download folder. - - SAM appends an underscore with the year to the file name so that the P50 P90 simulations work correctly. See :doc:`P50/P90 Simulations <../simulation-options/p50p90>` for details. - - If you choose to download files for all years with **Multiple locations**, SAM downloads a set of files for each location, and puts the files for each location in a separate folder. Note that this may take a long time. - -Weather File Download Instructions -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Examples of valid street address or latitude-longitude pairs: - -* golden colorado - -* golden, co - -* 15013 Denver West Parkway, Golden CO 80401 - -* 80401 - -* 39.75, -105.15 - -* Super Market, F-6 Markaz, Islamabad, Pakistan - -* New Delhi, India - -.. note:: When the download finishes, SAM displays a prompt asking you if you want to open the weather file download log. This prompt is the indication that the download finished. During the download and before that prompt appears, SAM may become unresponsive. If it does, wait for the prompt to avoid interrupting the download. - -To download an hourly typical-year (TMY) weather file from the NSRDB (use this option for most situations): - -#. Click **One location**. - -#. Type either a street address or latitude-longitude pair. - -#. Click **60-minute**. - -#. Choose **Default TMY File**. - -#. Click **Download and add to library**. - -To download files for more than one location: - -#. Click **Multiple locations**. - -#. Click **Edit data**. - -#. In the Edit Data window, click **Number of Values** and type the number of locations to create a table with a row for each location. - -#. Type a street address or latitude-longitude pair in the table for each location. - -#. Click **OK**. - -#. Choose a time step, **60-minute** for hourly, or **30-minute** for 30-minute data. - -#. Choose the type of file(s) you want to download as described below. - -#. Click **Download and add to library**. \ No newline at end of file diff --git a/doc/source/includes/snip_weather_data_information.rst b/doc/source/includes/snip_weather_data_information.rst new file mode 100644 index 0000000000..fa207fa414 --- /dev/null +++ b/doc/source/includes/snip_weather_data_information.rst @@ -0,0 +1,39 @@ +The weather data information variables display information about data in the current weather file. + +**Weather File** + The path and name of the weather file SAM will use for simulation. + +**View data** + Display weather file data in the :doc:`time series data viewer <../reference/time_series_viewer>`. + + .. note:: You can also see the data after running a simulation on the Results page :doc:`data tables <../results/data>` and :doc:`time series graphs <../results/timeseries>`. + +Header data is information in the weather file that describes the location and type of data in the file. SAM uses the following information from the header to calculate the sun position during simulations: + +* **Latitude** +* **Longitude** +* **Time zone** +* **Elevation** + +**Time step** is the temporal resolution of the weather file in minutes. + +**Location** and **Data Source** are optional items that provide information about the source of the data that SAM does not use. + +When you add a weather file to the solar resource library, SAM reads weather data from the file and calculates annual values to display for your reference. It does not use these annual values during simulations. + +**Global horizontal, Direct normal (beam), Diffuse horizontal** + The sum of solar irradiance data (W/m \ :sup:`2`\ ) in the weather file converted to kW and divided by 365 days/year. + +**Average temperature** + The sum of temperature data (°C) in the weather file divided by the number of records in the file (8760 for hourly data). + +**Average wind speed** + The sum of wind speed data (m/s) in the weather file divided by the number of records in the file (8760 for hourly data). + +**Maximum snow depth** + If the weather file contains snow depth data, the maximum value of snow depth data (cm) in the weather file. NaN indicates the file does not contain snow depth data. Snow depth data is required for to model snow losses for the Detailed Photovoltaic and PVWatts models. + + .. note:: If your weather file does not contain snow depth data, and you are using the Detailed Photovoltaic model, you can download data from the Soiling Shading Snow page. + +**Annual albedo** + If the weather file contains albedo (ground reflectance) data, the average value of albedo values in the weather file. NaN indicates the file does not contain albedo data. diff --git a/doc/source/index.rst b/doc/source/index.rst index 180ee60780..0ab3aa714f 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -6,7 +6,7 @@ SAM Help ======== -This is the user documentation for the System Advisor Model™ (SAM™), developed by the National Laboratory of the Rockies (NLR). +This is the user documentation for the System Advisor Model™ (SAM™) developed by the National Laboratory of the Rockies (NLR). .. important:: To display SAM Help correctly in the Safari web browser on a Mac, go to Settings, Advanced Settings, and enable **Show features for web developers**. Developer mode is required in Safari to load CSS and Javascript from local files. diff --git a/doc/source/installation-costs/cc_fuel_cell.rst b/doc/source/installation-costs/cc_fuel_cell.rst index 3196137b76..0a8868c55f 100644 --- a/doc/source/installation-costs/cc_fuel_cell.rst +++ b/doc/source/installation-costs/cc_fuel_cell.rst @@ -17,14 +17,14 @@ A direct capital cost represents an expense for a specific piece of equipment or **Module, $/Wdc or $/Unit** You can specify the module cost either in $/Wdc or $/unit: -* Dollars per watt multiplied by **System nameplate capacity** from the :doc:`PV System <../fuel-cell/fuelcell_pv_system>` page, or +* Dollars per watt multiplied by **System nameplate capacity** from the :doc:`PV System <../pvwatts/pvwatts_system_design>` page, or * Dollars per unit, where the number of modules is assumed to be one. **Inverter, $/Wac or $/Unit** For PVWatts, the inverter cost is either dollars per watt AC or DC, or dollars per inverter: -* Dollars per watt DC multiplied by the system nameplate capacity from the :doc:`PV System <../fuel-cell/fuelcell_pv_system>` page, or +* Dollars per watt DC multiplied by the system nameplate capacity from the :doc:`PV System <../pvwatts/pvwatts_system_design>` page, or * Dollars per watt AC multiplied by the system nameplate capacity and divided by the DC to AC Derate Factor on the :doc:`System Design <../pvwatts/pvwatts_system_design>` page, or @@ -44,7 +44,7 @@ The other direct capital cost categories, **Balance of system equipment**, **Ins A fixed cost in dollars. **PV $/Wdc** - A cost proportional to the PV array's DC nameplate capacity, equal to the **System nameplate size on the** on the :doc:`PV System <../fuel-cell/fuelcell_pv_system>` page. + A cost proportional to the PV array's DC nameplate capacity, equal to the **System nameplate size on the** on the :doc:`PV System <../pvwatts/pvwatts_system_design>` page. **Battery $/kW** A cost proportional to the battery's nominal power rating, equal to the **Maximum charge power (AC)** on the :doc:`Battery Storage <../battery-storage/battery_storage>` page. @@ -71,7 +71,7 @@ The five indirect cost categories, **Permitting and environmental studies**, **E A percentage of the **Total direct cost** value shown under Direct Capital costs. **PV $/Wdc** - A cost proportional to the PV array's DC nameplate capacity, equal to the **System nameplate size on the** on the :doc:`PV System <../fuel-cell/fuelcell_pv_system>` page. + A cost proportional to the PV array's DC nameplate capacity, equal to the **System nameplate size on the** on the :doc:`PV System <../pvwatts/pvwatts_system_design>` page. **Battery $/kW** A cost proportional to the battery's nominal power rating, equal to the **Maximum charge power (AC)** on the :doc:`Battery Storage <../battery-storage/battery_storage>` page. diff --git a/doc/source/installation-costs/cc_wind.rst b/doc/source/installation-costs/cc_wind.rst index e4d35425d0..8b8067844e 100644 --- a/doc/source/installation-costs/cc_wind.rst +++ b/doc/source/installation-costs/cc_wind.rst @@ -3,30 +3,13 @@ Wind Installation costs The Wind Installation costs page allows you to specify the costs of a wind power project. For information about sources of wind cost data, see https://sam.nlr.gov/wind.html. -.. include:: ../includes/snip_installation_costs.rst - -Capital Cost Models -~~~~~~~~~~~~~~~~~~~ - -The capital cost models are implementations of NLR cost models that you can use to estimate turbine and balance-of-system (BOS) costs. - -**Land-based installation** - Choose this option to apply capital costs from NLR cost models for land-based wind farms. - -**Offshore installation** - Choose this option to use default values for offshore wind farms. - -**Estimate turbine costs now** - Replace the **Turbine cost** "cost per kW" value with a value from the NLR cost models, and set the "cost per turbine" and "fixed cost" values to zero. The cost estimates include sales tax, so this also sets the sales tax basis to zero. +.. note:: SAM 2025.4.16 is the last version of SAM to include built-in wind capital costs models. -**Go to balance-of-system (BOS) cost model inputs** - Click this button to show the inputs for either the land-based or offshore BOS cost models. To apply a BOS cost from one of the BOS, first populate the inputs for either the land-based or offshore BOS model, and then click **Apply BOS Estimate** to apply the value. + The Land-based Balance-of-system Systems Engineering model (LandBOSSE) is now available as part of the Wind-plant Integrated System Design and Engineering model (WISDEM). For documentation, see https://wisdem.readthedocs.io/en/master/wisdem/landbosse/. -* :ref:`Land Based Balance of System Cost model ` - - -* :ref:`Offshore Balace of System Cost model ` + The Offshore Balance-of-system model is no longer supported. Maness, M.; Maples, B.; Smith, A.; NREL [https://research-hub.nlr.gov/en/publications/nrel-offshore-balance-of-system-model/](Offshore Balance-of-System Model). National Renewable Energy Laboratory, NREL/TP-6A20-66874. +.. include:: ../includes/snip_installation_costs.rst Capital costs ~~~~~~~~~~~~~ @@ -37,10 +20,10 @@ A capital cost represents an expense for a specific piece of equipment or instal For each direct cost category, you can specify the cost in $/kW of wind farm capacity, a fixed cost in $, or a cost per turbine in $/turbine. If you specify more than one cost, for example a foundation cost in both $/kW and $/turbine, SAM adds the values together to calculate the total category cost. -**Turbine Cost** +**Turbine cost** The cost of a single turbine. You can type values in $/kW, $/turbine, fixed amount, or a combination of the three. The total turbine cost is the sum of three values. -**Balance of System cost** +**Balance of system cost** Material, labor, and other costs associated with building turbine foundations for the entire wind farm. You can type values in $/kW, $/turbine, fixed amount, or a combination of the three. The total turbine cost is the sum of three values. **Wind farm capacity** @@ -52,9 +35,9 @@ For each direct cost category, you can specify the cost in $/kW of wind farm cap **Sales tax basis, %** The percentage of total direct cost used to the calculate sales tax amount. - SAM calculates the total sales tax amount by multiplying the sales tax rate from the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page by the sales tax basis on the Installation costs page: + SAM calculates the total sales tax amount by multiplying the sales tax rate from the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page by the sales tax basis on the Installation costs page: -*Total Sales Tax ($) = Sales Tax Rate (%) × Sales Tax Basis (%) × Total Direct Cost ($)* + *Total Sales Tax ($) = Sales Tax Rate (%) × Sales Tax Basis (%) × Total Direct Cost ($)* For an explanation of the effect of sales tax on income tax, see **Sales Tax** on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` topic for the financial model you are using (Residential, Commercial, Single Owner, etc.). @@ -63,106 +46,3 @@ For each direct cost category, you can specify the cost in $/kW of wind farm cap **Total installed cost per kW** The total installed cost divided by the wind farm nameplate capacity. - -.. _landbosmodel: - -Land-Based Balance of System Cost LandBOSSE Model -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The Land-Based Balance of System cost model is an implementation of NLR's LandBOSSE model costs inputs apply only when you choose the **Land-based installation** option under **Capital Cost Models**. SAM applies the results of the BOS cost model to the **Balance of System Cost** input when you click **Apply BOS Estimate**. - -For information and references about the NLR LandBOSSE model in SAM, see the "Wind Cost Data" section of the `Wind page on the SAM website `__. Those materials include: - -* Eberle, A.; Roberts, O.; Key, A.; Bhaskar, P.; Dykes, K. (2019) NLR's Balance-of-System Cost Model for Land-Based Wind. National Renewable Energy Laboratory. NREL/TP-6A20-72201. (`PDF 3.0 MB `__) - -* LandBOSSE in SAM (Tutorial/Documentation). Description of the LandBOSSE implementation in SAM. (`PDF 603 KB `__) - -* `LandBOSSE source code on GitHub `__. - -.. note:: The LandBOSSE cost model runs separately from the SAM simulation. The cost model calculates a cost estimate that you can use for SAM's balance-of-system cost input in the Capital costs section at the top of the Installation costs page. The SAM simulation uses the value of that input in the financial model's cash flow calculations. - -Enable LandBOSSE Model -~~~~~~~~~~~~~~~~~~~~~~ - -The first time you check Enable Land-Based Balance of System Cost Model, SAM installs the NLR LandBOSSE BOS cost model. Once the cost model is installed, when you check the box, SAM enables the BOS model inputs. - -.. note:: It may take a few minutes to install the LandBOSSE model. After the model is installed, it takes a few moments to run, so be prepared to wait after clicking **Enable Land-Based Balance of System Cost Model**, **Calculate BOS**, or **Apply BOS Estimate**. - -Balance of System Model Inputs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To enable these inputs, click **Enable Land-Based Balance of System Cost Model**. - -* For a detailed description of these inputs and instructions for using the LandBOSSE model, see "LandBOSSE in SAM (Tutorial/Documentation)", a description of the LandBOSSE model implementation in SAM. (`PDF 603 KB `__) - -**Interconnect voltage, kV** - The voltage at the interconnection point between the project substation and the interconnecting utility substation. - -**Distance to interconnect, miles** - The distance between the substation and point of interconnection with the grid. - -**Turbine foundation depth, m** - The depth of the turbine foundation. The LandBOSSE model uses costs for a shallow spread-foot foundation design. - -**Turbine rated thrust, N** - The maximum force experienced by the wind turbine under extreme conditions. This affects the foundation cost. - -**Labor cost multiplier** - Multiplier for all labor costs in the model. - -**50-year gust velocity, m/s** - Wind velocity for the extreme 50-year wind gust at the project site. - -**Calculate BOS** - After you have entered values for the model inputs, click **Calculate BOS** to run the model and calculate a balance-of-system cost estimate. It may take a few moments for the model to run. When the model finishes, it populates values under **Balance of System Model Results** and **Balance of System Model Detailed Results**. - - If you want to use the calculated cost estimate for your SAM simulation, click **Apply BOS estimate**. - -Balance of System Model Results -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -After you click **Calculate BOS**, when the LandBOSSE model finishes running, it displays the total BOS cost estimate along with cost details from the model. - -**Total BOS Cost Estimate, $** - The total balance-of-system cost estimate calculated by the LandBOSSE model. - -**BOS Cost Estimate per kW** - The cost estimate in dollars per kW of nameplate capacity. When you click **Apply BOS Estimate**, SAM copies this value to the balance-of-system cost input under Capital costs . - -**Apply BOS Estimate** - Click to replace the balance-of-system "cost per kW" SAM cost input under **Capital costs** with the BOS cost estimate calculated by the LandBOSSE model. This sets the balance-of-system "cost per turbine" and "fixed cost" to zero. - -**Rock Trenching Required** - The percentage of total gravel/rock thermal backfill required to optimize soil thermal resistivity for collector cabling. - -**Contingency** - A percentage of the BOS total costs set aside for unexpected costs that occur during the construction period. - -**Warranty Management** - The cost of personnel to manage contracts during the warranty period and make any required claims as a percentage of the total balance-of-system costs. - -**Sales and Use Tax** - Taxes on projects vary dramatically by counties and states, with some having Renewable Energy Zones without taxes. - -**Overhead** - Percentage of the project budget for overhead costs such as administration, trailer rental, utilities, etc. - -**Profit Margin** - Percentage of the BOS project that is being considered as the project profit margin for the BOS activities. - -**Development Fee** - This is the accumulation of different costs of developing a project such as real estate, wind resource study, interconnection costs, environmental and permitting, etc. This could also include project profits created by the sale of the project from one developer to another developer. - -Balance of System Detailed Results -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The detailed results shows the cost breakdown of results from the LandBOSSE model. For details, see "LandBOSSE in SAM (Tutorial/Documentation)", a description of the LandBOSSE model implementation in SAM. (`PDF 603 KB `__). - -.. _offshorebos: - -Offshore Balance of System Cost Model -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The offshore balance-of-system cost model is for a wind farm installed offshore, in a body of water such as coastal ocean waters or lake. The model calculates a value for the **Balance of System** cost input in $/kW based on the data you provide for the detailed costs. - -For a description of the model and its inputs, see Maness, M.; Maples, B.; Smith, A.; NREL Offshore Balance-of-System Model. National Renewable Energy Laboratory, NREL/TP-6A20-66874. (`PDF 4.7 MB `__). - -After you specify values for the detailed inputs, click **Apply BOS Estimate** to calculate the BOS cost and automatically apply it to the **Balance of System Cost**. \ No newline at end of file diff --git a/doc/source/introduction/technology_options.rst b/doc/source/introduction/technology_options.rst index 8b6b3ba5e6..be94d0d85f 100644 --- a/doc/source/introduction/technology_options.rst +++ b/doc/source/introduction/technology_options.rst @@ -11,21 +11,21 @@ SAM models grid-connected photovoltaic systems that consist of a photovoltaic ar SAM offers three models for photovoltaic systems (see :doc:`Choose Models <../getting-started/choose_models>` for instructions): Detailed Photovoltaic -..................... +--------------------- The :doc:`detailed photovoltaic model <../detailed-photovoltaic-model/pv_overview>` calculates a grid-connected photovoltaic system's electrical output using separate module and inverter models. It requires module and inverter specifications along with information about the number of modules and inverters in the system. You can either provide your own module and inverter specifications from a manufacturer's data sheet, or choose a module and inverter from libraries. The detailed photovoltaic model models the effect of temperature on module performance, and has options for calculating shading and other losses in the system. The model also includes a system sizing calculator to help you determine the number of modules and inverters in the system. Use the detailed photovoltaic model when you have information about the equipment that will be used in the system. PVWatts Model -............. +------------- The :doc:`PVWatts model <../pvwatts/pvwatts>` is an implementation of NLR's popular `online photovoltaic calculator `__. It models a grid-connected photovoltaic system using a few basic inputs to describe the system's nameplate capacity, array orientation and mounting type, and system losses. PVWatts makes internal assumptions about module and inverter characteristics for three types of modules. SAM's implementation of PVWatts includes options for modeling shading that are not available with the online version. Use the PVWatts model for preliminary project analysis before you have information about the type of equipment you plan to use in the system, or for other analyses that require a reasonable estimate of a photovoltaic system's electrical output. High Concentration PV -..................... +--------------------- The :doc:`high concentration photovoltaic <../high-concentration-photovoltaic/hcpv_overview>` model is appropriate for grid-connected photovoltaic systems with high concentration photovoltaic (HCPV) modules. The concentrating photovoltaic model uses separate models to represent the module and inverter. It requires information about the design of the concentrator and efficiency of the cell at different irradiance levels. For the inverter model, you can either use specifications from a manufacturer data sheet, or choose an inverter from a library. @@ -142,25 +142,25 @@ The following table summarizes the three photovoltaic models: Battery Storage ~~~~~~~~~~~~~~~ -SAM's electric battery storage model is available with the Detailed Photovoltaic and Custom Generation Profile models for either :doc:`front-of-meter <../battery-storage/battery_storage_fom>` or :doc:`behind-the-meter <../battery-storage/battery_storage_btm>` applications. The electric battery storage model is also available for standalone batteries. A simplified version of the battery model is available with the PVWatts model. +SAM's electric :doc:`battery storage <../battery-storage/battery_storage>` is available with the Detailed Photovoltaic and Custom Generation Profile models for either front-of-meter (FOM) or behind-the-meter (BTM) applications. The electric battery storage model is also available for standalone batteries. A simplified version of the battery model is available with the PVWatts model. Detailed PV-Battery -................... +------------------- The detailed PV-Battery model couples a grid-connected photovoltaic system to a battery bank, which can be connected to either the DC side of the photovoltaic inverter, or the AC side of the system. The model must be used with a financial model, and is modeled as a behind-the-meter application for the Residential, Commercial, and Third Party Ownership financial models, and a front-of-the-meter application for any of the Power Purchase Agreement (PPA) or Merchant Plant financial models. For behind-the-meter applications, there is an automatic sizing and dispatch option that uses NLR's REopt API. PVWatts-Battery -............... +--------------- The PVWatts-Battery model is a simplified implementation of the PV-Battery model for behind-the-meter applications that is available with the Residential, Commercial, or Third Party Ownership financial models and includes the automatic sizing and dispatch option that uses NLR's REopt API. Custom Generation Profile-Battery -................................. +--------------------------------- The Custom Generation Profile-Battery model couples a grid-connected power system to a battery bank. The power system is represented by a generation profile that can be from a different model or measured from a real system. The model must be used with a financial model, and is modeled as a behind-the-meter application for the Residential, Commercial, and Third Party Ownership financial models, and a front-of-the-meter application for any of the Power Purchase Agreement (PPA) or Merchant Plant financial models. Standalone Battery -.................. +------------------ The standalone battery model is for a battery bank connected to the grid that charges and discharges from the grid. @@ -170,22 +170,22 @@ Hybrid Systems SAM's hybrid system models combine generation profiles of two or more power generation systems with battery storage. PVWatts Wind Battery -.................... +-------------------- Combines the PVWatts, Wind Power, and Standalone Battery models to represent a hybrid system with photovoltaic and wind subsystems. The combined output of the subsystems can deliver power to the grid, battery, or load, depending on the system design. PVWatts Wind Fuel Cell Battery -.............................. +------------------------------ Combines the PVWatts, Wind Power, Fuel Cell, and Standalone Battery models to represent a hybrid system with photovoltaic, wind, and fuel cell subsystems. The combined output of the subsystems can deliver power to the grid, battery, or load, depending on the system design. Photovoltaic Wind Battery -......................... +------------------------- Combines the Detailed Photovoltaic, Wind Power, and Standalone Battery models to represent a hybrid system with photovoltaic and wind subsystems. The combined output of the subsystems can deliver power to the grid, battery, or load, depending on the system design. Custom Generation PVWatts Wind Fuel Cell Battery -................................................ +------------------------------------------------ Combines the Custom Generation Profile, PVWatts, Wind Power, Fuel Cell, and Standalone Battery models to represent a hybrid system with custom generation profile, photovoltaic, fuel cell and wind subsystems. The custom generation profile can represent any type of power generation equipment. The combined output of the subsystems can deliver power to the grid, battery, or load, depending on the system design. @@ -193,12 +193,12 @@ Thermal Storage ~~~~~~~~~~~~~~~ Electric TES -............ +------------ The :doc:`electric thermal energy system <../electric-thermal-energy-storage/etes>` model is for a thermal energy system (TES) that uses grid power as a power source to generate heat. Pumped TES -.......... +---------- The :doc:`pumped thermal energy system <../pumped-thermal-energy-storage/ptes>` model is for a thermal energy system (TES) that uses grid power as a power source to generate heat. @@ -210,37 +210,37 @@ The concentrating solar power (CSP) models are for grid-connected thermal power Note. The Integrated Solar Combined Cycle (ISCC) model was removed in SAM 2020.2.29. The model is still available as part of the Legacy version SAM 2018.11.11. Parabolic Trough (Physical Model) -................................. +--------------------------------- The :doc:`physical trough model <../csp-physical-trough-model/troughphysical_overview>` calculates the electricity delivered to the grid by a parabolic trough solar field that delivers thermal energy to a power block for electricity generation, with an optional thermal energy storage system. The physical trough model characterizes many of the system components from first principles of heat transfer and thermodynamics, rather than from empirical measurements as in the empirical trough system model. While the physical model is more flexible than the empirical model (see below), it adds more uncertainty to performance predictions than the empirical model. Parabolic Trough (Empirical Model) -.................................. +---------------------------------- The :doc:`empirical trough model <../csp-empirical-trough-model/troughempirical_overview>` models the same type of parabolic trough system as the physical trough model, but uses a set of curve-fit equations derived from regression analysis of data measured from the SEGS projects in the southwestern United States, so you are limited to modeling systems composed of components for which there is measured data. The model is based on Excelergy, originally developed for internal use at at the National Laboratory of the Rockies. Molten Salt Power Tower -....................... +----------------------- A :doc:`molten salt power tower <../csp-power-tower-molten-salt/mspt_overview>` system (also called central receiver system) consists of a heliostat field, tower and receiver, power block, and optional storage system. The field of flat, sun-tracking mirrors called heliostats focus direct normal solar radiation onto a receiver at the top of the tower, where a molten salt is heated and pumped to the power block. The power block generates steam that drives a conventional steam turbine and generator to convert the thermal energy to electricity. Direct Steam Power Tower -........................ +------------------------ The Direct Steam Power Tower model is not included in versions released after November 2020. The model is available in the legacy SAM 2020.2.29 version, which you can download from the SAM `website download page `__. Linear Fresnel Molten Salt -.......................... +-------------------------- A :doc:`molten salt linear Fresnel <../csp-linear-fresnel-molten-salt/mslf_overview>` system consists of a field of slightly curved or flat Fresnel reflectors that focus light on an absorber in the focal plane above the reflector. The absorber circulates a heat transfer fluid that transfers heat to a power block. The system may include thermal storage. Linear Fresnel Direct Steam -........................... +--------------------------- A :doc:`direct steam linear Fresnel <../csp-linear-fresnel-direct-steam/dslf_overview>` system consists of a field of slightly curved or flat Fresnel reflectors that focus light on an absorber in the focal plane above the reflector. Steam is used as the heat transfer fluid throughout the system. The system may not include thermal storage. CSP Generic Model -................. +----------------- The :doc:`CSP generic model <../csp-generic-solar/gss_overview>` model allows you to model a system that consists of a solar field, power block with a conventional steam turbine, and optional thermal energy storage system. The model represents the solar field using a set of optical efficiency values for different sun angles and can be used for any solar technology that uses solar energy to generate steam for electric power generation. @@ -250,22 +250,22 @@ Industrial Process Heat The industrial process heat models are modified versions of CSP models with no power cycle that can be used to model thermal applications. IPH Power Tower Molten Salt -........................... +--------------------------- The :doc:`IPH power tower molten salt <../iph-parabolic-trough/iph_trough>` model is a version of the CSP molten salt power tower model with no power cycle and modifications for process heat applications. IPH Parabolic Trough Physical -............................. +----------------------------- The :doc:`IPH parabolic trough <../iph-parabolic-trough/iph_trough>` model is a version of the CSP physical parabolic trough model with no power cycle and modifications for process heat applications. IPH Linear Fresnel Direct Steam -............................... +------------------------------- The :doc:`IPH linear direct steam <../iph-linear-fresnel-direct-steam/iph_linear_ds>` model is for a linear collector using direct steam with no power cycle and modifications for process heat applications. IPH Linear Fresnel Molten Salt -.............................. +------------------------------ The :doc:`IPH linear molten salt <../iph-linear-fresnel-direct-steam/iph_linear_ds>` model is for a linear collector using molten salt with no power cycle and modifications for process heat applications. @@ -275,12 +275,12 @@ Marine Energy Marine energy systems convert ocean wave or tidal energy to electrictiy. Wave Energy -........... +----------- The :doc:`marine energy wave <../marine-energy-wave/me_wave>` model is for a system that uses a wave energy converter (WEC) to convert the energy of ocean waves into electricity Tidal Energy -............ +------------ The :doc:`marine energy tidal <../marine-energy-tidal/me_tidal>` model is for a system that uses a tidal energy converter (TEC) to convert the energy of ocean tides into electricity. diff --git a/doc/source/iph-linear-fresnel-direct-steam/iph_linear_ds_location_and_resource.rst b/doc/source/iph-linear-fresnel-direct-steam/iph_linear_ds_location_and_resource.rst index 2b0a4db039..20eeae2018 100644 --- a/doc/source/iph-linear-fresnel-direct-steam/iph_linear_ds_location_and_resource.rst +++ b/doc/source/iph-linear-fresnel-direct-steam/iph_linear_ds_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's IPH models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/iph-linear-fresnel-molten-salt/iph_mslf_location_and_resource.rst b/doc/source/iph-linear-fresnel-molten-salt/iph_mslf_location_and_resource.rst index 2b0a4db039..20eeae2018 100644 --- a/doc/source/iph-linear-fresnel-molten-salt/iph_mslf_location_and_resource.rst +++ b/doc/source/iph-linear-fresnel-molten-salt/iph_mslf_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's IPH models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/iph-parabolic-trough/iph_trough_location_and_resource.rst b/doc/source/iph-parabolic-trough/iph_trough_location_and_resource.rst index 2b0a4db039..20eeae2018 100644 --- a/doc/source/iph-parabolic-trough/iph_trough_location_and_resource.rst +++ b/doc/source/iph-parabolic-trough/iph_trough_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's IPH models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/iph-power-tower-molten-salt/iph_mspt_location_and_resource.rst b/doc/source/iph-power-tower-molten-salt/iph_mspt_location_and_resource.rst index 2b0a4db039..20eeae2018 100644 --- a/doc/source/iph-power-tower-molten-salt/iph_mspt_location_and_resource.rst +++ b/doc/source/iph-power-tower-molten-salt/iph_mspt_location_and_resource.rst @@ -3,3 +3,19 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +.. note:: SAM's IPH models assume that each DNI value in the weather file represents the average irradiance over the time step, and calculate sun angles for the midpoint of the time step. For hourly weather files from the NSRDB, the irradiance data for each time step is measured instantaneously at the time indicated by the minute column. For hourly data, minute = 30, so the irradiance data is measured at midpoint of each hour. For subhourly data, the irradiance data is measured at the beginning of each time step. As a result, if you use an NSRDB weather file with a CSP model with subhourly data, the sun angle for each time step will be for a different time than the time for the instantaneous irradiance values. See :doc:`Time Convention and Sun Position <../weather-data/weather_time_convention>` for additional details. + +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/iph-power-tower-molten-salt/iph_mspt_system_design.rst b/doc/source/iph-power-tower-molten-salt/iph_mspt_system_design.rst index 6829db0c5d..ddd6c5a15f 100644 --- a/doc/source/iph-power-tower-molten-salt/iph_mspt_system_design.rst +++ b/doc/source/iph-power-tower-molten-salt/iph_mspt_system_design.rst @@ -3,13 +3,9 @@ System Design The System Design page shows inputs for design point parameters that determine the system's nameplate capacity. Use the System Design inputs to define the nominal ratings of the system, and then specify details for each part of the system on the appropriate input pages. - - - .. note:: All of the system design inputs are nominal values, or values at the system's design point. SAM calculates actual values during simulation and reports them in the :doc:`results <../getting-started/results_page>`. - -.. note:: When you change the value of the following input variables, you should optimize the field geometry on the :doc:`Heliostat Field ` page to be sure that the solar field geometry (number and position of heliostats, tower height, and receiver height and aspect ratio) is appropriate for the new value: **Design point DNI**, **Solar multiple**, **Design turbine gross output**, **Cycle thermal efficiency**. + When you change the value of the following input variables, you should optimize the field geometry on the :doc:`Heliostat Field ` page to be sure that the solar field geometry (number and position of heliostats, tower height, and receiver height and aspect ratio) is appropriate for the new value: **Design point DNI**, **Solar multiple**, **Design turbine gross output**, **Cycle thermal efficiency**. Heliostat Field ~~~~~~~~~~~~~~~ diff --git a/doc/source/operating-costs/oc_battery.rst b/doc/source/operating-costs/oc_battery.rst index aae26aebbc..a3dc222c51 100644 --- a/doc/source/operating-costs/oc_battery.rst +++ b/doc/source/operating-costs/oc_battery.rst @@ -43,5 +43,6 @@ Land Lease costs Using Annual Schedules to Specify Operating costs in Specific Years ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. include:: ../includes/snip_o_and_m_periodic_costs.rst diff --git a/doc/source/operating-costs/oc_fuel_cell.rst b/doc/source/operating-costs/oc_fuel_cell.rst index 0fc05dd050..688ba1a60b 100644 --- a/doc/source/operating-costs/oc_fuel_cell.rst +++ b/doc/source/operating-costs/oc_fuel_cell.rst @@ -10,12 +10,12 @@ Operating costs are annual expenditures on equipment and services that occur aft For expenses such as component replacements that occur in particular years, you can use an :ref:`annual schedule ` to assign costs to individual years. PV -.. +~~ The PV operating costs account for the cost of operating and maintaining the photovoltaic system, including modules, inverters, and balance-of-system components. **Capacity** - The nominal capacity of the photovoltaic array in DC kilowatts from the :doc:`PV System <../fuel-cell/fuelcell_pv_system>` page . + The nominal capacity of the photovoltaic array in DC kilowatts from the :doc:`PV System <../pvwatts/pvwatts_system_design>` page . **Fixed annual cost, $/yr** A fixed annual cost that applied to each year in the project cash flow to account for photovoltaic system operating costs. @@ -27,7 +27,7 @@ The PV operating costs account for the cost of operating and maintaining the pho A variable annual cost based on the annual AC generation of the photovoltaic system, not including energy discharged by the battery or generated by the fuel cell. Battery -....... +~~~~~~~ Battery operating costs account for the cost of operating and maintaining equipment associated with the battery, such for maintaining battery cells, control equipment, and wiring. It may also include HVAC equipment for heating and cooling the battery environment, and battery replacements. @@ -49,7 +49,7 @@ Battery operating costs account for the cost of operating and maintaining equipm .. note:: To include battery replacements costs in your analysis, be sure to choose a battery replacement option on the Battery Storage page. Fuel Cell -......... +~~~~~~~~~ Fuel cell operating costs account for costs associated with operating and maintaining fuel cell equipment. @@ -74,7 +74,7 @@ Fuel cell operating costs account for costs associated with operating and mainta The cost per million British thermal units or thousand cubic feet for fuel to power the fuel cell. When you enter the cost in $/MCf, SAM uses the conversion factor 1 MMBtu = 1.037 MCf to convert the cost to $/MMBtu. SAM also uses the conversion factor 1 MWh = 3.413 MMBtu. Escalation Rate -............... +~~~~~~~~~~~~~~~ For each operating cost category, you can specify an optional annual **Escalation Rate** to represent an expected annual increase or decrease in operating cost above the annual inflation rate specified on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page. @@ -82,11 +82,13 @@ Specify an escalation rate of zero for an operating cost that increases annually Land Lease costs ~~~~~~~~~~~~~~~~ + .. include:: ../includes/snip_operating_cost_land_lease.rst .. _oc-fuel-cell-annualschedule: Using Annual Schedules to Specify Operating costs in Specific Years ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. include:: ../includes/snip_o_and_m_periodic_costs.rst diff --git a/doc/source/operating-costs/oc_operating.rst b/doc/source/operating-costs/oc_operating.rst index dfbc0b9807..2c20c5f888 100644 --- a/doc/source/operating-costs/oc_operating.rst +++ b/doc/source/operating-costs/oc_operating.rst @@ -16,5 +16,6 @@ Land Lease costs Using Annual Schedules to Specify Operating costs in Specific Years ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. include:: ../includes/snip_o_and_m_periodic_costs.rst diff --git a/doc/source/operating-costs/oc_pv-battery.rst b/doc/source/operating-costs/oc_pv-battery.rst index c8a0205aee..0906801e8d 100644 --- a/doc/source/operating-costs/oc_pv-battery.rst +++ b/doc/source/operating-costs/oc_pv-battery.rst @@ -10,7 +10,7 @@ Operating costs are annual expenditures on equipment and services that occur aft For expenses such as component replacements that occur in particular years, you can use an :ref:`annual schedule ` to assign costs to individual years. PV -.. +~~ The PV operating costs account for the cost of operating and maintaining the photovoltaic system, including modules, inverters, and balance-of-system components. @@ -27,7 +27,7 @@ The PV operating costs account for the cost of operating and maintaining the pho A variable annual cost based on the annual AC generation of the photovoltaic system, not including energy discharged by the battery or generated by the fuel cell. Battery -....... +~~~~~~~ Battery operating costs account for the cost of operating and maintaining equipment associated with the battery, such for maintaining battery cells, control equipment, and wiring. It may also include HVAC equipment for heating and cooling the battery environment, and battery replacements. @@ -49,7 +49,7 @@ Battery operating costs account for the cost of operating and maintaining equipm .. note:: To include battery replacements costs in your analysis, be sure to choose a battery replacement option on the Battery Storage page. Escalation Rate -............... +~~~~~~~~~~~~~~~ For each operating cost category, you can specify an optional annual **Escalation Rate** to represent an expected annual increase or decrease in operating cost above the annual inflation rate specified on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page. @@ -63,5 +63,6 @@ Land Lease costs Using Annual Schedules to Specify Operating costs in Specific Years ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .. include:: ../includes/snip_o_and_m_periodic_costs.rst diff --git a/doc/source/pumped-thermal-energy-storage/ptes_location_and_resource.rst b/doc/source/pumped-thermal-energy-storage/ptes_location_and_resource.rst index 2b0a4db039..1e33eeba55 100644 --- a/doc/source/pumped-thermal-energy-storage/ptes_location_and_resource.rst +++ b/doc/source/pumped-thermal-energy-storage/ptes_location_and_resource.rst @@ -3,3 +3,17 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst \ No newline at end of file diff --git a/doc/source/pvwatts/pvwatts.rst b/doc/source/pvwatts/pvwatts.rst index 0894aee93c..0f886aa664 100644 --- a/doc/source/pvwatts/pvwatts.rst +++ b/doc/source/pvwatts/pvwatts.rst @@ -1,7 +1,7 @@ PVWatts ======= -SAM's PVWatts model uses the same underlying code as NLR's online `PVWatts® Calculator `__. SAM has the following features that are not available in the online calculator: +SAM's PVWatts model uses the same underlying code as NLR's online PVWatts® Calculator (https://pvwatts.nlr.gov). SAM has the following features that are not available in the online calculator: * You can choose a weather file on the :doc:`Location and Resource ` page. The online calculator requires you to use weather data from an internal database. @@ -36,7 +36,7 @@ Basic steps to run PVWatts: About PVWatts Versions ~~~~~~~~~~~~~~~~~~~~~~ -The current version of PVWatts is Version 8 for SAM, the online `PVWatts Calculator `__`® `__ , and the `PVWatts Web API `__ available from the NLR Developer Network. Differences in results between SAM's implementation of PVWatts and the online calculator and API may be caused by different weather data or by the differences between these versions. +The current version of PVWatts is Version 8 for SAM, the online PVWatts® Calculator (https://pvwatts.nlr.gov), and the PVWatts Web API (https://developer.nlr.gov/docs/solar/pvwatts/) available from the NLR Developer Network. Differences in results between SAM's implementation of PVWatts and the online calculator and API may be caused by different weather data or by the differences between these versions. The following lists PVWatts versions in different versions of SAM. All versions of PVWatts are available in the `SAM Software Development Kit (SDK) `__ and `PySAM `__. diff --git a/doc/source/pvwatts/pvwatts_location_and_resource.rst b/doc/source/pvwatts/pvwatts_location_and_resource.rst index 2b0a4db039..036cc77037 100644 --- a/doc/source/pvwatts/pvwatts_location_and_resource.rst +++ b/doc/source/pvwatts/pvwatts_location_and_resource.rst @@ -3,3 +3,17 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst diff --git a/doc/source/pvwatts/pvwatts_system_design.rst b/doc/source/pvwatts/pvwatts_system_design.rst index 5e02fa7e60..f4067d8aa4 100644 --- a/doc/source/pvwatts/pvwatts_system_design.rst +++ b/doc/source/pvwatts/pvwatts_system_design.rst @@ -1,37 +1,299 @@ System Design ============= -.. include:: ../includes/snip_pvwatts_system_design.rst +The inputs on the System Design page describe the physical characteristics of the photovoltaic system. You only need to provide basic information about the system. PVWatts makes assumptions about modules, inverter, and other parts of the system so you do not need to provide detailed information about those parts of the system. -Battery Bank -~~~~~~~~~~~~ -When you :doc:`choose <../getting-started/choose_models>` the PV-Watts Battery model, you can model a behind-the-meter AC-coupled battery bank designed reduce a residential or commercial building's electricity bill by minimizing grid power consumption. +.. note:: SAM 2025.4.16 is the last version of SAM to use a simplified version of the battery model for PVWatts-Battery configurations. Newer versions of SAM use the full battery model for PVWatts-Battery configurations to allow the full range of dispatch options for both front-of-meter (FOM) and behind-the-meter (BTM) batteries. -.. note:: To model a battery bank for a photovoltaic system with one of the PPA financial models, or for battery model with more features, use the :doc:`detailed PV-battery model <../battery-storage/battery_storage>`. The PVWatts-battery model is a simplified version of the detailed model. +System Parameters +~~~~~~~~~~~~~~~~~ -**Battery capacity, kWh** - The size of the battery bank in kilowatt-hours. +The system inputs define the size of the system, losses, and the array orientation. -**Battery power, kW** - The battery bank's maximum power output in kilowatts. +**System nameplate capacity, kWdc** + The DC system capacity is the DC (direct current) power rating of the photovoltaic array in kilowatts (kW) at standard test conditions (STC). PVWatts can model any size of array, from residential rooftop systems to large ground-mounted power generation systems. -**Battery chemistry** - The type of battery. The PVWatts battery model can model lead acid (VRLA) and Lithium-ion (NMC) batteries. For more battery chemistry options, use the :doc:`detailed photovoltaic model <../detailed-photovoltaic-model/pv_overview>` instead of the PVWatts model. +**Module type** + The type of modules in the system. If you do not have information about the modules in the system, use the default standard module type. -**Battery dispatch** -* Choose **Peak Shaving (look ahead)** to discharge the battery each day based on the next day's hour of peak grid consumption, determined from next day's load and generation profile. + .. list-table:: + :width: 100% + :align: center + :header-rows: 1 + + * - Module Type + - Approximate Nominal Efficiency + - Module Cover + - Temperature Coefficient of Power + - Fill Factor (for self-shading) + * - Standard (crystalline Silicon) + - 19% + - Anti-reflective glass + - -0.37 %/°C + - 77.8% + * - Premium (crystalline Silicon) + - 21% + - Anti-reflective glass + - -0.35 %/°C + - 78.0% + * - Thin film + - 18% + - Anti-reflective glass + - -0.32 %/°C + - 77.7% -* Choose **Peak Shaving (look behind)** to dispatch the battery each day based on the previous day's hour of peak grid consumption. + .. note:: The premium module type has a higher efficiency at Standard Operating Conditions (STC) than the standard and thin film module types. However, under different irradiance and weather conditions, the premium module type may operate at a lower efficiency than the standard or thin film type. For this reason, if you compare two systems that are identical except for the module type, you may find that the total annual or monthly output is slightly higher for the standard module type than the premium or thin film type. -* Choose **Custom Dispatch** to input a time series array indicating how to charge or discharge the battery. See below for details + Note that a system with a given nameplate capacity in kW and premium modules requires less area than a system with the same capacity and standard or thin film modules. If space for the array is limited, you may be able to design a higher capacity system using premium modules. -Custom Dispatch -............... + STC is defined as 1000 W/m² solar irradiance, 25°C cell temperature, and air mass of 1.5. For time steps with solar irradiance ranges of about 400 to 600 W/m², the  premium module's efficiency may be less than the standard module. -When you choose **Custom Dispatch**, click **Edit data** to open the :doc:`Edit Array <../window-reference/win_edit_array>` window and specify a charge or discharge power value for each simulation time step: To discharge in a given time step, use a positive value in kW; to charge in a given time step, usea negative kW value. +**Module is bifacial** + Check this box to enable the bifacial model and its inputs. -Optimal Sizing and Dispatch from REopt -...................................... + For an array with bifacial modules, SAM calculates the plane-of-array irradiance on the rear side of the array in each time step based on the available solar resource, position of the sun, and array orientation and considering ground reflectance (albedo) and spacing between rows of modules. It then multiplies the rear-side irradiance by a module bifaciality factor of 0.65 to calculate the total irradiance available to the array. -.. include:: ../includes/snip_battery_reopt.rst + .. note:: For PVWatts, SAM assumes a bifaciality factor of 0.7, transmission factor of 0.013, and ground clearance height of 1 meter. You can adjust these parameters for the Detailed PV model, but not for PVWatts. +**DC to AC ratio** + The DC to AC size ratio is the ratio of the inverter's AC rated size to the array's DC rated size. Increasing the ratio increases the system's output over the year, but also increases the array's cost. The default value is 1.10, which means that a 4 kW system size would be for an array with a 4 DC kW nameplate size at standard test conditions (STC) and an inverter with a 3.63 AC kW nameplate size. + + For a system with a high DC to AC size ratio, during times when the array's DC power output exceeds the inverter's rated DC input size, the inverter limits the array's power output by increasing the DC operating voltage, which moves the array's operating point down its current-voltage (I-V) curve. PVWatts models this effect by limiting the inverter's power output to its rated AC size. + + The default value of 1.10 is reasonable for most systems. A typical range is 1.10 to 1.25, although some large-scale systems have ratios of as high as 1.50. The optimal value depends on the system's location, array orientation, and module cost. + +**Rated inverter size, kWac** + The nameplate capacity of inverters in the system. + + *Rated Inverter Size (kWac) = System Nameplate Capacity (kWdc) ÷ DC to AC Ratio* + +**Inverter efficiency** + The inverter's nominal rated DC-to-AC conversion efficiency, defined as the inverter's rated AC power in kilowatts divided by its rated DC power in kilowatts expressed as a percentage. The default value is 96%. + + This is a nominal value. PVWatts calculates the inverter's hourly operating efficiency based on the nominal efficiency and an efficiency curve. + +**Estimated total module area, m²** + This estimate of the total module area is used for the land area estimate under Land Area below. This represents the total surface area of the modules, regardless of the tilt angle. The approximate nominal efficiency depends on the module type as shown in the table above. + +*Estimated Total Module Area (m²) = System Nameplate Capacity (kW) ÷ Approximate Nominal Efficiency* + +Orientation and Tracking +~~~~~~~~~~~~~~~~~~~~~~~~ + +**Array type** + The array type describes whether the PV modules in the array are fixed, or whether they move to track the movement of the sun across the sky with one or two axes of rotation. The default value is for a fixed array with no tracking. + +**Fixed open rack and roof mount** + The array is fixed at the tilt and azimuth angles defined by the values of **Tilt** and **Azimuth** and does not follow the sun's movement. + + .. image:: /images/IMG_PVArray-fixed-tilt.png + :align: center + :alt: IMG_PVArray-fixed-tilt.png + + For systems with fixed arrays, you can choose between an open rack or a roof mount. + +**Fixed open rack** is appropriate for ground-mounted systems. The open rack option assumes that air flows freely around the array, helping to cool the modules and reduce cell operating temperatures. (The array's output increases as the cell temperature decreases for at a given incident solar irradiance.) The open rack option also assumes that modules are arranged in rows and uses the ground coverage ratio (GCR) to estimate irradiance losses due to self shading caused when modules in neighboring rows cause shadows on the array. + +**Fixed roof mount** is typical of residential installations where modules are attached to the roof surface with standoffs that providing limited air flow between the module back and roof surface (typically between two and six inches). The roof mount option assumes that there is no self shading between modules. + +**1-axis tracking and 1-axis backtracking** + The array is fixed at the angle from the horizontal defined by the value of **Tilt** and rotates about the tilted axis from east in the morning to west in the evening to track the daily movement of the sun across the sky. **Azimuth** determines the array's orientation with respect to a line perpendicular to the equator. + + .. image:: /images/IMG_PVArray-one-axis.png + :align: center + :alt: IMG_PVArray-one-axis.png + + For **1-axis tracking**, PVWatts models self shading based on the ground coverage ratio (GCR). + + For **1-axis backtracking**, PVWatts assumes that there is no self shading because the trackers rotate modules to avoid it. Backtracking is a tracking algorithm that rotates the array toward the horizontal during early morning and late evening hours to reduce the effect of self shading. The one-axis tracking algorithm assumes a rotation limit of ±45 degrees from the horizontal. + +**2-axis tracking** + The array rotates from east in the morning to west in the evening to track the daily movement of the sun across the sky, and north-south to track the sun's seasonal movement throughout the year. For two-axis tracking, SAM ignores the values of **Tilt** and **Azimuth**. + + .. image:: /images/IMG_PVArray-two-axis.png + :align: center + :alt: IMG_PVArray-two-axis.png + + PVWatts does not model self shading for 2-axis tracking. You can adjust the losses to account for those losses. + +**Tilt, degrees** + The array's tilt angle in degrees from horizontal, where zero degrees is a horizontal array, and 90 degrees is a vertical array. The tilt value must be between zero and 90 degrees, inclusive. + + For fixed arrays, as a rule of thumb, system designers sometimes use the location's latitude (shown on the Location and Resource page) as the optimal array tilt angle. The actual tilt angle will vary based on project requirements. You can run a :doc:`parametric analysis <../simulation-options/parametrics>` on tilt to find its optimal value. + + For one-axis tracking, the tilt angle is typically zero for horizontal tracking. + + The effect of the tilt angle depends on the tracking option: + +* **Fixed open rack**, **Fixed roof mount**: The tilt angle is the angle formed between the surface of the array and a horizontal line parallel to the azimuth. An array with an azimuth angle of 180° and a tilt angle of 20° would be tilted from the horizontal at 20° facing south. An array with an azimuth angle of 0° and a tilt angle of 20° would be tilted from the horizontal at 20° facing north. For a horizontal array, use a tilt angle of zero. + +* **1-axis tracking**, **1-axis backtracking**: The tilt angle is the angle between the axis of rotation and the horizontal. One-axis trackers typically have a tilt angle of zero for a horizontal tracking axis. + +* **2-axis tracking**: The Tilt input is disabled because the tracker sets the tilt and azimuth angle so the array follows the movement of the sun. + +* **Azimuth Axis**: The tilt angle is fixed, and is the angle formed between the surface of the array and a line perpendicular to the bottom edge of the array. + +**Azimuth, degrees** + The azimuth angle in degrees determines the array's east-west orientation, where 0 = North, 90 = East, 180 = South, and 270 = West, regardless of whether the array is in the northern or southern hemisphere. The azimuth value must be greater than or equal to zero and less than 360. + + The effect of the azimuth angle depends on the tracking option: + +* **Fixed open rack**, **Fixed roof mount**: The azimuth angle determines the direction the array faces. North of the equator, the azimuth for a south-facing array is 180 degrees. South of the equator, the azimuth for a north-facing array is 0 degrees. + +* **1-axis tracking**, **1-axis backtracking**: The azimuth angle determines the orientation of the rotation axis. An azimuth of 180 is for a tracker with a North-South rotation axis that rotates from East to West. When the azimuth angle is 180°, the rotation angles reported in the results are negative when the tracker faces east and positive when it faces west. When the azimuth angle is 0°, rotation angles are positive when the tracker faces east and negative when it faces west. + +* **2-axis tracking**: The Azimuth input is disabled because the tracker sets the azimuth angle so the array follows the movement of the sun. + +**Ground coverage ratio (GCR)** + The ratio of the photovoltaic array area to the  ground area occupied by the array. The ground coverage ratio must be a value greater than 0.01 and less than 0.99. + + PVWatts uses the GCR to estimate self-shading losses for the fixed open rack and 1-axis array types, and to determine when to backtrack for the 1-axis backtracking option. The GCR does not apply to the fixed roof mount and 2-axis tracking array types. + + For an array configured in rows of modules, the GCR is the length of the side of one row divided by the distance between the bottom of one row and the bottom of its neighboring row. Increasing the GCR decreases the spacing between rows. + +System Losses +~~~~~~~~~~~~~ + +Losses account for reduction in performance not explicitly calculated by the PVWatts model. SAM applies the total system losses to the AC power output calculated by the model. You can either enter a total loss value, or have SAM calculate the total loss value from the loss categories. + +**Specify total system loss** + Check this option if you want to specify a single loss value instead of values for each of the categories listed below. + +**Soiling** + Losses due to dust, dirt, and other foreign matter on the surface of the PV module that prevent solar radiation from reaching the cells. Soiling is location- and weather-dependent. There are greater soiling losses in high-traffic, high-pollution areas with infrequent rain. + +**Shading** + Reduction in the incident solar radiation caused by hills, trees, or other objects on the horizon. The default value is 3%. Note that PVWatts accounts for self shading between rows of modules for the fixed open rack and 1-axis tracking array types, so you should not include self-shading in the shading loss for those options. + +**Snow** + Reduction in the system's annual output due to snow covering the array. The default value is zero, assuming either that there is never snow on the array, or that the array is kept clear of snow. + + .. note:: If your weather file includes snow depth data and you enable the snow model, you should set the Snow loss to zero. + +**Mismatch** + Electrical losses due to slight differences caused by manufacturing imperfections between modules in the array that cause the modules to have slightly different current-voltage characteristics. The default value of is 2%. + +**Wiring** + Resistive losses in the DC and AC wires connecting modules, inverters, and other parts of the system. The default value is 2%. + +**Connections** + Resistive losses in electrical connectors in the system. The default value is 0.5%. + +**Light-Induced Degradation** + Effect of the reduction in the array's power during the first few months of its operation caused by light-induced degradation of photovoltaic cells. The default value is 1.5%. + +**Nameplate Rating** + The nameplate rating loss accounts for the accuracy of the manufacturer's nameplate rating. Field measurements of the electrical characteristics of photovoltaic modules in the array may show that they differ from their nameplate rating. A nameplate rating loss of 5% indicates that testing yielded power measurements at STC that were 5% less than the manufacturer's nameplate rating. The default value is 1%. + +**Age** + Effect of weathering of the photovoltaic modules on the array's performance over time. The default value is zero. + + .. note:: If you specify a degradation rate on the :doc:`AC Degradation <../degradation/degradation_ac>` page to represent module degradation, you should set the Age loss to zero. + +**Availability** + Reduction in the system's output cause by scheduled and unscheduled system shutdown for maintenance, grid outages, and other operational factors. The default value is 3%. + + .. note:: If you specify system availability losses to represent operating losses, you should set the Availability loss to zero. + +**Total system losses** + The total loss, either calculated from the loss categories listed above, or equal to the total system loss you specify. + + *Total system losses = 100% × { 1 - [  ( 1 - Soiling ÷ 100% )* + *× ( 1 - Shading ÷ 100% )* + *× ( 1 - Snow ÷ 100% )* + *× ( 1 - Mismatch ÷ 100% )* + *× ( 1 - Wiring ÷ 100% )* + *× ( 1 - Connections ÷ 100% )* + *× ( 1 - Light-induced degradation ÷ 100% )* + *× ( 1 - Nameplate ÷ 100% )* + *× ( 1 - Age ÷ 100% )* + *× ( 1 - Availability ÷ 100% )  ] }* + +Land Area +~~~~~~~~~ +.. include:: /includes/snip_land_area_pv.rst + +Advanced Inputs +~~~~~~~~~~~~~~~ +The advanced inputs provide access to inputs for optional features of PVWatts. + +Albedo +------ + +Albedo is a measure of the amount of sunlight reflected by the ground. Most of the sunlight that reaches the surface of a photovoltaic module comes directly from the sun (direct or beam irradiance) or reflected from clouds or particles in the atmosphere (diffuse irradiance), but a small amount is also reflected from the ground (ground diffuse irradiance), depending on the array's orientation and the position of the sun. SAM uses albedo data to calculate this ground diffuse irradiance incident on the module, and for bifacial modules, to calculate the irradiance incident on the rear side of the module. + +**Use albedo input** + Choose this option to specify a constant albedo value for all time steps of the year. For **Albedo input**, type a value greater than 0 and less than 1. Zero is completely non-relfective, and one is completely reflective. The default value of 0.2 is reasonable for grassy ground. A value of 0.6 would be reasonable for snowy ground. + +**Use albedo from weather file** + Choose this option to use albedo data from the weather file. + + .. note:: For PVWatts, you can only specify a single input albedo value. For the Detailed PV model, you can specify a different albedo value for each month. (The SSC compute module pvwattsv8, the 'albedo' input is an array of 12 monthly values. The SAM user interface sets the 12 values to the constant **Albedo input** value.) + + If your weather file contains missing or invalid albedo data for a given time step, PVWatts automatically assigns a default value of 0.2. If the snow model is enabled and the weather file contains snow depth data, it assigns a default value of 0.6 for time steps with invalid or missing albedo data and valid snow depth data. + +Soiling +------- + +Soiling losses account for reduction in incident solar irradiance caused by dust or other seasonal soiling of the module surface that reduce the radiation incident on the subarray. Soiling losses cause a uniform reduction in the total irradiance incident on each subarray. + +SAM calculates the nominal incident irradiance value for each time step using solar irradiance values from the weather file, and sun and array surface angles. When you specify soiling losses, SAM adjusts the nominal incident irradiance value by each soiling loss percentage that applies to the time step. + +.. note:: If you included soiling losses as part of the DC System Losses and are specifying monthly soiling losses, you may want to set the Soiling system DC loss category to zero. + + Soiling losses apply in addition to any shading losses you specify. + +**Monthly soiling losses** + Click **Edit values** to specify a set of monthly soiling losses. To apply a single soiling loss to all months to represent a constant loss throughout the year, in the Edit Values window, type a value for **Enter single value** and then click **Apply**. + +Shading by Nearby Objects +------------------------- + +The shading losses represent a reduction of the incident solar irradiance due to external shading of the array caused by nearby objects such as trees and buildings. You can specify time series beam shading losses and a single sky diffuse shading loss or import shading loss data from shade analysis tools or calculators in the Edit Shading window. + +The time series :doc:`results <../pvwatts/pvwatts_results>` show the effect of external shading: SAM displays the shading factor for beam radiation and the plane-of-array (POA) irradiance. The beam and diffuse shading losses that you specify both reduce the POA irradiance. + +SAM offers several options for specifying shading losses. + +* You must choose at least one option. + +* SAM does not prevent you from enabling more than one option even if that results in an unrealistic shading model. Be sure to verify that you have enabled the set of options you intend before running a simulation. + +**To enable the external shading:** + +#. Click **Edit Shading**. + +#. If you are working with a shading file from PVsyst, Solmetric Suneye, or Solar Pathfinder software, in the Edit Shading window, click the appropriate button under **Import shading data from external tools** to import the file. + +#. If you are using a table to specify shading factors (you can type, import, or paste values into the table), check the appropriate **Enable** box in the Edit Shading window. + +.. note:: For detailed instructions on specifying shading losses, click **Help** in the Edit Shading Data window. + + |IMG_PVShading-EnableDisable| + + If you use specify beam and diffuse shading losses, be sure to set the Shading loss to zero. + +Snow +---- + +If you are using a weather file with snow depth data, you can enable the snow model to estimate reduction in the system's output due to snow covering the array. For a description of SAM's snow model, see + +* Ryberg, D.; Freeman, J. (2017). Integration, Validation and Application of a PV Snow Coverage Model in SAM. National Renewable Energy Laboratory. 33 pp. TP-6A20-68705 available along with other technical documentation from the `SAM website `__. + +.. note:: Snow depth data is not available in the NSRDB PSM V3 dataset. It is available in the `NSRDB 1961 - 1990 Archive Data `__. This older data does not represent the best up-to-date data from the NSRDB, but may be useful for testing SAM's snow loss model. + +The Ryberg (2017) paper cited above includes a United States map of annual average snow loss values that could be used to estimate snow loss using inputs on the Losses page instead of the snow model when snow depth data is not available. + +If you enable the snow model, you may want to set the system losses Snow category to zero. + +The snow model estimates the loss in system output during time steps when the array is covered in snow. It uses snow depth data from the weather file, and for time steps with snow, estimates the percentage of the photovoltaic array that is covered with snow based on the array's tilt angle, plane-of-array irradiance, and ambient temperature. The model assumes that the array is completely covered with snow when the snow depth data indicates a snowfall, and that snow slides off the array as the ambient temperature increases. + +**Estimate snow losses** + Check this option to model snow losses if the weather file on the Location and Resource page includes snow depth data. + +System Availability +------------------- + +.. include:: /includes/snip_system_availability.rst + +.. |IMG_PVShading-EnableDisable| image:: /images/IMG_PVShading-EnableDisable.png diff --git a/doc/source/reference/file_formats.rst b/doc/source/reference/file_formats.rst index 9321ed01ea..570015eaf7 100644 --- a/doc/source/reference/file_formats.rst +++ b/doc/source/reference/file_formats.rst @@ -28,7 +28,7 @@ SAM uses the following types of files to store and transfer data. The file forma File format used to store :doc:`report ` templates. **SRW** - Text file containing :doc:`wind resource <../weather-file-formats/weather_format_srw_wind>` data for the wind power model. + Obsolete file format for wind resource data. **TM2** Deprecated weather file format from old versions of the NSRDB. diff --git a/doc/source/solar-water-heating/swh_location_and_resource.rst b/doc/source/solar-water-heating/swh_location_and_resource.rst index 2b0a4db039..036cc77037 100644 --- a/doc/source/solar-water-heating/swh_location_and_resource.rst +++ b/doc/source/solar-water-heating/swh_location_and_resource.rst @@ -3,3 +3,17 @@ Location and Resource .. include:: ../includes/snip_location_resource.rst +Download Weather Files +~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_download_weather_files.rst + +Choose Weather File +~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_choose_weather_file.rst + +Weather Data Information +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../includes/snip_weather_data_information.rst diff --git a/doc/source/thermal-rates-and-load/index.rst b/doc/source/thermal-rates-and-load/index.rst index 1c1ffc4142..2193728bfd 100644 --- a/doc/source/thermal-rates-and-load/index.rst +++ b/doc/source/thermal-rates-and-load/index.rst @@ -3,6 +3,5 @@ Thermal Rates and Load .. toctree:: - thermal_rates_load thermal_load thermal_rates \ No newline at end of file diff --git a/doc/source/thermal-rates-and-load/thermal_load.rst b/doc/source/thermal-rates-and-load/thermal_load.rst index 0a98f022e3..61205cb093 100644 --- a/doc/source/thermal-rates-and-load/thermal_load.rst +++ b/doc/source/thermal-rates-and-load/thermal_load.rst @@ -4,7 +4,7 @@ Thermal Load The Thermal Load page allows you to specify a thermal load for systems that generate usable heat. You can input heat usage data by importing hourly or subhourly heat usage data from a text file, or paste it from a spreadsheet or other program. It also provides options for scaling the time series load data to match annual or monthly heating requirements. Thermal Load Data -................. +----------------- **Heat usage** Click **Edit data** to either cut and paste load data from another program or to import data from a properly formatted text file. See :ref:`Working with Time Series Load Data ` for instructions. @@ -28,7 +28,7 @@ Thermal Load Data Opens the :doc:`time series data viewer <../reference/time_series_viewer>` to display graphs of the load data. Monthly Load Summary -.................... +-------------------- SAM displays the table of monthly and annual totals to help you verify that the load data is correct. @@ -48,5 +48,10 @@ SAM displays the table of monthly and annual totals to help you verify that the **Annual Peak** The maximum load value that occurs in the year. -.. include:: ../includes/snip_load_annual_adjustment.rst +**Load annual growth rate, %/yr** + The load growth rate scales the load in years two and later by the percentage you specify. For example, if you specify a load growth rate of 0.5% per year, for each year in the analysis period specified on the :doc:`Financial Parameters <../financial-parameters/fin_overview>` page, SAM would increase the load value in each time step by 0.5% of the previous year's load value for the same time step. + + You can also assign load growth rates to specific years using the annual schedule: + +.. include:: /includes/snip_annual_values.rst diff --git a/doc/source/thermal-rates-and-load/thermal_rates_load.rst b/doc/source/thermal-rates-and-load/thermal_rates_load.rst deleted file mode 100644 index c3757388af..0000000000 --- a/doc/source/thermal-rates-and-load/thermal_rates_load.rst +++ /dev/null @@ -1,4 +0,0 @@ -Thermal Rates and Load -====================== - -Topic for new thermal rates and load model. \ No newline at end of file diff --git a/doc/source/weather-data/weather_data.rst b/doc/source/weather-data/weather_data.rst index 6d40536ec7..f551d3d618 100644 --- a/doc/source/weather-data/weather_data.rst +++ b/doc/source/weather-data/weather_data.rst @@ -24,7 +24,6 @@ For a description of SAM's weather file formats: * :doc:`Weather File Formats <../weather-file-formats/weather_format>` - For instructions to download or use your own weather files see: * Photovoltaic systems: Location and Resource @@ -37,10 +36,6 @@ For instructions to download or use your own weather files see: * Geothermal power: :doc:`Ambient Conditions <../geothermal/geo_ambient_conditions>` - - - .. note:: For more information about using weather data in SAM including links to online data sources and documents, see the `Weather Data `__ page on the SAM website. - -.. note:: For a good discussion of weather data for solar energy modeling, see Sengupta et al., (2017) "Best Practices Handbook for the Collection and Use of Solar Resource Data for Solar Energy Applications: Second Edition" available to download from the `Weather Data Publications `__ page on the SAM website. \ No newline at end of file + For a good discussion of weather data for solar energy modeling, see Sengupta et al., (2017) "Best Practices Handbook for the Collection and Use of Solar Resource Data for Solar Energy Applications: Second Edition" available to download from the `Weather Data Publications `__ page on the SAM website. \ No newline at end of file diff --git a/doc/source/weather-data/weather_manage_folders.rst b/doc/source/weather-data/weather_manage_folders.rst index 0fb3aae53a..a204d5f736 100644 --- a/doc/source/weather-data/weather_manage_folders.rst +++ b/doc/source/weather-data/weather_manage_folders.rst @@ -9,15 +9,15 @@ The resource libraries are lists of weather files on your computer. As you work The list of weather file folders lists folders on your computer that contain weather files that SAM scans to create the library. -The Folder for Downloaded Files is a folder that you designate for SAM to store weather files it downloads. SAM also scans this folder and adds any weather files it finds to the library. By default, the folder is /SAM Downloaded Weather Files, where is your computer's user folder. +**Folder for Downloaded Files** is a folder that you designate for SAM to store weather files it downloads. SAM scans this folder in addition to the ones you add for valid weawther files. By default, the folder is `/SAM Downloaded Weather Files`, where `` is your computer's user folder. .. image:: ../images/SS_FolderSettings-window.png :align: center :alt: SS_FolderSettings-window.png -SAM comes with a default weather file folder in the SAM installation folder that stores a few weather files for the default configurations that SAM uses when you create a new project or case. You should avoid storing your own weather files in the default folder because you may lose them when you remove SAM or update to a new version of the software +SAM comes with a special weather file folder in the SAM installation folder that stores a few weather files for the default configurations that SAM uses when you create a new project or case. You should avoid storing your own weather files in this special folder because you may lose them when you remove SAM or update to a new version of the software -SAM stores list of weather files shown in the libraries in special CSV files named SolarResourceData.csv, WindResourceData.csv, etc. that SAM creates when you first install it and updates as you add and remove files from the folders. These special files are stored in your operating system's application data folder, which is a hidden folder used by the programs on your computer. The library files contain a list of the weather files in your weather file folders with summary information from each file that SAM displays on the Location and Resource or Wind Resource input pages. You should not modify these files. If you delete them, SAM automatically regenerates them the next time you start the software. +SAM stores list of weather files shown in the libraries in CSV files named SolarResourceData.csv, WindResourceData.csv, etc. that SAM creates when you first install it and updates as you add and remove files from the folders. These files are stored in your operating system's application data folder, which is a hidden folder used by the programs on your computer. The library files contain a list of the weather files in your weather file folders with summary information from each file that SAM displays on the Location and Resource or Wind Resource input pages. You should not modify these files. If you delete them, SAM automatically regenerates them the next time you start the software. .. _foldersettings: @@ -67,4 +67,3 @@ To specify the folder for weather files you download with the Download Weather D .. image:: ../images/SS_WeatherFileFolderDownload.png :align: center :alt: SS_WeatherFileFolderDownload.png - diff --git a/doc/source/weather-data/weather_time_convention.rst b/doc/source/weather-data/weather_time_convention.rst index 19bb4dadfb..e6186e6b7e 100644 --- a/doc/source/weather-data/weather_time_convention.rst +++ b/doc/source/weather-data/weather_time_convention.rst @@ -8,14 +8,14 @@ The first row of data in the weather file is for the time step beginning at 12 a SAM does not account for leap years or for daylight savings time. Wind Resource Data -.................. +~~~~~~~~~~~~~~~~~~ -For wind resource data (:doc:`SRW <../weather-file-formats/weather_format_srw_wind>`), the last two columns of the first header row indicate the time step in hours (1=hourly, 0.25=15-minute, etc.), and number of time steps (8,760 for hourly, 35,040 for 15-minute, etc.). The values in the header must match the number of rows. +For wind resource data (:doc:`SAM CSV format for wind <../weather-file-formats/weather_format_csv_wind>`), the last two columns of the first header row indicate the time step in hours (1=hourly, 0.25=15-minute, etc.), and number of time steps (8,760 for hourly, 35,040 for 15-minute, etc.). The values in the header must match the number of rows. Solar Resource Data -................... +~~~~~~~~~~~~~~~~~~~ -For solar resource data (:doc:`SAM CSV <../weather-file-formats/weather_format_sam_csv_solar>`), the weather file's time step depends on the number of weather data rows (not including the header rows) in the weather file. A file for hourly simulations should contain 8,760 data rows. A weather file for 15-minute simulations should have 8,760 hours per year × 4 time steps per hour = 35,040 data rows. +For solar resource data (:doc:`SAM CSV format for solar <../weather-file-formats/weather_format_sam_csv_solar>`), the weather file's time step depends on the number of weather data rows (not including the header rows) in the weather file. A file for hourly simulations should contain 8,760 data rows. A weather file for 15-minute simulations should have 8,760 hours per year × 4 time steps per hour = 35,040 data rows. Air mass calculations use the site elevation value from the weather file header and the solar zenith angle calculated for each time step. diff --git a/doc/source/weather-data/weather_typical_single.rst b/doc/source/weather-data/weather_typical_single.rst index 978dd37b7a..49c97af1a0 100644 --- a/doc/source/weather-data/weather_typical_single.rst +++ b/doc/source/weather-data/weather_typical_single.rst @@ -43,6 +43,6 @@ Single year data represents the weather at a location for a specific year. Singl The following are examples of weather files that contain single-year data: -* Single-year files from the NSRDB's PSM data. +* Single-year files from the NSRDB. -* Wind data files (SRW) from the NLR Wind Integration Dataset. \ No newline at end of file +* Wind data files from the NLR WIND Toolkit. \ No newline at end of file diff --git a/doc/source/weather-file-formats/weather_format.rst b/doc/source/weather-file-formats/weather_format.rst index 17bf509b15..109fce1c44 100644 --- a/doc/source/weather-file-formats/weather_format.rst +++ b/doc/source/weather-file-formats/weather_format.rst @@ -3,17 +3,12 @@ Weather File Formats A SAM weather file is a text file that contains data describing the solar, wind, or marine energy resource at a particular location for a period of one year. SAM uses the following weather file formats: -* :doc:`SAM CSV format for solar ` - - -* :doc:`SAM CSV format for wind ` +* :doc:`CSV format for solar ` +* :doc:`CSV format for wind ` * :doc:`CSV format for marine energy ` - -* :doc:`SRW format for wind ` (this is an old format, please use the SAM CSV format for wind) - For a description of how the different performance models use weather data, see :doc:`Weather Data Elements <../weather-data/weather_data_elements>`. You can use a spreadsheet program, text editor, or other software to create your own SAM weather file using data from a resource measurement program, meteorological stations, or other sources. @@ -29,4 +24,6 @@ SAM can read solar resource data from files in the TMY3 and TMY2 legacy formats * The `TMY2 file format `__ is a text format with the extension .tm2 developed for the NSRDB 1961-1990 dataset. The TMY2 format is not delimited, which makes the data in the text file difficult to read. You can use SAM's time series data viewer to examine and export the data in a TMY2 file. For a description of the format see the `TMY2 user's manual `__. -* The EPW file format was developed for the U.S. Department of Energy's EnergyPlus building simulation model. EPW files store comma-delimited data, and use the extension .epw. The first eight rows of a file in EPW format stores header data. SAM's performance models use only the latitude, longitude, elevation, and time zone data from the header to calculate solar angles. The remaining 8,760 rows store weather data used by the SAM performance models and other data describing the quality of the data that SAM ignores. For more details about the EPW format see the `Weather Data Format Definition `__ page. \ No newline at end of file +* The EPW file format was developed for the U.S. Department of Energy's EnergyPlus building simulation model. EPW files store comma-delimited data, and use the extension .epw. The first eight rows of a file in EPW format stores header data. SAM's performance models use only the latitude, longitude, elevation, and time zone data from the header to calculate solar angles. The remaining 8,760 rows store weather data used by the SAM performance models and other data describing the quality of the data that SAM ignores. For more details about the EPW format see the `Weather Data Format Definition `__ page. + +* The SRW format was the original wind resource format for SAM's Wind Power model. It is now obsolete and has been replaced by the `CSV format for wind `. \ No newline at end of file diff --git a/doc/source/weather-file-formats/weather_format_csv_marine_energy.rst b/doc/source/weather-file-formats/weather_format_csv_marine_energy.rst index deeb7e3332..a43830b62c 100644 --- a/doc/source/weather-file-formats/weather_format_csv_marine_energy.rst +++ b/doc/source/weather-file-formats/weather_format_csv_marine_energy.rst @@ -12,7 +12,7 @@ Both formats are comma-separated (CSV) text formats. .. _freq: File Format for Frequency of Occurrence Wave Energy Resource Data -................................................................. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Frequency of Occurrence wave energy resource file stores data for joint probability distribution plots of the wave resource at a site as described in Dallman, A.; Neary, V. (2014) Characterization of U.S. Wave Energy Converter (WEC) Test Sites: A Catalogue of Met-Ocean Data. 125 pp.; SAND2014-18206. Sandia National Laboratories. (`PDF 8 MB `__) @@ -28,55 +28,40 @@ The file contains the wave resource matrix, which is a table of joint probabilit .. note:: The column separator must be a comma, and the decimal separator must be a dot. Semicolons in the file will cause the weather file reader to fail. -**Row 1** - The first column of Row 1 contains the header *Hs/Te*, and the remaining columns contain wave energy period values in seconds in increasing order from 0.5 to 20.5 in increments of 0.5: - - *Hs/Te,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,15.5,16.5,17.5,18.5,19.5,20.5* - -**Rows 2 and higher** - The first column of Rows 2 and higher contains the significant wave height in meters in increasing order from 0.25 to 9.75 in increments of 0.5. - - The remaining columns contain the joint probability distribution (JPD) of sea states representing a frequency of occurrence as a percentage. - - *0.25,0,0,0,0,0.11,0.18,0.12,0.09,0.11,0.05,0.07,0.06,0.07,0.07,0.02,0.02,0.01,0,0,0,0* - - *0.75,0,0,0,0,0.04,0.16,0.13,0.05,0.12,0.1,0.07,0.15,0.17,0.08,0.03,0.02,0,0,0,0,0* - - *1.25,0,0,0,0,0.15,0.26,0.26,0.93,1.26,1.24,1.05,1.32,1.51,0.91,0.73,0.27,0.2,0.06,0.03,0,0* - - *1.75,0,0,0,0,0.11,1.16,1.42,2.4,3.5,3.63,2.55,2.19,2.8,1.93,1.63,0.7,0.45,0.21,0.11,0.01,0* - - *2.25,0,0,0,0,0,0.38,2.21,2.59,2.79,3.33,3.84,3.3,2.29,1.34,1.1,0.61,0.4,0.18,0.09,0.02,0* - - *2.75,0,0,0,0,0,0,0.43,1.78,1.84,1.76,2.84,3.01,2.37,1.28,0.76,0.33,0.27,0.09,0.05,0.02,0* - - *3.25,0,0,0,0,0,0,0.03,0.37,0.86,0.76,1.29,2.55,2.37,1.09,0.75,0.28,0.15,0.06,0.03,0,0* - - *3.75,0,0,0,0,0,0,0,0.05,0.25,0.34,0.4,1.1,1.41,0.9,0.54,0.17,0.1,0.03,0,0,0* - - *4.25,0,0,0,0,0,0,0,0,0.04,0.2,0.13,0.3,0.92,0.46,0.45,0.19,0.06,0.01,0,0,0* - - *4.75,0,0,0,0,0,0,0,0,0.01,0.05,0.06,0.13,0.53,0.33,0.23,0.09,0.02,0.01,0,0,0* - - *5.25,0,0,0,0,0,0,0,0,0,0.02,0,0.04,0.17,0.18,0.11,0.03,0.01,0,0,0,0* - - *5.75,0,0,0,0,0,0,0,0,0,0,0.01,0.02,0.08,0.14,0.07,0.03,0.01,0,0,0,0* - - *6.25,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.12,0.05,0.03,0.01,0,0,0,0* - - *6.75,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.06,0.04,0.01,0,0,0,0,0* - - *7.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.03,0,0,0,0,0,0* - - *7.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0* - - *8.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0* - - *8.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0* - - *9.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0* - - *9.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0* +Row 1 +----- + +The first column of Row 1 contains the header *Hs/Te*, and the remaining columns contain wave energy period values in seconds in increasing order from 0.5 to 20.5 in increments of 0.5:: + + Hs/Te,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,15.5,16.5,17.5,18.5,19.5,20.5 + +Rows 2 and Higher +----------------- + +The first column of Rows 2 and higher contains the significant wave height in meters in increasing order from 0.25 to 9.75 in increments of 0.5. + +The remaining columns contain the joint probability distribution (JPD) of sea states representing a frequency of occurrence as a percentage:: + + 0.25,0,0,0,0,0.11,0.18,0.12,0.09,0.11,0.05,0.07,0.06,0.07,0.07,0.02,0.02,0.01,0,0,0,0 + 0.75,0,0,0,0,0.04,0.16,0.13,0.05,0.12,0.1,0.07,0.15,0.17,0.08,0.03,0.02,0,0,0,0,0 + 1.25,0,0,0,0,0.15,0.26,0.26,0.93,1.26,1.24,1.05,1.32,1.51,0.91,0.73,0.27,0.2,0.06,0.03,0,0 + 1.75,0,0,0,0,0.11,1.16,1.42,2.4,3.5,3.63,2.55,2.19,2.8,1.93,1.63,0.7,0.45,0.21,0.11,0.01,0 + 2.25,0,0,0,0,0,0.38,2.21,2.59,2.79,3.33,3.84,3.3,2.29,1.34,1.1,0.61,0.4,0.18,0.09,0.02,0 + 2.75,0,0,0,0,0,0,0.43,1.78,1.84,1.76,2.84,3.01,2.37,1.28,0.76,0.33,0.27,0.09,0.05,0.02,0 + 3.25,0,0,0,0,0,0,0.03,0.37,0.86,0.76,1.29,2.55,2.37,1.09,0.75,0.28,0.15,0.06,0.03,0,0 + 3.75,0,0,0,0,0,0,0,0.05,0.25,0.34,0.4,1.1,1.41,0.9,0.54,0.17,0.1,0.03,0,0,0 + 4.25,0,0,0,0,0,0,0,0,0.04,0.2,0.13,0.3,0.92,0.46,0.45,0.19,0.06,0.01,0,0,0 + 4.75,0,0,0,0,0,0,0,0,0.01,0.05,0.06,0.13,0.53,0.33,0.23,0.09,0.02,0.01,0,0,0 + 5.25,0,0,0,0,0,0,0,0,0,0.02,0,0.04,0.17,0.18,0.11,0.03,0.01,0,0,0,0 + 5.75,0,0,0,0,0,0,0,0,0,0,0.01,0.02,0.08,0.14,0.07,0.03,0.01,0,0,0,0 + 6.25,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.12,0.05,0.03,0.01,0,0,0,0 + 6.75,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.06,0.04,0.01,0,0,0,0,0 + 7.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.03,0,0,0,0,0,0 + 7.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 8.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 8.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 9.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 9.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .. list-table:: :width: 100% @@ -115,7 +100,7 @@ The file contains the wave resource matrix, which is a table of joint probabilit .. _weather-format-me-timeseries: Time Series Format for Wave Energy Resource Data -................................................ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The time series format for wave energy resource data is the CSV format returned by the `NLR Developer APIs for wave resource data `__: @@ -123,13 +108,17 @@ The time series format for wave energy resource data is the CSV format returned :align: center :alt: SS_WaveResource-time-series-file.png -**Rows 1 and 2** - These header rows contain information about the location. +Rows 1 and 2 +------------ + +These header rows contain information about the location. + +Rows 3 and Higher +----------------- -**Rows 3 and higher** - Row 3 contains column headings for the time series wave data. NLR's Hindcast Wave Data provides time series data in three-hour time steps, but SAM will work with data in one-hour time steps. The columns can be in any order, but should use the names listed in the table below. +Row 3 contains column headings for the time series wave data. NLR's Hindcast Wave Data provides time series data in three-hour time steps, but SAM will work with data in one-hour time steps. The columns can be in any order, but should use the names listed in the table below. - Rows 4 and higher contain the data itself. +Rows 4 and higher contain the data itself. .. list-table:: :width: 100% diff --git a/doc/source/weather-file-formats/weather_format_csv_wind.rst b/doc/source/weather-file-formats/weather_format_csv_wind.rst index 471056ec77..aeff64730f 100644 --- a/doc/source/weather-file-formats/weather_format_csv_wind.rst +++ b/doc/source/weather-file-formats/weather_format_csv_wind.rst @@ -2,13 +2,10 @@ SAM CSV Format for Wind ======================= The SAM CSV Format for Wind is a comma-delimited text format for SAM's wind power performance model. This is the format for files from the `NLR WIND Toolkit API `__ and `NLR RE Explorer `__. - - -.. note:: SAM 2022.11.21 r1 is the first version of SAM to support this new format. We are transitioning away from the :doc:`SRW format ` to this format to make SAM more compatible with the WIND Toolkit API and NLR RE Explorer. +.. note:: SAM 2022.11.21 r1 is the first version of SAM to support this new format. Please use this SAM CSV format for wind instead of the older :doc:`SRW format `. - -.. note:: Some WIND Toolkit endpoints return files in a slightly different format. For example, offshore-hawaii-download and offshore-mid-atlantic-download are in a different format than the one described here. + Some WIND Toolkit endpoints return files in a slightly different format. For example, offshore-hawaii-download and offshore-mid-atlantic-download are in a different format than the one described here. .. image:: ../images/SS_WindResource-samcsv.png :align: center @@ -24,7 +21,6 @@ The format allows you to use wind resource data at one or more heights above the * The measurement heights can be different for the different types of data. - * Air temperature, atmospheric pressure, and wind direction data can be at one height with wind speed data at multiple heights. * The direction measurement height must be within 10 meters of the nearest wind speed measurement height. @@ -35,7 +31,6 @@ The format allows you to use wind resource data at one or more heights above the * The Wind Power model determines the simulation time step from the number of resource data rows in the weather file, so time stamps are not required. - * The first row of data is in the hour ending at 1 a.m on January 1 local time. * The number of data rows must be an integer multiple of 8760 hours/year. @@ -45,7 +40,7 @@ The format allows you to use wind resource data at one or more heights above the * SAM requires a valid value for all time steps for each data element. It does not fill data gaps. It does perform some checks on the weather data before running a simulation, and displays messages about problems with the data in the simulation notices. Header Row 1 -............ +~~~~~~~~~~~~ The first row of the file stores information about the location as a label/value pair, separated by commas: Each label is followed by its value. The label/value pairs can be in any order. @@ -65,16 +60,11 @@ Optional items are: * SiteID - - - .. note:: If elevation data is not provided in the weather file, SAM's Wind Power model sets it to zero. If your weather file does not include elevation data, you can add it by editing the file and adding it to Row 1. The elevation data is used when you choose the **Define turbine design characteristics** option on the :doc:`Wind Turbine <../wind-power/wind_turbine>` page to calculate the turbine power curve from design parameters. SAM uses the air temperature and atmospheric pressure data for each time step to adjust the turbine power curve. It does not use the elevation above sea level for this purpose. If you are using the **Select a turbine from the library** option, SAM does not use the elevation value from the weather file. + The site time zone and data time zone values must be the same. SAM assumes that the time stamps in the resource data rows are in local time. -.. note:: The site time zone and data time zone values must be the same. SAM assumes that the time stamps in the resource data rows are in local time. - - -.. note:: Row 1 items can be in any order, but the each item's value must immediately follow its label. + Row 1 items can be in any order, but the each item's value must immediately follow its label. Here is an example of a valid Row 1: @@ -119,7 +109,7 @@ Example of a valid Row 1 with only required data: - *siteid, id, location, location id, station, station id, wban, wban#* Header Row 2 -............ +~~~~~~~~~~~~ SAM determines the type of data for each column based on the labels in Row 2. Row 2 must have the same number of columns as the resource data rows. @@ -134,16 +124,12 @@ Required columns are: * temperature for at least one height above the ground * atmospheric pressure for at least one height above the ground - - .. note:: Columns do not have to be in any particular order, and can be in a different order for each hub height. + Columns can be for data that SAM does not use. SAM ignores any column labels it does not recognize. -.. note:: Columns can be for data that SAM does not use. SAM ignores any column labels it does not recognize. - - -.. note:: SAM's wind power model does not require year, month, day, or minute time stamps. It ignores any time stamp data in the file. + SAM's wind power model does not require year, month, day, or minute time stamps. It ignores any time stamp data in the file. Example of a valid Row 2 for a file with data at two measurement heights: @@ -170,9 +156,9 @@ Example of a valid Row 2 for a file with data at two measurement heights: - °C - *must contain "temp"* -Data Rows 3 and higher -...................... +Data Rows 3 and Higher +~~~~~~~~~~~~~~~~~~~~~~ The data rows must contain columns of wind resource data in the order defined by the labels in Row 2. -SAM's wind power model assumes the data are in the units described in the table above. It does not read units from the column labels. \ No newline at end of file +SAM's wind power model assumes the data are in the units described in the table above. It does not read units from the column labels. diff --git a/doc/source/weather-file-formats/weather_format_sam_csv_solar.rst b/doc/source/weather-file-formats/weather_format_sam_csv_solar.rst index 8bb23f3d66..c3abb5711c 100644 --- a/doc/source/weather-file-formats/weather_format_sam_csv_solar.rst +++ b/doc/source/weather-file-formats/weather_format_sam_csv_solar.rst @@ -14,11 +14,12 @@ The SAM CSV format supports hourly and subhourly data with up to a one-minute re SAM requires a valid value for all time steps for each data element. It does not fill data gaps. It does perform some checks on the weather data before running a simulation, and displays messages about problems with the data in the simulation :doc:`notices <../results/notices>`. You can also run the **Solar Resource File Checker** :doc:`macro <../reference/macros>` to perform the checks without running a simulation. Header -...... +~~~~~~ -The header rows provide location information and metadata, and identify the data columns. +The first two rows are header rows that provide location information and metadata, and identify the data columns. Row 1 +----- Row 1 contains labels for the location data and metadata, and must include at least the following, which may be in any order and with any capitalization: @@ -39,6 +40,7 @@ For example, a valid Row 1 might look like this: See the table below for a complete list of Row 1 header fields, accepted labels, and and units. Row 2 +----- Row 2 contains values for the location data and metadata identified by the labels in Row 1. The required latitude, longitude, time zone, and elevation are numbers that SAM uses in sun position calculations during simulations: @@ -108,23 +110,26 @@ The remaining header fields, such as source, location ID, city, state, and other - *version* Solar Resource Data -................... +~~~~~~~~~~~~~~~~~~~ + +Rows 3 and higher contain solar resource data. Row 3 +----- - Labels identifying the data columns. SAM uses the labels to identify the columns, so they can be in any order. SAM requires a complete column of data for each data element. The Minute column is optional for hourly data. +Labels identifying the data columns. SAM uses the labels to identify the columns, so they can be in any order. SAM requires a complete column of data for each data element. The Minute column is optional for hourly data. - For example, a valid Row 3 might look like this: +For example, a valid Row 3 might look like this:: -*Year,Month,Day,Hour,Minute,GHI,DNI,DHI,Tdry,Tdew,RH,Pres,Wspd,Wdir,Snow Depth* + Year,Month,Day,Hour,Minute,GHI,DNI,DHI,Tdry,Tdew,RH,Pres,Wspd,Wdir,Snow Depth See the table below for a complete list of valid Row 3 header values and units. See the description of the **Units flag** above if you want to include an additional row for units in your file. Row 4-8,760 (for hourly data, more rows for sub-hourly data) -Data identified in Row 3. For example: +Data identified in Row 3. For example:: -*1988,1,1,0,0,0,0,5.6,-3.3,53,983,2.1,200,0* + 1988,1,1,0,0,0,0,5.6,-3.3,53,983,2.1,200,0 SAM assumes that the weather data uses the following units: @@ -219,4 +224,3 @@ SAM assumes that the weather data uses the following units: * - Aerosol optical depth - 0..1 - *aod, aerosol, aerosol optical depth* - diff --git a/doc/source/weather-file-formats/weather_format_srw_wind.rst b/doc/source/weather-file-formats/weather_format_srw_wind.rst index 95280fed97..760b779696 100644 --- a/doc/source/weather-file-formats/weather_format_srw_wind.rst +++ b/doc/source/weather-file-formats/weather_format_srw_wind.rst @@ -1,15 +1,15 @@ SRW Format for Wind =================== -The SRW format is a comma-delimited text format with the extension .srw for the wind power performance model. +The SRW format is an obsolete comma-delimited text format with the extension .srw for the wind power performance model. A description is provided here in case you are working with old wind resource files. -**Note.** As of SAM 2022.11.21 r1, SAM works with the new :doc:`SAM CSV Format for Wind `, which is compatible with wind resource data from the `NLR WIND Toolkit API `__ and `NLR RE Explorer `__. If you are creating wind resource files to use with SAM, we recommend you use this new format instead of the SRW format. +.. important:: As of SAM 2022.11.21 r1, SAM works with the new :doc:`SAM CSV Format for Wind `, which is compatible with wind resource data from the `NLR WIND Toolkit API `__ and `NLR RE Explorer `__. If you are creating wind resource files to use with SAM, we recommend you use this new format instead of the SRW format. .. image:: ../images/SS_WindResource-csvfile.png :align: center :alt: SS_WindResource-csvfile.png -The format allows you to use wind resource data at one or more heights above the ground, and is designed to be flexible enough to handle a range of data. +The SRW format allows you to use wind resource data at one or more heights above the ground, and is designed to be flexible enough to handle a range of data. * The file stores four data types: wind speed, wind direction, air temperature, and atmospheric pressure. @@ -28,7 +28,7 @@ The format allows you to use wind resource data at one or more heights above the * The file does not contain time zone information. The NLR WIND Toolkit data assumes data time steps are in UTC, where Row 1 is the hour ending at 1 a.m. Header Rows 1 and 2 -................... +~~~~~~~~~~~~~~~~~~~ The first two rows of the file store information about the location, and descriptive text that you can use for any purpose. SAM displays some of this information in the fields on the Wind Resource page, but does not use any of this information in simulation calculations. @@ -41,13 +41,9 @@ The first two rows of the file store information about the location, and descrip SAM ignores the extra commas at the end of the row that your spreadsheet software may insert. - - - .. note:: SAM uses the air temperature and atmospheric pressure data for each time step to adjust the turbine power curve. It does not use the elevation above sea level for this purpose. - -.. note:: SAM reads the first 8 columns and ignores any additional columns. For example, it ignores the time zone in Column 9 and number of data rows in Column 10. + SAM reads the first 8 columns and ignores any additional columns. For example, it ignores the time zone in Column 9 and number of data rows in Column 10. **Row 2** @@ -57,7 +53,7 @@ The first two rows of the file store information about the location, and descrip SAM ignores the extra commas at the end of the row that your spreadsheet software may insert. Header Rows 3 - 5 -................. +~~~~~~~~~~~~~~~~~ Rows 3 and 4 tell SAM what data each column contains. SAM determines the type of data for each column based on the information in Rows 3 and 4. Rows 3 and 4 must have the same number of columns as the resource data rows. @@ -85,7 +81,7 @@ Rows 3 and 4 tell SAM what data each column contains. SAM determines the type of Measurement height above the ground in meters for the resource data for each column defined in Row 3. Each column in Row 5 must contain an integer or decimal value. Resource Data Rows 6 and Higher -............................... +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The resource data rows store the wind speed, wind direction, ambient temperature, and atmospheric pressure values. @@ -99,4 +95,4 @@ The resource data rows store integers or decimal values with the following units * Atmospheric pressure in in atmospheres. -* Ambient temperature in degrees Celsius. \ No newline at end of file +* Ambient temperature in degrees Celsius. diff --git a/doc/source/wind-power/wind_power.rst b/doc/source/wind-power/wind_power.rst index 57c99097bf..c8b3115839 100644 --- a/doc/source/wind-power/wind_power.rst +++ b/doc/source/wind-power/wind_power.rst @@ -12,7 +12,7 @@ Wind Power Model Algorithm SAM's wind power model uses wind resource data that you specify on the :doc:`Wind Resource ` page to calculate the electricity delivered to the grid by a wind farm that consists of one or more wind turbines. -SAM can either read wind resource data from a time series data file in the :doc:`SRW <../weather-file-formats/weather_format_srw_wind>` format, or make calculations based on an estimate of the wind resource specified using a Weibull distribution. +SAM can either read wind resource data from a time series data file in the :doc:`SAM CSV for wind <../weather-file-formats/weather_format_csv_wind>` format, or make calculations based on an estimate of the wind resource specified using a Weibull distribution. SAM calculates the wind farm's output over a single year in hourly time steps. It uses the following algorithm to calculate the wind farm output for each time step of the simulation: diff --git a/doc/source/wind-power/wind_resource.rst b/doc/source/wind-power/wind_resource.rst index 69d80c524d..72233197ee 100644 --- a/doc/source/wind-power/wind_resource.rst +++ b/doc/source/wind-power/wind_resource.rst @@ -25,7 +25,7 @@ Use the Wind Resource page to define the wind resource at the project site for a For a description of how SAM determines wind speed at hub height, see :ref:`Hub Height and Wind Shear `. For a description of how SAM uses temperature and pressure data from the weather file, see :ref:`Elevation above Sea Level `. Choose a representative typical wind resource file --------------------------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. _filerepresentative: @@ -60,7 +60,7 @@ SAM displays information that describes the location represented by the data fro **Refresh Library** Refreshes the list of files in the location list. SAM automatically refreshes the list each time you visit the Wind Resource page. If you add a file to one of the folders in the search list, you may need to refresh the list for the file to be visible in the location list. -The files are for 39 representative locations, and use the following naming convention: *[State] [Region]-[Terrain Description].srw* to help you choose an appropriate file. For example, the file *AZ Eastern-Rolling Hills.srw* contains data appropriate for a location in eastern Arizona with rolling hills. +The files are for 39 representative locations, and use the following naming convention: *[State] [Region]-[Terrain Description].srw* to help you choose an appropriate file. For example, the file *AZ Eastern-Rolling Hills.srw* contains data appropriate for a location in eastern Arizona with rolling hills. Note that these files are in the obsolete SRW format, which has been replaced by the SAM CSV format for wind. * *State* indicates where the data in the file was measured. @@ -88,14 +88,15 @@ You can use the images below to help choose a typical file with terrain characte :align: center :alt: IMG_WindResource-terrain.png + +.. _filedownload: + Download a file from the online NLR WIND Toolkit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. _filedownload: NLR's Wind Integration National Dataset (WIND) Toolkit provides wind resource data for the continental United States and other parts of the world. You can download files for the continental United States from SAM's Wind Resource page. Wind resource data for locations outside of the U.S. are available from `Wind Resource Database (WRDB) `__ and from the `WIND Toolkit API `__. Files from these resources are in a file format that is compatible with SAM, except for some WIND Toolkit API endpoints that use a different format. Please `let us know `__ if you need help using files from one of these resources. -To download a weather file from the NLR WIND Toolkit: -..................................................... +**To download a weather file from the NLR WIND Toolkit:** #. Click **Download**. @@ -186,13 +187,13 @@ The table must meet the following requirements: * Sum of probabilities must be 1. -To specify the wind resource using the Wind Resource Probability table by hand: +**To specify the wind resource using the Wind Resource Probability table by hand:** #. For **Rows**, type the number of rows in the table. #. For each row, type a wind speed in m/s and a wind direction in degrees. -To paste table data: +**To paste table data:** #. Create a table of tab-delimited wind speed and direction data in a text file or spreadsheet program. @@ -204,4 +205,4 @@ To import table data from a file: #. Create a table of comma-delimited wind speed and direction data in a text file or spreadsheet program. Do not include column headings in the file. -#. In SAM, click **Import** to load the data from the file into the table. \ No newline at end of file +#. In SAM, click **Import** to load the data from the file into the table. diff --git a/src/welcome.cpp b/src/welcome.cpp index 9ad6624562..2a4e0635d1 100644 --- a/src/welcome.cpp +++ b/src/welcome.cpp @@ -435,7 +435,7 @@ void WelcomeScreen::OnCommand( wxCommandEvent &evt ) } break; case ID_GET_STARTED: - SamApp::ShowHelp( "getting_started"); + SamApp::ShowHelp( "getting-started/welcome_page"); break; case ID_OPEN_SCRIPT: SamScriptWindow::OpenFiles();