0% ont trouvé ce document utile (0 vote)
0 vues10 pages

231 3 Codes Python

Le document présente une simulation de flux de véhicules en utilisant Python, en se concentrant sur différents scénarios tels que l'absence de retard, l'arrêt d'un leader, et l'implémentation d'un retard. Les résultats incluent des animations et des graphiques montrant la position, la densité et la vitesse des véhicules au fil du temps. Les simulations utilisent des paramètres tels que la vitesse maximale, le temps d'échantillonnage, et la distance critique pour modéliser le comportement des véhicules.

Transféré par

aartmenribeiro
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues10 pages

231 3 Codes Python

Le document présente une simulation de flux de véhicules en utilisant Python, en se concentrant sur différents scénarios tels que l'absence de retard, l'arrêt d'un leader, et l'implémentation d'un retard. Les résultats incluent des animations et des graphiques montrant la position, la densité et la vitesse des véhicules au fil du temps. Les simulations utilisent des paramètres tels que la vitesse maximale, le temps d'échantillonnage, et la distance critique pour modéliser le comportement des véhicules.

Transféré par

aartmenribeiro
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

codes python

#simulation sans retard pour des different alpha

import numpy as np

import [Link] as plt

Vmax=30

dt=0.05

disC=20

a=30

disinit=40

def F(dis,alpha):

x=0

if dis>disC:

x=[Link](-((dis-disC)/disC)**alpha)

return x

def simulation_simple(n,Te,alpha=1,eq=True):

Vlim=Vmax*F(a,alpha)

Iter=int(Te/dt)

P=[Link]((n,Iter))

Gho=[Link](Iter)

V=[Link](Iter)

