05LABORATORIUM

SzopaLab

Wirtualne laboratorium inżynierskie. Budujesz układ z elementów, naciskasz PLAY i patrzysz, co robi fizyka — nie co miało wyjść.

DOMENY
6
PRZYKŁADY
32
TESTY
625
RDZEŃ
PYTHON + C++

Uruchom w przeglądarce

Laboratorium chodzi na serwerze warsztatu — bez instalacji i bez konta. Obwody elektryczne liczy sama przeglądarka; resztę serwer, i mówi wprost, dlaczego. W środku czeka 36 gotowych laboratoriów — od swobodnego spadku po silnik spalinowy.

URUCHOM LABORATORIUM

zasada nadrzędna

SzopaLab ma symulować prawa fizyki, a nie tylko wyglądać jak program, który je symuluje.

SZOPALAB · SOLVERY
ONLINE
szopalab --domains
MECHANIKACIAŁA · JOINTY · KOLIZJE
ELEKTRYKAMNA · DC I STANY NIEUSTALONE
TERMIKASIEĆ WĘZŁÓW CIEPLNYCH
HYDRAULIKAZBIORNIKI · POMPY · ZAWORY
PNEUMATYKAISO 6358 · PRZEPŁYW KRYTYCZNY
AUTOMATYKAPLC · DRABINKA · PID
mechanika240 Hz
elektryka2400 Hz
pneumatyka1000 Hz
termika20 Hz

MECHANIKA

Sprężyny, amortyzatory, przekładnie, zawieszenie jeżdżące po narysowanej drodze.

ELEKTRYKA

R, C, L, diody, bezpieczniki. Kondensator ładuje się po e-tej, nie „animuje się”.

TERMIKA

Grzałka grzeje wodę mocą, którą naprawdę pobrała z obwodu.

HYDRAULIKA

Mieszanie strumieni z bilansem energii: 60 °C + 10 °C daje 35 °C, nie „ciepłą”.

PNEUMATYKA

Rozprężanie realnie wychładza powietrze — silniki łopatkowe potrafią oszronić wydech.

AUTOMATYKA

Cykl skanu jak w prawdziwym sterowniku: impuls krótszy od cyklu bywa przeoczony.

Każda domena chodzi we własnym takcie i wymienia się z pozostałymi przez próbkowanie z podtrzymaniem — tak samo, jak sterownik czyta czujnik wolniej, niż zmienia się wielkość mierzona. Grzałka nie „dostaje ciepła”, tylko oddaje moc, którą pobrała z obwodu.

Maszyny liczone z geometrii

Silnik nie jest animowaną ilustracją. Położenie tłoka wynika z korby i korbowodu, objętość komory z położenia tłoka, siła z ciśnienia gazu, a moment z bilansu pracy. Źle dobrana maszyna po prostu nie ruszy — tak samo jak prawdziwa.

01

Silnik łopatkowy

Wirnik osadzony mimośrodowo, łopatki wysuwają się ze szczelin. Objętość komory to całka sektorowa szczeliny sierpowej, moment — ciśnienie na wysuniętej części łopatki.

02

Silnik tłokowy i maszyna parowa

Mechanizm korbowy z dokładną kinematyką. Kocioł parowy wytwarza ciśnienie, a nie ma go zadanego: dołóż do pieca, a maszyna przyspieszy.

03

Silnik spalinowy 4-suwowy

Cykl na dwa obroty wału, zakładka zaworowa, spalanie wg funkcji Wiebego. Wyprzedzenie zapłonu ma optimum — po obu stronach jest gorzej.

04

Turbina osiowa

Praca z równania Eulera. Największy moment przy zatrzymanym wirniku, zerowy przy rozbiegu — czego nie robi żadna maszyna wyporowa.

przykład: dlaczego parowóz rusza na pełnym nastawieniu

Maszyna parowa z dwoma cylindrami ma korby ćwiartowane co 90°. Model policzył, że przy krótkim odcięciu pary istnieje położenie wału, w którym jedyny cylinder pod ciśnieniem stoi w martwym punkcie — maszyna nie ruszy. Startuje dopiero od odcięcia około 0,7. Dokładnie dlatego maszynista rusza na pełnym nastawieniu stawidła i skraca je dopiero w biegu. Tego nikt tu nie zaprogramował: to wyszło z geometrii.

Czego program nie robi

Symulator, który zawsze pokazuje ładny wynik, jest bezużyteczny — bo nie da się odróżnić wyniku od życzenia. Te cztery reguły są ważniejsze od listy funkcji.

Nie udaje fizyki

Funkcja niezaimplementowana jest oznaczona wprost, nie zaślepiona wartością, która wygląda sensownie. Wskaźnik spalania stukowego pojawia się dopiero przy modelu, który stuk liczy — stałe „1.00” na ekranie czytałoby się jako „policzone i bezpieczne”.

Rysunek jest widokiem stanu

Tłoki stoją tam, gdzie wynika z kąta korby. Zawory otwierają się wtedy, gdy otwiera je rozrząd. Gdy maszyna gaśnie w symulacji, obraz staje — nie ma animacji obok fizyki.

Tolerancje są kontraktem

Każdy model ma przypadek odniesienia z rozwiązaniem analitycznym i zapisaną tolerancją. Każde jej poluzowanie ma pisemne uzasadnienie.

Błędy wychodzą z uruchomienia

Odwrócony rozrząd, dwa cylindry w martwym punkcie naraz, przepływ pod górę gradientu ciśnienia — żadnego z tych błędów nie wyłapałby przegląd kodu. Dlatego każdy przykład jest uruchamiany i sprawdzany, a nie tylko zapisywany.

Pod maską

DESKTOP
PYTHON + QT
RDZEŃ NATYWNY
C++ / WASM
SERWER
FASTAPI
KLIENT WEB
REACT + WEBGL

jeden rdzeń, trzy sposoby uruchomienia

Solvery elektryki, termiki, hydrauliki i pneumatyki są napisane raz, w C++, bez zależności poza biblioteką standardową. Te same pliki kompilują się dla aplikacji desktopowej, dla serwera i — przez WebAssembly — dla przeglądarki. Dzielnik napięcia daje z każdej z tych dróg tę samą liczbę do ostatniej cyfry. To jest zgodność przez konstrukcję, nie przez dyscyplinę.

część liczy się w Twojej przeglądarce

Obwody elektryczne przeglądarka liczy sama, bez rundy do serwera. Reszta leci strumieniem z serwera, a powód jest pokazany wprost — bo scena z mechaniką albo z silnikiem DC policzona lokalnie dałaby pewny, błędny wynik. Klient nigdy sam nie decyduje, co potrafi policzyć: pyta o to serwer.