sprawko moje 1.docx

(126 KB) Pobierz

Akademia Górniczo-Hutnicza

im. Stanisława Staszica w Krakowie

 

 

 

 

WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI

 

 

 

LABOLATORIUM Z PODSTAW AUTOMATYKI

SPRAWOZDANIE

 

Laboratorium nr 1

 

                                 TematRozwiązywanie równań różniczkowych

           z niezerowymi warunkami początkowymi.

 

 

 

 

 

 

 

              Wykonał:

              Damian Kubik

              Rok 2, Grupa 4b

              Rok akademicki: 2010/11

             

             

  Cel ćwiczenia:

·         Zapoznanie się z metodami symbolicznego i numerycznego rozwiązywania równań różniczkowych w Matlabie.

·         Wykorzystanie Simulinka do tworzenia modelu równania różniczkowego,

·         Archiwizacja danych.

 

 

 

1.     Rozwiązanie równania różniczkowego:

   przy warunkach początkowych:  y(0)=3, y’(0)=0

 

za pomocą funkcji dsolve().

 

m-plik

 

            syms x, y;                                                                                 % definicja zmiennych symbolicznych ‘x’ i ‘y’

x = dsolve(‘D2y + 2*Dy + 5*y = 0’ , y(0)=3’ , ‘Dy(0)=0’); % rownanie, warunki początkowe

pretty(x);                                                                                   % wypisanie rozwiązania

t=0:0.01:9.99;                                                                          % definicja wektora czasu

w=subs(x);                                                                                % wartość liczbowa ‘x’ wyliczona poprzez

                                                                                                  % podstawienie zdef. Wczesniej wektora ‘t’

plot(t,w,’r-‘);                                                                            % narysowanie wykresu

xlabel(‘czas[s]’);

ylabel(‘amplituda sygnalu’);

title(‘wykres rozwiązania’);

grid;

 

 

 

 

2.     Rozwiązanie równania różniczkowego:

   przy warunkach początkowych:  y(0)=3, y’(0)=0

 

za pomocą funkcji ode45.

 

plik: funkcja.m

 

function xdot  = funkcja (t,y)

 

xdot = zeros (2,1);

xdot(1)= x(2);

xdot(2) = (-5*x(1)-2*x(2));

 

plik: rozwiazanie.m

function rozwiazanie

t0=0;

clc

disp (‘Funkcja rozwiązuje rownanie rozniczkowe zwyczajnie metodą’);

disp(‘Rungego – Kutty i podaje jego interpretacje graficzna:’);

disp(‘Postac równania:          x’’ + 2x’ + 5x = 0’);

x01=input (‘Podaj wartość x01 = ’);

x02=input (‘Podaj wartość x02 = ’);

tk=input (‘Podaj czas symulacji tk = ’);

x0=[x01 x02];

[t,x]=ode45(‘funkcja’ , t0,tk, x0 , 0.001,0);

plot(t,x(:,1),’g-’);

xlabel(‘czas [s]’);

ylabel(‘amplituda sygnalu’);

title(‘wykres rozwiazania’);

grid;

 

 

 

 

3.     Rozwiązanie równania różniczkowego:

   przy warunkach początkowych:  y(0)=3, y’(0)=0

 

przy pomocy pakietu Simulink.

 

 

 

4.     Wnioski:

W programach MatLab oraz Simulink możemy rozwiązywać równania          różniczkowe o wiele sprawniej niż ręcznie metodami analitycznymi. 

Korzystając ze zmiennych symbolicznych i funkcji dsolve() możliwe jest rozwiązanie           równania różniczkowego dowolnego rzędu. W  Wyniku otrzymujemy równanie matematyczne oraz wykres funkcji. Funkcja ode45 rozwiązuje zagadnienie początkowe dla równań zwyczajnych rzezu 4 i 5 za pomocą np. metod Rungego-Kutty. Wynikiem jest  wykres. Dzięki programowi Simulink możemy w łatwy sposób budować schematy blokowe a następnie na podstawie wykresu obserwować przebieg sygnału  

     Rozwiązanie za pomocą Simulinka jest obarczone największym błędem .

 

 

 

Zgłoś jeśli naruszono regulamin