package Excavator annotation(__Wolfram(openClass=Excavator.ExampleModel, useDocumentationTemplate=false, RDF="()")); package Components extends Modelica.Icons.Library; model Arm annotation(Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Arm

 

Description

This class models the boom part of the excavator.

The arm has one prismatic joint that controls the movement of the bucket. The joint is controlled with instructions from a CombiTimeTable component.

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions=""), Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Text(visible=true, origin={-15.5682,-36.1233}, fillPattern=FillPattern.Solid, extent={{-60.0,-20.0},{60.0,20.0}}, textString="%name", fontName="Arial"),Polygon(visible=true, origin={7.0609,-6.9277}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-101.26,74.481},{-96.358,94.372},{-90.001,101.127},{-60.916,89.493},{-18.372,51.576},{-26.442,41.456},{81.376,-71.521},{83.757,-75.225},{84.353,-79.459},{83.01,-83.143},{79.855,-85.28},{74.828,-85.147},{70.594,-82.568},{-71.796,42.911},{-92.628,66.928}}),Polygon(visible=true, origin={65.6828,-25.4331}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, points={{-13.031,13.395},{16.14,-9.227},{13.163,-13.461},{-16.272,9.293}}),Polygon(visible=true, origin={35.2943,-1.4828}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-47.796,44.742},{7.502,0.358},{9.156,0.358},{16.366,-5.595},{15.307,-7.05},{18.152,-9.564},{13.389,-15.715},{10.412,-13.334},{9.222,-14.855},{1.417,-8.77},{1.218,-7.182},{-54.344,36.606}}),Line(visible=true, origin={40.5805,-5.7216}, points={{-3.8695,-4.531},{3.8695,4.531}}),Line(visible=true, origin={48.1872,-11.6417}, points={{-2.4143,-3.1089},{2.4143,3.1089}}),Polygon(visible=true, origin={68.3783,-43.5405}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-12.485,-0.777},{9.409,5.97},{10.997,0.347},{-7.921,-5.54}}),Polygon(visible=true, origin={83.1784,-38.3514}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-3.407,-9.737},{-5.589,-1.535},{-5.722,1.376},{-3.87,3.691},{-1.819,4.749},{1.025,4.617},{3.208,3.162},{4.399,1.376},{5.126,-0.675},{6.648,-7.025}}),Polygon(visible=true, origin={86.7999,-54.5868}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-5.308,7.028},{-0.48,-8.582},{5.143,-7.061},{0.645,8.615}}),Ellipse(visible=true, origin={83.5753,-84.0052}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-3.5388,-3.5057},{3.5388,3.5057}}),Ellipse(visible=true, origin={90.3221,-66.9065}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-5.5232,-5.5232},{5.5232,5.5232}}),Ellipse(visible=true, origin={90.4214,-66.8734}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-2.1167,-2.1167},{2.1167,2.1167}}),Ellipse(visible=true, origin={83.0461,-39.0591}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-2.282,-2.1497},{2.282,2.1497}}),Line(visible=true, origin={-36.4243,39.2994}, points={{-45.4201,49.4242},{-18.9618,38.8408},{18.7854,5.1506},{10.4951,-4.9036},{105.7451,-104.3869},{100.1007,-110.3842},{-24.0771,0.0353},{-52.4757,31.0797},{-48.7715,45.72},{-45.4201,49.4242}}),Ellipse(visible=true, origin={-53.6222,43.4799}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-7.2319,-6.9674},{7.2319,6.9674}}),Ellipse(visible=true, origin={-53.534,43.4799}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-4.4979,-4.3215},{4.4979,4.3215}}),Ellipse(visible=true, origin={-88.1944,69.1444}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-4.7625,-4.5861},{4.7625,4.5861}}),Ellipse(visible=true, origin={-88.1944,69.3208}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-2.2931,-2.1167},{2.2931,2.1167}}),Ellipse(visible=true, origin={-20.3986,43.8583}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-4.7625,-4.5861},{4.7625,4.5861}}),Ellipse(visible=true, origin={-20.3986,44.0347}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-2.2931,-2.1167},{2.2931,2.1167}}),Line(visible=true, origin={65.2639,-24.0771}, points={{-13.229,10.142},{13.229,-10.142}}, color={255,255,255}, thickness=1)}), Diagram(coordinateSystem(extent={{-148.5,-105.0},{148.5,105.0}}, preserveAspectRatio=true, initialScale=0.1, grid={5,5}))); Modelica.Mechanics.MultiBody.Interfaces.Frame_a G annotation(Placement(visible=true, transformation(origin={-149.0,-60.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-100.0,66.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=-180))); Modelica.Mechanics.MultiBody.Interfaces.Frame_a F annotation(Placement(visible=true, transformation(origin={-149.0,80.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-66.0,16.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_b K annotation(Placement(visible=true, transformation(origin={149.0,-60.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={101.0,-69.0}, extent={{-11.0,-11.0},{11.0,11.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_b J annotation(Placement(visible=true, transformation(origin={149.0,80.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={70.0,-96.8546}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-90))); Modelica.Mechanics.MultiBody.Joints.Revolute rG(n={0,1,0}, animation=false) annotation(Placement(visible=true, transformation(origin={-120.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.Prismatic pGI(s.start=0.401*8.2, useAxisFlange=true, animation=false) annotation(Placement(visible=true, transformation(origin={-70.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox FJ(r={0.401*10,0,0}, width=0.02, height=0.401*2, animation=false, color={255,165,0}) annotation(Placement(visible=true, transformation(origin={-20.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTFJ(r={0.401,0,0}, animation=false) annotation(Placement(visible=true, transformation(origin={-100.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTH(r={-0.401*2.5,0,-0.3}, animation=false) annotation(Placement(visible=true, transformation(origin={-0.0,61.5205}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-90))); Modelica.Mechanics.MultiBody.Joints.Revolute rH(n={0,1,0}, phi.start=-0.4, stateSelect=StateSelect.always, animation=false) annotation(Placement(visible=true, transformation(origin={0.0,30.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-90))); Modelica.Mechanics.MultiBody.Parts.BodyCylinder HI(r={0.401*2,0,0}, diameter=0.1, animation=false) annotation(Placement(visible=true, transformation(origin={-0.0,0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-90))); Modelica.Mechanics.MultiBody.Parts.BodyCylinder IK(diameter=0.1, r={0.401*1.6,0,0}, color={155,0,0}, animation=false) annotation(Placement(visible=true, transformation(origin={100.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Joints.RevolutePlanarLoopConstraint rI1(n={0,1,0}, animation=false) annotation(Placement(visible=true, transformation(origin={0.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-90))); Modelica.Mechanics.MultiBody.Joints.Revolute rI2(n={0,1,0}, phi.start=Modelica.Constants.pi/6, animation=false) annotation(Placement(visible=true, transformation(origin={70.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedRotation fixedRotation1(angle=100, n={0,1,0}, animation=false) annotation(Placement(visible=true, transformation(origin={-60.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTJ(r={0,0,-0.3}, animation=false) annotation(Placement(visible=true, transformation(origin={60.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.Translational.Sources.Position BucketPosition(useSupport=true, f_crit=0.5) annotation(Placement(visible=true, transformation(origin={-80.0,-20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Blocks.Sources.CombiTimeTable BucketInstructions(fileName="DocumentationFiles/timetable3.txt", tableName="var1", tableOnFile=true, extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint) annotation(Placement(visible=true, transformation(origin={-137.1167,-20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape1(shapeType="DocumentationFiles/arm.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-20.0,55.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape2(shapeType="DocumentationFiles/connector1.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={100.0,-20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape3(shapeType="DocumentationFiles/connector2.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={30.0,13.0707}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape4(height=1, length=1, width=1, shapeType="DocumentationFiles/connector3a.obj") annotation(Placement(visible=true, transformation(origin={-80.0,-90.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape5(height=1, length=1, width=1, shapeType="DocumentationFiles/connector3b.obj") annotation(Placement(visible=true, transformation(origin={-16.7167,-90.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=3.323, uMin=2.87, limitsAtInit=false) annotation(Placement(visible=true, transformation(origin={-110.0,-20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); equation connect(limiter1.y,BucketPosition.s_ref) annotation(Line(visible=true, origin={-95.5,-20.0}, points={{-3.5,0.0},{3.5,0.0}}, color={0,0,127})); connect(BucketInstructions.y[1],limiter1.u) annotation(Line(visible=true, origin={-124.0583,-20.0}, points={{-2.0583,0.0},{2.0583,0.0}}, color={0,0,127})); connect(pGI.frame_b,fixedShape5.frame_a) annotation(Line(visible=true, origin={-54.05,-75.0}, points={{-5.95,15.0},{0.95,15.0},{0.95,-15.0},{27.3333,-15.0}})); connect(G,rG.frame_a) annotation(Line(visible=true, origin={-139.5,-60.0}, points={{-9.5,0.0},{9.5,0.0}})); connect(IK.frame_b,K) annotation(Line(visible=true, origin={129.5,-60.0}, points={{-19.5,0.0},{19.5,0.0}})); connect(J,fTJ.frame_b) annotation(Line(visible=true, origin={109.5,80.0}, points={{39.5,0.0},{-39.5,0.0}})); connect(F,fTFJ.frame_a) annotation(Line(visible=true, origin={-129.5,80.0}, points={{-19.5,0.0},{19.5,0.0}})); connect(fTFJ.frame_b,fixedRotation1.frame_a) annotation(Line(visible=true, origin={-80.0,80.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(fixedRotation1.frame_b,FJ.frame_a) annotation(Line(visible=true, origin={-40.0,80.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(fixedShape3.frame_a,HI.frame_a) annotation(Line(visible=true, origin={6.6667,12.0472}, points={{13.3333,1.0236},{-6.6667,1.0236},{-6.6667,-2.0472}})); connect(pGI.frame_a,fixedShape4.frame_a) annotation(Line(visible=true, origin={-89.05,-75.0}, points={{9.05,15.0},{-4.05,15.0},{-4.05,-15.0},{-0.95,-15.0}})); connect(FJ.frame_b,fTJ.frame_a) annotation(Line(visible=true, origin={20.0,80.0}, points={{-30.0,0.0},{30.0,0.0}})); connect(FJ.frame_a,fixedShape1.frame_a) annotation(Line(visible=true, origin={-30.55,67.5}, points={{0.55,12.5},{-0.55,12.5},{-0.55,-12.5},{0.55,-12.5}}, color={95,95,95})); connect(FJ.frame_b,fTH.frame_a) annotation(Line(visible=true, origin={-3.3333,75.5068}, points={{-6.6667,4.4932},{3.3333,4.4932},{3.3333,-3.9863}})); connect(fTH.frame_b,rH.frame_a) annotation(Line(visible=true, origin={-0.0,45.7602}, points={{-0.0,5.7602},{0.0,-5.7602}})); connect(rH.frame_b,HI.frame_a) annotation(Line(visible=true, origin={-0.0,15.0}, points={{0.0,5.0},{-0.0,-5.0}})); connect(HI.frame_b,rI1.frame_a) annotation(Line(visible=true, origin={-0.0,-20.0}, points={{-0.0,10.0},{0.0,-10.0}})); connect(pGI.frame_b,rI1.frame_b) annotation(Line(visible=true, origin={-20.0,-56.6667}, points={{-40.0,-3.3333},{20.0,-3.3333},{20.0,6.6667}})); connect(fixedShape2.frame_a,IK.frame_a) annotation(Line(visible=true, origin={88.45,-40.0}, points={{1.55,20.0},{-1.55,20.0},{-1.55,-20.0},{1.55,-20.0}})); connect(rI2.frame_b,IK.frame_a) annotation(Line(visible=true, origin={85.0,-60.0}, points={{-5.0,0.0},{5.0,0.0}})); connect(pGI.frame_b,rI2.frame_a) annotation(Line(visible=true, origin={0.0,-60.0}, points={{-60.0,0.0},{60.0,0.0}})); connect(rG.frame_b,pGI.frame_a) annotation(Line(visible=true, origin={-95.0,-60.0}, points={{-15.0,0.0},{15.0,0.0}})); connect(BucketPosition.flange,pGI.axis) annotation(Line(visible=true, origin={-61.45,-37.0}, points={{-8.55,17.0},{4.55,17.0},{4.55,-17.0},{-0.55,-17.0}}, color={0,127,0})); connect(BucketPosition.support,pGI.support) annotation(Line(visible=true, origin={-77.0,-44.5}, points={{-3.0,14.5},{-3.0,-2.5},{3.0,-2.5},{3.0,-9.5}})); end Arm; model Boom annotation(Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Boom

 

Description

This class models the boom part of the excavator.

The boom has two prismatic joints that emulate the hydraulic cylinders of an excavator. The joints are controlled with instructions from CombiTimeTable components.

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions=""), Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, origin={57.4807,87.8251}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, points={{-13.692,-6.069},{11.84,8.946},{13.824,6.102},{-11.972,-8.979}}),Text(visible=true, origin={32.3077,22.6166}, fillPattern=FillPattern.Solid, extent={{-95.8421,-27.3834},{95.8421,27.3834}}, textString="%name", fontName="Arial"),Polygon(visible=true, origin={29.6333,71.4375}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-61.714,-32.61},{5.358,7.011},{5.027,7.474},{11.179,11.112},{12.105,9.79},{13.824,10.848},{16.338,6.813},{14.354,5.689},{15.214,4.366},{9.062,0.86},{8.665,1.521},{-49.411,-32.874}}),Line(visible=true, origin={36.6448,75.6708}, points={{-1.7198,2.8443},{1.7198,-2.8443}}),Line(visible=true, origin={42.8625,79.1766}, points={{-1.1906,2.0505},{1.1906,-2.0505}}),Ellipse(visible=true, origin={72.7604,96.9036}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-3.5057,-3.3734},{3.5057,3.3734}}),Ellipse(visible=true, origin={72.8596,96.9036}, fillColor={149,222,255}, fillPattern=FillPattern.Solid, extent={{-1.7529,-1.7198},{1.7529,1.7198}}),Polygon(visible=true, origin={-31.8256,36.796}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-2.769,-7.097},{-3.364,-0.945},{-2.967,0.709},{-2.041,1.569},{-0.85,1.965},{0.076,2.032},{11.916,1.767}}),Ellipse(visible=true, origin={-32.0146,35.6526}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-1.5875,-1.5214},{1.5875,1.5214}}),Polygon(visible=true, origin={23.7772,40.3931}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-108.444,-91.193},{-67.169,-21.078},{-64.126,-16.713},{-60.29,-12.083},{-56.982,-9.172},{-52.881,-5.865},{-48.648,-3.484},{-43.092,-1.102},{-37.536,1.147},{40.781,31.309},{42.765,33.823},{55.333,38.056},{65.52,39.908},{68.562,40.04},{71.34,39.379},{73.193,37.659},{74.251,35.145},{73.986,32.897},{72.928,30.78},{70.944,28.928},{62.874,23.239},{50.438,16.492},{46.602,16.36},{-28.407,-19.226},{-34.493,-22.798},{-38.462,-26.238},{-43.489,-30.471},{-48.648,-37.086},{-52.22,-43.039},{-84.631,-105.613}}),Line(visible=true, origin={67.7333,64.2937}, points={{-3.3073,7.276},{3.3073,-7.276}}),Line(visible=true, origin={70.3792,65.5505}, points={{-3.836,8.533},{3.836,-8.533}}),Ellipse(visible=true, origin={92.1411,74.9432}, fillColor={255,255,255}, extent={{-4.0349,-3.9026},{4.0349,3.9026}}),Ellipse(visible=true, origin={92.1411,75.0094}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-2.3151,-2.249},{2.3151,2.249}}),Line(visible=true, origin={-18.6765,18.3107}, points={{-63.2121,-70.9628},{-21.5402,-0.1868},{-18.4975,4.0466},{-14.9256,8.2799},{-10.9569,11.8518},{-7.1204,14.6299},{-2.4902,16.8789},{3.7275,19.657},{81.6473,49.5549},{85.8806,40.5591},{15.2369,7.6184},{9.9452,4.708},{4.389,0.8716},{-0.9027,-3.3618},{-5.7975,-8.3888},{-10.1631,-14.6066},{-45.2204,-81.1493}}),Ellipse(visible=true, origin={-77.4568,-66.8734}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-17.6609,-17.9255},{17.6609,17.9255}}),Ellipse(visible=true, origin={-77.5229,-66.8734}, fillColor={255,255,255}, extent={{-15.0812,-15.412},{15.0812,15.412}}),Polygon(visible=true, origin={-35.4046,-13.819}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-18.24,-35.658},{-1.836,4.228},{-2.497,4.559},{0.48,11.173},{1.538,10.644},{2.729,12.893},{7.293,10.842},{6.433,8.726},{7.689,7.998},{4.779,1.384},{4.118,1.714},{-12.485,-38.502}}),Line(visible=true, origin={-34.3297,-10.7818}, points={{-2.8443,1.2568},{2.8443,-1.2568}}),Line(visible=true, origin={-31.4193,-4.2003}, points={{-2.4474,0.9591},{2.4474,-0.9591}}),Ellipse(visible=true, origin={-51.4615,-52.4536}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-3.7703,-3.7703},{3.7703,3.7703}}),Ellipse(visible=true, origin={-51.4945,-52.4206}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-1.5544,-1.5544},{1.5544,1.5544}}),Ellipse(visible=true, origin={-21.5305,19.976}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-5.5893,-5.6224},{5.5893,5.6224}}),Polygon(visible=true, origin={-26.6237,7.4745}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, points={{-5.391,-8.665},{2.282,9.922},{5.391,8.797},{-2.282,-10.054}}),Ellipse(visible=true, origin={-21.5635,19.8107}, fillColor={160,160,164}, fillPattern=FillPattern.Solid, extent={{-3.638,-3.6049},{3.638,3.6049}}),Ellipse(visible=true, origin={-21.4643,19.9099}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-1.7529,-1.7198},{1.7529,1.7198}}),Line(visible=true, origin={-27.2852,7.6398}, points={{-3.605,-8.698},{3.605,8.698}}, color={255,255,255}, thickness=1),Line(visible=true, origin={57.0508,88.3708}, points={{-12.072,-7.078},{12.072,7.078}}, color={255,255,255}, thickness=1)}), Diagram(coordinateSystem(extent={{-174.5,-105.0},{148.5,105.0}}, preserveAspectRatio=true, initialScale=0.1, grid={5,5}), graphics)); Modelica.Mechanics.MultiBody.Joints.Prismatic pBC(boxColor={55,55,55}, useAxisFlange=true, s.start=2.71, animation=false) annotation(Placement(visible=true, transformation(origin={-90.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox AC(color={255,165,0}, density=200, height=0.62, r={8.6*0.401,0,0}, width=0.2, animation=false) annotation(Placement(visible=true, transformation(origin={-60.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Joints.Revolute rA(n={0,1,0}, phi.start=-Modelica.Constants.pi/4, useAxisFlange=false) annotation(Placement(visible=true, transformation(origin={-120.0,-60.0}, extent={{-10.0,10.0},{10.0,-10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.Revolute rB(n={0,1,0}, phi.start=-1.03, animation=false, stateSelect=StateSelect.always) annotation(Placement(visible=true, transformation(origin={-120.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_a B annotation(Placement(visible=true, transformation(origin={-175.0,40.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-36.0,-60.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTCD(animation=false, r={0.6*0.401,0.15,1.5*0.401}) annotation(Placement(visible=true, transformation(origin={-20.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.BodyBox CF(color={255,165,0}, density=200, height=1.6*0.401, r={10.4*0.401,0,0}, width=0.2, animation=false) annotation(Placement(visible=true, transformation(origin={0.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.FixedRotation fRC(angle=30, n={0,1,0}) annotation(Placement(visible=true, transformation(origin={-30.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.RevolutePlanarLoopConstraint rC(n={0,1,0}, animation=false) annotation(Placement(visible=true, transformation(origin={-60.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTBD(animation=false, r={0,-0.15,0}) annotation(Placement(visible=true, transformation(origin={-40.0,0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-630))); Modelica.Mechanics.MultiBody.Joints.Revolute rD(n={0,1,0}, phi.start=0.478, useAxisFlange=false) annotation(Placement(visible=true, transformation(origin={20.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.Prismatic pDE(boxColor={55,55,55}, s.start=3.88, useAxisFlange=true, animation=false, stateSelect=StateSelect.always) annotation(Placement(visible=true, transformation(origin={60.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox EGF(color={255,0*165,0}, density=200, height=4.2*0.401, r={2.1*0.401,0,0}, width=0.015, animation=false) annotation(Placement(visible=true, transformation(origin={120.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Interfaces.Frame_b F annotation(Placement(visible=true, transformation(origin={75.0,-105.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=-90), iconTransformation(origin={102.2689,60.0}, extent={{-12.2689,-12.2689},{12.2689,12.2689}}, rotation=-180))); Modelica.Mechanics.MultiBody.Joints.Revolute rF(n={0,1,0}, phi.start=-0.5, useAxisFlange=false) annotation(Placement(visible=true, transformation(origin={60.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.RevolutePlanarLoopConstraint rE(n={0,1,0}) annotation(Placement(visible=true, transformation(origin={100.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTFG(r={-0.3802,0,-0.7619}, animation=false) annotation(Placement(visible=true, transformation(origin={140.0,-85.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-450))); Modelica.Mechanics.MultiBody.Interfaces.Frame_b G annotation(Placement(visible=true, transformation(origin={140.0,-105.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=-450), iconTransformation(origin={83.8673,97.6479}, extent={{-12.3521,-12.3521},{12.3521,12.3521}}, rotation=-180))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTFE2(r={0.1,0,2.1*0.401}) annotation(Placement(visible=true, transformation(origin={120.0,20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-270))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTFE1(r={0,0,0.6*0.401}) annotation(Placement(visible=true, transformation(origin={90.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTCF(r={0,0,-0.5*0.401}) annotation(Placement(visible=true, transformation(origin={30.0,-60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.Translational.Sources.Position BoomPosition(useSupport=true, f_crit=10) annotation(Placement(visible=true, transformation(origin={-100.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.Translational.Sources.Position ArmPosition(useSupport=true, f_crit=0.5) annotation(Placement(visible=true, transformation(origin={40.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Blocks.Sources.CombiTimeTable BoomInstructions(tableOnFile=true, tableName="var1", fileName="DocumentationFiles/timetable1.txt", extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint) annotation(Placement(visible=true, transformation(origin={-160.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Blocks.Sources.CombiTimeTable ArmInstructions(fileName="DocumentationFiles/timetable2.txt", tableName="var1", tableOnFile=true, extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint) annotation(Placement(visible=true, transformation(origin={-20.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape1(shapeType="DocumentationFiles/boom.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-63.125,-90.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape2(shapeType="DocumentationFiles/connector5a.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-95.0,0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape3(shapeType="DocumentationFiles/connector5b.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-63.3854,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape4(shapeType="DocumentationFiles/connector4a.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={50.0,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape5(shapeType="DocumentationFiles/connector4b.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={90.0,0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_a A annotation(Placement(visible=true, transformation(origin={-175.0,-60.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-104.0,-60.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=-180))); Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=4.2, uMin=2.435, limitsAtInit=false) annotation(Placement(visible=true, transformation(origin={-130.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Blocks.Nonlinear.Limiter limiter2(limitsAtInit=false, uMax=5, uMin=3.286) annotation(Placement(visible=true, transformation(origin={10.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); equation connect(B,rB.frame_a) annotation(Line(visible=true, origin={-152.5,40.0}, points={{-22.5,0.0},{22.5,0.0}})); connect(A,rA.frame_a) annotation(Line(visible=true, origin={-152.5,-60.0}, points={{-22.5,0.0},{22.5,0.0}})); connect(ArmInstructions.y[1],limiter2.u) annotation(Line(visible=true, origin={-5.5,80.0}, points={{-3.5,0.0},{3.5,0.0}}, color={0,0,127})); connect(limiter2.y,ArmPosition.s_ref) annotation(Line(visible=true, origin={24.5,80.0}, points={{-3.5,0.0},{3.5,0.0}}, color={0,0,127})); connect(limiter1.y,BoomPosition.s_ref) annotation(Line(visible=true, origin={-115.5,80.0}, points={{-3.5,0.0},{3.5,0.0}}, color={0,0,127})); connect(BoomInstructions.y[1],limiter1.u) annotation(Line(visible=true, origin={-145.5,80.0}, points={{-3.5,0.0},{3.5,0.0}}, color={0,0,127})); connect(F,fTFE1.frame_a) annotation(Line(visible=true, origin={68.1403,-82.6293}, points={{6.8597,-22.3707},{6.8597,-22.3707},{6.8597,22.6293},{11.8597,22.6293}})); connect(fTFG.frame_b,G) annotation(Line(visible=true, origin={140.0,-101.6667}, points={{0.0,6.6667},{0.0,-3.3333},{0.0,-3.3333}})); connect(pDE.support,ArmPosition.support) annotation(Line(visible=true, origin={48.0,61.45}, points={{8.0,-15.45},{8.0,3.45},{-8.0,3.45},{-8.0,8.55}}, color={0,127,0})); connect(pBC.support,BoomPosition.support) annotation(Line(visible=true, origin={-97.0,56.5}, points={{3.0,-10.5},{3.0,-1.5},{-3.0,-1.5},{-3.0,13.5}}, color={0,127,0})); connect(pDE.frame_b,fixedShape5.frame_a) annotation(Line(visible=true, origin={75.95,20.0}, points={{-5.95,20.0},{0.95,20.0},{0.95,-20.0},{4.05,-20.0}}, color={95,95,95})); connect(pDE.frame_a,fixedShape4.frame_a) annotation(Line(visible=true, origin={40.95,20.0}, points={{9.05,20.0},{-4.05,20.0},{-4.05,-20.0},{-0.95,-20.0}})); connect(fTBD.frame_a,AC.frame_b) annotation(Line(visible=true, origin={-45.0,-37.5}, points={{5.0,27.5},{5.0,-2.5},{-5.0,-2.5},{-5.0,-22.5}})); connect(fTFE2.frame_a,EGF.frame_a) annotation(Line(visible=true, origin={112.0,-38.0}, points={{8.0,48.0},{8.0,-2.0},{-7.0,-2.0},{-7.0,-22.0},{-2.0,-22.0}})); connect(fTFE2.frame_b,rE.frame_b) annotation(Line(visible=true, origin={116.6667,36.6667}, points={{3.3333,-6.6667},{3.3333,3.3333},{-6.6667,3.3333}})); connect(pDE.frame_b,rE.frame_a) annotation(Line(visible=true, origin={80.0,40.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(ArmPosition.flange,pDE.axis) annotation(Line(visible=true, origin={66.3148,65.7831}, points={{-16.3148,14.2169},{1.6852,14.2169},{1.6852,-15.7831},{1.6852,-19.7831}}, color={0,127,0})); connect(rD.frame_b,pDE.frame_a) annotation(Line(visible=true, origin={40.0,40.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(fTCD.frame_b,rD.frame_a) annotation(Line(visible=true, origin={0.0,40.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(fTBD.frame_b,fTCD.frame_a) annotation(Line(visible=true, origin={-36.6667,30.0}, points={{-3.3333,-20.0},{-3.3333,10.0},{6.6667,10.0}})); connect(rC.frame_b,fTCD.frame_a) annotation(Line(visible=true, origin={-40.0,40.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(EGF.frame_b,fTFG.frame_a) annotation(Line(visible=true, origin={136.6667,-65.0}, points={{-6.6667,5.0},{3.3333,5.0},{3.3333,-10.0}}, color={95,95,95})); connect(fTFE1.frame_b,EGF.frame_a) annotation(Line(visible=true, origin={105.0,-60.0}, points={{-5.0,-0.0},{5.0,0.0}})); connect(rF.frame_b,fTFE1.frame_a) annotation(Line(visible=true, origin={75.0,-60.0}, points={{-5.0,0.0},{5.0,-0.0}})); connect(rF.frame_a,fTCF.frame_b) annotation(Line(visible=true, origin={45.0,-60.0}, points={{5.0,-0.0},{-5.0,0.0}})); connect(CF.frame_b,fTCF.frame_a) annotation(Line(visible=true, origin={15.0,-60.0}, points={{-5.0,-0.0},{5.0,0.0}})); connect(AC.frame_b,fRC.frame_a) annotation(Line(visible=true, origin={-45.0,-60.0}, points={{-5.0,-0.0},{5.0,0.0}})); connect(fRC.frame_b,CF.frame_a) annotation(Line(visible=true, origin={-15.0,-60.0}, points={{-5.0,0.0},{5.0,0.0}})); connect(rA.frame_b,AC.frame_a) annotation(Line(visible=true, origin={-90.0,-60.0}, points={{-20.0,0.0},{20.0,-0.0}})); connect(AC.frame_a,fixedShape1.frame_a) annotation(Line(visible=true, origin={-73.8937,-75.0}, points={{3.8937,15.0},{-2.3312,15.0},{-2.3312,-15.0},{0.7688,-15.0}})); connect(pBC.frame_b,fixedShape3.frame_a) annotation(Line(visible=true, origin={-76.5891,20.0}, points={{-3.4109,20.0},{0.1036,20.0},{0.1036,-20.0},{3.2036,-20.0}}, color={95,95,95})); connect(pBC.frame_b,rC.frame_a) annotation(Line(visible=true, origin={-75.0,40.0}, points={{-5.0,0.0},{5.0,0.0}})); connect(rB.frame_b,pBC.frame_a) annotation(Line(visible=true, origin={-105.0,40.0}, points={{-5.0,0.0},{5.0,0.0}})); connect(BoomPosition.flange,pBC.axis) annotation(Line(visible=true, origin={-81.45,63.0}, points={{-8.55,17.0},{4.55,17.0},{4.55,-17.0},{-0.55,-17.0}}, color={0,127,0})); connect(pBC.frame_a,fixedShape2.frame_a) annotation(Line(visible=true, origin={-105.3,20.0}, points={{5.3,20.0},{-2.8,20.0},{-2.8,-20.0},{0.3,-20.0}})); end Boom; model Bucket annotation(Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Bucket

 

Description

This class models the bucket part of the excavator.

The bucket has two revolute joints, one body box, and two fixed translations. One of the revolute joints is a RevolutePlanarLoopConstraint to avoid algebraic loops.

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions=""), Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, origin={-76.8762,79.5808}, fillPattern=FillPattern.Solid, points={{66.8762,0.4192},{-2.234,9.584},{-9.643,9.584},{-13.876,7.467},{-16.522,2.705},{-16.522,-1.529},{-12.818,-6.291},{-7.261,-8.672},{14.3383,-16.1178}}),Text(visible=true, origin={-30.0,-52.9429}, rotation=-270, fillPattern=FillPattern.Solid, extent={{-100.0,-20.0},{100.0,20.0}}, textString="%name", fontName="Arial"),Polygon(visible=true, origin={49.4615,17.8827}, fillColor={102,102,102}, fillPattern=FillPattern.Solid, points={{-105.289,48.792},{-26.707,75.251},{-11.626,77.103},{6.366,72.34},{18.801,66.519},{30.972,54.613},{38.38,41.384},{43.407,26.567},{43.407,2.226},{43.407,-109.693},{38.645,-109.693},{24.622,-67.36},{18.272,-64.979},{1.603,-54.395},{-22.739,-39.049},{-36.232,-30.318},{-105.289,10.692}}),Polygon(visible=true, origin={-68.7917,48.3526}, fillColor={51,51,51}, fillPattern=FillPattern.Solid, points={{-13.229,11.972},{13.229,18.322},{13.229,-19.778},{-13.229,-10.517}}),Ellipse(visible=true, origin={-84.2698,80.9625}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-4.101,-3.9688},{4.101,3.9688}}),Ellipse(visible=true, origin={-68.3948,48.8156}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, extent={{-7.8052,-7.5406},{7.8052,7.5406}}),Polygon(visible=true, origin={43.1271,-26.7229}, fillColor={153,153,153}, fillPattern=FillPattern.Solid, points={{-30.162,14.552},{-8.996,23.548},{27.252,1.323},{25.665,-20.373},{16.404,-23.812},{-30.162,4.762}})}), Diagram(coordinateSystem(extent={{-74.0,-52.5},{74.0,52.5}}, preserveAspectRatio=true, initialScale=0.1, grid={5,5}), graphics)); Modelica.Mechanics.MultiBody.Interfaces.Frame_a J annotation(Placement(visible=true, transformation(origin={-74.0,-40.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-92.4394,44.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_a K annotation(Placement(visible=true, transformation(origin={-74.0,40.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-104.0,84.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.Revolute rJ(n={0,1,0}, animation=false) annotation(Placement(visible=true, transformation(origin={-40.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Joints.RevolutePlanarLoopConstraint rK(n={0,1,0}, animation=false) annotation(Placement(visible=true, transformation(origin={-40.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox bucket(r={6*0.401,0,0}, height=3.2*0.401, width=0.01*3.2*0.401, color={125,125,125}, animation=false) annotation(Placement(visible=true, transformation(origin={60.0,0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTJ(color={0,255,0}, r={-0.305,0,0.22}, animation=false) annotation(Placement(visible=true, transformation(origin={0.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fTK(color={255,0,0}, r={0,0,-0.6*0.401*0}, animation=false) annotation(Placement(visible=true, transformation(origin={-0.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape1(shapeType="DocumentationFiles/bucket.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={60.0,-20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); equation connect(J,rJ.frame_a) annotation(Line(visible=true, origin={-62.0,-40.0}, points={{-12.0,0.0},{12.0,0.0}})); connect(rK.frame_a,K) annotation(Line(visible=true, origin={-62.0,40.0}, points={{12.0,0.0},{-12.0,0.0}})); connect(fTJ.frame_b,bucket.frame_a) annotation(Line(visible=true, origin={38.45,-20.0}, points={{-28.45,-20.0},{8.45,-20.0},{8.45,20.0},{11.55,20.0}})); connect(fTK.frame_b,bucket.frame_a) annotation(Line(visible=true, origin={38.45,20.0}, points={{-28.45,20.0},{8.45,20.0},{8.45,-20.0},{11.55,-20.0}})); connect(bucket.frame_a,fixedShape1.frame_a) annotation(Line(visible=true, origin={50.0,-13.3333}, points={{0.0,13.3333},{0.0,-6.6667},{0.0,-6.6667}})); connect(rJ.frame_b,fTJ.frame_a) annotation(Line(visible=true, origin={-20.0,-40.0}, points={{-10.0,0.0},{10.0,0.0}})); connect(rK.frame_b,fTK.frame_a) annotation(Line(visible=true, origin={-20.0,40.0}, points={{-10.0,0.0},{10.0,0.0}})); end Bucket; model Cab annotation(Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Cab

 

Description

This class models the cab part of the excavator.

The model has two tracks and a counterweight in addition to the chassis. A CombiTimeTable component is used to control the rotation of the excavator cab.

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions=""), Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, origin={38.541,-23.9007}, fillPattern=FillPattern.Solid, extent={{-17.1979,-7.4965},{17.1979,7.4965}}),Polygon(visible=true, origin={-5.0634,-42.7276}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, lineThickness=3, points={{-11.341,18.739},{23.231,18.739},{27.112,18.739},{84.438,11.33},{94.845,6.392},{98.726,-3.133},{97.138,-12.482},{90.436,-19.185},{81.44,-21.302},{-74.312,-21.302},{-82.073,-18.479},{-87.012,-12.658},{-88.599,-5.074},{-86.482,2.511},{-80.662,8.155},{-73.782,10.272},{-13.105,18.739}}, smooth=Smooth.Bezier),Polygon(visible=true, origin={0.0974,-46.403}, fillPattern=FillPattern.Solid, points={{-17.4276,17.2988},{18.688,17.5634},{78.7484,9.6259},{82.4526,8.0384},{85.6276,4.7311},{87.2151,-0.4282},{86.4214,-5.7199},{83.5109,-9.6887},{79.608,-12.004},{73.763,-12.326},{-77.2234,-12.5991},{-81.324,-11.871},{-84.83,-9.159},{-86.815,-5.058},{-87.013,0.299},{-85.558,4.07},{-82.581,7.509},{-78.5464,8.9645}}),Polygon(visible=true, origin={39.3247,40.5694}, fillColor={83,83,83}, fillPattern=FillPattern.Solid, points={{-31.652,-14.111},{-27.683,12.876},{-23.714,17.639},{20.675,17.639},{26.292,12.876},{36.082,-46.919}}),Polygon(visible=true, origin={39.37,24.2887}, fillColor={0,85,128}, fillPattern=FillPattern.Solid, points={{-15.293,28.099},{18.838,28.099},{27.04,-30.0},{-15.293,-30.0}}),Polygon(visible=true, origin={42.0181,16.4924}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-12.018,8.908},{0.492,8.908},{13.544,-8.908},{-2.018,-8.908}}),Polygon(visible=true, origin={62.6685,12.4228}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-18.924,-3.956},{-5.3113,4.7844},{5.7901,9.595},{10.6007,3.4892},{12.297,-19.126},{10.357,-19.126},{-17.16,-5.896}}, smooth=Smooth.Bezier),Text(visible=true, origin={-18.1672,40.0}, fillPattern=FillPattern.Solid, extent={{-53.7493,-20.0},{53.7493,20.0}}, textString="%name", fontName="Arial"),Polygon(visible=true, origin={-16.8052,5.4606}, fillColor={255,202,0}, fillPattern=FillPattern.Solid, points={{-68.391,21.262},{48.82,21.262},{60.461,4.539},{80.305,4.539},{92.476,-11.281},{92.476,-22.1294},{-73.1948,-22.1294},{-79.768,-12.34},{-76.593,4.539}}),Polygon(visible=true, origin={-12.5016,1.9573}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, points={{-80.896,8.043},{76.002,8.043},{87.996,-8.043},{-83.807,-8.043}}),Ellipse(visible=true, origin={-18.4567,-33.2005}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={19.1916,-32.7564}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={-51.6205,-55.3929}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={-26.1692,-55.3456}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={-0.155,-55.3875}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={25.8591,-55.2633}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={51.6857,-55.0068}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-3.3777,-3.19},{3.3777,3.19}}),Ellipse(visible=true, origin={77.3316,-47.7228}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-10.9069,-10.9978},{10.9069,10.9978}}),Ellipse(visible=true, origin={-77.6918,-48.1573}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, extent={{-10.679,-10.768},{10.679,10.768}}),Ellipse(visible=true, origin={77.6068,-47.6879}, fillColor={51,51,51}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, extent={{-6.943,-6.8491},{6.943,6.8491}}),Polygon(visible=true, origin={-34.6764,-49.5513}, fillColor={64,64,64}, fillPattern=FillPattern.Solid, points={{96.533,13.161},{-48.519,11.848},{-48.894,-2.789},{-44.434,-8.2601},{-25.7808,-7.9955},{-25.7808,-2.307},{96.908,-1.85}})}), Diagram(coordinateSystem(extent={{-148.5,-105.0},{148.5,105.0}}, preserveAspectRatio=true, initialScale=0.1, grid={5,5}))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT2(animation=false, r={0,0,(0.8822 + 0.2406)/2}) annotation(Placement(visible=true, transformation(origin={40.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-720))); Modelica.Mechanics.MultiBody.Parts.BodyBox chassis(color={255,165,0}, density=200, height=0.2406, r={2.005 + 0.802,0,0}, width=2, animation=false) annotation(Placement(visible=true, transformation(origin={40.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT1(animation=false, r={0,(2 - 1.405)/2,(1.9845 - 0.8822)/2}) annotation(Placement(visible=true, transformation(origin={100.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox counterweight(color={255,165,0}, density=200, height=0.8822, r={0.802,0,0}, width=2, animation=false) annotation(Placement(visible=true, transformation(origin={70.0,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox cab(color={200,200,200}, height=1.9845, innerHeight=1.8, innerWidth=1.2, r={2.005,0,0}, width=1.405, animation=false) annotation(Placement(visible=true, transformation(origin={130.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_a frame_a1 annotation(Placement(visible=true, transformation(origin={-149.0,1.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={-100.0,-0.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT4(animation=false, r={1.3*0.401,-0.505,(1.9 - 2.2/2)*0.401}) annotation(Placement(visible=true, transformation(origin={100.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT3(animation=false, r={3.8*0.401,-0.655,1.2*0.401}) annotation(Placement(visible=true, transformation(origin={100.0,80.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Interfaces.Frame_b B annotation(Placement(visible=true, transformation(origin={149.0,80.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={78.8899,-0.7401}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT0(animation=false, r={0,0,2.5*0.401/2}) annotation(Placement(visible=true, transformation(origin={-120.0,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT5(animation=false, r={12.5*0.401/2,0,2.5*0.401/2 + 0.2}) annotation(Placement(visible=true, transformation(origin={-60.0,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT6(animation=false, r={-(2.005 + 0.802)/2,0,0}) annotation(Placement(visible=true, transformation(origin={10.0,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-360))); Modelica.Mechanics.MultiBody.Parts.BodyBox track2(color={50,50,50}, density=200, height=2.5*0.401, r={12.5*0.401,0,0}, width=0.9, body.cylinder.shapeType="beam", animation=false) annotation(Placement(visible=true, transformation(origin={-80.0,-40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.BodyBox track1(color={50,50,50}, density=200, height=2.5*0.401, r={12.5*0.401,0,0}, width=0.9, body.cylinder.shapeType="beam", animation=false) annotation(Placement(visible=true, transformation(origin={-80.0,40.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT7(animation=false, r={0,0.9,0}) annotation(Placement(visible=true, transformation(origin={-100.0,20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-990))); Modelica.Mechanics.MultiBody.Parts.FixedTranslation fT8(animation=false, r={0,-0.9,0}) annotation(Placement(visible=true, transformation(origin={-100.0,-20.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-1170))); Modelica.Mechanics.MultiBody.Joints.Revolute revolute1(useAxisFlange=true, stateSelect=StateSelect.always, phi.start=0) annotation(Placement(visible=true, transformation(origin={-20.0,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.Rotational.Sources.Position turnActuator(useSupport=true) annotation(Placement(visible=true, transformation(origin={-40.0,30.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Blocks.Sources.CombiTimeTable turnInstructions(tableOnFile=true, tableName="var1", fileName="DocumentationFiles/turntable.txt", extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint) annotation(Placement(visible=true, transformation(origin={-40.0,60.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=-180))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape1(shapeType="DocumentationFiles/cab.obj", length=1, width=1, height=1) annotation(Placement(visible=true, transformation(origin={130.0,-65.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape3(shapeType="DocumentationFiles/track2.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-80.0,-65.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape4(shapeType="DocumentationFiles/track1.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-80.0,65.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Interfaces.Frame_b A annotation(Placement(visible=true, transformation(origin={149.0,40.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0), iconTransformation(origin={67.5504,34.0}, extent={{-16.0,-16.0},{16.0,16.0}}, rotation=0))); equation connect(A,fT4.frame_b) annotation(Line(visible=true, origin={129.5,40.0}, points={{19.5,0.0},{-19.5,0.0}})); connect(fT3.frame_b,B) annotation(Line(visible=true, origin={129.5,80.0}, points={{-19.5,0.0},{19.5,0.0}})); connect(fT8.frame_b,track2.frame_a) annotation(Line(visible=true, origin={-96.6667,-36.6667}, points={{-3.3333,6.6667},{-3.3333,-3.3333},{6.6667,-3.3333}})); connect(fixedShape3.frame_a,track2.frame_a) annotation(Line(visible=true, origin={-90.55,-52.5}, points={{0.55,-12.5},{-0.55,-12.5},{-0.55,12.5},{0.55,12.5}})); connect(frame_a1,fT0.frame_a) annotation(Line(visible=true, origin={-142.6667,7.0}, points={{-6.3333,-6.0},{-6.3333,-7.0},{12.6667,-7.0}})); connect(track1.frame_a,fixedShape4.frame_a) annotation(Line(visible=true, origin={-90.55,52.5}, points={{0.55,-12.5},{-0.55,-12.5},{-0.55,12.5},{0.55,12.5}})); connect(cab.frame_a,fixedShape1.frame_a) annotation(Line(visible=true, origin={119.45,-52.5}, points={{0.55,12.5},{-0.55,12.5},{-0.55,-12.5},{0.55,-12.5}})); connect(fT0.frame_b,fT5.frame_a) annotation(Line(visible=true, origin={-81.5,-2.5}, points={{-28.5,2.5},{1.5,2.5},{6.5,2.5},{11.5,2.5}})); connect(fT0.frame_b,fT8.frame_a) annotation(Line(visible=true, origin={-103.3333,-3.3333}, points={{-6.6667,3.3333},{3.3333,3.3333},{3.3333,-6.6667}})); connect(fT7.frame_b,track1.frame_a) annotation(Line(visible=true, origin={-96.6667,36.6667}, points={{-3.3333,-6.6667},{-3.3333,3.3333},{6.6667,3.3333}})); connect(fT0.frame_b,fT7.frame_a) annotation(Line(visible=true, origin={-103.3333,3.3333}, points={{-6.6667,-3.3333},{3.3333,-3.3333},{3.3333,6.6667}})); connect(fT6.frame_b,chassis.frame_a) annotation(Line(visible=true, origin={25.95,-20.0}, points={{-5.95,20.0},{0.95,20.0},{0.95,-20.0},{4.05,-20.0}})); connect(chassis.frame_a,fT2.frame_a) annotation(Line(visible=true, origin={32.1118,-13.5}, points={{-2.1118,-26.5},{-5.0285,-26.5},{-5.0285,53.5},{-2.1118,53.5}})); connect(fT3.frame_a,counterweight.frame_b) annotation(Line(visible=true, origin={84.05,40.0}, points={{5.95,40.0},{-0.95,40.0},{-0.95,-40.0},{-4.05,-40.0}})); connect(counterweight.frame_b,fT4.frame_a) annotation(Line(visible=true, origin={86.0,20.0}, points={{-6.0,-20.0},{1.0,-20.0},{1.0,20.0},{4.0,20.0}})); connect(fT1.frame_b,cab.frame_a) annotation(Line(visible=true, origin={115.0,-40.0}, points={{-5.0,0.0},{5.0,0.0}})); connect(counterweight.frame_b,fT1.frame_a) annotation(Line(visible=true, origin={86.0,-20.0}, points={{-6.0,20.0},{1.0,20.0},{1.0,-20.0},{4.0,-20.0}})); connect(fT2.frame_b,counterweight.frame_a) annotation(Line(visible=true, origin={49.9979,20.0}, points={{0.0021,20.0},{3.1083,20.0},{3.1083,-0.0},{3.1083,-10.0},{3.1083,-20.0},{10.0021,-20.0}})); connect(fT6.frame_a,revolute1.frame_b) annotation(Line(visible=true, origin={-5.0,-0.0}, points={{5.0,0.0},{-5.0,0.0}})); connect(revolute1.frame_a,fT5.frame_b) annotation(Line(visible=true, origin={-40.0,-0.0}, points={{10.0,0.0},{-10.0,0.0}})); connect(turnActuator.support,revolute1.support) annotation(Line(visible=true, origin={-38.8333,17.6042}, points={{-1.1667,2.3958},{-1.1667,-2.6042},{12.8333,-2.6042},{12.8333,-7.6042}})); connect(revolute1.axis,turnActuator.flange) annotation(Line(visible=true, origin={-23.3333,23.3333}, points={{3.3333,-13.3333},{3.3333,6.6667},{-6.6667,6.6667}})); connect(turnInstructions.y[1],turnActuator.phi_ref) annotation(Line(visible=true, origin={-53.25,45.0}, points={{2.25,15.0},{-1.75,15.0},{-1.75,-15.0},{1.25,-15.0}}, color={0,0,127})); end Cab; annotation(Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Components

 

Package Overview

This package contains custom components used in the main model.

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions="")); end Components; annotation(Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Simulate Large Machines

In order to get the full experience of this example, you need the following:

 

Parts of this example require Mathematica. Open the accompanying notebook Excavator.nb in Mathematica for those scenarios.

 

Package Overview

This package contains a model of an Excavator.

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions=""), uses(Modelica(version="3.1")), Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, lineColor={111,0,0}, fillColor={255,0,0}, fillPattern=FillPattern.HorizontalCylinder, lineThickness=4, extent={{-90.0,-90.0},{90.0,90.0}}, radius=25),Text(visible=true, origin={12.0,20.8333}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-102.0,-70.8333},{78.0,29.1667}}, textString="Ex", fontName="Arial")})); model ExampleModel "Excavator model" annotation(__Wolfram(useDocumentationTemplate=false, RDF="()"), Documentation(info="
More Examples Introductory Videos Documentation Contact Us
 

Excavator: Simulate Large Machines

CONTENTS:
ˇ Introductionˇ Generate Simulation Scenarios
ˇ Simulation
 

Introduction

This is a model of a standard excavator for digging.

In order to get the full experience of this example, you need the following:

 

Parts of this example require Mathematica. Open the accompanying notebook Excavator.nb in Mathematica for those scenarios.

 

Generate Simulation Scenarios

In Mathematica, use an interactive Manipulate to create simulation scenarios that can be exported to SystemModeler.

\"\"/

 

Simulation

To simulate the Excavator and view a 3D animation of it, follow the steps below:

\"\"/

\"Show\"\"Hide\"Terms and Conditions of Use

This domain example is an informational resource made freely available by Wolfram Research.

Use of This Example

License

All content in this bundle is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. By accessing the content or using it in any way, you accept and agree to be bound by the terms of this license. If you do not agree to these Terms of Use, you may not use this content. Wolfram Research reserves the right to change, modify, add to, or remove portions of these Terms of Use at any time without notice. Please refer back to www.wolfram.com for the latest Terms of Use.

A summary of the licensing terms can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0

The full legal code can be found at:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

 
", revisions=""), preferredView="info", uses(Modelica(version="3.1")), Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, lineColor={111,0,0}, fillColor={255,0,0}, fillPattern=FillPattern.HorizontalCylinder, lineThickness=4, extent={{-90.0,-90.0},{90.0,90.0}}, radius=25),Text(visible=true, origin={12.0,20.8333}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-102.0,-70.8333},{78.0,29.1667}}, textString="Ex", fontName="Arial")}), Diagram(coordinateSystem(extent={{-148.0,-105.0},{148.0,105.0}}, preserveAspectRatio=true, initialScale=0.1, grid={5,5}), graphics={Rectangle(visible=true, origin={0.0,2.5}, fillColor={139,196,224}, fillPattern=FillPattern.Solid, extent={{-147.9431,-102.5},{147.9431,102.5}}),Polygon(visible=true, origin={3.1923,-50.986}, lineColor={131,65,0}, fillColor={170,85,0}, fillPattern=FillPattern.CrossDiag, points={{-123.192,10.986},{-113.192,10.986},{-100.827,12.541},{-88.192,10.986},{-73.192,12.913},{-28.9307,10.8485},{-11.4718,7.7887},{-8.9519,5.4489},{-10.6006,-2.1952},{-4.7798,-19.014},{6.8077,-30.7702},{19.0327,-34.014},{41.8077,-29.014},{61.8077,-26.8015},{79.6223,-19.014},{91.8077,-16.7473},{108.4619,-4.014},{124.6014,5.986},{144.751,10.986},{144.751,-54.014},{-151.1355,-54.014},{-151.1355,10.986}})}), experiment(StartTime=0.0, StopTime=20.0, NumberOfIntervals=-1, Algorithm="dassl", Tolerance=0.000001)); inner Modelica.Mechanics.MultiBody.World world(label2="z", n={0,0,-1}, animateWorld=false, animateGravity=false, axisShowLabels=false) annotation(Placement(visible=true, transformation(origin={-138.1479,-95.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Excavator.Components.Cab cab annotation(Placement(visible=true, transformation(origin={-76.5875,-15.0}, extent={{-40.0,-40.0},{40.0,40.0}}, rotation=0))); Excavator.Components.Boom boom annotation(Placement(visible=true, transformation(origin={5.0,22.7646}, extent={{-40.0,-40.0},{40.0,40.0}}, rotation=0))); Excavator.Components.Arm arm annotation(Placement(visible=true, transformation(origin={75.0,42.3677}, extent={{-30.0,-30.0},{30.0,30.0}}, rotation=0))); Excavator.Components.Bucket bucket annotation(Placement(visible=true, transformation(origin={100.0,-10.0}, extent={{-15.0,-15.0},{15.0,15.0}}, rotation=-90))); Modelica.Mechanics.MultiBody.Parts.Fixed fixed1 annotation(Placement(visible=true, transformation(origin={-100.0,-70.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); Modelica.Mechanics.MultiBody.Visualizers.FixedShape fixedShape1(shapeType="DocumentationFiles/ground.obj", height=1, length=1, width=1) annotation(Placement(visible=true, transformation(origin={-65.0,-70.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0))); equation connect(boom.F,arm.F) annotation(Line(visible=true, origin={56.2906,59.7323}, points={{-10.383,-12.9677},{-9.6906,-12.4323},{-1.2906,-12.4323},{-1.0906,-12.5646}})); connect(boom.G,arm.G) annotation(Line(visible=true, origin={46.94,68.0235}, points={{-8.3931,-6.1997},{-8.34,-5.8558},{-4.739,-5.8558},{-1.94,-5.8558},{-1.94,-5.8558}})); connect(cab.B,boom.B) annotation(Line(visible=true, origin={-18.4388,-52.2167}, points={{-26.5927,36.9207},{-16.5612,37.2167},{9.0388,37.2167},{9.0388,50.9813}}, color={95,95,95})); connect(cab.A,boom.A) annotation(Line(visible=true, origin={-15.8499,-1.1}, points={{-33.7174,-0.3},{-34.3376,-0.1354},{-29.1501,-0.1354},{-20.7501,-0.1354}})); connect(arm.J,bucket.J) annotation(Line(visible=true, origin={101.3,8.2943}, points={{-5.3,5.017},{-5.3,-0.2943},{5.3,-0.2943},{5.3,-4.4284}})); connect(bucket.K,arm.K) annotation(Line(visible=true, origin={110.1667,16.3118}, points={{2.4333,-10.7118},{2.4333,5.3559},{-4.8667,5.3559}})); connect(world.frame_b,cab.frame_a1) annotation(Line(visible=true, origin={-145.9,-70.0}, points={{17.7521,-25.0},{20.9,-25.0},{20.9,55.0},{29.3125,55.0}}, color={95,95,95})); connect(fixed1.frame_b,fixedShape1.frame_a) annotation(Line(visible=true, origin={-82.5,-70.0}, points={{-7.5,0.0},{7.5,0.0}})); end ExampleModel; end Excavator;