Ispirazione

Siamo partiti dalla challenge COESA – Beyond solar, che chiede di ripensare l'uso dei pannelli solari.

Sui tetti i pannelli sono collegati in serie. In una serie la corrente è la stessa per tutti, quindi il pannello peggiore trascina con se tutti gli altri. Basta l'ombra di un camino, una foglia o un po' di sporco su un solo pannello per frenare tutta la maglia.

Successivamente abbiamo indagato come questo problema viene affrontato in letteratura. I pannelli moderni hanno dei diodi di bypass intervengono su una filadi celle solo quando il pannello è già in tensione inversa. E nessuno sa perché quel pannello rende meno: ombra di passaggio, nuvola, sporco o un oggetto fermo. Volevamo un sistema che lo capisse e agisse da solo in tempo reale.

Il firmware e le schematiche sono disponibili su GitHub.

Cosa fa

OMBRA è un sistema embedded su Arduino UNO Q.

  1. Misura una sola corrente, quella della stringa, come fa un inverter.
  2. Interroga i pannelli a turno. Ogni pannello ha un relè in parallelo. Ogni 4 secondi OMBRA esclude un pannello dalla serie e vede come cambia la potenza generata.
  3. Esclude il pannello che frena la maglia. Chiude il suo relè, il pannello esce dalla serie e la corrente risale. Quando l'ombra passa, il pannello viene reinserito.
  4. Decide se conviene davvero con la corrente. Escludere un pannello toglie della tensione. OMBRA lo esclude solo se la potenza sale.
  5. Capisce la causa e apre un ticket solo dove serve:
Cosa vede Verdetto Azione
Calano tutti i pannelli insieme nuvola nessuna
Un pannello crolla e poi torna ombra di passaggio escluso finché dura
Un pannello crolla e resta giù per 20 s ostacolo fisso (foglia, oggetto) escluso + ticket "togliere l'ostacolo"
Un pannello cala poco (62-85%) e resta così sporco resta in serie + ticket di pulizia

Per la challenge COESA, OMBRA fa due cose:

  • ottimizza la produzione, escludendo in tempo reale il pannello che frena la stringa;
  • fa pulizia intelligente: manda a pulire solo il pannello sporco, e mai per una nuvola o un'ombra che passa.

Come l'abbiamo costruito

Hardware

  • Arduino UNO Q 4 GB.
  • Mini pannelli solari R1123 in serie.
  • Sensore di corrente Seeed Grove 2.5A (ACS70331), che chiude la stringa.
  • Un relè Grove per pannello, con il contatto in parallelo al pannello.
  • Millefori con morsetti a vite.

Microcontrollore (sketch C++ sull'STM32 dell'UNO Q)

  • Fa il ciclo dei relè con tempi precisi: prima apre e poi chiude, e non chiude mai tutti i relè insieme.
  • Dopo ogni cambio aspetta 150 ms, poi fa la media di circa 700 letture in 100 ms. 100 ms sono un multiplo esatto dello sfarfallio delle lampade a 50/100 Hz, che così si annulla.
  • Informa dello stato tramite un'interfaccia web servita dalla scheda
  • Stato sicuro: se Python tace per 10 s, apre tutti i relè e i pannelli tornano in serie.

Linux (Python sul processore Qualcomm dell'UNO Q)

  • Riceve le misure via Arduino Bridge.
  • Decide le esclusioni con soglie, conferme su due cicli e tempi minimi tra un cambio e l'altro.
  • Riconosce le cause e apre i ticket.
  • Serve una dashboard web con la corrente della stringa, la corrente "senza OMBRA" e il guadagno, una card per pannello, il grafico, il registro e i ticket.
  • Lo stesso codice gira in un simulatore sul laptop, con la fisica della stringa, il rumore e il disturbo dei relè, e in 137 test automatici.

Le sfide

  • Lo zero del sensore si sposta quando scattano i relè. Con un relè chiuso il sensore leggeva 21 mA in più, con due circa 40 mA, anche a pannelli staccati. Le cause erano la massa in comune, il 3,3 V che cala e il campo delle bobine. L'abbiamo risolto con una taratura dello zero per ogni combinazione di relè, con fili di alimentazione separati e con il sensore lontano dai relè, e sostituendo il sensore con una resistenza.
  • Il segnale è piccolo. I mini pannelli danno decine di mA, e l'offset del chip vale circa ±29 mA. Senza la taratura le misure non avrebbero senso.
  • Le lampade sfarfallano a 100 Hz. Per questo la finestra di media è di 100 ms, sincronizzata con la rete.
  • Una sola stampante 3D per 2 ore. La case completa richiedeva 9 ore su tre stampanti. L'abbiamo ridisegnata con pareti da esattamente 2 linee dell'ugello e pochi dettagli. Da 5 ore e 20 si è scesi a meno di 2, in un solo piatto.

Di cosa siamo orgogliosi

  • Un solo sensore per tutta la stringa. Niente elettronica sui pannelli: basta un relè per pannello e la corrente che l'inverter misura già.
  • Funziona sulla scheda vera: misura della corrente con taratura dello zero, ciclo dei relè, esclusione e rientro automatico, verdetti, ticket, dashboard e matrice LED.
  • Distingue le cause, non solo il calo: nuvola, ombra, ostacolo fisso e sporco danno azioni diverse.
  • È sicuro: se il software si blocca, tutti i pannelli tornano in serie da soli.
  • Simulatore e 137 test: la logica si prova anche senza hardware.
  • La villa solare disegnata in codice, da 9 ore di stampa a meno di 2.

Cosa abbiamo imparato

  • Escludere il pannello più debole non sempre conviene: bisogna ragionare in potenza, non in corrente.
  • Con una sola misura e un po' di logica si capisce molto di una stringa: quale pannello, quanto e perché.
  • Su una scheda come l'UNO Q conviene dividere: i tempi stretti al microcontrollore, le decisioni a Python.

Prossimi passi per OMBRA

  • Relè a stato solido (PhotoMOS) al posto di quelli meccanici: niente clic, niente disturbo sul sensore.
  • Sensore di luce di riferimento, per riconoscere le nuvole anche con un solo pannello.
  • Ombra abituale: imparare in un giorno le ombre previste di ogni pannello, per distinguere un camino da un ostacolo nuovo.
  • Seconda vita: un pannello che resta basso anche pulito e al sole pieno riceve un ticket "sostituire", con la sua corrente reale misurata.

Le ultime tre sono già previste nel codice o nel simulatore, ma non ancora montate nel prototipo.

Team

Niccolò Pagano, Giulio Procopio, Marco Aldeeb, Lia.

Built With

Share this project:

Updates

Submission history