Una previsione corretta non è un comando eseguibile
Un’impresa vuole usare il surplus fotovoltaico per alimentare il lavoro nelle ore successive. Un modello prevede bene produzione e consumo; il piano sembra semplice: caricare quando avanza energia, scaricare quando manca. Eppure la batteria può riempirsi prima del previsto o non erogare la potenza richiesta. La domanda che affrontiamo è perché questo possa accadere anche senza errori della previsione. Seguiremo quattro ore sintetiche, rendendo visibili energia immagazzinata, potenza al contatore, perdite e limiti, fino a un bilancio che si può ricostruire con carta e penna.
Abstract. Studiamo un modello discreto di batteria, con energia iniziale di 5 kWh, capacità nominale di 10 kWh, intervallo operativo 2–9 kWh e limite di carica e scarica di 3 kW. Il surplus netto nelle quattro ore è 3, 3, −3 e −4 kW; assumiamo che sia noto esattamente. Con efficienze costanti del 90% in entrambe le direzioni, un piano privo di vincoli supera il limite energetico e quello di potenza. Un controllo fattibile termina a circa 2,333 kWh, limita 1,556 kWh di surplus e importa 1 kWh. Sono calcoli didattici, non misure di una batteria o risultati di ottimizzazione economica.
Prima distinzione: energia e potenza
La potenza è una velocità di trasferimento dell’energia. Un carico da 3 kW mantenuto per un’ora usa 3 kWh; per mezz’ora usa 1,5 kWh. La capacità in kWh dice quanta energia possiamo conservare, non quanto rapidamente possiamo estrarla. Una batteria con energia sufficiente può non soddisfare un picco da 4 kW se l’elettronica o il modello di controllo ammettono soltanto 3 kW. Confondere queste quantità porta a errori che una previsione più accurata non corregge: il modello decisionale sta chiedendo una prestazione diversa da quella consentita.
Indichiamo con Δt la durata di un intervallo, qui un’ora. Le potenze rappresentano medie costanti nell’intervallo: il nostro modello non vede picchi al suo interno. Il surplus s_t è produzione meno domanda, misurato sul lato elettrico che alimenta il carico. Se è positivo possiamo tentare di caricare; se è negativo dobbiamo coprire un deficit. Non abbiamo un modello fotovoltaico o meteorologico: i quattro numeri sono dati sintetici. Assumerli perfetti serve a isolare la fattibilità fisica, non a sostenere che la previsione reale sia priva di incertezza.
Il confine del modello e il significato dell’efficienza
E_t è l’energia interna immagazzinata all’inizio dell’intervallo t, in kWh. P_c,t è la potenza assorbita per caricare e P_d,t la potenza utile erogata, entrambe sul lato esterno scelto, in kW e non negative. Le efficienze η_c e η_d sono costanti adimensionali fra zero e uno. Caricare con 1 kWh esterno aggiunge η_c kWh interni; erogare 1 kWh utile richiede togliere 1/η_d kWh interni. L’asimmetria fra moltiplicare e dividere è decisiva: applicare il 90% a entrambe le sottrazioni creerebbe energia nel bilancio.
La relazione risponde alla domanda “quanta energia rimane dopo un’ora?”. Ogni termine di potenza viene moltiplicato per ore, ottenendo kWh, come E_t. Nel primo intervallo partiamo da 5 kWh e assorbiamo 3 kW per un’ora: aggiungiamo 0,9×3×1=2,7 kWh e arriviamo a 7,7. Per scaricare 3 kWh utili occorre invece togliere 3/0,9≈3,333 kWh interni. In questo modello evitiamo carica e scarica simultanee scegliendo una sola direzione dal segno del surplus. Non stiamo modellando convertitori bidirezionali in tutti i loro stati possibili.
La capacità nominale è 10 kWh, ma ne consentiamo soltanto l’intervallo 2–9: la finestra energetica utilizzabile è 7 kWh. Questi limiti sono ipotesi dell’esempio, non raccomandazioni per una chimica specifica. Se esprimiamo E/10 come percentuale otteniamo una frazione energetica della capacità nominale. Non la identifichiamo senza condizioni con lo stato di carica elettrochimico basato sulla carica elettrica: tensione, temperatura e capacità disponibile possono cambiare quella relazione. Il modello conserva energia, non descrive celle, tensioni, correnti o degrado.
Due piani impossibili, per ragioni diverse
Una prima strategia ingenua segue tutto il surplus e ignora le perdite: accumula 3 kWh, poi altri 3, quindi eroga 3 e 4. L’energia prevista è 5→8→11→8→4 kWh. Il valore finale sembra accettabile, ma la seconda ora raggiunge 11, oltre il massimo di 9. La quarta chiede 4 kW, oltre il limite di 3. Un controllo basato soltanto sull’energia finale nasconderebbe entrambe le violazioni. La fattibilità deve valere in ogni intervallo, e per la potenza oltre che per l’energia.
Aggiungere l’efficienza non basta se lasciamo i comandi invariati. Il piano senza vincoli, ma con perdite corrette, produce circa 5→7,7→10,4→7,067→2,622 kWh. L’ultima energia è ancora nella finestra, eppure 10,4 supera 9 e l’ultima potenza resta 4 kW. La modifica ha corretto il bilancio, non il controllo. Questo è il punto per i sistemi guidati da previsioni AI: un modello che stima bene gli ingressi e un bilancio matematicamente corretto non garantiscono che la sequenza di azioni richiesta sia consentita.
Costruire comandi che rispettano i limiti
Quando s_t è positivo, possiamo assorbire al massimo il surplus disponibile, il limite di potenza e la quantità che riempie esattamente lo spazio rimasto. Quando è negativo, possiamo erogare al massimo il deficit, il limite di potenza e l’energia utile ricavabile sopra la riserva minima. Prendiamo il minimo dei tre limiti nella direzione attiva. Questa regola è un controllo locale fattibile per il nostro modello; non è una prova che massimizzi autoconsumo, profitto o durata della batteria. Non usa prezzi e non anticipa le ore future, benché i dati siano noti.
Leggiamo il terzo limite di carica: 9−E_t è lo spazio interno in kWh. Dividendo per η_c otteniamo quanta energia esterna serve a riempirlo, poi dividendo per Δt otteniamo kW. Nel limite di scarica partiamo dall’energia interna sopra 2 kWh, la moltiplichiamo per η_d per ottenere energia utile e dividiamo per ore. I tre argomenti del minimo hanno così la stessa unità. I controlli nel programma verificano a ogni passo finestra energetica, potenza massima e assenza di carica e scarica simultanee.
Le quattro ore, senza saltare i passaggi
Nella prima ora, da 5 kWh assorbiamo tutti i 3 kW disponibili e arriviamo a 7,7. Nella seconda restano soltanto 1,3 kWh di spazio interno. Con efficienza 0,9 possiamo assorbire 1,3/0,9≈1,444 kWh esterni, quindi 1,444 kW medi per un’ora. Non possiamo assorbire i 3 kW previsti soltanto perché sono disponibili: il vincolo attivo è lo spazio. Restano circa 1,556 kWh di surplus che il modello registra come limitati, senza venderli né trasferirli a un altro carico. Il significato di questa uscita dipende dal confine scelto.
Nella terza ora il deficit è 3 kW. Da 9 kWh possiamo erogarlo rispettando potenza e riserva: togliamo 3/0,9≈3,333 kWh e restiamo a circa 5,667. Nella quarta il deficit è 4 kW. L’energia sopra la riserva permetterebbe circa 3,3 kWh utili, ma il convertitore modellato ne può erogare soltanto 3 in un’ora. Il vincolo attivo è ora la potenza. Importiamo il kWh mancante e terminiamo a circa 2,333 kWh, ancora sopra il minimo. Non è una carenza di energia totale: è un limite alla velocità di consegna.
| Ora | Surplus kW | Carica kW | Scarica kW | E finale kWh | Import kWh |
|---|---|---|---|---|---|
| 1 | 3.000 | 3.000 | 0.000 | 7.700 | 0.000 |
| 2 | 3.000 | 1.444 | 0.000 | 9.000 | 0.000 |
| 3 | -3.000 | 0.000 | 3.000 | 5.667 | 0.000 |
| 4 | -4.000 | 0.000 | 3.000 | 2.333 | 1.000 |
La tabella va letta insieme alle condizioni, non come una serie di prestazioni commerciali. Nella seconda riga la carica scende benché il surplus resti identico; nella quarta la scarica non cresce benché il deficit aumenti. Queste differenze sono precisamente il lavoro del controllo. Un comando “segui il surplus” non potrebbe produrle senza conoscere stato e vincoli. Il confronto con i piani impossibili non dimostra superiorità economica: mostra la differenza fra una traiettoria aritmetica e una sequenza ammessa dal nostro modello.
Dove finisce l’energia che sembra mancare
Per verificare il risultato sommiamo anche le perdite. Durante la carica la perdita esterna è (1−η_c)P_cΔt. Durante la scarica è (1/η_d−1)P_dΔt, differenza fra energia interna tolta ed energia utile erogata. Sulle quattro ore otteniamo circa 0,444 kWh persi in carica e 0,667 in scarica, in totale 1,111. Qui sono una voce aggregata del modello: non abbiamo distinto calore delle celle, inverter, cablaggi o consumi ausiliari. Attribuire quei numeri a un componente specifico sarebbe un risultato inventato.
Il lato sinistro raccoglie riserva iniziale, energia netta eccedente nelle ore positive e acquisti; quello destro raccoglie riserva finale, deficit serviti o coperti dalla rete, surplus limitato e perdite. Il surplus netto positivo totale è 6 kWh e il deficit netto totale 7: non li chiamiamo produzione fotovoltaica totale e consumo totale, perché abbiamo modellato soltanto la loro differenza. L’uguaglianza torna a 12 kWh da entrambi i lati. È un controllo più forte del solo valore finale: se dimenticassimo una perdita o contassimo due volte un flusso, il bilancio non si chiuderebbe.
Con η_c=η_d=0,9 il prodotto η_cη_d è 0,81. Se immagazziniamo un pacchetto di energia esterna e poi lo restituiamo con le stesse efficienze, senza altri effetti, torna utile l’81% del pacchetto iniziale. Il 90% per direzione non è quindi il 90% sull’intero ciclo. La nostra sequenza non è però un ciclo chiuso: parte da 5 e termina a circa 2,333 kWh. Dividere semplicemente l’energia totale scaricata per quella caricata darebbe un numero alterato dall’uso della riserva iniziale, non la misura corretta di un rendimento di ciclo.
Una sensibilità con una soglia interpretabile
Eseguiamo di nuovo il controllo con efficienze uguali nelle due direzioni, variando η fra 0,8 e 1 in cinque valori. Non cambiamo surplus, limiti o durata. Dopo la seconda ora la batteria arriva sempre a 9 kWh in questo intervallo di parametri. Per fornire 3 kWh utili in ciascuna delle ultime due ore deve spendere 6/η kWh interni. La riserva disponibile sopra il minimo è 9−2=7 kWh. La condizione è quindi 6/η≤7, cioè η≥6/7≈0,857143. È la soglia oltre la quale la riserva non limita l’ultima erogazione di 3 kW.
A η=0,8 la terza ora lascia 9−3/0,8=5,25 kWh. Nella quarta possiamo togliere soltanto 3,25 interni, erogando 3,25×0,8=2,6 kWh utili: l’importazione sale a 4−2,6=1,4 kWh e terminiamo esattamente al minimo di 2. A η=0,9 il limite di potenza di 3 kW è invece più severo di quello energetico; l’importazione è 1 kWh e rimane riserva. Questa differenza spiega quale intervento potrebbe avere senso nel modello: più potenza non risolve un vincolo di energia e più energia non supera una potenza massima fissata.
Può sorprendere che aumentare l’efficienza faccia crescere il surplus limitato nelle prime due ore. Per arrivare da 5 a 9 servono 4/η kWh esterni: con η=0,8 ne assorbiamo 5, con η=1 ne bastano 4. Dei 6 kWh disponibili ne restano rispettivamente 1 e 2. Non significa che una batteria meno efficiente sia migliore: dissipa di più, e nel nostro caso importa anche di più. Significa che una singola metrica, come il surplus non accumulato, non basta per giudicare il sistema. Bisogna leggere insieme riserva finale, perdite, importazione e servizio reso.

