OneWayClutch
Parallel connection of freewheel and clutch
Library
Mechanics/Rotational/Components
Description
This component models a one-way clutch, i.e., a component with two flanges where friction is present between the two flanges and these flanges are pressed together via a normal force. These flanges may be sliding with respect to each other.
A one-way-clutch is an element where a clutch is connected in parallel to a free wheel. This special element is provided, because such a parallel connection introduces an ambiguity into the model (the constraint torques are not uniquely defined when both elements are stuck) and this element resolves it by introducing one constraint torque only instead of two constraints.
Note, initial values have to be chosen for the model such that the relative speed of the one-way-clutch ≥ 0. Otherwise, the configuration is physically not possible and an error occurs.
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.
The friction in the clutch is modeled in the following way. When the relative angular velocity is positive, the friction torque is a function of the velocity dependent friction coefficient mue(w_rel), 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_rel) * fn
Typical values of coefficients of friction:
dry operation : mue = 0.2 .. 0.4 operating in oil: mue = 0.05 .. 0.1
The geometry constant is calculated - under the assumption of a uniform rate of wear at the friction surfaces - in the following way:
cgeo = N*(r0 + ri)/2
where ri is the inner radius, ro is the outer radius and N is the number of friction interfaces,
The positive part of the friction characteristic mue(w_rel), w_rel >= 0, is defined via table mue_pos (first column = w_rel, second column = mue). Currently, only linear interpolation in the table is supported.
When the relative angular velocity w_rel becomes zero, the elements connected by the friction element become stuck, i.e., the relative angle remains constant. In this phase the friction torque is calculated from a torque balance due to the requirement that the relative 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_rel=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.
See also the discussion State Selection in the User's Guide of the Rotational library.
Parameters
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
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_useHeatPort | useHeatPort | =true, if heatPort is enabled | Number | 0 |
mo_eps0 | eps0 | Relative hysteresis epsilon | Scalar | |
mo_peak2 | peak2 | Scalar | ||
mo_unitAngularAcceleration | unitAngularAcceleration | Scalar | ||
mo_unitTorque | unitTorque | Scalar |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_phi_nominal | phi_nominal | Nominal value of phi_rel (used for scaling) | Scalar | |
mo_stateSelect | stateSelect | Priority to use phi_rel and w_rel as states | Structure | |
mo_stateSelect/choice1 | StateSelect.never | Number | 0 | |
mo_stateSelect/choice2 | StateSelect.avoid | Number | 0 | |
mo_stateSelect/choice3 | StateSelect.default | Number | 0 | |
mo_stateSelect/choice4 | StateSelect.prefer | Number | 0 | |
mo_stateSelect/choice5 | StateSelect.always | Number | 0 | |
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 |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_phi_rel | phi_rel | phi_rel | Structure | |
mo_phi_rel/fixed | fixed | Cell of scalars | true | |
mo_phi_rel/start | start | Cell of scalars | ||
mo_w_rel | w_rel | w_rel | Structure | |
mo_w_rel/fixed | fixed | Cell of scalars | true | |
mo_w_rel/start | start | Cell of scalars | ||
mo_a_rel | a_rel | a_rel | Structure | |
mo_a_rel/fixed | fixed | Cell of scalars | true | |
mo_a_rel/start | start | Cell of scalars | ||
mo_tau | tau | tau | Structure | |
mo_tau/fixed | fixed | Cell of scalars | true | |
mo_tau/start | start | Cell of scalars | ||
mo_lossPower | lossPower | lossPower | Structure | |
mo_lossPower/fixed | fixed | Cell of scalars | true | |
mo_lossPower/start | start | Cell of scalars | ||
mo_u | u | u | Structure | |
mo_u/fixed | fixed | Cell of scalars | true | |
mo_u/start | start | Cell of scalars | ||
mo_fn | fn | fn | Structure | |
mo_fn/fixed | fixed | Cell of scalars | true | |
mo_fn/start | start | Cell of scalars | ||
mo_startForward | startForward | startForward | Structure | |
mo_startForward/fixed | fixed | Cell of scalars | true | |
mo_startForward/start | start | Cell of scalars | ||
mo_locked | locked | locked | Structure | |
mo_locked/fixed | fixed | Cell of scalars | true | |
mo_locked/start | start | Cell of scalars | ||
mo_stuck | stuck | stuck | Structure | |
mo_stuck/fixed | fixed | Cell of scalars | true | |
mo_stuck/start | start | Cell of scalars | ||
mo_f_normalized | f_normalized | f_normalized | Structure | |
mo_f_normalized/fixed | fixed | Cell of scalars | true | |
mo_f_normalized/start | start | Cell of scalars |
Ports
Name | Type | Description | IO Type | Number |
---|---|---|---|---|
flange_a | implicit | Left flange of compliant 1-dim. rotational component | input | 1 |
flange_b | implicit | Right flange of compliant 1-dim. rotational component | output | 1 |
f_normalized | implicit | Normalized force signal 0..1 (normal force = fn_max*f_normalized; clutch is engaged if > 0) | input | 2 |
Port 4 | implicit | Optional port to which dissipated losses are transported in form of heat | input | mo_useHeatPort |