%% Lega in hitrost
%% Lega kot funkcija časa
% Imejmo vozilo in ga obravnavajmo kot točkast objekt. Zaradi poenostavitve se omejimo na gibanje po ravni cesti (čeprav večina ugotovitev s tega razdelka velja tudi za ukrivljene ceste). Cesto razdelimo na enako dolge odseke (npr. 10m). Najprej si izberemo enega izmed teh odsekov in ga postavimo za izhodišče. Nato si izberemo pozitivno smer gibanja. Na koncu postavimo ob vsak odsek cestno oznako (spodnja slika).
%
% Obcestne oznake
% Na oznako ob izhodiščnem odseku napišimo 0. Vsem ostalim oznakam pa napišemo oddaljenost od izhodiščne oznake in sicer tako, da oznakam v pozitivni smeri pripišemo pozitivno vrednost, oznakam v negativni smeri pa negativno. To nam omogoča, da lego vozila enolično določimo, s tem da povemo napis na stebričku, ki je zoglj številka. Čeprav je razdelitev ceste na odseke v našem primeru lahko zgolj namišljena, se tudi v resnici uporabljajo tovrstne oznake ob cestišču za lažjo lociranje dogodkov (čeprav bistveno redkeje kot na 10m).
%
% Dejanska oznaka cestnega odseka.
%% Kinematika točkastega objekta
% Ker se v splošnem vozilo po cesti premika, se mu s časom spreminja tudi lega. Zato moramo tudi za čas vzeti časovno izhodišče ob točno določeni uri (npr. ob 12:00:00). Izhodiščni čas nato merimo relativno na izhodiščni čas. Vsi dogodki pred izhodiščem bodo imeli negativne vrednosti, po izhodišču pa pozitivne (za naš primer bo npr. čas 45s predstavljal 12:00:45, čas -14s pa 11:59:46).
% Poglejmo si primer gibanja vozila:

% Tip vožnje določimo z vektorjem x, čas definiramo z vektorjem t

dt=1;
t=0:dt:100; %Kaj že pomeni ta zapis?
%Enakomerna vožnja s hitrostjo 20m/s
%x=t*20;
%Vožnja s hitrostjo 20m/s, nato ustavljanje, pospeševanje do 30m/s
x=[(0:1:20)*20,400-2*(1:1:5).^2+(1:1:5)*20,450*ones(1,25),450+(1:1:15).^2,(1:1:35)*30+675];

t0=70;

yx=[0,t0];
yy=[x(t0+1),x(t0+1)];
xx=[t0,t0];
xy=[0,x(t0+1)];
plot(t,x,'b-',0,x(t0+1),'r^',xx,xy,'k-',yx,yy,'k-');
xlabel('t[s]');
ylabel('x[m]');

%% Povprečna hitrost
% Povprečna hitrost je definirana kot kvocient med prevoženo potjo in časom vožnje:
% \bar{v}=\frac{\Delta s}{\Delta t}

t1=51;
t2=55;

yx1=[0,t1];
yy1=[x(t1+1),x(t1+1)];
xx1=[t1,t1];
xy1=[0,x(t1+1)];
yx2=[0,t2];
yy2=[x(t2+1),x(t2+1)];
xx2=[t2,t2];
xy2=[0,x(t2+1)];
sx=[0 0];
sy=[x(t1+1) x(t2+1)];
tx=[t1 t2];
ty=[0 0];

plot(t,x,'b-', ...
    0,x(t1+1),'r^',0,x(t2+1),'r^', ...
    xx1,xy1,'k-',yx1,yy1,'k-', ...
    xx2,xy2,'k-',yx2,yy2,'k-');
hold on;
plot(tx,ty,'r-',sx,sy,'r-','LineWidth',4);
hold off;
xlabel('t[s]');
ylabel('x[m]');
s_tot=x(t2+1)-x(t1+1)
t_tot=t2-t1
v_povp=s_tot/t_tot
v_kmh=v_povp*3.6

