
from math import pi, sqrt
from cmath import exp
import matplotlib.pyplot as plt

Rs = 0.9  # Ohm
N = 1500        # tours/min
Omega = N*pi/30 # rad/s

list_coef = [86.8, 85.2, 86.7, 83.9]
list_k = [x/Omega for x in list_coef]
k = sum(list_k)/len(list_k)

ecart_relatif = [abs(x-k)/k*100 for x in list_k]

coefcc = 12.5
Xs = sqrt((k*Omega/coefcc)**2-Rs)

print("")
print("")
print("###########################")
print("")
print(" Identification :")
print("")
print("k =",k)
print("Xs =",Xs,"Ohm")


# Exercice 1
##################

P = 8800  # W
Q = 8500  # VAR
Vs = 230  # V
I = 17.7  # A
k = 0.54
Xs = 6.7

S = P+1j*Q

cosphi = P/abs(S)

Is = (P-1j*Q)/(3*Vs)

E = Vs-(Rs+1j*Xs)*Is

Ie = abs(E)/(k*Omega)

print("")
print("###########################")
print("")
print(" Resultats 3.2 :")
print("")
print("cos(phi) =", cosphi)
print("Is = ",Is,"A")
print("E =",E,"V")
print("Ie =", Ie,"A")
print("")
print("###########################")
print("")
print("--------------------------------------------------------------------")
print("")


# Exercice 2
################

Ie = 3  # A
delta = -pi/3

modE = k*Omega*Ie

E = modE*exp(1j*delta)
Is = (-E+Vs)/(Rs+1j*Xs)

S = 3*Vs*(Is.conjugate())
P = S.real

Gamma = (P-3*Rs*abs(Is)**2)/Omega

list_delta = []
list_Gamma = []
npoints = 100
for i in range(npoints):
    delta = i*pi/(npoints-1)
    E = modE*exp(-1j*delta)
    Is = (-E+Vs)/(Rs+1j*Xs)
    S = 3*Vs*(Is.conjugate())
    P = S.real
    Gamma = (P-3*Rs*abs(Is)**2)/Omega
    list_Gamma += [Gamma]
    list_delta += [delta]

plt.plot(list_delta,list_Gamma)
plt.xlabel('Angle interne $\\delta$ (en rad)')
plt.ylabel('Couple $\\Gamma$ (en N.m)')
plt.title('Courbe $\\Gamma(\\delta)$')
plt.xlim(0, pi)
plt.xticks([0,pi/4,pi/2,3*pi/4,pi],labels=['0','$\\pi/4$','$\\pi/2$','$3\\pi/4$','$\\pi$'])
plt.grid(True)
plt.show()



