Ciekawostki: CFD w wyścigach cz.I

Sezon F1 zbliża się wielkimi krokami. Podobnie z resztą jak start właściwie wszystkich wielkich serii wyścigowych świata. W ramach oczekiwania przyjrzyjmy się elementowi, który bardzo mocno kształtuje współczesny motorsport. Dziś pogadamy jak wykorzystywane jest CFD w wyścigach.

Pomysł na napisanie tekstu wpadł mi po pewnej wymianie zdań w sieci. Otóż śledzę profil Carbonerre Project, gdzie powstaje bardzo fajny pakiet aero do Porsche 911. W Polsce! Duma rozpiera, serio. Zaciekawiony, ze swoją zwykłą inżynierską dociekliwością, zadałem pytanie, czy były robione symulacje CFD. Dostałem odpowiedź „wyszły zacnie, aż planowane jest auto o mocy tysiąca koni”. Gdy zadałem pytanie co to znaczy zacnie i jaki związek ma z mocą, zaczęły się uwagi personalne i przepychanki słowne, więc po kilku takich dyskusję zakończyłem.

CFD to nie jest pisanie wiersza, który można ocenić, że jest „zacny”. To dziedzina nauki, będąca połączeniem fizyki, matematyki i informatyki. Wszystkich dziedzin zaawansowanych w takim stopniu, że ciężko zrozumieć każdy aspekt z osobna bez wiedzy specjalistycznej, a co dopiero ich połączenie. Mimo to większość kojarzy CFD z „ładnych, kolorowych grafik” i…. to tyle, co oczywiście czyni każdego domorosłym ekspertem 😉 . Dziś postaram się wam przybliżyć temat, by nikt nie mógł pod waszym adresem rzucić podobnego komentarza. W części pierwszej spróbuję wam wytłumaczyć podstawy, ale… bez podstaw. Spokojnie więc, nie będziecie musieli sięgać po książki z liceum, kalkulatory, czy inne wynalazki. Na potrzeby tej publikacji spróbuję wytłumaczyć nauki ścisłe, z użyciem prozy.

No dobra, to od strony czysto encyklopedycznej: CFD to skrót od Computational Fluid Dynamics. Po naszemu? Obliczeniowa mechanika płynów, a przynajmniej ja byłem uczony takiego terminu. Kopiemy dalej i cofamy się do samych podstaw, czyli Mechaniki Płynów. Jest to jedna z podstawowych dziedzin inżynierskich obok tzw. „wytrzymałki”, czyli wytrzymałości materiałów, materiałoznawstwa, czy rysunku technicznego. Mechanika płynów zajmuję się opisem ruchu cieczy i gazów, bo oba te stany skupienia zaliczane są do płynów i zachowują się (dość) podobnie. Do opisu parametrów fizycznych płynu używa się szeregu równań i praw, jak np. jednego z podstawowych praw stosowanych w Mechanice Płynów, czyli prawo Bernoulliego.

Dzięki Mechanice Płynów możemy policzyć ciśnienie wody, jakiemu będzie poddawana łódź podwodna, gdy zanurzy się na 200 metrów. Możemy policzyć jaka siła działa na wieżowiec, gdy uderza w niego wiatr o prędkości 50 km/h. Mechanika płynów pozwala też kształtować dysze silników rakiet wynoszących satelity na orbitę, optymalizować kształt samolotów, czy… samochodów właśnie.

Okej, ale dlaczego „Obliczeniowa mechanika płynów”? Przecież w tej tradycyjnej także się liczy! Prawda. Jednak ta tradycyjna, nazwijmy ją podstawową, mechanika płynów, ma ograniczenia. Ograniczenia wynikają z tego, ile jesteśmy w stanie przeliczyć. Po prostu.

