Spostrzeżenia ekspertów

Substruktury w Abaqus

Autor: Jakub Michalski | 2026-04-13 06:29:01

 

 

Wprowadzenie

Substruktury (nazywane w literaturze superelementami) to specjalne elementy skończone tworzone z grup standardowych elementów pozbawionych większości stopni swobody, poza tymi, które użytkownik wskazał do zachowania w celu definiowania połączeń. Odpowiedź w obrębie substruktur jest liniowa (są to zredukowane macierze sztywności i masy wybranych elementów), ale mogą być one używane w analizach nieliniowych i podlegać dużym przemieszczeniom.

Dzięki substrukturom, całe komponenty (zwłaszcza powtarzające się) lub podzłożenia można (przy założeniu ich liniowo-sprężystej odpowiedzi) przekształcić w zredukowane macierze i umieścić w modelu globalnego złożenia. Substruktury mogą mieć wiele poziomów (do 20), co pozwala tworzyć z nich złożone konstrukcje np. pojazdów.

Substruktur można używać w krokach *STATIC, *DYNAMIC, *FREQUENCY, *COMPLEX FREQUENCY, *STEADY STATE DYNAMICS oraz *MODAL DYNAMIC w Abaqus/Standard. Można z nich też korzystać w krokach *RESPONSE SPECTRUM i *RANDOM RESPONSE, ale nie jest tam możliwe odzyskiwanie wyników z wyeliminowanych stopni swobody. W Abaqus/Explicit z substruktur można korzystać tylko pośrednio za pomocą kosymulacji.

Generowanie substruktur:

Korzystanie z substruktur polega na:

  1. Użyciu standardowych elementów skończonych do zamodelowania konstrukcji, która ma być substrukturą i przypisaniu do nich materiałów/sekcji.
  2. Zdefiniowaniu zachowywanych stopni swobody, które posłużą do połączenia substruktury z resztą modelu.
  3. Wygenerowaniu substruktury za pomocą specjalnego typu kroku.
  4. Użyciu substruktury w osobnej analizie jakby był to zwykły element skończony z biblioteki elementów w Abaqus.
  5. Zaimportować i zwizualizować substrukturę: File --> Import --> Part (File Filter: Substructure *.sim) - każdy plik .sim zawiera dane tylko dla jednej substruktury; siatka do wizualizacji jest wczytywana z .odb; zachowane węzły są oznaczone specjalnym symbolem o odrębnym kolorze.
  6. Umiejscowić ją w złożeniu: utworzenie instancji części i użycie narzędzi do ich pozycjonowania (przesuwanie nie wpływa na macierze, obrót ma na nie wpływ).
  7. Dołączyć ją do reszty modelu za pomocą zachowanych węzłów: więzy tie, MPC, liniowe równania, więzy ciała sztywnego itd.
  8. Określić żądane wyniki (dla odzyskiwania wyników z substruktury).

Do generowania substruktur służy krok *SUBSTRUCTURE GENERATE (dostępny również w sekcji kroków Linear perturbation w Abaqus/CAE). Ten krok mogą poprzedzać kroki z obciążeniem wstępnym i/lub wyznaczaniem częstości drgań własnych.


Definiując krok generowania substruktury należy podać jej nazwę (analogiczna do etykiet elementów z biblioteki w Abaqus) zaczynającą się od litery Z, po której musi wystąpić dodatnia liczba całkowita n nie większa niż 9999:

*SUBSTRUCTURE GENERATE, LIBRARY=nazwa_biblioteki, TYPE=Zn

Pełna nazwa będzie miała postać nazwa_biblioteki_Zn.sim (domyślnie nazwa_joba_Zn.sim).

Alternatywnie, można użyć następującego podejścia:

*SUBSTRUCTURE GENERATE, NAME=nazwa

Pełna nazwa będzie miała postać nazwa.sim. Domyślna nazwa to nazwa_joba_Zn, gdzie n to numer kroku. To podejście jest zalecane, ale obecnie nie jest wspierane w Abaqus/CAE.

Pozostałe istotne parametry:

- OVERWRITE - nadpisanie plików (.sim, .prt, .mdl, .stt, .odb.) substruktury o tej samej nazwie jest możliwe za pomocą parametru

