Brake

Brake based on Coulomb friction

    Brake

Library

Modelica/Mechanics/Rotational/Components

Description

This component models a brake, i.e., a component where a frictional torque is acting between the housing and a flange and a controlled normal force presses the flange to the housing in order to increase friction. The normal force fn has to be provided as input signal f_normalized in a normalized form (0 ≤ f_normalized ≤ 1), fn = fn_max*f_normalized, where fn_max has to be provided as parameter. Friction in the brake is modelled in the following way:

When the absolute angular velocity "w" is not zero, the friction torque is a function of the velocity dependent friction coefficient mue(w) , of the normal force "fn", and of a geometry constant "cgeo" which takes into account the geometry of the device and the assumptions on the friction distributions:

        frictional_torque = cgeo * mue(w) * fn

Typical values of coefficients of friction:

      dry operation   :  mue = 0.2 .. 0.4
      operating in oil:  mue = 0.05 .. 0.1

When plates are pressed together, where ri is the inner radius, ro is the outer radius and N is the number of friction interfaces, the geometry constant is calculated in the following way under the assumption of a uniform rate of wear at the interfaces:

         cgeo = N*(r0 + ri)/2

The positive part of the friction characteristic mue(w), w >= 0, is defined via table mue_pos (first column = w, second column = mue). Currently, only linear interpolation in the table is supported.

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:

       frictional_torque = peak * cgeo * mue(w=0) * fn   (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. 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.

See also the discussion State Selection in the User's Guide of the Rotational library.

Parameters

Brake_0

NameLabelDescriptionData TypeValid Values

mo_useSupport

useSupport

= true, if support flange enabled, otherwise implicitly grounded

Number

0
1

mo_mue_pos

mue_pos

[w,mue] positive sliding friction coefficient (w_rel>=0)

Matrix of size Mx2

mo_peak

peak

Peak for maximum value of mue at w==0 (mue0_max = peak*mue_pos[1,2])

Scalar

mo_cgeo

cgeo

Geometry constant containing friction distribution assumption

Scalar

mo_fn_max

fn_max

Maximum normal force

Scalar

mo_Unknown

Unknown

Value of mode is not known

Scalar

mo_Free

Free

Element is not active

Scalar

mo_Forward

Forward

w_relfric > 0 (forward sliding)

Scalar

mo_Stuck

Stuck

w_relfric = 0 (forward sliding, locked or backward sliding)

Scalar

mo_Backward

Backward

w_relfric < 0 (backward sliding)

Scalar

mo_unitAngularAcceleration

unitAngularAcceleration

Scalar

mo_unitTorque

unitTorque

Scalar

mo_useHeatPort

useHeatPort

=true, if heatPort is enabled

Number

0
1

Brake_1

NameLabelDescriptionData TypeValid Values

mo_w_small

w_small

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)

Scalar

mo_K_locked

K_locked

Gain driving the relative motion between the friction elements to 0 when locked. This parameter should only be non-zero when using the model with fixed-step integration

Scalar

Brake_2

NameLabelDescriptionData TypeValid Values

mo_w_relfric

w_relfric

w_relfric

Structure

mo_w_relfric/fixed

fixed

Cell of scalars

true
false

mo_w_relfric/start

start

Cell of scalars

mo_a_relfric

a_relfric

a_relfric

Structure

mo_a_relfric/fixed

fixed

Cell of scalars

true
false

mo_a_relfric/start

start

Cell of scalars

mo_tau0

tau0

tau0

Structure

mo_tau0/fixed

fixed

Cell of scalars

true
false

mo_tau0/start

start

Cell of scalars

mo_tau0_max

tau0_max

tau0_max

Structure

mo_tau0_max/fixed

fixed

Cell of scalars

true
false

mo_tau0_max/start

start

Cell of scalars

mo_free

free

free

Structure

mo_free/fixed

fixed

Cell of scalars

true
false

mo_free/start

start

Cell of scalars

mo_sa

sa

sa

Structure

mo_sa/fixed

fixed

Cell of scalars

true
false

mo_sa/start

start

Cell of scalars

mo_startForward

startForward

startForward

Structure

mo_startForward/fixed

fixed

Cell of scalars

true
false

mo_startForward/start

start

Cell of scalars

mo_startBackward

startBackward

startBackward

Structure

mo_startBackward/fixed

fixed

Cell of scalars

true
false

mo_startBackward/start

start

Cell of scalars

mo_locked

locked

locked

Structure

mo_locked/fixed

fixed

Cell of scalars

true
false

mo_locked/start

start

Cell of scalars

mo_mode

mode

mode

Structure

mo_mode/fixed

fixed

Cell of scalars

true
false

mo_mode/start

start

Cell of scalars

mo_lossPower

lossPower

lossPower

Structure

mo_lossPower/fixed

fixed

Cell of scalars

true
false

mo_lossPower/start

start

Cell of scalars

mo_phi

phi

phi

Structure

mo_phi/fixed

fixed

Cell of scalars

true
false

mo_phi/start

start

Cell of scalars

mo_tau

tau

tau

Structure

mo_tau/fixed

fixed

Cell of scalars

true
false

mo_tau/start

start

Cell of scalars

mo_w

w

w

Structure

mo_w/fixed

fixed

Cell of scalars

true
false

mo_w/start

start

Cell of scalars

mo_a

a

a

Structure

mo_a/fixed

fixed

Cell of scalars

true
false

mo_a/start

start

Cell of scalars

mo_mue0

mue0

mue0

Structure

mo_mue0/fixed

fixed

Cell of scalars

true
false

mo_mue0/start

start

Cell of scalars

mo_fn

fn

fn

Structure

mo_fn/fixed

fixed

Cell of scalars

true
false

mo_fn/start

start

Cell of scalars

mo_f_normalized

f_normalized

f_normalized

Structure

mo_f_normalized/fixed

fixed

Cell of scalars

true
false

mo_f_normalized/start

start

Cell of scalars

Ports

NameTypeDescriptionIO TypeNumber

flange_a

implicit

Flange of left shaft

input

1

flange_b

implicit

Flange of right shaft

output

1

f_normalized

implicit

Normalized force signal 0..1 (normal force = fn_max*f_normalized; brake is active if > 0)

input

2

Port 4

implicit

Support/housing of component

input

mo_useSupport

Port 5

implicit

Optional port to which dissipated losses are transported in form of heat

input

mo_useHeatPort