Skip to content

Commit cfcd351

Browse files
authored
Merge pull request #1158 from NREL-Sienna/rh/add_honduras_structs
Add Honduras structs
2 parents 16b3ffd + 3a6b909 commit cfcd351

File tree

11 files changed

+2158
-95
lines changed

11 files changed

+2158
-95
lines changed

src/PowerSystems.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,14 @@ export ESDC1A
132132
export ESDC2A
133133
export ESAC1A
134134
export ESAC6A
135+
export ESAC8B
135136
export EXAC1
136137
export EXAC1A
137138
export EXAC2
138139
export EXPIC1
139140
export ESST1A
140141
export ESST4B
142+
export ST6B
141143
export SCRX
142144
export SEXS
143145

@@ -186,6 +188,9 @@ export HydroTurbineGov
186188
export IEEETurbineGov1
187189
export SteamTurbineGov1
188190
export DEGOV
191+
export DEGOV1
192+
export PIDGOV
193+
export WPIDHY
189194

190195
# Converter Exports
191196
export Converter

src/descriptors/power_system_structs.json

Lines changed: 1018 additions & 95 deletions
Large diffs are not rendered by default.

src/models/dynamic_generator.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,3 +153,13 @@ function _calc_states(machine, shaft, avr, prime_mover, pss)
153153
get_states(pss),
154154
)
155155
end
156+
157+
function get_degov1_states(droop_flag::Int)
158+
if droop_flag == 0
159+
return [:x_g1, :x_g2, :x_g3, :x_g4, :x_g5], 5
160+
elseif droop_flag == 1
161+
return [:x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6], 6
162+
else
163+
error("Unsupported value of droop_flag on DEGOV1")
164+
end
165+
end

