top of page

Volim da se igram sa Python-om

  • Writer: elenaburan
    elenaburan
  • Sep 3
  • 5 min read
ree

Zovem se Vuk, maturant sam iz Podgorice i volim da se igram sa Python-om.

Ideja mi je pala na času fizike: napraviti „modulator fizičkih procesa“ za trkača na skijama, da vidim kolikoj se stvarnoj sili i opterećenju izlaže na našoj valovitoj stazi iznad grada, sa kratkim usponima prema Medunu i dugim spuštanjima ka Zeti.


Prvo sam nacrtao problem na tabli: sila gravitacije na usponu, otpor klizanja skija po snegu (ili točkova na roler-skijama), vazdušni otpor, plus male promene ubrzanja kad ritmično ubrzam iz zavoja. Pojednostavio sam sve u funkciju snage: koliko vati mora da proizvede telo da bi održalo brzinu na određenom nagibu.


Onda sam to zapisao u Python-u. Uzeo sam ulaze: masa (skijaš + oprema), CdA kao približan frontalni presek (manji u niskom stavu), koeficijent otpora klizanja Crr, temperaturu (hladnije = gust vazduh), vetar i profil staze po segmentima (dužina, nagib, visina). Izlazi: potrebna snaga po segmentu, procena pulsa i laktata, i moj interni „indeks zamora“ za trening.


Moj „modulator“ radi tako što pomera klizače (slidere) za svaki parametar i odmah preračuna šta se dešava. Ako povećam CdA jer skijaš uspravi torzo, vazdušni otpor skoči i snaga na istoj brzini ode u crveno. Ako pojačam Crr (loš vosak ili točkovi), ravnica iznenada postane teška kao blagi uspon.


Najzanimljiviji je bio deo sa usponima. Na našoj trening-ruti imam tri brda: jedno kratko i strmo (6–7%), jedno srednje (3–4%) i jedno dugačko „lažno ravno“ (1–2%). U Python-u sam simulirao tri taktike: (A) ravnomeran tempo, (B) blagi „push“ na početku uspona pa stabilizacija, (C) čuvanje snage do poslednje trećine. Modulator mi je pokazao da (B) najčešće drži laktat u „zoni dogovora“ — kratko se digne, ali ne prelije; srce se popne, pa se zadrži ispod crvenog.


Za puls i laktat nisam glumio laboratoriju. Napravio sam jednostavan model: srce reaguje sa zakašnjenjem (kao filter prvog reda), a laktat raste sa snagom iznad „kritične“ i opada kad padnem ispod nje. Nije savršeno, ali je dovoljno da vidiš trend: gde će doći do „drifta“ i kad je vreme da skratiš interval.


Ujutru sam izveo probu na roler-skijama. Pre polaska sam probao dve postavke u modulatoru: „hladno i vlažno“ (gušći vazduh, veći otpor) naspram „toplo i suvo“. Alat je predvideo da ću u prvom slučaju morati 10–15 W više na ravnici da bih držao istu brzinu. Na terenu — puls je zaista bio 3–4 otkucaja viši po segmentu, a osećaj nogu je potvrdio brojke.


Najveći „wow“ trenutak je bio kad sam promenio tehniku. U modulator sam ubacio opciju „sniži CdA“ (dublji, aerodinamičniji stav na blagom spustu) i „povećaj kadencu“ (brži ciklus zaveslaja) na kratkim hupserima. Simulacija je pokazala da tako štedim energiju na spustu i vraćam je u poslednjih 30–40 sekundi sledećeg uspona. Kad sam to probao u stvarnosti, osećaj je bio kao da sam „zaključao“ ritam staze — manje šiljaka u pulsu, više kontrole u glavi.


Da ne ostane samo na matematici, uveo sam i „menadžment treninga“. Svaka vožnja dobija TRIMP-like broj (moj indeks zamora), a sedmica se planira tako da se indeksi slažu: ponedeljak dugi Z2 po ravnici pored Morače; sreda 6×3 min na srednjem usponu sa kratkim spuštanjem kao aktivni odmor; petak snaga i tehnika (double-poling drill); subota „proba trke“ od 20 min po talasima. Ako indeks pređe prag, modulator predlaže zamenu: umesto intervala — tehnika + mobilnost.


Na kraju, shvatio sam da je Python za mene postao lupa: ne menja stvarnost, ali je uvećava taman toliko da vidim mehaniku. Kroz taj „modulator fizičkih procesa“ naučio sam da je optimalnost treninga manje u herojskim naporima, a više u pametnoj raspodeli: malo snage na pravom mestu, pravi stav na vetru, i dovoljno strpljenja da pustiš brdu da radi za tebe. Sledeći korak? Da povežem modulator sa GPX-om telefona i da posle svakog treninga dobijem automatski predlog za sledeći — kao lični trener koji govori jezikom fizike.


