Home Toolbox functions Sample projects Tutorials Downloads |
|
Reference: Chapter 6 in Multibody Mechanics and Visualization by Harry Dankowicz, published by Springer Verlag UK, 2004.
To illustrate the geometric structure of an open-loop mechanism.
This Mambo project contains a non-stationary radial arm saw and a stationary table. The configuration of the non-stationary saw may be specified in four independent steps, namely
p1 and p2: displacements of the centers of the blade support relative to the tool arm and of the blade relative to the blade support.
q1: vertical displacement of the arm.
q2: rotation angle of the arm about the vertical direction.
q3: displacement of the trolley from the bench support.
q4: rotation angle of the blade support about the direction parallel to the arm.
q5: rotation angle of the blade relative to the blade support.
saw.zip (zip file, 8 kb, December 30, 2012) >Restart(): >DeclareObservers(W,A,B,C,D): >DeclarePoints(W,A,B,C,D): >DeclareTriads(w,a,b,c,d): >DefineObservers([W,W,w],[A,A,a],[B,B,b],[C,C,c],[D,D,d]): >DefinePoints([W,A,w,0,0,q1],[A,B,a,0,q3,0],[B,C,a,0,0,-p1],[C,D,c,0,0,p2]): >DefineTriads([w,a,q2,3],[a,b,0,1],[b,c,q4,2],[c,d,q5,3]): >DefineNeighbors([W,A],[A,B],[B,C],[C,D]): >DefineObjects( [W,'Block',point=MakeTranslations(w,0,5.6,-1/10),xlength=16,ylength=10,zlength=1/5,color=green], [W,'Block',point=MakeTranslations(w,-7.6,1,-2.51),xlength=1/3,ylength=1/3,zlength=5,color=green], [W,'Block',point=MakeTranslations(w,-7.6,10.2,-2.51),xlength=1/3,ylength=1/3,zlength=5,color=green], [W,'Block',point=MakeTranslations(w,7.6,10.2,-2.51),xlength=1/3,ylength=1/3,zlength=5,color=green], [W,'Block',point=MakeTranslations(w,7.6,1,-2.51),xlength=1/3,ylength=1/3,zlength=5,color=green], [W,'Cylinder',point=MakeTranslations(w,0,0,2),radius=.4,length=6,color="{.8,.8,.8}"], [W,'Block',point=MakeTranslations(w,0,.4,-1/10),xlength=1.4,ylength=2.6,zlength=1,color="{1,1,0.5}"]): #Bench >DefineObjects([A,'Block',point=MakeTranslations(a,0,2.4,0),xlength=1.4,ylength=8,zlength=1,color="{1,1,0.5}"]): #Arm >DefineObjects( [B,'Block',point=MakeTranslations(b,0,1.4,-1.5),xlength=1.72,ylength=.2,zlength=2,color=magenta], [B,'Block',point=MakeTranslations(b,0,-1.4,-1.5),xlength=1.72,ylength=.2,zlength=2,color=magenta], [B,'Block',point=MakeTranslations(b,0,0,-.7),xlength=1.72,ylength=3,zlength=.4,color=magenta], [B,'Block',point=MakeTranslations(b,.8,-1.4,0),xlength=.12,ylength=.2,zlength=1.2,color=magenta], [B,'Block',point=MakeTranslations(b,-.8,-1.4,0),xlength=.12,ylength=.2,zlength=1.2,color=magenta], [B,'Block',point=MakeTranslations(b,-.8,1.4,0),xlength=.12,ylength=.2,zlength=1.2,color=magenta], [B,'Block',point=MakeTranslations(b,.8,1.4,0),xlength=.12,ylength=.2,zlength=1.2,color=magenta], [B,'Cylinder',point=MakeTranslations(b,0,0,-1.5),orient=MakeRotations(Pi/2,1),length=3.4,radius=.15,color="{.5,.25,.8}"]): #Trolley >DefineObjects( [C,'Block',point=MakeTranslations(c,0,0,.3),xlength=.8,ylength=1.7,zlength=2,color="{1,.5,0.5}"], [C,'Cylinder',point=MakeTranslations(c,0,0,.5),length=2.5,radius=.15,color="{.5,.25,.8}"]): #Blade support >elements:=20: >DefineObjects( [D,'Block',xlength=1,ylength=1/15,zlength=1/10,color=black], [D,'Cylinder',radius=1,length=1/15,color="{1,.5,.5}"], seq([D,'Block',point=MakeTranslations(d,.93*cos((i-1)/elements*2*Pi),.93*sin((i-1)/elements*2*Pi),0),orient=MakeRotations((i-1)/elements*2*Pi-1,3),xlength=.4,ylength=1/7,zlength=1/16,color="{1,.5,.5}"],i=1..elements)): #Blade >GeometryOutput(main=W,states=[q1,q2,q3,q4,q5],parameters=[p1,p2,Pi],checktree,checkargs,filename="saw.geo"); >MotionOutput(ode={q1t=u1,q2t=u2,q3t=u3,q4t=u4,q5t=u5},insignals=[u1=(t&>=0)*(t&<1),u2=-.5*(t&>=1)*(t&<2),u3=3*(t&>=2)*(t&<3)+cos(t-4)*(t&>=4),u4=.5*(t&>=3)*(t&<4),u5=-2.0],parameters=[p1=1.5,p2=1.75,Pi=3.1416],states=[q1=2,q2,q3,q4=1.6,q5],checksings,checkargs,filename="saw.dyn"); |
©2004-2017 Harry Dankowicz Mechanical Science and Engineering University of Illinois at Urbana-Champaign | Home Toolbox functions Sample projects Tutorials Downloads |