SZOPALAB
LAB

SZOPALAB

Wirtualne laboratorium inżynierskie, w którym każda liczba na ekranie pochodzi z solvera, a nie z animacji.

PROJECT
LAB-060
INTERFEJS
PYSIDE6 · QT 6
MECHANIKA
PYMUNK ZA WARSTWĄ ABSTRAKCJI
ELEKTRYKA
WŁASNY SOLVER MNA
AI
OLLAMA · LOKALNIE
STATUS
W TRAKCIE
DATA
06 września 2026

Środowisko multiphysics typu przeciągnij i upuść: mechanika, elektryka, termika, hydraulika, pneumatyka, automatyka i sterownik PLC liczone w jednym kroku czasowym. Zasada nadrzędna brzmi: symulować prawa fizyki, a nie wyglądać jak program, który je symuluje.

SZOPALAB.SOLVERPĘTLA SYMULACJI MULTIPHYSICS
KROK CZASOWY
WEJŚCIEKONTROLADECYZJANARZĘDZIEPRZETWARZANIEMAGAZYNWYJŚCIEKROK dt12 KROKÓW01SCENA .SZLkomponenty i porty02WALIDACJAPOŁĄCZEŃtylko zgodne typy portów03SCHEDULERkolejność domen w kroku04MECHANIKA 2Dbryły, przeguby, sprężyny05MNAelektryka DC i stany nieustalone06TERMIKAsieć węzłów cieplnych07HYDRAULIKAciśnienie, przepływ, ciepło08PLC I REGULACJAdrabinka, PID09SPRZĘŻENIAprąd → moment → ciepło10BILANS ENERGIIdryf E jako miara błędu11DATA BUSjedyne źródło wartości12WYKRESY IRAPORToscyloskop, PDF
KAŻDA LICZBA W INTERFEJSIE POCHODZI Z SOLVERA PRZEZ DATA BUS · FUNKCJA NIEZAIMPLEMENTOWANA POKAZUJE SIĘ JAKO NOT IMPLEMENTED, NIE JAKO ZERO
01

PROBLEM

Programy do symulacji dzielą się z grubsza na dwie grupy. Pierwsza to narzędzia zawodowe — dokładne, drogie i zamknięte w jednej dziedzinie: osobno mechanika, osobno obwody, osobno termika. Druga to aplikacje edukacyjne, które ładnie animują zjawisko, ale wartości na ekranie bywają wpisane na sztywno albo policzone wzorem zamkniętym dla jednego przypadku.

W warsztacie potrzeba czegoś pomiędzy: żeby dało się postawić silnik prądu stałego, obciążyć go mechanicznie, zobaczyć jak rośnie prąd i jak grzeje się uzwojenie — w jednym modelu, bo to jest jedno zjawisko, tylko opisywane trzema językami.

02

POMYSŁ

Zbudować środowisko, w którym domeny fizyki są równorzędnymi obywatelami i liczą się wspólnie w każdym kroku czasowym. Do tego jedna twarda zasada, przyjęta na starcie i pilnowana w kodzie: każda wielkość pokazana w interfejsie pochodzi z solvera, przez wspólną szynę danych. Funkcja niezaimplementowana ma pokazywać jawny stan „NOT IMPLEMENTED", a nie zero albo prawdopodobnie wyglądającą liczbę.

To brzmi jak drobiazg, a jest kluczową decyzją projektową: uniemożliwia powstanie ładnego demonstratora, który rozjeżdża się z fizyką dopiero wtedy, gdy ktoś zacznie mu ufać.

03

PROJEKT

Interfejs stoi na PySide6, ale — i to jest druga zasada — model nie zna widoku. Pakiety opisujące fizykę, scenę, solvery i jednostki są czystym Pythonem i nie importują niczego z Qt. Dzięki temu całość da się testować bez okna i przenieść w przyszłości do trójwymiaru albo do C++.

Mechanikę dwuwymiarową liczy pymunk schowany za warstwą abstrakcji, żeby backend dało się wymienić. Elektryka to własny solver oparty na zmodyfikowanej analizie węzłowej, obsługujący prąd stały i stany nieustalone w obwodach RC, RL i RLC, diodę oraz przekaźniki zabezpieczające. Termika jest siecią węzłów cieplnych, hydraulika operuje parą ciśnienie–przepływ z transportem ciepła przy mieszaniu.