% Izračunajmo (povprečno) hitrost tako, da vzamemo zaporedna trenutka, ko imamo dano lego (to so komponente vektorja x), izračunamo razliko in delimo s časom med njima:
% v_i=\frac{x_{i+1}-x_i}{\Delta t}

%hitrost - numerično
v=(x(2:end)-x(1:end-1))/dt;
%Zakaj spremenimo vektor t?
plot(t(1:end-1),v);

%% Hitrost kot odvod
% Lega ni diskretna količina - objekti ne preskakujejo iz ene lege v drugo, ampak se premikajo postopno, zvezno. Zato lahko lego objekta določimo v poljubnem času. To pomeni, da za popoln opis gibanja ne zadostuje zaporedje leg ob fiksnih časih, ampak je potrebno znanje lege v vsakem času. Torej obravnavamo lego x kot funkcijo časa t, torej x(t). Da bi hitrost definirali smiselno, mora biti njena definicija taka, da bo ustrezala definiciji povprečne hitrosti iz zgornjega odstavka. To pa pomeni, da če bomo opazovali hitrost med časoma t in t+\Delta t, bo povprečna hitrost v tem intervalu enaka
% v_P(t,\Delta t)=\frac{x(t+\Delta t)-x(t)}{\Delta t}.
% Tako definirana hitrost je odvisna od začetnega časa in od dolžine opazovanja. Hitrost je smiselno definirati tako, da bo trenutna hitrost enaka povprečni hitrosti pri zelo kratkem času opazovanja. Ko je čas opazovanja enak 0, je povprečna hitrost nedefinirana, saj dobimo tako v števcu kot v imenovalcu 0, je pa njena vrednost dobro določena pri vseh ostalih vrednostih. Te pa so lahko poljubno blizu 0. Zato je smiselno vzeti kot definicijo hitrosti limito zgornjega izraza:
% v(t)=\lim_{\Delta t\to 0}\frac{x(t+\Delta t)-x(t)}{\Delta t}
% V tem izrazu pa prepoznamo odvod funkcije x po spremenljivki t.
% Oglejmo si primer nihanja.
% x(t)=\sin(0.1 t)
% Njen odvod je enak
% v(t)=0.1\cos(0.1 t)

% t naj bo isti kot prej
% definirajmo lego kot y (to ni 2D gibanje, samo x bomo rabili kasneje)
y=sin(0.1*t);
plot(t,y);
vy=0.1*cos(0.1*t);
vy2=(y(2:end)-y(1:end-1))/dt;
plot(t,vy,'b',t(1:end-1),vy2,'r.');

%% Pospešek
% Na podoben način razmišljamo pri uvedbi pospeška. Avtomobilski proizvajalci večkrat navajajo čas(naj bo 8s), ki je potreben, da pospešimo avto iz 0 na 100km/h. Na ta način lahko definiramo povprečen pospešek. Od končne hitrosti (27.8m/s) odštejemo začetno (0), razliko pa delimo s potrebnim časom (8s). Dobimo 3.47m/s^2.
% Iz izkušenj pa vemo, da bistveno manj časa potrebujemo od 0 do 50km/h, kot od 50km/h do 100km/h. Podobno kot prej, razkosamo časovni interval na manjše dele in za vsakega izračunajmo povprečen pospešek. Ko bo šla dolžina časovnega intervala proti 0, bomo dobili odvod hitrosti. Zato je smiselno definirati (trenuten) pospešek kot odvod hitrosti.

%Prvi primer - zgolj numerično
ax=(v(2:end)-v(1:end-1))/dt;
plot(t(1:end-2),ax);
%Nihanje - oboje
ay=-0.01*sin(0.1*t);
ay2=(vy2(2:end)-vy2(1:end-1))/dt;
plot(t,ay,'b',t(1:end-2),ay2,'r.');
%Spodnji izraz je smiselno isti, ampak numerično natančnejši:
%plot(t,ay,'b',t(2:end-1),ay2,'r.');