course_planning:183_projects:f21_week_11_you_spin_me_right_round_part_2_solution

Project 13: Part B: You spin me right round

Turns out, you have access to a high-powered water hose of the kind typically used to fend off boar tigers! This may come in handy, as the rotating platform of the generator has small little cups which would act perfectly to catch water. The cups line the platform at a distance $r_{0}=2.5\,{\rm m}$ from the center, and the hose can generate a constant force $F_{0}=200\,{N}$.

In order to prove to Aunt Entity that this high-powered water hose is a much better approach to power the generator – since she cannot follow your mathematical acrobatics – you must produce a visual display of the angular momentum vector to demonstrate that the platform does indeed begin to speed up quickly.

But not too fast! As luck would have it, your water supply is limited! Determine how long it will take for the generator to ramp up to the required kinetic energy, using Python's graphing capabilities.

Attached below are the remnants of crazy Dr. Wiley's attempt at a simulation, however he just could not finish the job. Take up where he left off!

Project 13 Solution: Part B: You spin me right round

  • What is angular momentum conservation?
  • What is torque?
  • What is the difference between rotational and translational angular momentum?
  • What is the right-hand rule for angular momentum?
  • What does it mean for something to be in static equilibrium? Some forces and torque = 0

First, we need to assume that the torque delivered by the hose is a constant:

I = (1/2)*300*(2.5**2)
L = 0
F = 200
r = 2.5
tauhose = r*F

The $\tau_{\rm hose}$ can go in the parameters section since it doesn't depend on time, or it could go in the calculation loop. Either one will work, but you should ask if it is time dependent or not. Then, we need to update the angular momentum in the calculation loop by adding the net torque and the angular momentum update:

	taunet = tauhose
 
	L = L + taunet*dt

At this point, they can uncomment out the Larrow and add in the graph give and give it the proper attributes:

Larrow = arrow(color=color.orange)
EnergyGraph = PhysGraph(1)
 
	Larrow.pos = axel.pos
	Larrow.axis = vector(0,L/100,0)
 
	graph.plot(pos=(t,(1/2)*I*(L/I)**2))

With these numbers, from the graph, the time in order to achieve the necessary kinetic energy is $t_{\rm frictionless}\approx 2.7\,{\rm s}$.

Given that this method produces an angular momentum and kinetic energy that increases to infinity, we should prompt them to add in a torque due to friction (see tutor question below).

Tutor Questions:
  • Question: How does the force generated by the hose translate into motion of the platform?
  • Expected Answer: …the force that the water particles generate on an object they are striking generate a torque. This torque beings to rotate the platform…
  • Question: How is the direction of the angular momentum determined? How are you incorporating this into your code?
  • Expected Answer: …torque is given by the cross product of the point of contact (of water) vector and the force due to the water particles. Similarly, we could use the right hand rule, curl your fingers in the direction of rotation of the platform (intuit this), angular momentum points in the direction of the thumb. For this solution, we are calculating the magnitude of the torque and are forcing it to generate an angular momentum only upward (given the set-up of the problem)…
  • Question: Is the torque delivered by this hose constant? How does the fact that this is a hose change the torque?
  • Expected Answer: …the flow rate remains the same, while the momentum change decreases as the platform speeds up. This limits the angular momentum of the platform for a given hose force. Initially, we are neglecting this decrease in momentum change as the platform speeds up…
  • Question: What does the rotate function inside the code do?
  • Expected Answer: …every time the function is run, it rotates the object by the given angle in the function…
  • Question: How long will it take for the platform to ramp up the necessary speed?
  • Expected Answer: …from the graph, we can pick off the time at which we hit the necessary energy…
  • Question: What happens if you change the direction of the torque?
  • Expected Answer: …if we flip the direction of the torque (hit the platform on the opposite side), the platform will rotate in the opposite direction. The kinetic energy remains the same (in time)…
  • Question: How can we make this more realistic?
  • Expected Answer: …add in a torque due to air resistance, or account for the fact that the hose force would not be constantly applied to the platform (it would decrease as the platform begins to rotate)…
  • Question: How does this change the amount of time required for the platform to ramp up?
  • Expected Answer: …since the net torque is decreased, the time must increase…
  • Question: Visually speaking, what is an indication that a net torque is acting on this platform?
  • Expected Answer: …as the angular momentum vector changes, we know that the torque is nonzero. As the angular momentum vector becomes constant in time, the two torques balance out giving a net torque of zero…
  • Question: Previous experiment shows that $|\tau_{\rm fric}|=bL^{2}$, where $b=0.00025\,{\rm kg^{-1}m^{-2}}$. Since force imparted by the hose actually changes in a pretty complicated matter, nudge them to add in a frictional torque.
  • Expected Answer:
    b = 0.00025
     
    	taufric = -b*L**2
    	taunet = tauhose + taufric

5 Post Class Questions

Common Difficulties:
  • Computers + physics = confusion.
Main Points:
  • How the angular momentum must update given a net torque.
  • Vector nature of angular momentum (cross product of distance from origin to point of application and force).

https://www.glowscript.org/#/user/pcubed/folder/solutions/program/SpinMeAroundSolution

torque.sol.py
#Imports
from __future__ import division
from visual import *
from physutil import *
 
#Objects
axel = cylinder(pos=vector(0,-5,0), axis=vector(0,0.5,0), radius=0.1, color=color.white)
platform = cylinder(pos=vector(0,-5,0), axis=vector(0,0.1,0), radius=10, material=materials.marble)
 
#Parameters and Initial Conditions
I = (1/2)*300*(2.5**2)
L = 0
F = 200
r = 2.5
b = 0.00025
 
#Time and time step
t=0
tf=10
dt=0.01
 
#MotionMap/Graph
Larrow = arrow(color=color.orange)
EnergyGraph = PhysGraph(1)
 
#Calculation Loop
while t < tf:
	rate(100)
 
	taufric = -b*L**2
	tauhose = r*F
	taunet = tauhose + taufric
 
	L = L + taunet*dt
 
	platform.rotate(angle=(L/I)*dt, axis=vector(0,1,0), origin=axel.pos)
 
	EnergyGraph.plot(t, (1/2)*(1/I)*(L)**2)
 
	Larrow.pos = axel.pos
	Larrow.axis = vector(0,L/100,0)
 
	t = t + dt
  • course_planning/183_projects/f21_week_11_you_spin_me_right_round_part_2_solution.txt
  • Last modified: 2022/09/08 19:24
  • by valen176