Volim da se igram sa Python-om
- elenaburan

- 3 сент.
- 4 мин. чтения

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.
___
Преподаватель: Вук, можешь кратко объяснить свой «модулятор физических процессов»?
Вук: Это скрипт на Python, который рассчитывает требуемую мощность на каждом участке трассы с учётом уклона, CdA, Crr, ветра и скорости.
Мила: Откуда у тебя данные о трассе?
Вук: Загружаю GPX с телефона, извлекаю высоту и расстояние, затем считаю уклон по точкам.
Никола: А как ты моделируешь сопротивление воздуха?
Вук: Использую формулу ½·ρ·CdA·v²; плотность ρ меняю в зависимости от температуры, чтобы смоделировать холодный и тёплый день.
Преподаватель: Измеряешь ли субъективное усилие, например RPE?
Вук: Да, записываю RPE после каждой сессии и калибрую пороги мощности для зон.
Мила: Что предлагает модуль, если ты переборщил с интервалами?
Вук: Выдаёт «красный флажок» и предлагает заменить тренировку на день техники или мобильности.
Никола: Это может работать и для велосипеда, не только для лыж?
Вук: Да, нужно лишь поменять Crr и параметры каденса; профиль и физика остаются теми же.
Преподаватель: Какими библиотеками ты визуализируешь результаты?
Вук: Pandas для таблицы сегментов и Matplotlib для графиков мощности, пульса и высотного профиля.
Мила: Как ты оцениваешь пульс — ведь это биологическая система?
Вук: Аппроксимирую его как систему первого порядка, которая следует за целевой мощностью с небольшим запаздыванием.
Никола: А лактат?
Вук: Он растёт, когда я превышаю критическую мощность, и снижается в Z1–Z2; это простая экспоненциальная модель.
Преподаватель: Как проверяешь, что модель имеет смысл?
Вук: Сравниваю предсказанный пульс с реальным из часов; добиваюсь, чтобы средняя ошибка была небольшой.
Мила: Что ты понял о тактике на подъёмах вокруг Подгорицы?
Вук: Короткий «рывок» в начале подъёма, затем стабилизация — даёт наименьший дрейф пульса и лактата.
Никола: Можем ли мы использовать твой код для нашего проекта по информатике?
Вук: Конечно, я почистил репозиторий и добавил пример GPX-файла и Jupyter-ноутбук.
Преподаватель: Отлично, но добавь тесты и краткий README о предположениях модели.
Вук: Хорошо, добавлю pytest для парсинга GPX и проверки расчёта мощности.
Мила: А что дальше в роадмапе?
Вук: Режим реального времени: телефон передаёт скорость и уклон, а модуль даёт голосовые подсказки по технике.
Преподаватель: Отлично. Это пример того, как физика, программирование и спорт соединяются в практическую инновацию.



Комментарии