Cabling Helper Classes#
For detailed methodology, please see Cable Helper Design.
- class ORBIT.phases.design._cables.Cable(cable_specs, **kwargs)[source]#
Base cable class.
- Parameters:
conductor_size (float) -- Cable cross section in \(mm^2\).
current_capacity (float) -- Cable current rating at 1m burial depth, \(A\).
rated_voltage (float) -- Cable rated line-to-line voltage, \(kV\).
ac_resistance (float) -- Cable resistance for AC current, (ohms/km).
inductance (float) -- Cable inductance, \(\frac{mH}{km}\).
capacitance (float) -- Cable capacitance, \(\frac{nF}{km}\).
linear_density (float) -- Dry mass per kilometer, \(\frac{tonnes}{km}\).
cost_per_km (int) -- Cable cost per kilometer, \(\frac{USD}{km}\).
char_impedance (float) -- Characteristic impedance of equivalent cable circuit, (ohms).
power_factor (float) -- Power factor of AC current in cable, no units.
cable_power (float) -- Maximum 3-phase power dissipated in cable in \(MW\).
line_frequency (int, default: 60) -- Frequency of the AC current, \(Hz\).
- required = ('conductor_size', 'current_capacity', 'rated_voltage', 'ac_resistance', 'inductance', 'capacitance', 'linear_density', 'cost_per_km', 'name')#
- calc_char_impedance()[source]#
Calculate characteristic impedance of an HVAC cable. HVDC cables are assumed to have no impedance. Note that the units for inductance and capacitance per unit length are normalized in the following formulae because the industry standards report inductance in mH/km (10^-3) and capacitance in nF/km (10^-9).
source: https://en.wikipedia.org/wiki/Characteristic_impedance
- class ORBIT.phases.design._cables.Plant(config)[source]#
A "data class" to create the windfarm specifications for ArraySystemDesign.
- layout#
The layout of the windfarm. Can only be "grid", "ring", or "custom". ..note:: custom is not implemented at this time.
- Type:
str
- num_turbines#
Number of turbines contained in the windfarm.
- Type:
int
- site_depth#
Average depth at the site in km.
- Type:
float
- turbine_rating#
Capacity of an individual turbine in MW.
- Type:
float
- row_distance#
Distance between any two strings in a grid layout in km. This is not used for ring layouts or custom layouts.
- Type:
float
- turbine_distance#
Distance between any two turbines in a string in km. This is not used for custom layouts.
- Type:
float
- substation_distance#
The shortest distance between the offshore substation and the first turbine of each string in km. In the ring layout this distance is uniform across all strings. In grid layout this represents the perpendicular distance to the first row of turbines. This is not used in custom layouts.
- Type:
float
- expected_config = {'plant': {'layout': 'str', 'num_turbines': 'int', 'row_distance': 'km (optional)', 'row_spacing': 'rotor diameters (optional)', 'substation_distance': 'km', 'turbine_distance': 'km (optional)', 'turbine_spacing': 'rotor diameters'}, 'site': {'depth': 'm'}, 'turbine': {'rotor_diameter': 'm', 'turbine_rating': 'MW'}}#
- class ORBIT.phases.design._cables.CableSystem(config, cable_type, **kwargs)[source]#
Base cabling system class. This is the parent class to ArraySystemDesign and ExportSystemDesign.
- cable_type#
An input of "array" or "export" to signify which cabling system is being designed.
- Type:
str
- cables#
Dictionary of cables being used with items as {"cable_name": Cable}.
- Type:
dict
- Raises:
NotImplementedError -- The property detailed_output is not yet defined.
Exception -- cables must be created in order to get outputs.
- cables = None#
- _initialize_cables()[source]#
Creates the base cable objects for each type of array cable being modeled.
- _get_touchdown_distance()[source]#
Returns the cable touchdown distance measured from the centerpoint of the substructure.
If depth <= 60, default is 0km (straight down assumed for fixed bottom). If depth > 60, default is 0.3 * depth.
- _get_catenary_length(d, h)[source]#
Returns the catenary length of a cable that touches down at depth d and horizontal distance h.
- Returns:
float -- Catenary length.
- property free_cable_length#
Returns the vertical length of a cable section, in \(km\).
- property cable_lengths_by_type#
Creates dictionary of lists of cable sections for each type of cable.
- Returns:
lengths (dict) -- A dictionary of the section lengths required for each type of cable to fully connect the array cabling system. E.g.: {Cable.`name`: np.ndarray(float)}
- property total_cable_length_by_type#
Calculates the total cable length for each type of cable.
- Returns:
total (dict) -- A dictionary of the total cable length for each type of cable. E.g.: {Cable.name: list(section_lengths)}
- property cost_by_type#
Calculates the cost of each array cable type.
- Returns:
cost (dict) -- A dictionary of the total cost of each type of array cable. E.g.: {Cable.name: cost}
- property total_cost#
Calculates the cost of the array cabling system.
- Returns:
float -- Total cost of the array cabling system.
- property detailed_output#
Returns detailed design outputs.
- _abc_impl = <_abc._abc_data object>#
- property design_result#
A dictionary of cables types and number of different cable lengths and linear density.
- Returns:
output (dict) -- Dictionary of the number of section lengths and the linear density of each cable type.
- <cable_type>_system: dict
- cables: dict
- Cable.name: dict
sections: [(length of unique section, number of sections)],
linear_density: Cable.linear_density