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}); >