Pomyślcie o wodzie płynącej przez rurę, jak o milionie połączonych strumyczków, sklejonych w jeden duży. Byśmy mogli przewidzieć co się stanie, gdy np. do rury dołączymy kolanko 90 stopniowe, musimy być w stanie określić jak zachowa się każdy z tego miliona strumyczków, czyli cząsteczki wody lecącej jedna za drugą. Dla uproszczenia pomyślcie o każdym z tych strumieni, jak o sznurku składającym się z tysięcy „trzymających się za ręce” cząsteczek wody, czy po prostu idących gęsiego.

No dobrze, ale jak to policzyć? Jak w ogóle podejść do tematu? Tu z pomocą przychodzi właśnie CFD. W CFD dzielimy całą objętość płynu – czy to objętość wnętrza rury, czy jakąś skończoną, przyjętą objętość powietrza dookoła samochodu wyścigowego. Tą objętość płynu dzielimy na mniejsze kawałeczki, które CFD nazywa siatką (ang. mesh). Siatka może być trójwymiarowa, ale też dwuwymiarowa, jeśli rozpatrywany przypadek da się uprościć do problemu dwuwymiarowego. Odjęcie jednego wymiaru naprawdę dużo, ale to dużo upraszcza, nie tylko w ilości kalkulacji, jakich musi dokonać komputer.

Co nam daje ta siatka i jak CFD z jej używa? Skorzystajmy z prostego obrazka poniżej. Wybaczcie nikłą wartość artystyczną, ale w tym wypadku sens jest najważniejszy. Mamy naszą rurę, której środek dzielimy sobie siatką i rozpatrujemy jako problem dwuwymiarowy. Miejsca krzyżowania się siatki to tzw. węzły, wierzchołki. Wierzchołki są dokładnie tymi miejscami, dla których komputer dokonuje obliczeń. Każdy wierzchołek ma swój numer, a ja naniosłem tylko początkowe z każdego wiersza, byście zrozumieli ideę. Kolorem czerwonym zaznaczyłem kolejną ważną rzecz, czyli warunki brzegowe. Na górze i na dole warunkiem brzegowym jest po prostu ściana rury, więc program obliczeniowy wie, że woda nie może tam „uciec”. Innymi słowy masa płynącej wody nie przemieści się powyżej, ani poniżej danej ścianki. Po lewej warunek brzegowy, czyli woda wpływająca pod ciśnieniem X, a po prawej inny warunek brzegowy, czyli woda uciekająca z rury z prędkością Y.

Komputer, w dużym uproszczeniu, liczy po kolei każdy z węzłów. Jak liczy? Skąd ma te informacje? W naszym dwuwymiarowym przypadku komputer sprawdza informacje spływające z węzłów, z którymi połączony jest ten, który aktualnie liczy. Innymi słowy przy liczeniu węzła pierwszego (1) komputer wie, że przed nim jest ciśnienie wody wpadające do rury, za nim (węzeł 1a, po prawej)… nie ma nic. Przecież tamten węzeł nie został jeszcze policzony. Powyżej jest ściana rury, a poniżej – znów nie ma nic. Przy liczeniu węzła 1a, komputer wie z kolei, że przed nim jest węzeł 1 i tam coś policzył, powyżej jest ściana, a za nim i pod nim znów nic. I tak dalej, i tak dalej…

Jak się nad tym zastanowić, to jest to ogromny błąd – przecież w dalszej części rury też jest woda i coś tam płynie. Jednak nie da się przecież policzyć wszystkiego na raz, w jednej chwili i do jednych obliczeń używać danych z innych, które są liczone w tym samym czasie. Właśnie dlatego CFD jest iteracyjną metodą obliczeniową. Co to znaczy? Oznacza to, że gdy komputer przeliczy wszystkie węzły po kolei, to… wraca znów do pierwszego węzła (1), który wcześniej policzył. Co wtedy mamy? Przed nim jest wejściowe ciśnienie wody, za nim jest węzeł 1a, w którym też już coś policzyliśmy. Nad nim jest ściana rury, a poniżej węzeł 2, gdzie także coś zostało policzone. Komputer przelicza jeszcze raz i wartość parametrów fizycznych w tym węźle się zmienia, jest aktualizowana i przypisywana do punktu numer 1. Znów przelicza tak wszystkie węzły, znów wraca na początek i znów rozpoczyna kolejną iterację licząc od pierwszego węzła. Z każdą iteracją mamy coraz mniejszą zmianę wyników w danym węźle, bo przybliżenie jest coraz lepsze, a wyniki bliższe tym, które teoretycznie można uzyskać.

