def __init__(self,fixed_charge_rate = 0.12, construction_finance_rate=0.0, tax_rate = 0.4, discount_rate = 0.07, \ construction_time = 1.0, project_lifetime = 20.0, sea_depth = 20.0): super(fin_csm_fused, self).__init__() self.implement_fifc(fifc_finance) # pulls in variables from fused-wind interface (not explicit) self.add_output(**fusedvar('lcoe',0.0)) self.add_input(**fusedvar('sea_depth',0.0)) # #20.0, units = 'm', iotype = 'in', desc = 'sea depth for offshore wind plant') self.fin = fin_csm(fixed_charge_rate, construction_finance_rate, tax_rate, discount_rate, \ construction_time, project_lifetime)
def __init__(self): super(opex_csm_fused, self).__init__() self.implement_fifc(fifc_opex) # Add model specific inputs self.add_input( **fusedvar('sea_depth', 0.0) ) # #20.0, units = 'm', iotype = 'in', desc = 'sea depth for offshore wind plant') self.add_input(**fusedvar( 'year', 0.0)) # = Int(2009, iotype='in', desc='year for project start') self.add_input(**fusedvar( 'month', 0.0 )) # iotype = 'in', desc= 'month for project start') # units = months self.add_input( **fusedvar('net_aep', 0.0) ) # units = 'kW * h', iotype = 'in', desc = 'annual energy production for the plant') # Add model specific outputs self.add_output( **fusedvar('opex_breakdown_preventative_opex', 0.0) ) # desc='annual expenditures on preventative maintenance - BOP and turbines' self.add_output( **fusedvar('opex_breakdown_corrective_opex', 0.0) ) # desc='annual unscheduled maintenance costs (replacements) - BOP and turbines' self.add_output(**fusedvar('opex_breakdown_lease_opex', 0.0)) # desc='annual lease expenditures' self.add_output(**fusedvar( 'opex_breakdown_other_opex', 0.0)) # desc='other operational expenditures such as fixed costs' self.opex = opex_csm_component()
def __init__(self, offshore=False, advanced_blade=True, drivetrain_design='geared', \ crane=True, advanced_bedplate=0, advanced_tower=False): super(tcc_csm_fused, self).__init__() self.offshore = offshore self.advanced_blade = advanced_blade self.drivetrain_design = drivetrain_design self.crane = crane self.advanced_bedplate = advanced_bedplate self.advanced_tower = advanced_tower self.implement_fifc(fifc_tcc_costs) # pulls in variables from fused-wind interface (not explicit) # Add model specific inputs self.add_input(**fusedvar('rotor_thrust',0.0)) self.add_input(**fusedvar('rotor_torque',0.0)) self.add_input(**fusedvar('year',2009)) self.add_input(**fusedvar('month',12)) # Add model specific outputs self.add_output(**fusedvar('rotor_cost',0.0)) self.add_output(**fusedvar('rotor_mass',0.0)) self.add_output(**fusedvar('turbine_mass',0.0)) self.tcc = tcc_csm()
def __init__(self): super(bos_csm_fused, self).__init__() self.implement_fifc( fifc_bos_costs ) # pulls in variables from fused-wind interface (not explicit) # Add model specific inputs self.add_input( **fusedvar('sea_depth', 0.0) ) # = Float(20.0, units = 'm', iotype = 'in', desc = 'sea depth for offshore wind plant') self.add_input(**fusedvar( 'year', 0.0)) # = Int(2009, iotype='in', desc='year for project start') self.add_input(**fusedvar( 'month', 0.0)) # = Int(12, iotype = 'in', desc= 'month for project start') self.add_input(**fusedvar('multiplier', 0.0)) # = Float(1.0, iotype='in') # Add model specific outputs self.add_output( **fusedvar('bos_breakdown_development_costs', 0.0) ) # = Float(desc='Overall wind plant balance of station/system costs up to point of comissioning') self.add_output(**fusedvar( 'bos_breakdown_preparation_and_staging_costs', 0.0)) # = Float(desc='Site preparation and staging') self.add_output( **fusedvar('bos_breakdown_transportation_costs', 0.0) ) # = Float(desc='Any transportation costs to site / staging site') #BOS or turbine cost? self.add_output(**fusedvar( 'bos_breakdown_foundation_and_substructure_costs', 0.0)) # Float(desc='Foundation and substructure costs') self.add_output( **fusedvar('bos_breakdown_electrical_costs', 0.0) ) # Float(desc='Collection system, substation, transmission and interconnect costs') self.add_output(**fusedvar( 'bos_breakdown_assembly_and_installation_costs', 0.0)) # Float(desc='Assembly and installation costs') self.add_output( **fusedvar('bos_breakdown_soft_costs', 0.0) ) # = Float(desc='Contingencies, bonds, reserves, decommissioning, profits, and construction financing costs') self.add_output(**fusedvar( 'bos_breakdown_other_costs', 0.0 )) # = Float(desc='Bucket for any other costs not captured above') self.bos = bos_csm()
def __init__(self): super(aep_csm_fused, self).__init__() self.implement_fifc( fifc_aep ) # pulls in variables from fused-wind interface (not explicit) # Add model specific inputs self.add_input(**fusedvar('max_tip_speed', 0.0)) self.add_input(**fusedvar('max_power_coefficient', 0.0)) self.add_input(**fusedvar('opt_tsr', 0.0)) self.add_input(**fusedvar('cut_in_wind_speed', 0.0)) self.add_input(**fusedvar('cut_out_wind_speed', 0.0)) self.add_input(**fusedvar('air_density', 0.0)) self.add_input(**fusedvar('max_efficiency', 0.0)) self.add_input(**fusedvar('thrust_coefficient', 0.0)) self.add_input(**fusedvar('soiling_losses', 0.0)) self.add_input(**fusedvar('array_losses', 0.0)) self.add_input(**fusedvar('availability', 0.0)) self.add_input(**fusedvar('shear_exponent', 0.0)) self.add_input(**fusedvar('wind_speed_50m', 0.0)) self.add_input(**fusedvar('weibull_k', 0.0)) self.add_input(**fusedvar('hub_height', 0.0)) self.add_input(**fusedvar('altitude', 0.0)) # Add model specific outputs self.add_output( **fusedvar('rated_wind_speed', 0.) ) # = Float(11.506, units = 'm / s', iotype='out', desc='wind speed for rated power') self.add_output( **fusedvar('rated_rotor_speed', 0.) ) # = Float(12.126, units = 'rpm', iotype='out', desc = 'rotor speed at rated power') self.add_output( **fusedvar('rotor_thrust', 0.) ) # = Float(iotype='out', units='N', desc='maximum thrust from rotor') self.add_output( **fusedvar('rotor_torque', 0.) ) # = Float(iotype='out', units='N * m', desc = 'torque from rotor at rated power') # self.add_output(**fusedvar('power_curve', np.zeros(161))) # = Array(np.array([[4.0,80.0],[25.0, 5000.0]]), iotype='out', desc = 'power curve for a particular rotor') self.add_output( **fusedvar('gross_aep', 0.) ) # = Float(0.0, iotype='out', desc='Gross Annual Energy Production before availability and loss impacts', unit='kWh') self.add_output(**fusedvar( 'capacity_factor', 0.)) # = Float(iotype='out', desc='plant capacity factor') self.aep_csm_assembly = aep_csm_assembly()