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: TheACBusthat 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. SeePrimeMovers.fuel::ThermalFuels: Prime mover fuel according to EIA 923. SeeThermalFuels.active_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 — Methodget_available(value::ThermalMultiStart) -> Bool
Get ThermalMultiStartavailable.
InfrastructureSystems.get_name — Methodget_name(value::ThermalMultiStart) -> String
Get ThermalMultiStartname.
InfrastructureSystems.set_available! — Methodset_available!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartavailable.
PowerSystems.get_active_power — Methodget_active_power(value::ThermalMultiStart) -> Float64
Get ThermalMultiStartactive_power.
PowerSystems.get_active_power_limits — Methodget_active_power_limits(
value::ThermalMultiStart
) -> @NamedTuple{min::Float64, max::Float64}
Get ThermalMultiStartactive_power_limits.
PowerSystems.get_base_power — Methodget_base_power(value::ThermalMultiStart) -> Float64
Get ThermalMultiStartbase_power.
PowerSystems.get_bus — Methodget_bus(value::ThermalMultiStart) -> ACBus
Get ThermalMultiStartbus.
PowerSystems.get_dynamic_injector — Methodget_dynamic_injector(
value::ThermalMultiStart
) -> Union{Nothing, DynamicInjection}
Get ThermalMultiStartdynamic_injector.
PowerSystems.get_ext — Methodget_ext(value::ThermalMultiStart) -> Dict{String, Any}
Get ThermalMultiStartext.
PowerSystems.get_fuel — Methodget_fuel(value::ThermalMultiStart) -> ThermalFuels
Get ThermalMultiStartfuel.
PowerSystems.get_must_run — Methodget_must_run(value::ThermalMultiStart) -> Bool
Get ThermalMultiStartmust_run.
PowerSystems.get_operation_cost — Methodget_operation_cost(
value::ThermalMultiStart
) -> Union{MarketBidCost, ThermalGenerationCost}
Get ThermalMultiStartoperation_cost.
PowerSystems.get_power_trajectory — Methodget_power_trajectory(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{startup::Float64, shutdown::Float64}}
Get ThermalMultiStartpower_trajectory.
PowerSystems.get_prime_mover_type — Methodget_prime_mover_type(
value::ThermalMultiStart
) -> PrimeMovers
Get ThermalMultiStartprime_mover_type.
PowerSystems.get_ramp_limits — Methodget_ramp_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get ThermalMultiStartramp_limits.
PowerSystems.get_rating — Methodget_rating(value::ThermalMultiStart) -> Float64
Get ThermalMultiStartrating.
PowerSystems.get_reactive_power — Methodget_reactive_power(value::ThermalMultiStart) -> Float64
Get ThermalMultiStartreactive_power.
PowerSystems.get_reactive_power_limits — Methodget_reactive_power_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
Get ThermalMultiStartreactive_power_limits.
PowerSystems.get_services — Methodget_services(value::ThermalMultiStart) -> Vector{Service}
Get ThermalMultiStartservices.
PowerSystems.get_start_time_limits — Methodget_start_time_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{hot::Float64, warm::Float64, cold::Float64}}
Get ThermalMultiStartstart_time_limits.
PowerSystems.get_start_types — Methodget_start_types(value::ThermalMultiStart) -> Int64
Get ThermalMultiStartstart_types.
PowerSystems.get_status — Methodget_status(value::ThermalMultiStart) -> Bool
Get ThermalMultiStartstatus.
PowerSystems.get_time_at_status — Methodget_time_at_status(value::ThermalMultiStart) -> Float64
Get ThermalMultiStarttime_at_status.
PowerSystems.get_time_limits — Methodget_time_limits(
value::ThermalMultiStart
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get ThermalMultiStarttime_limits.
PowerSystems.set_active_power! — Methodset_active_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartactive_power.
PowerSystems.set_active_power_limits! — Methodset_active_power_limits!(
value::ThermalMultiStart,
val
) -> Any
Set ThermalMultiStartactive_power_limits.
PowerSystems.set_base_power! — Methodset_base_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartbase_power.
PowerSystems.set_bus! — Methodset_bus!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartbus.
PowerSystems.set_ext! — Methodset_ext!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartext.
PowerSystems.set_fuel! — Methodset_fuel!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartfuel.
PowerSystems.set_must_run! — Methodset_must_run!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartmust_run.
PowerSystems.set_operation_cost! — Methodset_operation_cost!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartoperation_cost.
PowerSystems.set_power_trajectory! — Methodset_power_trajectory!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartpower_trajectory.
PowerSystems.set_prime_mover_type! — Methodset_prime_mover_type!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartprime_mover_type.
PowerSystems.set_ramp_limits! — Methodset_ramp_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartramp_limits.
PowerSystems.set_rating! — Methodset_rating!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartrating.
PowerSystems.set_reactive_power! — Methodset_reactive_power!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartreactive_power.
PowerSystems.set_reactive_power_limits! — Methodset_reactive_power_limits!(
value::ThermalMultiStart,
val
) -> Any
Set ThermalMultiStartreactive_power_limits.
PowerSystems.set_services! — Methodset_services!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartservices.
PowerSystems.set_start_time_limits! — Methodset_start_time_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartstart_time_limits.
PowerSystems.set_start_types! — Methodset_start_types!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartstart_types.
PowerSystems.set_status! — Methodset_status!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStartstatus.
PowerSystems.set_time_at_status! — Methodset_time_at_status!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStarttime_at_status.
PowerSystems.set_time_limits! — Methodset_time_limits!(value::ThermalMultiStart, val) -> Any
Set ThermalMultiStarttime_limits.