Added/virtual mass for RigidBody class

18 views
Skip to first unread message

nautilus

unread,
Aug 18, 2015, 9:10:38 AM8/18/15
to PyDy
I am involved in hydrodynamic modelling of floating and immersed bodies where the added/virtual mass effects
are not negligible.  These are the forces and moments produced by the fluid as it accelerates past the body.
It is conventionally described by a 6x6 symmetric matrix that premultiplies the linear and angular accelerations
of the body to give a vector of forces and moments.  As such it might be anticipated that this term could just
be placed on the RHS of the equation set (with other forces) but as it depends on the (initially unknown) accelerations
it is convenient (and often necessary to stabilise solution of the EOM) to regard it as augmenting the mass/inertia
matrix of the body. 

Would it be possible to modify the RigidBody class to permit this type of mass matrix?  The inertia matrix would then
comprise full 3x3 submatrices whereas currently  the scalar mass only requires diagonals on the first minor and the 
off-diagonal minors are the zero matrix if the barycentre is used for the origin. 

Apologies if I have missed this in earlier topic lists.

Regards

Steve   

Jason Moore

unread,
Aug 18, 2015, 12:44:21 PM8/18/15
to py...@googlegroups.com
Hi Steve,

Yes, we'd be open to modifications like this to be included. For us to fully understand the need it would be great to see some example code that solves one of you hydrodynamics problems. You can subclass RigidBody and experiment with you modifications. Just share with us what you try and we can think about how to integrate the extra attributes/features into the code.

--
You received this message because you are subscribed to the Google Groups "PyDy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pydy+uns...@googlegroups.com.
To post to this group, send email to py...@googlegroups.com.
Visit this group at http://groups.google.com/group/pydy.
For more options, visit https://groups.google.com/d/optout.

Steve Fiddes

unread,
Aug 18, 2015, 1:02:02 PM8/18/15
to py...@googlegroups.com
Hi Jason

Thanks for the speedy (and encouraging) response.

I'd be happy to try subclassing RigidBody, by augmenting entries in the original
"conventional" 6x6 mass matrix. However, I want to check with you that the 6x6
mass/inertia matrix in RigidBody is used in an `abstract' sense as a general matrix
and  no advantage is taken  of the  special form of the conventional  inertia/mass
matrix in subsequent methods, etc.

I'll dig up some sample code to show what I currently do in Python (using Newton-Euler,
body axes, etc.) The great attraction of using Pydy is the ease of handing constraints (e.g.
bodies under tow) so I'm keen to move on.

Steve
You received this message because you are subscribed to a topic in the Google Groups "PyDy" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pydy/hdop8d56Qx4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to pydy+uns...@googlegroups.com.

To post to this group, send email to py...@googlegroups.com.
Visit this group at http://groups.google.com/group/pydy.
For more options, visit https://groups.google.com/d/optout.


-- 
--
S P Fiddes
Flow Solutions Limited
Tel :  01454 300006
http:  www.flowsol.co.uk



The Information contained in this E-Mail and any subsequent
correspondence is private and is intended solely for the
intended recipient(s). For those other than the recipient
any disclosure, copying, distribution, or any action taken
or omitted to be taken in reliance on such information is
prohibited and may be unlawful.

Flow Solutions Ltd
Company Registration Number: 2010440
Registered Office: 61 Grace Close Chipping Sodbury, South Glos BS37 6ND

Jason Moore

unread,
Aug 18, 2015, 1:15:39 PM8/18/15
to py...@googlegroups.com
So the RigidBody class has an attribute for inertia which we store in a inertia dyadic. This is effectively a 3 x 3 inertia tensor with a basis included. The RigidBody class does not store anything about the mass matrix of the system. This dyadic attribute is used extensively in other classes and from it's on methods.

The two "Methods" classes KanesMethod and LangrangesMethod generate the system's mass matrix, which can have any dimension that correlates to your # of degrees of freedom.

So I'm not exactly sure what the 6x6 matrix is that you are talking about.

Steve Fiddes

unread,
Aug 18, 2015, 1:59:26 PM8/18/15
to py...@googlegroups.com
Hi Jason

The issue here is that the hydrodynamic forces (not just moments) have a contribution from the rotational
accelerations (and not just the  translational accelerations) at the outset (and vice-versa) , so the inertia matrix
(after moving this acceleration-dependent "mass matrix" to the LHS) is never just a 3x3.

A similar "6x6" inertia matrix crops up in pydy already when the barycentre isn't used for the origin -
but then I think  it comes out of ref frame transformations where the cg is offset in a subsequent frame
from the usual original barycentric ref frame origin so is not set up as such at the outset of the analysis
- but I'd need  to let the system know about rotation/translation "coupling" at the outset if the added mass
is to be used.

The mass matrix generated in KanesMethod and LagrangesMethod is in terms of the generalised coordinates
while the added mass matrix I wish to use at the outset is defined in body axes like the present (conventional)
inertia Ixx, etc  terms.  I wish to use KanesMethod to incorporate the added mass terms in the final equation set
for the EOM in terms of the generalised coordinates.


Hope this is a bit clearer - if not let me know.

I've tried to find a paper via Google where someone has tried this for Kane's method.  The only one I've found

https://books.google.com/books?id=YwfaBwAAQBAJ&pg=PA207&lpg=PA207&dq=kane+added+mass&source=bl&ots=Me9oZsfh9l&sig=mxKziYRQEEW-gk3a9MiPEIc6eDY&hl=en&sa=X&ved=0CD4Q6AEwBWoVChMIhLOx3ZizxwIVCWvbCh13cQCu

is where the authors make the assumption that the off-diagonal terms in the added mass matrix are negligible,
so the extra terms are easily incorporated in the present framework, although the earlier analysis (eqn 18) seems
more general.  I'm looking for an implementation of this more general approach for pydy.

Kind regards

Steve
Reply all
Reply to author
Forward
0 new messages