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.