1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Internal energy problem

  1. Mar 17, 2010 #1
    1. The problem statement, all variables and given/known data

    Use your program for the viscously damped spring to solve this problem. Make sure you change the parameters as specified below.

    A mass m=7.1 kg is attached to the end of a spring with a spring constant of k=16.4 N/m. The mass moves through a viscous damping medium with a damping constant b=1.8 kg/s giving a velocity dependent damping force Fdamp= -bv.

    The motion occurs in zero gravity so set the force of gravity to ZERO in your program. Also set the equilibrium position L0=0. The mass is initially motionless and displaced from equilibrium by a distance yinitial=0.2 m.

    What is the energy of the spring-mass system when the mass first passes through the equilibrium position? (you may wish to include a logical test to help you find when this occurs)

    2. Relevant equations

    from __future__ import division
    from visual.graph import *

    scene.y = 400 # moves animation window down 400 pixels to make room for graph

    # Constants
    pi = 3.14159
    L0 = .08 # equilibrium length of spring (not stretched)
    g = 0 # gravitational acceleration set to zero (not on earth)
    k = 14 # insert the spring constant you found for the coiled spring

    # Objects
    # Ceiling to hang spring from.
    # block to act as mass.
    # Spring is represented by a cylinder.
    scene.center = vector(0,-.1,0) # you may want to adjust this to improve display

    ceiling = box(pos=vector(0,0,0), size=(.3,0.005,0.005)) # make the contact pointthe origin
    block=box(pos=vector(0,-0.1,0), size=(.02,0.02,0.02), color=color.yellow)

    # Using the positions of the block and ceiling set the cylinder to stretch from the ceiling to the block
    spring = cylinder(pos=ceiling.pos, axis=block.pos, radius=.005)

    # Initial values
    block.m = 0.45 # insert the measured mass from coiled spring experiment.
    block.v = vector(0,0,0) # the vector velocity assuming the block is initially stationary
    block.p= block.m * block.v

    block.pos=vector(0,-L0-0.05,0) # initial position of block 0.05m from equilibrium

    # Setting the timestep and zeroing the cumulative time
    deltat = .0001 # you should decrease this later to test if it is small enough
    t = 0
    W = 0
    Kgraph = gcurve(color=color.cyan)
    Ugraph = gcurve(color=color.yellow)
    KplusUgraph = gcurve(color=color.red)
    Wgraph = gcurve(color=color.green)
    # Loop for repetitive calculations
    while t < 4:

    Fnet= -(((block.pos-vector(0,-L0,0))*k))-((block.p/block.m)*.2) #INSERT the force of the spring on the block
    block.p= block.p+Fnet*deltat # updates the momentum
    block.pos= block.pos+block.p/block.m*deltat # updates the position
    spring.axis = block.pos #updates the spring axis so it stays on the block
    pmag = mag(block.p) # or whatever you've called the block's momentum

    K = (pmag**2)*.5/block.m #COMPLETE this for the kinetic energy of the
    U = ((mag(block.pos)-L0)**2)*.5*k #COMPLETE this for the potential energy of the block-spring system (note no gravity)
    W = W - displacement*(mag(block.p)/block.m)*.2

    3. The attempt at a solution
  2. jcsd
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted