Non Rigid Pendulum - Realistic Case - 2

Consider an arbitrarily shaped rigid body (marked as red) attached to a spring O A OA of instantaneous length r r . The center of mass of the body is located at point C. In this problem, two coordinate frames of reference are defined. One is a global (or inertial) coordinate frame, the origin of which is point O. The other is a body-fixed frame, the origin of which is at point A. The coordinates of the center of mass of the rigid body relative to the body-fixed frame are ( x b , y b ) = ( 0.03 , 0.04 ) (x'_b,y'_b) = (0.03,0.04) . The moment of inertia of the rigid body about its Z-axis is I = 2 k g m 2 I = 2 \ kgm^2 .

The mass experiences drag force and damping forces which are quantified by the following equations:

F d r a g = C d r a g v c o g v c o g \vec{F}_{drag} = -C_{drag}\mid\vec{v}_{cog}\mid\vec{v}_{cog} F d a m p = C d a m p r ˙ \mid\vec{F}_{damp}\mid = C_{damp}\dot{r}

The direction of the damping force is the same as that of the spring force. The system is released from rest when the coordinates of point A are ( 0.5 , 0 ) (0.5,0) at time t = 0 t = 0 . At the initial instant, the X and Y axes of the body fixed and inertial frames are parallel and are pointing in the same direction. Enter your answer as the magnitude of the total energy of the system after a time of t = 10 s e c t = 10 \ sec . The X-axis is considered to be the level of zero gravitational potential energy.

Note:

  • g = 10 m / s 2 g = 10 \ m/s^2

  • The point O O is fixed at the origin of the coordinate system and is marked in blue.

  • The natural length of the spring is 0.3 m.

  • Spring constant = 20 N / m 20 \ N/m

  • Mass = 1 k g 1 \ kg

  • C d r a g = C d a m p = 1 C_{drag} = C_{damp} = 1

  • v c o g \vec{v}_{cog} is the instantaneous velocity vector of the center of mass of the rigid body.

  • r ˙ \dot{r} is the rate of change of spring length at any instant of time.

Bonus: Analyse the results by plotting any relevant quantities and compare the results to the case when the body is treated as a point mass.


The answer is 5.0856.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

1 solution

Steven Chase
Oct 5, 2019

Another interesting problem. This one is a mixture of Cartesian and polar calculations. I calculated all of the rotational aspects with respect to the center of mass. Simulation code is below. The plots actually look quite similar to the ones from the previous problem, so I won't post them.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
import math

# Constants

g = 10.0
L0 = 0.3
k = 20.0
m = 1.0
Cdrag = 1.0
Cdamp = 1.0
IA = 2.0

rAC = 0.05
IC = IA - m*(rAC**2.0)  # Moment of inertia about center of mass

dt = 10.0**(-5.0)

########################

# Initialize simulation

t = 0.0
count = 0

xC = 0.5 + 0.03
yC = 0.04

rA = 0.5

xCd = 0.0
yCd = 0.0

xCdd = 0.0
yCdd = 0.0

theta = -math.pi + math.atan(0.04/0.03)      # Angle of A with respect to C
thetad = 0.0                                 # in reference frame of O
thetadd = 0.0

print "t xC yC vC"

################################################

while t <= 10.0:

    rA_store = rA

    #######

    xC = xC + xCd * dt      # numerical integration
    yC = yC + yCd * dt

    xCd = xCd + xCdd * dt
    yCd = yCd + yCdd * dt

    theta = theta + thetad * dt
    thetad = thetad + thetadd * dt

    vC = math.hypot(xCd,yCd)

    #######

    # Location of point A

    xA = xC + rAC * math.cos(theta)
    yA = yC + rAC * math.sin(theta)

    rA = math.hypot(xA,yA)

    #######

    # Gravity force

    Fgx = 0.0
    Fgy = -m*g

    #######

    # Spring force

    ux = xA/rA
    uy = yA/rA

    s = rA - L0

    if s >= 0.0:
        Fsx = -k*s*ux
        Fsy = -k*s*uy
    else:
        Fsx = k*s*ux
        Fsy = k*s*uy

    #######

    # Drag force

    Fdragx = -Cdrag * vC * xCd
    Fdragy = -Cdrag * vC * yCd

    #######

    # Damping force

    rAd = (rA-rA_store)/dt
    rAdmag = math.fabs(rAd)

    if rAd >= 0.0:
        Fdampx = -Cdamp * rAdmag * ux
        Fdampy = -Cdamp * rAdmag * uy
    else:
        Fdampx = Cdamp * rAdmag * ux
        Fdampy = Cdamp * rAdmag * uy

    #######

    # Total force

    Fx = Fgx + Fsx + Fdragx + Fdampx
    Fy = Fgy + Fsy + Fdragy + Fdampy

    xCdd = Fx/m
    yCdd = Fy/m

    #######

    # Torque about point C
    # Spring and damping forces determine this torque

    rtaux = xA - xC
    rtauy = yA - yC

    Ftaux = Fsx + Fdampx
    Ftauy = Fsy + Fdampy

    Torque = rtaux*Ftauy - rtauy*Ftaux

    thetadd = Torque / IC

    #######

    # Energies

    Ek = 0.5*m*(vC**2.0) + 0.5*IC*(thetad**2.0)  # kinetic energy has two parts now
    Ug = m*g*yC
    Us = 0.5*k*(s**2.0)

    Etot = Ek + Ug + Us

    #######

    t = t + dt
    count = count + 1

    if count%1000 == 0:
        print t,xC,yC,vC

################################################

print ""
print ""
print dt
print ""
print xC
print yC
print ""
print Ek
print Ug
print Us
print ""
print Etot

################################################

# Results

#1e-05

#-0.0824596795077
#-0.759379636

#0.00272617121468
#-7.59379636
#2.50546800702

#-5.08560218177


################################################

Interesting approach, thanks for sharing. I like how you evaluate the equations of motion in a step by step manner instead of deriving them explicitly.

  • The answer obtained when the mass is a point mass is 7.8% greater than the answer to this question.
  • To put things to perspective, Just by making a point mass approximation gives a fairly accurate result in this particular scenario. Of course for a larger body with a larger offset between points A and C, this would not be the case.
  • Another takeaway from this problem is that making one additional realistic consideration increased the amount of work involved relative to the previous question. This problem in 3D would be quite involved as I see it.

Karan Chatrath - 1 year, 8 months ago

Yes, it would be rather involved, with four angular parameters. The thing I like most about computer solutions is that they enable me to split big problems up into small pieces. Thanks for posting these.

Steven Chase - 1 year, 8 months ago

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...