Komponenty łączy się przez porty, a połączenie powstaje wyłącznie między portami zgodnego typu — walidacja działa w momencie rysowania przewodu, więc nie da się upuścić kabla elektrycznego na przyłącze hydrauliczne.

Scena zapisuje się do formatu .szl, czyli kontenera ZIP z wersją schematu i migracjami — starsze pliki otwierają się w nowszych wersjach programu.

04

REALIZACJA

Sprzężenia międzydomenowe są tym, po co całość powstała. Silnik prądu stałego jest tu przypadkiem wzorcowym: obwód elektryczny wymusza moment, moment napędza mechanikę, straty w rezystancji uzwojenia trafiają do sieci cieplnej i podnoszą temperaturę, która z powrotem zmienia rezystancję.

Doszła automatyka: bloki funkcyjne, regulator PID z zabezpieczeniem przed nasyceniem członu całkującego, czujniki. Potem sterownik PLC jako szósta domena w schedulerze — logika drabinkowa realnie steruje grzałką w laboratorium termostatu, a nie tylko rysuje styki.

Osobna warstwa to eksperymenty: przemiatanie parametrów, porównania A/B i optymalizacja, do tego bilans energii, wizualizacja pól, oś czasu, notatnik i raporty PDF. Lokalna AI przez Ollamę potrafi przeanalizować scenę, zbudować ją z opisu i zaplanować eksperyment — bez wysyłania czegokolwiek na zewnątrz.

Poprawność sprawdzają przypadki referencyjne porównywane z rozwiązaniami analitycznymi, każdy z zapisaną tolerancją: spadek swobodny, wahadło, oscylator Hooke'a i tłumiony, toczenie po równi, zderzenie sprężyste, zachowanie energii, ładowanie RC, narastanie prądu w RL.

05

EFEKT

Sprawdzian wykonany na potrzeby tego opisu: szeregowy obwód RLC pobudzony skokiem 10 V, przy rezystancji 20 Ω, indukcyjności 0,1 H i pojemności 100 µF, policzony ich solverem krokiem 20 µs przez 3001 kroków. Przebieg porównany z rozwiązaniem analitycznym dla przypadku niedotłumionego.

Największa różnica między symulacją a wzorem wyniosła 38,5 mV przy amplitudzie 10 V, czyli poniżej czterech dziesiątych procenta. Przeregulowanie wyszło 13,473 V wobec 13,509 V wynikających z teorii. Na wykresie obie krzywe leżą na sobie — widoczna jest dopiero różnica narysowana we wzmocnionej skali.

W zestawie jest ponad dwadzieścia gotowych laboratoriów: wahadło pojedyncze i podwójne, zawieszenie pojazdu, przekładnia, silnik prądu stałego, pojazd elektryczny, obwody RC i RLC, grzałka, podgrzewanie wody, termostat, zbiornik, pompa z zaworem. Całość pakuje się do samodzielnego pliku wykonywalnego, działającego bez instalacji Pythona.

06

GALERIA

01 ZDJĘĆ
07

WNIOSKI

Zasada „nie udawaj fizyki" okazała się kosztowna i opłacalna jednocześnie. Kosztowna, bo wymusza napisanie solvera zanim powstanie ekran, który miałby coś pokazać. Opłacalna, bo wynikom można ufać bez zastrzeżeń — a symulacja, której się nie ufa, jest bezwartościowa niezależnie od tego, jak wygląda.

Druga decyzja, która się obroniła, to oddzielenie modelu od interfejsu. Dzięki temu ta sama fizyka może stanąć za przyszłym frontem webowym, zamiast doczekać się drugiej, uproszczonej implementacji, która rozjedzie się z pierwszą.

Kolejne kierunki: budowniczy maszyn, rozbudowa pneumatyki przemysłowej i tor webowy, którego kontrakty architektoniczne wprowadzono wcześnie — bo doklejane później wymagałyby przebudowy rdzenia.