###Importation bibliothèques
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as sig
import matplotlib.ticker as tck

pi=np.pi
sin=np.sin
cos=np.cos

#### Définition Signaux
#paramètres
Um=??? #amplitude du signal en volt
Umoy=??? #valeur moyenne du signal en volt
f1=???? #fréquence du motif / du fondamental
N=???  #nombre de points à tracer
tmax=??? #valeur maximale sur l'axe des abscisses
R=???? #valeur de la resistance en ohm
r= ??? #rapport cyclique du signal

Fe=2E6
tmin=0
t=np.linspace(tmin,tmax,N)


# signal carré "parfait"

u = Umoy+Um*sig.square(2*pi*f1*t,r)

# calcul de la puissance instantanée

p=??? # expression littérale de la puissance instantanée


######Graphe

plt.figure(0)
plt.subplot(211)
plt.plot(t,u,"k-",label="u : signal carré")


plt.legend()
plt.title('Représentation temporelle du signal carré u')
plt.grid()
plt.xlabel('t en seconde')
plt.ylabel('Tension en volt')
def fmt(x, pos):
    a, b = '{:.1e}'.format(x).split('e')
    b = int(b)
    return r'${} \times 10^{{{}}}$'.format(a, b)
ax=plt.gca()
ax.xaxis.set_major_formatter(tck.FuncFormatter(fmt))
#.ticklabel_format(style='sci', axis='x', scilimits=(0,0))
ax.yaxis.set_minor_locator(tck.MultipleLocator(base=0.2))
ax.yaxis.set_major_locator(tck.MultipleLocator(base=1))
ax.xaxis.set_minor_locator(tck.MultipleLocator(base=0.00001))
ax.xaxis.set_major_locator(tck.MultipleLocator(base=0.00005))
plt.grid(b=True, which='major',axis="both", color='black', linestyle='-')
plt.grid(b=True, which='minor',axis='both', color='grey', linestyle='--')

plt.subplot(212)
plt.plot(t,p,"k-",label="p : puissance instantanée fournie par le signal au conducteur ohmique")


plt.legend()
plt.title('Représentation temporelle de la puissance instantanée')
plt.grid()
plt.xlabel('t en seconde')
plt.ylabel('Puissance en watt')
def fmt(x, pos):
    a, b = '{:.1e}'.format(x).split('e')
    b = int(b)
    return r'${} \times 10^{{{}}}$'.format(a, b)
ax=plt.gca()
ax.xaxis.set_major_formatter(tck.FuncFormatter(fmt))
#.ticklabel_format(style='sci', axis='x', scilimits=(0,0))

ax.yaxis.set_minor_locator(tck.MultipleLocator(base=1))
ax.yaxis.set_major_locator(tck.MultipleLocator(base=5))
ax.xaxis.set_minor_locator(tck.MultipleLocator(base=0.00001))
ax.xaxis.set_major_locator(tck.MultipleLocator(base=0.00005))
plt.grid(b=True, which='major',axis="both", color='black', linestyle='-')
plt.grid(b=True, which='minor',axis='both', color='grey', linestyle='--')



plt.show()

