Simile all'ambito Python - Matplotib - esempio studio idrodinamica, corrente fluviale 1D, vediamo ora un esempio come varia la potenza utile di una turbina, in funzione di alcuni parametri.
Premessa: esistono tipologie diverse di turbine, con funzionamenti diversi, noi consideriamo la turbina Pelton (turbina di tipo "classico", funzionamento come turbina ad azione), che non lavora in pressione. In realtà una turbina Pelton nella pratica si adatta meglio a salti grandi e portate piccole, qui a scopo didattico facciamo variare Q e H per mostrare un range, che influsce sul risultato (potenza elettrica generata dalla turbina, in funzione di questi dati).
Fissiamo dei valori di esempio, secondo la formula: Potenza = efficienza * peso_specifico * portata *salto_utile`
Vediamo come varia la potenza in uscita dalla turbina, quindi sfruttabile per la rete elettrica, in funzione dei parametri. Il codice Python e il grafico che segue mostra il range di valori, facendo variare alcuni parametri (in particolare, potenza in funzione della portata, per diversi valori di salto idraulico della turbina - prevalenza della turbina). Per semplicità si assume che il livello nel serbatoio sia molto più piccolo della differenza di quota con la turbina (affinché si prenda H totale costante e non variabile con lo svuotamento del serbatoio). Inoltre l'efficienza della turbina è cautelativa (0.7, quando per una turbina Pelton potremmo avere anche 0.85) semplicemente perché ingloba già le perdite di carico e velocità non nulla a valle della turbina. Questo è un caso di esempio, indicativo, nella realtà ingegneristica ricordiamo che la situazione è più complessa, anche le perdite di carico (che quindi impattano l'efficienza complessiva) non sono costanti ma aumentano (quadraticamente) con la portata.
import numpy as np
import matplotlib.pyplot as plt
# Parametri
H = np.arange(10, 100, 10) # Salto totale [m] - partiamo da 10 per evitare H=0
Q = np.arange(0, 11, 1) # portata [m³/s]
g = 9.81
rho = 1000.0
gamma = rho * g
eta = 0.7
# Broadcasting: crea griglia 2D di tutte le combinazioni Q-H
Q_grid = Q[:, np.newaxis] # forma (11, 1)
H_grid = H[np.newaxis, :] # forma (1, 9)
# Calcola potenza per tutte le combinazioni (11, 9)
P_vals = eta * gamma * Q_grid * H_grid
# Plot
plt.figure(figsize=(10, 6))
for i, h in enumerate(H):
plt.plot(Q, P_vals[:, i] / 1000, linewidth=2, label=f'H = {h} m')
plt.xlabel('Portata Q [m³/s]')
plt.ylabel('Potenza [kW]')
plt.title('Potenza Turbine - Curve per diversi H, con eff=0.7 complessivo')
plt.legend(loc='upper left')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