Iteracji mogą być setki, a nawet tysiące. Pomyślmy – parametrów fizycznych jest dużo więcej niż ciśnienie, czy masa i prędkość. Jest także lepkość, temperatura, gęstość (mocno zmienna w płynach ściśliwych jak gazy, czyli choćby powietrze), do tego dochodzą zmienne matematyczne i zjawiska, czy parametry matematyczno-fizyczne, które mają wpływ na błędy metody obliczeniowej. Dochodzi siatka trójwymiarowa, dochodzi wiele innych parametrów… Równania opisujące każdy z punktów w siatce stają się naprawdę mocno, ale to mocno rozbudowane. Tych punktów mamy tysiące lub miliony, więc pojedyncze równania zamieniają się w macierze składające się z równań. Te macierze składające się z równań trzeba przeliczać tysiące razy w ramach iteracji. Zaczynamy rozumieć dlaczego CFD może pochłaniać gigantyczne zasoby komputerowe.

Budowane są wręcz całe klastry wyłącznie do obliczeń CFD. Dość powiedzieć, że superkomputery NASA, będące w czołówce najmocniejszych jednostek jakie stworzyła nasza cywilizacja, często stosowane są właśnie do obliczeń CFD. Czy to obliczenia opływu podwozia samolotu w czasie lądowania, czy… wędrówek mas powietrza dookoła całej Ziemi. Pamiętajcie przy tym, że dotknęliśmy raptem kawałeczka możliwości CFD, dzięki któremu można także badać fale dźwiękowe, łączyć ze zjawiskami elektromagnetycznymi, termodynamiką, mechaniką i siłami generowanymi przez płyn np. na ściany wspomnianej rury, a kończąc na zjawiskach naddźwiękowych, gdzie wytwarza się fala uderzeniowa, będąca skokową zmianą wszystkich parametrów fizycznych płynu.

Mam nadzieję, że to co powyżej pozwoliło wam liznąć zagadnień związanych z CFD, bez konieczności zaliczenia pięcioletnich studiów. Z tymi podstawami – bez podstaw, możemy się powoli zwracać w stronę wyścigów. CFD liczy rzeczy, które są tak monstrualnymi obliczeniami, że jednej osobie by nie wystarczyło życia, dla przeliczenia jednego przypadku. Może więc przeliczyć opływ dookoła bolidu F1, choć i to jest tak sporym wyzwaniem nawet dla CFD, że często dzieli się bolid na kilka mniejszych części, dookoła których liczy się przepływ.

Wszystko fajnie, ale przecież nie raz już słyszeliśmy o wielkich problemach zespołów wyścigowych, kiedy to symulacje CFD pokazały jedno, a jazda na prawdziwym torze co innego. Jak to możliwe, skoro 2+2 powinno dać 4 tak na komputerze, jak i w realu? Tu dochodzimy do pewnej wady, pewnego uproszczenia będącego chlebem powszednim każdej informacji przeniesionej ze świata przyrody, do świata cyfrowego, a więc i każdej symulacji. Pamiętacie jak w podstawówce mieliście zadania typu połącz kropki? Komputer robi to samo. Serio.

