diff --git a/Libraries/CFL_Core/Libraries/Contact_Forces_Lib.slx b/Libraries/CFL_Core/Libraries/Contact_Forces_Lib.slx index ac6b766..db8fb9d 100644 Binary files a/Libraries/CFL_Core/Libraries/Contact_Forces_Lib.slx and b/Libraries/CFL_Core/Libraries/Contact_Forces_Lib.slx differ diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Block_NotchCircle.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Block_NotchCircle.m index 9e2fef4..f2a321e 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Block_NotchCircle.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Block_NotchCircle.m @@ -17,7 +17,7 @@ % add 'plot' as the final argument % >> Extr_Data_Block_NotchCircle(2,1,0.7,45,0.2,'plot') -% Copyright 2012-2020 The MathWorks, Inc. +% Copyright 2012-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Box.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Box.m index 107df43..8517598 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Box.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Box.m @@ -16,7 +16,7 @@ % add 'plot' as the final argument % >> Extr_Data_Box(10,5,'plot') -% Copyright 2013-2020 The MathWorks, Inc. +% Copyright 2013-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Circles.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Circles.m index 79aa5fd..6bd64d8 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Circles.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Circles.m @@ -19,7 +19,7 @@ % add 'plot' as the final argument % >> Extr_Data_Cam_Circles(4,3,5,1,0,'plot') -% Copyright 2012-2020 The MathWorks, Inc. +% Copyright 2012-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Roller_Curve.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Roller_Curve.m index 9bd0343..ffa6980 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Roller_Curve.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Cam_Roller_Curve.m @@ -18,7 +18,7 @@ % add 'plot' as the final argument % >> Extr_Data_Cam_Roller_Curve([sind(1:4:360)' 1.5*cosd(1:4:360)'],0.2,'Outside','plot') -% Copyright 2017-2020 The MathWorks, Inc. +% Copyright 2017-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Custom.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Custom.m index 404e284..c70349a 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Custom.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Custom.m @@ -2,7 +2,7 @@ function Extr_Data_Custom(xy_data) %Extr_Data_Custom Plot custom extrusion data. % This function plots x-y data for a custom extrusion. -% Copyright 2012-2020 The MathWorks, Inc. +% Copyright 2012-2021 The MathWorks, Inc. % Plot diagram to show parameters and extrusion diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ellipse.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ellipse.m index 77c5064..b847e94 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ellipse.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ellipse.m @@ -17,7 +17,7 @@ % add 'plot' as the final argument % >> Extr_Data_Ellipse(5,2,60,315,1,'plot') -% Copyright 2012-2020 The MathWorks, Inc. +% Copyright 2012-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Frustum_Conical.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Frustum_Conical.m index 17d20a6..9abe9f5 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Frustum_Conical.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Frustum_Conical.m @@ -16,7 +16,7 @@ % add 'plot' as the final argument % >> Extr_Data_Frustum_Conical(5,60,4,4,'plot') -% Copyright 2017-2020 The MathWorks, Inc. +% Copyright 2017-2021 The MathWorks, Inc. % Default data to show diagram showplot = 'n'; diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Link2Hole.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Link2Hole.m index 043d2b0..7716853 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Link2Hole.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Link2Hole.m @@ -15,7 +15,7 @@ % add 'plot' as the final argument % >> Extr_Data_Link2Hole(10,5,2,'plot') -% Copyright 2012-2020 The MathWorks, Inc. +% Copyright 2012-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_LinkHoles.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_LinkHoles.m index 8cb55f2..b35e477 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_LinkHoles.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_LinkHoles.m @@ -17,7 +17,7 @@ % add 'plot' as the final argument % >> Extr_Data_LinkHoles(10,5,1,3,'plot') % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ring.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ring.m index 74d7ab2..5b1d1f2 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ring.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_Ring.m @@ -16,7 +16,7 @@ % add 'plot' as the final argument % >> Extr_Data_Ring(10,5,45,315,'plot') -% Copyright 2012-2020 The MathWorks, Inc. +% Copyright 2012-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_TriangleRounded_Holes.m b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_TriangleRounded_Holes.m index 3a235ad..90916ab 100644 --- a/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_TriangleRounded_Holes.m +++ b/Libraries/CFL_Core/Libraries/Extrusions/Extr_Data_TriangleRounded_Holes.m @@ -19,7 +19,7 @@ % add 'plot' as the final argument % >> Extr_Data_TriangleRounded_Holes(6,4,0.33,1,2,'plot') % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. % Default data to show diagram if (nargin == 0) diff --git a/Libraries/CFL_Core/Libraries/Help/Box_to_Belt_Contact.m b/Libraries/CFL_Core/Libraries/Help/Box_to_Belt_Contact.m index 0ea9e5d..51ddd6c 100644 --- a/Libraries/CFL_Core/Libraries/Help/Box_to_Belt_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Box_to_Belt_Contact.m @@ -6,7 +6,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact.m b/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact.m index 4a26e71..579c77d 100644 --- a/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact.m @@ -4,7 +4,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxB_Corners.m b/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxB_Corners.m index 3e0cd76..6e14a10 100644 --- a/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxB_Corners.m +++ b/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxB_Corners.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxF_Corners.m b/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxF_Corners.m index 5ce91a8..7ba9c3c 100644 --- a/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxF_Corners.m +++ b/Libraries/CFL_Core/Libraries/Help/Box_to_Box_Contact_Forces_BoxF_Corners.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Circle_to_Circle_Contact.m b/Libraries/CFL_Core/Libraries/Help/Circle_to_Circle_Contact.m index b37aa7c..5422e61 100644 --- a/Libraries/CFL_Core/Libraries/Help/Circle_to_Circle_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Circle_to_Circle_Contact.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Circle_to_Finite_Line_Contact.m b/Libraries/CFL_Core/Libraries/Help/Circle_to_Finite_Line_Contact.m index 52509b6..f6cbdf7 100644 --- a/Libraries/CFL_Core/Libraries/Help/Circle_to_Finite_Line_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Circle_to_Finite_Line_Contact.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Circle_to_Ring_Contact.m b/Libraries/CFL_Core/Libraries/Help/Circle_to_Ring_Contact.m index 7517de0..cbd564b 100644 --- a/Libraries/CFL_Core/Libraries/Help/Circle_to_Ring_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Circle_to_Ring_Contact.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Contact_Forces_Library_Use.m b/Libraries/CFL_Core/Libraries/Help/Contact_Forces_Library_Use.m index aed62fc..396f9a9 100644 --- a/Libraries/CFL_Core/Libraries/Help/Contact_Forces_Library_Use.m +++ b/Libraries/CFL_Core/Libraries/Help/Contact_Forces_Library_Use.m @@ -1,6 +1,6 @@ %% Using the Simscape Multibody Contact Forces Library % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Face_to_Plane_Contact.m b/Libraries/CFL_Core/Libraries/Help/Face_to_Plane_Contact.m index 8395ca6..7dce9e1 100644 --- a/Libraries/CFL_Core/Libraries/Help/Face_to_Plane_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Face_to_Plane_Contact.m @@ -7,7 +7,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Force_Laws.m b/Libraries/CFL_Core/Libraries/Help/Force_Laws.m index 511f616..25a612b 100644 --- a/Libraries/CFL_Core/Libraries/Help/Force_Laws.m +++ b/Libraries/CFL_Core/Libraries/Help/Force_Laws.m @@ -4,7 +4,7 @@ % . It applies for 2D and 3D contact forces. % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Friction_Laws.m b/Libraries/CFL_Core/Libraries/Help/Friction_Laws.m index 9c52706..beb95b1 100644 --- a/Libraries/CFL_Core/Libraries/Help/Friction_Laws.m +++ b/Libraries/CFL_Core/Libraries/Help/Friction_Laws.m @@ -4,7 +4,7 @@ % . It applies for 2D and 3D contact forces. % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Sphere_in_Sphere_Contact.m b/Libraries/CFL_Core/Libraries/Help/Sphere_in_Sphere_Contact.m index 9b1a3d6..e97a1aa 100644 --- a/Libraries/CFL_Core/Libraries/Help/Sphere_in_Sphere_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Sphere_in_Sphere_Contact.m @@ -6,7 +6,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Belt_Contact.m b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Belt_Contact.m index a8905a7..8e23135 100644 --- a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Belt_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Belt_Contact.m @@ -6,7 +6,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Cone_Contact.m b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Cone_Contact.m index d228611..2d25132 100644 --- a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Cone_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Cone_Contact.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Plane_Contact.m b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Plane_Contact.m index 0df2594..a75ce25 100644 --- a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Plane_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Plane_Contact.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Sphere_Contact.m b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Sphere_Contact.m index 451ab07..a574317 100644 --- a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Sphere_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Sphere_Contact.m @@ -4,7 +4,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Tube_Contact.m b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Tube_Contact.m index 6f10bfb..76a7216 100644 --- a/Libraries/CFL_Core/Libraries/Help/Sphere_to_Tube_Contact.m +++ b/Libraries/CFL_Core/Libraries/Help/Sphere_to_Tube_Contact.m @@ -5,7 +5,7 @@ % % This is part of the % -% Copyright 2014-2020 The MathWorks, Inc. +% Copyright 2014-2021 The MathWorks, Inc. diff --git a/Libraries/CFL_Core/Libraries/Help/html/Box_to_Belt_Contact.html b/Libraries/CFL_Core/Libraries/Help/html/Box_to_Belt_Contact.html index 0633262..7d79d32 100644 --- a/Libraries/CFL_Core/Libraries/Help/html/Box_to_Belt_Contact.html +++ b/Libraries/CFL_Core/Libraries/Help/html/Box_to_Belt_Contact.html @@ -66,7 +66,7 @@ -