- RECOVERY MATRIX=YES (opcja “Evaluate recovery matrix for” w Abaqus/CAE) pozwala odzyskać wyeliminowane stopnie swobody jeśli potrzebne są wyniki w obrębie substruktury. Wartość NO znacząco oszczędza miejsce na dysku.

- MASS MATRIX=YES (opcja “Compute reduced mass matrix” w Abaqus/CAE) - generuje również zredukowaną macierz masy do analiz dynamicznych

- MODEL DATA=ODB/NONE - domyślnie aktywny zapis danych modelu substruktury do pliku nazwa_MODEL.odb w celu wizualizacji wyników odzyskanych dla substruktury

- STIFFNESS MATRIX=SYMMETRIC/UNSYMMETRIC/BOTH - możliwość ustawienia przechowywania macierzy sztywności niezależnie od ustawienia solvera, opcja BOTH (wygenerowanie instancji symetrycznej i niesymetrycznej zredukowanej macierzy sztywności) może być przydatne dla niektórych źródeł asymetrii sztywności (np. kontakt z tarciem w poślizgu), ponieważ odpowiednia macierz jest wybierana w zależności od procedury na poziomie użycia substruktury (np. symetryczna do drgań własnych i niesymetryczna do analizy statycznej). Jeśli skorzystano z opcji BOTH to na etapie użycia substruktury można skorzystać ze słowa kluczowego *SUBSTRUCTURE CHANGE, STIFFNESS UNSYMMETRY FACTOR=... w kroku *COMPLEX FREQUENCY, aby ustawić stosunek symetrycznej i niesymetrycznej instancji macierzy sztywności substruktury.

Stopnie swobody do zachowania definiuje się jako warunek brzegowy:


*RETAINED NODAL DOFS

numer_węzła, pierwszy_DOF, ostatni_DOF

Maksymalny rozmiar substruktury, wliczając zachowane i uogólnione stopnie swobody to 16 384 stopni swobody (46 340 dla substruktur generowanych do użycia poza Abaqusem – np. do analiz MBD z ciałami deformowalnymi).

Transformacje (lokalne układy współrzędnych) zachowywanych węzłów powinno się robić tylko na poziomie użycia substruktury.

Obciążenie wstępne zostaje wbudowane w substrukturę (jej generowanie działa jak każdy krok liniowo perturbacyjny). W kroku generowania substruktury należy zwolnić warunki brzegowe, które trzymały zachowane węzły podczas obciążenia wstępnego. Wyniki na poziomie globalnym i odzyskane z substruktury (oprócz np. odkształceń plastycznych) nie odzwierciedlają deformacji z obciążenia wstępnego. Ponadto, jeśli preload ma przekazywać obciążenie na inne elementy konstrukcji, należy utworzyć przypadek obciążenia substruktury (*SUBSTRUCTURE LOAD CASE) odpowiadający obciążeniom z historii preloadu a następnie zadać ten przypadek obciążenia na etapie użycia substruktury (*SLOAD).

Użycie substruktur:

Substruktury, podobnie jak standardowe elementy skończone, można wielokrotnie wstawiać do modelu. Ich zachowane stopnie swobody pozwalają połączyć substrukturę z resztą modelu.

W celu użycia substruktury w analizie, należy:

Składnia słów kluczowych:
1. Dla podejścia *SUBSTRUCTURE GENERATE, NAME:

*ELEMENT, TYPE=SUBSTR, ELSET=..., FILE=nazwa

numer_elementu, zachowane_węzły

*SUBSTRUCTURE PROPERTY, ELSET=..., POSITION TOL=...

przesunięcie/obrót/odbicie

2. Dla podejścia *SUBSTRUCTURE GENERATE, TYPE:

*ELEMENT, TYPE=Zn, ELSET=..., FILE=nazwa_pliku

numer_elementu, zachowane_węzły

*SUBSTRUCTURE PROPERTY, ELSET=..., POSITION TOL=...

przesunięcie/obrót/odbicie

Domyślnie Abaqus sortuje zachowane węzły układając je od najmniejszej do największej liczby i ta sama kolejność musi być zachowana przy podawaniu nowych numerów węzłów na poziomie użycia substruktury.

