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

Bug report: AeroDyn Write Output Not Appearing in Linearization #972

Open
jjonkman opened this issue Jan 19, 2022 · 4 comments
Open

Bug report: AeroDyn Write Output Not Appearing in Linearization #972

jjonkman opened this issue Jan 19, 2022 · 4 comments

Comments

@jjonkman
Copy link
Collaborator

Bug description
When write outputs are specified in AeroDyn for an OpenFAST model that is linearized, the derivatives of these outputs should be calculated and reported in the linearized C and D matrices. However, the rows in the C and D matrices associated with the AeroDyn write outputs are all zero. This functionality worked in OpenFAST v2.6 and older, but no longer works in OpenFAST v3.0 and the current dev branch. I would guess the bug originated when the multi-rotor capability was added to AeroDyn in PR # #672.

To Reproduce
See the model input files shared by Dezheng Zhu on the forum: https://wind.nrel.gov/forum/wind/viewtopic.php?f=30&t=2667 and compare the C and D matrices between OpenFAST v2.6 and v3.0.

Expected behavior
Nonzero derivatives associated with the AeroDyn write outputs.

Screenshots, if applicable

OpenFAST Version
OpenFAST v3.0 and current dev.

System Information (please complete the following information):
Any

Additional context

@bjonkman
Copy link
Contributor

We might have to

  1. call AD_CalcOutput instead of RotCalcOutput in Rot_JacobianPInput() and RotJacobianPContState() or
  2. move where y%rotors(iR)%WriteOutput is computed from AD_CalcOutput into RotCalcOutput.

bjonkman added a commit to bjonkman/openfast that referenced this issue Jan 27, 2022
@jjonkman
Copy link
Collaborator Author

This issue was resolved by PR #1061.

@andrew-platt
Copy link
Collaborator

Reopening this issue as we now thing we should be calling AD_CalcOutput.

This became an issue after the addition of the buoyancy loads to AD15. These loads were added to the AD_CalcOutput, so would not get included in the linearization results. So we think it best to not have the glue code aware of the rotors in AD15.

@bjonkman
Copy link
Contributor

bjonkman commented Jun 6, 2023

I don't think this is a matter of the glue code being aware of rotors in AD15.... For instance, the glue code calls AD_JacobianPInput, which calls Rot_JacobianPInput. I don't think the rotor-level Jacobian routines should be calling the AD (all rotors+) routines, so you'd have to do some other rearranging of those jacobian routines (not just calling AD_CalcOutput).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants