> restart:
Problema puntuable 27 noviembre 1996
Jose Mª Goicolea, noviembre 2000
Enunciado
En el mecanismo plano de la figura, la barra OA gira alrededor del punto fijo O con velocidad angular phi' constante. Un disco de radio R se mueve de forma que desliza sobre el eje X a la vez que rueda sin deslizar sobre la barra OA. Se pide:
1.-
El CIR esta situado sobre la vertical por el centro del disco C, en la misma barra. Coordenadas del CIR en ejes fijos:
>
XC:=R/tan(phi/2);
YC:=XC*tan(phi);
Velocidad de C:
> vC:=diff(subs(phi=phi(t),XC),t);
Por otra parte, se puede interpretar como una rotacion alrededor del CIR, cuya distancia a C es R/cos(phi), por lo que
> Omega:=vC/(R/cos(phi(t)));
> Omega:=simplify(Omega);
> alpha:=diff(Omega,t);
Teniendo en cuenta que la velocidad de phi es constante,
> alpha:=simplify(subs(diff(phi(t),t,t)=0,alpha));
La expresi´on queda aqu'i un poco complicada, se puede simplificar a mano sin gran dificultad (v´ease soluci´on tipografiada en internet).
2.-
> aC:=diff(vC,t);
> aC:=simplify(subs(diff(phi(t),t,t)=0,aC));
3.-
> with(plots):with(plottools):
Warning, the name changecoords has been redefined
Dibujo de elementos del sistema, CIR y polar fija
> R:=1: L:=6*R:
> barra:=phi->arrow([0,0], [L*cos(phi),L*sin(phi)], L/50, L/50, .0, color=blue):
> disco:=phi->disk([R*(1+cos(phi))/sin(phi),R], R, color=yellow):
> CIR:=phi->disk([R*(1+cos(phi))/sin(phi),R*(1+cos(phi))/cos(phi)], L/50, color=white,thickness=2):
>
PF:=plot([R*(1+cos(phi))/sin(phi),R*(1+cos(phi))/cos(phi),phi=Pi/9..Pi/2.5],
thickness=4):
> display([barra(Pi/6),disco(Pi/6),CIR(Pi/6),PF],scaling=constrained);
Dibujo y animacion de la polar movil
Angulo girado por el disco, en funcion del angulo Phi de la barra
> int(-cos(phi)/(1-cos(phi)),phi);
> alpha:=Phi->int(-cos(phi)/(1-cos(phi)),phi=Pi/9..Phi);
Coordenadas del centro del disco, en funcion de Phi
>
XO:=Phi->R*(1+cos(Phi))/sin(Phi);
YO:=Phi->R;
coordenadas del CIR en ejes moviles
>
xC:=Phi->(R*(1+cos(Phi))/cos(Phi)-R)*sin(alpha(Phi));
yC:=Phi->(R*(1+cos(Phi))/cos(Phi)-R)*cos(alpha(Phi));
Polar movil en ejes moviles
> plot([xC(Phi),yC(Phi),Phi=Pi/9..Pi/2.5],scaling=constrained,thickness=3);
parametrizacion del angulo girado en funcion de variable p entera
> q:=p->Pi/9+p*(Pi/200);
dibujo de un radio del disco que gira con el mismo
>
radio:=Phi->line([XO(Phi),YO(Phi)],
[XO(Phi)+R*cos(alpha(Phi)),YO(Phi)+R*sin(alpha(Phi))], color=brown, linestyle=3, thickness=3):
>
anim:=seq(display(PF,
barra(q(p)),disco(q(p)),radio(q(p)),CIR(q(p)),
plot([XO(q(p))+xC(Phi)*cos(alpha(q(p)))-yC(Phi)*sin(alpha(q(p))),
YO(q(p))+xC(Phi)*sin(alpha(q(p)))+yC(Phi)*cos(alpha(q(p))),
Phi=Pi/9..Pi/2.5],thickness=3,color=green)
),p=0..55):
> display(anim,insequence=true,scaling=constrained);