Siedem stanów, bez chemii spalania
Rzeczywiste spalanie to skomplikowany system, w którym uwzględnione są wymiany ciepła, szybkości reakcji chemicznych i dynamiki płynów – naprawdę trudny do rozwiązania w czasie rzeczywistym. Symulacja za pomocą automatu komórkowego unika tego wszystkiego, nigdy nie rozwiązując bezpośrednio podległej fizyki. Zamiast tego, każda komórka na siatce przechowuje jeden z niewielu dyskretnych stanów – drewno, ogień, popiół, dym, woda, ściana – a krótki zestaw lokalnych zasad decyduje, komórka po komórce, jak te stany zmieniają się z jednego kroku do następnego, tylko na podstawie stanu własnej komórki i jej najbliższych sąsiadów. Efekt wizualny przypomina ogień, ponieważ zasady zostały zaprojektowane tak, aby odtwarzać jakościowe zachowanie ognia, a nie dlatego, że kiedykolwiek obliczono temperaturę lub szybkość reakcji.
Zasada rozprzestrzeniania się ognia
W każdym kroku symulacji, każda komórka typu 'drewno', znajdująca się obok co najmniej jednej komórki oznaczony jako 'paląca', ma szansę zapłonąć; paląca komórka może przerodzić się w popiół i w końcu w popieleńce, a popieleńce promieniuje ciepłem, dzięki czemu może na krótko zapalić sąsiednie komórki przed wystymieniem. Całość stanowi probabilistyczną wersję prostej zasady liczenia sąsiadów, podobną pod względem ducha do Gry Conwaya o Życiu:
dla każdej komórki c: jeśli c jest 'DRZEŃ' i ma sąsiada palącego: p_zapłonu = stopień_bazowy * suchość_paliwa(c) * czynnik_wiatru(c, kierunek_wiatru) jeśli losowa() < p_zapłonu: c → 'PALĄCY' jeśli c jest 'PALĄCY': jeśli losowa() < współczynnik_gaszenia: c → 'POPIELEŃCE' jeśli c jest 'POPIELEŃCE': jeśli losowa() < współczynnik_chłodnienia: c → 'ZASŁONA GDZIACH' jeśli c jest 'WODA': c pozostaje 'WODĄ' na zawsze // prawdopodobieństwo zapłonu wynosi zawsze 0 Dym jest produkowany oddzielnie: komórki 'palące' i 'popieleńce' emitują cząsteczki dymu, które unoszą się, zgodnie z uproszczoną regułą adwersji obciążoną kierunkiem wiatru i wygasa w czasie — wizualnie przekonujące bez uruchamiania rzeczywistego solvera płynu.
for each cell c:
if c is WOOD and has a burning neighbour:
p_ignite = base_rate * fuel_dryness(c) * wind_factor(c, wind_dir)
if random() < p_ignite: c → FIRE
if c is FIRE:
if random() < burnout_rate: c → EMBER
if c is EMBER:
if random() < cool_rate: c → ASH
if c is WATER:
c stays WATER forever // ignition probability is always 0
Dlaczego wiatr ma takie znaczenie
W prawdziwych pożarach wiatr robi dwie rzeczy: przechyla płomień w kierunku niezapalonego paliwa, podgrzewając je promieniowaniem i bezpośrednim kontaktem jeszcze przed dotarciem frontu płomieni, oraz dostarcza świeże tlen do strefy spalania, utrzymując wyższą prędkość spalania. Model komórkowy oddaje to ogólny efekt za pomocą mnożnika kierunkowego na prawdopodobieństwie zapłonu – komórka drewna po stronie wiatru płomienia zapala się znacznie łatwiej niż komórka identyczna po stronie przeciwnej wiatru lub z wiatrem, co odzwierciedla wydłużone, wiatr-rozciągnięte fronty ognia widoczne w prawdziwych pożarach bez symulowania przepływu powietrza.
Przerywające i jak model zniekształca realizm
Komórki wody i ściany mają zerową prawdopodobieństwo zapłonu, niezależnie od tego, ile sąsiednich komórek spala się wokół nich, co daje czysty sposób na testowanie, jak rzeka, droga lub wytyczony linią pożarowa zatrzymuje rozprzestrzenianie się ognia — to ten sam logiczny sposób, w jaki używają tego strażacy, przy cięciu linii otoczenia. Rzeczywiste ograniczenie modelu polega na tym, że nie ma prawdziwego pola temperatury ani transportu ciepła promieniowego na odległość; każda interakcja jest sąsiedztwa najbliższego, więc efekty takie jak dalekosiężne obserwacje (popiół niesiony wiatrem do zapalania paliwa daleko przed głównym ogniem) muszą być dodane jako dodatkowe reguły jawne, zamiast pojawiać się naturalnie z powodu fizyki, tak jak robi to w pełnych modelach obliczeniowej dynamiki płynów ognia.
Frequently asked questions
Czy to właśnie w ten sposób modelowane jest rzeczywiste rozprzestrzenianie się pożarów lasu?
Automaty komórkowe stanowią autentyczną i aktywnie wykorzystywaną rodzinę modeli pożarów, cenioną za wystarczającą szybkość do szybkiego przeprowadzenia wielu scenariuszy, choć służby ratownicze często łączą je z modelami opartymi na fizyce, takimi jak wzorzec Rothermela, aby przekształcić warunki paliwa i wiatru w bardziej realistyczne prawdopodobieństwa dla poszczególnych komórek.
Dlaczego wiatr sprawia, że pożar rozprzestrzenia się tak szybko w jednym kierunku?
Wiatr przechyla płomień w kierunku niezagazonego paliwa naprzeciwległego kierunku, podgrzewając go bezpośrednim kontaktem i promieniowaniem przed dotarciem fizycznym ognia, a także dostarcza świeżego tlenu do strefy reakcji. W modelu komórkowym jest to odwzorowywane poprzez zwiększenie prawdopodobieństwa zapłonu dla komórek w kierunku naprzeciwległym od wiatru w stosunku do komórek podwietrnych lub bocznymi.
Dlaczego woda zatrzymuje pożar w symulacji, ale nie tylko stoi pasywnie?
Komórka z wodą ma zerowe prawdopodobieństwo zapłonu niezależnie od liczby sąsiednich komórek płonących, co oznacza, że działa jako twardy próg przeciwpożarowy – odzwierciedlając sposób działania rzeczywistych działań straży pożarnej, które albo usuwają paliwo (linię przeciwpożarową) lub wykorzystują wodę do schładzania materiałów poniżej temperatury zapłonu.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Fire and Smoke i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację Fire and Smoke