OBLICZENIA NUMERYCZNE w MATLABIE (różniczkowanie i całkowanie)
I. Wprowadzenie do ćwiczenia 1. Różniczkowanie numeryczne
Procedura realizująca różniczkowanie w MATLABie zaimplementowana jest w funkcji diff. Funkcja diff zwraca wektor sąsiednich elementów wektora będącego argumentem jej wywołania. W związku z tym pochodną funkcji y danej w postaci tablicy wartości oblicza się jako: ) ( / ). (y diff x diff dx dy = (1)
gdzie x jest wektorem zawierającym wartości zmiennej niezależnej. Przykład 1
Napisać m-plik realizujący numeryczne obliczanie pochodnej funkcji y: ) ( cos ) ( sin 2 2 2 2 x x y= + + (2)
Obliczenia wykonać w zakresie <0 5>. Przyjąć stały krok różniczkowania h=0,01. Porównać przebieg pochodnej y wyznaczonej numerycznie z przebiegiem pochodnej y wyznaczonej analitycznie.
Główna część stosownego m-pliku jest następująca: h=0.01;
x=0:h:5;
y=1+2*(sin(x)).^2+(cos(x)).^2; % funkcja y
pyy=4*sin(x).*cos(x)-2*cos(x).*sin(x); % pochodna analityczna py=diff(y)./diff(x); % pochodna numeryczna
plot(x(1:500)',[pyy(1:500)', py(1:500)',y(1:500)']); Realizacja tego zagadnienia przedstawiona jest na rys. 1.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 x y ; y ' y'analit y'numer y
Rys. 1 Wykres funkcji y oraz pochodnych wyznaczonych: analitycznie i numerycznie 2.- Całkowanie numeryczne
Całkowanie w MATLABie realizują m-pliki funkcyjne quad oraz quad8. Składnia tych funkcji jest następująca:
Calka= quad(‘funkcja_podcalkowa’, a, b) gdzie: calka - wartość całki oznaczonej,
‘funkcja_podcalkowa’ – nazwa m_funkcji zwracającej wartość funkcji podcałkowej, a, b – granice całkowania odpowiednio: dolna i górna.
Przykład 2
W pewnym układzie regulacji błąd regulacji e(t) opisany jest funkcją: ) 2 sin 2 (cos 10 ) (t e 2 t t e = − t + (3)
Należy obliczyć kwadratowy wskaźnik jakości regulacji I2.
∫
∞ = 0 2 2 e ( dtt) I (4)Obliczenia przeprowadzić w przedziale czasu t ε <0,3>.
0 1 2 3 4 5 6 7 8 9 10 0 10 20 30 40 50 60 70 80 90 100 t e 2
Rys. 2 Przebieg sygnału e2(t)
W celu wyznaczenia wskaźnika I2 definiujemy funkcję e2. Odpowiedni m-plik przedstawiono
poniżej:
function blad= calka06(t)
blad=(10.*exp(-2*t).*(sin(2*t)+cos(2*t))).^2;
Następnie korzystamy z funkcji quad w celu obliczenia całki
∫
∞ 0 2 ) ( dtt e .
a=0; % dolna granica b=2; % gorna granica wynik=quad('calka06',a,b)
Po wywołaniu m-pliku otrzymujemy: wynik=37.4881
- Różniczkowanie numeryczne Zadanie 1a
Wyniki pomiarów prędkości (w metrach) pewnego urządzenia wyciągowego podane są w tablicy:
vy=[0 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 9 8 7 6 5 4 3 2 1 0]. Określić przyspieszenie tego urządzenia. Wiadomo, że pomiary były dokonywane co 10 sekund.
Zadanie 1b
Przebieg napięcia uc(t) na kondensatorze (o pojemności C=10 [µF]) zmienia się w czasie
według krzywej: a) ( ) 10(1 10) t c t e u = − − b) (1/314) ) 4 / sin( 100 )) 4 / ( 314 sin( 100 ) ( t c t t e u = − π + π −
Wyznaczyć przebieg prądu płynącego przez kondensator. Dobrać odpowiedni przedział czasu i krok różniczkowania.
- Całkowanie numeryczne Zadanie 2
Obliczyć czas hamowania dynamicznego silnika asynchronicznego pierścieniowego. Maksymalny moment przy hamowaniu dynamicznym Mk= 150Nm. Moment statyczny na
wale silnika Mm=50 Nm. Całkowity moment bezwładności wirnika silnika napędzanego
przezeń mechanizmu obliczony względem osi wału silnika wynosi J=0,4 kgm2. Początkowa wartość przy hamowaniu równa jest prędkości synchronicznej n0=1500 obr/min. Obliczenia
przeprowadzić dla dwóch wartości rezystancji włączonych w obwód wirnika: Rd1=0,18 Ω i
Rd2=0,18 Ω.
Pozostałe dane zadania:
- poślizg krytyczny znamionowy skn=0,25 (Rd=0),
- poślizg krytyczny po włączeniu Rd1 wynosi sk1=0,5,
- poślizg krytyczny po włączeniu Rd2 wynosi sk1=1.
Moment wytwarzany przez silnik podczas hamowania dynamicznego:
s s s s M M k k k + = 2 (5) gdzie: dn n ds n n s 0 0 ; = =
Moment dynamiczny podczas hamowania: dt dn J dt d J M M M M Md m m 30 ) ( + = ω = π − = − − = (6)
Stąd czas hamowania dynamicznego:
∫
∫
∫
+ + = + = = 1 0 0 1 0 0 0 2 30 30 30 0 m k k k m n d h M s s s s M ds n J M M ds n J M dn J t π π π (7)W sprawozdaniu należy przedstawić między innymi:
- najważniejszą część skryptów m-plików funkcyjnych, dla zadań dotyczących różniczkowania i całkowania numerycznego,
- wykres prędkości i przyspieszenia urządzenia wyciągowego (zadanie 1a), - przebieg prądu (zadanie 1b),
- przebieg momentu silnika wytwarzanego podczas hamowania (wzór 5) w funkcji poślizgu dla przypadków: Rd=0 (skn=0,25), Rd1 (sk1=0,5), Rd2 (sk2=1) (zadanie 2),
- wyliczone czasy hamowania silnika zgodnie z wzorem 7 (zadanie 2), - wnioski końcowe z przeprowadzonego ćwiczenia.