___

Nastavnik: Vuk, možeš li ukratko objasniti svoj „modulator fizičkih procesa“?

Teacher: Vuk, can you briefly explain your “physical processes modulator”?


Vuk: To je Python skripta koja računa potrebnu snagu na svakom segmentu staze koristeći nagib, CdA, Crr, vetar i brzinu.

Vuk: It’s a Python script that computes required power on each course segment using gradient, CdA, Crr, wind, and speed.


Mila: Odakle ti podaci o stazi?

Mila: Where do you get the course data?


Vuk: Učitam GPX sa telefona, parsiram visinu i udaljenost, pa računam nagib po tačkama.

Vuk: I load a GPX from my phone, parse elevation and distance, then compute gradient point by point.


Nikola: A kako modeliraš otpor vazduha?

Nikola: And how do you model air resistance?


Vuk: Koristim formulu ½·ρ·CdA·v²; ρ menjam prema temperaturi da simuliram hladan i topao dan.

Vuk: I use the ½·ρ·CdA·v² formula; I vary ρ by temperature to simulate cold and warm days.


Nastavnik: Da li meriš i subjektivni napor, recimo RPE?

Teacher: Do you measure subjective effort too, like RPE?


Vuk: Da, unosim RPE posle svake sesije i kalibrišem pragove snage za zone.

Vuk: Yes, I log RPE after each session and calibrate power thresholds for zones.


Mila: Šta ti modulator predloži kad preteraš sa intervalima?

Mila: What does the modulator suggest if you overdo intervals?


Vuk: Daje “crvenu zastavicu” i predlaže zamenu za dan tehnike ili mobilnosti.

Vuk: It raises a “red flag” and suggests swapping to a technique or mobility day.


Nikola: Može li to da radi i za bicikl, ne samo skije?

Nikola: Can it work for cycling, not just skiing?


Vuk: Da, samo promenim Crr i odnos kadence; profil i fizika ostaju isti.

Vuk: Yes, I just change Crr and cadence parameters; the profile and physics stay the same.


Nastavnik: Kojim bibliotekama vizualizuješ rezultate?

Teacher: Which libraries do you use for visualization?


Vuk: Pandas za tabelu segmenata i matplotlib za graf snage, pulsa i visinskog profila.

Vuk: Pandas for segment tables and matplotlib for power, heart rate, and elevation plots.


Mila: Kako procenjuješ puls, to je ipak biološki sistem?

Mila: How do you estimate heart rate—it’s a biological system after all?


Vuk: Aproksimiram ga kao sistem prvog reda koji prati ciljnu snagu sa malim kašnjenjem.

Vuk: I approximate it as a first-order system tracking target power with a small delay.


Nikola: A laktat?

Nikola: And lactate?


Vuk: Raste kad pređem kritičnu snagu i opada u Z1–Z2; to je jednostavan eksponencijalni model.

Vuk: It rises above critical power and decays in Z1–Z2; it’s a simple exponential model.


Nastavnik: Kako proveravaš da li ti model ima smisla?

Teacher: How do you validate that your model makes sense?


Vuk: Uporedim predviđeni puls sa realnim iz sata; tražim da greška srednje vrednosti bude mala.

Vuk: I compare predicted heart rate with actual watch data; I aim for a small mean error.


Mila: Šta si naučio o taktici na usponima oko Podgorice?

Mila: What did you learn about climbing tactics around Podgorica?


Vuk: Kratki “push” na početku uspona pa stabilizacija daje najmanji drift pulsa i laktata.

Vuk: A short push at the start of the climb then stabilization yields the least HR and lactate drift.


Nikola: Možemo li mi da koristimo tvoj kod za naš projekat iz informatike?

Nikola: Can we use your code for our computer science project?


Vuk: Naravno, očistio sam repo i dodao primer GPX fajla i Jupyter beležnicu.

Vuk: Sure, I cleaned the repo and added a sample GPX file and a Jupyter notebook.


Nastavnik: Odlično, ali dodaj i testove i kratak README o pretpostavkama modela.

Teacher: Excellent, but add tests and a short README about model assumptions.


Vuk: Važi, dodaću pytest za parsiranje GPX-a i verifikaciju izračuna snage.

Vuk: Will do—I’ll add pytest for GPX parsing and power calculation verification.


Mila: A šta je sledeće u roadmap-u?

Mila: What’s next on the roadmap?


Vuk: Real-time mod: telefon šalje brzinu i nagib, a modulator daje glasovne sugestije za tehniku.

Vuk: A real-time mode: the phone streams speed and gradient, and the modulator gives voice technique cues.


Nastavnik: Sjajno. To je primer kako se fizika, programiranje i sport spajaju u praktičnu inovaciju.

Teacher: Great. That’s a perfect example of physics, programming, and sport merging into practical innovation.

 
 
 

Comments


bottom of page