Box to Belt Contact Forces (2D)

This block models planar contact forces between a box and a conveyor belt. The conveyor belt moves at the speed specified by the input signal in m/s.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of box and belt
  2. Box and belt are in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This block models planar contact forces between a box and a conveyor belt. The conveyor belt moves at the speed specified by the input signal in m/s.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of box and belt
  2. Box and belt are in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This subsystem models planar contact forces between two boxes.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of boxes
  2. Box is in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This subsystem models planar contact forces between two boxes.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of boxes
  2. Box is in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This subsystem models planar contact forces the corners of the Base box and the faces of the Follower Box. It is used within the Box to Box Contact Force

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of boxes
  2. Box is in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This subsystem models planar contact forces the corners of the Base box and the faces of the Follower Box. It is used within the Box to Box Contact Force

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of boxes
  2. Box is in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This subsystem models planar contact forces the corners of the Follower box and the faces of the Base Box. It is used within the Box to Box Contact Force

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of boxes
  2. Box is in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This subsystem models planar contact forces the corners of the Follower box and the faces of the Base Box. It is used within the Box to Box Contact Force

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of boxes
  2. Box is in XY plane of frame

Output signal is a bus with intermediate calculations and total force.

This block implements a 2D contact force between two circles. It acts to repel frames CirB and CirF.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of circle
  2. Circle is in XY plane of frame
  3. Active range: counter-clockwise from -x axis of CirB

