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

BeamDyn reports wrong inertia (missing cg-offsets and section inertia) in summary file #1337

Open
ebranlard opened this issue Nov 20, 2022 · 2 comments

Comments

@ebranlard
Copy link
Contributor

ebranlard commented Nov 20, 2022

Bug description
The blade inertia reported in the summary file is missing several contributions (center of mass offsets and cross-section inertia, in particular the polar moment of inertia).
The calculation is done here
For a straight blade, the summary file will always return 0 inertia in the (3,3) term.
As far as I can tell, this calculation is only done for the summary file output, so it should have a minor impact on the code.

To Reproduce
Write a BeamDyn summary file with any beamdyn blade file. The blade inertia is wrong in the (3,3) element.

Expected behavior
For a volume, V, the inertia is obtained over integration over all points of the volume $\boldsymbol{r}$:

$$J = - \int_V \tilde{\boldsymbol{r}} \tilde{\boldsymbol{r}} dm(\boldsymbol{r}) = \int_V \begin{bmatrix} r_y^2+r_z^2 & -r_x r_y & -r_x r_z \\\ -r_y r_x & r_x^2 + r_z^2 & -r_y r_z \\\ - r_z r_x & -r_z r_y & r_x^2+r_y^2 \end{bmatrix} dm(\boldsymbol{r})$$

If for simplicity, the integral is performed along a line, $L$ (with the curvilinear coordinate $s$), the inertia is something like:

$$J = - \int_L \tilde{\boldsymbol{r}}(s) \tilde{\boldsymbol{r}} (s) m(s) ds + \int_L \boldsymbol{j}(s) ds$$

where $m(s)$ is the mass per length at a given cross-section, and $\boldsymbol{j}$ is the moment of inertia density (i.e. per length and for each cross-section). If all the mass were concentrated at the center of mass, and if the line $L$ corresponds to the center of mass line, then the second part would be zero.
The first part is what is being computed by BeamDyn (here).
For a straight blade, the first term's contribution to $J_{zz}$ is always zero (because $r_x^2+r_y^2$). No matter if the blade is straight or not, we need to add the second term's contribution to end up with the correct inertia (accounting for center of mass offsets and section inertia).

I believe one solution would consist in

  • Using the 6x6 rigid body mass matrix of each section, transform it to the global coordinate system
    (see e.g. here)
  • Extracting the mass, COG and inertia about the COG for each cross-section (see e.g. here).
  • Translating the 6x6 mass matrix to the blade origin (see e.g., here).
  • integrating each contribution, summing using the integration weights.

As an alternative (that's the method I was using when I found this bug), I believe we could obtain the rigid body mass matrix of the Blade by computing:

$$\boldsymbol{M}_{66} = \boldsymbol{S}^T \boldsymbol{M} \boldsymbol{S}$$

Where $\boldsymbol{S}$ is the matrix of rigid body modes in its 6 columns, and $\boldsymbol{M}$ is the mass matrix. Maybe the rigid body modes need to be scaled by the integration weights to improve the accuracy.

@andrew-platt
Copy link
Collaborator

Originally reported in #302. This is a better description, so closing #302.

@ebranlard ebranlard changed the title BeamDyn reports wrong inertia (missing section polar inertia) in summary file BeamDyn reports wrong inertia (missing cg-offsets and section inertia) in summary file Nov 22, 2022
@andrew-platt andrew-platt self-assigned this Dec 19, 2022
@rafmudaf rafmudaf modified the milestones: v3.4.0, v4.0.0 Dec 19, 2022
@andrew-platt andrew-platt modified the milestones: v4.0.0, v5.0.0 Dec 24, 2024
@andrew-platt
Copy link
Collaborator

Is this still an issue?

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