Vediamo un caso semplice di termodinamica con Python-Matplotlib; il rendimento di una macchina termica (motore a combustione) viene descritto da un rendimento massimo teorico pari a 1-Tl/Th, dove Tl è la temperatura più bassa (ambiente) e Th quella più elevata (temperatura del motore). Questo valore massimo teorico viene detto "rendimento di Carnot" (dal nome di chi lo ha scoperto). Abbiamo già parlato della libreria Matplotlib più volte, ad esempio nel caso dell'equazione della diffusione.
Vediamo il codice Python di questo esercizio:
import numpy as np
from matplotlib import pyplot as plt
Th=100 #tempertura motore in °C
Tl=-20 #inizializzazione temperatura ambiente
N=70
eff=np.zeros(N) #efficienza massima teorica (rendimento di Carnot)
for i in range(N):
eff[i]=1-(Tl+273.15)/(Th+273.15) #conversione in gradi Kelvin
Tl+=1
plt.figure()
plt.title("rendimento massimo teorico (Carnot)\n in funzione della temperatura ambiente [-20%50 °C],\n con temperatura motore fissata 100 °C")
i=np.arange(N)
plt.plot(i-20,eff[i])
plt.show()
In modo analogo si può studiare il ciclo di Carnot inverso, che si applica per le macchine frigorifere.
Questo il risultato grafico: in ascissa la temperatura ambiente e in ordinata il rendimento (sempre in assoluto compreso fra 0 e 1), avendo fissato la temperatura del motore pari a 100 °C; cambiando questo valore, ovviamente si ottengono valori di rendimento differenti.