Polski System MES · wersja instrukcji 1.0 · dotyczy programu 1.6.0
PoSMES liczy konstrukcje metodą elementów skończonych. Wczytuje model z pliku CAD albo buduje bryłę parametrycznie, dzieli go na siatkę, przyjmuje warunki brzegowe i rozwiązuje zadanie: statyczne, dynamiczne, cieplne, zmęczeniowe albo przetwórcze. Wynik pokazuje jako mapę na modelu, wykres i raport do dokumentacji.
Program działa w przeglądarce, ale nie jest usługą sieciową — patrz punkt następny. Nie ma w nim kroku budowania ani zależności zewnętrznych: to pliki PHP i JavaScript, które wystarczy skopiować na serwer albo uruchomić lokalnie.
Co to znaczy w praktyce:
| Pytanie | Odpowiedź |
|---|---|
| Czy model opuszcza moją maszynę? | Nie. Plik CAD czytany jest w przeglądarce, siatkowanie i solver działają lokalnie. |
| Czy potrzebny jest internet? | Do samych obliczeń nie. Do pierwszego wczytania biblioteki widoku 3D — tak, chyba że umieścisz ją lokalnie. |
| Co robi serwer PHP? | Podaje pliki programu, prowadzi konta i licencje, zapisuje projekty. Nie liczy. |
| Czy szybkość zależy od łącza? | Nie. Zależy od procesora i pamięci stacji roboczej. |
| Kto widzi wyniki? | Tylko Ty, dopóki sam nie zapiszesz projektu na serwerze albo nie wyślesz raportu. |
Potwierdzenie znajdziesz w samym programie: menu „O programie" → pozycja „Obliczenia". Pokazuje, czy zadanie liczy przeglądarka, czy agent lokalny — trzeciej możliwości nie ma.
Skopiuj pliki na serwer z PHP 8.1 lub nowszym i prawem zapisu do katalogu data/.
Baza domyślna to SQLite — nie wymaga niczego więcej. Pierwsze wejście na stronę zakłada strukturę bazy.
php -S localhost:8000
Uruchomione w katalogu programu. Następnie http://localhost:8000 w przeglądarce.
Przycisk „Analiza ▾" w pasku górnym obejmuje wszystko, co dotyczy analizy jako całości, a nie pojedynczego kroku.
| Polecenie | Co robi |
|---|---|
| Nowa analiza | Czyści warunki, siatkę i wyniki. Pyta, zanim skasuje zadane warunki. |
| Kreator analizy… | Dobiera rodzaj analizy z pytań o cel — patrz niżej. |
| Zapisz analizę | Na serwerze, pod bieżącą nazwą; nadpisuje poprzedni zapis tej analizy. |
| Zapisz jako nową… | Osobny wpis — do wariantów tego samego zadania. |
| Otwórz analizę… | Lista zapisanych na koncie, z możliwością usunięcia. |
| Zapisz do pliku | Plik .json na dysku. Działa bez serwera i bez konta. |
| Wczytaj z pliku… | Ten sam plik z powrotem — także na innym komputerze. |
Zapis obejmuje rodzaj analizy wraz z jej ustawieniami, geometrię parametryczną, materiał (z własną kartą, jeśli była), warunki brzegowe i nastawy siatki. Nie obejmuje geometrii z pliku CAD — ta potrafiłaby ważyć setki megabajtów, a leży u Ciebie na dysku. Projekt oparty na imporcie odtworzy więc wszystko poza samą bryłą i powie o tym wprost.
Katalog liczy czterdzieści jeden policzalnych pozycji i jest ułożony według metody: liniowe, nieliniowe, dynamika, cieplne. Tak myśli ten, kto pisał solver. Ten, kto ma zadanie do policzenia, myśli inaczej: czy to wytrzyma, czy nie zacznie drgać, na ile starczy. Kreator prowadzi od pytania inżynierskiego do analizy — najwyżej trzema pytaniami, bo tyle wystarcza.
Każda odpowiedź zawęża wybór według rzeczywistego kryterium: czy materiał zostaje sprężysty, czy wymuszenie jest znane, ile cykli przewidziano, jak połączone są części. Na końcu kreator podaje powód wyboru, ograniczenia analizy oraz listę warunków brzegowych, które trzeba będzie zadać — a dopiero przycisk „Ustaw analizę" cokolwiek zmienia.
Wstążka etapów pod paskiem poleceń prowadzi przez sześć kroków. Kolejność nie jest przypadkowa: każdy krok korzysta z ustaleń poprzedniego.
| Krok | Co ustalasz | Na co wpływa |
|---|---|---|
| 1. Analiza | rodzaj zadania | zestaw dostępnych warunków, materiałów i wyników |
| 2. Model | geometria z pliku CAD albo bryła parametryczna | wszystko dalsze |
| 3. Materiał | gatunek z biblioteki albo własny | sztywność, masa, zapas bezpieczeństwa |
| 4. Warunki | podparcie i obciążenie | samo rozwiązanie |
| 5. Siatka | typ elementu i gęstość | dokładność i czas liczenia |
| 6. Wyniki | pole, skala, sonda, animacja, raport | — |
Trzy drogi:
| Element | Kiedy | Uwaga |
|---|---|---|
| TET10 | zalecany domyślnie | kwadratowy, dobrze znosi zginanie |
| TET4 | szybkie rozpoznanie, siatki bardzo gęste | zbyt sztywny przy zginaniu — zaniża ugięcie |
| HEX8 | geometria regularna | z modami niezgodnymi; w zadaniach nieliniowych są wyłączone |
Panel siatki pokazuje raport jakości: najgorszy element, liczbę elementów wywróconych i werdykt. Element o współczynniku kształtu bliskim zera psuje wynik miejscowo i potrafi zepsuć zbieżność całego zadania.
Biblioteka obejmuje stale, aluminium, stopy miedzi, tworzywa i materiały o właściwościach reologicznych. Lista jest zawężana do analizy: przy wtrysku pokazują się tworzywa z danymi przetwórczymi, przy pełzaniu — materiały z prawem Nortona.
Materiał własny dodaje się przyciskiem w panelu materiału. Poza modułem Younga, liczbą Poissona i gęstością można podać:
Warunek składa się ze wskazania na modelu i wartości. Tryb wyboru przełącza się nad widokiem i decyduje o tym, jak drobne może być wskazanie:
| Tryb | Co obejmuje kliknięcie |
|---|---|
| Ściana | całą płaszczyznę, w której leży kliknięty trójkąt — najszybszy, ale przy dużych powierzchniach bierze więcej, niż zwykle potrzeba |
| Element | pojedynczy element siatki; najdrobniejszy wybór poza węzłem. Wymaga wygenerowanej siatki |
| Krawędź | pas węzłów wzdłuż linii między ścianami |
| Węzeł | pojedynczy, najbliższy węzeł siatki |
| Bryła | cały model, bez wskazywania |
Pole „Ogranicz do promienia" zawęża wybór do zadanej odległości od klikniętego punktu — tak wycina się krążek na dużej ścianie zamiast całej płaszczyzny.
| Warunek | Co robi |
|---|---|
| Utwierdzenie | odbiera wszystkie trzy stopnie swobody |
| Podpora | blokuje ruch prostopadle do ściany, pozwala na ślizg |
| Symetria | pozwala liczyć połowę albo ćwiartkę modelu przy tej samej dokładności |
| Siła, ciśnienie, moment | obciążenie; moment przez parę sił stycznych, bo elementy bryłowe nie mają obrotowych stopni swobody |
| Łożysko | nacisk sworznia rozłożony kosinusowo po połowie obwodu otworu |
| Wirowanie | siła odśrodkowa ρω²r; wskazuje też oś obrotu dla dynamiki wirników |
| Grawitacja | ciężar własny, wartość to krotność g |
| Przemieszczenie | wymuszone przesunięcie — wcisk, dokręcenie |
Temperatura, strumień ciepła, przejmowanie ciepła, ciśnienie na wlocie i wylocie, trzpień śruby, obszar podmodelu, brzeg podstruktury, złącze sprężyste, śruba złącza. Każdy ma podpowiedź opisującą, co dokładnie robi i kiedy się go używa.
Katalog liczy 54 pozycje, z czego 41 jest policzalnych. Odznaka przy nazwie mówi, w jakim stanie jest analiza:
Pod nazwą analizy program pokazuje dokładność — wynik z zestawu weryfikacyjnego, na przykład „Siła krytyczna 0,8% wobec wzoru Eulera (TET10)". To nie jest deklaracja marketingowa, tylko liczba z testu, który da się uruchomić samodzielnie.
| Rodzina | Analizy policzalne |
|---|---|
| Liniowe | statyka, drgania własne, wyboczenie, statyka i modalna ze wstępnym naprężeniem, perturbacja liniowa, podstruktury (CMS) |
| Nieliniowe | statyka nieliniowa, duże przemieszczenia, plastyczność, ścieżka pokrytyczna, kontakt, hipersprężystość, lepkosprężystość, pełzanie, napięcie wstępne śrub |
| Dynamika | odpowiedź harmoniczna, przebieg czasowy liniowy i nieliniowy, dynamika jawna, spektrum odpowiedzi, drgania losowe, dynamika wirników |
| Cieplne | przewodnictwo ustalone i nieustalone, naprężenia termiczne, sprzężenie termomechaniczne |
| Przepływ | przepływ potencjalny, ośrodek porowaty |
| Tworzywa | wtrysk — wypełnianie formy |
| Zmęczenie | S-N, ε-N, wieloosiowe, termomechaniczne, wzrost pęknięcia |
| Złożenia | styki sklejone, kontakt, połączenia śrubowe, złącza i przeguby, podmodelowanie |
| Akustyka | pole ciśnienia akustycznego |
W przygotowaniu pozostaje dziewięć analiz przepływowych, trzy dalsze fazy wtrysku (docisk i skurcz, paczenie, układ chłodzenia) oraz wibroakustyka.
Pod wyborem analizy pojawiają się jej własne ustawienia — tłumienie i pasmo częstości przy odpowiedzi harmonicznej, krok i liczba kroków przy przebiegu czasowym, zakres prędkości przy dynamice wirników, grubość ścianki i temperatura masy przy wtrysku. Wartości domyślne są rozsądne, ale rzadko są Twoje.
Lista pól wynikowych budowana jest z tego, co dana analiza naprawdę policzyła. Analiza modalna nie ma naprężeń, zadanie cieplne nie ma przemieszczeń, a materiał bez granicy plastyczności nie ma zapasu — pola, którego nie da się policzyć, nie ma na liście.
Widok wygładzony (domyślnie włączony) uśrednia wartość w węzłach i rozciąga po elemencie. Pole naprężeń w ciele ciągłym jest ciągłe, więc schodki na granicach elementów są artefaktem podziału. Wyłączenie wygładzenia pokazuje wartość surową — a rozmiar skoku między elementami jest miarą jakości siatki, więc warto tam czasem zajrzeć.
Legenda podaje zakres liczbowo, nie samym paskiem koloru. Nad nią stoi nazwa pola i jednostka, a przy polach, które nie są zwykłym przemieszczeniem — również zastrzeżenie. Przykład: odpowiedź harmoniczna pokazuje amplitudę drgań przy częstości o największej odpowiedzi, a spektrum odpowiedzi — obwiednię złożoną statystycznie, nie stan chwilowy.
W kroku „Wyniki" kliknięcie modelu odczytuje wartość w tym miejscu. Mapa odpowiada na pytanie gdzie jest najgorzej, tabela ekstremów na ile tam wynosi — a sonda na pytanie zadawane przy odbiorze najczęściej: ile jest w tym konkretnym miejscu, w osi otworu, na krawędzi spoiny, w przekroju, o który pyta rysunek.
Odczyt podaje wartość, jednostkę i położenie. Pola węzłowe (przemieszczenie, temperatura, czas wypełnienia) czytane są z węzła najbliższego kliknięciu; pola elementowe (naprężenie, zapas, naprężenia główne) są z natury stałe na elemencie i tak są podpisane. Znacznik na modelu jest jeden — kolejne kliknięcie go przenosi.
Maksimum podawane jest wraz ze współrzędnymi — „214 MPa" bez miejsca w bryle jest bezużyteczne. Poniżej stoi tabela pięciu najbardziej wytężonych elementów: mapa mówi gdzie, a tabela o ile, i to ona rozstrzyga, czy wystarczy zmienić promień, czy trzeba ruszyć przekrój.
Analizy, których wynikiem jest przebieg, a nie rozkład po bryle, dostają wykres nad panelem wyników. Wykres trafia też do raportu HTML.
| Analiza | Co pokazuje wykres |
|---|---|
| Odpowiedź harmoniczna | amplituda w funkcji częstości, skala logarytmiczna, rezonanse zaznaczone |
| Drgania losowe | gęstość widmowa odpowiedzi, obie osie logarytmiczne |
| Przebiegi czasowe | wychylenie w funkcji czasu |
| Przewodnictwo nieustalone | maksimum, minimum i punkt pomiarowy — rozejście krzywych to gradient |
| Statyka nieliniowa, długość łuku | ścieżka równowagi; opadający odcinek to przeskok |
| Pełzanie, relaksacja | odkształcenie i spadek naprężenia w czasie |
| Wzrost pęknięcia | głębokość wady w funkcji liczby cykli, z wymiarem krytycznym |
| Dynamika wirników | wykres Campbella i prędkości krytyczne |
Przycisk animacji dopasowuje się do rodzaju wyniku i mówi wprost, co pokazuje:
Po obliczeniach program potrafi zgłosić uwagi do wyniku. Dotyczą one doboru modelu, kroku albo zakresu — czyli rzeczy, których z samych liczb nie widać. Warto je czytać: każde z nich powstało dlatego, że bez niego wynik wyglądał na bezwarunkowy, a nie był.
| Zastrzeżenie | Co znaczy |
|---|---|
| Postacie o zerowej częstości | model ma stopnie swobody ciała sztywnego — fragment może się przemieścić bez odkształcenia. Brakuje podparcia albo tak zamierzono. |
| Mechanizm częściowy | pierwsza częstość ponad stukrotnie niższa od drugiej: coś kołysze się jako całość, zamiast drgać. |
| Mnożnik krytyczny poniżej jedności | konstrukcja wyboczy się przed wyczerpaniem wytrzymałości materiału. |
| Ugięcie ponad 2% gabarytu | analiza liniowa układa równowagę na geometrii nieodkształconej; przy takim ugięciu warto policzyć zadanie nieliniowo. |
| Za rzadki krok częstości | szczyt rezonansowy może wypaść między punktami widma, a wtedy amplituda jest zaniżona bez żadnego objawu. |
| Za mało kroków na okres | całkowanie Newmarka jest bezwarunkowo stabilne, więc zbyt długi krok nie objawia się rozbieganiem — tylko cichym zaniżeniem amplitudy. |
| Przebieg urwany przed szczytem | odpowiedź wciąż narastała na końcu okna czasowego; podana wartość szczytowa jest dolnym oszacowaniem. |
| Blokada postaciowa HEX8 | w zadaniu nieliniowym mody niezgodne są wyłączone i element zaniża ugięcie przy zginaniu — użyj TET10. |
Kontrola równowagi wykonywana jest zawsze: suma sił zewnętrznych i reakcji musi dać zero. Błąd większy od promila oznacza zwykle pomyłkę w warunkach brzegowych, a nie niedokładność solvera.
Trzy przyciski na dole panelu wyników:
Przeglądarka radzi sobie z zadaniami do kilkudziesięciu tysięcy stopni swobody. Powyżej stu tysięcy rozkład bezpośredni przestaje mieścić się w jej pamięci i solver przechodzi na gradienty sprzężone — poprawnie, ale znacznie wolniej. Zadanie własne przy takiej wielkości potrafi liczyć się kwadransami i program mówi o tym w trakcie, podając zmierzone oszacowanie czasu, a nie ogólnik.
Dla takich zadań jest agent lokalny — ten sam solver uruchamiany przez Node.js na tej samej stacji roboczej, bez ograniczeń pamięci przeglądarki. Zdejmuje też jedyną realną wadę liczenia w karcie: zamrożenie interfejsu na czas faktoryzacji.
node silnik/lokalnie/agent.js node silnik/lokalnie/agent.js --port 7654 --rownolegle 4
Program wykrywa go sam i przełącza się na niego; gdy agent nie działa, liczy u siebie
bez pytania i bez błędu. Przełącznik ręczny jest w panelu Analiza → Gdzie liczyć.
Agent nasłuchuje wyłącznie na 127.0.0.1, nie czyta plików z dysku i nie ma
dostępu do bazy — jedynym wejściem jest definicja zadania w treści zapytania.
node silnik/lokalnie/policz.js zadanie.json --podsumowanie node silnik/lokalnie/policz.js zadanie.json -o wynik.json
Plik zadanie.json zapisuje przycisk „Zapisz zadanie do policzenia lokalnie".
Ten sam plik przyjmuje agent i wiersz poleceń, więc wariant policzony w nocy skryptem
jest dokładnie tym zadaniem, które widać na ekranie.
W pakiecie jest zestaw weryfikacyjny: 339 testów porównujących wyniki z rozwiązaniami zamkniętymi, benchmarkami i klasycznymi zadaniami nieliniowymi. Uruchamia się go poleceniem:
node silnik/verify/run.js
Odniesieniem są wzory, a nie inny solver: ugięcie wspornika wobec belki Timoszenki, siła krytyczna wobec Eulera, wzmocnienie rezonansowe wobec 1/(2ζ), wartość skuteczna wobec wzoru Milesa, prędkość krytyczna wirnika wobec Ωkr = ω₀, naprężenie odśrodkowe wobec ρΩ²AL²/2, całka prawa Parisa wobec rozwiązania zamkniętego.
Zestaw jest częścią pakietu celowo. Solver, którego nie da się sprawdzić na własnym sprzęcie, jest przy odbiorze i audycie bezwartościowy — pytanie „skąd wiadomo, że to liczy poprawnie" pada zawsze.
| Objaw | Przyczyna i co zrobić |
|---|---|
| Model w jednym kolorze | Pole, które wybrano, jest w tym zadaniu zerowe albo stałe. Sprawdź listę pól — powinna zawierać tylko to, co policzono. |
| „Policz" nieaktywne | Panel gotowości nad przyciskiem mówi, czego brakuje. Wymagania zależą od analizy. |
| Ugięcie ×900 000 przy analizie bez przemieszczeń | Nie powinno się zdarzyć — suwak deformacji chowa się tam, gdzie nic się nie przemieszcza. Jeżeli widzisz go mimo to, zgłoś. |
| Zadanie liczy się bardzo długo | Sprawdź liczbę stopni swobody w pasku stanu. Powyżej stu tysięcy użyj agenta lokalnego albo rzadszej siatki. |
| Iteracja nie zbiega | W zadaniu nieliniowym: zmniejsz krok obciążenia albo przejdź na sterowanie długością łuku. Komunikat podaje mnożnik, przy którym stanęła. |
| Wynik zmienia się przy zagęszczeniu siatki | Tak ma być, dopóki siatka nie jest wystarczająca. Uruchom badanie zbieżności. |
| Widok 3D się nie wczytał | Biblioteka widoku pobierana jest z sieci przy pierwszym uruchomieniu. Sprawdź dostęp albo umieść ją lokalnie. |
| Zmiany w programie nie działają po wgraniu | Przeglądarka trzyma stare moduły. Program wersjonuje je sam, ale przy własnych zmianach odśwież z pominięciem pamięci podręcznej. |