vbelts package

Submodules

vbelts.belt module

class vbelts.belt.HiPower(est_power: float, rpm_fastest: float)

Bases: vbelts.util._Belt

HiPower class checks the conditions and selects the v-belt profile for this model.

Parameters:
  • est_power (float) – estimated power of the system, [hp]
  • rpm_fastest (float) – fastest rotational speed of the system, [rpm]
Variables:

profile (str) – Selected v-belt profile, [-]

Examples

>>> belt = vbelts.belt.HiPower(3, 500)
>>> belt.profile
a
>>> belt1 = vbelts.belt.HiPower(9, 400)
>>> betl1.profile
b

Notes

The data [1] is available online.

References

[1]“CLASSICAL,” V-Belts, BestTORQ, accessed September 21, 2020, https://www.bestorq.com/Library/media/CLASSICAL_xselect.gif
class vbelts.belt.SuperHC(est_power: float, rpm_fastest: float)

Bases: vbelts.util._Belt

SuperHC class calculates checks the conditions and selects the v-belt profile for this model.

Parameters:
  • est_power (float) – estimated power of the system, [hp]
  • rpm_fastest (float) – fastest rotational speed of the system, [rpm]
Variables:

profile (str) – Selected v-belt profile, [-]

Examples

>>> belt = vbelts.belt.SuperHC(4, 1160)
>>> belt.profile
3v
>>> belt1 = vbelts.belt.SuperHC(30, 690)
>>> betl1.profile
5v

Notes

The data [2] is available online.

References

[2]“WEDGE,” V-Belts, BestTORQ, accessed September 21, 2020, https://www.bestorq.com/Library/media/wedge_xselect358.gif

vbelts.length module

class vbelts.length.PulleyBelt(min_diam: float, maj_diam: float, belt: str, b_profile: str, iterator: vbelts.util._ReIterate = <class 'vbelts.util._ReIterate'>, interpol: vbelts.util._Interpolate = <class 'vbelts.util._Interpolate'>)

Bases: vbelts.length._Dist

PulleyBelt class calculates the corrected belt length and the corrected center distance.

Parameters:
  • min_diam (float) – Smallest pulley, [mm]
  • maj_diam (float) – Largest pulley, [mm]
  • belt (str) – Belt model, [-]
  • b_profile (str) – Belt profile, [-]
Variables:
  • l_corr (float) – V-Belt corrected length, [mm]
  • b_type (str) – V-Belt selected type, [-]
  • c_corr (float) – Pulley corrected center length, [mm]

Notes

All the information [3] is available online. The valid entries for belt and b_profile are in the Model Profile data section.

Examples

>>> dist = vbelts.length.PulleyBelt(120, 240, 'HiPower', 'a')
>>> dist.l_c()
(1200, 'A-46')
>>> dist.c_c()
310.72814411208714

References

[3]Claudino Alves, Claudemir. “Transmissão por Correias - Dimensionamento Atividade 2”. Fatec Itaquera. Accessed September 16, 2020, http://claudemiralves.weebly.com/uploads/3/8/6/2/3862918/dimen._de_correias.pdf.
c_c()

Corrected pulley center distance for commercial belts.

Returns:c_corr – Corrected center distance between the pulleys, [mm]
Return type:float

Notes

The calculation [4] demands the adjusted length of the belt, l_a, the major pulley diameter D and the minor pulley diameter d. First, the ratio below is calculated:

\[\frac{D-d}{l_a}\]

Second, from a list of correction factors for center distances, h is selected. Please see the Data section for the complete list. Third and finally, the adjusted center distance is defined:

\[C_c = \frac{l_a - h \cdot (D - d)}{2}\]

References

[4]Claudino Alves, Claudemir. “Transmissão por Correias - Dimensionamento Atividade 2”. Fatec Itaquera. Accessed September 16, 2020, http://claudemiralves.weebly.com/uploads/3/8/6/2/3862918/dimen._de_correias.pdf.
l_c()

Belt commercial length and v-belt type.

