Hybrid System
PowerSystems.HybridSystem
— Typemutable struct HybridSystem <: StaticInjectionSubsystem
name::String
available::Bool
status::Bool
bus::ACBus
active_power::Float64
reactive_power::Float64
base_power::Float64
operation_cost::MarketBidCost
thermal_unit::Union{Nothing, ThermalGen}
electric_load::Union{Nothing, ElectricLoad}
storage::Union{Nothing, Storage}
renewable_unit::Union{Nothing, RenewableGen}
interconnection_impedance::ComplexF64
interconnection_rating::Union{Nothing, Float64}
input_active_power_limits::Union{Nothing, MinMax}
output_active_power_limits::Union{Nothing, MinMax}
reactive_power_limits::Union{Nothing, MinMax}
interconnection_efficiency::Union{
Nothing,
NamedTuple{(:in, :out), Tuple{Float64, Float64}},
}
services::Vector{Service}
dynamic_injector::Union{Nothing, DynamicInjection}
ext::Dict{String, Any}
internal::InfrastructureSystemsInternal
end
A Hybrid System that includes a combination of renewable generation, load, thermal generation and/or energy storage.
Arguments
name::String
: Name of the component. Components of the same type (e.g.,PowerLoad
) must have unique names, but components of different types (e.g.,PowerLoad
andACBus
) can have the same nameavailable::Bool
: Indicator of whether the component is connected and online (true
) or disconnected, offline, or down (false
). Unavailable components are excluded during simulationsstatus::Bool
: Initial commitment condition at the start of a simulation (true
= on orfalse
= off)bus::ACBus
: Bus that this component is connected toactive_power::Float64
: Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system. For production cost modeling, this may or may not be used as the initial starting point for the solver, depending on the solver usedreactive_power::Float64
: Initial reactive power set point of the unit (MVAR)base_power::Float64
: Base power of the unit (MVA) for per unitization, which is commonly the same asrating
operation_cost::MarketBidCost
: Market bid cost to operate,MarketBidCost
thermal_unit::Union{Nothing, ThermalGen}
: A thermal generator with supertypeThermalGen
electric_load::Union{Nothing, ElectricLoad}
: A load with supertypeElectricLoad
storage::Union{Nothing, Storage}
: An energy storage system with supertypeStorage
renewable_unit::Union{Nothing, RenewableGen}
: A renewable generator with supertypeRenewableGen
interconnection_impedance::ComplexF64
: Impedance (typically in p.u.) between the hybrid system and the grid interconnectioninterconnection_rating::Union{Nothing, Float64}
: Maximum rating of the hybrid system's interconnection with the transmission network (MVA)input_active_power_limits::MinMax
: Minimum and maximum stable input active power levels (MW)output_active_power_limits::MinMax
: Minimum and maximum stable output active power levels (MW)reactive_power_limits::Union{Nothing, MinMax}
: Minimum and maximum reactive power limits (MVAR). Set toNothing
if not applicable.interconnection_efficiency::Union{Nothing, NamedTuple{(:in, :out), Tuple{Float64, Float64}},}
: Efficiency [0, 1.0] at the grid interconnection to model lossesin
andout
of the common DC-side conversionservices::Vector{Service}
: (optional) Services that this device contributes todynamic_injector::Union{Nothing, DynamicInjection}
: (optional) corresponding dynamic injection deviceext::Dict{String, Any}
: (optional) An extra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude.internal::InfrastructureSystemsInternal
: (Do not modify.) PowerSystems.jl internal reference.
PowerSystems.get_active_power
— Methodget_active_power(value::HybridSystem) -> Any
Get HybridSystem
active_power
.
PowerSystems.get_available
— Methodget_available(value::HybridSystem) -> Bool
Get HybridSystem
available
.
PowerSystems.get_base_power
— Methodget_base_power(value::HybridSystem) -> Float64
Get HybridSystem
base_power
.
PowerSystems.get_bus
— Methodget_bus(value::HybridSystem) -> ACBus
Get HybridSystem
bus
.
PowerSystems.get_dynamic_injector
— Methodget_dynamic_injector(
value::HybridSystem
) -> Union{Nothing, DynamicInjection}
Get HybridSystem
dynamic_injector
.
PowerSystems.get_electric_load
— Methodget_electric_load(
value::HybridSystem
) -> Union{Nothing, ElectricLoad}
Get HybridSystem
load
PowerSystems.get_ext
— Methodget_ext(value::HybridSystem) -> Dict{String, Any}
Get HybridSystem
ext
.
PowerSystems.get_input_active_power_limits
— Methodget_input_active_power_limits(
value::HybridSystem
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get HybridSystem
input_active_power_limits
.
PowerSystems.get_interconnection_impedance
— Methodget_interconnection_impedance(
value::HybridSystem
) -> ComplexF64
get HybridSystem
interconnection impedance
PowerSystems.get_interconnection_rating
— Methodget_interconnection_rating(value::HybridSystem) -> Any
Get HybridSystem
interconnection_rating
.
PowerSystems.get_operation_cost
— Methodget_operation_cost(value::HybridSystem) -> MarketBidCost
Get HybridSystem
operation_cost
.
PowerSystems.get_output_active_power_limits
— Methodget_output_active_power_limits(
value::HybridSystem
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get HybridSystem
output_active_power_limits
.
PowerSystems.get_reactive_power
— Methodget_reactive_power(value::HybridSystem) -> Any
Get HybridSystem
reactive_power
.
PowerSystems.get_reactive_power_limits
— Methodget_reactive_power_limits(
value::HybridSystem
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get HybridSystem
reactive_power_limits
.
PowerSystems.get_renewable_unit
— Methodget_renewable_unit(
value::HybridSystem
) -> Union{Nothing, RenewableGen}
Get HybridSystem
renewable unit
PowerSystems.get_services
— Methodget_services(value::HybridSystem) -> Vector{Service}
Get HybridSystem
services
.
PowerSystems.get_status
— Methodget_status(value::HybridSystem) -> Bool
Get HybridSystem
status
.
PowerSystems.get_storage
— Methodget_storage(value::HybridSystem) -> Union{Nothing, Storage}
Get HybridSystem
storage unit
PowerSystems.get_subcomponents
— Methodget_subcomponents(hybrid::HybridSystem) -> Channel{Any}
Return an iterator over the subcomponents in the HybridSystem.
Examples
for subcomponent in get_subcomponents(hybrid_sys)
@show subcomponent
end
subcomponents = collect(get_subcomponents(hybrid_sys))
PowerSystems.get_thermal_unit
— Methodget_thermal_unit(
value::HybridSystem
) -> Union{Nothing, ThermalGen}
Get HybridSystem
thermal unit
PowerSystems.set_active_power!
— Methodset_active_power!(value::HybridSystem, val) -> Any
Set HybridSystem
active_power
.
PowerSystems.set_available!
— Methodset_available!(value::HybridSystem, val) -> Any
Set HybridSystem
available
.
PowerSystems.set_base_power!
— Methodset_base_power!(value::HybridSystem, val) -> Any
Set HybridSystem
base_power
.
PowerSystems.set_bus!
— Methodset_bus!(value::HybridSystem, val) -> Any
Set HybridSystem
bus
.
PowerSystems.set_ext!
— Methodset_ext!(value::HybridSystem, val) -> Any
Set HybridSystem
ext
.
PowerSystems.set_input_active_power_limits!
— Methodset_input_active_power_limits!(
value::HybridSystem,
val
) -> Any
Set HybridSystem
input_active_power_limits
.
PowerSystems.set_operation_cost!
— Methodset_operation_cost!(value::HybridSystem, val) -> Any
Set HybridSystem
operation_cost
.
PowerSystems.set_output_active_power_limits!
— Methodset_output_active_power_limits!(
value::HybridSystem,
val
) -> Any
Set HybridSystem
output_active_power_limits
.
PowerSystems.set_reactive_power!
— Methodset_reactive_power!(value::HybridSystem, val) -> Any
Set HybridSystem
reactive_power
.
PowerSystems.set_reactive_power_limits!
— Methodset_reactive_power_limits!(value::HybridSystem, val) -> Any
Set HybridSystem
reactive_power_limits
.
PowerSystems.set_services!
— Methodset_services!(value::HybridSystem, val) -> Any
Set HybridSystem
services
.
PowerSystems.set_status!
— Methodset_status!(value::HybridSystem, val) -> Any
Get HybridSystem
status
.