Modelica.Mechanics.Rotational.Interfaces

Connectors and partial models for 1D rotational mechanical components

Modelica.Mechanics.Rotational.Interfaces.Flange_a Modelica.Mechanics.Rotational.Interfaces.Flange_b Modelica.Mechanics.Rotational.Interfaces.Rigid Modelica.Mechanics.Rotational.Interfaces.Compliant Modelica.Mechanics.Rotational.Interfaces.TwoFlanges Modelica.Mechanics.Rotational.Interfaces.Bearing Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearing Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH Modelica.Mechanics.Rotational.Interfaces.AbsoluteSensor Modelica.Mechanics.Rotational.Interfaces.RelativeSensor

Information


This package contains connectors and partial models for 1D rotational mechanical components. In particular

  Flange_a                 Left flange of a component.
  Flange_b                 Right flange of a component.
  Rigid                    Rigid connection of two rotational 1D flanges
                           (used for elements with inertia).
  Compliant                Compliant connection of two rotational 1D flanges
                           (used for force laws such as a spring or a damper).
  TwoFlanges               Component with two rotational 1D flanges
  Bearing                  Component with two rotational 1D flanges, one bearing flange
                           and cardinality dependent equations
  TwoFlangesAndBearing     Component inherited from Bearing for equation-based classes
  TwoFlangesAndBearingH    Component inherited from Bearing for hierarchical components
  AbsoluteSensor           Base class to measure absolute flange variables.
  RelativeSensor           Base class to measure relative flange variables.
Main Author:
Martin Otter
Deutsches Zentrum für Luft und Raumfahrt e.V. (DLR)
Institut für Robotik und Mechatronik
Postfach 1116
D-82230 Wessling
Germany
email: Martin.Otter@dlr.de

Release Notes:


Copyright © 1999-2003, Modelica Association and DLR.

The Modelica package is free software; it can be redistributed and/or modified under the terms of the Modelica license, see the license conditions and the accompanying disclaimer in the documentation of package Modelica in file "Modelica/package.mo".

NameDescription
Flange_a 1D rotational flange (filled square icon)
Flange_b 1D rotational flange (non-filled square icon)
Rigid Base class for the rigid connection of two rotational 1D flanges
Compliant Base class for the compliant connection of two rotational 1D flanges
TwoFlanges Base class for a component with two rotational 1D flanges
Bearing Base class for interface classes with bearing connector
TwoFlangesAndBearing Base class for a equation-based component with two rotational 1D flanges and one rotational 1D bearing flange
TwoFlangesAndBearingH Base class for a hierarchically composed component with two rotational 1D flanges and one rotational bearing flange
FrictionBase Base class of Coulomb friction elements
AbsoluteSensor Base class to measure a single absolute flange variable
RelativeSensor Base class to measure a single relative variable between two flanges


Modelica.Mechanics.Rotational.Interfaces.Rigid Modelica.Mechanics.Rotational.Interfaces.Rigid

Base class for the rigid connection of two rotational 1D flanges

Modelica.Mechanics.Rotational.Interfaces.Rigid

Information


This is a 1D rotational component with two rigidly connected flanges, i.e., flange_a.phi = flange_b.phi. It is used e.g. to built up components with inertia.

Release Notes:


Modelica definition

partial model Rigid 
  "Base class for the rigid connection of two rotational 1D flanges" 
  
  SI.Angle phi 
    "Absolute rotation angle of component (= flange_a.phi = flange_b.phi)";
  
  Flange_a flange_a 
    "(left) driving flange (flange axis directed INTO cut plane)";
  Flange_b flange_b 
    "(right) driven flange (flange axis directed OUT OF cut plane)";
equation 
  flange_a.phi = phi;
  flange_b.phi = phi;
end Rigid;

Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearing Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearing

Base class for a equation-based component with two rotational 1D flanges and one rotational 1D bearing flange

Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearing

Information


This is a 1D rotational component with two flanges and an additional bearing flange. It is used e.g. to build up equation-based parts of a drive train.

Release Notes:


Modelica definition

partial model TwoFlangesAndBearing 
  "Base class for a equation-based component with two rotational 1D flanges and one rotational 1D bearing flange" 
  
  extends Bearing;
  
  SI.Angle phi_a;
  SI.Angle phi_b;
  
