I think you are correct. Here is the output if you change the angular
momentum function to use the velocity of the mass center:

In [1]: %paste
from sympy import symbols
from sympy.physics.mechanics import *

m,a = symbols('m a')
q = dynamicsymbols('q')

R = ReferenceFrame('R')
R1 = R.orientnew('R1', 'Axis', [q, R.z])
R1.set_ang_vel(R,q.diff() * R.z)

I = inertia(R1,0,m*a**2/3,m*a**2/3)

O = Point('O')

A = O.locatenew('A', 2*a * R1.x)
G = O.locatenew('G', a * R1.x)

S = RigidBody('S',G,R1,m,(I,G))

O.set_vel(R, 0)
A.v2pt_theory(O, R, R1)
G.v2pt_theory(O, R, R1)

print(S.angular_momentum(O,R))
print(S.angular_momentum(G,R))

## -- End pasted text --
4*a**2*m*q'/3*R1.z
a**2*m*q'/3*R1.z



Jason
moorepants.info
+01 530-601-9791

On Sat, Oct 24, 2015 at 10:33 AM, Philippe Fichou <philippe.fic...@gmail.com
> wrote:

> I propose an answer to  my own question. Would there not an error in Sympy
> ? I can read here
>
> http://docs.sympy.org/dev/modules/physics/mechanics/api/part_bod.html#sympy.physics.mechanics.rigidbody.RigidBody.angular_momentum
> that:
>
> *Angular momentum of the rigid body.*
>
> The angular momentum H, about some point O, of a rigid body B, in a frame
> N is given by
>
> H = I* . omega + r* x (M * v)
>
> where I* is the central inertia dyadic of B, omega is the angular velocity
> of body B in the frame, N, r* is the position vector from point O to the
> mass center of B, and v is the velocity of point O in the frame, N.
>
>
> I think v is not the velocity of point O, but velocity of the center of
> mass ?
>
> Am I wrong ?
>
>
> Thanks for your help
>
> Philippe
>
> Le samedi 24 octobre 2015 18:00:59 UTC+2, Philippe Fichou a écrit :
>>
>> Hey, all
>> Consider a pendulum of length OA = 2a, of mass m as a rigid body of
>> center of mass G (OG = a) which turn around (O,z). The angle between the
>> reference frame R and the rod is q.
>> The inertia of the body is I = (G,0,ma^2/3,ma^2/3)
>> When I ask Sympy for the angular momentum about point O, it says
>> m*a**2/3*q'*R.z, the same as point G.
>> I should have 4*m*a**2/3*q'*R.z.
>> Anybody can help me ?
>>
>> Here is the code:
>>
>> from sympy import symbols
>> from sympy.physics.mechanics import *
>>
>> m,a = symbols('m a')
>> q = dynamicsymbols('q')
>>
>> R = ReferenceFrame('R')
>> R1 = R.orientnew('R1', 'Axis', [q, R.z])
>> R1.set_ang_vel(R,q.diff() * R.z)
>>
>> I = inertia(R1,0,m*a**2/3,m*a**2/3)
>>
>> O = Point('O')
>>
>> A = O.locatenew('A', 2*a * R1.x)
>> G = O.locatenew('G', a * R1.x)
>>
>> S = RigidBody('S',G,R1,m,(I,G))
>>
>> O.set_vel(R, 0)
>> A.v2pt_theory(O, R, R1)
>> G.v2pt_theory(O, R, R1)
>>
>> print(S.angular_momentum(O,R))
>> print(S.angular_momentum(G,R))
>>
>> Thanks !
>>
>>  Philippe
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+unsubscr...@googlegroups.com.
> To post to this group, send email to sympy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/8f3af7d6-95b2-4185-8cda-ebc292dec582%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/8f3af7d6-95b2-4185-8cda-ebc292dec582%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAP7f1AjNnyDaN9TZ%2BQ-8R-8AD568vcy64TC0iyucOXWtqsT6WQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to