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
endA 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.,PowerLoadandACBus) 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 asratingoperation_cost::MarketBidCost: Market bid cost to operate,MarketBidCostthermal_unit::Union{Nothing, ThermalGen}: A thermal generator with supertypeThermalGenelectric_load::Union{Nothing, ElectricLoad}: A load with supertypeElectricLoadstorage::Union{Nothing, Storage}: An energy storage system with supertypeStoragerenewable_unit::Union{Nothing, RenewableGen}: A renewable generator with supertypeRenewableGeninterconnection_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 toNothingif not applicable.interconnection_efficiency::Union{Nothing, NamedTuple{(:in, :out), Tuple{Float64, Float64}},}: Efficiency [0, 1.0] at the grid interconnection to model lossesinandoutof 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.internal::InfrastructureSystemsInternal: (Do not modify.) PowerSystems.jl internal reference.
InfrastructureSystems.get_available — Methodget_available(value::HybridSystem) -> Bool
Get HybridSystem available.
InfrastructureSystems.set_available! — Methodset_available!(value::HybridSystem, val) -> Any
Set HybridSystem available.
PowerSystems.get_active_power — Methodget_active_power(value::HybridSystem) -> Float64
Get HybridSystem active_power.
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::Float64, max::Float64}}
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
) -> Union{Nothing, Float64}
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::Float64, max::Float64}}
Get HybridSystem output_active_power_limits.
PowerSystems.get_reactive_power — Methodget_reactive_power(value::HybridSystem) -> Float64
Get HybridSystem reactive_power.
PowerSystems.get_reactive_power_limits — Methodget_reactive_power_limits(
value::HybridSystem
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
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_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.