Returns:
  • result (tuple) – Contains the l_corr and b_type in tuple data form, [-]
  • l_corr (float) – Length of the commercial belt chosen, [mm]
  • b_type (str) – Commercial v-belt type, [-]

Notes

The return product is a tuple with both values.

The calculation and selection of the type depends on a number of secundary factors, all available online [5]. First, the pulley center distance uncorrected, C, is calculated based on the major D and minor d pulley diameters:

\[C = \frac{3 \cdot d + D}{2}\]

Second, the uncorrected length of the belt, l is calculated:

\[l = 2 \cdot C + 1.57 \cdot (D + d) + \frac{(D - d)**2}{4 \cdot C}\]

Third, the corrected commercial length of the v-belt, l_c is selected based on the v-belt model and uncorrected length l. Please see the Data for all models in the module.

References

[5]Claudino Alves, Claudemir. “Transmissão por Correias - Dimensionamento Atividade 2”. Fatec Itaquera. Accessed September 16, 2020, http://claudemiralves.weebly.com/uploads/3/8/6/2/3862918/dimen._de_correias.pdf.

vbelts.power module

class vbelts.power.EstPower(engine_power: float, drive_group: int, machine_group: int, hours_service: float)

Bases: object

EstPower class calculates the estimated power to run the pulley system.

Parameters:
  • engine_power (float) – Engine power, [hp]
  • drive_group (int) – Engine group classifier, [-]
  • machine_group (int) – Machine group classifier, [-]
  • hours_service (float) – Amount of hours per day that the system is on, [h]
Variables:

service_factor (float) – Service factor of the system

Notes

The service factor data [6] is available online.

Examples

>>> est_power = vbelts.power.EstPower(2, 1, 1, 4)
>>> est_power.calc()
2
>>> est_power2 = vbelts.power.EstPower(2, 2, 4, 18)
>>> est_power2.calc()
3.6

References

[6]Megadyne. 2016.”V-BELTS: Rubber V-belts”, Vermeire webshop. Accessed September 14, 2020, http://shop.vermeire.com/inc/Doc/courroies/megadyne/2016/v_belts_jan_2016.pdf
calc()

Estimated power to run the pulley system.

Returns:pp – Estimated power, [hp]
Return type:float

Notes

The equation to calculate the estimated power, using the engine power P_{engine} and the service factor F_s:

\[P_p = P_{engine} \cdot F_s\]
class vbelts.power.TransPower(vbelt_model: str, vbelt_profile: str, vbelt_type: str, est_power: float, gear_ratio: float, belt_length_corr: float, min_diam: float, maj_diam: float, rpm: float, iterator: vbelts.util._ReIterate = <class 'vbelts.util._ReIterate'>)

Bases: object

TransPower class calculates the quantity of belts needed to ensure the power of the system.

Parameters:
  • vbelt_model (str) – Model of the v-belt, [-]
  • vbelt_profile (str) – Profile of the v-belt, [-]
  • vbelt_type (str) – Type of the v-belt, [-]
  • est_power (float) – Estimated power, [hp]
  • gear_ratio (float) – Pulley system gear ratio, [-]
  • belt_length_corr (float) – Corrected belt length, [-]
  • min_diam (float) – Smallest pulley, [mm]
  • maj_diam (float) – Largest pulley, [mm]
  • rpm (float) – Fastest axle rotation speed, [rpm]

Notes

All the information [7] is available online. The valid entries for vbelt_model, vbelt_profile and vbelt_type are in the Model Profile and in the Types of the data section.

Examples

>>> trans_power = vbelts.power.TransPower('HiPower', 'a', 'A-32', 2, 130/240, 850, 130, 240, 1750)
>>> trans_power.calc()
0.5060451558976288

References

[7]Claudino Alves, Claudemir. “Transmissão por Correias - Dimensionamento Atividade 2”. Fatec Itaquera. Accessed September 16, 2020, http://claudemiralves.weebly.com/uploads/3/8/6/2/3862918/dimen._de_correias.pdf.
belt_qty()

Number of v-belts needed to transmit the estimated power.

Returns:b_qty – Quantity of v-belts, [-]
Return type:float

Notes