Szok, bzdura, bujda i oszustwo! Tak? Ano nie. W świecie przyrody funkcje są ciągłe, tak jak nas uczono w szkole, gdy rysowaliśmy je na układzie współrzędnych. Sinus, cosinus i te sprawy. Mam nadzieję, że pamiętacie. Ładne łuki. Krzywe będące całością. W świecie cyfrowym coś takiego nie istnieje. Komputer nie potrafi narysować ciągłej krzywej. Komputer potrafi coś określić tylko w danym punkcie czasu i przestrzeni. Innymi słowy komputer nie rysuje krzywej, tylko sprawdza, że dla wartości X=1, Y=2. Dla wartości X=2, Y=4 itp. itd. Co się dzieje pomiędzy tymi punktami? Komputer nie ma pojęcia. Możemy go poprosić, żeby sprawdzał częściej, czyli dla X=0,1; X=0,2; X=0,3 itp. Wciąż jednak będą to tylko punkty, choć częściej sprawdzane. Jednak by człowiek to widział i rozumiał komputer został zaprogramowany tak, by… znalezione punkty i wartości łączyć odcinkami. Im częściej sprawdzimy wartość, tym punktów będzie więcej, odległości między nimi mniejsze, aż w końcu połączone odcinkami punkty będą dla nas wyglądać jak ładny łuk.

Tak to właśnie wygląda i tyczy się wszystkiego. Geometria, czyli kształt który wygrywamy do komputera by przeprowadzić symulacje. Weźmy kształt skrzydła bolidu F1. Znów nie jest on ciągłą, łukowatą płaszczyzną, a jedynie grupą połączonych punktów. Co się więc robi? Zagęszcza ilość punktów, by mieć jak najlepsze przybliżenie, a zatem zminimalizować błąd. Warunki brzegowe – czy do tej rury powyżej powietrze rzeczywiście wpada nieustanie dokładnie pod ciśnieniem X? Bzdura, w przyrodzie nie istnieje ideał. W rzeczywistości to ciśnienie się waha, a sam pomiar też miał błąd i ciśnienie wcale nie ma wartości wynoszącej dokładnie X. Wreszcie, czy wzory z których korzysta program przeprowadzający symulację CFD są bezbłędne? Znów bzdura. Te wzory, to po prostu najdoskonalsze matematyczne opisy zjawisk fizycznych, jakie do tej pory wymyśliła cywilizacja. Wciąż jednak mają one swoje błędy.

Mamy sam wynik. Znów jest on prezentowany np. jako kolorowy wykres, czy rozkład ciśnienia na płaszczyźnie. Pamiętacie punkty łączone odcinkami? Tak! Nawet to co komputer przeliczył, musi potem przystosować do tego, by ludzki mózg mógł to zrozumieć i obrobić, a więc sama prezentacja wizualna wyników dodaje nam kolejny błąd! Na koniec jeszcze sama wartość wyniku. Ona zawsze jest błędna. Z założenia. Serio! Iteracji może być nieskończenie wiele, a w każdej kolejnej wynik zmienia się coraz mniej. Możemy dojść do momentu, gdy wynik będzie się zmieniał na 10. miejscu po przecinku. To osoba odpowiedzialna za symulację ocenia jaki błąd jest akceptowalny i wart poświęconego czasu. Możemy liczyć z błędem na poziomie drugiego miejsca po przecinku trzy godziny, albo dziesiątego trzy dni.

Te oraz wiele innych błędów nie dających się uniknąć, to przeciwności, z którymi mierzą się na co dzień ludzie pracujący z CFD. Także w motorsporcie. Wojna nie toczy się o to, kto uzyska ideał. Wojna toczy się o to, kto popełni najmniejszy błąd.

W części drugiej zaproszę was do przyjrzenia się już konkretnym przypadkom użycia CFD ze świata motorsportu.

PS. Tekst posiada pewne uproszczenia i ogólniki, ale jest to celowe. Zamiarem było trafić do osób kompletnie mijających się wiedzą z tematem. Mam nadzieję, że się udało :0 .

PPS. Zapraszam także do mojego cyklu, gdzie nie patrzę na stronę techniczną, ale na historię wdrożenia i wykorzystania aerodynamiki w wyścigach: Aerodynamika w samochodach wyścigowych cz. I oraz cz. II.

Leave a Reply

Discover more from 4 kolka i nie tylko

Subscribe now to keep reading and get access to the full archive.

Continue reading