LossyGear
Gear with mesh efficiency and bearing friction (stuck/rolling possible)
Library
Modelica/Mechanics/Rotational/Components
Description
This component models the gear ratio and the losses of a standard gear box in a reliable way including the stuck phases that may occur at zero speed. The gear boxes that can be handled are fixed in the ground or on a moving support, have one input and one output shaft, and are essentially described by the equations:
flange_a.phi = i*flange_b.phi; -(flange_b.tau - tau_bf_b) = i*eta_mf*(flange_a.tau - tau_bf_a); // or -flange_b.tau = i*eta_mf*(flange_a.tau - tau_bf_a - tau_bf_b/(i*eta_mf));
where
- i is the constant gear ratio,
- eta_mf = eta_mf(w_a) is the mesh efficiency due to the friction between the teeth of the gear wheels,
- tau_bf_a = tau_bf_a(w_a) is the bearing friction torque on the flange_a side,
- tau_bf_b = tau_bf_b(w_a) is the bearing friction torque on the flange_b side, and
- w_a = der(flange_a.phi) is the speed of flange_a
The loss terms "eta_mf", "tau_bf_a" and "tau_bf_b" are functions of the absolute value of the input shaft speed w_a and of the energy flow direction. They are defined by parameter lossTable[:,5] where the columns of this table have the following meaning:
|w_a| | eta_mf1 | eta_mf2 | |tau_bf1| | |tau_bf2| |
... | ... | ... | ... | ... |
... | ... | ... | ... | ... |
with
|w_a| | Absolute value of angular velocity of input shaft flange_a |
eta_mf1 | Mesh efficiency in case that flange_a is driving |
eta_mf2 | Mesh efficiency in case that flange_b is driving |
|tau_bf1| | Absolute resultant bearing friction torque with respect to flange_a
in case that flange_a is driving (= |tau_bf_a*eta_mf1 + tau_bf_b/i|) |
|tau_bf2| | Absolute resultant bearing friction torque with respect to flange_a
in case that flange_b is driving (= |tau_bf_a/eta_mf2 + tau_bf_b/i|) |
With these variables, the mesh efficiency and the bearing friction are formally defined as:
if (flange_a.tau - tau_bf_a)*w_a > 0 or (flange_a.tau - tau_bf_a) == 0 and w_a > 0 then eta_mf := eta_mf1 tau_bf := tau_bf1 elseif (flange_a.tau - tau_bf_a)*w_a < 0 or (flange_a.tau - tau_bf_a) == 0 and w_a < 0 then eta_mf := 1/eta_mf2 tau_bf := tau_bf2 else // w_a == 0 eta_mf and tau_bf are computed such that der(w_a) = 0 end if; -flange_b.tau = i*(eta_mf*flange_a.tau - tau_bf);
Note, that the losses are modeled in a physically meaningful way taking into account that at zero speed the movement may be locked due to the friction in the gear teeth and/or in the bearings. Due to this important property, this component can be used in situations where the combination of the components Modelica.Mechanics.Rotational.IdealGear and Modelica.Mechanics.Rotational.GearEfficiency will fail because, e.g., chattering occurs when using the Modelica.Mechanics.Rotational.GearEfficiency model.
Acknowledgement:
- The essential idea to model efficiency in this way is from Christoph Pelchen, ZF Friedrichshafen.
- The article (Pelchen et.al. 2002), see Literature below, and the first implementation of LossyGear (up to version 3.1 of package Modelica) contained a bug leading to a non-converging solution in cases where the driving side is not obvious. This was pointed out by Christian Bertsch and Max Westenkirchner, Bosch, and Christian Bertsch proposed a concrete solution how to fix this bug, see Literature below.
Literature
- Pelchen C., Schweiger C., and Otter M.: "Modeling and Simulating the Efficiency of Gearboxes and of Planetary Gearboxes," in Proceedings of the 2nd International Modelica Conference, Oberpfaffenhofen, Germany, pp. 257-266, The Modelica Association and Institute of Robotics and Mechatronics, Deutsches Zentrum für Luft- und Raumfahrt e. V., March 18-19, 2002.
- Bertsch C. (2009): "Problem with model LossyGear and a proposed solution", Ticket #108, Sept. 11, 2009.
Parameters
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_useSupport | useSupport | = true, if support flange enabled, otherwise implicitly grounded | Number | 0 |
mo_ratio | ratio | Transmission ratio (flange_a.phi/flange_b.phi) | Scalar | |
mo_lossTable | lossTable | Array for mesh efficiencies and bearing friction depending on speed | Matrix of size Mx5 | |
mo_useHeatPort | useHeatPort | =true, if heatPort is enabled | Number | 0 |
mo_Unknown | Unknown | Value of mode is not known | Scalar | |
mo_Free | Free | Element is not active | Scalar | |
mo_Forward | Forward | w_a > 0 (forward rolling) | Scalar | |
mo_Stuck | Stuck | w_a = 0 (forward rolling, locked or backward rolling) | Scalar | |
mo_Backward | Backward | w_a < 0 (backward rolling) | Scalar | |
mo_unitAngularAcceleration | unitAngularAcceleration | Scalar | ||
mo_unitTorque | unitTorque | Scalar | ||
mo_eta_mf1_0 | eta_mf1_0 | Scalar | ||
mo_eta_mf2_0 | eta_mf2_0 | Scalar | ||
mo_tau_bf1_0 | tau_bf1_0 | Scalar | ||
mo_tau_bf2_0 | tau_bf2_0 | Scalar | ||
mo_tau_bf_a_0 | tau_bf_a_0 | Scalar |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_lossPower | lossPower | lossPower | Structure | |
mo_lossPower/fixed | fixed | Cell of scalars | true | |
mo_lossPower/start | start | Cell of scalars | ||
mo_phi_a | phi_a | phi_a | Structure | |
mo_phi_a/fixed | fixed | Cell of scalars | true | |
mo_phi_a/start | start | Cell of scalars | ||
mo_phi_b | phi_b | phi_b | Structure | |
mo_phi_b/fixed | fixed | Cell of scalars | true | |
mo_phi_b/start | start | Cell of scalars | ||
mo_sa | sa | sa | Structure | |
mo_sa/fixed | fixed | Cell of scalars | true | |
mo_sa/start | start | Cell of scalars | ||
mo_w_a | w_a | w_a | Structure | |
mo_w_a/fixed | fixed | Cell of scalars | true | |
mo_w_a/start | start | Cell of scalars | ||
mo_a_a | a_a | a_a | Structure | |
mo_a_a/fixed | fixed | Cell of scalars | true | |
mo_a_a/start | start | Cell of scalars | ||
mo_interpolation_result | interpolation_result | interpolation_result | Structure | |
mo_interpolation_result/fixed | fixed | cell of matrices of size 1x4 | true | |
mo_interpolation_result/start | start | cell of matrices of size 1x4 | ||
mo_eta_mf1 | eta_mf1 | eta_mf1 | Structure | |
mo_eta_mf1/fixed | fixed | Cell of scalars | true | |
mo_eta_mf1/start | start | Cell of scalars | ||
mo_eta_mf2 | eta_mf2 | eta_mf2 | Structure | |
mo_eta_mf2/fixed | fixed | Cell of scalars | true | |
mo_eta_mf2/start | start | Cell of scalars | ||
mo_tau_bf_a | tau_bf_a | tau_bf_a | Structure | |
mo_tau_bf_a/fixed | fixed | Cell of scalars | true | |
mo_tau_bf_a/start | start | Cell of scalars | ||
mo_tau_eta | tau_eta | tau_eta | Structure | |
mo_tau_eta/fixed | fixed | Cell of scalars | true | |
mo_tau_eta/start | start | Cell of scalars | ||
mo_tau_bf1 | tau_bf1 | tau_bf1 | Structure | |
mo_tau_bf1/fixed | fixed | Cell of scalars | true | |
mo_tau_bf1/start | start | Cell of scalars | ||
mo_tau_bf2 | tau_bf2 | tau_bf2 | Structure | |
mo_tau_bf2/fixed | fixed | Cell of scalars | true | |
mo_tau_bf2/start | start | Cell of scalars | ||
mo_quadrant1 | quadrant1 | quadrant1 | Structure | |
mo_quadrant1/fixed | fixed | Cell of scalars | true | |
mo_quadrant1/start | start | Cell of scalars | ||
mo_quadrant2 | quadrant2 | quadrant2 | Structure | |
mo_quadrant2/fixed | fixed | Cell of scalars | true | |
mo_quadrant2/start | start | Cell of scalars | ||
mo_quadrant3 | quadrant3 | quadrant3 | Structure | |
mo_quadrant3/fixed | fixed | Cell of scalars | true | |
mo_quadrant3/start | start | Cell of scalars | ||
mo_quadrant4 | quadrant4 | quadrant4 | Structure | |
mo_quadrant4/fixed | fixed | Cell of scalars | true | |
mo_quadrant4/start | start | Cell of scalars | ||
mo_quadrant1_p | quadrant1_p | quadrant1_p | Structure | |
mo_quadrant1_p/fixed | fixed | Cell of scalars | true | |
mo_quadrant1_p/start | start | Cell of scalars | ||
mo_quadrant2_p | quadrant2_p | quadrant2_p | Structure | |
mo_quadrant2_p/fixed | fixed | Cell of scalars | true | |
mo_quadrant2_p/start | start | Cell of scalars | ||
mo_quadrant3_m | quadrant3_m | quadrant3_m | Structure | |
mo_quadrant3_m/fixed | fixed | Cell of scalars | true | |
mo_quadrant3_m/start | start | Cell of scalars | ||
mo_quadrant4_m | quadrant4_m | quadrant4_m | Structure | |
mo_quadrant4_m/fixed | fixed | Cell of scalars | true | |
mo_quadrant4_m/start | start | Cell of scalars | ||
mo_tauLoss | tauLoss | tauLoss | Structure | |
mo_tauLoss/fixed | fixed | Cell of scalars | true | |
mo_tauLoss/start | start | Cell of scalars | ||
mo_tauLossMax | tauLossMax | tauLossMax | Structure | |
mo_tauLossMax/fixed | fixed | Cell of scalars | true | |
mo_tauLossMax/start | start | Cell of scalars | ||
mo_tauLossMin | tauLossMin | tauLossMin | Structure | |
mo_tauLossMin/fixed | fixed | Cell of scalars | true | |
mo_tauLossMin/start | start | Cell of scalars | ||
mo_tauLossMax_p | tauLossMax_p | tauLossMax_p | Structure | |
mo_tauLossMax_p/fixed | fixed | Cell of scalars | true | |
mo_tauLossMax_p/start | start | Cell of scalars | ||
mo_tauLossMin_m | tauLossMin_m | tauLossMin_m | Structure | |
mo_tauLossMin_m/fixed | fixed | Cell of scalars | true | |
mo_tauLossMin_m/start | start | Cell of scalars | ||
mo_tau_aPos | tau_aPos | tau_aPos | Structure | |
mo_tau_aPos/fixed | fixed | Cell of scalars | true | |
mo_tau_aPos/start | start | Cell of scalars | ||
mo_tau_etaPos | tau_etaPos | tau_etaPos | Structure | |
mo_tau_etaPos/fixed | fixed | Cell of scalars | true | |
mo_tau_etaPos/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_startBackward | startBackward | startBackward | Structure | |
mo_startBackward/fixed | fixed | Cell of scalars | true | |
mo_startBackward/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_ideal | ideal | ideal | Structure | |
mo_ideal/fixed | fixed | Cell of scalars | true | |
mo_ideal/start | start | Cell of scalars | ||
mo_mode | mode | mode | Structure | |
mo_mode/fixed | fixed | Cell of scalars | true | |
mo_mode/start | start | Cell of scalars | ||
mo_tau_eta_p | tau_eta_p | tau_eta_p | Structure | |
mo_tau_eta_p/fixed | fixed | Cell of scalars | true | |
mo_tau_eta_p/start | start | Cell of scalars | ||
mo_tau_eta_m | tau_eta_m | tau_eta_m | Structure | |
mo_tau_eta_m/fixed | fixed | Cell of scalars | true | |
mo_tau_eta_m/start | start | Cell of scalars |
Ports
Name | Type | Description | IO Type | Number |
---|---|---|---|---|
flange_a | implicit | Flange of left shaft | input | 1 |
flange_b | implicit | Flange of right shaft | output | 1 |
Port 3 | implicit | Support/housing of component | input | mo_useSupport |
Port 4 | implicit | Optional port to which dissipated losses are transported in form of heat | input | mo_useHeatPort |