P[:n//2,0]=[Link](0,disinit*(n//2-1),n//2)

P[n//2:,0]=[Link](disinit*(n//2),(disinit+disinit*eq+(1-eq)disC)(n//2),n//2)

P[n-1,:]=[Link](P[n-1,0],P[n-1,0]+Vlim*Te,Iter)

Gho[0]=n/(P[n-1,0]-P[0,0]+a)
[Link]('animation',(16,8))

for t in range(Iter-1):

[Link]()

for i in range(n-2,-1,-1):

P[i,t+1]=P[i,t]+dt*(Vmax*F(P[i+1,t]-P[i,t],alpha))

V[t+1]+=Vmax*F(P[i+1,t]-P[i,t],alpha)

[Link](P[:,t+1],[Link](n),'>b')

[Link](0,n*disinit+Vmax*Te)

[Link](0,2)

[Link]('position')

[Link]('Animation de flux des vehicules')

Gho[t+1]=n/(P[n-1,t+1]-P[0,t+1]+a)

V[t+1]=(V[t+1]+Vlim)/n

[Link]()

[Link](10**(-6))

# Tracé

[Link]('resultat',(20,10))

[Link]()

for t in range(Iter):

[Link](P[:,t],t*dt*[Link](n),'>b',)

[Link](0,n*disinit+Vlim*Te)

[Link](0,Te)

[Link]('position')

[Link]('Instant t en s')

[Link]('Ensemble des etats en fonction du temps')

[Link]()
[Link]('densite',(20,10))

[Link]([Link](0,Te,Iter),Gho,'-b',label='densité')

[Link]([Link](0,Te,Iter),[1/a for i in range(Iter)],'-r',label='1/a')

[Link](loc="upper left")

[Link]('Courbe de densite en vehicule au cours du temps')

[Link]('instant t en s')

[Link]('Densite en Veh/m')

[Link]()

[Link]('Vitesse',(20,10))

[Link]([Link](0,Te,Iter-1),V[1:],'-b',label='vitesse')

[Link]([Link](0,Te,Iter-1),[Vlim for i in range(Iter-1)],'-r',label='Vlim')

[Link](loc="upper left")

[Link]('Courbe de vitesse moyenne au cours du temps')

[Link]('instant en s')

[Link]('vitesse moyenne en m/s')

[Link]()
#simulation sans retard pour des different alpha et arrete de leader

import numpy as np

import [Link] as plt

Vmax=30

dt=0.05

disC=20

a=30

disinit=40

def F(dis,alpha):

x=0

if dis>disC:

x=[Link](-((dis-disC)/disC)**alpha)

return x

def simulation_stop_leader(n,Te,alpha=1):

Vlim=Vmax*F(a,alpha)

Iter=int(Te/dt)

P=[Link]((n,Iter))

Gho=[Link](Iter)

V=[Link](Iter)

P[0,0]=0

for i in range(1,n):

P[i,0]=P[i-1,0]+disinit

for i in range(1,Iter):
if i<(1/10)*Iter and 0*Iter<i:

P[n-1,i]=P[n-1,i-1]+Vlim*0*dt

else:

P[n-1,i]=P[n-1,i-1]+Vlim*dt

Gho[0]=n/(P[n-1,0]-P[0,0]+a)

#demarrage du mecanisme

[Link]('animation',(16,8))

for k in range(Iter-1):

[Link]()

for i in range(n-2,-1,-1):

P[i,k+1]=P[i,k]+dt*(Vmax*F(P[i+1,k]-P[i,k],alpha))

V[k+1]+=Vmax*F(P[i+1,k]-P[i,k],alpha)

[Link](P[:,t+1],[Link](n),'>b')

[Link](0,n*disinit+Vmax*Te)

[Link](0,2)

[Link]('position')

[Link]('Animation de flux des vehicules')

Gho[k+1]=n/(P[n-1,k+1]-P[0,k+1]+a)

V[k+1]=(V[k+1]+Vlim)/n

[Link]()

[Link](10**(-6))

[Link]('resultat',(16,8))

[Link]()

for k in range(Iter-1):

[Link](P[:,k+1], k*dt*[Link](n),'>b')
[Link](0,n*disinit+Vmax*Te)

[Link](0,Te)

[Link]('position')

[Link]('Ensemble des etats en fonction du temps')

[Link]()

[Link]('densite',(20,10))

[Link]([Link](0,Te,Iter),Gho,'-b',label='densité')

[Link]([Link](0,Te,Iter),[1/a for i in range(Iter)],'-r',label='1/a')

[Link](loc="upper left")

[Link]('Courbe de densite en vehicule au cours du temps')

[Link]('instant t en s')

[Link]('Densite en Veh/m')

[Link]()

[Link]('Vitesse',(20,10))

[Link]([Link](0,Te,Iter-1),V[1:],'-b',label='vitesse')

[Link]([Link](0,Te,Iter),[Vlim for i in range(Iter)],'-r',label='Vlim')

[Link](loc="upper left")

[Link]('Courbe de vitesse moyenne au cours du temps')

[Link]('instant en s')

[Link]('vitesse moyenne en m/s')

[Link]()
#simulation avec implementation du retard Taux

import numpy as np

import [Link] as plt

Vmax=30

dt=0.05

disC=20

a=30

disinit=30

def F(dis,alpha):

x=0

if dis>disC:

x=[Link](-((dis-disC)/disC)**alpha)

return x

def simulation_retard(n,Te,alpha=1,Taux=1):

Vlim=Vmax*F(a,alpha)

Iter=int(Te/dt)

Tauxprime=int(Taux/dt)

P=[Link]((n,Iter+Tauxprime))

Gho=[Link](Iter+Tauxprime)

V=[Link](Iter+Tauxprime)

P[0,0]=0

for i in range(1,n):

for t in range (Tauxprime+1):


P[i,t]=P[i-1,t]+disinit

for i in range(1+Tauxprime,Iter+Tauxprime):

if i-1-Tauxprime<(1/10)*Iter and i-1-Tauxprime>(0/10)*Iter:

P[n-1,i]=P[n-1,i-1]

else:

P[n-1,i]=P[n-1,i-1]+Vlim*(1)*dt

Gho[Tauxprime]=n/(P[n-1,Tauxprime]-P[0,Tauxprime]+a)

#demarrage du mecanisme

[Link]('animation',(16,8))

for t in range(Tauxprime,Tauxprime+Iter-1):

[Link]()

for i in range(n-2,-1,-1):

P[i,t+1]=P[i,t]+dt*(Vmax*F(P[i+1,t-Tauxprime]-P[i,t-Tauxprime],alpha))

V[t+1]+=Vmax*F(P[i+1,t]-P[i,t],alpha)

[Link](P[:,t+1],[Link](n),'>b')

[Link](0,n*disinit+Vmax*Te)

[Link](0,2)

[Link]('position')

[Link]('Animation de flux des vehicules')

Gho[t+1]=n/(P[n-1,t+1]-P[0,t+1]+a)

V[t+1]=(V[t+1]+Vlim)/n

[Link]()

[Link](10**(-6))
[Link]('Positions',(16,8))

[Link]()

for t in range(Tauxprime,Tauxprime+Iter-1):

[Link](P[:,t+1], t*dt*[Link](n),'>b')

[Link](0,n*disinit+Vmax*Te)

[Link](0,Te)

[Link]('position')

[Link]('Ensemble des etats en fonction du temps')

[Link]()

[Link]('densite',(20,10))

[Link]([Link](0,Te,Iter),Gho[Tauxprime:],'-b',label='densité')

[Link]([Link](0,Te,Iter),[1/a for i in range(Iter)],'-r',label='1/a')

[Link](loc="upper left")

[Link]('Courbe de densite en vehicule au cours du temps')

[Link]('instant t en s')

[Link]('Densite en Veh/m')

[Link]()

[Link]('Vitesse',(20,10))

[Link]([Link](0,Te,Iter-1),V[Tauxprime+1:],'-b',label='vitesse')

[Link]([Link](0,Te,Iter),[Vlim for i in range(Iter)],'-r',label='Vlim')

[Link](loc="upper left")

[Link]('Courbe de vitesse moyenne au cours du temps')

[Link]('instant en s')
[Link]('vitesse moyenne en m/s')

[Link]()

Vous aimerez peut-être aussi