Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update marine device cost curves #1249

Merged
merged 7 commits into from
Dec 6, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 29 additions & 29 deletions ssc/cmod_mhk_costs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -167,58 +167,58 @@ class cm_mhk_costs : public compute_module
//Most CapEx costs depend on technology
if (technology == TIDAL)
{ // device = RM1
structural_assembly = 284245.0 * system_capacity_MW + 785137.0;
power_takeoff = 1527017.0 * system_capacity_MW + 505548.0;
mooring_found_substruc = 437091.0 * system_capacity_MW + 433518.0;
structural_assembly = 417185.0 * system_capacity_MW + 1068446.0;
power_takeoff = 1821066.0 * system_capacity_MW + 602898.0;
mooring_found_substruc = 443055.0 * system_capacity_MW + 384877.0;
//BOS costs SAM Cost Model v8.xlsx
development = 3197591.76 * pow(system_capacity_MW, 0.49);
eng_and_mgmt = 850744.0 * pow(system_capacity_MW, 0.565);
development = 189783 * system_capacity_MW + 8935599;
eng_and_mgmt = 78127 * system_capacity_MW + 2325517;
}
else // wave
{
if (device_type == RM3)
{
structural_assembly = 6854912.0 * system_capacity_MW + 2629191.0;
power_takeoff = 2081129.0 * pow(system_capacity_MW, 0.91);
mooring_found_substruc = 1836365.0 * system_capacity_MW + 29672.0;
structural_assembly = 8174919.0 * system_capacity_MW + 3135478.0;
power_takeoff = 2481879.0 * pow(system_capacity_MW, 0.91);
mooring_found_substruc = 2189982.0 * system_capacity_MW + 35386.0;
//BOS costs SAM Cost Model v8.xlsx
development = 3197591.76 * pow(system_capacity_MW, 0.49);
eng_and_mgmt = 850744.0 * pow(system_capacity_MW, 0.5649);
development = 189783 * system_capacity_MW + 8935599;
eng_and_mgmt = 78127 * system_capacity_MW + 2325517;
}

else if (device_type == RM5)
{
structural_assembly = 6848402.0 * system_capacity_MW + 3315338.0;
power_takeoff = 1600927.0 * pow(system_capacity_MW, 0.91);
mooring_found_substruc = 2158462.0 * system_capacity_MW + 1048932.0;
structural_assembly = 8167155.0 * system_capacity_MW + 3953752.0;
power_takeoff = 1909207.0 * pow(system_capacity_MW, 0.91);
mooring_found_substruc = 2574104.0 * system_capacity_MW + 1250918.0;
//BOS costs SAM Cost Model v8.xlsx
development = 3197591.76 * pow(system_capacity_MW, 0.49);
eng_and_mgmt = 850744.0 * pow(system_capacity_MW, 0.5649);
development = 189783 * system_capacity_MW + 8935599;
eng_and_mgmt = 78127 * system_capacity_MW + 2325517;
}

else if (device_type == RM6)
{
structural_assembly = 13320092.0 * system_capacity_MW + 6681164.0;
power_takeoff = 3796551.0 * pow(system_capacity_MW, 0.78);
mooring_found_substruc = 2030816.0 * system_capacity_MW + 478400.0;
structural_assembly = 15885057.0 * system_capacity_MW + 7967714.0;
power_takeoff = 4527629.0 * pow(system_capacity_MW, 0.78);
mooring_found_substruc = 2421878.0 * system_capacity_MW + 570523.0;
//BOS costs SAM Cost Model v8.xlsx
development = 3197591.76 * pow(system_capacity_MW, 0.49);
eng_and_mgmt = 850744.0 * pow(system_capacity_MW, 0.565);
development = 189783 * system_capacity_MW + 8935599;
eng_and_mgmt = 78127 * system_capacity_MW + 2325517;
}

else //generic model applies to everything else
{
structural_assembly = 6854912.0 * system_capacity_MW + 2629191.0;
power_takeoff = 1179579.0 * system_capacity_MW + 2495107.0;
mooring_found_substruc = 1178598.0 * system_capacity_MW + 1602348.0;
structural_assembly = 7708042.0 * system_capacity_MW + 7092078;
power_takeoff = 1550104.0 * system_capacity_MW + 5331628.0;
mooring_found_substruc = 1619167.0 * system_capacity_MW;
//BOS costs SAM Cost Model v8.xlsx
development = 3197591.0 * pow(system_capacity_MW, 0.49);
eng_and_mgmt = 850744.0 * pow(system_capacity_MW, 0.565);
development = 189783 * system_capacity_MW + 8935599;
eng_and_mgmt = 78127 * system_capacity_MW + 2325517;
}
}

