Coda Modello


Coda modello

/*Queue template*/  
coda modello «Mettetevi in coda con la vostra auto di ogni sorta e modello. Vi accorgerete che se siete in compagnia di tanti altri, le fermate saranno frequenti ed improvvise.» 
 

Last modified: Sep 13, 2003 (Created: Aug 20, 2003)
Location: http://paris6969.altervista.org
Feedback: paris6969@altervista.org

Tutti i contenuti di paris6969.altervista.org sono proprietà dell'autore paris6969@altervista.org e sono protetti dalle leggi italiane ed internazionali relative ai diritti d'autore (copyright). Non possono essere utilizzati in tutto o in parte.

Modello di coda

Vi siete mai chiesti perché durante la marcia in una coda a volte gli autoveicoli hanno una velocità variabile, addirittura fino a fermarsi anche in assenza apparente di ostacoli?
Ebbene vi propongo un modello la cui equazione del moto una volta integrata vi porterà a giustificare l'arcano.
Chiaramente ve lo descrivo in pseudo-codice, e ciascuno dei più volenterosi di voi potranno implementarlo nel linguaggio che più preferisce.

Definizione delle costanti

M        ( -> massa del veicolo)
ainit ( -> accelerazione iniziale)
vinit ( -> velocità iniziale)
sinit ( -> posizione iniziale)
dt ( -> passo di integrazione)
DF ( -> soglia per frenare)
DT ( -> soglia per accelerare)
TMax ( -> limite forza traente - STILE DI GUIDA)
TMin ( -> minima forza traente - STILE DI GUIDA)
FMax ( -> limite forza frenante - CONDIZIONI DI ATTRITO)

Definizione delle variabili

Ds       ( -> distanza dal veicolo che precede)
Dv ( -> differenza di velocità col veicolo che precede)

ET ( -> integrale dell'energia traente)
EF ( -> integrale dell'energia frenante)

Il modello

A seconda della distanza tra i veicoli, il guidatore decide se accelerare, frenare o procedere di inerzia.
DT < Ds         ( -> accelerare)
DF < Ds < DT ( -> inerzia)
Ds < DF ( -> frenare)

La forza di trazione è in relazione alla differenza di velocità tra i veicoli, e non potrà essere superiore ad un valore limite (caratteristiche di guida del guidatore o limiti del motore).
La forza di frenata è in relazione alla distanza tra i veicoli e non pu= essere superiore ad un valore limite (slittamento).
T        ( -> forza traente = KT * Dv*Dv + Tmin il guidatore accelera di meno quanto 
è prossima la velocità tra i veicoli.
Lo stile di guida implica una Tmin.)
F ( -> forza frenante = KF / Ds*Ds il guidatore frena maggiormente quanto
è vicino all'ostacolo)


Integrazione dell'equazione del moto

START
a = ainit ( -> accelerazione iniziale)
v = vinit ( -> velocità iniziale)
s = sinit ( -> posizione iniziale)

ET = 0
EF = 0

INIZIO CICLO

if Ds = 0 ( -> collisione)
collisione()

if Ds < DF ( -> frenare)
T = 0
F = KF / Ds*Ds ( -> division by zero!!!!)
if F > FMax
F = FMax

else
F = 0
if Ds < DT ( -> procedere per inerzia)
T = 0
else ( -> accelerare)
T = KT * Dv*Dv + Tmin
if T > TMax
T = TMax

a = (T - F) / M
v = a*Dt + v
s = v*Dt + s

ET = T*v*Dt + ET
EF = F*v*Dt + EF

END CICLO
FINE