Output signal is a bus with intermediate calculations and total force.

This block implements a 2D contact force between two circles. It acts to repel frames CirB and CirF.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of circle
  2. Circle is in XY plane of frame
  3. Active range: counter-clockwise from -x axis of CirB

Output signal is a bus with intermediate calculations and total force.

This block implements a 2D contact force between a circle and a finite line. The force is active above and below the line.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to LinB port:

  1. Located at midpoint of line.
  2. X-axis is normal to the finite line.
  3. Y-axis is along the finite line.

Frame connected to the CirF port:

  1. Z-axis aligned with frame attached to LinB port.

Output signal is a bus with intermediate calculations and total force.

This block implements a 2D contact force between a circle and a finite line. The force is active above and below the line.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to LinB port:

  1. Located at midpoint of line.
  2. X-axis is normal to the finite line.
  3. Y-axis is along the finite line.

Frame connected to the CirF port:

  1. Z-axis aligned with frame attached to LinB port.

Output signal is a bus with intermediate calculations and total force.

This block implements a 2D contact force between a circle and a ring. The force is active on the outside and the inside of the ring.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of circle/ring
  2. Circle/Ring is in XY plane of frame
  3. Active range: counter-clockwise from -x axis of RinB

Output signal is a bus with intermediate calculations and total force.

