modelBearingFriction
Extends from Modelica.Mechanics.Rotational.Interfaces.PartialElementaryTwoFlangesAndSupport2 (Partial model for a component with two rotational 1-dim. shaft flanges and a support used for textual modeling, i.e., for elementary models), Rotational.Interfaces.PartialFriction (Partial model of Coulomb friction elements), 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 Coulomb friction in bearings, i.e., a frictional torque acting between a flange and the housing. The positive sliding friction torque "tau" has to be defined by table "tau_pos" as function of the absolute angular velocity "w". E.g.
w | tau ---+----- 0 | 0 1 | 2 2 | 5 3 | 8
gives the following table:
tau_pos = [0, 0; 1, 2; 2, 5; 3, 8];
Outside of the table, extrapolation through the last two table entries is used. It is assumed that the negative sliding friction force has the same characteristic with negative values. Friction is modelled in the following way:
When the absolute angular velocity "w" is not zero, the friction torque is a function of w and of a constant normal force. This dependency is defined via table tau_pos and can be determined by measurements, e.g., by driving the gear with constant velocity and measuring the needed motor torque (= friction torque).
When the absolute angular velocity becomes zero, the elements connected by the friction element become stuck, i.e., the absolute angle remains constant. In this phase the friction torque is calculated from a torque balance due to the requirement, that the absolute acceleration shall be zero. The elements begin to slide when the friction torque exceeds a threshold value, called the maximum static friction torque, computed via:
maximum_static_friction = peak * sliding_friction(w=0) (peak >= 1)
This procedure is implemented in a "clean" way by state events and leads to continuous/discrete systems of equations if friction elements are dynamically coupled 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.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | useSupport (from PartialElementaryTwoFlangesAndSupport2) | false | = true, if support flange enabled, otherwise implicitly grounded |
| Real[:,2] | tau_pos | [0, 1] | Positive sliding friction characteristic [N.m] as function of w [rad/s] (w>=0) |
| Smoothness | smoothness | Smoothness.LinearSegments | Smoothness of interpolation in tau_pos table |
| Real | peak | 1 | Peak for maximum friction torque at w==0 (tau0_max = peak*tau_pos[1,2]) |
| Integer | Unknown (from PartialFriction) | 3 | Value of mode is not known |
| Integer | Free (from PartialFriction) | 2 | Element is not active |
| Integer | Forward (from PartialFriction) | 1 | w_relfric > 0 (forward sliding) |
| Integer | Stuck (from PartialFriction) | 0 | w_relfric = 0 (forward sliding, locked or backward sliding) |
| Integer | Backward (from PartialFriction) | -1 | w_relfric < 0 (backward sliding) |
| Boolean | useHeatPort (from PartialElementaryConditionalHeatPortWithoutT) | false | = true, if heatPort is enabled |
| Advanced | |||
| SI.AngularVelocity | w_small (from PartialFriction) | 1.0e10 | Relative angular velocity near to zero if jumps due to a reinit(..) of the velocity can occur (set to low value only if such impulses can occur) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Flange_a | flange_a (from PartialElementaryTwoFlangesAndSupport2) | Flange of left shaft | |
| Flange_b | flange_b (from PartialElementaryTwoFlangesAndSupport2) | Flange of right shaft | |
| Support | support (from PartialElementaryTwoFlangesAndSupport2) | Support/housing of component | |
| HeatTransfer.Interfaces.HeatPort_a | heatPort (from PartialElementaryConditionalHeatPortWithoutT) | Optional port to which dissipated losses are transported in form of heat |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| SI.AngularVelocity | w_relfric (from PartialFriction) | Relative angular velocity between frictional surfaces | |
| SI.AngularAcceleration | a_relfric (from PartialFriction) | Relative angular acceleration between frictional surfaces | |
| SI.Torque | tau0 (from PartialFriction) | Friction torque for w_relfric=0 and forward sliding | |
| SI.Torque | tau0_max (from PartialFriction) | Maximum friction torque for w_relfric=0 and locked | |
| Boolean | free (from PartialFriction) | = true, if frictional element is not active | |
| Real | sa (from PartialFriction) | Path parameter of friction characteristic tau = f(a_relfric) | |
| Boolean | startForward (from PartialFriction) | = true, if w_relfric=0 and start of forward sliding | |
| Boolean | startBackward (from PartialFriction) | = true, if w_relfric=0 and start of backward sliding | |
| Boolean | locked (from PartialFriction) | = true, if w_rel=0 and not sliding | |
| Integer | mode (from PartialFriction) | Mode of friction (-1: backward sliding, 0: stuck, 1: forward sliding, 2: inactive, 3: unknown) | |
| SI.Power | lossPower (from PartialElementaryConditionalHeatPortWithoutT) | Loss power leaving component via heatPort (> 0, if heat is flowing out of component) | |
| SI.Angle | phi | Angle between shaft flanges (flange_a, flange_b) and support | |
| SI.Torque | tau | Friction torque | |
| SI.AngularVelocity | w | Absolute angular velocity of flange_a and flange_b | |
| SI.AngularAcceleration | a | Absolute angular acceleration of flange_a and flange_b |