modelMassWithStopAndFriction
Extends from PartialFrictionWithStop (Base model of Coulomb friction elements with stop), Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT (Partial model to include a conditional HeatPort in order to dissipate losses, used for textual modeling, i.e., for elementary models).
Information
This element describes the Stribeck friction characteristics of a sliding mass, i. e. the frictional force acting between the sliding mass and the support. Included is a hard stop for the position.
The surface is fixed and there is friction between sliding mass and surface. The frictional force f is given for positive velocity v by:
f = F_Coulomb + F_prop * v + F_Stribeck * exp (-fexp * v)
The distance between the left and the right connector is given by parameter L. The position of the center of gravity, coordinate s, is in the middle between the two flanges.
There are hard stops at smax and smin, i. e. if
flange_a.s >= smin and flange_b.s <= xmax the sliding mass can move freely.
When the absolute velocity becomes zero, the sliding mass becomes stuck, i.e., the absolute position remains constant. In this phase the friction force is calculated from a force balance due to the requirement that the absolute acceleration shall be zero. The elements begin to slide when the friction force exceeds a threshold value, called the maximum static friction force, computed via:
maximum_static_friction = F_Coulomb + F_Stribeck
This requires the states Stop.s and Stop.v . If these states are eliminated during the index reduction the model will not work. To avoid this any inertias should be connected via springs to the Stop element, other sliding masses, dampers or hydraulic chambers must be avoided.
For more details of the used friction model see the following reference:
- Beater P. (1999):
- Entwurf hydraulischer Maschinen (in German), Springer Verlag Berlin Heidelberg New York, DOI 10.1007/978-3-642-58395-7.
The friction model is implemented in a "clean" way by state events and leads to continuous/discrete systems of equations which have to be solved by appropriate numerical methods. The method is described in (see also a short sketch in UsersGuide.ModelingOfFriction):
- Otter M., Elmqvist H., and Mattsson S.E. (1999):
- Hybrid Modeling in Modelica based on the Synchronous Data Flow Principle. CACSD'99, Aug. 22.-26, Hawaii.
More precise friction models take into account the elasticity of the material when the two elements are "stuck", as well as other effects, like hysteresis. This has the advantage that the friction element can be completely described by a differential equation without events. The drawback is that the system becomes stiff (about 10-20 times slower simulation) and that more material constants have to be supplied which requires more sophisticated identification. For more details, see the following references, especially (Armstrong and Canudas de Wit 1996):
- Armstrong B. (1991):
- Control of Machines with Friction. Kluwer Academic Press, Boston MA.
- Armstrong B., and Canudas de Wit C. (1996):
- Friction Modeling and Compensation. The Control Handbook, edited by W.S.Levine, CRC Press, pp. 1369-1382.
- Canudas de Wit C., Olsson H., Åström K.J., and Lischinsky P. (1995):
- A new model for control of systems with friction. IEEE Transactions on Automatic Control, Vol. 40, No. 3, pp. 419-425.
Optional heatPort
The dissipated energy is transported in form of heat to the optional heatPort connector that can be enabled via parameter "useHeatPort". Independently whether the heatPort is or is not enabled, the dissipated power is defined with variable "lossPower". If contact occurs at the hard stops, the lossPower is not correctly modelled at this time instant, because the hard stop would introduce a Dirac impulse in the lossPower due to the discontinuously changing kinetic energy of the mass (lossPower is the derivative of the kinetic energy at the time instant of the impact).
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Position | smax (from PartialFrictionWithStop) | Right stop for (right end of) sliding mass | |
| Modelica.Units.SI.Position | smin (from PartialFrictionWithStop) | Left stop for (left end of) sliding mass | |
| SI.Length | L (from PartialRigid) | Length of component, from left flange to right flange (= flange_b.s - flange_a.s) | |
| Integer | Unknown (from PartialFrictionWithStop) | 3 | Value of mode is not known |
| Integer | Free (from PartialFrictionWithStop) | 2 | Element is not active |
| Integer | Forward (from PartialFrictionWithStop) | 1 | v_rel > 0 (forward sliding) |
| Integer | Stuck (from PartialFrictionWithStop) | 0 | v_rel = 0 (forward sliding, locked or backward sliding) |
| Integer | Backward (from PartialFrictionWithStop) | -1 | v_rel < 0 (backward sliding) |
| SI.Mass | m | Mass | |
| Real | F_prop | Velocity dependent friction | |
| SI.Force | F_Coulomb | Constant friction: Coulomb force | |
| SI.Force | F_Stribeck | Stribeck effect | |
| Real | fexp | Exponential decay | |
| Boolean | useHeatPort (from PartialElementaryConditionalHeatPortWithoutT) | false | = true, if heatPort is enabled |
| Advanced | |||
| Modelica.Units.SI.Velocity | v_small (from PartialFrictionWithStop) | 1e-3 | Relative velocity near to zero (see model info text) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Flange_a | flange_a (from PartialTwoFlanges) | (left) driving flange (flange axis directed into cut plane, e. g. from left to right) | |
| Flange_b | flange_b (from PartialTwoFlanges) | (right) driven flange (flange axis directed out of cut plane) | |
| HeatTransfer.Interfaces.HeatPort_a | heatPort (from PartialElementaryConditionalHeatPortWithoutT) | Optional port to which dissipated losses are transported in form of heat |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Velocity | v_relfric (from PartialFrictionWithStop) | Relative velocity between frictional surfaces | |
| Modelica.Units.SI.Acceleration | a_relfric (from PartialFrictionWithStop) | Relative acceleration between frictional surfaces | |
| Modelica.Units.SI.Force | f (from PartialFrictionWithStop) | Friction force (positive, if directed in opposite direction of v_rel) | |
| Modelica.Units.SI.Force | f0 (from PartialFrictionWithStop) | Friction force for v=0 and forward sliding | |
| Modelica.Units.SI.Force | f0_max (from PartialFrictionWithStop) | Maximum friction force for v=0 and locked | |
| Boolean | free (from PartialFrictionWithStop) | = true, if frictional element is not active | |
| Real | sa (from PartialFrictionWithStop) | Path parameter of friction characteristic f = f(a_relfric) | |
| Boolean | startForward (from PartialFrictionWithStop) | = true, if v_rel=0 and start of forward sliding or v_rel > v_small | |
| Boolean | startBackward (from PartialFrictionWithStop) | = true, if v_rel=0 and start of backward sliding or v_rel < -v_small | |
| Boolean | locked (from PartialFrictionWithStop) | = true, if v_rel=0 and not sliding | |
| SI.Position | s (from PartialRigid) | Absolute position of center of component (s = flange_a.s + L/2 = flange_b.s - L/2) | |
| Integer | mode (from PartialFrictionWithStop) | Mode of friction (-1: backward sliding, 0: stuck, 1: forward sliding, 2: inactive, 3: unknown) | |
| SI.Velocity | v | Absolute velocity of flange_a and flange_b | |
| SI.Acceleration | a | Absolute acceleration of flange_a and flange_b | |
| SI.Power | lossPower (from PartialElementaryConditionalHeatPortWithoutT) | Loss power leaving component via heatPort (> 0, if heat is flowing out of component) | |
| Integer | stopped | Mode of stop (-1: hard stop at flange_a, 0: no stop, +1: hard stop at flange_b |
Contents
| Name | Description |
|---|---|
| PartialFrictionWithStop | Base model of Coulomb friction elements with stop |
Revisions
Release Notes
- First Version from December 7, 1999 by P. Beater (based on Rotational.BearingFriction)
- July 14, 2001 by P. Beater, assert on initialization added, diagram modified
- October 11, 2001, by Hans Olsson, Dassault Systèmes AB, modified assert to handle start at stops, modified event logic such if you have friction parameters equal to zero you do not get events between the stops.
- June 10, 2002 by P. Beater, StateSelect.always for variables s and v (instead of fixed=true).