Materiały pomocnicze 8 - Wydział Elektrotechniki i Automatyki
Transkrypt
Materiały pomocnicze 8 - Wydział Elektrotechniki i Automatyki
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Teoria sterowania Obliczenia symboliczne w środowisku MATLAB Materiały pomocnicze do ćwiczeń laboratoryjnych 1 – Część 8 Opracowanie: Michał Grochowski, dr inż. Robert Piotrowski, dr inż. Tomasz Karol Nowak, mgr inż. Gdańsk 1 1. Czym jest Symbolic MATLAB Toolbox? Symbolic MATLAB Toolbox jest jednym z przyborników do wykorzystania w środowisku MATLAB, który zapewnia narzędzia do rozwiązywania symbolicznych wyrażeń matematycznych i dokonywania arytmetyki zmiennopozycyjnej. Zawiera on setki funkcji symbolicznych, które można wykorzystać do wielu typów obliczeń, łącznie z przetwarzaniem i rozwiązywaniem równań. 2. Definiowanie zmiennej i stałej symbolicznej W celu zdefiniowania zmiennej x można napisać: syms x Jeśli chcemy zdefiniować większą liczbę zmiennych, należy je wpisać oddzielając spacjami, tzn.: syms x y z Do zdefiniowania stałej należy posłużyć się wyrażeniem: a = sym('4') Stała a przyjmie wówczas wartość równą 4. 3. Wartości liczbowe w wyrażeniach symbolicznych Wynik liczbowy zapisany w postaci symbolicznej może zostać obliczony dzięki poleceniu subs(). Przykładowo: syms a b y = a+b; a = 1; b = 2; w = subs(y) Otrzyma się wówczas wynik 3 w zmiennej w. 4. Rozwiązywanie układów równań liniowych W celu rozwiązania układu równań należy – po zadeklarowaniu zmiennej symbolicznej użyć funcji solve(), jak na poniższym przykładzie: syms x y S = solve('x + y = 5', '2*x – y = 0') Spowoduje to rozwiązanie układu równań: x+ y= 5 2x – y= 0 2 5. Rozwiązywanie układów równań różniczkowych Ażeby rozwiązać układ równań różniczkowych należy wpisać: y = dsolve('Dx = x + 2*y', 'Dy = y', 'x(0) = 0', 'y(0) = 1') Spowoduje to rozwiązanie układu równań: dx = x+ 2y dt dy =y dt Z warunkami początkowymi: x (0)= 0 y (0)= 1 6. Znajdowanie miejsc zerowych Można znaleźć miejsce zerowe podanej funkcji, wpisując np.: syms x S = solve('2*x^2 + 5*x – 7 = 0') Spowoduje to rozwiąznanie funkcji kwadratowej danej funkcją: 2x2+ 5x – 7= 0 7. Zmiana postaci wyrażenia symbolicznego Do zmiany postaci wyrażenia symboliczego można stosować funkcję simplify(), która spowoduje uproszczenie wyniku. Przykładowo: syms x f = x^2 – 1; g = x – 1; simplify(f/g) Jak da się zauważyć, zadeklarowaliśmy tu dwie funkcje – f i g. Wpisanie powyższych wyrażeń spowoduje wyświetlenie wyniku: x-1 nie zaś (x^2 – 1)/(x – 1) które miałoby miejsce przy: 3 syms x f = x^2 – 1; g = x – 1; f/g Do grupowania zmiennych potrzebna jest funkcja collect(). Przykładowo: syms x f = x + 1; g = x + 3; collect(f*g) wyświetli: x^2 + 4*x + 3 zamiast (x+3)(x-1) w przypadku napisania: syms x f = x + 1; g = x + 3; f*g 8. Różniczkowanie i całkowanie symboliczne Do różniczkowania symbolicznego służy funkcja diff(). W celu zróżniczkowania funkcji po zmiennej x: y= x 2+ 3x – 1 należy wpisać: syms x y = x^2 + 3*x – 1; diff(y, x) Jeśli zaś chcemy obliczyć całkę nieoznaczoną po zmiennej x powyższej funkcji, należy posłużyć się funkcją int() jak poniżej: syms x y = x^2 + 3*x – 1; int(y, x) W celu obliczenia całki oznaczonej od 0 do 5 należy wpisać: syms x 4 y = x^2 + 3*x – 1; int(y, 0, 5) 9. Wyświetlanie funkcji Wyświetlanie funkcji następuje po użyciu polecenia ezplot(), jak w poniższym przykładzie: syms x f = x^3 * cos(x) – log(x+1); ezplot(f) Spowoduje to wyświetlenie funkcji: f (x)= x 3 cos( x) – log(x+ 1) 9. Obliczenie sumy szeregu Symbolic MATLAB Toolbox umożliwia wiele funkcji. Jedną z nich jest obliczenie sumy podanego szeregu. Służy do tego funkcja symsum(). Jeśli chcemy obliczyć sumę szeregu po k od 1 do 10, tzn: 10 ∑k i= 1 należy wpisać: syms k symsum(k, 1, 10) 10. Obliczenie granicy W celu obliczenia granicy należy skorzystać z polecenia limit(). Przykładowo: syms x limit(tan(x), x, 0, 'left') limit(tan(x), x, 0, 'right') limit(tan(x), x, inf) limit(tan(x), x, -inf) % % % % % % % % % obliczenie dążącym do obliczenie dążącym do strony obliczenie dążącym do obliczenie dążącym do granicy przy x 0 z lewej strony granicy przy x 0 z prawej granicy przy x nieskończoności granicy przy x -nieskończoności Bibliografia Brian Hahn, Daniel T. Valentine, Essential MATLAB for engineers and scientists, Third edition, 2007, ISBN 13: 9-78-0-75-068417-0, 5 Steven T. Karris, Signals and systems with MATLAB applications, Second Edition, ISBN 0-9709511-8-3, 6