Lecture 22 The instantaneous axis of rotation is the line passing through points with zero velocity. Discuss a tire rolling. Discuss a disk spinning. Do problem 10.2 #1 Do 10.1 #11 10.1 #11 > 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 Initially there are 2 dof. Points Q and S are in temporary contact with slip. Determine angular accelerations and integrate them for ang. vel. If we sum forces we can compute the pin forces but I don't care. so... sum moments only. > mom1 := mu*N*r1 = m1*gyration1^2*alpha1; > mom2 := mu*N*r2 = m2*gyration2^2*alpha2; > ans := solve({mom1,mom2},{alpha1,alpha2}); > alf1 := subs(ans,alpha1): alf2 := subs(ans,alpha2): Integrate these constant alphas. > omega1 := alf1*t - InitialSpin; > omega2 := alf2*t; They stop changing when the disks are rolling on each other. If the alphas do not become zero the left one will continue to slow down and the right will continue to speed up. We know this does not happen so the alphas must go to zero at roll. Since alpha becomes zero the friction disappears too. Of course there would be friciton in the pins so eventually both will stop but we are ignoring friction in the pins. When friction between the two disappears, they are rolling on each other and the dof becomes 1. Therefore the motions are related at this point so find the relation. > posQ := r1*nq; posS := r2*ns; > velQ := omega1*r1*pq; velS := omega2*r2*ps; At the point of contact, pq is up, ps is down. > relate := subs({pq=j,ps=-j},{velQ=velS}); > solve(relate,t); > 10.1 #8 > 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 There is 1 dof. Points Q and S are in temporary contact with no slip. Try using a loop. From o - c - q - a - 0 but this loop "breaks open" when Q is no longer in contact. Try 0 - c - s - a - 0. Same problem. Ok, use a loop from o to Qprime (Qprime is not fixed to link it moves so it is always in contact with the disk. Let all angular velocities be dot of angles measured clockwise so all omegas are in positive k. > loop := L*nab -r*ncs + y*j=0; > dloop := omegaab*L*pab + Ldot*nab - (omegadisk*r*pcs) + ydot*j=0; > ydot := -V; > ddloop := alphaab*L*pab - omegaab^2*L*nab + 2*omegaab*Ldot*pab + Lddot*nab -(alphadisk*r*pcsomegadisk*r*ncs) + 0*j = 0; > ncs := -pab; pcs := nab; > nab := -cos(beta)*j - sin(beta)*i; > pab := -sin(beta)*j + cos(beta)*i; > Ve(loop,i); > Ve(loop,j); Solve the loop for beta and L. Or from geometry we have the following. I am not going to use them yet because they cause the equations to look ugly with a lot of square roots etc. L := sqrt(y^2-r^2); sin(beta) := r/y; cos(beta) := L/y; Notice that the dloop and ddloop have too many unknowns so I need another relationship. Use the temporary contact between Q (not Qprime) and S. > posQ := L*nab; velQ := omegaab*L*pab; accQ := alphaab*L*pab - omegaab^2*L*nab; > posS := -y*j + r*ncs; velS := V*j + omegadisk*r*pcs; accS := alphadisk*r*pcs - omegadisk^2*r*ncs; Here is the contact relations. > veq := simplify(velQ = velS); Look at the equation in the i, and nab and pab they look better in the n,p. > veqn := simplify(Ve(veq,nab)); veqi := simplify(Ve(veq,i)); > veqp := simplify(Ve(veq,pab)); veqj := simplify(Ve(veq,j)); Look at the acceleration contact relation. > aeq := simplify(dot(accQ,nab) = dot(accS,nab)); Solve the velocity contact relations. > omans := solve({veqn,veqp},{omegaab,omegadisk}); Solve the acceleration contact relation. > aeq2 := simplify(subs(omans,aeq)); > alphadiskans := alphadisk = solve(aeq2,alphadisk); Put these into the ddloop. > eq := simplify(subs(alphadiskans,subs(omans,ddloop))); Look at this in the n,p and in the i,j. n p is much simpler. > simplify(Ve(eq,nab)); simplify(Ve(eq,pab)); > simplify(Ve(eq,i)); simplify(Ve(eq,j)); Solve for the alphaab and Lddot. > ans := simplify(solve({Ve(eq,nab),Ve(eq,pab)},{Lddot,alphaab})); collect all the answers. > all := {ans, alphadiskans, omans}; > L := sqrt(y^2-r^2); > sin(beta) := r/y; > cos(beta) := L/y; > simplify(all); >