%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% matlabtips3.m:
% Numerisk løsning av Newtons 2. lov. (Forward Euler.)
% Her: For en kloss som glir på et skråplan.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Nullstiller workspace
clear;
% Parametre:
g=9.81;        % tyngdens akselerasjon (m/s^2)
dt=0.01;       % tidssteg (s)
m=1.00;        % klossens masse (kg)
myk=0.2;       % kinetisk friksjonskoeffisient
phi=16*pi/180; % skråplan med helningsvinkel 16 grader
% Velger positiv retning oppover skråplanet.
% N2 oppover: -m*g*sin(phi) - f = m*a
% N2 nedover: -m*g*sin(phi) + f = m*a
% Normalkraft: n = m*g*cos(phi)
% Friksjonskraft: f = myk*n
n = m*g*cos(phi);
f = myk*n;
aopp = (-m*g*sin(phi)-f)/m;
aned = (-m*g*sin(phi)+f)/m;
% Startverdier:
t(1) = 0.0;     % Starttid
x(1) = 0.0;     % Startposisjon
v(1) = 1.0;     % Starthastighet 1.0 m/s

% Fortsetter while-loopen inntil klossen er tilbake ved x=0.0.
j=1;   % Heltall for antall tidssteg; t(j) = dt*(j-1)
% Vi integrerer bevegelsesligningen
while (x(j) >= 0.0)
  x(j+1) = x(j) + v(j)*dt;  %ny posisjon
  if v(j) > 0
     v(j+1) = v(j) + aopp*dt;   % ny fart, på vei oppover
  else
     v(j+1) = v(j) + aned*dt;   % ny fart, på vei nedover
  end
  t(j+1) = t(j) + dt; % ny tid
  j = j+1;            % nytt tidssteg
end

% Plotter x(t)
figure(1);
plot(t,x);
title('Figur 1. Klossens posisjon på skråplanet')
xlabel('Tid (s)');
ylabel('Posisjon (m)');
grid on;

% Plotter v(t)
figure(2);
plot(t,v);
title('Figur 2. Klossens hastighet på skråplanet')
xlabel('Tid (s)');
ylabel('Hastighet (m/s)');
grid on;