Warunki brzegowe na eliminowane stopnie swobody można nakładać tylko podczas generowania substruktury - zostają one wbudowane w nią i nie można ich zdjąć.

Zachowanych stopni swobody nie można eliminować więzami MPC lub liniowymi równaniami podczas generowania substruktury. Zachowując stopnie swobody, zyskuje się możliwość zmiany warunków brzegowych, nałożenia więzów lub transformacji dla zachowanych stopni swobody na poziomie użycia substruktury.

Substruktury muszą być generowane i używane w tej samej wersji programu Abaqus.

Wyniki z substruktur:

Wyniki z zachowanych stopni swobody można uzyskać bezpośrednio. Wyeliminowane stopnie swobody trzeba odzyskać (recovery) żeby otrzymać z nich wyniki. Naprężenia i odkształcenia w obrębie substruktury są wyznaczane z wyeliminowanych stopni swobody po ich odzyskaniu.

Odzyskiwanie wyeliminowanych stopni swobody stanowi dodatkowy koszt obliczeniowy. Użycie *SUBSTRUCTURE GENERATE, RECOVERY MATRIX=NO pozwala zaoszczędzić miejsce na dysku, ale wyniki w obrębie substruktury nie będą wtedy dostępne. Domyślna wartość to RECOVERY MATRIX=YES. Można również wskazać sety, dla których ma być zrobione odzyskiwanie: *SUBSTRUCTURE GENERATE, RECOVERY MATRIX=YES, ELSET=..., NSET=... (opcja “Evaluation recovery matrix for:” --> “Region:” w Abaqus/CAE).


Jeśli macierz odzyskiwania nie została utworzona, nadal można odzyskać wyniki mając dostępne pliki .sim, .mdl, .stt oraz .prt (i najlepiej też .odb) z poziomu użycia substruktury dokonując jej regeneracji z RECOVERY MATRIX=YES, kopiując nowe pliki substruktury .sim, .mdl, .stt oraz .prt w miejsce oryginalnych plików. Następnie opcją *POST OUTPUT można odzyskać dodatkowe wyniki.

Zdeformowany kształt substruktury na poziomie jej użycia można zwizualizować za pomocą zgrubnej reprezentacji geometrycznej w oparciu o wskazany elset: *SUBSTRUCTURE GENERATE, DISPLAY ELSET=... (utworzona zostanie siatka z elementów typu display).

Dla każdej substruktury na etapie jej użycia tworzony jest osobny plik .odb z numerem elementu substruktury w nazwie. Aby wyświetlić kompletny model, należy otworzyć wszystkie pliki .odb (model globalny i substruktury) jednocześnie i uwidocznić je w narzędziu Overlay Plot Layer Manager.




Dostępne jest też następujące polecenie umożliwiające połączenie 2 baz danych substruktur:

abaqus substructurecombine baseodb=... copyodb=...

Zawartość z copyodb jest dodawana do baseodb. Jeśli model zawiera więcej niż 2 substruktury, należy najpierw połączyć bazy danych dwóch z nich a następnie scalić nowo połączoną bazę z każdą z kolejnych baz substruktur. Alternatywnie, można użyć wtyczki Plug-ins --> Tools --> Combine ODBs.

Aby uzyskać wyniki dla wyeliminowanych stopni swobody, należy na etapie użycia substruktury utworzyć field output request wskazując Substructure jako Domain i wskazać dostępne sety recovery. W interfejsie słów kluczowych odpowiada za to *SUBSTRUCTURE PATH, ENTER ELEMENT=n. Wszystkie żądania wyników po tym słowie kluczowym muszą się odnosić do substruktury używanej jako element o numerze n. Z kolei parametr LEAVE pozwala zakończyć żądania wyników w obrębie bieżącej substruktury i wrócić do poprzedniego poziomu substruktur (wielokrotne użycie tego słowa kluczowego pozwala przechodzić między poziomami substruktur). Potrzebne są pliki .sim, .prt, .stt oraz .mdl z generowania substruktury (dla wszystkich poziomów substruktur). Wyniki w obrębie substruktury nie uwzględniają wpływu preloadu.


Odzyskiwanie wyników nie jest dostępne w procedurach response spectrum i random response.

