Hybrid System
PowerSystems.HybridSystem — Type
mutable 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 — Method
InfrastructureSystems.set_available! — Method
PowerSystems.get_active_power — Method
PowerSystems.get_base_power — Method
PowerSystems.get_bus — Method
PowerSystems.get_dynamic_injector — Method
get_dynamic_injector(
value::HybridSystem
) -> Union{Nothing, DynamicInjection}
Get HybridSystem dynamic_injector.
PowerSystems.get_electric_load — Method
get_electric_load(
value::HybridSystem
) -> Union{Nothing, ElectricLoad}
Get HybridSystem load
PowerSystems.get_ext — Method
PowerSystems.get_input_active_power_limits — Method
get_input_active_power_limits(
value::HybridSystem
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
Get HybridSystem input_active_power_limits.
PowerSystems.get_interconnection_impedance — Method
get_interconnection_impedance(
value::HybridSystem
) -> ComplexF64
get HybridSystem interconnection impedance
PowerSystems.get_interconnection_rating — Method
get_interconnection_rating(
value::HybridSystem
) -> Union{Nothing, Float64}
Get HybridSystem interconnection_rating.
PowerSystems.get_operation_cost — Method
PowerSystems.get_output_active_power_limits — Method
get_output_active_power_limits(
value::HybridSystem
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
Get HybridSystem output_active_power_limits.
PowerSystems.get_reactive_power — Method
PowerSystems.get_reactive_power_limits — Method
get_reactive_power_limits(
value::HybridSystem
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
Get HybridSystem reactive_power_limits.
PowerSystems.get_renewable_unit — Method
get_renewable_unit(
value::HybridSystem
) -> Union{Nothing, RenewableGen}
Get HybridSystem renewable unit
PowerSystems.get_services — Method
PowerSystems.get_status — Method
PowerSystems.get_storage — Method
PowerSystems.get_subcomponents — Method
get_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))sourcePowerSystems.get_thermal_unit — Method
get_thermal_unit(
value::HybridSystem
) -> Union{Nothing, ThermalGen}
Get HybridSystem thermal unit
PowerSystems.set_active_power! — Method
PowerSystems.set_base_power! — Method
PowerSystems.set_bus! — Method
PowerSystems.set_ext! — Method
PowerSystems.set_input_active_power_limits! — Method
set_input_active_power_limits!(
value::HybridSystem,
val
) -> Any
Set HybridSystem input_active_power_limits.
PowerSystems.set_operation_cost! — Method
PowerSystems.set_output_active_power_limits! — Method
set_output_active_power_limits!(
value::HybridSystem,
val
) -> Any
Set HybridSystem output_active_power_limits.
PowerSystems.set_reactive_power! — Method
PowerSystems.set_reactive_power_limits! — Method
set_reactive_power_limits!(value::HybridSystem, val) -> Any
Set HybridSystem reactive_power_limits.