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