Hcpv¶
Wrapper for SAM Simulation Core model: cmod_hcpv.cpp
Input Consistency Warning¶
As described in Possible Problems, some input parameters are interdependent but the equations that enforce consistency are not available in this PySAM module. Therefore, the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require additional logic include:
- array_modules_per_tracker
- array_num_inverters
- array_num_trackers
- inv_snl_pdco
- module_a0
- module_a1
- module_a2
- module_a3
- module_a4
- module_alignment_error
- module_cell_area
- module_concentration
- module_flutter_loss_coeff
- module_ncells
- module_optical_error
- module_reference
- system_capacity
Provided for each of these inputs is a list of other inputs that are potentially interdependent.
Creating an Instance¶
Refer to the Initializing a Model page for details on the different ways to create an instance of a PySAM class.
Hcpv model description
Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model
-
PySAM.Hcpv.
default
(config) → Hcpv¶ Use default attributes config options:
- “HighXConcentratingPVAllEquityPartnershipFlip”
- “HighXConcentratingPVLCOECalculator”
- “HighXConcentratingPVLeveragedPartnershipFlip”
- “HighXConcentratingPVMerchantPlant”
- “HighXConcentratingPVNone”
- “HighXConcentratingPVSaleLeaseback”
- “HighXConcentratingPVSingleOwner”
-
PySAM.Hcpv.
from_existing
(data, optional config) → Hcpv¶ Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.
-
PySAM.Hcpv.
new
() → Hcpv¶
-
PySAM.Hcpv.
wrap
(ssc_data_t) → Hcpv¶ Use existing PySSC data
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap
Functions¶
-
class
PySAM.Hcpv.
Hcpv
¶ This class contains all the variable information for running a simulation. Variables are grouped together in the subclasses as properties. If property assignments are the wrong type, an error is thrown.
-
assign
(dict) → None¶ Assign attributes from nested dictionary, except for Outputs
nested_dict = { 'SolarResourceData': { var: val, ...}, ...}
-
execute
(int verbosity) → None¶ Execute simulation with verbosity level 0 (default) or 1
-
export
() → dict¶ Export attributes into nested dictionary
-
replace
(dict) → None¶ Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.
nested_dict = { 'SolarResourceData': { var: val, ...}, ...}
-
unassign
(name) → None¶ Unassign a value in any of the variable groups.
-
value
(name, optional value) → Union[None, float, dict, sequence, str]¶ Get or set by name a value in any of the variable groups.
-
SolarResourceData Group¶
-
class
PySAM.Hcpv.Hcpv.
SolarResourceData
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
SolarResourceData_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
SolarResourceData_vals = { var: val, ...}
-
file_name
¶ Weather file in TMY2, TMY3, EPW, or SMW.
Constraints: LOCAL_FILE
Required: True
Type: str
-
PVWatts Group¶
-
class
PySAM.Hcpv.Hcpv.
PVWatts
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
PVWatts_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
PVWatts_vals = { var: val, ...}
-
system_capacity
¶ Nameplate capacity [kW]
Required: True
- This variable may need to be updated if the values of the following have changed:
- array_modules_per_tracker
- array_num_trackers
- module_a0
- module_a1
- module_a2
- module_a3
- module_a4
- module_alignment_error
- module_cell_area
- module_concentration
- module_flutter_loss_coeff
- module_ncells
- module_optical_error
- module_reference
Type: float
-
HCPVModule Group¶
-
class
PySAM.Hcpv.Hcpv.
HCPVModule
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
HCPVModule_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
HCPVModule_vals = { var: val, ...}
-
module_a
¶ Equation variable (a), at high irradiance & low wind speed [none]
Required: True
Type: float
-
module_a0
¶ Air mass modifier coefficient 0 [none]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_a1
¶ Air mass modifier coefficient 1 [none]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_a2
¶ Air mass modifier coefficient 2 [none]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_a3
¶ Air mass modifier coefficient 3 [none]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_a4
¶ Air mass modifier coefficient 4 [none]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_alignment_error
¶ Alignment loss factor [0..1]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_b
¶ Equation variable (b), rate at which module temp drops [none]
Required: True
Type: float
-
module_cell_area
¶ Single cell area [cm^2]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_concentration
¶ Concentration ratio [none]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_dT
¶ Equation variable (dT), temp diff between heat sink & cell [C]
Required: True
Type: float
-
module_flutter_loss_coeff
¶ Wind flutter loss factor [0..1 per m/s]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_mjeff
¶ Module junction efficiency array [percent]
Required: True
Type: sequence
-
module_ncells
¶ Number of cells [none]
Constraints: INTEGER
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_optical_error
¶ Optical error factor [0..1]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_rad
¶ POA irradiance array [W/m^2]
Required: True
Type: sequence
-
module_reference
¶ Index in arrays of the reference condition [none]
Constraints: INTEGER
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
module_temp_coeff
¶ Temperature coefficient [%/C]
Required: True
Type: float
-
InverterCECDatabase Group¶
-
class
PySAM.Hcpv.Hcpv.
InverterCECDatabase
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
InverterCECDatabase_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
InverterCECDatabase_vals = { var: val, ...}
-
inv_snl_c0
¶ Parameter defining the curvature (parabolic) of the relationship between ac-power and dc-power at the reference operating condition, default value of zero gives a linear relationship, (1/W) [xxx]
Required: True
Type: float
-
inv_snl_c1
¶ Empirical coefficient allowing Pdco to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]
Required: True
Type: float
-
inv_snl_c2
¶ Empirical coefficient allowing Pso to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]
Required: True
Type: float
-
inv_snl_c3
¶ Empirical coefficient allowing Co to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]
Required: True
Type: float
-
inv_snl_paco
¶ W maximum ac-power rating for inverter at reference or nominal operating condition, assumed to be an upper limit value, (W) [xxx]
Required: True
Type: float
-
inv_snl_pdco
¶ W dc-power level at which the ac-power rating is achieved at the reference operating condition, (W) [xxx]
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
Type: float
-
inv_snl_pnt
¶ W ac-power consumed by inverter at night (night tare) to maintain circuitry required to sense PV array voltage, (W) [xxx]
Required: True
Type: float
-
inv_snl_pso
¶ W dc-power required to start the inversion process, or self-consumption by inverter, strongly influences inverter efficiency at low power levels, (W) [xxx]
Required: True
Type: float
-
inv_snl_vdcmax
¶ V (Vdcmax) dc-voltage maximum operating voltage, (V) [xxx]
Required: True
Type: float
-
inv_snl_vdco
¶ V (Vnom) dc-voltage level at which the ac-power rating is achieved at the reference operating condition, (V) [xxx]
Required: True
Type: float
-
HCPVArray Group¶
-
class
PySAM.Hcpv.Hcpv.
HCPVArray
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
HCPVArray_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
HCPVArray_vals = { var: val, ...}
-
array_ac_wiring_loss
¶ AC wiring loss factor [0..1]
Required: True
Type: float
-
array_dc_mismatch_loss
¶ DC module mismatch loss factor [0..1]
Required: True
Type: float
-
array_dc_wiring_loss
¶ DC Wiring loss factor [0..1]
Required: True
Type: float
-
array_diode_conn_loss
¶ Diodes and connections loss factor [0..1]
Required: True
Type: float
-
array_enable_azalt_sf
¶ Boolean for irradiance derate [0-1]
Constraints: INTEGER
Required: True
Type: float
-
array_modules_per_tracker
¶ Modules on each tracker [none]
Constraints: INTEGER
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
array_monthly_soiling
¶ Monthly soiling factors array [0..1]
Required: True
Type: sequence
-
array_num_inverters
¶ Number of inverters [none]
Required: True
- This variable may need to be updated if the values of the following have changed:
- array_modules_per_tracker
- array_num_trackers
- inv_snl_pdco
- module_a0
- module_a1
- module_a2
- module_a3
- module_a4
- module_alignment_error
- module_cell_area
- module_concentration
- module_flutter_loss_coeff
- module_ncells
- module_optical_error
- module_reference
Type: float
-
array_num_trackers
¶ Number of trackers [none]
Constraints: INTEGER
Required: True
- Changes to this variable may require updating the values of the following:
- array_num_inverters
- system_capacity
Type: float
-
array_rlim_az_max
¶ Tracker maximum azimuth angle [deg]
Required: True
Type: float
-
array_rlim_az_min
¶ Tracker minimum azimuth angle [deg]
Required: True
Type: float
-
array_rlim_el_max
¶ Tracker maximum elevation angle [deg]
Required: True
Type: float
-
array_rlim_el_min
¶ Tracker minimum elevation angle [deg]
Required: True
Type: float
-
array_tracker_power_fraction
¶ Single tracker power fraction [0..1]
Required: True
Type: float
-
array_tracking_error
¶ General racking error [0..1]
Required: True
Type: float
-
array_wind_stow_speed
¶ Allowed wind speed before stowing [m/s]
Required: True
Type: float
-
azaltsf
¶ Azimuth-Altitude Shading Table
Required: True
Type: sequence[sequence]
-
AdjustmentFactors Group¶
-
class
PySAM.Hcpv.Hcpv.
AdjustmentFactors
¶ -
assign
() → None¶ Assign attributes from dictionary
-
export
() → Dict¶ Export attributes into dictionary
-
constant
¶ float
Type: type
-
dc_constant
¶ DC Constant loss adjustment [%]
-
dc_hourly
¶ DC Hourly Adjustment Factors [%]
-
dc_periods
¶ DC Period-based Adjustment Factors [%]
-
hourly
¶ AC Hourly Adjustment Factors [%]
-
periods
¶ AC Period-based Adjustment Factors [%]
-
sf_constant
¶ DC Constant loss adjustment [%]
-
sf_hourly
¶ DC Hourly Adjustment Factors [%]
-
sf_periods
¶ DC Period-based Adjustment Factors [%]
-
Outputs Group¶
-
class
PySAM.Hcpv.Hcpv.
Outputs
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
Outputs_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
Outputs_vals = { var: val, ...}
-
ac_loss_tracker_kwh
¶ Annual tracker power loss [kWh]
Type: float
-
annual_ac
¶ AC gross [kWh]
Type: float
-
annual_beam
¶ Beam irradiance [kW/m2]
Type: float
-
annual_dc
¶ DC gross [kWh]
Type: float
-
annual_dc_net
¶ DC net [kWh]
Type: float
-
annual_energy
¶ Annual Energy [kWh]
Type: float
-
annual_energy_distribution_time
¶ Annual energy production as function of time [kW]
Type: sequence[sequence]
-
annual_input_radiation
¶ Input radiation [kWh]
Type: float
-
capacity_factor
¶ Capacity factor [%]
Type: float
-
dc_loss_stowing_kwh
¶ Annual stowing power loss [kWh]
Type: float
-
dc_nominal
¶ Annual DC nominal [kWh]
Type: float
-
gen
¶ System power generated [kW]
Type: sequence
-
hourly_ac
¶ AC gross [kWh]
Type: sequence
-
hourly_airmass
¶ Relative air mass [none]
Type: sequence
-
hourly_beam
¶ Beam irradiance [kW/m2]
Type: sequence
-
hourly_celleff
¶ Cell efficiency [%]
Type: sequence
-
hourly_dc
¶ DC gross [kWh]
Type: sequence
-
hourly_dc_net
¶ DC net [kWh]
Type: sequence
-
hourly_input_radiation
¶ Input radiation [kWh]
Type: sequence
-
hourly_modeff
¶ Module efficiency [%]
Type: sequence
-
hourly_poa
¶ POA on cell [W/m2]
Type: sequence
-
hourly_sazi
¶ Tracker azimuth [deg]
Type: sequence
-
hourly_shading_derate
¶ Shading derate [none]
Type: sequence
-
hourly_solazi
¶ Hourly solar azimuth [deg]
Type: sequence
-
hourly_solzen
¶ Hourly solar zenith [deg]
Type: sequence
-
hourly_stilt
¶ Tracker tilt [deg]
Type: sequence
-
hourly_sunup
¶ Sun up? (0/1) [0 or 1]
Type: sequence
-
hourly_tcell
¶ Cell temperature [C]
Type: sequence
-
hourly_tdry
¶ Ambient dry bulb temperature [C]
Type: sequence
-
hourly_tmod
¶ Module backplate temp [C]
Type: sequence
-
hourly_windspd
¶ Wind speed [m/s]
Type: sequence
-
kwh_per_kw
¶ Energy yield [kWh/kW]
Type: float
-
modeff_ref
¶ Module efficiency [-]
Type: float
-
monthly_beam
¶ Beam irradiance [kW/m2]
Type: sequence
-
monthly_dc_net
¶ DC net [kWh]
Type: sequence
-
monthly_energy
¶ Monthly Energy [kWh]
Type: sequence
-
monthly_input_radiation
¶ Input radiation [kWh]
Type: sequence
-
tracker_nameplate_watts
¶ Tracker nameplate [watts]
Type: float
-