Laboratorium Dynamiki Urządzeń Mechatroniki Ćwiczenie 2
Transkrypt
Laboratorium Dynamiki Urządzeń Mechatroniki Ćwiczenie 2
Laboratorium Dynamiki Urządzeń Mechatroniki Ćwiczenie 2 Badanie stanów nieustalonych w obwodach elektrycznych z liniowym i nieliniowym elementem indukcyjnym, indukcyjności: statyczna i dynamiczna, funkcje stanu: energia i koenergia magnetyczna Wprowadzenie W ćwiczeniu będą równolegle badane dwa układy elektryczne z liniowym i nieliniowym elementem indukcyjnym. Rozpatrywane będą dwa stany załączenie napięcia stałego U=5V i zwarcie obwodu, w którym płynie prąd ustalony. Rezystancje obydwu obwodów są takie same R=0,5 Ω. Indukcyjność obwodu liniowego L=0,2 H. W obwodzie nieliniowym zależność strumienia od prądu jest tak określona, że w stanie ustalonym strumienie skojarzone liniowego i nieliniowego elementu indukcyjnego są takie same ψ =2Wb. Charakterystyka nieliniowego elementu indukcyjnego jest określona zależnością i = aψ + bψ 3 (a=1, b=1). (1) Obydwa obwody elektryczne opisane są równaniem różniczkowym, wynikającym z prawa Kirchhoffa, dotyczącego sumowania napięć w oczku dψ ( t ) U (t ) = + Ri (t ) (2) dt dψ gdzie U – napięcie źródła, – spadek napięcia na elemencie indukcyjnym, dt Ri – spadek napięcia na rezystancji R, i – prąd płynący w obwodzie. Element indukcyjny w obwodzie nieliniowym jest określony charakterystyką i (ψ ) . Z zależności (1) wynika, że nie można metodą przekształceń uzyskać analitycznej postaci funkcji odwrotnejψ (i ) . Dlatego jako zmienną niezależną w równaniu przyjmiemy strumień skojarzony. Równanie (2) dla obwodu liniowego będzie maiło postać. ψ (t ) dψ (t ) = U (t ) − R (3) dt L dla obwodu nieliniowego dψ (t ) = U (t ) − R( aψ (t ) + bψ 3 (t )) (4) dt Równania te przekształcono do wygodnej przy modelowaniu postaci kanonicznej (pochodne po lewej stronie równań) Modelowanie załączenia napięcia oznacza, że w chwili tu następuje skokowa zmiana napięcia od 0 do U. Przed załączeniem prądy i strumienie w obwodach są równe zero. Przy modelowaniu stanu zwarcia, w chwili zwarcia w obwodach płyną prądy ustalone iz = U / R = 10A co oznacza, że w elementach indukcyjnych obydwu obwodów strumienie są równe ψ z = 2 Wb . Rozpatrywane będą trzy przypadki zwarcia: zwarcie gałęzią o rezystancji równej zero, zwarcie rezystancją dodatkową porównywalną z rezystancją obwodu, zwarcie gałęzią aktywną, ze źródłem skierowanym przeciwnie do płynącego prądu. Stan zwarcia będzie modelowany jako następny stan po skokowym załączeniu napięcia. Czas, w którym następuje zwarcie powinien być tak dobrany żeby w obwodach występował już stan ustalony. Praktycznie ma to miejsce po ośmiu stałych czasowych obwodu liniowego. Uwzględniając powyższe uwagi równania (3 i 4) przy modelowaniu stanu zwarcia będą miały postać: dla obwodu liniowego ψ (t ) dψ (t ) = U (t ) − ( R + Rd (t )) (5) dt L dla obwodu nieliniowego dψ (t ) = U (t ) − ( R + Rd (t ))( aψ (t ) + bψ 3 (t )) (6) dt W przypadku zwarcia gałęzią o rezystancji równej zero w chwili zwarcia następuje skokowa zmiana napięcia od wartości U do 0. Rezystancja dodatkowa jest równa zero. W drugim przypadku, w chwili zwarcia oprócz skokowego spadku napięcia następuje skokowy wzrost rezystancji od 0 do Rd. W trzecim przypadku rezystancja Rd jest równa zero, ale napięcie zmienia się z wartości U do –Ud. Rozpatrywane będą różne wartości napięcia Ud z przedziału (0,U). Indukcyjność dynamiczna i statyczna Do uzasadnienia przebiegu prądów, w modelowanych stanach rozpatrywanych obwodów, wygodnie jest posługiwać się równaniem (2), z którego wyeliminowano strumień. Jest to możliwe przy znanej zależności ψ (i ) . ∂ψ (i ) di (t ) U (t ) = + Ri (t ) (7) ∂i dt W przypadku liniowego elementu indukcyjnego ∂ψ (i ) ψ = =L (8) ∂i i W elemencie nieliniowym pochodna strumienia po prądzie nie jest stała, jest funkcja prądu i przez analogie do elementu liniowego, nazywana jest indukcyjnością dynamiczną. ∂ψ (i ) = Ld (i ) (9) ∂i Natomiast stosunek strumienia do prądu określa tzw. indukcyjność statyczną. ψ (i ) = Ls (i ) (10) i Przy modelowaniu układu z nieliniowym elementem indukcyjnym należy w równaniach jako parametru używać indukcyjności dynamicznej. Korzystanie w tym przypadku z indukcyjności statycznej, która dla elementu nieliniowego jest również funkcją prądu, komplikuje tylko wyrażenie na napięcie indukowane w elemencie indukcyjnym Zamiast prostej zależności dψ (t ) di = Ld (i ) (11) U i (t ) = dt dt otrzymujemy wyrażenie ∂L (i ) di dψ (t ) d di = Ls (i )i = i s + Ls (i ) , (12) U i (t ) = ∂i dt dt dt dt ∂L (i ) w którym oprócz indukcyjności statycznej występuje dodatkowo parametr s ∂i Po przekształceniu (7) do postaci kanonicznej otrzymujemy w przypadku obwodu liniowego wyrażenie di (t ) U (t ) − Ri (t ) = , (13) dt L natomiast dla obwodu nieliniowego zależność di (t ) U (t ) − Ri (t ) = dt Ld (i ) (14) Energia i koenergia magnetyczna elementu indukcyjnego Przy omawianiu energetycznej metody formułowania modeli matematycznych układów elektrycznych i elektromechanicznych, czyli tzw. formalizmu Lagrange’a, w sposób formalny wprowadza się funkcje stanu elementów konserwatywnych – magazynujących energię. W przypadku elementu indukcyjnego mamy funkcję energii magnetycznej ψ Em = ∫ i (ψ )dψ ' (15) 0 i koenergii magnetycznej i E m′ = ∫ ψ ( i ) di ' (16) 0 Z definicji tych funkcji wynika, że dla każdego punktu (i,ψ ) charakterystyki elementu indukcyjnego ψ (i ) spełniona jest zależność Em + Em′ = ψi (17) Przy określaniu funkcji Lagrange’a dokonuje się formalnego wyboru jednej albo drugiej funkcji stanu, w zależności od tego czy model matematyczny ma być układem równań oczkowych z niewiadomymi prądami lub układem równań węzłowych z niewiadomymi potencjałami. W elemencie indukcyjnym liniowym wartości obydwu funkcji dla danego punktu charakterystyki (i,ψ ) są takie same ψ 2 Li 2 1 ′ Em = Em = ψi = = (18) 2 2L 2 W przypadku elementu nieliniowego w danym punkcie charakterystyki wartości obydwu funkcji stanu są różne, obowiązuje tyko zależność (17). Pojawia się pytanie, która funkcja stanu spełnia zasadę zachowania energii. Aby się o tym przekonać obliczymy energię zgromadzoną w elemencie indukcyjnym z bilansu mocy, przy skokowym załączeniu napięcia. Jeżeli równanie (2) pomnożymy przez prąd i (t ) to otrzymamy równanie bilansu mocy. dψ (t ) (19) U (t )i (t ) = i (t ) + Ri 2 (t ) dt Lewa strona równania określa chwilową moc dostarczoną do obwodu ze źródła. Drugi składnik prawej strony określa moc traconą na rezystancji R. Pierwszy składnik prawej strony definiuje chwilową moc bierną dostarczaną do elementu indukcyjnego, która gromadzona jest w nim w postaci energii magnetycznej. Po scałkowaniu stronami równania (19), po czasie w zakresie od 0 do czasu t, w którym nastąpi stan ustalony otrzymamy równanie bilansu energii. ψ t t dψ ( t ) 2 (20) ∫0 dt i(t )dt = ∫0 i(ψ )dψ = Em = ∫0 (U (t )i(t ) − Ri (t ))dt W drugim zadaniu ćwiczenia energia magnetyczna elementu liniowego i nieliniowego zostanie policzona na podstawie równania (20) i będzie porównana z energią obliczoną z definicji na podstawie (15). Dla elementu nieliniowego z zależności ψ ψ 0 0 Em = ∫ i (ψ )dψ ' = ∫ ( aψ + bψ 3 )dψ ' (21) • • • • • • • • Merytoryczne cele ćwiczenia: Wyznaczenie i porównanie, w obydwu obwodach, chwilowych przebiegów prądów i strumieni podczas ich narastania do wartości ustalonej przy skokowym załączeniu napięcia – obliczenie czasów narastania prądów Porównanie energii magnetycznej zgromadzonej w liniowym i nieliniowym elemencie indukcyjnym obliczonej z bilansu energii w stanie nieustalonym, przy przejściu ze stanu ψ = 0, i = 0 do stanu ustalonegoψ = ψ z , i = iz z energią obliczoną na podstawie charakterystyk elementów indukcyjnych Porównanie chwilowych przebiegów prądów i strumieni podczas ich zanikania przy trzech wariantach zwarcia obwodów w których płynie prąd ustalony – obliczenie i porównanie czasów zaniku prądów. Będą rozpatrywane: zwarcie gałęzią o rezystancji równej zero, zwarcie dodatkową rezystancją, zwarcie dodatkowym źródłem spolaryzowanym przeciwnie do płynącego prądu,. Warsztatowe cele ćwiczenia: Zamodelowanie liniowego i nieliniowego równania różniczkowego pierwszego rzędu. Łączenie grupy bloków w podsystemy. Modelowanie warunków logicznych. Wykorzystanie własności wektorowych bloków. Badanie wpływu kroku czasu na poprawność rozwiązania. Zadanie 1. Zbudować sparametryzowany model symulacyjny umożliwiający: • Wyznaczenie chwilowych wartości prądów i strumieni skojarzonych, przy skokowym załączeniu napięcia w układach elektrycznych opisanych równaniami (3 i 4). • Obliczenie czasów narastania prądów do wartości różniącej się od prądu ustalonego o ε = 0.1%, w obydwu obwodach. Uzasadnić różnice czasów narastania prądów w obwodzie liniowym i nieliniowym Po przesłaniu wyników symulacji do pliku skryptowego sporządzić: • Wykres prądów i strumieni w funkcji czasu, na którym oprócz wyników symulacji zostanie przedstawione rozwiązanie dokładne obwodu liniowego. • Wykres prądów i sygnałów logicznych sygnalizujących osiąganie przez narastające prądy wartości ustalonych Zbadać wpływ kroku czasu w procedurze całkującej na przebiegi prądów i strumieni – określić wartość minimalnego kroku całkowania, powyżej której rozwiązanie staje się fizycznie – jakościowo niepoprawne Zadanie 2. Zmodyfikować model z zadania 1: • Bloki modelujące poszczególne równania – obwody umieścić o oddzielnych podsystemach. • Rozbudować model tak, aby umożliwiał obliczenie z bilansu mocy, energie zgromadzone w elementach indukcyjnych liniowym i nieliniowym. • Umieścić część modelu do obliczania energii w oddzielnym podsystemie Po przesłaniu wyników do pliku skryptowego sporządzić wykresy w funkcji czasu: prądów, strumieni i energii Na podstawie charakterystyki nieliniowego elementu indukcyjnego: • • • Obliczyć wartość energii magnetycznej zgromadzonej w elemencie w stanie ustalonym Sporządzić wykres ψ (i ) i przedstawić interpretację graficzna energii i koenergii magnetycznej Obliczyć i wykreślić w funkcji prądu charakterystyki indukcyjności statycznej i dynamicznej oraz charakterystykę indukcyjności elementu liniowego. Zadanie 3. Zmodyfikować model z zadania 2 tak, aby umożliwiał: • Zamodelowanie trzech wariantów stanu zwarcia po osiągnięciu stanu ustalonego: zwarcie bezrezystancyjne, zwarcie dodatkową rezystancją Rd=R, 2R, 3R, 4R, 5R, zwarcie z dodatkowym źródłem napięcia o kierunku przeciwnym do płynącego prądu Ud=-0,2U, -0,4U, -0,6U, -0,8U, -1U • Obliczenie czasów zaniku prądów do wartości różniącej się od prądu ustalonego o ε = 0.1%, w obydwu obwodach. • Automatyczne kończenie symulacji, gdy wolniej zanikający się prąd osiągnie dopuszczalny poziom Uzasadnić różnice czasów zaniku prądów w obwodzie liniowym i nieliniowym Po przesłaniu wyników do pliku skryptowego sporządzić wykresy w funkcji czasu: prądów i strumieni prądów i sygnałów logicznych sygnalizujących osiąganie przez znikające prądy dopuszczalnych wartości Wskazówki do rozwiązania zadania 1 Budowa modelu sparametryzowanego polega na jednoczesnym tworzeniu pliku skryptowego w oknie edytora (ikona New M-File na pasku zdań głównego okna Matlaba) i modelu symulacyjnego w oknie graficznym nowego modelu (ikona Create a new model) na pasku zadań Simulinka). Wskazówki dotyczące pliku skryptowego Plik skryptowy powinien mieć strukturę: Część wspólna, Wybór poziomu – zadania: Warunkowe wykonanie części dot. zadania 1, Warunkowe wykonanie części dot. zadania 2, Warunkowe wykonanie części dot. zadania 3. W części wspólnej powinny znajdować się elementy: - Ustalenie rodzaju i wielkości czcionek do opisów w oknach graficznych - Zamknięcie wszystkich okien graficznych - Dane układów elektrycznych - Obliczenia w stanie ustalonym - Parametry symulacji i bloku napięcia Przykład części wspólnej pliku skryptowego podano poniżej %Ustalenie rodzaju i wielkości czcionek do opisów w oknach graficznych set(0, 'DefaultAxesFontname','Arial CE'); fosiz=10; %wielkośc fontów na wykresie set(0, 'DefaultAxesFontSize', fosiz); set(0,'defaulttextfontname','Arial CE'); set(0,'defaulttextfontsize',fosiz); set(0,'defaultfigurecolor','w'); close all %zamknięcie wszystkich okien graficznych %Dane układów elektrycznych U=5; %V Napiecie %W układzie nieliniowym zależnośc pomiedzy prądem i,a stumieniem skojarzonym psi %jest następująca; i=a*psi+b*psi^3 a=1; % współczynnik b=1; % współczynnik R=0.5; % Ohm Rezystancja L=0.2; % H Indukcyjność obwodu liniowego ep=0.1; % % odchyłka od wartości ustalonej pradu w procentach pr ustalonego %Obliczenia w stanie ustalonym %W stanie ustalonym strumienie i prądy w układzie liniowym i nieliniowym są takie same iz=U/R; %Prąd w stanie ustalonym psz=L*iz; %Strumień w st. ustalonym epsi=iz*ep/100; % A odchyłka od wartości ustalonej prądu w A %Parametry symulacji i bloku napięcia tp=-0.1; %Początek symulacji tu=0; %Początek załączenia napięcia T=L/R; %Stała czasowa układu liniowego tk=round(tu+8*T); %Koniec symulacji dtmin=1e-2*T; %Minimalny krok czasu dtmax=2*dtmin; %Maksymalny krok czasu Po napisaniu powyższego fragmentu pliku skryptowego należy zapisać go w pliku (np. scw2.m). Plik skryptowy i pliki z modelami powinny znajdować się w domyślnym katalogu Matlaba Work Wskazówki dotyczące budowy modelu symulacyjnego Zaczynamy od modelowania równania napięciowego (4) obwodu nieliniowego Z biblioteki Continous przeciągnąć blok integratora Integrator Z biblioteki Sources przeciągnąć blok skoku Step Z biblioteki User-Defined Functions przeciągnąć dwa bloki Fcn Z biblioteki Signal Routing dodajemy blok Mux Połączyć bloki i wpisać formuly w blokach Fcn jak na rys.1. Rys.1 Model równania napięciowego (4) obwodu nieliniowego Blok Fcn zasilający wejście integratora powinien zawierać formułę zgodną z prawą stroną równania (4). Drugi blok Fcn powinien zawierać formułę określoną równaniem (1), która umożliwia obliczenie prądu na podstawie strumienia. W bloku Step wpisać parametry w polu Step time tu, w polu Final value U. Modelowanie drugiego równania zaczynamy od zaznaczenia połączonych bloków bez bloku Step i skopiowaniu (np. przeciągnięcie myszką z wciśniętym prawym przyciskiem) całego fragmentu modelu poniżej jak to pokazano na rys. 2. Następnie zmieniamy nazwy bloków równania liniowego i wpis do bloku Fcn, który zamienia strumień na prąd w modelu liniowym. Po zmianach model obydwu równań powinien wyglądać jak na rys. 3. Do oglądania wyników symulacji i przesłania ich do pliku skryptowego służą bloki Scope, To Workspace, Clock, które należy połączyć je jak na rys. 4. Rys. 2. Model równania napięciowego (4) obwodu nieliniowego i jego kopia Rys. 3. Model równań napięciowych (4) i (3) Rys. 4. Model równań napięciowych (4) i (3) z blokami podglądu i przesyłania wyników Obliczenie czasów narastania prądów w obwodzie liniowym i nieliniowym wymaga śledzenia wartości prądów. W modelu powinna być zarejestrowana informacja, gdy wartość danego prądu będzie większa od prądu ustalonego pomniejszonego o zadaną dokładność ε . Można do tego wykorzystać sygnały logiczne. Na podstawie zmiany stanu sygnału logicznego będzie można zidentyfikować chwile, w których dany prąd zbliżył się do wartości ustalonej z założoną dokładnością. Można to zrealizować za pomocą dwóch bloków Constant i Sum z biblioteki Sources oraz bloku Relational Operator z biblioteki Math Operations. Fragment modelu realizujący to zadanie pokazano na dole, po prawej stronie rys. 5. W sumatorze następuje odjęcie od zadanego prądu ustalonego iz, wprowadzonego do jednego bloku Constant, aktualnych wartości prądów w układzie liniowym i nieliniowym. Wykorzystywana tu jest wektorowa właściwość bloku Sum i automatyczne dopasowanie w górę ilości wyjść bloków Constant. Pozwala to na użycie jednego bloku Constant z wartością iz, od której odejmowane są dwa prądy. Na wyjściu sumatora są dwie różnice pomiędzy wartościami chwilowymi, a wartością ustaloną prądów. Porównywanie tych różnic z założoną dokładnością, reprezentowaną przez drugi blok Constant z wpisem epsi następuje w bloku Relational Operator. Podobnie jak w przypadku sumatora wykorzystywana jest również wektorowa właściwość bloku Relational Operator. Wychodzące z niego sygnały logiczne przekazywane są do przestrzeni roboczej Matlaba za pomocą drugiego bloku To Workspace. Użycie drugiego bloku było konieczne, ponieważ w jednej tablicy wyników nie mogą razem (w oddzielnych kolumnach) występować zmienne rzeczywiste i logiczne. Kompletny model symulacyjny do zadania pierwszego pokazano na rys. 5. Model ten należy zapisać w pliku (np. cw21.mdl). Rys. 5. Kompletny model symulacyjny do pierwszego zadania Uruchomienie symulacji i graficzna prezentacja wyników Przed uruchomieniem symulacji trzeba ustawić parametry symulacji. W oknie dialogowym menu Simulation podmenu Simulation parameters ustawić: początek czasu symulacji tp, koniec symulacji tk, maksymalny krok czasu dtmax, minimalny krok czasu dtmin, początkowy krok czasu dtmin. Poprawne uruchomienie symulacji modelu sparametryzowanego wymaga wcześniejszego stworzenia w przestrzenia roboczej zmiennych, które zostały wpisane do bloków. Odbywa się to przez uruchomienie w oknie komend pliku skryptowego (np. nazwa Enter, czyli w tym przypadku scw2 Enter). Rozpoczęcie symulacji z graficznego okna modelu odbywa się przez wybór pola Start w menu Simulation. Uruchomienie symulacji z poziomu pliku skryptowego odbywa się za pomocą funkcji sim(‘nazwa pliku z modelem’). Wskazówki dotyczące części pliku skryptowego do zadania pierwszego Poszczególne zadania wymagają opracowania rożnych modeli symulacyjnych. Aby jeden plik skryptowy służył do uruchomienia i graficznej prezentacji wyników poszczególnych zadań, fragmenty pliku dotyczące danego zadania muszą być uruchamiane warunkowo, zależnie od wybranego zadania. Strukturę pozostałej, warunkowej części pliku skryptowego, bez szczegółów dotyczących każdego zadania, w zapisie Matlaba przedstawiono poniżej poziom=1; %Wybór poziomu - zadania if poziom==1; %Pierwsze zadanie elseif poziom==2 %Drugie zadanie else %Trzecie zadanie end Fragment pliku skryptowego do realizacji pierwszego zadania powinien zawierać następujące elementy: a) Uruchomienie symulacji Za pomocą funkcji sim(‘nazwa pliku z modelem’). b) Stworzenie zmiennych, które reprezentują wyniki symulacji Wyniki symulacji zawarte są w poszczególnych kolumnach macierzy stworzonej przez blok To Workspace (nazwa macierzy jest wpisana jako parametr w tym bloku). Zamiast posługiwać się w dalszej części pliku poszczególnymi kolumnami macierzy operatywniej jest używać krótkich nazw, które reprezentują poszczególne wyniki symulacji. Dodatkowo, informacja zawarta w treści nazwy ułatwia operowanie poszczególnymi wynikami. Przykładowo, polecenie In=ws(:,2); tworzy zmienną In zawierającą wartości prądu obwodu nieliniowego w poszczególnych chwilach czasu. c) Obliczenie czasów narastania prądów Do obliczenia czasów narastania prądów wykorzystujemy wartości sygnałów logicznych. Zmiana wartości sygnału z poziomu zera do poziomu jeden następuje w chwili, gdy różnica pomiędzy wartością danego prądu, a wartością ustaloną jest mniejsza od założonej dokładności epsi. Do identyfikacji tej chwili wystarczy znaleźć najmniejsza wartość indeksu tych elementów wektora sygnału logicznego, których wartości są równe jeden. W notacji Matlaba wykonuje się to jednym poleceniem. d) Dokładne rozwiązanie obwodu liniowego na podstawie zależności analitycznej Przebieg prądu jest określony zależnością t − U τ (22) i (t ) = (1 − e ) , R L gdzie stała czasowa τ = . R Strumień można obliczyć z zależności ψ (t ) = Li(t ) (23) Przed obliczeniem wartości prądu i strumienia w kolejnych chwilach należy zdefiniować wektor czasu np. od zera do czasu końca symulacji, co jedną setną sekundy. e) Graficzna prezentacja wyników symulacji i w przypadku obwodu liniowego porównanie z rozwiązaniem analitycznym: prądy i strumienie w funkcji czasu Opracować wykresy wyników symulacji jak na rys. 6. f) Graficzna prezentacja wyników symulacji - prądy, wyznaczanie czasów narastania Pokazać na wykresie przebiegi prądów w obydwu obwodach oraz przebiegi sygnałów logicznych odjętych od prądu ustalonego. Wpisać na rysunku czasy narastania prądu w układzie liniowym i nieliniowym, jak to pokazano na rys. 7. Odnośnie badania wpływu kroku całkowania na dokładność rozwiązania. Badanie polega na zwiększaniu minimalnego kroku czasu w procedurze całkującej i śledzeniu poprawności rozwiązania, uzyskiwanego metodą całkowania numerycznego, przez porównanie go z rozwianiem dokładnym. W wyniku badania należy określić wartość minimalnego kroku całkowania, powyżej której rozwiązanie staje się fizycznie – jakościowo niepoprawne. W którym obwodzie wcześniej wystąpi rozwiązanie niepoprawne? Poniżej zamieszczono przykładowy fragment pliku skryptowego do realizacji wymagań zadania pierwszego. Rys. 6. Wyniki symulacji i porównanie z rozwiązaniem dokładnym (r.d.), skok napięcia, obwód liniowy (u.l.) i nieliniowy (u.nl.) Rys. 7. Przebiegi prądów przy skokowym załączeniu napięcia z pokazaniem czasu narastania prądów trn czas narastania prądu w obwodzie nieliniowy, trl w obwodzie liniowym %Uruchomienie symulacji sim('cw21'); %Zmienne reprzezentujące wyniki symulacji t=ws(:,1); %wektor czasu In=ws(:,2); %wektor prądu u.nl. Psn=ws(:,4); %wektor strumienia u.nl. Il=ws(:,3); %wektor prądu u.l. Psl=ws(:,5); %wektor strumienia u.l. sn=wsl(:,1); %sygnał log. koniec narastania u.nl. sl=wsl(:,2); %sygnał log. koniec narastania u.l. %bliczenie czasów narastania prądów trn=t(min(find(sn>0)))-tu %Czas narastania pradu w u.nl. trl=t(min(find(sl>0)))-tu %Czas narastania pradu w u.l. %Rozwiązanie dokładne obwodu liniowego tr=[0:0.01:t(end)]; Id=U/R*(1-exp(-tr./T)); Psd=L*Id; %Graficzna prezentacja wyników symulacji: prądy i strumienie w funkcji czasu figure('name','Wyniki symulacji w funkcji czasu','numberTitle','off'); h1=plot(t,Il,'b',tr,Id,'--c',t,In,'r'); hold on h2=plot(t,Psl,'b',tr,Psd,'--c',t,Psn,'r','Linewidth',1.5);grid hold off legend([h1 h2],'Prąd u.l.','Prąd u.l.r.d.','Prąd u.nl.','Strumień u.l.','Strumień u.l.r.d.','Strumień u.nl.',1) xlabel('Czas, s') ylabel('Prąd, A, Strumień, Wb'); %Graficzna prezentacja wyników symulacji - prądy, wyznaczanie czasów narastania figure('name','Przebiegi prądów, wyznaczanie czasów narastania ','numberTitle','off'); h1=plot(t,Il,'b',t,In,'r'); hold on h2=plot(t,iz-sl,':b',t,iz-sn,':r'); hold off;grid legend([h1 h2],'Prąd u.l.','Prąd u.nl.','koniec narastania u.l.','koniec narastania u.nl.',4) text(trn,0.9*iz,['trn = ' num2str(trn,'%0.3f') ' s'],'BackgroundColor',[1 1 1],'margin',3 ); text(trl,0.9*iz,['trl = ' num2str(trl,'%0.3f') ' s'] ,'BackgroundColor',[1 1 1],'margin',3 ); xlabel('Czas, s') ylabel('Prąd, A, Strumień, Wb'); Wskazówki do rozwiązania zadania 2 Wskazówki dotyczące modyfikacji modelu symulacyjnego Rozwiązanie drugiego zadania należy rozpocząć od modyfikacji modelu symulacyjnego. Przed modyfikacją należy zapisać model w nowym pliku np. cw22.mdl. Na początku kasujemy część modelu, która służyła do obliczania czasów narastania prądów. Zaznaczamy bloki należące do tej części modelu i usuwamy przyciskiem Delete. Zaznaczenia grupy bloków można dokonać klikając kolejno na poszczególne bloki z wciśniętym przyciskiem Shift. Innym sposobem jest zaznaczenie myszką (z wciśniętym lewym przyciskiem) obszaru prostokąta, w którym znajduje się grupa bloków. Przy tym sposobie zaznaczania oprócz bloków zaznaczane są również linie, które je łączą. Dla poprawy przejrzystości modelu można grupy bloków scalać, zamykać w postaci podsystemu. Zrobimy to z grupami bloków, które modelują poszczególne równania – obwody. Po zaznaczeniu grupy bloków modelujących równanie nieliniowe z menu Edit wybieramy Create subsystem. Po tych operacjach model wygląda jak na rys. 8. Postępujemy podobnie z grupą bloków drugiego równania. Po modyfikacjach polegających na zmianie nazw podsystemów i bloków – portów wejścia wyjścia oraz uporządkowaniu i dołożeniu bloku wyjścia, z pochodną strumienia w każdym podsystemie, otrzymujemy model jak na rys. 9, z podsystemami pokazanymi na rys. 10. Następnie przystępujemy do modelowania równania (20) bilansu energii w poszczególnych obwodach. Wykorzystujemy do tego dodatkowy integrator, blok mnożący Product z biblioteki Math Operations oraz dwa bloki Mux. Po połączeniu model wygląda jak na rys. 11. Wykorzystano tu wektorowe własności integratora i bloku mnożącego. W celu uproszczenia struktury modelu zamykamy bloki modelujące równania bilansu energii w podsystem i otrzymujemy model jak na rys. 12, na którym pokazano również rozwinięty podsystem energii. Aby uprościć połączenia podsystemów, zmieniono kolejność portów wyjściowych w podsystemie równania liniowego. Rys. 8. Model po modyfikacjach usunięcia grupy bloków i zamknięciu grupy bloków równania nieliniowego w podsystem Rys. 9. Model po modyfikacjach zamknięciu grupy bloków obydwu równań w podsystemy Rys. 10. Podsystemy modelu z rys. 9. po lewej model obwodu nieliniowego po prawej liniowego Rys. 11. Model z rys. 9 po uzupełnieniu o model równań bilansu energii w obydwu obwodach Rys. 12. Ostateczna postać modelu do zadania drugiego z rozwiniętym podsystemem energii Wskazówki dotyczące części pliku skryptowego do zadania drugiego Fragment pliku skryptowego do realizacji zadania drugiego powinien zawierać następujące części: a) Uruchomienie symulacji Za pomocą funkcji sim(‘nazwa pliku z modelem’). b) Stworzenie zmiennych, które reprezentują wyniki symulacji W porównaniu do zadania pierwszego nie występują tu zmienne reprezentujące sygnały logiczne, natomiast tworzymy nowe zmienne, reprezentujące energie w obwodzie liniowym i nieliniowym. c) Graficzna prezentacja wyników symulacji: prądów, strumieni i energii w funkcji czasu. Opracować wykresy wyników symulacji jak na rys. 13. d) Obliczenia energii magnetycznej w elemencie indukcyjnym nieliniowym na podstawie charakterystyki i(psi) Obliczyć wartość energii magnetycznej zgromadzonej w elemencie indukcyjnym w stanie ustalonym na podstawie zależności (21). Sporządzić wykres ψ (i ) i przedstawić interpretację graficzna energii i koenergii magnetycznej nieliniowego elementu indukcyjnego jak pokazano to na rys 14. e) Obliczenia indukcyjności statycznej i dynamicznej nieliniowego elementu indukcyjnego Obliczyć na podstawie charakterystyki i (ψ ) i zależności (9 i 10) oraz wykreślić w funkcji prądu charakterystyki indukcyjności statycznej i dynamicznej oraz charakterystykę indukcyjności elementu liniowego jak to pokazano na rys. 15. Poniżej zamieszczono przykładowy fragment pliku skryptowego do realizacji wymagań zadania drugiego. Rys. 13. Wyniki symulacji uzyskane z modelu opracowanego w zadaniu drugim Rys. 14. Charakterystyka ψ (i ) nieliniowego elementu indukcyjnego i interpretacja graficzna energii i koenergii magnetycznej Rys. 15. Charakterystyki indukcyjności: statycznej i dynamicznej oraz charakterystyka indukcyjności elementu liniowego %Uruchomienie symulacji sim('cw22'); %Zmienne reprzezentujące wyniki symulacji t=ws(:,1); %wektor czasu In=ws(:,2); %wektor prądu u.nl. Il=ws(:,3); %wektor prądu u.l. Psn=ws(:,4); %wektor strumienia u.nl. Psl=ws(:,5); %wektor strumienia u.l. En=ws(:,6); %wektor energii u.nl. El=ws(:,7); %wektor energii u.l. %Wyniki symulacji w funkcji czasu figure('name','Wyniki symulacji w funkcji czasu','numberTitle','off'); h1=plot(t,Il,'b',t,In,'r'); hold on h2=plot(t,Psl,'b',t,Psn,'r','Linewidth',1.5); h3=plot(t,El,'--b',t,En,'--r','Linewidth',1.5); hold off legend([h1 h2 h3],'Prąd u.l.','Prąd u.nl.','Strumień u.l.','Strumień u.nl.',... 'Energia u.l.','Energia u.nl.',1) xlabel('Czas, s') ylabel('Prąd, A, Strumień, Wb, Energie, J'); grid %Obliczenia energii magnetycznej na podstawie charakterystyki i(psi) Em=a/2*psz^2+b/4*psz^4; %energia amagnetyczna na podst.(21) Psi=[0:0.001:psz]'; %równomierny wektor strumienia I=a*Psi+b*Psi.^3; nl=50; %liczba lini pionowych i poziomych Psir=linspace(Psi(1),Psi(end),nl)'; Ir=a*Psir+b*Psir.^3; Irr=linspace(I(1),I(end),nl)'; Psirr=interp1(I,Psi,Irr); figure('name','Zależność strumienia od prądu, Energia, Koenergia ','numberTitle','off'); plot([zeros(nl,1) Ir]',[Psir Psir]','r',[Irr Irr]',[zeros(nl,1) Psirr]','b') hold on; plot(I,Psi,'k','linewidth',1.5); hold off; text(iz/5,0.85*psz,['ENERGIA = ' num2str(Em) ' J'],'BackgroundColor',[1 1 1],'margin',3 ); text(iz/2,psz/2,['KOENERGIA = ' num2str(iz*psz-Em) ' J'] ,'BackgroundColor',[1 1 1],'margin',3 ); xlabel('Prąd, A'); ylabel('Strumień, Wb'); %Obliczenia indukcyjności statycznej i dynamicznej elementu nieliniowego Ls=Psi(2:end)./I(2:end); Ld=diff(Psi)./diff(I); figure('name','Indukcyjności statyczna i dynamiczna w funkcji prądu','numberTitle','off'); h1=plot(0,0,'linestyle','non'); hold on h2=plot([I(1) I(end)],[L L],'c'); %indukcyjność w układzie liniowym h3=plot(I(2:end),Ls,'b'); h4=plot(I(1:end-1),Ld,'r'); hold off legend([h1 h2 h3 h4],'Indukcyjności:','układ l.','statyczna u.nl.','dynamiczna u.nl.',1) grid Wskazówki do rozwiązania zadania 3 Wskazówki dotyczące modyfikacji modelu symulacyjnego W trzecim zadaniu będą badane różne warianty stanu zwarcia. Zwarcie będzie modelowane jako stan następny po skokowym załączeniu napięcia i wystąpieniu w obwodach stanów ustalonych. Czas, który w dotychczasowych zadaniach był czasem końca symulacji będzie czasem początku zwarcia. Przed modyfikacją modelu symulacyjnego należy zapisać go w nowym pliku np. cw23.mdl. W modelu należy zmienić źródło napięcia. Blok modelujący skok napięcia należy zastąpić blokiem, który umożliwi kształtowanie napięcia w czasie. Można to zrealizować na kolka sposobów. Dosyć wygodnym wydaje się użycie bloku Repeating Sequence z biblioteki Sources. Usuwamy z modelu blok Step i zastępujemy go blokiem Repeating Sequence. W bloku tym przebieg napięcia w funkcji czasu jest kształtowany przez dwa wektory. Wpisujemy w odpowiednie pola nazwy wektorów np. wt i wU, które następnie definiujemy w pliku skryptowym. Wektory te powinny zapewnić skokową zmianę napięcia w chwili tu, tak jak to było dotychczas i następnie skokową zmianę napięcia w chwili początku zwarcia. Zmiana ta zależy od wariantu zwarcia. Jeżeli obwód jest zwierany gałęzią pasywną to napięcie powinno spaść do zera. Gdy rozpatrywane jest zwarcie gałęzią aktywna, to napięcie zmienia się do wartości określonej przez dodatkowa zmienną Ud. Napięcie to powinno mieć znak przeciwny do U. Oprócz modyfikacji źródła należy wprowadzić blok, który modeluje rezystancję gałęzi zwierającej. Można do tego użyć tego samego bloku Repeating Sequence. Oprócz takiego samego wektora czasu wt w bloku tym należy wpisać nazwę wektora rezystancji dodatkowej wRd. Definiujemy ten wektor w pliku skryptowym. Blok ten zapewnia skokową zmianę rezystancji obwodu w chwili zwarcia. Wprowadzenie do modelu rezystancji dodatkowej Rd zgodnie z równaniami (5,6) wymaga modyfikacji podsystemów modelujących równania napięciowe. Należy dodać dodatkowy port wejściowy, zmienić na trzy liczbę wejść bloków Mux oraz zmienić formułę w blokach Fcn modelujących prawe strony równań. Po tych zmianach otrzymujemy model jak na rys. 16, na którym przedstawiono również rozwinięte bloki podsystemów modelujących poszczególne równania napięciowe. Wyznaczenie czasów zaniku prądów podobnie jak w zadaniu pierwszym wymaga śledzenia wartości prądów. Podsystem, który to umożliwia przedstawiono na rys. 17. Oprócz badania relacji wartości prądów w stosunku do przyjętej dokładności epsi, badany jest również czas, aby warunek prądów odnosił się tylko do stanu zwarcia. Znajomość dłuższego czasu zaniku prądu pozwala na wykorzystanie go do warunkowego zakończenia symulacji. Użyto do tego dodatkowo bloku Selektor z biblioteki Signal Routing i bloku Stop Simulation z biblioteki Sinks. Kompletny model symulacyjny do zadania trzeciego pokazano na rys. 18. Rys. 16. Model symulacyjny do badania stanu zwarcia z rozwiniętymi podsystemami modelującymi równania napieciowe – wersja niekompletna Rys. 17. Podsystem do badania czasu zaniku prądów Rys. 18. Kompletny model symulacyjny do zadania trzeciego. Przed rozpoczęciem symulacji należy w modelu zmodyfikować parametry symulacji. W polach okna dialogowego należy zmienić wpisy dotyczące minimalnego i początkowego kroku na auto. Wskazówki dotyczące części pliku skryptowego do zadania trzeciego Fragment pliku skryptowego do realizacji zadania trzeciego powinien zawierać następujące części: a) Definicja dodatkowych parametrów bloków modelu symulacyjnego Zgodnie z wcześniejszymi uwagami w zależności od wybranego wariantu zwarcia definiujemy zmienne: Ud, Rd, wt, wU, wRd. Oprócz tego tworzymy zmienną tpw określającą chwilę zwarcia i z zapasem wydłużamy czas końca symulacji tk po to żeby zadziałało automatyczne zakończenie symulacji, w chwili zaniku wolniej zmieniającego się prądu. b) Uruchomienie symulacji Za pomocą funkcji sim(‘nazwa pliku z modelem’). c) Stworzenie zmiennych, które reprezentują wyniki symulacji W porównaniu do zadania drugiego występują tu zmienne reprezentujące sygnały logiczne. Zmiana wartości tych sygnałów z poziomu zera do poziomu jeden następuje w chwili, gdy różnica pomiędzy wartością danego prądu, a wartością ustaloną jest mniejsza od założonej dokładności epsi. d) Obliczenie czasów zanikania prądów Czasy obliczane są podobnie jak zostało to opisane w zadaniu pierwszym. Czas zanikania wolniej zmieniającego się prądu jest wykorzystywany jako warunek zakończenia symulacji, dlatego chwila końca symulacji jest używana do obliczania czasu zanikania tego prądu. e) Graficzna prezentacja wyników symulacji: prądy, strumienie i energie magnetyczne w funkcji czasu Opracować wykresy wyników symulacji dla trzech wariantów zwarcia: - Rd=0 Ud=0 jak na rys. 19 - Rd=5R Ud=0 jak na rys. 21 - Rd=0 Ud= – 0,5U jak na rys. 23 f) Graficzna prezentacja wyników symulacji - prądy, wyznaczanie czasów zanikania Pokazać na wykresie przebiegi prądów w obydwu obwodach oraz przebiegi sygnałów logicznych. Wpisać na rysunku czasy zanikania prądów w układzie liniowym i nieliniowym dla powyższych wariantów zwarcia, jak to pokazano na rys. 20, 22, 24 Poniżej zamieszczono przykładowy fragment pliku skryptowego do realizacji wymagań zadania trzeciego. Rys. 19. Wyniki symulacji uzyskane z modelu opracowanego w zadaniu trzecim, zwarcie gałęzią pasywną o rezystancji Rd=0 Rys. 20. Przebiegi prądów, uzyskane z modelu opracowanego w zadaniu trzecim, zwarcie gałęzią pasywną o rezystancji Rd=0, czasy zanikania prądów tzn czas zanikania prądu w obwodzie nieliniowy, tzl w obwodzie liniowym Rys. 21. Wyniki symulacji uzyskane z modelu opracowanego w zadaniu trzecim, zwarcie gałęzią pasywną o rezystancji Rd=5R Rys. 22. Przebiegi prądów, uzyskane z modelu opracowanego w zadaniu trzecim, zwarcie gałęzią pasywną o rezystancji Rd=5R, czasy zanikania prądów tzn czas zanikania prądu w obwodzie nieliniowy, tzl w obwodzie liniowym Rys. 23. Wyniki symulacji uzyskane z modelu opracowanego w zadaniu trzecim, zwarcie gałęzią aktywną o napięciu źródła Ud = – 0,5U i rezystancji Rd=0 Rys. 22. Przebiegi prądów, uzyskane z modelu opracowanego w zadaniu trzecim, zwarcie gałęzią aktywną o napięciu źródła Ud = – 0,5U i rezystancji Rd=0, tzn czas zanikania prądu w obwodzie nieliniowy, tzl w obwodzie liniowym Rd=0; Ud=0; tpw=tk; %czas poczatku zwarcia tk=10*tk; %czas końca symulacji z nadmiarem żeby zadziałał Stop wt=[tp tu tu tpw tpw tk]; wU=[0 0 U U Ud Ud]; wRd=[0 0 0 0 Rd Rd]; %Uruchomienie symulacji sim('cw23'); %Zmienne reprzezentujące wyniki symulacji t=ws(:,1); %wektor czasu In=ws(:,2); %wektor prądu u.nl. Il=ws(:,3); %wektor prądu u.l. Psn=ws(:,4); %wektor strumienia u.nl. Psl=ws(:,5); %wektor strumienia u.l. En=ws(:,6); %wektor energii u.nl. El=ws(:,7); %wektor energii u.l. sn=wsl(:,1); %sygnał log. koniec zanikania u.nl. sl=wsl(:,2); %sygnał log. koniec zanikania u.l. %Obliczenie czasów zanikania prądów tzn=t(end)-tpw tzl=t(min(find(sl>0)))-tpw %Wyniki symulacji w funkcji czasu figure('name','Wyniki symulacji w funkcji czasu','numberTitle','off'); h1=plot(t,Il,'b',t,In,'r'); hold on h2=plot(t,Psl,'b',t,Psn,'r','Linewidth',1.5); h3=plot(t,El,'--b',t,En,'--r','Linewidth',1.5); hold off legend([h1 h2 h3],'Prąd u.l.','Prąd u.nl.','Strumień u.l.','Strumień u.nl.',... 'Energia u.l.','Energia u.nl.',1); xlabel('Czas, s') ylabel('Prąd, A, Strumień, Wb, Energie, J'); grid %Wyniki symulacji - prądy, wyznaczanie czasów zanikania prądów figure('name','Przebiegi prądów wyznaczanie czasów zaniku','numberTitle','off'); h1=plot(t,Il,'b',t,In,'r'); hold on h2=plot(t,sl,':b',t,sn,':r'); hold off legend([h1 h2],'Prąd u.l.','Prąd u.nl.','Koniec zaniku u.l.','Koniec zaniku u.nl.',1); text(tzn+tpw,0.1*iz,['tzn = ' num2str(tzn,'%0.3f') ' s'],'HorizontalAlignment','left','BackgroundColor',[1 1 1]); text(tzl+tpw,0.2*iz,['tzl = ' num2str(tzl,'%0.3f') ' s'] ,'HorizontalAlignment','left','BackgroundColor',[1 1 1]); xlabel('Czas, s') ylabel('Prąd, A, '); grid Pytania kontrolne: 1. Obliczyć energię magnetyczną elementu indukcyjnego liniowego i nieliniowego o ψ 9 i i = 0.5ψ + ψ 3 w dwóch punktach charakterystyk charakterystykach i = L 8 ψ 1 = 1,ψ 2 = 2 Wb, L=0,2 H 2. Obliczyć koenergię magnetyczną elementu indukcyjnego liniowego i nieliniowego o charakterystykach i = ψ i i = ψ + ψ 3 w dwóch punktach charakterystyk L ψ 1 = 1,ψ 2 = 2 Wb, L=0,2 H 3. Wyznaczyć charakterystykę indukcyjności dynamicznej nieliniowego elementu indukcyjnego o charakterystyce i = ψ 3 4. Jaka jest wartość indukcyjności dynamicznej nieliniowego elementu indukcyjnego o charakterystyce i = ψ 3 gdy i=0 5. Jak będzie usytuowana charakterystyka indukcyjności statycznej względem charakterystyki indukcyjności dynamicznej w nieliniowym elemencie indukcyjnym o charakterystyce i = ψ 3 6. Jaki powinien być kształt charakterystyki nieliniowego elementu indukcyjnego, aby charakterystyka indukcyjności statycznej leżała nad charakterystyką indukcyjności dynamicznej? Podać przykład takiej charakterystyki nieliniowego elementu indukcyjnego. 7. Jaka jest zależność na stałą czasową obwodu RL i jaki jest jej sens fizyczny. 8. Na przykładzie rozpatrywanych w ćwiczeniu obwodów z liniowym i nieliniowym elementem indukcyjnym uzasadnić, dlaczego czas narastania prądu, przy skokowej zmianie napięcia w obwodzie nieliniowym jest krótszy, niż czas narastania prądu w obwodzie liniowym 9. Na przykładzie rozpatrywanych w ćwiczeniu obwodów z liniowym i nieliniowym elementem indukcyjnym uzasadnić, dlaczego czas zanikania prądu, przy zwarciu obwodów pasywna gałęzią o rezystancji równej zero, w obwodzie nieliniowym jest dłuższy, niż czas zanikania prądu w obwodzie liniowym 10. Dlaczego wzrost rezystancji gałęzi zwierającej wpływa na skrócenie czasów zanikania prądów. 11. Dlaczego przy zwarciu gałęzią aktywna, z odwrotnie spolaryzowanym źródłem, czasy zaniku prądów ulegają skróceniu. Opracował Jan Szczypior Warszawa luty 2006