mirror of
https://github.com/NohamR/Stage-2023.git
synced 2025-05-24 14:21:58 +00:00
59 lines
1.3 KiB
Python
59 lines
1.3 KiB
Python
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
import time
|
|
|
|
t0 = 0
|
|
tf = 100
|
|
dt = 0.5
|
|
t = t0
|
|
|
|
U = 1.25 # vitesse m.s-¹
|
|
Wm = 0.3 # distance minimale entre la voiture et celle qui la précède m
|
|
Ws = 0.9 # m
|
|
|
|
def phi(ww): # prend en entrée la distance entre les deux véhicules
|
|
PHI = (U*(1 - np.exp(- (ww-Wm)/Ws)))
|
|
return (ww >= Wm)* PHI # retourne la vitesse du véhicule
|
|
|
|
y = np.linspace(1, 1, 11)
|
|
xxbase = np.linspace(0, 1, 11)
|
|
|
|
def position(fposition, newv):
|
|
newp = fposition + newv * dt
|
|
return newp
|
|
|
|
def vitesses(fposition):
|
|
print('fposition', fposition)
|
|
dist = np.diff(fposition)
|
|
print('distance : ', dist)
|
|
vitesses = phi(dist)
|
|
newv = np.insert(vitesses, 10, 1.25)
|
|
return newv
|
|
|
|
xxold = xxbase.copy()
|
|
|
|
while(t<tf):
|
|
plt.figure(1,figsize=[16,9])
|
|
plt.clf()
|
|
|
|
nb = 360
|
|
|
|
r=np.linspace(1,1,nb)
|
|
theta=np.linspace(0,2*np.pi,nb)
|
|
|
|
plt.polar(theta, r)
|
|
# plt.scatter(1*np.pi, 0.5)
|
|
|
|
vt = vitesses(xxold)
|
|
print('vitesses : ', vt)
|
|
|
|
xx = position(xxold, vt)
|
|
print('position : ', xx)
|
|
|
|
color = ['#ff0000', '#ff5300', '#ffa500', '#ffd200', '#ffff00', '#80c000', '#008000', '#004080', '#0000ff', '#2600c1', '#4b0082']
|
|
plt.scatter(xx/10*np.pi, y, c=color)
|
|
|
|
plt.draw()
|
|
plt.pause(0.00001)
|
|
t += dt
|
|
xxold = xx.copy() |