16 października 2021

Podczas tworzenia COFEA celem nadrzędnym było stworzenie środowiska, które umożliwia analizę modelu parametrycznego dowolnej części mechanicznej. W tym kontekście wirnik promieniowy znakomicie spełni swoją rolę, ponieważ odwzorowanie kształtu tak skomplikowanej geometrii nie jest prostą czynnością. Chcąc zatem przyjrzeć się, w jaki sposób powstaje geometria wirnika należy przeanalizować sekwencję plików uruchamianych podczas pracy aplikacji (Rys. 7).

rys7
Rys. 7    Schemat ideowy aplikacji COFEA

Program wykorzystuje ideę Gońca, który dostarcza wiadomość o strukturze obiektu do odpowiednich partii kodu. Z punktu widzenia użytkownika aplikacji proces tworzenia modelu rozpoczyna się na etapie funkcji testujDane. To tutaj użytkownik może nałożyć pewne ograniczenia, które pozwolą uniknąć błędów przy budowie geometrii. Przykładem takiego ograniczenia może być założenie, że średnica otworu wewnętrznego jest mniejsza od średnicy zewnętrznej wirnika. W przypadku gdy aplikacja wykryje, że któryś z warunków nie jest spełniony, następuje przerwanie procedury budowy modelu, a w zakładce Monitor znajdziemy informację o powodzie wstrzymania operacji.
Kolejna funkcja obliczWymaganeParametry służy do określenia punktów w przestrzeni, które wymagane są w procesie tworzenie geometrii. Jednym z zadań wymienionej funkcji jest ustalenie punktów leżących na krzywiźnie łopatki. Zadanie to wykonane jest w dwóch etapach. Najpierw, funkcja fsolve z biblioteki SciPy pozwala określić punkty A, B i C (patrz: Rys. 8).

rys8
Rys. 8    Szkic wirnika przedstawiający krzywiznę łopatki

Następnie, funkcje biblioteki SymPy służą do wyznaczenia konkretnych, równoodległych od siebie punktów na krzywej.
Funkcja przygotujPlik wywoływana jest na etapie, na którym obiekt Gońca zawiera już wszystkie niezbędne informacje do stworzenia modelu geometrycznego w programie GMSH. Analiza fragmentu kodu pozwoli nam przyjrzeć się, w jaki sposób budowana jest geometria.
#=================================.
# Procedura tworzenia okręgu zewnetrznego
#=================================.
# Pobierz parametry z obiektu Gońca
# pr_zewn = 317.0/2.0 -> promień zewnętrzny wirnika
pr_zewn = Goniec.Geo.pr_zewn
# il_lop = 9 -> liczba łopatek wirnika
il_lop = Goniec.Geo.il_lop
# Stwórz obiekt wirnika zawierąjacy wszystkie informacje mające zostać
# przesłane do programu GMSH
p = Part('wirnik')
# Stwórz punkt centralny
p.point(0.0,0.0,0.0)
# Zarejestruj wykonane kroki przy pomocy wskaźnika
st = p.prStart()    #––––> Wstaw wskaźnik
# Stwórz punkt w przestrzeni dwuwymiarowej
polLop = [0.0,pr_zewn]
# Stwórz punkty poprzez rotacje pojedynczego punktu wokół punktu centralnego
p.rotation(poll_op,il_lop)
# Stwórz wektor zawierający punkty okręgu zewnętrznego
pktyOkreguZewnetrznego = p.prEnd(st)    #––––> Zwróć wskaźnik
st = p.prStart()    #––––> Wstaw wskaźnik
# Stwórz okrąg używajac punkty zawarte w wektorze pktyOkreguZewnetrznego
p.manyCircles(0,pktyOkreguZewnetrznego)
# Zapisz okrąg zewnetrzny w wektorze lukiZewnetrzne
lukiZewnetrzne = p.prEnd(st)    #––––> Zwróć wskaźnik

Wykonanie przedstawionego kodu skutkuje zbudowaniem okręgu składającego się z dziewięciu łuków. Jest to pierwszy z ośmiu etapów zilustrowanych na rysunku 9. W analogiczny sposób wykonane zostały pozostałe etapy tworzenia modelu wirnika. Warto także zaznaczyć, że przedstawiony fragment kodu tworzy jedynie plik tekstowy, na bazie którego tworzony jest wirnik w programie GMSH. Takie podejście zdecydowanie ułatwia tworzenie modelu parametrycznego osobie, która nie zajmuje się programowaniem na co dzień.