Before calculate the belt quantity, the transmitted power P_t in horse-power has to be calculated [8] by:

\[P_t = (P_b + P_a) \cdot f_{cc} \cdot f_{cac}\]

Where P_b is the basic power transmitted, P_a is the additional power transmitted, f_{cc} is the length correction factor and f_{cac} is the contact arc correction factor. Then, the belt quantity is calculated by:

\[N_{v-belt} = \frac{P_{estimated}}{P_t}\]

References

[8]Claudino Alves, Claudemir. “Transmissão por Correias - Dimensionamento Atividade 2”. Fatec Itaquera. Accessed September 16, 2020, http://claudemiralves.weebly.com/uploads/3/8/6/2/3862918/dimen._de_correias.pdf.

vbelts.pulley module

class vbelts.pulley.Driven(diam: float, vbelt_profile: str, power: float, rpm: float, gear_ratio: float, iterator: vbelts.util._ReIterate = <class 'vbelts.util._ReIterate'>)

Bases: vbelts.util._Pulley

Driven class stores essential properties of the driven pulley and calculates driving pulley properties. It also can select the appropriate commercial diameter for the driven pulley, updating the relevant properties like output rpm and gear ratio.

Parameters:
  • diam (float) – Diameter of the driven pulley, [mm]
  • vbelt_profile (str) – Profile of the v-belt, [-]
  • power (float) – Power of the system, [hp]
  • rpm (float) – Rotational speed of the driven axle, [rpm]
  • gear_ratio (float) – Gear ratio of the pulleys in decimal form, [-]

Examples

>>> driven_pulley = vbelts.pulley.Driven(240, 'a', 3, 1750, 1.846)
>>> driven_pulley.driving_pulley()
130.01083423618635
>>> driven_pulley.commercial(130, 120)
[240, 1.8461538461538463, 1750, 947.9166666666666]
commercial(driving_pulley: float, desired_pulley_diam: int)

Selects an approximate to the commercial diameter of a pulley through iterator convergence.

Returns:
  • result (list) – A list containing the respective results, [-]
  • diam_out (float) – Calculated commercial driven pulley diameter, [mm]
  • gear_ratio_comm (float) – Calculated gear ratio for the commercial diameter, [-]
  • rpm (float) – Input rotational speed, [rpm]
  • rpm_out (float) – Calculated output rotational speed for the commercial driven diameter, [rpm]
driving_pulley()

Calculated driving pulley diameter.

Returns:driving_diam – Driving pulley diameter, [mm]
Return type:float

Notes

The driven gear ratio is calculated [9] by:

\[D_{driving} = \frac{D_{driven}}{R}\]

Where the R is the gear ratio.

References

[9]Douglas Wright. 2005.”DANotes: V-Belt drives: Introduction”, V-BELT DRIVES. Accessed September 23, 2020, http://www-mdp.eng.cam.ac.uk/web/library/enginfo/textbooks_dvd_only/DAN/V-belts/intro/intro.html.
class vbelts.pulley.Driving(diam: float, vbelt_profile: str, power: float, rpm: float, gear_ratio: float, iterator: vbelts.util._Iterate = <class 'vbelts.util._Iterate'>)

Bases: vbelts.util._Pulley

Driving class stores essential properties of the driving pulley and calculates driven pulley properties.

Parameters:
  • diam (float) – Diameter of the driving pulley, [mm]
  • vbelt_profile (str) – Profile of the v-belt, [-]
  • power (float) – Power of the system, [hp]
  • rpm (float) – Rotational speed of the driving axle, [rpm]
  • gear_ratio (float) – Gear ratio of the pulleys in decimal form, [-]

Examples

>>> driving_pulley = vbelts.pulley.Driving(130, 'a', 3, 1000, 1.846)
>>> driving_pulley.driven_pulley()
239.98000000000002
driven_pulley()

Calculated driven pulley diameter.

Returns:driven_diam – Driven pulley diameter, [mm]
Return type:float

Notes

The driven gear ratio is calculated [10] by:

\[D_{driven} = D_{driving} \cdot R\]

Where the R is the gear ratio.

References

