ThermalMultiStart
PowerSystems.ThermalMultiStart — Typemutable struct ThermalMultiStart <: ThermalGen
name::String
available::Bool
status::Bool
bus::ACBus
active_power::Float64
reactive_power::Float64
rating::Float64
prime_mover_type::PrimeMovers
fuel::ThermalFuels
active_power_limits::MinMax
reactive_power_limits::Union{Nothing, MinMax}
ramp_limits::Union{Nothing, UpDown}
power_trajectory::Union{Nothing, StartUpShutDown}
time_limits::Union{Nothing, UpDown}
start_time_limits::Union{Nothing, StartUpStages}
start_types::Int
operation_cost::Union{ThermalGenerationCost, MarketBidCost}
base_power::Float64
services::Vector{Service}
time_at_status::Float64
must_run::Bool
dynamic_injector::Union{Nothing, DynamicInjection}
ext::Dict{String, Any}
internal::InfrastructureSystemsInternal
endA thermal generator, such as a fossil fuel or nuclear generator, that can start-up again from a hot, warm, or cold state.
ThermalMultiStart has a detailed representation of the start-up process based on the time elapsed since the last shut down, as well as a detailed shut-down process. The model is based on "Tight and Compact MILP Formulation for the Thermal Unit Commitment Problem.". For a simplified representation of the start-up and shut-down processes, see ThermalStandard
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 used, validation range:active_power_limitsreactive_power::Float64: Initial reactive power set point of the unit (MVAR), validation range:reactive_power_limitsrating::Float64: Maximum output power rating of the unit (MVA), validation range:(0, nothing)prime_mover_type::PrimeMovers: Prime mover technology according to EIA 923. Options are listed herefuel::ThermalFuels: Prime mover fuel according to EIA 923. Options are listed hereactive_power_limits::MinMax: Minimum and maximum stable active power levels (MW)reactive_power_limits::Union{Nothing, MinMax}: Minimum and maximum reactive power limits. Set toNothingif not applicableramp_limits::Union{Nothing, UpDown}:, validation range:(0, nothing)power_trajectory::Union{Nothing, StartUpShutDown}: Power trajectory the unit will take during the start-up and shut-down ramp process, validation range:(0, nothing)time_limits::Union{Nothing, UpDown}: Minimum up and Minimum down time limits in hours, validation range:(0, nothing)start_time_limits::Union{Nothing, StartUpStages}: Time limits for start-up based on turbine temperature in hoursstart_types::Int: Number of start-up based on turbine temperature, where1= hot,2= warm, and3= cold, validation range:(1, 3)operation_cost::Union{ThermalGenerationCost, MarketBidCost}:OperationalCostof generationbase_power::Float64: Base power of the unit (MVA) for per unitization, validation range:(0, nothing)services::Vector{Service}: (default:Device[]) Services that this device contributes totime_at_status::Float64: (default:INFINITE_TIME) Time (e.g.,Hours(6)) the generator has been on or off, as indicated bystatusmust_run::Bool: (default:false) Set totrueif the unit is must rundynamic_injector::Union{Nothing, DynamicInjection}: (default:nothing) corresponding dynamic injection deviceext::Dict{String, Any}: (default:Dict{String, Any}()) 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
InfrastructureSystems.get_name — Methodget_name(value::ThermalMultiStart) -> String
Get ThermalMultiStart name.
PowerSystems.get_active_power — Methodget_active_power(value::ThermalMultiStart) -> Any
Get ThermalMultiStart active_power.
PowerSystems.get_active_power_limits — Methodget_active_power_limits(
value::ThermalMultiStart
) -> NamedTuple{(:min, :max), <:Tuple{Any, Any}}
Get ThermalMultiStart active_power_limits.
PowerSystems.get_available — Methodget_available(value::ThermalMultiStart) -> Bool
Get ThermalMultiStart available.
PowerSystems.get_base_power — Methodget_base_power(value::ThermalMultiStart) -> Float64
Get ThermalMultiStart base_power.
PowerSystems.get_bus — Methodget_bus(value::ThermalMultiStart) -> ACBus
Get ThermalMultiStart bus.
PowerSystems.get_dynamic_injector — Methodget_dynamic_injector(
value::ThermalMultiStart
) -> Union{Nothing, DynamicInjection}
Get ThermalMultiStart dynamic_injector.
PowerSystems.get_ext — Methodget_ext(value::ThermalMultiStart) -> Dict{String, Any}
Get ThermalMultiStart ext.
PowerSystems.get_fuel — Methodget_fuel(value::ThermalMultiStart) -> ThermalFuels
Get ThermalMultiStart fuel.
PowerSystems.get_must_run — Methodget_must_run(value::ThermalMultiStart) -> Bool
Get ThermalMultiStart must_run.
PowerSystems.get_operation_cost — Methodget_operation_cost(
value::ThermalMultiStart
) -> Union{MarketBidCost, ThermalGenerationCost}
Get ThermalMultiStart operation_cost.
PowerSystems.get_power_trajectory — Methodget_power_trajectory(
value::ThermalMultiStart
) -> Union{Nothing, NamedTuple{(:startup, :shutdown), <:Tuple{Any, Any}}}
Get ThermalMultiStart power_trajectory.
PowerSystems.get_prime_mover_type — Methodget_prime_mover_type(
value::ThermalMultiStart
) -> PrimeMovers
Get ThermalMultiStart prime_mover_type.
PowerSystems.get_ramp_limits — Methodget_ramp_limits(
value::ThermalMultiStart
) -> Union{Nothing, NamedTuple{(:up, :down), <:Tuple{Any, Any}}}
Get ThermalMultiStart ramp_limits.
PowerSystems.get_rating — Methodget_rating(value::ThermalMultiStart) -> Any
Get ThermalMultiStart rating.
PowerSystems.get_reactive_power — Methodget_reactive_power(value::ThermalMultiStart) -> Any
Get ThermalMultiStart reactive_power.
PowerSystems.get_reactive_power_limits — Methodget_reactive_power_limits(
value::ThermalMultiStart
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get ThermalMultiStart reactive_power_limits.
PowerSystems.get_services — Methodget_services(value::ThermalMultiStart) -> Vector{Service}
Get ThermalMultiStart services.
PowerSystems.get_start_time_limits — Methodget_start_time_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{hot::Float64, warm::Float64, cold::Float64}}
Get ThermalMultiStart start_time_limits.
PowerSystems.get_start_types — Methodget_start_types(value::ThermalMultiStart) -> Int64
Get ThermalMultiStart start_types.
PowerSystems.get_status — Methodget_status(value::ThermalMultiStart) -> Bool
Get ThermalMultiStart status.
PowerSystems.get_time_at_status — Methodget_time_at_status(value::ThermalMultiStart) -> Float64
Get ThermalMultiStart time_at_status.
PowerSystems.get_time_limits — Methodget_time_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get ThermalMultiStart time_limits.
PowerSystems.set_active_power! — Methodset_active_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart active_power.
PowerSystems.set_active_power_limits! — Methodset_active_power_limits!(
value::ThermalMultiStart,
val
) -> Any
Set ThermalMultiStart active_power_limits.
PowerSystems.set_available! — Methodset_available!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart available.
PowerSystems.set_base_power! — Methodset_base_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart base_power.
PowerSystems.set_bus! — Methodset_bus!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart bus.
PowerSystems.set_ext! — Methodset_ext!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart ext.
PowerSystems.set_fuel! — Methodset_fuel!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart fuel.
PowerSystems.set_must_run! — Methodset_must_run!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart must_run.
PowerSystems.set_operation_cost! — Methodset_operation_cost!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart operation_cost.
PowerSystems.set_power_trajectory! — Methodset_power_trajectory!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart power_trajectory.
PowerSystems.set_prime_mover_type! — Methodset_prime_mover_type!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart prime_mover_type.
PowerSystems.set_ramp_limits! — Methodset_ramp_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart ramp_limits.
PowerSystems.set_rating! — Methodset_rating!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart rating.
PowerSystems.set_reactive_power! — Methodset_reactive_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart reactive_power.
PowerSystems.set_reactive_power_limits! — Methodset_reactive_power_limits!(
value::ThermalMultiStart,
val
) -> Any
Set ThermalMultiStart reactive_power_limits.
PowerSystems.set_services! — Methodset_services!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart services.
PowerSystems.set_start_time_limits! — Methodset_start_time_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart start_time_limits.
PowerSystems.set_start_types! — Methodset_start_types!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart start_types.
PowerSystems.set_status! — Methodset_status!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart status.
PowerSystems.set_time_at_status! — Methodset_time_at_status!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart time_at_status.
PowerSystems.set_time_limits! — Methodset_time_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart time_limits.