Obliczenia numeryczne w MATLAB-ie

Transkrypt

Obliczenia numeryczne w MATLAB-ie
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:
dy
= diff ( y ). / diff ( x)
(1)
dx
gdzie x jest wektorem zawierającym wartości zmiennej niezależnej.
Przykład 1
Napisać m-plik realizujący numeryczne obliczanie pochodnej funkcji y:
y = 2 + 2 sin 2 ( x) + cos 2 ( x)
(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.
3
2.5
2
y'analit
y'numer
1.5
y; y'
y
1
0.5
0
-0.5
-1
0
0.5
1
1.5
2
2.5
x
3
3.5
4
4.5
5
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ą:
e(t ) = 10e −2t (cos 2t + sin 2t )
Należy obliczyć kwadratowy wskaźnik jakości regulacji I2.
(3)
I 2 = ∫ e 2 (t )dt
∞
(4)
0
Obliczenia przeprowadzić w przedziale czasu t ε <0,3>.
100
90
80
70
e
2
60
50
40
30
20
10
0
0
1
2
3
4
5
t
6
7
8
9
10
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 ∫ e 2 (t )dt .
∞
0
a=0; % dolna granica
b=2; % gorna granica
wynik=quad('calka06',a,b)
Po wywołaniu m-pliku otrzymujemy:
wynik=37.4881
II. Opis zadania laboratoryjnego
- 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) u c (t ) = 10(1 − e
−
t
10
)
b) u c (t ) = 100 sin( 314t − (π / 4)) + 100 sin( π / 4)e
−
t
(1 / 314 )
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:
2M k
M =
s sk
+
sk
s
n
gdzie: s = ; dn = n0 ds
n0
(5)
Moment dynamiczny podczas hamowania:
M d = − M − M m = −( M + M m ) = J
Stąd czas hamowania dynamicznego:
th = J
0
πn
π dn
=J 0
∫
30 n0 M d
30
πn0
ds
∫0 M + M m = J 30
1
dω
π dn
=J
dt
30 dt
∫
1
0
ds
2M k
+ Mm
s sk
+
sk
s
(6)
(7)
W sprawozdaniu należy przedstawić między innymi:
-
najważniejszą część skryptów m-plików
różniczkowania i całkowania numerycznego,
funkcyjnych,
dla
zadań
dotyczących
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.