About Joints

This page discusses:

Supported Mechanical Joints

The supported mechanical joints are those corresponding to classes in the CATIAMultiBody library. User-defined joints are also supported, if they are equivalent to the standard CATIA joints. Joints that have no corresponding classes are ignored when translating the mechanism model.

Handling of Mechanism Commands and Attached Motors

The commands of the mechanism are the driven DOF (degrees of freedom) of the joints of the mechanism. In the generated Modelica representation, the joints with driven DOF are converted into joints with visible flanges.

For each command of the mechanism, a corresponding flange connector is created in the generated model. That flange connector is internally connected to the flange of the joint. These connectors are intended to be driven by force or torque inputs. To drive a connector by position, you must, depending on the type of joint, specify the rotationControl or translationControl parameter of the corresponding joint to By position. (The default value is By force.) In the generated model, a small ruler is present on the icon of the joint if it is driven by position.

In the diagram and icon layer, the flange connectors corresponding to mechanism commands are located at the bottom of the diagram layer and icon layer. They are equally distributed along the width of the model.

For joints that are not controlled at all, that is, they are not connected to any command in the mechanism, the rotationControl, or translationControl parameter (depending on type of joint) is specified to None. This means that no corresponding flange connector is created in the generated model.

If mechanical motors are attached to commands, these motors can optionally be included in the generated Modelica code. If you select to include mechanical motors, motors instead of simple connectors are instantiated from the CATIAMultiBody library in the generated code to implement such motors in Modelica. These motors use the same equations as the motors in the Physical mechanism.

Note: The Max Force specification that can be found in the Motor definition is not taken into account when generating the Modelica code.

Driven Point-Curve Joints

A generated Point-Curve joint by default contains a translational flange that you can use to drive the joint.

To drive the Point-Curve joint, you can use any kind of Modelica translational source:

  • Modelica.Mechanics.Translational.Sources.Position
  • Modelica.Mechanics.Translational.Sources.Speed
  • Modelica.Mechanics.Translational.Sources.Force

To use the position source, you must specify the translationControl parameter of the corresponding Point-Curve joint to By position. In the generated model, a small ruler is present on the icon of the joint if it is driven by position.

To avoid conflicts with the initial position of the Point-Curve, you must:

  • Set the parameter fixedStartValues to false.
  • Make sure that the initial value of the input for the translational source matches the initial value of the Point-Curve joint. The initial value can be retrieved from the physical mechanism or from the parameter s_lenght_start of the generated Point-Curve joint.

Note: If the control of the Point-Curve joint is discontinuous or very stiff, the simulation might slow down significantly.

Limiters on Joints

For revolute, prismatic, and cylindrical joints you can select how the limiters for these joints are handled when generating the Modelica model. You can also fine-tune the kind of limiters you want ("limiterType") and the limits to apply.

When translating the model, you can select between three alternatives how to handle the limiters:

  • Warning: When the joint reaches the limit value, a warning appears and the simulation continues.
  • Error: When the joint reaches the limit value, an error appears and the simulation stops.
  • Limiter: A Modelica limiter is inserted between the flanges of the Modelica joint, limiting the joint´s movements between the defined limits.
Notes:
  • The values for the minimum and maximum limits are taken from the physical mechanism, when possible. If no limit is defined, the behavior of the joint is not impacted.
  • If you want to redeclare the limiter, use any of the following depending on which limiter you redeclare:
    • CATIAMultiBody.Interfaces.PartialRotationalLimiter
    • CATIAMultiBody.Interfaces.PartialPrismaticLimiter

To fine-tune the kind of limiters you want ("limiterType") and the limits to apply, the revolute, prismatic, and cylindrical Modelica joints you can use, in the parameter dialog, the tab Limiters that contain a number of parameters to do this.