Che cosa dimostra il controllo e che cosa non dimostra
La fattibilità della regola si può spiegare senza provare tutte le sequenze. Se E_t è nella finestra e carichiamo, il limite (9−E_t)/(η_cΔt) impedisce che l’incremento superi lo spazio; il limite inferiore non è minacciato perché l’energia cresce. Se scarichiamo, (E_t−2)η_d/Δt impedisce che l’energia interna rimossa superi la riserva disponibile; il massimo non è minacciato perché l’energia scende. Partendo da 5, per induzione ogni stato resta nella finestra nel modello. Questa dimostrazione dipende da efficienze positive, segni corretti e nessun’altra dinamica non modellata.
Non abbiamo però dimostrato che il controllo sia ottimale nel tempo. Un’ottimizzazione potrebbe conservare energia per un’ora successiva, coordinare altri carichi, consentire esportazione o usare una previsione probabilistica. Dovrebbe dichiarare una funzione obiettivo, tutti i vincoli e la gestione dell’orizzonte finale, altrimenti potrebbe guadagnare artificialmente svuotando la riserva alla fine. Il nostro controllo non pretende di risolvere quel problema. È una baseline trasparente che rende confrontabili le traiettorie e chiarisce quali azioni siano almeno ammissibili sotto le ipotesi scelte.
Il programma simulate percorre una volta i quattro intervalli, aggiorna stato e registra flussi in una tabella. Con T intervalli il numero di aggiornamenti è O(T); conservare tutte le righe richiede O(T) memoria, mentre registrando soltanto lo stato corrente basterebbe O(1). Questi sono ordini del modello di calcolo, non prestazioni misurate di un controllore embedded. Gli assert verificano i limiti in ogni passo e il bilancio locale. I dati sono deterministici, il seed non è applicabile; il JSON conserva versione Python, parametri, casi senza vincoli e sensibilità.
Fonti, limiti fisici e conseguenze per l’AI
La documentazione primaria del System Advisor Model, SAM, nella pagina Battery Dispatch FOM, distingue obiettivi di potenza, limiti di stato e conversioni con perdite, avvertendo che la potenza effettiva può essere inferiore al bersaglio. L’abbiamo consultata come riferimento sul significato dei vincoli, non come sorgente dei nostri numeri. Non abbiamo eseguito SAM né replicato la sua elettrochimica o i suoi controlli automatici. Le percentuali e le potenze dell’esempio sono nostre ipotesi. Non vanno applicate a una batteria commerciale senza dati, documentazione e verifica specifici.
Su un impianto reale servirebbero almeno potenze e tensioni ammesse, efficienze dipendenti dal carico, temperatura, capacità disponibile, vincoli del sistema di gestione della batteria e misura degli ausiliari. Un intervallo orario può nascondere un picco incompatibile pur con media accettabile; un degrado può ridurre lo spazio utilizzabile; l’incertezza nella previsione può richiedere una riserva diversa. Questi non sono risultati osservati nel nostro esperimento, ma fenomeni esclusi che delimitano la conclusione. Una simulazione di energia non dimostra sicurezza, conformità o convenienza economica di un’installazione.
La risposta iniziale è quindi precisa: prevedere il sole non basta, perché una previsione descrive ciò che sarà disponibile, mentre un controllo deve scegliere azioni compatibili con stato, perdite e limiti in ogni istante modellato. Nel nostro esempio il sole è noto perfettamente eppure due piani falliscono; la regola vincolata chiude il bilancio e mostra quale energia resta da importare o non accumulare. L’AI può contribuire a previsioni e decisioni, ma non cancella quelle relazioni. Nessun prodotto, impianto o risultato di accumulo EL-AI è dimostrato da questo esercizio.
from experiment import simulate
for eta in [.8,.9,1.]:
result=simulate(eta=eta)
print(eta,result['final_kWh'],result['grid_import_kWh'],result['curtailed_kWh'],result['loss_kWh'])
Codice, dati e istruzioni · JSON. Calcoli didattici eseguiti con Python 3.14.0; figure con Matplotlib 3.11.2. Analisi con assistenza AI, senza dichiarare peer review o revisione umana. Copertina originale ImageGen, illustrativa: non documenta persone, sedi o installazioni EL-AI. Fonti consultate il 16 ottobre 2026.