This block implements a 2D contact force between a circle and a ring. The force is active on the outside and the inside of the ring.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of circle/ring
  2. Circle/Ring is in XY plane of frame
  3. Active range: counter-clockwise from -x axis of RinB

Output signal is a bus with intermediate calculations and total force.

This subsystem implements a contact force between a plane and a square face. The plane is assumed significantly larger than the face such that the edges will never intersect. The force is active above and below the plane and face.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to PlaB port:

  1. Located at midpoint of plane (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Frame connected to the FacF port:

  1. Located at midpoint of box (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Output signal is a bus with intermediate calculations and total force.

This subsystem implements a contact force between a plane and a square face. The plane is assumed significantly larger than the face such that the edges will never intersect. The force is active above and below the plane and face.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to PlaB port:

  1. Located at midpoint of plane (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Frame connected to the FacF port:

  1. Located at midpoint of box (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Output signal is a bus with intermediate calculations and total force.

The diagrams and text below describe the configurable force laws in the Simscape Multibody Contact Forces Library. It applies for 2D and 3D contact forces.

You can also create your own customized force law:

Add your own in Simulink: Edit Custom Force Law

See also friction law documentation

The diagrams and text below describe the configurable force laws in the Simscape Multibody Contact Forces Library. It applies for 2D and 3D contact forces.

You can also create your own customized force law:

Add your own in Simulink: Edit Custom Force Law

See also friction law documentation

The diagrams and text below describe the configurable friction force laws in the Simscape Multibody Contact Forces Library. It applies for 2D and 3D contact forces.

The diagrams and text below describe the configurable friction force laws in the Simscape Multibody Contact Forces Library. It applies for 2D and 3D contact forces.

This block implements a contact force between two spheres. The force acts to keep distance from frame SphB to SphF less than (inner radius SphB - radius SphF).

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between two spheres. The force acts to keep distance from frame SphB to SphF less than (inner radius SphB - radius SphF).

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between a sphere and a moving belt with round ends. The force is active above and below the belt.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to BelB port:

  1. Located at midpoint of plane (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Frame connected to the SphF port:

  1. Located at center of sphere.
  2. Orientation does not matter.

Output signal is a bus with intermediate calculations and total force.

Input signal is a bus that enables the force and controls belt speed.

This block implements a contact force between a sphere and a moving belt with round ends. The force is active above and below the belt.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to BelB port:

  1. Located at midpoint of plane (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Frame connected to the SphF port:

  1. Located at center of sphere.
  2. Orientation does not matter.

Output signal is a bus with intermediate calculations and total force.

Input signal is a bus that enables the force and controls belt speed.

This block implements a contact force between a sphere and a cone. The force is active outside and inside the cone.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to ConB port:

  1. Located at widest end of the cone
  2. Z-axis is aligned with the cone axis
  3. Active range: counter-clockwise from -x axis of ConB

Frame connected to SphF port:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between a sphere and a cone. The force is active outside and inside the cone.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to ConB port:

  1. Located at widest end of the cone
  2. Z-axis is aligned with the cone axis
  3. Active range: counter-clockwise from -x axis of ConB

Frame connected to SphF port:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between a sphere and a plane. The force is active above and below the plane.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to PlaB port:

  1. Located at midpoint of plane (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Frame connected to the SphF port:

  1. Located at center of sphere.
  2. Orientation does not matter.

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between a sphere and a plane. The force is active above and below the plane.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to PlaB port:

  1. Located at midpoint of plane (x, y, and z).
  2. Z-axis is normal to the surfaces where force is active.

Frame connected to the SphF port:

  1. Located at center of sphere.
  2. Orientation does not matter.

Output signal is a bus with intermediate calculations and total force.

This subsystem implements a contact force between two spheres. It acts to repel frames SphB and SphF.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This subsystem implements a contact force between two spheres. It acts to repel frames SphB and SphF.

This is part of the Simscape Multibody Contact Forces Library

Frames connected to ports:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between a sphere and a tube. The force is active outside and inside the tube.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to TubB port:

  1. Located at midpoint of the tube axis
  2. Z-axis is aligned with the tube axis
  3. Active range: counter-clockwise from -x axis of TubB

Frame connected to SphF port:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

This block implements a contact force between a sphere and a tube. The force is active outside and inside the tube.

This is part of the Simscape Multibody Contact Forces Library

Frame connected to TubB port:

  1. Located at midpoint of the tube axis
  2. Z-axis is aligned with the tube axis
  3. Active range: counter-clockwise from -x axis of TubB

Frame connected to SphF port:

  1. Located at center of sphere
  2. Orientation does not matter

Output signal is a bus with intermediate calculations and total force.

Mechatronic Running Robot

Mechatronic Running Robot

This model shows how a running or walking robot can be modeled to support system design. This four-legged robot has compliant legs that can store and re-release kinetic energy. As such it is biologically-inspired by an equestrian trotting gait. The model can be used to support selection of leg length, leg spring stiffness and actuators. An objective could be to minimise power consumption for a steady trot at some nominal average forward speed. The DC power supply is augmented with an ultracapacitor which is sized to smooth battery currents and store regenerative electrical energy.

For details on the design process, see Mechatronic Running Robot Limb Design

Contents

Model

Leg LF Subsystem

Open Subsystem

Hip Actuator Subsystem

Open Subsystem

Power Supply Subsystem

Open Subsystem

Gait Phase Subsystem

Open Subsystem

Contact Forces Between Feet and Floor

Two methods are used for modeling the contact force between the foot and the floor. One is used for the X-Y plane only, the other accommodates movement in any direction. You can select the appropriate force for your test using a parameter in the leg subsystem mask.

Planar Contact Model

The planar variant of the contact force model assumes that the leg is moving in the positive global x direction and stays within the XY-plane. Simulink is used to model a spring-damper that connects the end of the leg to the floor at the exact location where it lands. This spring-damper is deactivated when the foot leaves the floor. This idealized form of a contact model is good for initial testing.

Open Subsystem

Six Degree of Freedom Contact Model

This variant of the contact force model assumes the end of the leg is a sphere and detects collision between the sphere and the surface of the floor. It models contact and friction force between the sphere and the plane. It is valid for all six degrees of freedom.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the current drawn by the motor and supplied by the battery as the robot runs.

This model shows how a running or walking robot can be modeled to support system design. This four-legged robot has compliant legs that can store and re-release kinetic energy. As such it is biologically-inspired by an equestrian trotting gait. The model can be used to support selection of leg length, leg spring stiffness and actuators. An objective could be to minimise power consumption for a steady trot at some nominal average forward speed. The DC power supply is augmented with an ultracapacitor which is sized to smooth battery currents and store regenerative electrical energy.

For details on the design process, see Mechatronic Running Robot Limb Design

Contents

Model

Leg LF Subsystem

Open Subsystem

Hip Actuator Subsystem

Open Subsystem

Power Supply Subsystem

Open Subsystem

Gait Phase Subsystem

Open Subsystem

Contact Forces Between Feet and Floor

Two methods are used for modeling the contact force between the foot and the floor. One is used for the X-Y plane only, the other accommodates movement in any direction. You can select the appropriate force for your test using a parameter in the leg subsystem mask.

Planar Contact Model

The planar variant of the contact force model assumes that the leg is moving in the positive global x direction and stays within the XY-plane. Simulink is used to model a spring-damper that connects the end of the leg to the floor at the exact location where it lands. This spring-damper is deactivated when the foot leaves the floor. This idealized form of a contact model is good for initial testing.

Open Subsystem

Six Degree of Freedom Contact Model

This variant of the contact force model assumes the end of the leg is a sphere and detects collision between the sphere and the surface of the floor. It models contact and friction force between the sphere and the plane. It is valid for all six degrees of freedom.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the current drawn by the motor and supplied by the battery as the robot runs.

Mechatronic Running Robot Limb Design

Mechatronic Running Robot Limb Design

This workflow example explains the steps of designing the limbs for a mechatronic running robot. The workflow is executed using a series of parameterized models so that redesigns can be executed automatically. You can explore alternative design choices using MATLAB script sm_robot_run_script_design_limb.m.

The resulting design is shown in Mechatronic Running Robot

Contents

Step 1: Gait Selection

This model implements an inverted pendulum gait model. It is assumed that the impact with the ground is lossless, and hence total energy of the system is always constant. The model can be used to explore the effect of leg stiffness, leg length, body mass and initial conditions on the trajectory. For designing a trotting quadraped robot, it can be used to pick leg stiffness given expected payload weight, leg length and desired gait frequency. This model uses SI units. An alternative is to use non-dimensionalized lengths which can give additional insights. Here the model is used to generate the ideal leg angle profile as a function of time during the stance. This is used by the sm_robot_run_04_actuator.slx model.

Model variables are as follows:

  1. [X,Y] is the position of the spring-supported mass
  2. Px is the horizontal position of the foot when in contact with the ground
  3. [U,V] are the horizontal and vertical speeds of the mass.
  4. Default parameters are:
  • Leg length L=1m
  • Mass m=25kg
  • Spring stiffness k=5315N/m.
  • Stance height (Y) = 0.85m i.e. the leg is 85% of unloaded length.

With these choices, the feet are touching the floor for half of the overall gait period. The simulation starts in mid-stance with U=2m/s.

These parameters present a design tradeoff. Too much time in the aerial phase leaves not enough time to put in locomotive torque during stance. Conversely, too much time in the stance may not leave enough time to swing the leg forward ready for the next stance phase. A parameter sweep can help identify good parameter combinations.

Open Model

The plot below shows the phases of leg motion during a single step. It indicates the amount of time the leg spends in the air and shows the leg launch and land angles. This information is used to compute the angle trajectories for leg joints.

The plots below show the effect of stance height and spring stiffness on the percentage of time in a gait period that the leg is touching the floor. A deeper crouch and a stiffer spring will lead to a higher leap and less time spent on the floor.

Step 2: Construct Trajectory of Leg Angle in Aerial Phase

This model determines the trajectory of the leg angle for a chosen target gait. A step is made up of the stance and aerial phases. Key parameters for the target gait are:

  1. The period of the body CG (T_cg)
  2. The time spent in stance (T_stance)
  3. The leg angle when the foot leaves the floor (leg_angle0)
  4. The leg rotation speed when the foot leaves the floor (leg_vel0)

Landing angle should be minus the take-off angle in order to replicate the ideal gait. This model is for a bipedal gait, so the body will rise and fall twice during one cycle of a leg (time for leg trajectory = 2*T_cg).

Open Model

The plot below shows the trajectory of the leg angle during a gait period.

Step 3: Determine Required Joint Torques

This model determines the hip torque required during the aerial phase based on the gait modeled by the Simulink inverted pendulum model.

Open Model

The plot below shows the required actuator torques at the hip and knee joints during the aerial phase.

Step 4: Design Actuator

This simplified actuator model is used for a number of purposes:

  1. To determine a suitable gearbox ratio and motor rating.
  2. Sizing the ultra capacitor for the power supply.
  3. For preliminary motor speed and shaft angle control design.
  4. A performance specification to a supplier if developing a bespoke solution.
  5. As a subsystem in the complete model of the final running robot to validate the design or different gaits, loads and terrains.

Open Model

The plot below shows the current drawn by the load and the contribution from the battery and ultracapacitor during the test.

This workflow example explains the steps of designing the limbs for a mechatronic running robot. The workflow is executed using a series of parameterized models so that redesigns can be executed automatically. You can explore alternative design choices using MATLAB script sm_robot_run_script_design_limb.m.

The resulting design is shown in Mechatronic Running Robot

Contents

Step 1: Gait Selection

This model implements an inverted pendulum gait model. It is assumed that the impact with the ground is lossless, and hence total energy of the system is always constant. The model can be used to explore the effect of leg stiffness, leg length, body mass and initial conditions on the trajectory. For designing a trotting quadraped robot, it can be used to pick leg stiffness given expected payload weight, leg length and desired gait frequency. This model uses SI units. An alternative is to use non-dimensionalized lengths which can give additional insights. Here the model is used to generate the ideal leg angle profile as a function of time during the stance. This is used by the sm_robot_run_04_actuator.slx model.

Model variables are as follows:

  1. [X,Y] is the position of the spring-supported mass
  2. Px is the horizontal position of the foot when in contact with the ground
  3. [U,V] are the horizontal and vertical speeds of the mass.
  4. Default parameters are:
  • Leg length L=1m
  • Mass m=25kg
  • Spring stiffness k=5315N/m.
  • Stance height (Y) = 0.85m i.e. the leg is 85% of unloaded length.

With these choices, the feet are touching the floor for half of the overall gait period. The simulation starts in mid-stance with U=2m/s.

These parameters present a design tradeoff. Too much time in the aerial phase leaves not enough time to put in locomotive torque during stance. Conversely, too much time in the stance may not leave enough time to swing the leg forward ready for the next stance phase. A parameter sweep can help identify good parameter combinations.

Open Model

The plot below shows the phases of leg motion during a single step. It indicates the amount of time the leg spends in the air and shows the leg launch and land angles. This information is used to compute the angle trajectories for leg joints.

The plots below show the effect of stance height and spring stiffness on the percentage of time in a gait period that the leg is touching the floor. A deeper crouch and a stiffer spring will lead to a higher leap and less time spent on the floor.

Step 2: Construct Trajectory of Leg Angle in Aerial Phase

This model determines the trajectory of the leg angle for a chosen target gait. A step is made up of the stance and aerial phases. Key parameters for the target gait are:

  1. The period of the body CG (T_cg)
  2. The time spent in stance (T_stance)
  3. The leg angle when the foot leaves the floor (leg_angle0)
  4. The leg rotation speed when the foot leaves the floor (leg_vel0)

Landing angle should be minus the take-off angle in order to replicate the ideal gait. This model is for a bipedal gait, so the body will rise and fall twice during one cycle of a leg (time for leg trajectory = 2*T_cg).

Open Model

The plot below shows the trajectory of the leg angle during a gait period.

Step 3: Determine Required Joint Torques

This model determines the hip torque required during the aerial phase based on the gait modeled by the Simulink inverted pendulum model.

Open Model

The plot below shows the required actuator torques at the hip and knee joints during the aerial phase.

Step 4: Design Actuator

This simplified actuator model is used for a number of purposes:

  1. To determine a suitable gearbox ratio and motor rating.
  2. Sizing the ultra capacitor for the power supply.
  3. For preliminary motor speed and shaft angle control design.
  4. A performance specification to a supplier if developing a bespoke solution.
  5. As a subsystem in the complete model of the final running robot to validate the design or different gaits, loads and terrains.

Open Model

The plot below shows the current drawn by the load and the contribution from the battery and ultracapacitor during the test.