Сайт Владислава Криласова

Формули розрахунку крутного на колесах та швидкості для BMW E30

Опубліковано:

Зміст

Формули

Обчислення зовнішнього діаметру шини в метрах

$$D_{\text{м}} = \frac{B \times \left(\frac{H}{100}\right) \times 2 + D_{\text{диска}} \times 25.4}{1000}$$

Де:
$D_{\text{м}}$ - діаметр в метрах

$B$ - ширина шини в мм
$H$ - профіль шини у відсотках
$100$ - переведення профілю шини з відсотків у десятковий формат
$2$ - множник для обох боковин
$D_{\text{диска}}$ - діаметр диска в дюймах
$25.4$ - дюйми в мм
$1000$ - мм в метри

Приклад розрахунку для 205/50 R15:

$$D_{\text{м}} = \frac{205 \times \left(\frac{50}{100}\right) \times 2 + 15 \times 25.4}{1000} = 0.586{\text{м}}$$

Обчислення обертів двигуна за передавальним числом редуктора та обраної передачі

$$RPM = \frac{V \times R_f \times G \times 60}{D \times \pi \times 3.6 \times c}$$

Де:
$RPM$ - оберти на хвилину

$V$ - км/год
$R_f$ - передавальне число на редукторі
$G$ - число обраної передачі
$60$ - множник переведення обертів в секунду, в оберти на хвилину (RPM)
$D$ - зовнішній діаметр шини в метрах
$\pi$ - Число 3.14
$3.6$ - км/год в м/с
$c$ - корекція ($\approx 0.95$)

Приклад розрахунку обертів для E30, швидкість 125км/год, редуктора 3.38 та 2.93, 5та передача (число 1) S5D 320Z з 205/50 R15:

$$RPM = \frac{125 \times 3.38 \times 1 \times 60}{0.586 \times \pi \times 3.6 \times 0.95} = \approx 4026~\text{об/хв}$$

$$RPM = \frac{125 \times 2.93 \times 1 \times 60}{0.586 \times \pi \times 3.6 \times 0.95} = \approx 3490~\text{об/хв}$$

Обчислення крутного моменту на колесах через момент двигуна та передавальні числа трансмісії

$$T_{\text{колеса}} = \frac{T_{\text{двигуна}} \times R_f \times G \times \eta}{2}$$

Де:
$T_{\text{колеса}}$ - крутний момент на колесах (Nm)

$T_{\text{двигуна}}$ - момент двигуна (Nm)
$R_f$ - передавальне число на редукторі
$G$ - число обраної передачі
$\eta$ - ККД трансмісії/привода ($\approx 0.95$)
$2$ - кількість ведучих колес

Приклад розрахунку для редукторів 3.38 та 2.93 BMW E36 на M52B28 (280 Nm), першій передачі коробки S5D 320Z:

$$T_{\text{колеса}} = \frac{280 \times 3.38 \times 4.21 \times 0.95}{2} = 1872 \text{Nm}$$

$$T_{\text{колеса}} = \frac{280 \times 2.93 \times 4.21 \times 0.95}{2} = 1623 \text{Nm}$$

Тобто з заміною редуктора 3.38 на 2.93 втрачаємо десь 249Nm на першій передачі, але отримуємо менші оберти на 5тій передачі під час 125км/год.

Криві моменту до RPM на 3.38

Криві моменту до RPM на 2.93

Приклад розрахунку кривих моменту колес:

import numpy as np
import matplotlib

import matplotlib.pyplot as plt
import argparse

matplotlib.use("TkAgg")


def plot_torque(final_drive):
    # Input data
    rpm = np.array(
        [
            1000,
            1500,
            2000,
            2500,
            3000,
            3500,
            4000,
            4500,
            5000,
            5500,
            6000,
            6500,
        ]
    )
    torque = np.array(
        [
            120,
            160,
            200,
            250,
            270,
            280,
            275,
            270,
            260,
            250,
            220,
            180,
        ]
    )
    gear_ratio = np.array(
        [4.21, 2.49, 1.67, 1.24, 1.00]
    )
    eta = 0.95
    wheels = 2

    # Calculate wheel torque for each gear
    torque_matrix = (
        np.outer(gear_ratio, torque)
        * final_drive
        * eta
    ) / wheels

    # Plot
    plt.figure(figsize=(8, 5))
    plt.plot(rpm, torque_matrix.T, linewidth=2)
    plt.grid(True, which="major", alpha=0.6)
    plt.grid(True, which="minor", alpha=0.3)
    plt.minorticks_on()

    plt.xlabel(
        "Оберти на хвилину (RPM)", fontsize=12
    )
    plt.ylabel(
        "Крутний момент колеса (Nm)", fontsize=12
    )
    plt.title(
        f"sprytnyk.dev / diff {final_drive:.2f}",
        fontsize=14,
        color="black",
    )
    plt.legend(
        ["1ша", "2га", "3тя", "4та", "5та"],
        loc="upper left",
    )

    plt.tight_layout()
    filename = f"torque-{final_drive:.2f}.png"
    plt.savefig(filename, dpi=300)
    print(f"Rendered plot to {filename}")
    plt.show()


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "-f",
        "--final",
        type=float,
        default=3.38,
        help="Final gear ratio (default: 3.38)",
    )
    args = parser.parse_args()

    plot_torque(args.final)

Обчислення км/год за RPM, передавальним числом редуктора та обраної передачі

$$v_\text{км/год} = \frac{\text{RPM} \times \alpha \times (D_{\text{м}} \times \pi) \times 60}{R_f \times G \times 1000}$$

Де:
$v_\text{км/год}$ - швидкість в км/год

$\text{RPM}$ - кількість обертів на хвилину
$\alpha$ - коефіцієнт поправки (0.97), що враховує деформацію шини
$D_{\text{м}}$ - номінальний діаметр колеса (м)
$R_f$ - головна передача (final drive)
$G$ - передавальне число обраної передачі

Приклад розрахунку обертів для E30, швидкість 125км/год, редуктора 3.38 та 2.93, 5та передача (число 1) S5D 320Z з 205/50 R15:

$$v_\text{км/год} = \frac{4000 \times 0.97 \times (0.586 \times \pi) \times 60}{3.38 \times 1 \times 1000} \approx 126{\text{км/год}}$$

$$v_\text{км/год} = \frac{4000 \times 0.97 \times (0.586 \times \pi) \times 60}{2.93 \times 1 \times 1000} \approx 146{\text{км/год}}$$

Криві швидкості до RPM на 3.38

Криві швидкості до RPM на 2.93

Приклад розрахунку кривих прискорення:

import numpy as np
import matplotlib

import matplotlib.pyplot as plt
import argparse

matplotlib.use("TkAgg")


def plot_speed(final_drive):
    # Gear data
    gears = np.array([4.21, 2.49, 1.67, 1.24, 1.00])
    wheel_d = 0.586  # metres (wheel diameter)
    a = 0.97  # correction factor

    # RPM range
    rpm = np.linspace(1000, 7000, 200)

    # Calculate speeds (km/h) - vectorized
    wheel_circumference = wheel_d * np.pi
    speeds = (
        rpm[:, np.newaxis]
        * a
        * wheel_circumference
        * 60
    ) / (gears * final_drive * 1000)

    # Plot
    plt.figure(figsize=(8, 5))
    plt.plot(rpm, speeds, linewidth=2)
    plt.grid(True, which="major", alpha=0.6)
    plt.grid(True, which="minor", alpha=0.3)
    plt.minorticks_on()

    plt.xlabel(
        "Оберти на хвилину (RPM)", fontsize=12
    )
    plt.ylabel("Швидкість (км/год)", fontsize=12)
    plt.title(
        f"sprytnyk.dev / diff {final_drive:.2f}",
        fontsize=14,
    )
    plt.legend(
        ["1ша", "2га", "3тя", "4та", "5та"],
        loc="upper left",
    )

    plt.tight_layout()
    filename = f"speed-{final_drive:.2f}.png"
    plt.savefig(filename, dpi=300)
    print(
        f"Successfully rendered plot to {filename}"
    )
    plt.show()


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "-f",
        "--final",
        type=float,
        default=2.93,
        help="Final gear ratio (default: 2.93)",
    )
    args = parser.parse_args()

    plot_speed(args.final)

Грубий розрахунок прискорення

Це дуже груба оцінка, без урахування аеродинаміки, пробуксовки коліс і зміни передач, але дає певне уявлення.

$$t_{0-V} \approx \frac{(V/3.6) \times m \times r}{T_{\text{колеса}}}$$

Де:
$t_{0-V}$ - час розгону до швидкості (V) км/год

$V$ - бажана швидкість у км/год (наприклад, 100)
$m$ - маса авто в кг
$r$ - радіус колеса в метрах
$T_{\text{колеса}}$ - момент на колесах у Nm

Приклад розрахунку 0-100km/h для E30 базуючись на редукторах 3.38 та 2.93 з M52B28:

$$t_{0-100} = \frac{(100/3.6) \times 1000 \times (0.586 / 2)}{1872} \approx 4.3{\text{s}}$$

$$t_{0-100} = \frac{(100/3.6) \times 1000 \times (0.586 / 2)}{1623} \approx 5.0{\text{s}}$$