Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Control Design Variables in Schema #30

Merged
merged 5 commits into from
Nov 23, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
233 changes: 185 additions & 48 deletions weis/yaml/analysis_schema_NEW.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -434,82 +434,193 @@ properties:
properties:
linked: *joint_link
independent: *joint_indep
control:
actuators:
type: object
default: {}
properties:
tsr:
type: object
default: {}
properties:
flag: *flag
min_gain: *mingain
max_gain: *maxgain
ps_percent:
generator:
type: object
default: {}
description: Percent peak shaving as a design variable
properties:
flag: *flag
lower_bound:
type: number
default: 0.0
unit: none
upper_bound:
type: number
default: 50.0
unit: none
servo:
rated_power:
type: object
description: Generator rated power
default: {}
properties:
flag: *flag
lower_bound:
type: number
default: 0.0
unit: MW
upper_bound:
type: number
default: 100.0
unit: MW
rated_gen_speed:
type: object
description: Rated generator speed
default: {}
properties:
flag: *flag
lower_bound:
type: number
default: 0.0
unit: rad/s
upper_bound:
type: number
default: 100000000.0
unit: rad/s
rated_gen_torque:
type: object
description: Rated generator torque
default: {}
properties:
flag: *flag
lower_bound:
type: number
default: 0.0
unit: kNm
upper_bound:
type: number
default: 1000000000000.0
unit: kNm
control:
type: object
default: {}
properties:
pitch:
type: object
default: {}
properties:
pitch_control:
PC_omega:
type: object
description: Pitch controller desired natural frequency. It is used by the ROSCO controller (https://github.com/NREL/ROSCO)
default: {}
properties:
flag: *flag
omega_min: &omega_min
lower_bound: &omega_min
type: number
default: 0.1
minimum: 0.0
maximum: 10.0
default: 0.0
unit: rad/s
upper_bound: &omega_max
type: number
default: 100.0
unit: rad/s
PC_zeta:
type: object
description: Pitch controller desired damping ratio. It is used by the ROSCO controller (https://github.com/NREL/ROSCO)
default: {}
properties:
flag: *flag
lower_bound: &zeta_min
type: number
default: 0.0
unit: none
omega_max: &omega_max
upper_bound: &zeta_max
type: number
default: 0.7
minimum: 0.0
maximum: 10.0
default: 100.0
unit: none
zeta_min: &zeta_min
ps_percent:
type: object
default: {}
description: Percent peak shaving as a design variable
properties:
flag: *flag
lower_bound:
type: number
default: 0.4
minimum: 0.0
maximum: 10.0
default: 0.0
unit: none
zeta_max: &zeta_max
upper_bound:
type: number
default: 1.5
minimum: 0.0
maximum: 10.0
default: 1.0
unit: none
torque_control:
fl_feedback:
type: object
description: Platform velocity feedback using nacelle IMU
default: {}
properties:
gain:
type: object
default: {}
description: Gain of floating feedback using nacelle IMU
properties:
flag: *flag
lower_bound:
type: number
default: 0.0
unit: seconds
upper_bound:
type: number
default: 10000
unit: seconds
filter:
type: object
default: {}
description: Filter from in platform pitch feedback
properties:
flag: *flag
IPC:
type: object
description: Individual pitch control (IPC) using the mulitblade coordinate (MBC) transform
default: {}
properties:
IPC_gain_1P:
type: object
default: {}
description: Integral gain of 1P feedback
properties:
flag: *flag
lower_bound:
type: number
default: 0.0
unit: rad/Nm
upper_bound:
type: number
default: 10000
unit: rad/Nm
IPC_phase_1P:
type: object
default: {}
description: Phase lag of 1P IPC feedback
properties:
flag: *flag
lower_bound:
type: number
default: -3.14
unit: rad
upper_bound:
type: number
default: 3.14
unit: rad
torque:
type: object
default: {}
properties:
VS_zeta:
type: object
default: {}
description: Damping ratio of torque control regulator mode
properties:
flag: *flag
omega_min: *omega_min
omega_max: *omega_max
zeta_min: *zeta_min
zeta_max: *zeta_max
flap_control:
lower_bound: *zeta_min
upper_bound: *zeta_max
VS_omega:
type: object
default: {}
description: Natural frequency of torque control regulator mode
properties:
flag: *flag
omega_min: *omega_min
omega_max: *omega_max
zeta_min: *zeta_min
zeta_max: *zeta_max
lower_bound: *omega_min
upper_bound: *omega_max
flap_control:
type: object
default: {}
properties:
flag: *flag
omega_min: *omega_min
omega_max: *omega_max
zeta_min: *zeta_min
zeta_max: *zeta_max

constraints:
# GB: These all need gammas or safety factors
Expand Down Expand Up @@ -652,7 +763,7 @@ properties:
properties:
flap_control:
type: object
description: Words TODO
description: Words TODO # DZ: I'm not sure what this represents
default: {}
properties:
flag: *flag
Expand All @@ -662,6 +773,32 @@ properties:
minimum: 0.0
maximum: 1.0
max: *flapminmax
max_tip_speed:
type: object
description: Maximum allowable tip speed
default: {}
properties:
flag: *flag
min: &tip_minmax
type: number
untis: m/s
default: 100
minimum: 0.0
maximum: 200
max: *tip_minmax
max_gen_speed:
type: object
description: Maximum allowable generator speed
default: {}
properties:
flag: *flag
min: &gen_minmax
type: number
units: rad/s
default: 1.0
minimum: 0.0
maximum: 100000.0
max: *gen_minmax

merit_figure:
type: string
Expand Down
29 changes: 21 additions & 8 deletions weis/yaml/geometry_schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2209,6 +2209,8 @@ properties:
type: object
required:
- rated_power
- rated_torque
- rated_speed
- max_torque_rate
- max_gen_speed
properties:
Expand All @@ -2217,6 +2219,16 @@ properties:
description: Nameplate power of the turbine, i.e. the rated electrical output of the generator.
unit: W
minimum: 0
rated_torque:
type: number
description: Rated generator load torque
unit: W
minimum: 0
rated_speed:
type: number
description: Rated generator speed
unit: W
minimum: 0
max_gen_speed:
type: number
description: Maximum generator speed of the wind turbine.
Expand Down Expand Up @@ -2285,8 +2297,6 @@ properties:
- power_control
- freq_avoidance
- soft_cut_out
- user_defined_mods
- user_defined_OL
- user_dylib
- user_simulink
- user_defined_SS_1
Expand Down Expand Up @@ -2534,6 +2544,7 @@ properties:
maximum: 0.2 # Technically, actuators/pitch/max_pitch_rate
open_loop_pitch:
type: object
description: Pitch trajectory when limit is exceeded
required:
- time
- pitch
Expand All @@ -2543,6 +2554,8 @@ properties:
pitch:
$ref: "#/definitions/timeseries/value"
open_loop_pwr:
type: object
description: Power trajectory when limit is exceeed
required:
- time
- power
Expand Down Expand Up @@ -2721,9 +2734,9 @@ properties:
minItems: 1
uniqueItems: false

user_defined_SS_1: &uss
user_defined_SS_1: &u_ss
type: object
description: User defined state-space linear controllers within ROSCO, only 1 for now
description: User defined state-space linear controllers within ROSCO
required:
- sensors
- actuators
Expand All @@ -2749,10 +2762,10 @@ properties:
$ref: "#/definitions/state_space"
activator:
$ref: "#/definitions/activator"
user_defined_SS_2: *uss
user_defined_SS_3: *uss
user_defined_SS_4: *uss
user_defined_SS_5: *uss
user_defined_SS_2: *u_ss
user_defined_SS_3: *u_ss
user_defined_SS_4: *u_ss
user_defined_SS_5: *u_ss
user_defined_TF_1: &u_tf
type: object
description: User defined transfer function linear controllers within ROSCO, only 1 for now
Expand Down