ThermalMultiStart
PowerSystems.ThermalMultiStart — Type
mutable 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 AC side output power rating of the unit. Stored in per unit of the device and not to be confused with base_power, 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.0001, 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.internal::InfrastructureSystemsInternal: (Do not modify.) PowerSystems.jl internal reference
InfrastructureSystems.get_available — Method
InfrastructureSystems.get_name — Method
InfrastructureSystems.set_available! — Method
PowerSystems.get_active_power — Method
PowerSystems.get_active_power_limits — Method
get_active_power_limits(
value::ThermalMultiStart
) -> @NamedTuple{min::Float64, max::Float64}
Get ThermalMultiStart active_power_limits.
PowerSystems.get_base_power — Method
PowerSystems.get_bus — Method
PowerSystems.get_dynamic_injector — Method
get_dynamic_injector(
value::ThermalMultiStart
) -> Union{Nothing, DynamicInjection}
Get ThermalMultiStart dynamic_injector.
PowerSystems.get_ext — Method
PowerSystems.get_fuel — Method
PowerSystems.get_must_run — Method
PowerSystems.get_operation_cost — Method
get_operation_cost(
value::ThermalMultiStart
) -> Union{MarketBidCost, ThermalGenerationCost}
Get ThermalMultiStart operation_cost.
PowerSystems.get_power_trajectory — Method
get_power_trajectory(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{startup::Float64, shutdown::Float64}}
Get ThermalMultiStart power_trajectory.
PowerSystems.get_prime_mover_type — Method
get_prime_mover_type(
value::ThermalMultiStart
) -> PrimeMovers
Get ThermalMultiStart prime_mover_type.
PowerSystems.get_ramp_limits — Method
get_ramp_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get ThermalMultiStart ramp_limits.
PowerSystems.get_rating — Method
PowerSystems.get_reactive_power — Method
PowerSystems.get_reactive_power_limits — Method
get_reactive_power_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
Get ThermalMultiStart reactive_power_limits.
PowerSystems.get_services — Method
PowerSystems.get_start_time_limits — Method
get_start_time_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{hot::Float64, warm::Float64, cold::Float64}}
Get ThermalMultiStart start_time_limits.
PowerSystems.get_start_types — Method
PowerSystems.get_status — Method
PowerSystems.get_time_at_status — Method
PowerSystems.get_time_limits — Method
get_time_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get ThermalMultiStart time_limits.
PowerSystems.set_active_power! — Method
PowerSystems.set_active_power_limits! — Method
set_active_power_limits!(
value::ThermalMultiStart,
val
) -> Any
Set ThermalMultiStart active_power_limits.
PowerSystems.set_base_power! — Method
PowerSystems.set_bus! — Method
PowerSystems.set_ext! — Method
PowerSystems.set_fuel! — Method
PowerSystems.set_must_run! — Method
PowerSystems.set_operation_cost! — Method
set_operation_cost!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart operation_cost.
PowerSystems.set_power_trajectory! — Method
set_power_trajectory!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart power_trajectory.
PowerSystems.set_prime_mover_type! — Method
set_prime_mover_type!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart prime_mover_type.
PowerSystems.set_ramp_limits! — Method
PowerSystems.set_rating! — Method
PowerSystems.set_reactive_power! — Method
set_reactive_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart reactive_power.
PowerSystems.set_reactive_power_limits! — Method
set_reactive_power_limits!(
value::ThermalMultiStart,
val
) -> Any
Set ThermalMultiStart reactive_power_limits.
PowerSystems.set_services! — Method
PowerSystems.set_start_time_limits! — Method
set_start_time_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart start_time_limits.
PowerSystems.set_start_types! — Method
PowerSystems.set_status! — Method
PowerSystems.set_time_at_status! — Method
set_time_at_status!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStart time_at_status.