import matplotlib.pyplot as plt
handles = []
def main():
a = Ideale(290,1200)
Plot()
def Plot():
plt.legend(handles)
plt.show()
class Rendimento:
def __init__(self, T_1, T_3, k =1.40):
self.T_1 = T_1
self.T_3 = T_3
self.k = k
self.theta = (T_3/T_1)
self.rendimento = []
self.beta = []
self.P_1 = 0.987
self.LB = ((self.k-1)/(self.k))
self.P_2 = 0.987
self.i = 0
def R_plot(self):
plt.ylabel('Rendimento')
plt.xlabel('Beta')
plt.grid(color='black', linestyle='-', linewidth=0.2)
plt.plot(self.beta, self.rendimento)
self.stringa = self.classe+" "+self.tipo+r" $T_{3}=$"+str(self.T_3)
handles.append(self.stringa)
def Solve(self):
self.beta_max = self.theta**self.esponente
while (self.P_2 <= self.beta_max):
self.P_2 = self.P_2 + self.i**(00.1)
self.beta.append(self.P_2/0.987)
self.rendimento.append(self.Rendimento(self.i))
if (self.rendimento[self.i] < 0):
break
self.i = self.i+1
class Ideale(Rendimento):
def __init__(self,T_1,T_3,k =1.40, R = False):
Rendimento.__init__(self,T_1, T_3,k)
self.classe = "Id."
self.R = R
if (self.R == False):
self.tipo = "Base k="+str(self.k)
self.esponente = (1/self.LB)
self.Rendimento = lambda i: 1-(1/(self.beta[i]**self.LB))
if (self.R == True):
self.tipo = "Rig. "
self.esponente = (1/(2*self.LB))
self.Rendimento = lambda i: 1-((self.beta[i]**self.LB)/self.theta)
self.Solve()
self.R_plot()
class Reale(Rendimento):
def __init__(self,T_1,T_3, k = 1.40, eta_c = 0.88, eta_t = 0.88, R = 0, beta_tot = 0):
Rendimento.__init__(self,T_1, T_3)
self.classe = "Re."
self.k = k
self.R = R
self.beta_tot = beta_tot
self.eta_c = eta_c
self.eta_t = eta_t
self.Rendimento = lambda i: self.Lavoro(i)/self.Calore(i)
if (self.R >= 0.1):
self.tipo = "Rig. R="+str(self.R)
self.esponente = (self.eta_c/(self.LB*(1+(self.eta_c*self.eta_t))))
if (self.beta_tot != 0):
self.tipo = "Intercooler"
self.esponente = (1/self.LB)
self.Lavoro = lambda i: self.theta*(1-((1)/(self.beta_tot**(self.LB*self.eta_t))))-(((self.beta_tot)/(self.beta[i]))**((self.LB)/(self.eta_c))-1)-(self.beta[i]**((self.LB)/(self.eta_c))-1)
self.Calore = lambda i: self.theta-self.beta[i]**(self.LB/self.eta_c)
else:
self.tipo = "Base"
self.esponente = (1/self.LB)
self.Lavoro = lambda i: self.theta*(1-(1/(self.beta[i]**(self.LB*self.eta_t))))-self.beta[i]**((self.LB)/(self.eta_c))+1
self.Calore = lambda i: self.theta*(1-((self.R)/(self.beta[i]**(self.LB*self.eta_t))))-(self.beta[i]**((self.LB)/(self.eta_c)))*(1-self.R)
self.Solve()
self.R_plot()
if (__name__ == '__main__'):
main()