Skip to content

Properly support yaw rate command integration from controller#456

Merged
rafmudaf merged 2 commits intoOpenFAST:devfrom
andrew-platt:bug/Yaw_DLL
Jun 5, 2020
Merged

Properly support yaw rate command integration from controller#456
rafmudaf merged 2 commits intoOpenFAST:devfrom
andrew-platt:bug/Yaw_DLL

Conversation

@andrew-platt
Copy link
Collaborator

@andrew-platt andrew-platt commented Jun 5, 2020

THIS PULL REQUEST IS READY TO MERGE

Feature or improvement description
Integration of the yawrate command from the DLL is now properly supported.
This has been tested by @nikhar-abbas and @ewquon

Related issue, if one exists
Issue #25

Impacted areas of the software
This resolves issue #25. When a DLL was controlling the yaw, the position was incorrectly integrated.

Test results, if applicable
No test cases are affected by this PR as none of the glue-code DLL cases use yaw control.

Closes #25

@rafmudaf rafmudaf changed the title Bug/yaw dll Properly support yaw rate command integration from controller Jun 5, 2020
@rafmudaf rafmudaf merged commit 16bccb4 into OpenFAST:dev Jun 5, 2020
@andrew-platt andrew-platt deleted the bug/Yaw_DLL branch June 5, 2020 20:51
IF ( .not. OtherState%BegYawMan ) THEN ! Override yaw maneuver is just beginning (possibly again).

CALL CalculateStandardYaw(t, u, p, m, YawPosCom, YawRateCom, ErrStat, ErrMsg)
CALL CalculateStandardYaw(t, u, p, m, YawPosCom, YawRateCom, OtherState%YawPosComInt, ErrStat, ErrMsg)
Copy link
Contributor

@bjonkman bjonkman Jun 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like you could potentially be updating the OtherState%YawPosComInt twice in this call to UpdateStates (i.e., taking two steps instead of just one).

Copy link
Collaborator Author

@andrew-platt andrew-platt Jun 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I missed this bit of logic. The second call to CalculateStandadYaw is during an override yaw manuever and should only be called once while OtherState%BegYawMan is false. If we are doing an over-ride of the yaw from the DLL, I would expect the DLL commanded yaw should be completely out of the loop then, so maybe the first first CalculateStandardYaw should be in an else condition on t >= p%TYawManS.

! yaw control integrated command angle
!............................................................................................
OtherState%YawPosComInt = p%YawNeut

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to take into account the initial yaw position from ElastoDyn here?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants