AI vyvinula kolesá s kosoštvorcovými platničkami. Prečo sú výhodnejšie pri zbiehavosti kolies a ako rýchlo Vás dostanú v zime na stopu? 1.8 sekundy:

AI vyvinula kolesá s kosoštvorcovými platničkami. Prečo sú výhodnejšie pri zbiehavosti kolies a ako rýchlo Vás dostanú v zime na stopu? 1.8 sekundy:

Dnes ma napadlo toto:

AI pneu

A pýtal som sa AI ako takáto pneumatika osciluje pri zbiehavosti kolies? Vypočítala toto: Už pri oscilácií o 1° sa brzdná dráha mení o -40 metrov. (20m/s * 1.8s) viď zdroják rýchlosť vozidla 20m/s * 3.6=cca 80km/h Teda pri rýchlosti cca 80km/h, ak ste v sklze a v zákrute, tento tvar platničky mení brzdnú dráhu o -40m: Toto ukazuje simulácia.

AI pneu animation

AI pneu simulacia

A už pri malej rýchlosti do 90km/h sa pneumatika správa pri natočení veľmi stabilne a nedochádza ku sklzu zo zimnej vozovky.

# simulacia_pneumatika_shimmy.jl
# Jednoduchý lineárny model oscilácie (shimmy) kolesa spôsobený zbiehavosťou (toe)
# Použitie: julia --project=.
# Potrebné balíky: DifferentialEquations, Plots, FileIO, Images
using Pkg
Pkg.add("Plots")
Pkg.add("DifferentialEquations")
Pkg.add("FileIO")
Pkg.add("Images")
using DifferentialEquations
using Plots
using FileIO
using Images

# cesta k obrázku poskytnutému používateľom (upravené z konverzácie)
img_path = "./data/pneu3_AI.png"

# parametre modelu (približné, upravte podľa potreby)
m = 40.0           # hmotnosť "kolesovej zostavy" [kg]
I = 2.0            # moment zotrvačnosti koliesok okolo zvislej osi [kg m^2]
U = 20.0           # rýchlosť vozidla [m/s]
C_alpha = 60000.0  # torzná tuhosť pneumatiky pri sklze (cornering stiffness) [N/rad]
C_m = 10.0         # koeficient „self-aligning“ momentu prepojený s uhlom sklzu [Nm/rad]

# dielčie tlmenia / tuhosti (lineárne)
k_phi = 100.0      # rotačná tuhosť (napr. pruženie v uložení) [Nm/rad]
c_phi = 10.0       # rotačné tlmenie [Nms/rad]

# počiatočná zbiehavosť (toe) z obrázku: zadajte v stupňoch
toe_deg = 5.0  # napr. 5° zbiehavosti (priemerné hodnoty) — upravte podľa obrázku
toe0 = deg2rad(toe_deg)

# stavový vektor x = [y, y_dot, phi, phi_dot]
# y: laterálne posunutie kolesa (m) - jednoduchý indikátor
# phi: rotácia kolesa okolo zvislej osi (rad) - vyjadruje "natočenie" kolieska

function tire_shimmy!(du,u,p,t)
    y = u[1]
    ydot = u[2]
    phi = u[3]
    phidot = u[4]

    # slip angle (približná lineárna formulácia)
    # alpha ~ phi + ydot/U - toe0
    alpha = phi + ydot / U - toe0

    # laterálna sila približne C_alpha * alpha (jednoduchý lineárny model)
    F_lat = C_alpha * alpha

    # alignig moment: tu pridáme lineárny odpor a moment spätnej väzby
    M_align = -C_m * alpha - k_phi * phi - c_phi * phidot

    # rovnice pohybu (jednoduché)
    yddot = -F_lat / m
    phiddot = M_align / I

    du[1] = ydot
    du[2] = yddot
    du[3] = phidot
    du[4] = phiddot
end

# počiatočné podmienky (malé vychýlenia)
u0 = [0.0, 0.1, deg2rad(1.0), 0.0]

tspan = (0.0, 6.0)
prob = ODEProblem(tire_shimmy!, u0, tspan)

sol = solve(prob, Vern9(), abstol=1e-8, reltol=1e-6)

# vykreslenie výsledkov
plt1 = plot(sol.t, getindex.(sol.u,3) .|> rad2deg,
    xlabel = "Čas (s)", ylabel = "Phi (deg)", title = "Uhol natočenia kolesa (phi)", legend=false)

plt2 = plot(sol.t, getindex.(sol.u,2), xlabel = "Čas (s)", ylabel = "y_dot (m/s)", title = "Laterálna rýchlosť y_dot", legend=false)

plt3 = plot(sol.t, (phi -> (phi + 0.0)).(getindex.(sol.u,3)) .|> rad2deg,
    xlabel = "Čas (s)", ylabel = "Slip angle (deg)", title = "Približný uhlový sklz (alpha)", legend=false)

plot(plt1, plt2, plt3, layout = (3,1), size=(800,900))

# voliteľne: ulož graf
savefig("shimmy_simulation.png")

# Zobrazenie referenčného obrázka pneumatiky (poskytnutý)
try
    img = load(img_path)
    println("Referenčný obrázok pneumatiky načítaný z: ", img_path)
catch e
    @warn "Nepodarilo sa načítať obrázok: $e"
end

# Jednoduchá animácia uhlov natočenia pre vizualizáciu (uloží GIF)
# Pre zobrazenie skutočne otočenej pneumatiky by bolo treba poskladať obraz s rotáciou,
# tu vytvoríme animovaný graf priebehu phi (nie náhľad priamo na otočený obrázok).
anim = @animate for (ti, ui) in zip(sol.t, sol.u)
    phi_deg = rad2deg(ui[3])
    plot(sol.t, getindex.(sol.u,3) .|> rad2deg, xlabel="t (s)", ylabel="phi (deg)", legend=false)
    scatter!([ti], [phi_deg], markersize=6)
    title!("Čas = $(round(ti, digits=2)) s, phi=$(round(phi_deg,digits=3))°")
end

mp4path = "shimmy_phi_anim.gif"
gif(anim, mp4path, fps=20)
println("Animácia uložená ako: ", mp4path)

# Koncové poznámky:
# - Model je zjednodušený a lineárny. Reálne chovanie pneumatiky pri shimmy je nelineárne a
#   závisí od geometrii zavesenia, tuhosti, hmotnosti, rýchlosti, dynamiky karosérie atď.
# - Parametre C_alpha, C_m, I, m a tlmenia treba doladiť podľa skutočných meraní.
# - Pokiaľ chceš, môžem pridať realistickejší model (napr. full caster/kingpin model alebo
#   model s prepojením na karosériu a kmitajúcim tlmením)."

Ďakujem za pomoc so zdrojákom systému chat GPT ^^^ Založil ho na mojom obrázku pneumatiky, keďže som mu predostrel moju ideu oscilácií pneu pri zbiehavosti kolies ;)

Ak zmeníme hmotnosť kolesovej sústavy na polovicu a torznú tuhosť na mäkkšiu pneumatiku, získame cca 10 metrov brzdnej dráhy pre naše autíčko, stačí pomeniť parametre simulácie. Simulácia o je o 0.3 sekundy menšia, čo je 20m/s * 0.3s = cca 10m


Author: AarNoma

The first Slovak cyborg 1 system

Comments “AI vyvinula kolesá s kosoštvorcovými platničkami. Prečo sú výhodnejšie pri zbiehavosti kolies a ako rýchlo Vás dostanú v zime na stopu? 1.8 sekundy:”