rys9
Rys. 9    Etapowa budowa geometrii wirnika

Przed uruchomieniem analizy przygotowaną siatkę należy jeszcze przekonwertować do formatu kompatybilnego z aplikacją Calculix. W tym celu użyta zostaje funkcja konwertujSiatke, która nieznacznie modyfikuje plik z rozszerzeniem .inp wyeksportowany z programu GMSH. Następnie, przy pomocy funkcji stworzPlikWsadowy tworzony jest plik zawierający całość informacji niezbędnych do przeprowadzenia obliczeń. W kolejnym kroku uruchamiana jest symulacja, a moment, w którym na ekranie pojawi się okienko Calculixa oznaczać będzie, że zakończyła się ona sukcesem. Dodatkowo, zakładka Monitor umożliwia użytkownikowi sprawdzenia historii sygnałów wysyłanych przez solwer.
Celem symulacji wirnika promieniowego było sprawdzenie stanu naprężeń i przemieszczeń spowodowanych działaniem sił odśrodkowych na obiekt. Zakładając, że wirnik wiruje ze stałą prędkością obrotową, można uprościć model poprzez zmianę charakteru sił na statyczny. Tak przyjęte obciążenia można było zaimplementować w programie Calculix przy użyciu funkcji *CENTRIFUGAL. Jako dodatkowy warunek brzegowy przyjęto pozbawienie stopni swobody na powierzchni przy otworze, który znajduje się w centralnej części konstrukcji. Dyskretny model wirnika został zbudowany z elementów skończonych typu S6 i S8. Są to elementy opisujące przestrzeń międzywęzłową za pomocą funkcji interpolującej rzędu drugiego, stosowane do modelowania konstrukcji powłokowych.

rys10
Rys. 10      Wizualizacja wyników otrzymanych przy pomocy aplikacji Calculix

Nieodzownym etapem obliczeń numerycznych jest walidacja otrzymanych rezultatów. Niestety, z powodu braku dostępu do danych eksperymentalnych, jedynym sposobem sprawdzenia wyników było przeprowadzenie obliczeń analitycznych. Przy założeniu, że łopatki wirnika oraz część górna nie oddziałują w znacznym stopniu na jego podstawę, stan naprężeń w tejże podstawie zdefiniować można za pomocą równań opisujących zachowanie wirującego krążka. Na potrzeby rozpatrywanej analizy porównawczej stworzony został model wirnika z dwiema łopatkami, a symulacja została przeprowadzona zarówno w programie Calculix, jak i komercyjnym środowisku MES. Za cel obliczeń obrano wyznaczenie naprężeń promieniowych w funkcji promienia wirnika (Rys. 11).

rys11
Rys. 11      Naprężenia w podstawie wirnika na kierunku promieniowym

Porównując otrzymane wyniki z programu Calculix z rezultatami otrzymanymi przy użyciu komercyjnego oprogramowania łatwo zauważyć, iż są one niemalże identyczne. Świadczy to o wysokiej jakości kodu zaimplementowanego w oprogramowaniu otwarto-źródłowym. Co więcej, dowiedziono również, że przy pomocy aplikacji GMSH użytkownik jest w stanie uzyskać jakość siatki porównywalną z tą uzyskaną w programie komercyjnym.
Z drugiej strony, płatne pakiety do symulacji wyposażone są w specjalistyczne narzędzia do analizy otrzymanych wyników. W tym kontekście możliwości Calculixa są ograniczone. Trwają prace nad wizualizacją wyników w środowisku ParaView, a za kolejny etap rozwoju przyjęto zwiększenie bazy modeli parametrycznych oraz dodanie możliwości wyboru solwera innego niż Calculix, na przykład solwera OpenFOAM.

Sławomir Polański

źródła ilustracji:
http://lace.fs.uni-mb.si/wordpress/borovinsek
Zamieszczone za zgodą autora Tobiasa Holzmanna z Holzmann CFD
http://gmsh.info/
Zamieszczone za zgodą autora Tobiasa Holzmanna z Holzmann CFD
[5-11] Obliczenia własne uzyskane przy pomocy autorskiej aplikacji COFEA

 

artykuł pochodzi z wydania 5 (128) maj 2018