Skip to content

Commit 985bdd5

Browse files
authored
Merge pull request #1195 from NREL-Sienna/rh/add_tg_simple
add TGSimple model
2 parents 653a425 + 509f07a commit 985bdd5

File tree

4 files changed

+160
-0
lines changed

4 files changed

+160
-0
lines changed

src/PowerSystems.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ export DEGOV
192192
export DEGOV1
193193
export PIDGOV
194194
export WPIDHY
195+
export TGSimple
195196

196197
# Converter Exports
197198
export Converter

src/descriptors/power_system_structs.json

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14146,6 +14146,72 @@
1414614146
],
1414714147
"supertype": "TurbineGov"
1414814148
},
14149+
{
14150+
"struct_name": "TGSimple",
14151+
"docstring": "Parameters of a Simple one-state Turbine Governor",
14152+
"fields": [
14153+
{
14154+
"name": "d_t",
14155+
"comment": "Inverse Droop parameter",
14156+
"null_value": 0,
14157+
"data_type": "Float64",
14158+
"valid_range": {
14159+
"min": 0,
14160+
"max": null
14161+
}
14162+
},
14163+
{
14164+
"name": "Tm",
14165+
"comment": "Turbine Governor Low-Pass Time Constant [s]",
14166+
"null_value": 0,
14167+
"data_type": "Float64",
14168+
"valid_range": {
14169+
"min": 0,
14170+
"max": null
14171+
}
14172+
},
14173+
{
14174+
"name": "P_ref",
14175+
"comment": "Reference Power Set-point (pu)",
14176+
"null_value": 0,
14177+
"default": "1.0",
14178+
"data_type": "Float64",
14179+
"valid_range": {
14180+
"min": 0,
14181+
"max": null
14182+
}
14183+
},
14184+
{
14185+
"name": "ext",
14186+
"comment": "An [*ext*ra dictionary](@ref additional_fields) for users to add metadata that are not used in simulation, such as latitude and longitude.",
14187+
"data_type": "Dict{String, Any}",
14188+
"null_value": "Dict{String, Any}()",
14189+
"default": "Dict{String, Any}()"
14190+
},
14191+
{
14192+
"name": "states",
14193+
"exclude_setter": true,
14194+
"comment": "(**Do not modify.**) The [states](@ref S) of the TGSimple model are:\n\tτm: mechanical torque",
14195+
"internal_default": "[:τm]",
14196+
"data_type": "Vector{Symbol}"
14197+
},
14198+
{
14199+
"name": "n_states",
14200+
"exclude_setter": true,
14201+
"comment": "(**Do not modify.**) TGSimple has 1 state",
14202+
"internal_default": 1,
14203+
"data_type": "Int"
14204+
},
14205+
{
14206+
"name": "internal",
14207+
"comment": "(**Do not modify.**) PowerSystems.jl internal reference",
14208+
"data_type": "InfrastructureSystemsInternal",
14209+
"internal_default": "InfrastructureSystemsInternal()",
14210+
"exclude_setter": true
14211+
}
14212+
],
14213+
"supertype": "TurbineGov"
14214+
},
1414914215
{
1415014216
"struct_name": "AverageConverter",
1415114217
"docstring": "Parameters of an average converter model",

src/models/generated/TGSimple.jl

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
#=
2+
This file is auto-generated. Do not edit.
3+
=#
4+
5+
#! format: off
6+
7+
"""
8+
mutable struct TGSimple <: TurbineGov
9+
d_t::Float64
10+
Tm::Float64
11+
P_ref::Float64
12+
ext::Dict{String, Any}
13+
states::Vector{Symbol}
14+
n_states::Int
15+
internal::InfrastructureSystemsInternal
16+
end
17+
18+
Parameters of a Simple one-state Turbine Governor
19+
20+
# Arguments
21+
- `d_t::Float64`: Inverse Droop parameter, validation range: `(0, nothing)`
22+
- `Tm::Float64`: Turbine Governor Low-Pass Time Constant [s], validation range: `(0, nothing)`
23+
- `P_ref::Float64`: (default: `1.0`) Reference Power Set-point (pu), validation range: `(0, nothing)`
24+
- `ext::Dict{String, Any}`: (default: `Dict{String, Any}()`) An [*ext*ra dictionary](@ref additional_fields) for users to add metadata that are not used in simulation, such as latitude and longitude.
25+
- `states::Vector{Symbol}`: (**Do not modify.**) The [states](@ref S) of the TGSimple model are:
26+
τm: mechanical torque
27+
- `n_states::Int`: (**Do not modify.**) TGSimple has 1 state
28+
- `internal::InfrastructureSystemsInternal`: (**Do not modify.**) PowerSystems.jl internal reference
29+
"""
30+
mutable struct TGSimple <: TurbineGov
31+
"Inverse Droop parameter"
32+
d_t::Float64
33+
"Turbine Governor Low-Pass Time Constant [s]"
34+
Tm::Float64
35+
"Reference Power Set-point (pu)"
36+
P_ref::Float64
37+
"An [*ext*ra dictionary](@ref additional_fields) for users to add metadata that are not used in simulation, such as latitude and longitude."
38+
ext::Dict{String, Any}
39+
"(**Do not modify.**) The [states](@ref S) of the TGSimple model are:
40+
τm: mechanical torque"
41+
states::Vector{Symbol}
42+
"(**Do not modify.**) TGSimple has 1 state"
43+
n_states::Int
44+
"(**Do not modify.**) PowerSystems.jl internal reference"
45+
internal::InfrastructureSystemsInternal
46+
end
47+
48+
function TGSimple(d_t, Tm, P_ref=1.0, ext=Dict{String, Any}(), )
49+
TGSimple(d_t, Tm, P_ref, ext, [:τm], 1, InfrastructureSystemsInternal(), )
50+
end
51+
52+
function TGSimple(; d_t, Tm, P_ref=1.0, ext=Dict{String, Any}(), states=[:τm], n_states=1, internal=InfrastructureSystemsInternal(), )
53+
TGSimple(d_t, Tm, P_ref, ext, states, n_states, internal, )
54+
end
55+
56+
# Constructor for demo purposes; non-functional.
57+
function TGSimple(::Nothing)
58+
TGSimple(;
59+
d_t=0,
60+
Tm=0,
61+
P_ref=0,
62+
ext=Dict{String, Any}(),
63+
)
64+
end
65+
66+
"""Get [`TGSimple`](@ref) `d_t`."""
67+
get_d_t(value::TGSimple) = value.d_t
68+
"""Get [`TGSimple`](@ref) `Tm`."""
69+
get_Tm(value::TGSimple) = value.Tm
70+
"""Get [`TGSimple`](@ref) `P_ref`."""
71+
get_P_ref(value::TGSimple) = value.P_ref
72+
"""Get [`TGSimple`](@ref) `ext`."""
73+
get_ext(value::TGSimple) = value.ext
74+
"""Get [`TGSimple`](@ref) `states`."""
75+
get_states(value::TGSimple) = value.states
76+
"""Get [`TGSimple`](@ref) `n_states`."""
77+
get_n_states(value::TGSimple) = value.n_states
78+
"""Get [`TGSimple`](@ref) `internal`."""
79+
get_internal(value::TGSimple) = value.internal
80+
81+
"""Set [`TGSimple`](@ref) `d_t`."""
82+
set_d_t!(value::TGSimple, val) = value.d_t = val
83+
"""Set [`TGSimple`](@ref) `Tm`."""
84+
set_Tm!(value::TGSimple, val) = value.Tm = val
85+
"""Set [`TGSimple`](@ref) `P_ref`."""
86+
set_P_ref!(value::TGSimple, val) = value.P_ref = val
87+
"""Set [`TGSimple`](@ref) `ext`."""
88+
set_ext!(value::TGSimple, val) = value.ext = val

src/models/generated/includes.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ include("HydroTurbineGov.jl")
9494
include("IEEETurbineGov1.jl")
9595
include("TGTypeI.jl")
9696
include("TGTypeII.jl")
97+
include("TGSimple.jl")
9798
include("AverageConverter.jl")
9899
include("RenewableEnergyConverterTypeA.jl")
99100
include("RenewableEnergyVoltageConverterTypeA.jl")
@@ -384,6 +385,7 @@ export get_Tg
384385
export get_Th
385386
export get_Tj
386387
export get_Tk
388+
export get_Tm
387389
export get_Tp
388390
export get_Tpelec
389391
export get_Tpord
@@ -500,6 +502,7 @@ export get_current_reactive_power
500502
export get_cycle_limits
501503
export get_d
502504
export get_dP_lim
505+
export get_d_t
503506
export get_db
504507
export get_dbd_pnts
505508
export get_dc_bus
@@ -950,6 +953,7 @@ export set_Tg!
950953
export set_Th!
951954
export set_Tj!
952955
export set_Tk!
956+
export set_Tm!
953957
export set_Tp!
954958
export set_Tpelec!
955959
export set_Tpord!
@@ -1066,6 +1070,7 @@ export set_current_reactive_power!
10661070
export set_cycle_limits!
10671071
export set_d!
10681072
export set_dP_lim!
1073+
export set_d_t!
10691074
export set_db!
10701075
export set_dbd_pnts!
10711076
export set_dc_bus!

0 commit comments

Comments
 (0)