POLITECHNIKA LUBELSKA
Wydział Elektrotechniki i Informatyki
Laboratorium Metod Numerycznych
Imię i nazwisko:
Damian Nowak
Semestr:
I
Grupa:
EMNS 1.2
Rok akademicki:
2015/2016
Temat:
Modelowanie z użyciem języka skryptowego LUA
Data wykonania:
09.01.2016
Ocena:
Wykorzystując możliwości języyka skryptowego LUA przeprowadzić analizę napięcia indukowanego w cewce generatora w czasie obrotu wirnika, w zależnoście od zmiany kształtu wirnika wykonanego z magnesu trwałego. Przykłady dla wirnika w kształcie walca oraz wirnika prostokątnego z wyokrągleniami
Utworzono planarny model w programie FEMM. Punkty geometryczne utworzono na podstawie poniższego rysunku:
Odtworzono wybraną geometrię oraz przypisano odpowiednie właściwości materiałów.
Utworzono warunki graniczne i przypisano je do ramki otaczającej rysunek. Ramka ma wymiary 40x40 cm, a średnica zewnętrzna stojana generatora to 30 cm.
Analogicznie postąpiono w przypadku modelu z wirnikiem prostokątnym z wyokrągleniami.
Do ruchomych elementów w obu modelach przypisano wspólną grupę – oznaczoną numerem 5.
Linia biegnąca od środka do prawej strony wirnika oznacza kierunek magnesowania.
Po przygotowaniu dwóch plików z modelami, przystąpiono do napisania skryptu w języku LUA.
Inicjalizacja:
ruchoma_grupa=5;
ilosc_zwojow=150;
katalog="./";
open(katalog.."generator_"..wybrany_typ_wirnika.."_damian_nowak.fem");
mi_saveas(katalog.."tmp.fem");
mi_seteditmode("group");
wyniki=katalog.."wyniki_"..wybrany_typ_wirnika.."_"..czestotliwosc_obrotu.."Hz.csv";
plik=openfile(wyniki,"w");
Przeliczanie potrzebnych wartości:
okres_obrotu=1/czestotliwosc_obrotu;
delta_t=okres_obrotu/ilosc_krokow_na_obrot;
kat_obrotu_na_krok=360/ilosc_krokow_na_obrot;
Pętla główna skryptu:
for krok=0,ilosc_krokow_na_obrot do
mi_analyze();
mi_loadsolution();
mo_showdensityplot(1,0,2,0,"mag");
-- Linia prowadzenia charakterystyki
mo_addcontour(-9,0);
mo_addcontour(9,0);
wartosc_calkowita,wartosc_srednia=mo_lineintegral(0);
if krok==0 then
strumien_1=wartosc_calkowita;
strumien_2=0;
else
strumien_2=strumien_1;
zmiana_strumienia=strumien_2-strumien_1;
aktualny_czas=delta_t*krok;
indukowane_napiecie=ilosc_zwojow*(zmiana_strumienia/delta_t);
print("["..krok.."]: "..aktualny_czas..indukowane_napiecie)
write(plik,aktualny_czas,separator,indukowane_napiecie,"\n");
end;
if (krok<ilosc_krokow_na_obrot) then
mi_selectgroup(ruchoma_grupa);
mi_moverotate(0, 0, kat_obrotu_na_krok, 4);
end
print("Zakonczono analize.");
closefile(plik);
mo_close();
mi_close();
Wynikiem działania skryptu jest plik tekstowy, z którego można odczytać wartości całki dla zdefiniowanego konturu/linii prowadzenia charakterystyki.
Otrzymany plik tekstowy przetworzono w programie MATLAB za pomocą prostego skryptu:
wyniki = csvread('wyniki_prostokat_50Hz.csv');
plot(wyniki);
Uzyskano w ten sposób wykresy, które prezentują zmiany strumienia magnetycznego B.n w czasie [s] odpowiednio dla wirnika w kształcie walca oraz wirnika w kształcie prostokąta z wyokrągleniami:
Przebiegi pochodzą z analizy przypadku obrotów wirnika z częstotliwością 50 Hz, przy zebraniu 120 próbek na obrót.
Podczas przeprowadzania analizy wykonano także zrzuty map bitowych, z których w programie VirtualDub utworzono film, do którego link znajduje się poniżej:
https://www.youtube.com/watch?v=fgUNWqvcAaQ
Zarówno pełen skrypt LUA, jak i modele FEMM zostaną przesłane w formie załącznika wraz z niniejszym sprawozdaniem.
Program FEMM ponownie bardzo dobrze sprawdził się jako narzędzie analizy problemu – w tym przypadku zagadnienia elektromagnetyzmu – z zastosowaniem metody elementów skończonych. Rozszerzenie funkcjonalności o obsługę popularnego języka skryptowego LUA pozwala niemal nieograniczenie zwiększyć możliwości zastosowania programu do rozwiązywania bardzo zróżnicowanych problemów.
nawykos