equation 
  if cardinality(bearing) == 0 then
    bearing.phi = 0;
  else
    bearing.tau = tau_support;
  end if;
  
  0 = flange_a.tau + flange_b.tau + tau_support;
  
  phi_a = flange_a.phi - bearing.phi;
  phi_b = flange_b.phi - bearing.phi;
end TwoFlangesAndBearing;

Modelica.Mechanics.Rotational.Interfaces.Flange_a Modelica.Mechanics.Rotational.Interfaces.Flange_a

1D rotational flange (filled square icon)

Modelica.Mechanics.Rotational.Interfaces.Flange_a

Information


This is a connector for 1D rotational mechanical systems and models a mechanical flange. The following variables are defined in this connector:

   phi: Absolute rotation angle of the flange in [rad].
   tau: Cut-torque in the flange in [Nm].

There is a second connector for flanges: Flange_b. The connectors Flange_a and Flange_b are completely identical. There is only a difference in the icons, in order to easier identify a flange variable in a diagram. For a discussion on the actual direction of the cut-torque tau and of the rotation angle, see the information text of package Rotational (section 4. Sign conventions).

If needed, the absolute angular velocity w and the absolute angular acceleration a of the flange can be determined by differentiation of the flange angle phi:

     w = der(phi);    a = der(w)

Release Notes:


Modelica definition

connector Flange_a "1D rotational flange (filled square icon)" 
  SI.Angle phi "Absolute rotation angle of flange";
  flow SI.Torque tau "Cut torque in the flange";
end Flange_a;

Modelica.Mechanics.Rotational.Interfaces.Flange_b Modelica.Mechanics.Rotational.Interfaces.Flange_b

1D rotational flange (non-filled square icon)

Modelica.Mechanics.Rotational.Interfaces.Flange_b

Information


This is a connector for 1D rotational mechanical systems and models a mechanical flange. The following variables are defined in this connector:

   phi: Absolute rotation angle of the flange in [rad].
   tau: Cut-torque in the flange in [Nm].

There is a second connector for flanges: Flange_a. The connectors Flange_a and Flange_b are completely identical. There is only a difference in the icons, in order to easier identify a flange variable in a diagram. For a discussion on the actual direction of the cut-torque tau and of the rotation angle, see the information text of package Rotational (section 4. Sign conventions).

If needed, the absolute angular velocity w and the absolute angular acceleration a of the flange can be determined by differentiation of the flange angle phi:

     w = der(phi);    a = der(w)

Release Notes:


Modelica definition

connector Flange_b "1D rotational flange (non-filled square icon)" 
  SI.Angle phi "Absolute rotation angle of flange";
  flow SI.Torque tau "Cut torque in the flange";
end Flange_b;

Modelica.Mechanics.Rotational.Interfaces.Compliant Modelica.Mechanics.Rotational.Interfaces.Compliant

Base class for the compliant connection of two rotational 1D flanges

Modelica.Mechanics.Rotational.Interfaces.Compliant

Information


This is a 1D rotational component with a compliant connection of two rotational 1D flanges where inertial effects between the two flanges are neglected. The basic assumption is that the cut-torques of the two flanges sum-up to zero, i.e., they have the same absolute value but opposite sign: flange_a.tau + flange_b.tau = 0. This base class is used to built up force elements such as springs, dampers, friction.

Release Notes:


Modelica definition

partial model Compliant 
  "Base class for the compliant connection of two rotational 1D flanges" 
  
  SI.Angle phi_rel(
                   start=0) 
    "Relative rotation angle (= flange_b.phi - flange_a.phi)";
  SI.Torque tau "Torque between flanges (= flange_b.tau)";
  Flange_a flange_a 
    "(left) driving flange (flange axis directed INTO cut plane)";
  Flange_b flange_b 
    "(right) driven flange (flange axis directed OUT OF cut plane)";
equation 
  phi_rel = flange_b.phi - flange_a.phi;
  flange_b.tau = tau;
  flange_a.tau = -tau;
end Compliant;

Modelica.Mechanics.Rotational.Interfaces.FrictionBase

Base class of Coulomb friction elements

Parameters

NameDefaultDescription
w_small1Relative angular velocity near to zero (see model info text) [rad/s]