// REmaining BOS costs that are not CapEx dependent and not technology dependent
assembly_and_install = 2805302.0 * pow(system_capacity_MW, 0.66);
assembly_and_install = 2564748 * pow(system_capacity_MW, 0.67);
other_infrastructure = 0;

//electrical infrastructure costs
Expand Down Expand Up @@ -338,11 +338,11 @@ class cm_mhk_costs : public compute_module
+ array_cable_system + export_cable_system + onshore_substation + offshore_substation + other_elec_infra;

// Calculate the CapEx dependent BOS costs
plant_commissioning = 0.016 * capex;
site_access_port_staging = 0.011 * capex;
plant_commissioning = 56103 * system_capacity_MW;
site_access_port_staging = 75462 * system_capacity_MW;

// Calculate the CapEx-dependent financial costs
project_contingency = 0.05 * capex;
project_contingency = 0.08 * capex;
insurance_during_construction = 0.01 * capex;
reserve_accounts = 0.03 * capex;

Expand Down
5 changes: 2 additions & 3 deletions ssc/cmod_mhk_tidal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ class cm_mhk_tidal : public compute_module
//Read and store tidal resource and power curve:
util::matrix_t<double> tidal_resource_matrix = as_matrix("tidal_resource");
util::matrix_t<double> tidal_power_curve = as_matrix("tidal_power_curve");
int tidal_resource_model_choice = as_integer("tidal_resource_model_choice");
//Check to ensure size of _power_vect == _speed_vect :
if ( tidal_power_curve.nrows() != tidal_resource_matrix.nrows() )
if ( tidal_resource_model_choice == 0 && tidal_power_curve.nrows() != tidal_resource_matrix.nrows() )
throw exec_error("mhk_tidal", "Size of Power Curve is not equal to Tidal Resource");

//Store the number of rows- this will have to change if resource and power curve can have different stream speeds
Expand Down Expand Up @@ -155,7 +155,6 @@ class cm_mhk_tidal : public compute_module
+ as_double("loss_downtime")
+ as_double("loss_additional");

int tidal_resource_model_choice = as_integer("tidal_resource_model_choice");
double tidal_resource_start_velocity = 0;
double tidal_power_start_velocity = 0;
double tidal_resource_end_velocity = 0;
Expand Down
2 changes: 1 addition & 1 deletion ssc/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1326,7 +1326,7 @@ var_info vtab_hybrid_fin_om[] = {
/* VARTYPE DATATYPE NAME LABEL UNITS META GROUP REQUIRED_IF CONSTRAINTS UI_HINTS*/
{ SSC_INPUT, SSC_NUMBER, "is_hybrid", "hybrid configuration", "0/1", "0=singletech,1=hybrid", "HybridFin", "?=0", "", "" },
{ SSC_INPUT, SSC_ARRAY, "cf_hybrid_om_sum", "Hybrid O&M costs", "$", "", "HybridFin", "", "", "" },
{ SSC_INOUT, SSC_ARRAY, "monthly_energy", "Monthly AC energy in Year 1", "kWh", "", "Monthly", "", "LENGTH = 12", "" },
{ SSC_INPUT, SSC_ARRAY, "monthly_energy", "Monthly AC energy in Year 1", "kWh", "", "Monthly", "", "LENGTH = 12", "" },

var_info_invalid };

Expand Down
Loading