[10]Douglas Wright. 2005.”DANotes: V-Belt drives: Introduction”, V-BELT DRIVES. Accessed September 23, 2020, http://www-mdp.eng.cam.ac.uk/web/library/enginfo/textbooks_dvd_only/DAN/V-belts/intro/intro.html.

vbelts.speed module

vbelts.speed.peripheral(pulley_diam: float, pulley_rpm: float)

Mean peripheral linear velocity of the v-belt.

Parameters:
  • pulley_diam (float) – mean diameter of the pulley, [mm]
  • pulley_rpm (float) – rotational speed of the pulley, [rpm]
Returns:

v_peripheral – Linear velocity of the v-belt, [m/s]

Return type:

float

Examples

>>> vbelts.speed.peripheral(240, 1750):
21.99114857512855

Notes

The velocity is defined [11] as:

\[\begin{split}v_p &= \omega \cdot r \\ v_p &= \frac{\pi \cdot r \cdot n}{30}\end{split}\]

References

[11]Claudino Alves, Claudemir. “Transmissão por Correias - Dimensionamento Atividade 2”. Fatec Itaquera. Accessed September 16, 2020, http://claudemiralves.weebly.com/uploads/3/8/6/2/3862918/dimen._de_correias.pdf

vbelts.util module

class vbelts.util.Machine(name: str, hours_service: float)

Bases: vbelts.util._Device

Machine class centralizes and classifies engine properties. For valid machine data entries see the Data section.

Parameters:
  • name (str) – Machine name, [-]
  • hours_service (float) – Hours of service per day, [h/day]
Variables:

group (int) – Machine group classification, [-]

Examples

>>> mach = vbelts.util.Machine('reciprocating compressor', 18)
>>> mach.group
3
>>> mach.hours_service
18

Notes

The group classification is needed for the service factor [12] calculation.

References

[12]Oleostatic. 2016. “OLEOSTATIC Correas Trapeciales Convencionales”, Universidad Carlos III de Madrid. Accessed September 23, 2020. http://ocw.uc3m.es/ingenieria-mecanica/diseno-mecanico-1/material_clase/ocw_catalogo_correas.
class vbelts.util.Motor(name: str, power: float)

Bases: vbelts.util._Device

Motor class centralizes and classifies engine properties. For valid motor data entries see the Data section.

Parameters:
  • name (str) – Motor name, [-]
  • power (float) – Motor power, [hp]
Variables:

group (int) – Motor group classification, [-]

Examples

>>> engine = vbelts.util.Motor('multiple cylinders', 3)
>>> engine.group
1
>>> engine.power
3

Notes

The group classification is needed for the service factor [13] calculation.

References

[13]Oleostatic. 2016. “OLEOSTATIC Correas Trapeciales Convencionales”, Universidad Carlos III de Madrid. Accessed September 23, 2020. http://ocw.uc3m.es/ingenieria-mecanica/diseno-mecanico-1/material_clase/ocw_catalogo_correas.
vbelts.util.gear_ratio(rpm_input: float, rpm_output: float)

Pulley gear ratio based on the rpm input and output.

Parameters:
  • rpm_input (float) – input (driving) axle speed, [rpm]
  • rpm_output (float) – output (driven) axle speed, [rpm]
Returns:

gear_ratio – Calculated gear ratio, [-]

Return type:

float

Examples

>>> vbelts.util.gear_ratio(1000, 1750)
0.5714285714285714

Notes

The rpm based gear ratio is calculated [14] as:

\[R = \frac{N_{in}}{N_{out}}\]

References

[14]Douglas Wright. 2005.”DANotes: V-Belt drives: Introduction”, V-BELT DRIVES. Accessed September 23, 2020, http://www-mdp.eng.cam.ac.uk/web/library/enginfo/textbooks_dvd_only/DAN/V-belts/intro/intro.html.

Module contents

Utilities for v-belt dimensioning. Copyright (C) 2020 Glademir Karpinski Junior <gkarpinskijr@gmail.com>, Hector Balke Nodari <hectornodari@gmail.com>

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

vbelts provides functions that allow the computation of complex factors in v-belt dimensioning.