Modelica definition

partial model FrictionBase "Base class of Coulomb friction elements" 
  parameter SI.AngularVelocity w_small =      1 
    "Relative angular velocity near to zero (see model info text)";
  
    // Equations to define the following variables have to be defined in subclasses
  SI.AngularVelocity w_relfric 
    "Relative angular velocity between frictional surfaces";
  SI.AngularAcceleration a_relfric 
    "Relative angular acceleration between frictional surfaces";
  SI.Torque tau 
    "Friction torque (positive, if directed in opposite direction of w_rel)";
  SI.Torque tau0 "Friction torque for w=0 and forward sliding";
  SI.Torque tau0_max "Maximum friction torque for w=0 and locked";
  Boolean free "true, if frictional element is not active";
  
  // Equations to define the following variables are given in this class
  Real sa "Path parameter of friction characteristic tau = f(a_relfric)";
  
  Boolean startForward(start=false, fixed=true) 
    "true, if w_rel=0 and start of forward sliding or w_rel > w_small";
  Boolean startBackward(start=false, fixed=true) 
    "true, if w_rel=0 and start of backward sliding or w_rel < -w_small";
  Boolean locked "true, if w_rel=0 and not sliding";
  
  constant Integer Unknown=3 "Value of mode is not known";
  constant Integer Free=2 "Element is not active";
  constant Integer Forward=1 "w_rel > 0 (forward sliding)";
  constant Integer Stuck=0 
    "w_rel = 0 (forward sliding, locked or backward sliding)";
  constant Integer Backward=-1 "w_rel < 0 (backward sliding)";
  Integer mode(
    final min=Backward,
    final max=Unknown,
    start=Unknown,
    fixed=true);
equation 
  /* Friction characteristic
      (locked is introduced to help the Modelica translator determining
      the different structural configurations, if for each configuration
      special code shall be generated) */
  
  startForward = pre(mode) == Stuck and (sa > tau0_max or pre(startForward)
     and sa > tau0) or pre(mode) == Backward and w_relfric > w_small or 
    initial() and (w_relfric > 0);
  startBackward = pre(mode) == Stuck and (sa < -tau0_max or pre(
    startBackward) and sa < -tau0) or pre(mode) == Forward and w_relfric <
    -w_small or initial() and (w_relfric < 0);
  locked = not free and not (pre(mode) == Forward or startForward or pre(
    mode) == Backward or startBackward);
  
  a_relfric = if locked then 0 else if free then sa else if startForward then 
          sa - tau0 else if startBackward then sa + tau0 else if pre(mode)
     == Forward then sa - tau0 else sa + tau0;
  
  /* Friction torque has to be defined in a subclass. Example for a clutch:
       tau = if locked then sa else if free then 0 else cgeo*fn*
            (if startForward then   Math.tempInterpol1( w_relfric, mue_pos, 2) else
             if startBackward then -Math.tempInterpol1(-w_relfric, mue_pos, 2) else
             if pre(mode) == Forward then  Math.tempInterpol1( w_relfric, mue_pos, 2)
                                     else -Math.tempInterpol1(-w_relfric, mue_pos, 2)); */
  
  // finite state machine to determine configuration
  mode = if free then Free else (if (pre(mode) == Forward or pre(mode) ==
    Free or startForward) and w_relfric > 0 then Forward else if (pre(mode)
     == Backward or pre(mode) == Free or startBackward) and w_relfric < 0 then 
          Backward else Stuck);
end FrictionBase;

Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH

Base class for a hierarchically composed component with two rotational 1D flanges and one rotational bearing flange

Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH

Information


This is a 1D rotational component with two flanges and an additional bearing flange. It is used e.g. to build up parts of a drive train consisting of several base components.

Release Notes:


Modelica definition

partial model TwoFlangesAndBearingH 
  "Base class for a hierarchically composed component with two rotational 1D flanges and one rotational bearing flange" 
  
  extends Bearing;
  
  Adapter adapter(
                  bearingConnected=cardinality(bearing) > 1);
protected 
  encapsulated model Adapter 
    import Modelica.Mechanics.Rotational.Interfaces.TwoFlanges;
    extends TwoFlanges;
    parameter Boolean bearingConnected;
    
  equation 
    flange_a.phi = flange_b.phi;
    
    if bearingConnected then
      0 = flange_a.tau + flange_b.tau;
    else
      0 = flange_a.phi;
    end if;
  end Adapter;
