Wydział Inżynierii Mechanicznej i Robotyki
PODSTAWY AUTOMATYKI LABORATORIUM
Temat ćwiczenia:
ROZWIZYWANIE RÓWNAC RÓŻNICZKOWYCH Z NIEZEROWYMI
WARUNKAMI POCZTKOWYMI
Bartosz Kotłowski grupa 14
Przebieg ćwiczenia:
1. Rozwiązanie równania 2x +3x +x=6, x(0)=2, x (0)=(-1) z wykorzystaniem funkcji
programu Matlab: dsolve()
%% Rozwiązanie równania różniczkowego metodą dsolve()
% Równanie różniczkowe: 2x +3x +x=6, x(0)=2, x (0)=(-1)
clear all; % czyszczenie pamięci
close all; % zamykanie okien
clc; % czyszczenie okna komend Matlaba
tic % uruchomienie zegara mierzącego czas wykonywania programu
syms x y; % definiowanie zmiennych symbolicznych
y=dsolve('2*D2x+3*Dx+x=6' , 'x(0)=2' , 'Dx(0)=-1');% wprowadzenie
% parametrów równania i warunków początkowych
pretty(y) % wypisanie rozwiązania w oknie komend Matlaba
t=0:0.01:9.99; % zdefiniowanie wektora czasowego t
w=subs(y); % podstawienie wektora czasowego t do równania y
plot(t,w,'b'); % wykres rozwiązania w funkcji czasu
title('Wykres rozwiązania rownania rozniczkowego'); %tytułu wykresu
xlabel('Czas [s]'); % podpisanie osi X
ylabel('Amplituda sygnału'); % podpisanie osi Y
grid; % naniesienie siatki na wykres
a = toc % wyświetlenie czasu działania programu i zapisanie go
% w zmiennej a
Wykres rozwiązania dla metody dsolve() :
2. Rozwiązanie równania 2x +3x +x=6, x(0)=2, x (0)=(-1) z wykorzystaniem funkcji
programu Matlab: ode45()
M-pliki wykorzystane do rozwiązania równania przy pomocy funkcji ode45
%% Rozwiązanie równania różniczkowego metodą ode45()
% Równanie różniczkowe: 2x +3x +x=6, x(0)=2, x (0)=(-1)
%M-pliki wykorzystane do rozwiązania równania przy pomocy funkcji ode45
ode.m (zapisujemy postać równania jako równania stanu)
function xdot=ode(t,x) % funkcja o nazwie ode, do której
% dostarczane są zmienne t oraz x, natomiast zwracana jest wartość
% xdot, plik należy zapisać pod nazwą ode.m
xdot=zeros(2,1);% zdefiniowanie obszaru pamięci przy użyciu
% macierzy wypełnionej zerami o rozmiarze 2x1, bez tego program
% zwróci błąd, gdyż w pierwszym kroku nie będzie wiedział skąd
% odczytać i gdzie zapisać dane
xdot(1)=x(2); % definiujemy x1' = x2
xdot(2)=(3- (3/2)*x(2) - x(1) /2); % definiujemy x2' = 3 -3/2*x2 x1/2
%Plik główny
%% Rozwiązanie równia różniczkowego przy pomocy komendy ode45()
% Równanie różniczkowe takie jak w przykładzie 1
%%
x01 = 2; % pierwszy warunek początkowy x(0) = 2
x02 = (-1); % drugi warunek początkowy x'(0) = -1
war_pocz = [x01 x02]; % łączymy warunki początkowe w jeden wektor
%%
[T,W] = ode45('ode',t,war_pocz); % wywołanie funkcji ode45()
% do rozwiązania równania różniczkowego zapisanego w pliku ode.m
%%
plot(T,W(:,1),'r'); % wyrysowanie pierwszej kolumny macierzy X
% w funkcji T opcja 'r' oznacza, że wykres będzie czerwony
title('Wykres rozwiązania rownania rozniczkowego'); % nadanie tytułu
xlabel('Czas [s]'); % podpisanie osi X
ylabel ('Amplituda sygnału'); % podpisanie osi Y
grid; % naniesienie siatki na wykres
b=toc % wyświetlenie czasu działania programu i zapisanie
% go w zmiennej b
Wykres rozwiązania dla metody ode45():
3. Rozwiązanie równania 2x +3x +x=6, x(0)=2, x (0)=(-1)
z wykorzystaniem Simulinka:
sim('model.mdl');
plot(wynik(:,2),wynik(:,1),'g');
Model schematu blokowego oraz jego wykres:
4. Jeżeli użyjemy funkcji hold on, hold off możemy zobaczyć wykres równania
różniczkowego uzyskanego przez dsolve(kolor niebieski), ode45(kolor czerwony) oraz
simulinka(kolor zielony).
W powiększeniu ten sam wykres (aby zobaczyć delikatną różnicę, która jest w tym
przypadku bardzo mała)
Wnioski:
Dzięki zastosowaniu programu Matlab rozwiązywanie równań różniczkowych staje się
znacznie prostsze oraz mniej pracochłonne.
Co więcej, program Simulink umożliwia nam budowanie schematów blokowych, oraz
obserwowanie przebiegów sygnału odpowiedzi układu o danej transmitancji na zadany
sygnał wymuszenia.
Wyszukiwarka
Podobne podstrony:
Sprawozdanie Lab1 gr7Bgk sprawozdanie lab1sprawozdanie lab1Sprawozdanie Java Lab1 Karol Leszczyński gr 13tou lab1 sprawozdanie (1)Lab1 SprawozdanieLab1 sprawozdanieSprawozdanie AIM LAB1 PiotrowskiSprawozdanie Nsst LAB1 KACZMAREK (1)Lab1 Sprawozdanie DWlab1 sprawozdanieLab1 RoboWorkssprawozdanie felixa2Sprawozdanie Konduktometriazmiany w sprawozdaniach finwięcej podobnych podstron