Dodatkową opcją jest keyword *SUBSTRUCTURE MATRIX OUTPUT dodawany do generowania substruktury i umożliwiający odczyt jej macierzy przez zewnętrzne oprogramowanie lub przez Abaqusa (nie trzeba wtedy zachowywać plików .sim - ręczne podejście używane czasem do zaoszczędzenia miejsca na dysku). Parametry STIFFNESS, MASS, SLOAD i RECOVERY MATRIX wybierają macierze do zapisania. Parametr FILENAME wskazuje plik do zapisu w formacie .mtx.

Polecenie abaqus substructurerecover pozwala odzyskać wyniki substruktur przy pomocy modalnych macierzy odzyskiwania oszczędzając czas i miejsce na dysku oraz pozwalając na zapis naprężeń i odkształceń w dodatkowych pozycjach elementowych. Ta metoda wymaga uruchomienia analizy typu transient dynamic z substrukturą i zapisania jej uogólnionych przemieszczeń przy pomocy *SUBSTRUCTURE OUTPUT. Następnie należy użyć tego polecenia podając nazwę substruktury i plik zawierający rozwiązania dla wszystkich jej stopni swobody:

abaqus substructurerecover job=... substructure=... input=...

Odzyskane wyniki trafią do pliku .odb o nazwie wskazanej jako job.

Przypadki obciążeń substruktur:

Podczas tworzenia substruktur tworzone są też ich wektory obciążeń. Przypadek obciążenia (load case) reprezentowany przez wektor obciążeń jest nazywany przypadkiem obciążenia substruktury. Na poziomie użycia te wektory można skalować i zadawać na substruktury (jako jedyne obciążenia możliwe do zadania w obrębie substruktur). Dzięki temu unika się konieczności ponownego przeliczania wektorów obciążeń za każdym razem, gdy obciążenia (szczególnie rozłożone) zmieniają się na poziomie użycia.

W kroku generowania substruktury:

*SUBSTRUCTURE LOAD CASE, NAME=nazwa_przypadku_obciążenia

*DLOAD

numer_elementu, etykieta_obciążenia, wartość_obciążenia



W kroku użycia substruktury:

*SLOAD

numer_elementu, nazwa_przypadku_obciążenia, skala


W krokach static perturbation oraz SSD, przypadki obciążeń substruktur mogą być uwzględnione w przypadkach obciążeń kroku (w obrębie słowa kluczowego *LOAD CASE).

Przypadki obciążeń substruktur muszą być odniesione do każdego kolejnego poziomu substruktury, aby użyć ich na poziomie globalnym. Nazwy tych przypadków obciązeń na każdym kolejnym poziomie mogą być identyczne (są niezależne z poziomu na poziom).

Warunki brzegowe nie mogą być uwzględniane w przypadkach obciążeń substruktur – aby zadać niezerowy warunek brzegowy, należy zachować odpowiedni stopień swobody i zdefiniować warunek brzegowy na poziomie użycia substruktury.

Obciążenie grawitacją może stanowić część przypadku obciążenia substruktury (wtedy podlega obrotowi podążając za lokalnym układem współrzędnych substruktury podczas jej użycia) lub można wyznaczyć wektory obciążenia grawitacyjnego substruktury podczas jej generowania (wtedy działa w stałym kierunku globalnym w czasie użycia substruktury): *SUBSTRUCTURE GENERATE, GRAVITY LOAD=YES (opcja “Compute gravity load vectors” w Abaqus/CAE).

Substruktury w analizach dynamicznych:

Dostępne są dwa rodzaje substruktur do analiz dynamicznych:

  • konwencjonalne oparte o postaci drgań własnych - do różnego typu analiz: statycznych, drgań własnych, drgań nieustalonych i ustalonych itd.
  • oparte o częstotliwości - tylko do analiz drgań własnych (SSD) typu direct

W przypadku konwencjonalnych substruktur w analizach dynamicznych konieczne jest wygenerowanie macierzy masy (*SUBSTRUCTURE GENERATE, MASS MATRIX=YES lub opcja “Compute reduced mass matrix” w Abaqus/CAE) i uwzględnienie gęstości i/lub punktowych mas.

