sobota, 29 grudnia 2012

Z88 Aurora - obliczenia MES pod Linuksem

Z88 Aurora jest darmowym (freeware) oprogramowaniem służącym do wykonywania obliczeń wytrzymałościowych metodą elementów skończonych. Poniższy post zawiera wskazówki dotyczące uruchomienia Z88 pod Linuksem i prosty przykład obliczeń wykonanych na bryle zapisanej w formacie STEP.

Z88 do wersji V14 był wydawany na licencji GPL i można znaleźć go w repozytoriach. Znacznie przyjaźniejszy użytkownikowi Z88 Aurora nie mógł zostać na niej wydany (odsyłam do FAQ programu) i należy pobrać go ze strony projektu. Rozpowszechniana jako freeware Aurora jest dostępna (obok wersji dla Windows i OS X) tylko dla 64-bitowym wersji Linuksa.

Instalację należy przeprowadzić zgodnie (rozpakowanie, nadanie uprawnień) z instrukcją dostępną na w/w stronie. Brakujący plik libTKFillet.so.0 w katalogu ubuntu64 można skopiować z katalogu suse64 (w bibliotekach Ubuntu 12.04 i 12.10 znajduje się tylko nowszy libTKFillet.so.2).
Źródłem problemów może być też przecinek używany w języku polskim jako separator dziesiętny. Pomogło ustawienie angielskiego formatu wyświetlania liczb - w Ubuntu: Ustawienia systemu...-Języki-Ustawienia regionalne.


Prosty projekt

Zakładam, że udało się bezproblemowo uruchomić Z88 Aurora. Przykład będzie polegał na zamodelowaniu dwuteownika w programie FreeCAD i zaimportowaniu go oraz obliczeniu naprężeń w Aurorze. Przykład jest banalny by można łatwo zweryfikować jego poprawność.

Utworzyłem model dwuteownika szerokostopowego HEB 100 o długości 1000 mm. FreeCAD używa milimetrów, a biblioteka materiałów Z88 milimetrów i niutonów. Nie ma tu problemu niezgodności programów. 


 Zaznaczyłem bryłę i wyeksportowałem ją do pliku STEP.


Pierwszą rzeczą, którą trzeba zrobić po przejściu do Z88 jest utworzenie nowego projektu. Klikamy New i tworzymy pusty katalog. W tym katalogu będą znajdować się wszystkie pliki związane z obliczeniami. Są one zapisywane na bieżąco i mają postać czystego tekstu.
Następnie klikamy na ikonę dyskietki z napisem .STP i importujemy wcześniej zapisany plik STEP.


Widok można przesuwać lewym przyciskiem myszy, obracać prawym i przybliżać kółkiem. Przyciski Shaded, Surface Mesh, Mesh i Picking zmieniają widoczność obiektu.


Większość programów MES dzieli się na trzy części:
  • preprocesor, gdzie tworzymy siatkę oraz nadajemy więzy o obciążenia,
  • solwer, który dokonuje obliczeń,
  • postprocesor, gdzie można zobaczyć wyniki.
Wybierzmy Pre-processor by utworzyć siatkę. Tu warto się zatrzymać przy wyborze elementów na które ma zostać podzielony obiekt. Od typu wybranego czworościanu (linear lub quadratic) będzie zależał czas wykonywania obliczeń ich dokładność, a także ilość użytej pamięci.


Podręcznik programu (znajdujący się razem z Z88) opisuje różnice w ten sposób:

Tetrahedron No. 17
- Linear shape functions
- Quality of displacements bad
- Stresses in the Gauss points inaccurate
- Stresses in corner nodes very inaccurate
- Computing effort: medium
- Size of element stiffness matrix: 12  12

Tetrahedron No. 16
- Quadratic Isoparametric Serendipity element
- Quality of displacements very good
- Stresses in the Gauss points very good
- Stresses in corner nodes good
- Computing effort: very high
- Size of element stiffness matrix: 30  30
Przy pierwszej próbie nie ma sensu przeciążać komputera, stąd wybieram pierwszą opcję (linear). Value określające dokładność siatki (im niższa wartość tym dokładniejsza) ustawiłem na 10.


Kolejny krok to wybranie miejsc które będą utwierdzone lub obciążone. W Picking należy wybrać Select nodes (Select surfaces przydatne jest tylko dla obciążenia ciśnieniem).
Zakładam, że czoło dwuteownika będzie utwierdzone, a przeciwna końcówka półki będzie obciążona siłą. To podstawowy przypadek rozważany na zajęciach z wytrzymałości materiałów, gdzie belka jest jednym końcem zamurowana w ścianie, na drugi koniec ktoś naciska (pierwszy przykład).

