function pruefung_WS1011
close all

global m v_w_int f_w_int
m=1000;

%% Fahrwiderstand:
nr=figure
v_w_int = [0   10  20  30  40  45  50  60  70  80  90  100];
f_w_int = [150 210 300 450 600 480 480 540 630 750 930 1200];
v_w_plot = v_w_int(1):.1:v_w_int(end);
subplot(2,2,1)
plot(v_w_plot,interp1(v_w_int,f_w_int,v_w_plot,'spline'),v_w_int,f_w_int,'*'); grid on;
xlabel('Geschw. in km/h'); ylabel('Fahrwiderstandkraft in N');

%% Antriebskraft:
v_F_plot=0:.1:100;
for i=1:length(v_F_plot)
 F_an(i)=leistungshyperbel(v_F_plot(i));
end
subplot(2,2,3)
plot(v_F_plot,F_an); grid on;
xlabel('Geschw. in km/h'); ylabel('Antriebskraft in N');axis([0 100 0 5200]);

%% Integration:
[t,z]=ode45(@odefcn,[0,16],[0 0]);
subplot(2,2,2)
plot(t,z(:,1));     grid on; xlabel('Zeit in s'); ylabel('Weg in m')
subplot(2,2,4)
plot(t,z(:,2)*3.6); grid on; xlabel('Zeit in s'); ylabel('Geschw. in km/h')
save 'ergebnis' t z

%% Approximation:
load 'ergebnis_verrausch'
spline_parameter_start=[1 13 20 30 30];
spline_parameter = lsqcurvefit(@approximation,spline_parameter_start,t_messung,ergebnis_messung);
figure
x=0:.1:13;
plot(x,interp1(linspace(0,13,5),spline_parameter,x,'spline'),t_messung,ergebnis_messung,'*');
figure(nr);
subplot(2,2,4)
plot(t,z(:,2)*3.6,...
     x,interp1(linspace(0,13,5),spline_parameter,x,'spline')*3.6,...
     t_messung,ergebnis_messung*3.6,'*'); grid on; xlabel('Zeit in s'); ylabel('Geschw. in Km/h');
legend('Rechnung','Messung interpoliert','Messpunkte','Location','SouthEast')
end

function f=approximation(spline_parameter,v)
 t_spline = linspace(0,13,5);
 f=interp1(t_spline,spline_parameter,v,'spline');
end

function F_an=leistungshyperbel(v_kmh)
F_an = 5000;
v_ms = v_kmh/3.6;
if v_ms>10
    F_an=50000/v_ms;
end
end

function dzdt=odefcn(t,z)
global m v_w_int f_w_int 
F_w  = interp1(v_w_int,f_w_int,z(2)*3.6,'spline');
F_an = leistungshyperbel(z(2)*3.6);
dzdt=[z(2);
      (F_an-F_w)/m];
end