Dostępne są dwie techniki redukcji dla konwencjonalnych substruktur w dynamice:

  1. Redukcja Guyana (Guyan reduction)
  2. Dodawanie postaci dynamicznych (Dynamic mode addition)
  3. Metoda Craiga-Bamptona (fixed interface) - wszystkie zachowywane stopnie swobody związane w kroku *FREQUENCY.
  4. Metoda Craiga-Changa (free interface) - wszystkie zachowywane stopnie swobody niezwiązane.
  5. Metoda mieszana (mixed interface) - związanie tylko części zachowywanych stopni swobody.

Redukcja Guyana to najprostsze podejście, w którym macierz masy jest redukowana przy pomocy takiej samej transformacji jak dla macierzy sztywności. W efekcie masa jest skupiona tylko w zachowanych stopniach swobody a wyeliminowane stopnie swobody mogą odpowiadać tylko statycznie na ruch zachowanych stopni swobody. Ta metoda jest oparta na zachowywaniu dodatkowych stopni swobody, które nie są potrzebne do połączenia substruktury z resztą modelu, po to by poprawić odpowiedź dynamiczną substruktury (zachowuje się stopnie swobody biorące istotny udział w spodziewanych drganiach). Minusem tej metody jest konieczność starannego doboru zachowywanych stopni swobody (zachowanie tylko tych używanych do połączeń daje niską dokładność) biorąc pod uwagę rosnący rozmiar macierzy. Ta metoda jest dokładna, jeśli efekty bezwładnościowe są niewielkie.

Dodawanie postaci dynamicznych eliminuje konieczność doboru dodatkowych zachowywanych stopni swobody. Aby skorzystać z tej metody, należy poprzedzić generowanie substruktury krokiem *FREQUENCY i określić, które postaci drgań własnych mają zostać zachowane (keyword *SELECT EIGENMODES lub opcja “Specify retained eigenmodes by” w Abaqus/CAE). Zachowanie postaci drgań własnych znacznie zwiększa dokładność zredukowanej macierzy mas (dodając jednak pewien koszt obliczeniowy związany z dodatkowym krokiem *FREQUENCY). Istnieje kilka podejść do warunków brzegowych generowanych substruktur w procedurze eigenfrequency extraction:

Dwie ostatnie metody mogą niekiedy zapewnić większą dokładność przy miejszej liczbie postaci drgań w porównaniu do metody fixed interface, w przypadku której określenie potrzebnej liczby modów może być trudne (związany model może mieć wyższe częstotliwości drgań własnych niż docelowy model globalny). Czas generowania substruktury może się jednak znacząco wydłużyć w porównaniu z tą samą liczbą modów fixed interface. Istotne zwiększenie wydajności i zmniejszenie wymaganego miejsca na dysku można osiągnąć za pomocą solvera AMS (nie wspiera on jednak obciążeń grawitacją i przypadków obciążeń substruktur, jak również substruktur sprzężonych akustyczno-strukturalnych).

Parametr RESIDUAL MODES słowa kluczowego *SUBSTRUCTURE GENERATE pozwala dodać resztkowe postaci drgań własnych (wyznaczane we wcześniejszych analizach statycznych perturbacyjnych) do substruktury w celu poprawienia jej przybliżenia odpowiedzi modelu w wysokich częstotliwościach.

Tłumienie w substrukturach

Substruktury otrzymują wkład z tłumienia materiałowego, elementowego i globalnego podczas ich generowania. Z kolei tłumienie substruktur na poziomie ich użycia uwzględnia tłumienie elementowe, proporcjonalne i modalne.

Możliwe jest generowanie zredukowanych macierzy tłumienia:

  • wiskotycznego: parametr VISCOUS DAMPING MATRIX=YES (opcja “Compute reduced viscous damping matrix” w Abaqus/CAE)
  • strukturalnego: parametr STRUCTURAL DAMPING MATRIX=YES (opcja “Compute reduced structural damping matrix” w Abaqus/CAE)
  • wartości współczynników tłumienia Rayleigha i wsp. tłumienia strukturalnego używane do definiowania tłumienia proporcjonalnego do sztywności i masy dla substruktury (domyślnie zerowe) można ustawić słowem kluczowym *SUBSTRUCTURE DAMPING, ALPHA=..., BETA=..., STRUCTURAL=...
  • keyword *SUBSTRUCTURE MODAL DAMPING pozwala zdefiniować tłumienie w oparciu o postaci drgań własnych lub zakres częstotliwości. Jego parametry mogą być ustawione jako VISCOUS=FRACTION OF CRITICAL DAMPING, VISCOUS=RAYLEIGH lub STRUCTURAL


