From bdf82331ee0e72e56683d35ec53b929892b8a9b1 Mon Sep 17 00:00:00 2001 From: Taylor Brown <60201147+taylorbrown75@users.noreply.github.com> Date: Tue, 12 Nov 2024 16:28:55 -0700 Subject: [PATCH] Shorten CSP generation vartable labels. Synchronize watt-hr labels. --- ssc/cmod_fresnel_physical.cpp | 32 ++++++------ ssc/cmod_fresnel_physical_iph.cpp | 10 ++-- ssc/cmod_linear_fresnel_dsg_iph.cpp | 12 ++--- ssc/cmod_mspt_iph.cpp | 10 ++-- ssc/cmod_tcsmolten_salt.cpp | 78 ++++++++++++++--------------- ssc/cmod_trough_physical.cpp | 30 +++++------ ssc/cmod_trough_physical_iph.cpp | 10 ++-- 7 files changed, 91 insertions(+), 91 deletions(-) diff --git a/ssc/cmod_fresnel_physical.cpp b/ssc/cmod_fresnel_physical.cpp index ba5aa0fed..dcad18053 100644 --- a/ssc/cmod_fresnel_physical.cpp +++ b/ssc/cmod_fresnel_physical.cpp @@ -94,7 +94,7 @@ static var_info _cm_vtab_fresnel_physical[] = { { SSC_INPUT, SSC_NUMBER, "T_startup", "Power block startup temperature", "C", "", "Solar_Field", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "rec_su_delay", "Fixed startup delay time for the receiver", "hr", "", "Solar_Field", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "rec_qf_delay", "Energy-based receiver startup delay (fraction of rated thermal power)", "-", "", "Solar_Field", "*", "", "" }, - { SSC_INPUT, SSC_NUMBER, "p_start", "Collector startup energy, per SCA", "kWe-hr", "", "Solar_Field", "*", "", "" }, + { SSC_INPUT, SSC_NUMBER, "p_start", "Collector startup energy, per SCA", "kWhe", "", "Solar_Field", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "L_rnr_pb", "Length of runner pipe in power block", "m", "", "Solar_Field", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "use_abs_or_rel_mdot_limit", "Use mass flow abs (0) or relative (1) limits", "", "", "solar_field", "?=0", "", "" }, @@ -231,7 +231,7 @@ static var_info _cm_vtab_fresnel_physical[] = { { SSC_INPUT, SSC_NUMBER, "disp_spec_scaling", "Dispatch optimization scaling heuristic", "-", "", "tou", "?=-1", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_NUMBER, "disp_inventory_incentive", "Dispatch storage terminal inventory incentive multiplier", "", "", "System Control", "?=0.0", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_NUMBER, "q_rec_standby", "Receiver standby energy consumption", "kWt", "", "tou", "?=9e99", "", "SIMULATION_PARAMETER" }, - { SSC_INPUT, SSC_NUMBER, "q_rec_heattrace", "Receiver heat trace energy consumption during startup", "kWe-hr", "", "tou", "?=0.0", "", "SIMULATION_PARAMETER" }, + { SSC_INPUT, SSC_NUMBER, "q_rec_heattrace", "Receiver heat trace energy consumption during startup", "kWhe", "", "tou", "?=0.0", "", "SIMULATION_PARAMETER" }, @@ -539,16 +539,16 @@ static var_info _cm_vtab_fresnel_physical[] = { { SSC_OUTPUT, SSC_ARRAY, "q_balance", "Relative energy balance error", "", "", "solver", "sim_type=1", "", "" }, // Monthly Outputs - { SSC_OUTPUT, SSC_ARRAY, "monthly_energy", "Monthly AC energy in Year 1", "kWh", "", "Post-process", "sim_type=1", "LENGTH=12", "" }, + { SSC_OUTPUT, SSC_ARRAY, "monthly_energy", "Monthly AC energy in Year 1", "kWh", "", "Post-process", "sim_type=1", "LENGTH=12", "" }, // Annual Outputs - { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net electrical energy generated with availability derate", "kWe-hr", "", "Post-process", "sim_type=1", "", "" }, - //{ SSC_OUTPUT, SSC_NUMBER, "annual_gross_energy", "Annual Gross Electrical Energy Production w/ avail derate", "kWe-hr", "", "Post-process", "*", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWt-hr", "", "Post-process", "sim_type=1", "", "" }, - //{ SSC_OUTPUT, SSC_NUMBER, "annual_electricity_consumption", "Annual electricity consumptoin w/ avail derate", "kWe-hr", "", "Post-process", "*", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net electrical energy w/ avail. derate", "kWhe", "", "Post-process", "sim_type=1", "", "" }, + //{ SSC_OUTPUT, SSC_NUMBER, "annual_gross_energy", "Annual Gross Electrical Energy Production w/ avail derate", "kWhe", "", "Post-process", "*", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWht", "", "Post-process", "sim_type=1", "", "" }, + //{ SSC_OUTPUT, SSC_NUMBER, "annual_electricity_consumption", "Annual electricity consumptoin w/ avail derate", "kWhe", "", "Post-process", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_total_water_use", "Total annual water usage", "m^3", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_field_freeze_protection", "Annual thermal power for field freeze protection", "kWt-hr", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_tes_freeze_protection", "Annual thermal power for TES freeze protection", "kWt-hr", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_field_freeze_protection", "Annual thermal power for field freeze protection", "kWht", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_tes_freeze_protection", "Annual thermal power for TES freeze protection", "kWht", "", "Post-process", "sim_type=1", "", "" }, // Newly added { SSC_OUTPUT, SSC_ARRAY, "n_op_modes", "Operating modes in reporting timestep", "", "", "solver", "sim_type=1", "", "" }, @@ -594,8 +594,8 @@ static var_info _cm_vtab_fresnel_physical[] = { { SSC_OUTPUT, SSC_ARRAY, "P_fixed", "Parasitic power fixed load", "MWe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "P_plant_balance_tot", "Parasitic power generation-dependent load", "MWe", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "P_out_net", "System net electric power generated", "MWe", "", "system", "*", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate", "kWe", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "P_out_net", "System net electrical power", "MWe", "", "system", "*", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_W_cycle_gross", "Electrical source - Power cycle gross output", "kWhe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "conversion_factor", "Gross to Net Conversion Factor", "%", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "capacity_factor", "Capacity factor", "%", "", "system", "sim_type=1", "", "" }, @@ -1881,8 +1881,8 @@ class cm_fresnel_physical : public compute_module // Annual outputs accumulate_annual_for_year("gen", "annual_energy", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); - accumulate_annual_for_year("P_cycle", "annual_W_cycle_gross", 1000.0 * sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWe-hr] - //accumulate_annual_for_year("W_dot_par_tot_haf", "annual_electricity_consumption", sim_setup.m_report_step/3600.0, steps_per_hour); //[kWe-hr] + accumulate_annual_for_year("P_cycle", "annual_W_cycle_gross", 1000.0 * sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWhe] + //accumulate_annual_for_year("W_dot_par_tot_haf", "annual_electricity_consumption", sim_setup.m_report_step/3600.0, steps_per_hour); //[kWhe] accumulate_annual_for_year("disp_objective", "disp_objective_ann", 1000.0 * sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("disp_solve_iter", "disp_iter_ann", 1000.0 * sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("disp_presolve_nconstr", "disp_presolve_nconstr_ann", sim_setup.m_report_step / 3600.0 / as_double("disp_frequency"), steps_per_hour, 1, n_steps_fixed / steps_per_hour); @@ -1892,10 +1892,10 @@ class cm_fresnel_physical : public compute_module accumulate_annual_for_year("q_ch_tes", "annual_q_ch_tes", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); - ssc_number_t annual_field_fp = accumulate_annual_for_year("q_dot_freeze_prot", "annual_field_freeze_protection", sim_setup.m_report_step / 3600.0 * 1.E3, steps_per_hour); //[kWt-hr] - ssc_number_t annual_tes_fp = accumulate_annual_for_year("q_tes_heater", "annual_tes_freeze_protection", sim_setup.m_report_step / 3600.0 * 1.E3, steps_per_hour); //[kWt-hr] + ssc_number_t annual_field_fp = accumulate_annual_for_year("q_dot_freeze_prot", "annual_field_freeze_protection", sim_setup.m_report_step / 3600.0 * 1.E3, steps_per_hour); //[kWht] + ssc_number_t annual_tes_fp = accumulate_annual_for_year("q_tes_heater", "annual_tes_freeze_protection", sim_setup.m_report_step / 3600.0 * 1.E3, steps_per_hour); //[kWht] - ssc_number_t annual_thermal_consumption = annual_field_fp + annual_tes_fp; //[kWt-hr] + ssc_number_t annual_thermal_consumption = annual_field_fp + annual_tes_fp; //[kWht] assign("annual_thermal_consumption", annual_thermal_consumption); // Reporting dispatch solution counts diff --git a/ssc/cmod_fresnel_physical_iph.cpp b/ssc/cmod_fresnel_physical_iph.cpp index c7914f518..8eee6609e 100644 --- a/ssc/cmod_fresnel_physical_iph.cpp +++ b/ssc/cmod_fresnel_physical_iph.cpp @@ -562,9 +562,9 @@ static var_info _cm_vtab_fresnel_physical_iph[] = { { SSC_OUTPUT, SSC_ARRAY, "operating_modes_a", "First 3 operating modes tried", "", "", "solver", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "operating_modes_b", "Next 3 operating modes tried", "", "", "solver", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "operating_modes_c", "Final 3 operating modes tried", "", "", "solver", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power generated with availability derate", "kWt", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate", "kWe", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power generated with availability derate in MMBtu/hr","MMBtu/hr", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power w/ avail. derate", "kWt", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power w/ avail. derate", "MMBtu/hr", "", "system", "sim_type=1", "", "" }, // Monthly Outputs @@ -573,8 +573,8 @@ static var_info _cm_vtab_fresnel_physical_iph[] = { // Annual Outputs - { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy generated with availability derate", "kWhe", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy generated with availability derate in MMBtu","MMBtu", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy w/ avail. derate", "kWhe", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy w/ avail. derate", "MMBtu", "", "Post-process", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWht", "", "Post-process", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_electricity_consumption", "Annual electricity consumption w/ avail derate", "kWhe", "", "Post-process", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_total_water_use", "Total Annual Water Usage", "m^3", "", "Post-process", "sim_type=1", "", "" }, diff --git a/ssc/cmod_linear_fresnel_dsg_iph.cpp b/ssc/cmod_linear_fresnel_dsg_iph.cpp index 6d16c2f91..22fadc941 100644 --- a/ssc/cmod_linear_fresnel_dsg_iph.cpp +++ b/ssc/cmod_linear_fresnel_dsg_iph.cpp @@ -182,10 +182,10 @@ static var_info _cm_vtab_linear_fresnel_dsg_iph[] = { { SSC_OUTPUT, SSC_ARRAY, "W_dot_heat_sink_pump", "Heat sink pumping power", "MWe", "", "Heat_Sink", "*", "", "" }, // SYSTEM - { SSC_OUTPUT, SSC_ARRAY, "W_dot_parasitic_tot", "System total electrical parasitic", "MWe", "", "Controller", "*", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power generated with availability derate","kWt", "","system", "*", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate","kWe", "","system", "*", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power generated with availability derate in MMBtu/hr","MMBtu/hr","","system", "*", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "W_dot_parasitic_tot", "System total electrical parasitic", "MWe", "", "Controller", "*", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power w/ avail. derate", "kWt", "", "system", "*", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "system", "*", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power w/ avail. derate", "MMBtu/hr", "", "system", "*", "", "" }, // Controller @@ -194,8 +194,8 @@ static var_info _cm_vtab_linear_fresnel_dsg_iph[] = { { SSC_OUTPUT, SSC_ARRAY, "op_mode_3", "3rd op. mode, if applicable", "", "", "Controller", "*", "", "" }, // Annual Outputs - { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy generated with availability derate", "kWht", "", "Post-process", "*", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy generated with availability derate in MMBtu","MMBtu","","Post - process", "", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy w/ avail. derate", "kWht", "", "Post-process", "*", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy w/ avail. derate", "MMBtu", "", "Post-process", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_field_energy", "Annual Gross Thermal Energy Production w/ avail derate", "kWht", "", "Post-process", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWht", "", "Post-process", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_electricity_consumption", "Annual electricity consumptoin w/ avail derate", "kWhe", "", "Post-process", "*", "", "" }, diff --git a/ssc/cmod_mspt_iph.cpp b/ssc/cmod_mspt_iph.cpp index c287bd8bf..992361564 100644 --- a/ssc/cmod_mspt_iph.cpp +++ b/ssc/cmod_mspt_iph.cpp @@ -600,15 +600,15 @@ static var_info _cm_vtab_mspt_iph[] = { { SSC_OUTPUT, SSC_ARRAY, "operating_modes_b", "Next 3 operating modes tried", "", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "operating_modes_c", "Final 3 operating modes tried", "", "", "", "sim_type=1", "", ""}, -{ SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power generated with availability derate", "kWt", "", "", "sim_type=1", "", ""}, -{ SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate", "kWe", "", "system", "sim_type=1", "", "" }, -{ SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power generated with availability derate in MMBtu/hr", "MMBtu/hr", "", "system", "sim_type=1", "", "" }, +{ SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power w/ avail. derate", "kWt", "", "", "sim_type=1", "", ""}, +{ SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "system", "sim_type=1", "", "" }, +{ SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power w/ avail. derate", "MMBtu/hr", "", "system", "sim_type=1", "", "" }, // Annual single-value outputs -{ SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy generated with availability derate", "kWht", "", "Post-process", "sim_type=1", "", ""}, +{ SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy w/ avail. derate", "kWht", "", "Post-process", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_htf", "Annual receiver power delivered to HTF", "MWht", "", "Tower and Receiver", "sim_type=1", "", ""}, -{ SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy generated with availability derate in MMBtu", "MMBtu", "", "Post-process", "sim_type=1", "", ""}, +{ SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy w/ avail. derate", "MMBtu", "", "Post-process", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_NUMBER, "annual_electricity_consumption", "Annual electricity consumption w/ avail derate", "kWhe", "", "Post-process", "sim_type=1", "", ""}, diff --git a/ssc/cmod_tcsmolten_salt.cpp b/ssc/cmod_tcsmolten_salt.cpp index e510bba77..9a877606a 100644 --- a/ssc/cmod_tcsmolten_salt.cpp +++ b/ssc/cmod_tcsmolten_salt.cpp @@ -105,7 +105,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_INPUT, SSC_NUMBER, "land_min", "Land min boundary", "-ORm", "", "Heliostat Field", "?=0.75", "", ""}, { SSC_INPUT, SSC_MATRIX, "land_bound_table", "Land boundary table", "m", "", "Heliostat Field", "?", "", "SIMULATION_PARAMETER"}, { SSC_INPUT, SSC_ARRAY, "land_bound_list", "Land boundary table listing", "", "", "Heliostat Field", "?", "", "SIMULATION_PARAMETER"}, - { SSC_INPUT, SSC_NUMBER, "p_start", "Heliostat startup energy", "kWe-hr", "", "Heliostat Field", "*", "", ""}, + { SSC_INPUT, SSC_NUMBER, "p_start", "Heliostat startup energy", "kWhe", "", "Heliostat Field", "*", "", ""}, { SSC_INPUT, SSC_NUMBER, "p_track", "Heliostat tracking energy", "kWe", "", "Heliostat Field", "*", "", ""}, { SSC_INPUT, SSC_NUMBER, "hel_stow_deploy", "Stow/deploy elevation angle", "deg", "", "Heliostat Field", "*", "", ""}, { SSC_INPUT, SSC_NUMBER, "v_wind_max", "Heliostat max wind velocity", "m/s", "", "Heliostat Field", "*", "", ""}, @@ -342,7 +342,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_INPUT, SSC_NUMBER, "disp_pen_ramping", "Dispatch cycle production change penalty", "$/MWe-change", "", "System Control", "", "", ""}, { SSC_INPUT, SSC_NUMBER, "disp_inventory_incentive", "Dispatch storage terminal inventory incentive multiplier", "", "", "System Control", "?=0.0", "", "SIMULATION_PARAMETER"}, { SSC_INPUT, SSC_NUMBER, "q_rec_standby", "Receiver standby energy consumption", "kWt", "", "System Control", "?=9e99", "", "SIMULATION_PARAMETER"}, - { SSC_INPUT, SSC_NUMBER, "q_rec_heattrace", "Receiver heat trace energy consumption during startup", "kWe-hr", "", "System Control", "?=0.0", "", "SIMULATION_PARAMETER"}, + { SSC_INPUT, SSC_NUMBER, "q_rec_heattrace", "Receiver heat trace energy consumption during startup", "kWhe", "", "System Control", "?=0.0", "", "SIMULATION_PARAMETER"}, // Pricing schedules and multipliers // Ideally this would work with sim_type = 2, but UI inputs availability depends on financial mode @@ -363,7 +363,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_INPUT, SSC_NUMBER, "is_field_tracking_init", "Is heliostat field tracking? (1 = true)", "-", "", "System Control", "", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_NUMBER, "rec_op_mode_initial", "Initial receiver operating mode 0: off, 1: startup, 2: on", "-", "", "System Control", "", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_NUMBER, "rec_startup_time_remain_init", "Initial receiver startup time remaining", "hr", "", "System Control", "", "", "SIMULATION_PARAMETER" }, - { SSC_INPUT, SSC_NUMBER, "rec_startup_energy_remain_init", "Initial receiver startup energy remaining", "W-hr", "", "System Control", "", "", "SIMULATION_PARAMETER" }, + { SSC_INPUT, SSC_NUMBER, "rec_startup_energy_remain_init", "Initial receiver startup energy remaining", "Wh", "", "System Control", "", "", "SIMULATION_PARAMETER" }, // Power cycle { SSC_INPUT, SSC_NUMBER, "pc_op_mode_initial", "Initial cycle operation mode 0:startup, 1:on, 2:standby, 3:off, 4:startup_controlled", "-", "", "System Control", "", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_NUMBER, "pc_startup_time_remain_init", "Initial cycle startup time remaining", "hr", "", "System Control", "", "", "SIMULATION_PARAMETER" }, @@ -495,7 +495,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { // Heater { SSC_OUTPUT, SSC_NUMBER, "q_dot_heater_des", "Heater design thermal power", "MWt", "", "Heater", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "W_dot_heater_des", "Heater electricity consumption at design", "MWe", "", "Heater", "*", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "E_heater_su_des", "Heater startup energy", "MWt-hr", "", "Heater", "*", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "E_heater_su_des", "Heater startup energy", "MWht", "", "Heater", "*", "", "" }, // Power Cycle { SSC_OUTPUT, SSC_NUMBER, "m_dot_htf_cycle_des", "PC HTF mass flow rate at design", "kg/s", "", "Power Cycle", "*", "", "" }, @@ -521,7 +521,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_OUTPUT, SSC_NUMBER, "m_dot_water_ND_des_calc", "UDPC calculated water use at design", "", "", "UDPC Design Calc", "*", "", "" }, // TES - { SSC_OUTPUT, SSC_NUMBER, "Q_tes_des", "TES design capacity", "MWt-hr", "", "TES Design Calc", "*", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "Q_tes_des", "TES design capacity", "MWht", "", "TES Design Calc", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "V_tes_htf_avail_des", "TES volume of HTF available for heat transfer", "m3", "", "TES Design Calc", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "V_tes_htf_total_des", "TES total HTF volume", "m3", "", "TES Design Calc", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "d_tank_tes", "TES tank diameter", "m", "", "TES Design Calc", "*", "", "" }, @@ -686,7 +686,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_OUTPUT, SSC_ARRAY, "P_rec_heattrace", "Receiver heat trace parasitic load", "MWe", "", "System", "sim_type=1&is_rec_model_trans=1", "", ""}, // System outputs - { SSC_OUTPUT, SSC_ARRAY, "P_out_net", "System net electric power generated", "MWe", "", "", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_ARRAY, "P_out_net", "System net electrical power", "MWe", "", "", "sim_type=1", "", ""}, // Controller outputs { SSC_OUTPUT, SSC_ARRAY, "tou_value", "CSP operating time-of-use value", "", "", "", "sim_type=1", "", ""}, @@ -707,7 +707,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_OUTPUT, SSC_ARRAY, "disp_obj_relax", "Dispatch objective function - relaxed max", "", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "disp_qsf_expected", "Dispatch expected solar field available energy", "MWt", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "disp_qsfprod_expected", "Dispatch expected solar field generation", "MWt", "", "", "sim_type=1", "", ""}, - { SSC_OUTPUT, SSC_ARRAY, "disp_qsfsu_expected", "Dispatch expected solar field startup energy", "MWt", "", "", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_ARRAY, "disp_qsfsu_expected", "Dispatch expected solar field startup energy", "MWt", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "disp_tes_expected", "Dispatch expected TES charge level", "MWht", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "disp_pceff_expected", "Dispatch expected power cycle efficiency adj.", "", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "disp_thermeff_expected", "Dispatch expected SF thermal efficiency adj.", "", "", "", "sim_type=1", "", ""}, @@ -740,21 +740,21 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_OUTPUT, SSC_ARRAY, "operating_modes_b", "Next 3 operating modes tried", "", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_ARRAY, "operating_modes_c", "Final 3 operating modes tried", "", "", "", "sim_type=1", "", ""}, - { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate", "kWe", "", "", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "", "sim_type=1", "", ""}, // Annual single-value outputs - { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net electrical energy generated with availability derate", "kWhe", "", "", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net electrical energy w/ avail. derate", "kWhe", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_NUMBER, "annual_W_cycle_gross", "Electrical source - power cycle gross output", "kWhe", "", "", "sim_type=1", "", ""}, - { SSC_OUTPUT, SSC_NUMBER, "annual_W_cooling_tower", "Total of condenser operation parasitic", "kWhe", "", "PC", "sim_type=1", "", ""}, - { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_htf", "Annual receiver power delivered to HTF", "MWt-hr", "", "Tower and Receiver", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_inc", "Annual receiver incident thermal power after reflective and defocus losses", "MWt-hr", "", "Tower and Receiver", "sim_type=1", "", ""}, - { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_loss", "Annual receiver convective and radiative losses", "MWt-hr", "", "Tower and Receiver", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_q_piping_loss", "Annual tower piping losses", "MWt-hr", "", "Tower and Receiver", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_startup", "Annual receiver startup energy", "MWt-hr", "", "Tower and Receiver", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_E_tower_pump", "Annual tower pumping power", "MWe-hr", "", "Tower and Receiver", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_NUMBER, "annual_W_cooling_tower", "Total of condenser operation parasitic", "kWhe", "", "PC", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_htf", "Annual receiver power delivered to HTF", "MWht", "", "Tower and Receiver", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_inc", "Annual receiver incident thermal power after reflective and defocus losses", "MWht", "", "Tower and Receiver", "sim_type=1", "", ""}, + { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_loss", "Annual receiver convective and radiative losses", "MWht", "", "Tower and Receiver", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_q_piping_loss", "Annual tower piping losses", "MWht", "", "Tower and Receiver", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_q_rec_startup", "Annual receiver startup energy", "MWht", "", "Tower and Receiver", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_E_tower_pump", "Annual tower pumping power", "MWhe", "", "Tower and Receiver", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_NUMBER, "annual_eta_rec_th", "Annual receiver thermal efficiency ignoring rec reflective loss", "", "", "Tower and Receiver", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_NUMBER, "annual_eta_rec_th_incl_refl", "Annual receiver thermal efficiency including reflective loss", "", "", "Tower and Receiver", "sim_type=1", "", ""}, - { SSC_OUTPUT, SSC_NUMBER, "annual_q_defocus_est", "Annual defocus loss estimate", "MWt-hr", "", "Tower and Receiver", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_q_defocus_est", "Annual defocus loss estimate", "MWht", "", "Tower and Receiver", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "conversion_factor", "Gross to net conversion factor", "%", "", "", "sim_type=1", "", ""}, { SSC_OUTPUT, SSC_NUMBER, "capacity_factor", "Capacity factor", "%", "", "", "sim_type=1", "", ""}, @@ -784,7 +784,7 @@ static var_info _cm_vtab_tcsmolten_salt[] = { { SSC_OUTPUT, SSC_ARRAY, "is_field_tracking_final", "Final heliostat field operation is tracking? (1 = true)", "-", "", "System Control", "", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "rec_op_mode_final", "Final receiver operating mode 0: off, 1: startup, 2: on", "-", "", "System Control", "", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "rec_startup_time_remain_final", "Final receiver startup time remaining", "hr", "", "System Control", "", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "rec_startup_energy_remain_final", "Final receiver startup energy remaining", "W-hr", "", "System Control", "", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "rec_startup_energy_remain_final", "Final receiver startup energy remaining", "Wh", "", "System Control", "", "", "" }, // Power cycle { SSC_OUTPUT, SSC_ARRAY, "pc_op_mode_final", "Final cycle operation mode 0:startup, 1:on, 2:standby, 3:off, 4:startup_controlled", "-", "", "System Control", "", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "pc_startup_time_remain_final", "Final cycle startup time remaining", "hr", "", "System Control", "", "", "" }, @@ -919,7 +919,7 @@ class cm_tcsmolten_salt : public compute_module // System Design Calcs double q_dot_pc_des = W_dot_cycle_des / eta_cycle; //[MWt] - double Q_tes = q_dot_pc_des * tshours; //[MWt-hr] + double Q_tes = q_dot_pc_des * tshours; //[MWht] double solar_mult = as_number("solarm"); //[-] double q_dot_rec_des = q_dot_pc_des * solar_mult; //[MWt] @@ -1839,7 +1839,7 @@ class cm_tcsmolten_salt : public compute_module // so it can use the active receiver area C_pt_sf_perf_interp heliostatfield(A_rec); - heliostatfield.ms_params.m_p_start = as_double("p_start"); //[kWe-hr] Heliostat startup energy + heliostatfield.ms_params.m_p_start = as_double("p_start"); //[kWhe] Heliostat startup energy heliostatfield.ms_params.m_p_track = as_double("p_track"); //[kWe] Heliostat tracking power heliostatfield.ms_params.m_hel_stow_deploy = as_double("hel_stow_deploy"); // N/A heliostatfield.ms_params.m_v_wind_max = as_double("v_wind_max"); // N/A @@ -2479,23 +2479,23 @@ class cm_tcsmolten_salt : public compute_module // Heater assign("q_dot_heater_des", q_dot_heater_des); //[MWt] double W_dot_heater_des_calc = 0.0; //[MWe] - double E_heater_su_des = 0.0; //[MWt-hr] + double E_heater_su_des = 0.0; //[MWht] if (is_parallel_heater) { p_electric_resistance->get_design_parameters(E_heater_su_des, W_dot_heater_des_calc); } assign("W_dot_heater_des", (ssc_number_t)W_dot_heater_des_calc); //[MWe] - assign("E_heater_su_des", (ssc_number_t)E_heater_su_des); //[MWt-hr] + assign("E_heater_su_des", (ssc_number_t)E_heater_su_des); //[MWht] // ************************* // Thermal Energy Storage double V_tes_htf_avail_calc /*m3*/, V_tes_htf_total_calc /*m3*/, h_tank_calc /*m*/, d_tank_calc /*m*/, q_dot_loss_tes_des_calc /*MWt*/, dens_store_htf_at_T_ave_calc /*kg/m3*/, - Q_tes_des_calc /*MWt-hr*/; + Q_tes_des_calc /*MWht*/; storage.get_design_parameters(V_tes_htf_avail_calc, V_tes_htf_total_calc, h_tank_calc, d_tank_calc, q_dot_loss_tes_des_calc, dens_store_htf_at_T_ave_calc, Q_tes_des_calc); - assign("Q_tes_des", Q_tes_des_calc); //[MWt-hr] + assign("Q_tes_des", Q_tes_des_calc); //[MWht] assign("V_tes_htf_avail_des", V_tes_htf_avail_calc); //[m3] assign("V_tes_htf_total_des", V_tes_htf_total_calc); //[m3] assign("d_tank_tes", d_tank_calc); //[m] @@ -2978,11 +2978,11 @@ class cm_tcsmolten_salt : public compute_module accumulate_annual_for_year("gen", "annual_energy", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed/steps_per_hour); accumulate_annual_for_year("gensales_after_avail", "annual_sales_energy", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); - accumulate_annual_for_year("P_cycle", "annual_W_cycle_gross", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed/steps_per_hour); //[kWe-hr] - accumulate_annual_for_year("P_cooling_tower_tot", "annual_W_cooling_tower", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWe-hr] + accumulate_annual_for_year("P_cycle", "annual_W_cycle_gross", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed/steps_per_hour); //[kWhe] + accumulate_annual_for_year("P_cooling_tower_tot", "annual_W_cooling_tower", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWhe] - accumulate_annual_for_year("Q_thermal", "annual_q_rec_htf", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[MWt-hr] - accumulate_annual_for_year("q_dot_rec_inc", "annual_q_rec_inc", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[MWt-hr] + accumulate_annual_for_year("Q_thermal", "annual_q_rec_htf", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[MWht] + accumulate_annual_for_year("q_dot_rec_inc", "annual_q_rec_inc", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[MWht] accumulate_annual_for_year("q_thermal_loss", "annual_q_rec_loss", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("q_piping_losses", "annual_q_piping_loss", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("q_startup", "annual_q_rec_startup", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); @@ -3002,8 +3002,8 @@ class cm_tcsmolten_salt : public compute_module i_defocus = min(1.0, max(0.0, p_defocus[i])); q_defocus_sum += p_q_rec_in[i]*(1.0 - i_defocus); //[MWt] } - q_defocus_sum *= sim_setup.m_report_step/3600.0; //[MWt-hr] - assign("annual_q_defocus_est", q_defocus_sum); //[MWt-hr] + q_defocus_sum *= sim_setup.m_report_step/3600.0; //[MWht] + assign("annual_q_defocus_est", q_defocus_sum); //[MWht] accumulate_annual_for_year("disp_objective", "disp_objective_ann", sim_setup.m_report_step / 3600.0 / as_double("disp_frequency"), steps_per_hour, 1, n_steps_fixed/steps_per_hour); accumulate_annual_for_year("disp_solve_iter", "disp_iter_ann", sim_setup.m_report_step / 3600.0 / as_double("disp_frequency"), steps_per_hour, 1, n_steps_fixed/steps_per_hour); @@ -3033,9 +3033,9 @@ class cm_tcsmolten_salt : public compute_module double V_water_mirrors = as_double("water_usage_per_wash") / 1000.0*A_sf*as_double("washing_frequency"); assign("annual_total_water_use", (ssc_number_t)(V_water_cycle + V_water_mirrors)); - ssc_number_t ae = as_number("annual_energy"); //[kWe-hr] - ssc_number_t pg = as_number("annual_W_cycle_gross"); //[kWe-hr] - ssc_number_t annual_sales_energy = as_number("annual_sales_energy"); //[kWe-hr] + ssc_number_t ae = as_number("annual_energy"); //[kWhe] + ssc_number_t pg = as_number("annual_W_cycle_gross"); //[kWhe] + ssc_number_t annual_sales_energy = as_number("annual_sales_energy"); //[kWhe] ssc_number_t convfactor = (pg != 0) ? 100 * ae / pg : (ssc_number_t)0.0; assign("conversion_factor", convfactor); @@ -3106,10 +3106,10 @@ class cm_tcsmolten_salt : public compute_module double total_energy_in_sub_period = 0.0; for (size_t i = 0; i < n_ppa_steps; i++) { size_t j = ppa_pairs[i].first; - total_energy_in_sub_period += p_gen[j] * sim_setup.m_report_step / 3600.0; //[kWe-hr] + total_energy_in_sub_period += p_gen[j] * sim_setup.m_report_step / 3600.0; //[kWhe] } - double total_energy_nameplate = nameplate * n_ppa_steps * sim_setup.m_report_step / 3600.0; //[kWe-hr] + double total_energy_nameplate = nameplate * n_ppa_steps * sim_setup.m_report_step / 3600.0; //[kWhe] double cap_fac_highest_1000_ppas = 0.0; if (nameplate > 0.0) { @@ -3123,10 +3123,10 @@ class cm_tcsmolten_salt : public compute_module total_energy_in_sub_period = 0.0; for (size_t i = 0; i < n_ppa_steps; i++) { size_t j = ppa_pairs[i].first; - total_energy_in_sub_period += p_gen[j] * sim_setup.m_report_step / 3600.0; //[kWe-hr] + total_energy_in_sub_period += p_gen[j] * sim_setup.m_report_step / 3600.0; //[kWhe] } - total_energy_nameplate = nameplate * n_ppa_steps * sim_setup.m_report_step / 3600.0; //[kWe-hr] + total_energy_nameplate = nameplate * n_ppa_steps * sim_setup.m_report_step / 3600.0; //[kWhe] double cap_fac_highest_2000_ppas = 0.0; if (nameplate > 0.0) { @@ -3154,10 +3154,10 @@ class cm_tcsmolten_salt : public compute_module double total_energy_in_sub_period_tdry = 0.0; for (size_t i = 0; i < n_tdry_steps; i++) { size_t j = tdry_pairs[i].first; - total_energy_in_sub_period_tdry += p_gen[j] * sim_setup.m_report_step / 3600.0; //[kWe-hr] + total_energy_in_sub_period_tdry += p_gen[j] * sim_setup.m_report_step / 3600.0; //[kWhe] } - double total_energy_nameplate_tdry = nameplate * n_tdry_steps * sim_setup.m_report_step / 3600.0; //[kWe-hr] + double total_energy_nameplate_tdry = nameplate * n_tdry_steps * sim_setup.m_report_step / 3600.0; //[kWhe] double cap_fac_warmest_100_tdrys = 0.0; if (nameplate > 0.0) { diff --git a/ssc/cmod_trough_physical.cpp b/ssc/cmod_trough_physical.cpp index afcf126b4..408036d75 100644 --- a/ssc/cmod_trough_physical.cpp +++ b/ssc/cmod_trough_physical.cpp @@ -168,7 +168,7 @@ static var_info _cm_vtab_trough_physical[] = { { SSC_INPUT, SSC_MATRIX, "Design_loss", "Receiver heat loss at design", "W/m", "", "solar_field", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "rec_su_delay", "Fixed startup delay time for the receiver", "hr", "", "solar_field", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "rec_qf_delay", "Energy-based receiver startup delay (fraction of rated thermal power)", "-", "", "solar_field", "*", "", "" }, - { SSC_INPUT, SSC_NUMBER, "p_start", "Collector startup energy, per SCA", "kWe-hr", "", "solar_field", "*", "", "" }, + { SSC_INPUT, SSC_NUMBER, "p_start", "Collector startup energy, per SCA", "kWhe", "", "solar_field", "*", "", "" }, // Power Cycle //{ SSC_INPUT, SSC_NUMBER, "q_pb_design", "Design heat input to power block", "MWt", "", "controller", "*", "", "" }, @@ -294,7 +294,7 @@ static var_info _cm_vtab_trough_physical[] = { { SSC_INPUT, SSC_NUMBER, "disp_pen_ramping", "Dispatch cycle production change penalty", "$/MWe-change", "", "tou", "is_dispatch=1", "", "" }, { SSC_INPUT, SSC_NUMBER, "disp_inventory_incentive", "Dispatch storage terminal inventory incentive multiplier", "", "", "System Control", "?=0.0", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_NUMBER, "q_rec_standby", "Receiver standby energy consumption", "kWt", "", "tou", "?=9e99", "", "SIMULATION_PARAMETER" }, - { SSC_INPUT, SSC_NUMBER, "q_rec_heattrace", "Receiver heat trace energy consumption during startup", "kWe-hr", "", "tou", "?=0.0", "", "SIMULATION_PARAMETER" }, + { SSC_INPUT, SSC_NUMBER, "q_rec_heattrace", "Receiver heat trace energy consumption during startup", "kWhe", "", "tou", "?=0.0", "", "SIMULATION_PARAMETER" }, { SSC_INPUT, SSC_ARRAY, "f_turb_tou_periods", "Dispatch logic for turbine load fraction", "-", "", "tou", "*", "", "" }, { SSC_INPUT, SSC_NUMBER, "csp_financial_model", "", "1-8", "", "Financial Model", "?=1", "INTEGER,MIN=0", "" }, @@ -712,14 +712,14 @@ static var_info _cm_vtab_trough_physical[] = { { SSC_OUTPUT, SSC_ARRAY, "q_balance", "Relative energy balance error", "", "", "solver", "sim_type=1", "", "" }, // Monthly Outputs - { SSC_OUTPUT, SSC_ARRAY, "monthly_energy", "Monthly AC energy in Year 1", "kWh", "", "Post-process", "sim_type=1", "LENGTH=12", "" }, + { SSC_OUTPUT, SSC_ARRAY, "monthly_energy", "Monthly AC energy in Year 1", "kWh", "", "Post-process", "sim_type=1", "LENGTH=12", "" }, // Annual Outputs - { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net electrical energy generated with availability derate", "kWe-hr", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWt-hr", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net electrical energy w/ avail. derate", "kWhe", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWht", "", "Post-process", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_total_water_use", "Total Annual Water Usage", "m^3", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_field_freeze_protection", "Annual thermal power for field freeze protection", "kWt-hr", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_tes_freeze_protection", "Annual thermal power for TES freeze protection", "kWt-hr", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_field_freeze_protection", "Annual thermal power for field freeze protection", "kWht", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_tes_freeze_protection", "Annual thermal power for TES freeze protection", "kWht", "", "Post-process", "sim_type=1", "", "" }, // Newly added { SSC_OUTPUT, SSC_ARRAY, "n_op_modes", "Operating modes in reporting timestep", "", "", "solver", "sim_type=1", "", "" }, @@ -765,8 +765,8 @@ static var_info _cm_vtab_trough_physical[] = { { SSC_OUTPUT, SSC_ARRAY, "P_fixed", "Parasitic power fixed load", "MWe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "P_plant_balance_tot", "Parasitic power generation-dependent load", "MWe", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "P_out_net", "System net electric power generated", "MWe", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate", "kWe", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "P_out_net", "System net electrical power", "MWe", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_W_cycle_gross", "Electrical source - Power cycle gross output", "kWhe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "conversion_factor", "Gross to Net Conversion Factor", "%", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "capacity_factor", "Capacity factor", "%", "", "system", "sim_type=1", "", "" }, @@ -1198,7 +1198,7 @@ class cm_trough_physical : public compute_module c_trough.m_Design_loss = as_matrix("Design_loss"); //[-] Receiver heat loss at design c_trough.m_rec_su_delay = as_double("rec_su_delay"); //[hr] Fixed startup delay time for the receiver c_trough.m_rec_qf_delay = as_double("rec_qf_delay"); //[-] Energy-based receiver startup delay (fraction of rated thermal power) - c_trough.m_p_start = as_double("p_start"); //[kWe-hr] Collector startup energy, per SCA + c_trough.m_p_start = as_double("p_start"); //[kWhe] Collector startup energy, per SCA c_trough.m_calc_design_pipe_vals = as_boolean("calc_design_pipe_vals"); //[-] Should the HTF state be calculated at design conditions c_trough.m_L_rnr_pb = as_double("L_rnr_pb"); //[m] Length of hot or cold runner pipe around the power block c_trough.m_N_max_hdr_diams = as_double("N_max_hdr_diams"); //[-] Maximum number of allowed diameters in each of the hot and cold headers @@ -2647,8 +2647,8 @@ class cm_trough_physical : public compute_module // Annual outputs accumulate_annual_for_year("gen", "annual_energy", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); - accumulate_annual_for_year("P_cycle", "annual_W_cycle_gross", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWe-hr] - //accumulate_annual_for_year("W_dot_par_tot_haf", "annual_electricity_consumption", sim_setup.m_report_step/3600.0, steps_per_hour); //[kWe-hr] + accumulate_annual_for_year("P_cycle", "annual_W_cycle_gross", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWhe] + //accumulate_annual_for_year("W_dot_par_tot_haf", "annual_electricity_consumption", sim_setup.m_report_step/3600.0, steps_per_hour); //[kWhe] accumulate_annual_for_year("disp_objective", "disp_objective_ann", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("disp_solve_iter", "disp_iter_ann", 1000.0*sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("disp_presolve_nconstr", "disp_presolve_nconstr_ann", sim_setup.m_report_step / 3600.0 / as_double("disp_frequency"), steps_per_hour, 1, n_steps_fixed / steps_per_hour); @@ -2657,10 +2657,10 @@ class cm_trough_physical : public compute_module accumulate_annual_for_year("q_dc_tes", "annual_q_dc_tes", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); accumulate_annual_for_year("q_ch_tes", "annual_q_ch_tes", sim_setup.m_report_step / 3600.0, steps_per_hour, 1, n_steps_fixed / steps_per_hour); - ssc_number_t annual_field_fp = accumulate_annual_for_year("q_dot_freeze_prot", "annual_field_freeze_protection", sim_setup.m_report_step / 3600.0*1.E3, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWt-hr] - ssc_number_t annual_tes_fp = accumulate_annual_for_year("q_tes_heater", "annual_tes_freeze_protection", sim_setup.m_report_step / 3600.0*1.E3, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWt-hr] + ssc_number_t annual_field_fp = accumulate_annual_for_year("q_dot_freeze_prot", "annual_field_freeze_protection", sim_setup.m_report_step / 3600.0*1.E3, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWht] + ssc_number_t annual_tes_fp = accumulate_annual_for_year("q_tes_heater", "annual_tes_freeze_protection", sim_setup.m_report_step / 3600.0*1.E3, steps_per_hour, 1, n_steps_fixed / steps_per_hour); //[kWht] - ssc_number_t annual_thermal_consumption = annual_field_fp + annual_tes_fp; //[kWt-hr] + ssc_number_t annual_thermal_consumption = annual_field_fp + annual_tes_fp; //[kWht] assign("annual_thermal_consumption", annual_thermal_consumption); // Reporting dispatch solution counts diff --git a/ssc/cmod_trough_physical_iph.cpp b/ssc/cmod_trough_physical_iph.cpp index 75d189e18..c1e1fcac7 100644 --- a/ssc/cmod_trough_physical_iph.cpp +++ b/ssc/cmod_trough_physical_iph.cpp @@ -652,8 +652,8 @@ static var_info _cm_vtab_trough_physical_iph[] = { // Annual Outputs - { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy generated with availability derate", "kWht", "", "Post-process", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy generated with availability derate in MMBtu", "MMBtu", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy", "Annual net thermal energy w/ avail. derate", "kWht", "", "Post-process", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_NUMBER, "annual_energy_heat_btu", "Annual net thermal energy w/ avail. derate", "MMBtu", "", "Post-process", "sim_type=1", "", "" }, //{ SSC_OUTPUT, SSC_NUMBER, "annual_gross_energy", "Annual Gross Electrical Energy Production w/ avail derate", "kWhe", "", "Post-process", "*", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "annual_thermal_consumption", "Annual thermal freeze protection required", "kWht", "", "Post-process", "sim_type=1", "", "" }, @@ -716,9 +716,9 @@ static var_info _cm_vtab_trough_physical_iph[] = { { SSC_OUTPUT, SSC_ARRAY, "P_fixed", "Parasitic power fixed load", "MWe", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_ARRAY, "P_plant_balance_tot", "Parasitic power generation-dependent load", "MWe", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power generated with availability derate", "kWt", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electric power generated with availability derate", "kWe", "", "system", "sim_type=1", "", "" }, - { SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power generated with availability derate in MMBtu/hr", "MMBtu/hr", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen_heat", "System net thermal power w/ avail. derate", "kWt", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen", "System net electrical power w/ avail. derate", "kWe", "", "system", "sim_type=1", "", "" }, + { SSC_OUTPUT, SSC_ARRAY, "gen_heat_btu", "System net thermal power w/ avail. derate", "MMBtu/hr", "", "system", "sim_type=1", "", "" }, //{ SSC_OUTPUT, SSC_NUMBER, "conversion_factor", "Gross to Net Conversion Factor", "%", "", "system", "sim_type=1", "", "" }, { SSC_OUTPUT, SSC_NUMBER, "capacity_factor", "Capacity factor", "%", "", "system", "sim_type=1", "", "" },