-
Notifications
You must be signed in to change notification settings - Fork 503
Blade pitch dynamics and actuation #3039
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
Open
luwang00
wants to merge
26
commits into
OpenFAST:dev-tc
Choose a base branch
from
luwang00:f/BldPitch
base: dev-tc
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Added blade-pitch torque as a new input to ED. * Added blade pitch rates to ED outputs for controls. * Constrained blade pitch angles to the interval of [-pi,pi).
…. The latter is ignored when BD is used.
…enFAST when blade-pitch DoF are disabled
The pitch actuator torques are used by ElastoDyn when PitchDOF=True
* Currently, the pitch rate commands are only used when computing the pitch moments. * The pitch rate commands are estimated using finite differencing based on the pitch set points from two consecutive controller steps. * The pitch rate commands are low-pass filtered in parallel with the pitch commands using the same filter and cutoff frequency set in the ServoDyn input file. * During pitch maneuver, the pitch rate commands are simply set to PitManRat provided in the ServoDyn input file. * The pitch rate commands are set to zero when PCMode=0, 3, or 4, but can be enabled for 3 and 4 in the future if the user-defined routine or Simulink/Labview controller can provide pitch rate commands.
…itch actuator moment outputs
Collaborator
|
You state above that |
…inputs for modeling blade pitch Also updated api_change.rst
…bad labels in some linearization files
Collaborator
|
remaining issue:
|
…ad mesh to the new BladeRootLoads mesh In the past, all blade root loads from BeamDyn are mapped/summed at the same hub point in ElastoDyn. Now, the root loads of each blade should be mapped to separate root nodes in ED. This is necessary for the new blade pitch DoF in ED.
Collaborator
|
@luwang00 I think the issue with BeamDyn is resolved. Can you update the r-test pointer? |
Collaborator
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Feature or improvement description
This PR introduces additional blade pitch DoFs in ElastoDyn and a simple spring-damper pitch actuator model in ServoDyn.
PitchDOFin ElastoDyn is set to false, OpenFAST functions in the same way as before. The instantaneous blade pitch angles are set toBlPitchComfrom ServoDyn.PitchDOFin ElastoDyn is set to true, ElastoDyn will simulate blade pitch dynamics based on the user provided pitch bearing and blade pitch inertias. In this case, the blade pitch motion is driven by the actuator torqueBlPitchMomfrom ServoDyn.New Inputs for ElastoDyn
Line 11:
Lines 77-82:
When ElastoDyn is used to model the blades, the total inertia of blade pitching is the sum of
PBrInerandBlPIneraugmented by additional contributions due to blade deflection.When BeamDyn is used,
BlPIneris ignored and replaced by the BeamDyn blade models. In this case, it is still necessary to provide nonzero values forPBrInerto allow ElastoDyn to solve the blade pitch DOF.New Inputs for ServoDyn
Lines 9-17:
The pitch neutral positions given by
PitNeutare only used whenPCMode=0or duringt<TPCOnwhenPCMode>0. In this case, the ServoDyn blade pitch commandBlPitchComfor each blade is fixed at the correspondingPitNeutposition. If any of the active pitch control options is enabled, thePitNeutinputs are ignored.In addition to pitch position commands, pitch rate commands
BlPRateComare also added to ServoDyn. Currently,BlPRateComis only available with DLL controllers (PCMode=5). During normal operation, the pitch rate commands are estimated using finite differencing based on the pitch set points from two consecutive controller steps. During pitch maneuver, the pitch rate commands are simply set toPitManRatprovided in the ServoDyn input file.The pitch rate commands are also low-pass filtered in parallel with the pitch set points using the same filter and cutoff frequency set in the ServoDyn input file. The pitch rate commands are set to zero when
PCModeis 0, 3, or 4, but can be enabled for 3 and 4 in the future if supplied by the user-defined routine or Simulink/Labview controller.A simple spring-damper actuator model is added in ServoDyn to compute the pitch actuator torque as:
New Outputs from ElastoDyn
BldPRate1- blade 1 pitch rate (deg/s)BldPRate2- blade 2 pitch rate (deg/s)BldPRate3- blade 3 pitch rate (deg/s)BldPAcc1- blade 1 pitch acceleration (deg/s^2)BldPAcc2- blade 2 pitch acceleration (deg/s^2)BldPAcc3- blade 3 pitch acceleration (deg/s^2)These output channels are valid only if
PitchDOF=Truewith positive values toward the feathered position.New Outputs from ServoDyn
BlPRateC1- blade 1 pitch rate command (deg/s)BlPRateC2- blade 2 pitch rate command (deg/s)BlPRateC3- blade 3 pitch rate command (deg/s)BlPitchM1- blade 1 pitch actuator moment applied on the blade (kN-m)BlPitchM2- blade 2 pitch actuator moment applied on the blade (kN-m)BlPitchM3- blade 3 pitch actuator moment applied on the blade (kN-m)These output channels are always available; however, the pitch actuator moments are ignored by ElastoDyn if
PitchDOF=False. Positive values indicate pitch rate/moment toward the feathered position.Impacted areas of the software
ElastoDyn, ServoDyn, glue-codes, r-test, docs (updated ED and SrvD docs with new inputs and outputs; also updated
api_change.rst)Updates to the controllers for the NREL 5-MW
The controllers in r-test for the NREL 5-MW need to be slightly updated to work with the blade pitch and actuator modeling introduced through this PR.
In the past, blade pitch rate saturation was based on the actual pitch positions at each step. This can lead to erratic pitch controller behavior when the actual pitch angles deviate from the pitch command, especially with small
DLL_DTin ServoDyn. To address this problem, the controllers have been updated to enforce pitch rate saturation based on the pitch command only. See luwang00/r-test@a28872f.Note that this change to the controllers has no impact on existing models and previous r-tests without blade pitch and actuator dynamics. This is because the pitch commands and the actual pitch angles were always the same.
This issue with the controllers was identified by @dzalkind.
ServoDyn setting recommendations
In addition to the new inputs for the blade pitch actuator, the ServoDyn inputs
DLL_RampandBPCutoffalso affect the controller and blade pitch behavior.BPCutoffto an appropriate value to avoid discontinuities in the pitch-rate command. This can help reduce large fluctuations in the actuator torque.DLL_RamptoTrue. This can reduce small jitter in the actuator moment whenDLL_DTis larger than the simulation time step.See example results below for some reference settings.
Example results based on land-based NREL 5-MW model
Step response
No aerodynamic loading and controls (
PCMode=0). Zero rotor speed. All DOF false in ElastoDyn except for PitchDOF. The blades starts from an initial position of 0-deg pitch and move towardPitNeutof 10 deg.PitSprandPitDampare set to achieve a natural period of 0.1 s and different damping ratios from 0.10 to 1.00 based on the pitch inertia of an undeflected blade of 28,578 kg-m^2 with a pitch bearing inertia of 200 kg-m^2.The blade pitch time series are shown below.
Note that this example is for verification only. The pitch rate is NOT realistic.
ROSCO controller
Baseline ROSCO controller with turbulent wind, same as
5MW_Land_DLL_WTurb. All DOF are false in ElastoDyn except for blade-bending DOF, PitchDOF, and GenDOF.PitSprandPitDampare set to achieve target damped periods while fixing the damping ratio to 0.70 based on the inertia of an undeflected blade and no aerodynamic loading. Note that in the presence of aerodynamic loading and blade deflection, blade inertia about the pitch axis can increase significantly, effectively increasing the system period.For reference, the ServoDyn settings for the example results below are provided here.
PitSpr[Nm/rad]PitDamp[Nm/(rad/s)]DLL_RampBPCutoff[Hz]The blade pitch time series are shown below. When the damped period is greater than or equal to 0.50 s, the actuator stiffness is too low to reasonably maintain the blade pitch angle in the presence of aerodynamic loading even when the controller pitch command is constant. When the damped period is less than or equal to 0.25 s, the blade pitch responses appear consistent with that obtained with
PitchDOF=False. Of course, some differences are still present due to the addition of blade pitch and actuator dynamics.The actuator torque time series are shown below. Except for the case with a damped period of 1.00 s, the torque time series are generally consistent with different actuator stiffnesses. The prevailing 5-s period observed in the torque time series corresponds to the 1P frequency of approximately 12 RPM.
Blade pitch rate:
Test results, if applicable
All existing r-tests are updated with
PitchDOFset to false, so there are no changes to the r-test results. However, the linearization outputs need to be updated because ElastoDyn now has additional states, leading to different state-space matrix dimensions. The eigenfrequencies and damping ratios remain mostly unchanged. Also, the controllers for the NREL 5-MW have been slightly updated as discussed above.Future work
In a separate pull request, the incomplete pitch actuator implementation in BeamDyn will be removed. It is superseded by the features added through this PR.