Skip to content

Conversation

@andrew-platt
Copy link
Collaborator

Ready to merge.

Feature or improvement description

  • Fix logic bug preventing DLL prescribed forces to be applied to the StC
  • Update comments and add warning for when no StC channel requested, but DLL control expected
  • Add moments to the DLL prescribed StC loads
  • Increase number of channels per StC from 20 to 25 to include enough for moments.
    • This is an API change for the extended Bladed DLL interface
    • There are few known users of this feature, so we expect this will have a limited impact

Related issue, if one exists
RE: Imposed force does not affect the motion of a turbine

Impacted areas of the software
External force applied through structural controls using a DLL.

Additional supporting information
This is a rarely used feature, so it was not thoroughly tested during development.

Test results, if applicable
None (we don't have a controller that can simulate this).

Update comments and add warning for now StC channel requested
NOTE: DLL interface does not support moments, but one user added a pipe in this location for applying forces/moments.  The addition of this logic makes moments from a pipe possible
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes a logic bug preventing DLL-prescribed forces from being applied to structural controls (StC), adds moment support to DLL-prescribed StC loads, and extends the Bladed DLL interface API to accommodate the additional moment channels.

Changes:

  • Fixed logic bug in DOFMode_ForceDLL mode where prescribed moments were incorrectly set to zero instead of using M_ext values
  • Added CmdMoment, InitMoment, M_ext, PrevStCCmdMoment, and StCCmdMoment fields throughout the StC data structures and DLL interface
  • Increased StCCtrl_ChanPerSet from 20 to 25 channels to accommodate X, Y, Z moment components plus reserved channels
  • Added validation warning when control mode 5 (active DLL control) is requested but no control channel is specified
  • Corrected units in comments (changed "N/(m/s)" to "N" for brake and force signals)

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
modules/servodyn/src/StrucCtrl_Types.f90 Auto-generated type definitions for new moment fields with copy/destroy/pack/unpack/interpolation support
modules/servodyn/src/StrucCtrl_Registry.txt Registry entries for InitMoment, M_ext, and CmdMoment fields
modules/servodyn/src/StrucCtrl.f90 Allocation and initialization of moment fields, logic bug fix for DOFMode_ForceDLL, function signature updates, validation warning
modules/servodyn/src/ServoDyn_Types.f90 Auto-generated type definitions for DLL moment command fields with serialization support
modules/servodyn/src/ServoDyn_Registry.txt Registry entries for PrevStCCmdMoment and StCCmdMoment with corrected units
modules/servodyn/src/ServoDyn.f90 Integration of moment commands into StC control flow and DLL interface
modules/servodyn/src/BladedInterface_EX.f90 Extended avrSWAP interface with 25 channels per set, moment data passing, and documentation updates

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@andrew-platt andrew-platt merged commit aa2fd1a into OpenFAST:dev Jan 20, 2026
12 checks passed
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.

2 participants