Lecture 16

advertisement
Lecture 16
Nothing new just practice.
Do 8.6 #5
Homework 8.6 #6 as many as you can, #8 Let distance of link be 1 and theta = 45 degrees.
Lecture 17
Section 8.7
Standard coordinate systems.
Rectilinear – our old x, y, z system
Cylindrical (polar with a z) – Measure position from the center of something. Vec r = r * n take
one and two derivatives. Now memorize this stuff. Make sure they know how to define ntheta.
Path – velocity is tangent to the path Vec V = s nt s is speed
How do you find nt? Draw a tangent.
What is acceleration? Vec a = sdot nt + s^2/rho nn rho is radius of curvature. Nn is
perpendicular to nt and inward.
When do you use path? Two times, 1. You know the path (hence you know rho) and you know
or have interest in the speed and its change. 2. Made up problems.
A car comes over a circular hump of radius 20 feet. What is the maximum speed it can have so it
just barely remains in contact with the road?
m g nn = m( sdot nt + s^2/20 nn)
so sdot = 0 and m g = m s^2/20
so s^2 = 20 g
Made up problem.
If a bullet exits a rifle with a speed of 100 m/s at an angle of 30 degrees, what is the radius of
curvature of the path at the muzzle? What is the radius of curvature when it reaches the top?
Homework Section 8.7 #2,3,4,6
Section 8.8
Write a position – rb = ra + ratob
Differentiate – vb = va + omega X ratob + Vsee
Try to draw a picture of these. You know for example that omega X ratob is perpendicular to
ratob.
This is not very useful unless most of the terms are zero. AND the diagram must be repeated for
each new position. Oh well…
Slider crank… Given the crank omega and sizes. What is the speed of the slider.
Steering automobile.
Discuss RCC design
Need visual problems.
findcurvature.mws
Made up problem for path coords.
> restart;
> with(linalg):
> i := vector([1,0,0]): j:=vector([0,1,0]): k:= vector([0,0,1]):
> dot := (VectorOne,VectorTwo) -> dotprod(VectorOne,VectorTwo,'orthogonal'):
> cross := (a,b) -> crossprod(a,b):
> Ve := (VectorEquation,VectorDirection) -> dot(lhs(VectorEquation),VectorDirection) =
dot(rhs(VectorEquation),VectorDirection):
Warning, new definition for norm
Warning, new definition for trace
> g := 9.81: speed := 100;
>
>
ang := 30*Pi/180:
a := -g * j;
>
nt := cos(ang)*i + sin(ang)*j;
>
nn := sin(ang)*i - cos(ang)*j;
>
an := dot(a,nn);
>
evalf(solve(speed^2/rho = an,rho));
At top
> speed := speed * cos(ang);
>
an := g;
>
solve(speed^2/rho = an, rho);
>
Problem 8.7 #8
> restart;
> e1 := rdot*cos(theta+beta)-(r*thetadot)*sin(beta+theta)=s;
>
e2 := -(rdot)*sin(theta+beta)-(r*thetadot)*cos(beta+theta)=0;
>
ans1 := solve({e1,e2},{rdot,thetadot});
>
ans2 := solve({e/sin(theta)=r/sin(Pi/2+beta)},r);
>
ans3 := subs(ans2,ans1);
>
ans4 := beta = solve(beta+Pi/2+theta+theta=Pi,beta);
>
subs(ans4,ans3);
>
simplify(%);
>
Lecture 18
In section 9.1 there is nothing too exciting.
F = ma is the mass of everything and it’s the a of the center of mass.
Make sure you can find the center of mass.
Section 9.2
What is Momentum? Momemtum = m Velocity.
What is Angular Momentum? (sometimes called Moment of Momentum). H = r Cross m
Velocity.
When you take the moment of a force you must tell me:
1. What force, and
2. About what point.
The same applies to H. You must say H of that mass about that point.
The moment equation says Moment about any fixed point = d/dt (of H about the same fixed
point)
OR
Moment about the center of mass of the system = d/dt( of H about the center of mass of the
system)
There is another condition but it is confusing, hard to find, rarely useful and blah blah blah.
If you want to write moment about a point other than a fixed point or the center of mass, you can
but it is not easy, it never moves you forward so there is no reason to do it.
In a 3-D problem, for each mass you can write 3 f=ma, and 3 M=d/dt(H), in 2-D, there are 2
f=ma and 1 Moment.
Do 9.2 #2
NOT ENOUGH TIME FOR THIS ONE. Discuss a bungie jumper and what the final motion will
be if they jump with a distance between them and the tie off point.
Homework 9.2 #3 only determine what wall the rock hits, not the depth, #4 MAKE some
simplifying assumptions, #7, Plus find the center of mass of the objects on the handout.
Lecture 19
In section 9.3 we do angular momentum of a rigid body.
A body is made up of a zillion masses located in a zillion places therefore you cannot compute
the angular momentum by summing r Cross m V for each mass. You need an easier method.
The derivations show how the mass goop factors out of the angular velocity of the body and the
mass goop that is left is called the Inertia dyadic (moments of inertia and products of inertia).
 I xx