src/models/generated/DEGOV1.jl

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
#=
2+
This file is auto-generated. Do not edit.
3+
=#
4+
5+
#! format: off
6+
7+
"""
8+
mutable struct DEGOV1 <: TurbineGov
9+
droop_flag::Int
10+
T1::Float64
11+
T2::Float64
12+
T3::Float64
13+
K::Float64
14+
T4::Float64
15+
T5::Float64
16+
T6::Float64
17+
Td::Float64
18+
T_lim::Tuple{Float64, Float64}
19+
R::Float64
20+
Te::Float64
21+
P_ref::Float64
22+
ext::Dict{String, Any}
23+
states::Vector{Symbol}
24+
n_states::Int
25+
internal::InfrastructureSystemsInternal
26+
end
27+
28+
Parameters Woodward Diesel Governor Model. DEGOV1 in PSSE
29+
30+
# Arguments
31+
- `droop_flag::Int`: Droop control Flag. 0 for throttle feedback and 1 for electric power feedback, validation range: `(0, 1)`
32+
- `T1::Float64`: Governor mechanism time constant in s, validation range: `(0, 100)`
33+
- `T2::Float64`: Turbine power time constant in s, validation range: `(0, 100)`
34+
- `T3::Float64`: Turbine exhaust temperature time constant in s, validation range: `(0, 100)`
35+
- `K::Float64`: Governor gain for actuator, validation range: `(0, 100)`
36+
- `T4::Float64`: Governor lead time constant in s, validation range: `(0, 100)`
37+
- `T5::Float64`: Governor lag time constant in s, validation range: `(0, 100)`
38+
- `T6::Float64`: Actuator time constant in s, validation range: `(0, 100)`
39+
- `Td::Float64`: Engine time delay in s, validation range: `(0, 100)`
40+
- `T_lim::Tuple{Float64, Float64}`: Operational control limits on actuator (T_min, T_max)
41+
- `R::Float64`: Steady state droop parameter, validation range: `(0, 100)`
42+
- `Te::Float64`: Power transducer time constant in s, validation range: `(0, 100)`
43+
- `P_ref::Float64`: (default: `1.0`) Reference Load Set-point (pu), validation range: `(0, nothing)`
44+
- `ext::Dict{String, Any}`: (default: `Dict{String, Any}()`) An *ext*ra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude. See [Adding additional fields](@ref)
45+
- `states::Vector{Symbol}`: (**Do not modify.**) The [states](@ref S) of the DEGOV1 model depends on the droop flag
46+
- `n_states::Int`: (**Do not modify.**) The number of [states](@ref S) of the DEGOV1 model depends on the droop flag
47+
- `internal::InfrastructureSystemsInternal`: (**Do not modify.**) PowerSystems.jl internal reference
48+
"""
49+
mutable struct DEGOV1 <: TurbineGov
50+
"Droop control Flag. 0 for throttle feedback and 1 for electric power feedback"
51+
droop_flag::Int
52+
"Governor mechanism time constant in s"
53+
T1::Float64
54+
"Turbine power time constant in s"
55+
T2::Float64
56+
"Turbine exhaust temperature time constant in s"
57+
T3::Float64
58+
"Governor gain for actuator"
59+
K::Float64
60+
"Governor lead time constant in s"
61+
T4::Float64
62+
"Governor lag time constant in s"
63+
T5::Float64
64+
"Actuator time constant in s"
65+
T6::Float64
66+
"Engine time delay in s"
67+
Td::Float64
68+
"Operational control limits on actuator (T_min, T_max)"
69+
T_lim::Tuple{Float64, Float64}
70+
"Steady state droop parameter"
71+
R::Float64
72+
"Power transducer time constant in s"
73+
Te::Float64
74+
"Reference Load Set-point (pu)"
75+
P_ref::Float64
76+
"An *ext*ra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude. See [Adding additional fields](@ref)"
77+
ext::Dict{String, Any}
78+
"(**Do not modify.**) The [states](@ref S) of the DEGOV1 model depends on the droop flag"
79+
states::Vector{Symbol}
80+
"(**Do not modify.**) The number of [states](@ref S) of the DEGOV1 model depends on the droop flag"
81+
n_states::Int
82+
"(**Do not modify.**) PowerSystems.jl internal reference"
83+
internal::InfrastructureSystemsInternal
84+
end
85+
86+
function DEGOV1(droop_flag, T1, T2, T3, K, T4, T5, T6, Td, T_lim, R, Te, P_ref=1.0, ext=Dict{String, Any}(), )
87+
DEGOV1(droop_flag, T1, T2, T3, K, T4, T5, T6, Td, T_lim, R, Te, P_ref, ext, PowerSystems.get_degov1_states(droop_flag)[1], PowerSystems.get_degov1_states(droop_flag)[2], InfrastructureSystemsInternal(), )
88+
end
89+
90+
function DEGOV1(; droop_flag, T1, T2, T3, K, T4, T5, T6, Td, T_lim, R, Te, P_ref=1.0, ext=Dict{String, Any}(), states=PowerSystems.get_degov1_states(droop_flag)[1], n_states=PowerSystems.get_degov1_states(droop_flag)[2], internal=InfrastructureSystemsInternal(), )
91+
DEGOV1(droop_flag, T1, T2, T3, K, T4, T5, T6, Td, T_lim, R, Te, P_ref, ext, states, n_states, internal, )
92+
end
93+
94+
# Constructor for demo purposes; non-functional.
95+
function DEGOV1(::Nothing)
96+
DEGOV1(;
97+
droop_flag=0,
98+
T1=0,
99+
T2=0,
100+
T3=0,
101+
K=0,
102+
T4=0,
103+
T5=0,
104+
T6=0,
105+
Td=0,
106+
T_lim=(0.0, 0.0),
107+
R=0,
108+
Te=0,
109+
P_ref=0,
110+
ext=Dict{String, Any}(),
111+
)
112+
end
113+
114+
"""Get [`DEGOV1`](@ref) `droop_flag`."""
115+
get_droop_flag(value::DEGOV1) = value.droop_flag
116+
"""Get [`DEGOV1`](@ref) `T1`."""
117+
get_T1(value::DEGOV1) = value.T1
118+
"""Get [`DEGOV1`](@ref) `T2`."""
119+
get_T2(value::DEGOV1) = value.T2
120+
"""Get [`DEGOV1`](@ref) `T3`."""
121+
get_T3(value::DEGOV1) = value.T3
122+
"""Get [`DEGOV1`](@ref) `K`."""
123+
get_K(value::DEGOV1) = value.K
124+
"""Get [`DEGOV1`](@ref) `T4`."""
125+
get_T4(value::DEGOV1) = value.T4
126+
"""Get [`DEGOV1`](@ref) `T5`."""
127+
get_T5(value::DEGOV1) = value.T5
128+
"""Get [`DEGOV1`](@ref) `T6`."""
129+
get_T6(value::DEGOV1) = value.T6
130+
"""Get [`DEGOV1`](@ref) `Td`."""
131+
get_Td(value::DEGOV1) = value.Td
132+
"""Get [`DEGOV1`](@ref) `T_lim`."""
133+
get_T_lim(value::DEGOV1) = value.T_lim
134+
"""Get [`DEGOV1`](@ref) `R`."""
135+
get_R(value::DEGOV1) = value.R
136+
"""Get [`DEGOV1`](@ref) `Te`."""
137+
get_Te(value::DEGOV1) = value.Te
138+
"""Get [`DEGOV1`](@ref) `P_ref`."""
139+
get_P_ref(value::DEGOV1) = value.P_ref
140+
"""Get [`DEGOV1`](@ref) `ext`."""
141+
get_ext(value::DEGOV1) = value.ext
142+
"""Get [`DEGOV1`](@ref) `states`."""
143+
get_states(value::DEGOV1) = value.states
144+
"""Get [`DEGOV1`](@ref) `n_states`."""
145+
get_n_states(value::DEGOV1) = value.n_states
146+
"""Get [`DEGOV1`](@ref) `internal`."""
147+
get_internal(value::DEGOV1) = value.internal
148+
149+
"""Set [`DEGOV1`](@ref) `droop_flag`."""
150+
set_droop_flag!(value::DEGOV1, val) = value.droop_flag = val
151+
"""Set [`DEGOV1`](@ref) `T1`."""
152+
set_T1!(value::DEGOV1, val) = value.T1 = val
153+
"""Set [`DEGOV1`](@ref) `T2`."""
154+
set_T2!(value::DEGOV1, val) = value.T2 = val
155+
"""Set [`DEGOV1`](@ref) `T3`."""
156+
set_T3!(value::DEGOV1, val) = value.T3 = val
157+
"""Set [`DEGOV1`](@ref) `K`."""
158+
set_K!(value::DEGOV1, val) = value.K = val
159+
"""Set [`DEGOV1`](@ref) `T4`."""
160+
set_T4!(value::DEGOV1, val) = value.T4 = val
161+
"""Set [`DEGOV1`](@ref) `T5`."""
162+
set_T5!(value::DEGOV1, val) = value.T5 = val
163+
"""Set [`DEGOV1`](@ref) `T6`."""
164+
set_T6!(value::DEGOV1, val) = value.T6 = val
165+
"""Set [`DEGOV1`](@ref) `Td`."""
166+
set_Td!(value::DEGOV1, val) = value.Td = val
167+
"""Set [`DEGOV1`](@ref) `T_lim`."""
168+
set_T_lim!(value::DEGOV1, val) = value.T_lim = val
169+
"""Set [`DEGOV1`](@ref) `R`."""
170+
set_R!(value::DEGOV1, val) = value.R = val
171+
"""Set [`DEGOV1`](@ref) `Te`."""
172+
set_Te!(value::DEGOV1, val) = value.Te = val
173+
"""Set [`DEGOV1`](@ref) `P_ref`."""
174+
set_P_ref!(value::DEGOV1, val) = value.P_ref = val
175+
"""Set [`DEGOV1`](@ref) `ext`."""
176+
set_ext!(value::DEGOV1, val) = value.ext = val

0 commit comments

Comments
 (0)