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
end
A 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.,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 used, validation range:active_power_limits
reactive_power::Float64
: Initial reactive power set point of the unit (MVAR), validation range:reactive_power_limits
rating::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 toNothing
if 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}
:OperationalCost
of 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 bystatus
must_run::Bool
: (default:false
) Set totrue
if 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
.