I xy
I xz   x 


.
Hbody = Imatrix X Angular Velocity =  I yx
I yy
I yz  
 y 
 I zx
I zy
I zz 
 z 



Ixx, Iyy, and Izz are the moments of inertia. The others are called products of inertia. Ijk = Ikj so
there are 3 moments and 3 products of inertia.
So what the heck are these moments and products of inertia? If a body is symmetrical about its
center of mass, products are zero.
If rotation is about one axis only then:
 I xx I xy I xz   0   I xz 

   
 I yx I yy I yz   0    I yz  z
 I zx I zy I zz   z   I zz 


Swing an L shaped object around various axes and discuss products of inertia.
If the object is 2D (no mass with a z coordinate) then:
 I xx I xy 0   x 
I
 
 yx I yy 0   y 
 0
0 I zz   z 
If the object is 2D and rotates only about z then:
 I xx I xy 0   0 
I
 
 yx I yy 0   0   I zz z
 0
0 I zz   z 
So now what? Well Moment = d/dt of H IF moment is about 1. Fixed point or 2. Center of mass
or 3. DON’T EVEN THINK ABOUT 3.
So what does a product of inertia do?
Note that if I is computed about fixed x, y, z, they can change when the body rotates, and if
computed about axes fixed in the body, the axes change as it rotates. Therefore d/dt(H) is NOT
ALWAYS I alpha.
The effect of a product of inertia is rotation about one axis causes a torque about another.
Spin an L and discuss balancing of tires.
To summarize: See table 9.1 on page 485
How to compute I about something other than center of mass. Use parallel axis theorem. I any =
I center + m* square distance between any and center.
I of multiple pieces = sum of all.
I = m*radius of gyration squared.
Homework 9.3 #2 b and d, 3b, 4b, 5, 6, 7, 9
Problem 9.3 #5
> restart;
1 dof, no motion given need fbd.
For the left mass, y positive down from top
> eq1 := w1 - T1 = w1/g * y1dd;
For the right mass, y positive down from top
> eq2 := w2 - T2 = w2/g * y2dd;
>
rope := y1dd + y2dd = 0;
Still too many unknowns need another fbd, choose the disk.
> eqy := T1 + T2 - Fycenter + W = 0;
>
eqx := Fxcenter = 0;
Still too many so use moment about center.
> mom := T1 * R - T2*R = ddtOfH;
>
H := Icenter * thetadot;
>
ddtOfH := Icenter * thetaddot;
>
Icenter := W/g * K^2;
Gather up the equations.
> {eq1,eq2,mom,rope};
Note there are still 5 unknowns, since there is only 1 dof there must be another motion
relationship. What is it? Its the no slip of the rope which means the point on the rim of the
disk must have the same velocity as a point on the rope it touches.
> relate := R*thetadot = y1dot;
>
relatedot := R*thetaddot = y1dd;
>
ans := solve({eq1,eq2,mom,rope,relatedot},{T1,T2,y1dd,y2dd,thetaddot});
>
numbers := {w1=2,w2=3,W=4,K=1,g=9.81,R=.5};
>
subs(numbers,ans);
So the left goes up.
>
Lecture 20
There is nothing really new in this section. We are doing problems where forces and moments
will need to be used to solve the problem.
Solve some problems.
Hw 9.4 #1 do only for initial position starting from rest, #2, #3, #4, #5, #6
9.4 #1
> restart;
> with(linalg):
> i := vector([1,0,0]): j:=vector([0,1,0]): k:= vector([0,0,1]):
> dot := (VectorOne,VectorTwo) -> dotprod(VectorOne,VectorTwo,'orthogonal'):
> cross := (a,b) -> crossprod(a,b):
> Ve := (VectorEquation,VectorDirection) -> dot(lhs(VectorEquation),VectorDirection) =
dot(rhs(VectorEquation),VectorDirection):
Warning, new definition for norm
Warning, new definition for trace
Freebody Diagram and unit vectors.
> L := 1; muk := .1; F := 200; m := 10; g := 9.81;
Define some unit vectors.
> n := evalm(-cos(theta(t))*i+sin(theta(t))*j);
>
p := cross(n,k);
position of the center of mass.
> posc := -x(t)*i+L/2*n; evalm(%);
Angular velocity and angular acceleration.
>
omega := -diff(theta(t),t)*k; omegadot := diff(omega,t);
>
vsee := 0; asee := 0;
The acceleration of the center of mass
> ac := -diff(x(t),t,t)*i + cross(omegadot,L/2*n) + cross(omega,cross(omega,L/2*n));
I'll collect up the terms so its easier to see. If you do this on paper you will have this but it will
look different.
> evalm(%);
sum the forces.
> feq := F*j-m*g*j+N*j+f*i = m*ac;
Collect the terms.
> evalm(%);
Get ready for the moment equation.
> mominertia := 1/12*m*L^2;
>
mom := cross(L/2*n,F*j)+cross(-L/2*n,N*j+f*i) = mominertia*omegadot;
>
evalm(%);
Notice that the z component of the force is true but doesn't help you solve anything.
> Ve(feq,k);
The equations I plan to solve
> eqns := {Ve(feq,i),Ve(feq,j),Ve(mom,k)};
Assume it sticks. (minimum dof) then solve.
> stickeqns := subs({diff(x(t),t,t)=0},eqns);
> stickans := simplify(solve(stickeqns,{f,N,diff(theta(t),t,t)}));
The check should really use mus not muk but since I don't have it, I'll use muk and hope its close
to mus.
> check := simplify(subs(stickans,f<=muk*N));
Check the no slip assumption at the beginning.
> simplify(subs(theta(t)=0, [check, subs(stickans,N)] ));
Good at the beginning its true.
If you are only interested in the initial condition you have the answer. Otherwise continue, we
must solve the equation for theta.
Separate out the equations.
> stickdeq := diff(theta(t),t,t) = subs(stickans,diff(theta(t),t,t));
> stickN := simplify(subs(stickans,N));
> stickf := simplify(subs(stickans,f));
This is how you solve a differential equation numerically. Note that D(theta)(0)=0 means the
derivative of theta is 0 at time zero. theta(0)=0 means theta is zero at time 0.
> stickdans := dsolve({stickdeq, D(theta)(0)=0, theta(0)=0}, {theta(t)},numeric);
This is how you ask for the answer at time 0.1 seconds
> stickdans(0.1);
I want to check the no slip for all time so I'll just try a few times and see if the check is always
true. When I run this I change tau a couple of times until I'm convinced its always true...
> tau := 0.1;
> simplify(subs(stickdans(tau),check)); stickdans(tau);
Oh boy it begins to slip so plug in different values for tau below and find out when slip begins.
> tau := 0.0284: stickdans(tau);
> simplify(subs(stickdans(tau),[check,stickf]));
Ok it slips when t=0.0284.
Find the equations when it is slipping. Note since the f is positive I know I drew f in the correct
direction.
> slipeq := subs(f=muk*N,eqns);
solve
> slipans := simplify(solve(slipeq,{diff(theta(t),t,t),diff(x(t),t,t),N}));
pull out the differential equation for theta and the equation for N. I don't care about xddot.
> slipdeq := diff(theta(t),t,t) = subs(slipans,diff(theta(t),t,t));
> slipN := simplify(subs(slipans,N));
I need the initial conditions for this differential equation so...
> stickdans(tau);
Solve the differential equation.
> slipdans := dsolve({slipdeq, D(theta)(tau)=1.286, theta(tau)=0.01826}, {theta(t)},numeric);
Just checking ... make sure I can actually get numbers.
> slipdans(tau);
>
simplify(subs(slipdans(.1), slipN));
Now I will try to make a plot of these answers
This is a bit funny looking I admit. I don't know why you have to define functions before you
plot but I didn't write maple, I just use it.
> stkN := (time) -> simplify(subs(stickdans(time),stickN));
>
slpN := (time) -> simplify(subs(slipdans(time),slipN));
Just testing to see if they are equal at tau.
> stkN(tau); slpN(tau);
This is how you plot one function.
> plot(stkN,0..tau);
This is how you display two plots together
First define the plots...
> a := plot(stkN,0..tau): b:= plot(slpN,tau..0.17):
I don't know why this is needed but...
> with(plots):
Display both plots
> display(a,b);
It lifts from the floor at t=0.17 approximately. I played with the time in the b := plot... statement
until I found the time that makes it look this neat.
>
9.4 #2
> restart;
> with(linalg):
> i := vector([1,0,0]): j:=vector([0,1,0]): k:= vector([0,0,1]):
> dot := (VectorOne,VectorTwo) -> dotprod(VectorOne,VectorTwo,'orthogonal'):
> cross := (a,b) -> crossprod(a,b):
> Ve := (VectorEquation,VectorDirection) -> dot(lhs(VectorEquation),VectorDirection) =
dot(rhs(VectorEquation),VectorDirection):
Warning, new definition for norm
Warning, new definition for trace
Options, 1. It is about to slide at the bottom. 2. It is lifting off the back of the truck cab. I don't
know which it is so I will have to assume something. Pick one where you can test the
assumption. I'll pick option 2. solve for friction at the bottom and expect it to be < mu N. There
is one dof in either case.
Find acceleration of mass center. Let a be acceleration of truck.
FBD is tipping is assumed.
assumed.
> ac := a*i;
FBD if sliding is
Sum forces in i and j.
> fy := N - m*g = 0;
>
fx := f = m*a;
3 unknowns 2 equations need another. Use moment.
> theta := 60*Pi/180: thetadot := 0: Iner := 1/12*m*L^2:
> momatcenter := -N*L/2*cos(theta) + f*L/2*sin(theta) = Iner*thetadot;
>
ans := solve({fy,fx,momatcenter},{N,f,a});
>
>
mu := .5:
check := f <= mu*N;
>
evalf(subs(ans,check));
Darn! Friction lets go before it tips.
Ok so friction is about to let loose but it is holding so friction is mu N and still 1 dof.
> fy := N - m*g + mu*Nt = 0;
>
fx := mu*N - Nt = m*a;
>
momatcenter := -N*L/2*cos(theta) + mu*N*L/2*sin(theta) + mu*Nt*L/2*cos(theta) +
Nt*L/2*sin(theta) = Iner*thetadot;
>
ans := solve({fy,fx,momatcenter},{N,Nt,a});
Suppose this had been our initial guess at what was happening. How would you test it? Check to
see that Nt > 0 which means the top is still in contact with the truck.
>
9.4 #4
> restart;
> with(linalg):
> i := vector([1,0,0]): j:=vector([0,1,0]): k:= vector([0,0,1]):
> dot := (VectorOne,VectorTwo) -> dotprod(VectorOne,VectorTwo,'orthogonal'):
> cross := (a,b) -> crossprod(a,b):
> Ve := (VectorEquation,VectorDirection) -> dot(lhs(VectorEquation),VectorDirection) =
dot(rhs(VectorEquation),VectorDirection):
Warning, new definition for norm
Warning, new definition for trace
You can probably tell that the angle between og and horizontal (call it theta) is beta, but I'll work
it as if I did not recognize that. Just to show how to do a general problem. First its 1 dof and I
need to find acceleration of G. Define nog as a unit vector pointing from o to g. Let pog be
perpendicular to nog and up and right.
>
FBD and vector definitions.
posg := b*nog; omega[og] := -thetadot*k; omegadot[og] := -thetaddot*k; vsee := 0; asee := 0;
>
ag := -(-thetaddot*b)*pog - thetadot^2*b*nog;
>
forces := N*j - m*g*j + P*j + F*nog;
sum forces in the pog and nog direction. Define the nog and pog.
> nog := -cos(theta)*i+sin(theta)*j; pog := sin(theta)*i + cos(theta)*j;
>
finNOG := simplify(dot(forces,nog));
>
finPOG := simplify(dot(forces,pog));
>
ainNOG := simplify(dot(ag,nog));
>
ainPOG := simplify(dot(ag,pog));
>
eqnog := finNOG = m*ainNOG;
>
eqpog := finPOG = m*ainPOG;
2 equations 3 unknowns so write a moment equation.
> inerG := 1/12*m*(2*b)^2;
>
momAtG := -N*b*cos(beta) + P*b*cos(beta) = inerG * betaddot;
Now I need to relate beta and theta. Use a loop unless you realize beta = theta. Use a loop from
slider to G to o. Call the slider C.
> loop := b*cos(beta)*i + b*sin(beta)*j - b*nog - x*i = 0;
>
loopi := Ve(loop,i);
>
loopj := Ve(loop,j);
>
theta := solve(loopj,theta);
>
thetadot := betadot;
>
thetaddot := betaddot;
>
betadot := 0;
>
solve({eqnog,eqpog,momAtG},{N,F,betaddot});
>
Download