Do istniejącej macierzy tłumienia wiskotycznego można też dodać tłumienie tarciowe – parametr FRICTION DAMPING=YES.

Dodatkową konstrolę nad macierzami tłumienia zapewnia słowo kluczowe *DAMPING CONTROLS, VISCOUS=..., STRUCTURAL=... (wartości: ELEMENT – tylko tłumienie materiałowe i elementowe, FACTOR – tylko wsp. tłumienia globalnego, COMBINED - domyślne, mieszane tłumienie, NONE – brak tłumienia).


Z kolei kontrolę nad tłumieniem substruktur na poziomie ich użycia zapewnia słowo kluczowe *SUBSTRUCTURE DAMPING CONTROLS, VISCOUS=..., STRUCTURAL=... (parametry analogiczne jak wyżej).

Jeśli tłumienie nie było zdefiniowane na poziomie generowania substruktury, może się przydać możliwość zdefiniowania go na poziomie użycia substruktury:

Substruktury oparte o częstotliwości

Poza konwencjonalnymi substrukturami, dostępne są też substruktury oparte o częstotliwości, które używają informacji o sztywności, bezwładności, tłumieniu i częstotliwości do wygenerowania pojedynczego, zespolonego, skondensowanego operatora dla każdego określonego punktu częstotliwościowego. W przeciwieństwie do konwencjonalnych substruktur biorą pod uwagę właściwości zależne od częstotliwości dla wszystkich podanych częstotliwości. Dają dokładną odpowiedź dla punktów częstotliwościowych wskazanych dla kondensacji (pomiędzy nimi odpowiedź jest przybliżona). Konwencjonalne substruktury w analizach statycznych stanowią dokładną reprezentację modelu. Podobnie substruktury oparte o częstotliwości stanowią dokładną reprezentację modelu, ale tylko w analizach direct SSD. Nie są wspierane obciążenia substruktur.

Generowanie (muszą używać tych samych zachowanych stopni swobody):

*STEADY STATE DYNAMICS, DIRECT

*RETAINED NODAL DOFS

...

*SUBSTRUCTURE GENERATE

*RETAINED NODAL DOFS

...

Dla zwiększenia wydajności (ograniczonej przez użycie obu tych procedur w jednej analizie), można skorzystać z techniki restartu analiz.

Użycie w analizach direct SSD:

*SUBSTRUCTURE PROPERTY, FREQUENCY BASED=MATCHED/ALL/NO FREQUENCIES

Wartość MATCHED FREQUENCIES (domyślna) oznacza użycie tych substruktur tylko dla pasujących częstotliwości (dla pozostałych używane są konwencjonalne substruktury), ALL FREQUENCIES to ich użycia dla wszystkich częstotliwości a NO FREQUENCIES to używanie tylko konwencjonalnych substruktur.

Podsumowanie

Technika tworzenia i używania substruktur pozwala na znaczne przyspieszenie obliczeń dużych złożeń, zwłaszcza z powtarzającymi się komponentami i podzłożeniami, pod warunkiem, że można założyć ich liniową odpowiedź. Pozwala również odizolować nieliniowości poza substrukturą - obszar z lokalnymi nieliniowościami (np. kontaktem) jest modelowany w standardowy sposób, podczas gdy reszta modelu korzysta z substruktur.


Dzięki kosymulacji, substruktury można nawet stosować w Abaqus/Explicit. Są one również bardzo przydatne w analizach z grupy liniowej dynamiki, ale wymagają dodatkowych działań przy tworzeniu. Można je też z powodzeniem stosować razem z symetrią cykliczną. Ich uniwersalność i mnogość opcji pozwala na ich wykorzystanie w bardzo wielu rzeczywistych problemach inżynierskich.

Więcej informacji na temat substruktur można uzyskać z dokumentacji oraz z kursu “Substructures and Submodeling with Abaqus”.