function lab07_pelda4_matlab2015
% masodrendu differencialegynelet megoldasa,
% csillapitott rezgomozgas vizsgalata
% 2015. 04. 17.

    format long;
    % tomeg
    m = 1; % kg == (Ns^2)/m

    % rugoallando
    D = 10; % N/m

    % csillapitasi tenyezo
    C=0.2; % (Ns)/m

    % kulso ero
    F=-10; % N

    % idoablak
    tspan=[0 60];

    % kezdeti feltetelek ([kiteres; sebesseg])
    x0=[1; 0];

    % ODE megoldasa
    [t x] = ode45(@(t,x) rugoegyenlet(t, x, m, D, C, F), tspan, x0);


    % kirajzolas
    figure;
    hold on;
    plot(t,x(:,1),'b', 'LineWidth', 2);
    plot(t,x(:,2),'r', 'LineWidth', 2);
    title('Rezgomozgas', 'FontSize', 14);
    xlabel('t (s)', 'FontSize', 12, 'FontWeight', 'bold');
    ylabel('ertek', 'FontSize', 12, 'FontWeight', 'bold');
    legend('Pozicio (m)','Sebesseg (m/s)');


end


function xdot=rugoegyenlet(t, x, m, D, C, F)
    % Masodrendu diffegyenlet megoldasa: szetszedjuk ket elsorendure
    % Az allapotvektor x=[x1;x2] alaku,
    % ahol x1=pozicio, x2=sebesseg: 
    % Az allapotvektor derivaltjai
    xdot = zeros(2,1);
    % ahol xdot(1) maga a sebesseg
    xdot(1)=x(2);
    % es xdot(2) pedig a gyorsulasra rendezett egyenlet
    xdot(2)=-D/m*x(1)-C/m*x(2)+F/m;
end