Zaznaczam jeden punkt (węzeł) na czole, trzymając wciśnięty [Ctrl]. Punkty można powiększać lub zmniejszać (zielony "+" lub czerwony "-") by ułatwić sobie zaznaczanie.


Wybranie przycisku Surface (kąt ustawiony na 0, ustawienie tego kąta dla powierzchni wypukłych/wklęsłych szeroko opisuje podręcznik użytkownika) spowoduje zaznaczenie pozostałych węzłów na powierzchni czołowej. Wybieram Add set i nazywam go "zamurowanie".



Klikam De-select all by odznaczyć wszystko i mogę przystąpić do zaznaczania kolejnych węzłów. W ten sam sposób zaznaczam węzły na półce, ale jeszcze nie wybieram Add set.


Chcę obciążyć tylko fragment powierzchni. Obracam widok i trzymając [Shift] odznaczam zaznaczeniem prostokątnym niepotrzebne węzły. Teraz mogę dodać pozostałe jako "obciazenie".


Przechodzę do panelu Constraints. Wybieram węzły, które mają być utwierdzone ("zamurowanie") i ustawiam przemieszczenia (Displacements) w kierunku X, Y i Z na 0.


Dodaję siły do powierzchni nazwanej "obciazenia" zaznaczając Surface load. Tu trzeba zwrócić uwagę na układ współrzędnych. W moim przypadku było to -10000[N] wzdłuż Y.


Koniecznie trzeba przypisać materiał do elementu. Można to zrobić po kliknięciu na ikonę III. Wybrałem stal konstrukcyjną S235JR.


Przechodzimy do wyboru solwera, który obliczy odkształcenia i naprężenia zredukowane (wg Hubera albo, wg twórcy programu, von Misesa). Tu znów muszę odesłać do dokumentacji programu, która opisuje każdy z solwerów. Wybrany przeze mnie PARDISO nadaje się, z uwagi na pamięciożerność, tylko do mniejszych projektów. Jest za to bardzo szybki - obliczenie dwuteownika zajęło mojemu komputerowi może ze 3, 4 sekundy.
Przy dużych projektach konieczne jest wybranie SICCG albo SORCG.


Pozostało przejście do postprocesora i obejrzenie wyników. 



Maksymalne ugięcie wyniosło 3,64 mm a naprężenia w węzłach 120 N/mm^2, czyli 120 MPa.

Czy te wyniki mają jakikolwiek sens. Tak prosty przykład można policzyć ręcznie w celu sprawdzenia.

Maksymalny moment zginający to:
M=F*l=10 000 N*1000 mm=10 000 000 Nmm

Wskaźnik na zginanie dla HEB 100 wynosi:
Wx=90000 mm^3

Stąd naprężenia:
Sig=M/W=10 000 000 Nmm/90 000 mm^3=111 N/mm^2=111 MPa

Strzałka ugięcia dla tak utwierdzonej belki opisana jest wzorem:
f=F*l^3/(3*E*J), gdzie:
E - moduł Younga,
J - moment bezwładności przekroju.

Stąd:
f=10 000 N*(1000 mm)^3/(3*206 000 N/mm^2*4,5*10^6 mm^4)=3,6 mm

Tyle na dziś

Wykonanie całości zajęło około kwadransa. Pliki można pobrać stąd. W przypadku grubych błędów krzyczeć, miałem prawo się pomylić. W końcu sobota.

Szczęśliwego Nowego Roku!

Bonus

 

4 komentarze:

  1. Bardzo dobry post, dziękuję.

    OdpowiedzUsuń
  2. Fajny program. Czy istnieją jakieś dodatki do tego pakietu umożliwiające przeprowadzenie symulacji innych procesów? Mam na myśli symulację np. procesów termicznych czy elektromagnetycznych.

    OdpowiedzUsuń
    Odpowiedzi
    1. Dodatkowo (out of box) są: obliczenia termiczne, częstości własnych, obliczenia nieliniowe.

      Usuń
  3. Przy obliczaniu naprężeń oprócz momentu zginającego również są naprężenia ścinające. Trzeba obliczyć jeszcze naprężenia zredukowane.

    OdpowiedzUsuń