equation 
  tau_support = -adapter.flange_b.tau;
  connect(adapter.flange_a, bearing);
end TwoFlangesAndBearingH;

Modelica.Mechanics.Rotational.Interfaces.TwoFlanges Modelica.Mechanics.Rotational.Interfaces.TwoFlanges

Base class for a component with two rotational 1D flanges

Modelica.Mechanics.Rotational.Interfaces.TwoFlanges

Information


This is a 1D rotational component with two flanges. It is used e.g. to build up parts of a drive train consisting of several base components. There are specialized versions of this base class for rigidly connected flanges (Interfaces.Rigid) and for a compliant connection of flanges (Interfaces.Compliant).

Release Notes:


Modelica definition

partial model TwoFlanges 
  "Base class for a component with two rotational 1D flanges" 
  Flange_a flange_a;
  Flange_b flange_b;
end TwoFlanges;

Modelica.Mechanics.Rotational.Interfaces.Bearing Modelica.Mechanics.Rotational.Interfaces.Bearing

Base class for interface classes with bearing connector

Modelica.Mechanics.Rotational.Interfaces.Bearing

Information


This is a 1D rotational component with two flanges and an additional bearing flange. It is a superclass for the two components TwoFlangesAndBearing and TwoFlangesAndBearingH.

Release Notes:


Modelica definition

partial model Bearing 
  "Base class for interface classes with bearing connector" 
  extends TwoFlanges;
  
  SI.Torque tau_support;
  
  Flange_a bearing;
  
end Bearing;

Modelica.Mechanics.Rotational.Interfaces.AbsoluteSensor Modelica.Mechanics.Rotational.Interfaces.AbsoluteSensor

Base class to measure a single absolute flange variable

Modelica.Mechanics.Rotational.Interfaces.AbsoluteSensor

Information


This is the base class of a 1D rotational component with one flange and one output signal in order to measure an absolute kinematic quantity in the flange and to provide the measured signal as output signal for further processing with the blocks of package Modelica.Blocks.

Release Notes:


Modelica definition

partial model AbsoluteSensor 
  "Base class to measure a single absolute flange variable" 
  
  extends Modelica.Icons.RotationalSensor;
  Flange_a flange_a 
    "(left) flange to be measured (flange axis directed INTO cut plane)";
  Modelica.Blocks.Interfaces.OutPort outPort(
                                             final n=1);
end AbsoluteSensor;

Modelica.Mechanics.Rotational.Interfaces.RelativeSensor Modelica.Mechanics.Rotational.Interfaces.RelativeSensor

Base class to measure a single relative variable between two flanges

Modelica.Mechanics.Rotational.Interfaces.RelativeSensor

Information


This is a base class for 1D rotational components with two rigidly connected flanges and one output signal in order to measure relative kinematic quantities between the two flanges or the cut-torque in the flange and to provide the measured signal as output signal for further processing with the blocks of package Modelica.Blocks.

Release Notes:


Modelica definition

partial model RelativeSensor 
  "Base class to measure a single relative variable between two flanges" 
  
  extends Modelica.Icons.RotationalSensor;
  
  Flange_a flange_a 
    "(left) driving flange (flange axis directed INTO cut plane)";
  Flange_b flange_b 
    "(right) driven flange (flange axis directed OUT OF cut plane)";
  Modelica.Blocks.Interfaces.OutPort outPort(
                                             final n=1);
end RelativeSensor;

Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH.Adapter Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH.Adapter

Modelica.Mechanics.Rotational.Interfaces.TwoFlangesAndBearingH.Adapter

Modelica definition

encapsulated model Adapter 
  import Modelica.Mechanics.Rotational.Interfaces.TwoFlanges;
  extends TwoFlanges;
  parameter Boolean bearingConnected;
  
equation 
  flange_a.phi = flange_b.phi;
  
  if bearingConnected then
    0 = flange_a.tau + flange_b.tau;
  else
    0 = flange_a.phi;
  end if;
end Adapter;

HTML-documentation generated by Dymola Wed Jun 30 17:44:03 2004 .