Hooke’s Law: Difference between revisions

From Physics Book
Jump to navigation Jump to search
Line 16: Line 16:


''X'' - spring displacement from the spring's free end while at equilibrium position, SI Units: Newtons/Meters
''X'' - spring displacement from the spring's free end while at equilibrium position, SI Units: Newtons/Meters
===A Computational Model===
    # GlowScript 1.1 VPython
L0=.1 #the natural length of the spring
k=15 #spring constant
#the holder is the top plate for the spring
holder= box(pos=vec(-.1,.1,0), size=vec(.1,.005,.1))
#the ball and the spring should be obvious
#note that the ball has a trail
ball=sphere(pos=vec(-.1,-L0+.1,0), radius=0.02, color=color.red, make_trail=true)
spring=helix(pos=holder.pos, axis=ball.pos-holder.pos, radius=.02, coils=10)
ball.m=0.1 #mass of the ball in kg
ball.p=ball.m*vec(0,0,0) #starting momentum mass times velocity
dr=vec(0,-0.05,0) #this is the displacement of the spring
ball.pos=ball.pos+dr
g=vec(0,-9.8,0) #gravitational field
t=0
dt=0.01 #size of the time step
#putting the loop as "while True" means it runs forever
#you could change this to while t< 10: or something
while t<3:
    rate(100) #this says 100 calculations per second
   
    #L is the length of the spring, from the holder to the ball
    L=ball.pos-holder.pos
   
    #remember that mag(R) gives the magnitude of vector R
    #remember that norm(R) gives the unit vector for R
    Fs=-k*(mag(L)-L0)*norm(L) #this is Hooke's law
   
    #this calculates the net force
    F=Fs+ball.m*g
   
    #update the momentum
    ball.p=ball.p+F*dt
   
    #update the position of the ball
    ball.pos= ball.pos +ball.p*dt/ball.m
    #this next line updates the spring
    spring.axis=ball.pos-holder.pos


==Examples==
==Examples==

Revision as of 13:25, 10 April 2016

Vinutna Veeragandham


Hooke's Law: the force needed to extend or compress a spring by some distance is proportional to that distance.

The Main Idea

Hooke's Law demonstrates the relationship between forces applied to a spring and elasticity. It states that the force needed to extend or compress a spring by some distance is proportional to that distance. This law applies to many different materials such as balloons or strings; an elastic body to which Hooke's law applies is known as linear-elastic. Hooke's Law has been the basis for the modern Theory of Elasticity, led to creation of new inventions as well as been the foundation of many different branches of science such as seismology, molecular mechanics and acoustics.

A Mathematical Model

   F = -kX

F - restoring force, force by which the free end of the spring is being pulled, SI Units: Newtons

k - spring constant, an inherent property of the string, SI Units: Meters

X - spring displacement from the spring's free end while at equilibrium position, SI Units: Newtons/Meters

A Computational Model

   # GlowScript 1.1 VPython

L0=.1 #the natural length of the spring k=15 #spring constant

  1. the holder is the top plate for the spring

holder= box(pos=vec(-.1,.1,0), size=vec(.1,.005,.1))

  1. the ball and the spring should be obvious
  2. note that the ball has a trail

ball=sphere(pos=vec(-.1,-L0+.1,0), radius=0.02, color=color.red, make_trail=true) spring=helix(pos=holder.pos, axis=ball.pos-holder.pos, radius=.02, coils=10)

ball.m=0.1 #mass of the ball in kg ball.p=ball.m*vec(0,0,0) #starting momentum mass times velocity

dr=vec(0,-0.05,0) #this is the displacement of the spring ball.pos=ball.pos+dr

g=vec(0,-9.8,0) #gravitational field t=0 dt=0.01 #size of the time step

  1. putting the loop as "while True" means it runs forever
  2. you could change this to while t< 10: or something

while t<3:

   rate(100) #this says 100 calculations per second
   
   #L is the length of the spring, from the holder to the ball
   L=ball.pos-holder.pos
   
   #remember that mag(R) gives the magnitude of vector R
   #remember that norm(R) gives the unit vector for R
   Fs=-k*(mag(L)-L0)*norm(L) #this is Hooke's law
   
   #this calculates the net force
   F=Fs+ball.m*g
   
   #update the momentum
   ball.p=ball.p+F*dt
   
   #update the position of the ball
   ball.pos= ball.pos +ball.p*dt/ball.m
   #this next line updates the spring
   spring.axis=ball.pos-holder.pos

Examples

Connectedness

History