Università di Pisa
Scuola di Ingegneria
Corso di Laurea in Ingegneria Elettronica
Anno Accademico 2017-2018
Tesi di Laurea Magistrale
Progettazione di sistema di monitoraggio
di batterie sodio-nichel-cloro
per applicazioni stazionarie
Candidato:
Riassunto Analitico – Abstract
La tesi presentata intende trattare, considerando varie strategie, una possibile soluzione di sistema di monitoraggio intelligente per batterie al sodio-nichel-cloro, altresì conosciute commercialmente con il nome ZEBRA (Zero Emission Battery Research Activities).
Tali batterie presentano prestazioni interessanti e alcuni vantaggi rispetto a quelle al litio, tra cui una maggiore sicurezza intrinseca, la possibilità di operare in un intervallo di temperature più esteso, e l’impiego di materiali più abbondanti in natura. Per contro richiedono di operare a temperature ben superiori a quella ambiente (250 °C ÷ 350 °C), da cui il nome di “batterie calde”.
Le batterie ZEBRA, come accade per quelle al litio, richiedono la presenza di un sistema elettronico intelligente che le possa monitorare e gestire, in particolare controllando che la loro temperatura rimanga nell’intervallo operativo.
Le batterie ZEBRA in commercio sono già provviste di circuiterie di monitoraggio e controllo, ma in questa tesi si vuole proporre un’alternativa a basso costo basata su tecniche convenzionali, in grado di fornire misure di tensione e temperatura, che sono necessarie a stimare lo stato della batteria.
Le motivazioni di questo lavoro di tesi hanno origine dal bisogno di accumulatori alternativi al litio sicuri, ecosostenibili, e prestanti, utili a mantenere la continuità elettrica, per esempio, nelle applicazioni telecom, che sono determinanti nello scenario moderno dei nostri giorni.
Il lavoro svolto inizia con uno studio della cella ZEBRA, di cui si evidenziano la chimica, le condizioni operative, i vantaggi e gli svantaggi, e dei Battery Management System, di cui si illustrano le principali funzioni e i tipi di architettura presenti in letteratura.
Successivamente, si propone una soluzione di BMS per una batteria ZEBRA da 52 V basata su architettura distribuita di tipo Master-Slave, in cui lo Slave si occupa di misurare le tensioni e la temperatura di un singolo modulo della batteria, oltre ad azionare il riscaldatore, e il Master si occupa di elaborare l’algoritmo di stima dello stato della batteria, di comunicare con un convertitore DC-DC e di controllare eventuali interruttori.
Di tutto il BMS è stato realizzato un prototipo di BMS Slave, composto da una scheda di acquisizione dati (tensione e temperatura), che è stata progettata a livello hardware, e da una scheda di controllo basata su microcontrollore, di cui è stato sviluppato il firmware. Sul prototipo di Slave sono stati infine effettuati, tramite sourcemeter Keithley 2460 e
Sommario
Riassunto Analitico – Abstract ... 3
Sommario ... 4
1. Introduzione ... 6
1.1. Le batterie sodio-nichel-cloro (ZEBRA) ... 9
1.1.1. Descrizione generale ... 9
1.1.2. Chimica e funzionamento della cella ...10
1.1.3. Specifiche, pro e contro delle batterie ZEBRA ...12
1.1.4. La rottura dell’elettrolita solido ...13
1.2. Il Battery Management System (BMS) ...14
1.2.1. Studio termico per il riscaldatore ...16
1.2.2. Il convertitore DC-DC ...20
1.3. Algoritmi per BMS in letteratura ...22
1.3.1. Algoritmi di calcolo del SOC ...22
1.3.2. Il modello circuitale di una batteria ...23
1.3.3. Stima del numero di celle rotte ...26
1.4. Architetture di BMS in letteratura ...30 1.4.1. Architetture monolitiche ...31 1.4.2. Architetture distribuite ...32 1.4.3. Architetture semi-distribuite ...33 2. Soluzione proposta di BMS ... 34 2.1. Descrizione generale ...34
2.2. Architettura del sistema ...36
2.3. Il BMS Master (PMU) ...38
2.4. Il BMS Slave (MMU) ...39
2.4.1. Specifiche del BMS Slave ...39
2.4.2. Schema del BMS Slave ...41
3. Lo Slave Measure Block (SMB) ... 43
3.1. Lo stadio d’ingresso ...43
3.1.1. Schema e funzionamento ...43
3.1.2. Dimensionamento del partitore di tensione ...44
3.1.3. Bilanciamento passivo delle correnti ...46
3.2. L’amplificatore operazionale ...49
3.3. Il convertitore analogico-digitale (ADC) ...50
3.3.1. Schema e funzionamento ...50
3.3.2. Scelta della tipologia di ADC ...50
3.3.3. Scelta del convertitore analogico-digitale (ADC) ...51
3.3.4. Il cristallo risonante esterno ...55
3.3.5. Stima dell’offset error e del gain error ...56
3.4. Il convertitore temperatura-digitale (TDC) ...57
3.4.1. Il convertitore termocoppia-digitale (TDC) ...57
3.4.1.2. Compensazione della termocoppia ...59
3.4.1.3. Problema del giunto freddo ...59
3.4.1.4. Scelta del convertitore termocoppia-digitale (TDC) ...60
3.4.1.5. Il filtro passa-basso ...62
3.4.2. Il Resistance Temperature Detector (RTD) ...64
3.4.2.1. Soluzione con convertitore resistenza-digitale (RDC) ...66
3.4.2.2. Soluzione con circuito analogico ...70
4. Lo Slave Processing Block (SPB) ... 77
4.1. Il microcontrollore ...77
4.2. Schema di comunicazione ...78
4.3. Funzionamento del Firmware ...79
4.4. Età dei campioni...80
5. Test e risultati delle misure ... 82
5.1. Prototipo dello Slave Measure Block (SMB) ...82
5.2. Setup di misura per la tensione ...84
5.3. Test di misura per la tensione ...86
5.3.1. Caratteristica della tensione per 𝑇 = 23 °C ...86
5.3.2. Correzione hardware della caratteristica ...92
5.3.3. Precisione delle misure (𝑇 = 23 °C) ...94
5.3.4. Caratteristica della tensione per 𝑇 = 60 °C ...95
5.3.5. Precisione delle misure (𝑇 = 60 °C) ...99
5.3.6. Misura della corrente assorbita (𝑇 = 23 °C) ... 100
5.3.7. Discussione dei risultati ... 101
5.4. Setup di misura per la temperatura ... 102
5.5. Test di misura per la temperatura ... 104
5.5.1. Misure nel tempo ... 104
5.5.2. Caratteristica della temperatura ... 107
5.5.3. Precisione delle misure ... 109
5.5.4. Discussione dei risultati ... 110
6. Conclusioni ... 111
7. Appendice – Richiami alla teoria degli errori e definizioni ... 112
8. Bibliografia ... 114
9. Datasheets e manuali di riferimento ... 116
1. Introduzione
Al giorno d’oggi, le batterie costituiscono un elemento essenziale per il funzionamento dei dispositivi elettronici portatili e stazionari. Le batterie comunemente utilizzate per sistemi portatili moderni, generalmente, sono degli accumulatori agli ioni di litio e si possono trovare dentro a cellulari, computer portatili, attrezzi elettrici, apparecchiature mediche, sensori e altro.[1] Oltre a quella basata sul litio, esistono altri tipi di chimiche con cui si possono realizzare batterie. La chimica di una batteria può essere basata su piombo-acido, sodio-zolfo, nichel-cadmio, zinco-bromo ecc.
In questa tesi si intende trattare le Zero Emission Battery Research Activities (ZEBRA), proponendo una soluzione per un Battery Management System (BMS) ad hoc. Batterie di questo tipo, infatti, esattamente come per le batterie agli ioni di litio, non possono essere utilizzate senza predisporre una circuiteria che possa monitorarle e controllarle continuamente, verificando che la loro temperatura rimanga nell’intervallo operativo. Le ZEBRA presentano prestazioni interessanti e alcuni vantaggi rispetto al litio, tra cui l’assenza di emissioni nocive (come dice il nome) e l’impiego di materiali più abbondanti rispetto al litio. Le batterie ZEBRA sono infatti a base di cloruro di sodio, estremamente diffuso in natura, e nichel, più raro del sale da cucina ma comunque più abbondante del litio (almeno 4 volte di più [2]), le cui riserve scarseggiano.[3] Il principio dietro alle batterie ZEBRA è stato brevettato nel 1978, mentre la commercializzazione di questo tipo di batterie è iniziata nel 2000 da parte della MES-DEA. Tale azienda è stata acquisita nel 2011 da FIAMM che ha fondato quindi una nuova azienda chiamata FZSoNick che attualmente è l’unico produttore mondiale di batterie di questo tipo.[4]
Un Battery Management System (BMS) è un sistema in grado di monitorare e controllare lo stato e il funzionamento di una batteria collegata ad un carico, che può essere un dispositivo, un circuito o una rete elettrica qualsiasi. Il sistema in questione solitamente è di natura digitale ed è in grado sia di acquisire dati dalla batteria (tensione, corrente, temperatura…) che di computare algoritmi complessi al fine di calcolare i parametri interni della batteria (caratteristici del modello circuitale equivalente), lo stato di carica (State Of Charge, 𝑆𝑂𝐶) ed eventualmente lo stato di salute (State of Health, 𝑆𝑂𝐻). Esistono già BMS per le batterie ZEBRA, ma sono presenti molti margini di miglioramento su cui lavorare. Lo stato di carica (𝑆𝑂𝐶 ) è una grandezza indicativa della frazione di carica rimanente rispetto a quella nominale della batteria. Si può definire come
𝑆𝑂𝐶(𝑡) = 𝑄𝑅(𝑡) 𝑄𝑀𝐴𝑋(𝑡) ≤ 1
(1)
𝑄𝑅(𝑡) rappresenta la carica rimasta nella batteria e 𝑄𝑀𝐴𝑋(𝑡) è la carica massima accumulabile nella batteria. Lo 𝑆𝑂𝐶 si può indicare sia sotto forma di frazione che di valore percentuale, ed è un numero puro. Il valore dello 𝑆𝑂𝐶 deve trovarsi sempre all’interno di un intervallo prestabilito, al fine di preservare la vita della batteria. La batteria non deve mai scaricarsi eccessivamente, né sovraccaricarsi, altrimenti invecchia prematuramente o
si danneggia. Nelle batterie, la relazione tra tensione e carica non è lineare come per i condensatori, bensì, lo Open Circuit Voltage (OCV) è una funzione non lineare del 𝑆𝑂𝐶. Ne deriva che, se si considera la capacità 𝐶 di una batteria, questa non è costante e dipende dallo 𝑆𝑂𝐶 non linearmente.
𝐶(𝑡, 𝑆𝑂𝐶) =𝑄𝑅(𝑡, 𝑆𝑂𝐶) 𝑉𝑂𝐶(𝑆𝑂𝐶) =
𝑄𝑀𝐴𝑋(𝑡)𝑆𝑂𝐶(𝑡) 𝑉𝑂𝐶(𝑆𝑂𝐶(𝑡))
(2)
Lo stato di salute invece (𝑆𝑂𝐻) è un indicatore dell’invecchiamento e della corruzione della batteria e si può definire come
𝑆𝑂𝐻(𝑡) =𝑄𝑀𝐴𝑋(𝑡) 𝑄𝑁 ≤ 1
(3) 𝑄𝑀𝐴𝑋(𝑡) rappresenta la massima carica accumulabile nella batteria all’istante 𝑡, 𝑄𝑁 invece è la quantità massima di carica accumulabile nella batteria quando questa è appena uscita dalla fabbrica. L’invecchiamento della batteria nel tempo fa sì che sempre meno carica riesca ad accumularsi nella batteria. Lo 𝑆𝑂𝐻 si può indicare sia sotto forma di frazione che di valore percentuale, ed è un numero puro.
Oltre ad occuparsi di stimare lo stato di carica e salute della batteria e i suoi parametri interni, il BMS si occupa anche di mantenerla in condizioni ottimali di lavoro, regolandone l’avvio e l’arresto, equilibrando la carica tra le celle, evitando tensioni e correnti inadeguate al corretto funzionamento, mantenendo la giusta temperatura operativa e scollegando la batteria qualora un guasto comprometta la stessa o il carico collegato in modo critico. Le batterie ZEBRA hanno la particolarità di funzionare a temperature comprese tra 250 °C e 350 °C, per cui il monitoraggio e il mantenimento della temperatura operativa risulta importante. Una tale temperatura di funzionamento rende queste batterie inadeguate ad applicazioni portatili, ma i numerosi vantaggi relativi a durabilità elevata, non tossicità, non richiedono manutenzione ecc. rendono questa tipologia di batterie appetibile per applicazioni stazionarie, come l’alimentazione di ripetitori telefonici isolati (applicazioni telecom). Sistemi stazionari di questo tipo sono normalmente collegati alla rete elettrica, ma nel caso questa sia interrotta a causa di un guasto o in caso di manutenzione, la presenza di una batteria può evitare la sospensione del funzionamento del dispositivo.
Se si pensa a dei ripetitori in luoghi isolati, magari in campagna o in zone desertiche lontane dai luoghi abitati, può essere una buona idea utilizzare batterie che non necessitano di manutenzione in grado di funzionare per anni in automatico.
Destinare le batterie ad un’applicazione in una località nel deserto può essere consigliabile anche in quanto le ZEBRA hanno tra i numerosi vantaggi quello di funzionare indipendentemente dalla temperatura ambiente. A causa dell’elevata temperatura di funzionamento delle batterie sodio-nichel-cloro, i componenti scelti per il BMS devono essere fatti per lavorare correttamente in un intervallo esteso di temperature, per cui non si ha alcun problema in un clima torrido con una temperatura ambiente che varia da molto alta (di giorno) a molto bassa (di notte).
In questo elaborato si intende svolgere uno studio generale dei BMS e della tipologia di batterie ZEBRA per poi proporre una possibile soluzione di BMS destinato a questo tipo di batterie. In particolare, il lavoro si è incentrato particolarmente sulla realizzazione della parte di monitoraggio del BMS, che si occupa osservare e digitalizzare le grandezze d’interesse misurabili della batteria, come tensione e temperatura. Tale circuito, infatti, intende gettare le basi per la progettazione e realizzazione di tutto il resto del BMS in un momento successivo.
In questo capitolo introduttivo verranno trattate le batterie ZEBRA, le principali caratteristiche di un BMS per batterie ZEBRA, gli algoritmi di stima dello 𝑆𝑂𝐶 e le architetture di BMS presenti in letteratura.
Nel secondo capitolo verrà descritta la soluzione di BMS proposto, soffermandosi sulla sua architettura e le caratteristiche dei suoi blocchi principali.
Nel terzo capitolo verrà trattata la progettazione hardware del circuito di misura del BMS Slave, ovvero lo Slave Measure Block (SMB).
Nel quarto capitolo si parlerà del blocco di elaborazione del BMS Slave, ovvero lo Slave Processing Block (SPB), che è rivolto all’acquisizione, conversione e trasmissione dei dati raccolti dal circuito di misura.
Nel quinto capitolo verranno esposti e discussi i risultati ottenuti dal lavoro svolto. Nel sesto capitolo verranno tratte le conclusioni di tutta l’esperienza.
1.1.
Le batterie sodio-nichel-cloro (ZEBRA)
1.1.1. Descrizione generaleLe batterie sodio-nichel-cloro, o ZEBRA, sono un tipo di batteria a sale liquido (molten-salt batteries) con chimica a base di sodio, nichel e cloro. Sono un’evoluzione delle batterie al sodio-zolfo (𝑁𝑎𝑆). Una batteria sodio-nichel-cloro è generalmente costituita da più moduli (o stringhe) contenenti molte celle in serie. Le singole celle ZEBRA sono costituite da un elettrodo negativo di sodio (𝑁𝑎) liquido separato dall’elettrodo positivo, da un elettrolita solido di beta-allumina (Beta-Alumina Solid Electrolyte, BASE, 𝐴𝑙2𝑂3), in grado di far passare solo gli ioni sodio (𝑁𝑎+), e un elettrolita liquido fatto di tetracloroalluminato di sodio (𝑁𝑎𝐴𝑙𝐶𝑙4), responsabile del trasporto di ioni 𝑁𝑎+, con sciolte dentro altre specie chimiche, tra cui cloruro di sodio (𝑁𝑎𝐶𝑙), nichel (𝑁𝑖), e ferro (𝐹𝑒). L’elettrodo positivo è costituito invece interamente da nichel (𝑁𝑖).[5] Rispetto alle batterie a base di 𝑁𝑎𝑆 sono molto più sicure, in quanto in caso di rottura dell’elettrolita solido si ha un semplice cortocircuito degli elettrodi della batteria invece che una violenta reazione pericolosa.[5][6] Hanno la particolarità di funzionare solo a temperature elevate per le quali il sale 𝑁𝑎𝐴𝑙𝐶𝑙4 è allo stato fuso (più di 157 °C) e la beta-allumina presenta una resistenza sufficientemente bassa (più di 250 °C).[7] È di vitale importanza che in una batterie sodio-nichel-cloro non circoli mai corrente quando questa si trova a meno di 250 °C. Quando la batteria è troppo fredda, la presenza di una corrente, anche modesta, può causare una foratura nello strato di beta-allumina, danneggiando gravemente e rendendo inutilizzabile la batteria in maniera permanente. D’altra parte, la temperatura non deve neanche essere eccessiva, poiché sopra ai 350 °C si ha una eccessiva solubilità di 𝑁𝑖𝐶𝑙2 e 𝐹𝑒𝐶𝑙3 nell’elettrolita liquido che nuoce alla beta-allumina.[7][8]
1.1.2. Chimica e funzionamento della cella
In base al potenziale 𝐸, nella cella avvengono le seguenti reazioni, durante la sua scarica.[9] 𝐸𝑙𝑒𝑡𝑡𝑟𝑜𝑑𝑜 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜: {𝑁𝑖𝐶𝑙2+ 2𝑒 − → 𝑁𝑖 + 2𝐶𝑙− (𝐸 = 2,58 𝑉) 𝐹𝑒𝐶𝑙2+ 2𝑒− → 𝐹𝑒 + 2𝐶𝑙− (𝐸 = 2,35 𝑉) 𝐸𝑙𝑒𝑡𝑡𝑡𝑟𝑜𝑑𝑜 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑜: 𝑁𝑎 → 𝑁𝑎++ 𝑒− 𝑅𝑒𝑎𝑧𝑖𝑜𝑛𝑖 𝑐𝑜𝑚𝑝𝑙𝑒𝑠𝑠𝑖𝑣𝑒: {𝑁𝑖𝐶𝑙2+ 2𝑁𝑎 → 𝑁𝑖 + 2𝑁𝑎𝐶𝑙 (𝐸 = 2,58 𝑉) 𝐹𝑒𝐶𝑙2+ 2𝑁𝑎 → 𝐹𝑒 + 2𝑁𝑎𝐶𝑙 (𝐸 = 2,35 𝑉)
Figura 3 - Interno di una cella ZEBRA e rappresentazione delle reazioni chimiche interne durante la scarica della batteria
[5]
Quando la cella è totalmente scarica, l’elettrolita liquido contiene 𝑁𝑎𝐶𝑙, 𝑁𝑖 e 𝐹𝑒 mentre l’elettrodo negativo è vuoto. Caricandosi, si forma prima 𝐹𝑒𝐶𝑙2, e poi, a ferro esaurito, 𝑁𝑖𝐶𝑙2. Gli ioni di sodio (𝑁𝑎+) che si formano nella reazione nell’elettrolita liquido sono in grado di attraversare l’elettrolita solido di beta-allumina e passano nell’elettrodo negativo, dove acquistano ciascuno un elettrone grazie alla corrente di carica e tornano ad essere 𝑁𝑎. Durante la scarica, avvengono le reazioni inverse sempre a partire dalla beta-allumina. Se si carica la batteria a una tensione maggiore di quella nominale, sovraccaricandola, si
provoca una reazione indesiderata che fa invecchiare e poi rompere la cella. Se invece la si fa scaricare oltre il consentito, si ha un’altra reazione che a sua volta diminuisce la performance della cella.
La reazione che si ha in caso di sovraccarica (𝐸 = 2,75 V) è 3𝑁𝑎𝐶𝑙 + 𝐹𝑒 → 3𝐹𝑒𝐶𝑙3+ 3𝑁𝑎
Tale reazione diminuisce le prestazioni della batteria in quanto 𝐹𝑒𝐶𝑙3 è solubile in 𝑁𝑎𝐴𝑙𝐶𝑙4 e lo ione 𝐹𝑒3+ può attaccare chimicamente la beta-allumina, usurandola e aumentandone la resistenza. [6][7]
La reazione che si ha in caso di sotto-scarica (𝐸 = 1,60 V) è 𝐴𝑙𝐶𝑙3+ 3𝑁𝑎 → 3𝑁𝑎𝐶𝑙 + 𝐴𝑙
Tale reazione comporta a sua volta una perdita di performance, soprattutto se si verifica per lunghi periodi.[6]
È quindi importante che il BMS eviti che la batteria si carichi oltre la tensione prevista o si avvicini troppo allo 0% dello 𝑆𝑂𝐶 . Per caricare la batteria è consigliabile alimentarla inizialmente a corrente costante (per evitare sovracorrenti) e successivamente a tensione costante, così da impedire che la batteria si sovraccarichi. È inoltre importante osservare che al primo ciclo di carica è necessario caricare al massimo la batteria, per evitare un invecchiamento precoce.[9]
1.1.3. Specifiche, pro e contro delle batterie ZEBRA
Per dare un’idea delle prestazioni di una batteria sodio-nichel-cloro, si confronta la 48TL200, batteria ZEBRA della FZSoNick, con una batteria 48V200Ah agli ioni di litio della SMARTBATTERY.[10]
48TL200 ZEBRA Battery
48V 200AH Lithium Ion Battery Tipo di Batteria sodio-nichel-cloro litio-ferro-fosfato
Tensione nominale (V) 48 48
Capacità nominale (Ah) 200 200
Energia nominale (Wh) 9600 9600
Peso (kg) 105 128
Volume (l) 88,6 101,87
Densità d’energia (Wh/kg) 91 75
Densità d’energia (Wh/l) 108 94,24
Auto-scarica (o perdite termiche operative) ≈ 26% 𝑔𝑖𝑜𝑟𝑛𝑜⁄ < 3% 𝑚𝑒𝑠𝑒⁄
Prezzo commerciale ($) 14.732,07 10.399,92
Tabella 1 - Caratteristiche della batteria ZEBRA 48TL200 di FZSoNick a confronto con la 48𝑉200𝐴ℎ della SMARTBATTERY
La batterie ZEBRA presentano una serie di vantaggi, di cui se ne elencano alcuni [4][9]:
1. Efficienza elevata
2. Densità d’energia elevata 3. Vita molto estesa
4. Sicurezza intrinseca elevata 5. Nessuna fuoriuscita di gas tossici
6. Le prestazioni non dipendono dalla temperatura ambiente 7. Non richiedono litio, che è una risorsa scarsa
8. Sono completamente riciclabili
Ma anche alcuni svantaggi:
1. Richiedono una elevata temperatura di funzionamento (250°𝐶 ÷ 350°𝐶) 2. Richiedono molto tempo per scaldarsi prima di poter essere caricate
3. A causa delle elevate temperature, richiedono cavi costosi con rivestimenti speciali 4. Consumano molta potenza elettrica per mantenersi alla temperatura operativa,
scaricandosi completamente in pochi giorni 5. Hanno costi di produzione elevati
Presa visione di tutti i pro e i contro, si può suggerire l’impiego di questo tipo di batterie per applicazioni di tipo stazionario, in cui la batteria può essere mantenuta accesa per un periodo di tempo indeterminato senza mai doversi raffreddare. Le applicazioni telecom, in particolare, potrebbero esse quelle ideali per un simile tipo di batteria, poiché questa è lasciata sempre accesa ed entra in funzione solo se l’alimentazione esterna si interrompe. [9]
1.1.4. La rottura dell’elettrolita solido
Il tubo di beta-allumina è un elemento critico nella cella, in quanto separa i due poli della batteria permettendo il passaggio di ioni positivi, necessario per il normale funzionamento della batteria. Affinché la batteria funzioni, è necessario evitare che la beta-allumina si rompa, e ciò può accadere nei casi in cui la conduttività ionica della beta-allumina sia insufficiente. La beta-allumina raggiunge un valore di conduttività accettabile di 0,2 Scm−1 a 250 °C , che è la temperatura minima di funzionamento delle batterie sodio-nichel-cloro.[11] Riguardo al limite superiore, a temperature elevate (sopra i 350 °C) si può avere una concentrazione eccessiva di ioni di nichel e ferro nell’elettrolita liquido. Questa può far sì che ioni 𝑁𝑖2+ e 𝐹𝑒3+ passino per la beta-allumina al posto degli ioni 𝑁𝑎+, degradandola e abbassandone la conduttività, e causando quindi il fallimento prematuro della cella.[7][8] Quando la beta-allumina si rompe, forandosi, il sodio liquido (𝑁𝑎) entra nell’elettrodo positivo, dove reagisce con 𝑁𝑎𝐴𝑙𝐶𝑙4 secondo la reazione [6]
𝑁𝑎𝐴𝑙𝐶𝑙4 (𝑙𝑖𝑞) + 3𝑁𝑎 (𝑙𝑖𝑞) → 4𝑁𝑎𝐶𝑙 (𝑠) + 𝐴𝑙 (𝑠)
I prodotti solidi della reazione sigillano le spaccature nell’elettrolita, fermando la reazione. L’alluminio che si forma da tale reazione, fa sì che la cella si cortocircuiti in caso di rottura, permettendo ad eventuali altre celle in serie di mantenersi in funzione. Fortunatamente, la reazione chimica che si ha in caso di foratura della beta-allumina è auto-inibente, e non ha prodotti pericolosi.[6]
1.2.
Il Battery Management System (BMS)
Il BMS per la batteria sodio-nichel-cloro, teoricamente, è destinato a svolgere un gran numero di compiti autonomamente, senza bisogno di interventi esterni. Si desidera infatti mantenere il vantaggio di queste batterie di non richiedere manutenzione (se non dopo periodi molto lunghi). Si considera lo scenario di una applicazione stazionaria (es. telecom). La batteria ZEBRA di cui si desidera progettare il BMS è costituita da cinque stringhe (o moduli) di venti celle in serie. Per ogni modulo, è possibile accedere soltanto ai due poli, positivo e negativo, e al terminale di mezza stringa. Di solito, nelle batterie convenzionali al litio, è possibile disporre dei terminali di sensing di ogni cella, ma nel caso delle ZEBRA ciò non è fattibile a causa dell’elevato costo dei cavi resistenti alle alte temperature. Il polo negativo può essere collegato al terminale di massa, mentre le tensioni media e alta della batteria possono essere lette dal BMS.
Poiché ci si può aspettare che ogni stringa presenti una tensione ai capi leggermente differente dalle altre (a causa di invecchiamento e difetti differenti), i vari moduli richiedono la presenza di un convertitore DC-DC. Questo si occupa di regolare la corrente e la tensione di ogni modulo, facendo sì che il carico (Load) sia alimentato correttamente. Il convertitore, teoricamente, è in grado di essere controllato da un dispositivo esterno, che in questo caso è il BMS, e di leggere la corrente che scorre nella batteria, così da poterla comunicare al BMS.
Attraverso le misure di corrente e tensione, il BMS può stimare un modello della batteria e calcolare attraverso un algoritmo lo stato di carica (𝑆𝑂𝐶) e di salute (𝑆𝑂𝐻) dalla batteria. È possibile inoltre, per il BMS, effettuare una stima in ogni momento del numero di celle ancora integre in ogni modulo.
Tra il convertitore DC-DC e il carico è presente un teleruttore (Contactor), ovvero un interruttore comandato elettricamente adatto a gestire correnti e tensioni elevate. Controllando il teleruttore, il BMS può connettere o disconnettere la batteria dal carico e dalla rete elettrica (Supply Grid). Normalmente il BMS è alimentato, attraverso un opportuno convertitore step-down, dalla rete elettrica. Quando la rete elettrica è disconnessa e la batteria inizia a scaricarsi, il BMS deve essere alimentato necessariamente dalla batteria controllata. Ciò significa che se per qualsiasi motivo il BMS stacca la batteria, il sistema si spegnerà, senza la possibilità di riattivarsi autonomamente. Occorre quindi far sì che il BMS disconnetta la batteria solo in casi estremi in cui mantenere la batteria collegata può causare seri problemi. La presenza di una temperatura inadeguata o di un livello di 𝑆𝑂𝐶 troppo basso possono essere motivi sufficienti per scollegare la batteria. Il BMS può essere dotato di una interfaccia di comunicazione (Ethernet, CAN…) attraverso cui può permettere il controllo remoto a distanza (ad esempio via internet). Nel caso in cui il BMS decida di staccare la batteria, può essere consigliabile trasmettere un messaggio che notifica l’arresto imminente della batteria.
Il BMS, nel caso particolare delle batterie sodio-nichel-cloro, ricopre un ruolo importante nel monitoraggio e nel controllo della temperatura. Esso infatti è incaricato di comandare il riscaldatore e di leggere in ogni momento la temperatura, così da poter controllare di conseguenza le attività della batteria (es. disattivazione in caso di temperatura troppo bassa).
Riassumendo, è possibile schematizzare le funzioni di un BMS per batterie ZEBRA. Funzioni di monitoraggio del BMS:
• Misura delle tensioni di ogni modulo di celle. • Misura della temperatura di ogni modulo di celle.
• Lettura del convertitore DC-DC (misura della corrente di ogni modulo di celle). Funzioni di elaborazione dl BMS:
• Calcolo dei parametri interni di ogni modulo di celle. • Calcolo dello 𝑆𝑂𝐶 (e dello 𝑆𝑂𝐻) di ogni modulo di celle. • Stima del numero di celle rotte all’interno di ogni modulo. Funzioni di controllo del BMS:
• Controllo dei riscaldatori (e quindi della temperatura).
• Controllo del convertitore DC-DC (regolazione della corrente di ogni modulo). • Controllo del teleruttore (disconnessione della batteria, in caso di necessità).
1.2.1. Studio termico per il riscaldatore
Ciascun modulo di celle richiede di essere mantenuto a una temperatura arbitraria 𝑇∗ all’interno del range di funzionamento della batteria. Nel caso del particolare tipo di ZEBRA studiata, l’intervallo di temperatura previsto è 250 °C ÷ 350 °C. È necessario perciò un sistema composto da un sensore, un microcontrollore e un riscaldatore che viene attivato quando la temperatura è insufficiente e disattivato quando la temperatura è eccessiva. Considerando un modello molto semplificato del sistema composto dal riscaldatore e dal modulo di celle, si può rappresentare il transitorio di riscaldamento con il seguente circuito termico equivalente
Figura 6 - Circuito termico equivalente del modulo di celle assieme al riscaldatore, a batteria spenta
𝑃𝑟 è la potenza termica generata dal riscaldatore che viene trasmessa al modulo di celle attraverso la resistenza termica 𝑅𝑟𝑐 e all’ambiente attraverso 𝑅𝑑.
Per avere una stima della potenza persa attraverso 𝑅𝑑, una batteria ZEBRA da 20 kWh può avere una dissipazione di calore nell’ambiante di circa 80 W .[9] Tale dissipazione è equiparabile ad un fenomeno di auto-scarica, anche se fisicamente diverso.
𝑇𝑐 è la temperatura a cui si trova il modulo della batteria, che è rappresentato con la capacità termica 𝐶𝑐.
Quando la batteria si scarica, questa sviluppa calore poiché le reazioni chimiche all’interno sono esotermiche. Si aggiunge quindi una potenza 𝑃𝑖 al circuito termico, che deriva dalle reazioni all’interno delle celle. L’auto-riscaldamento delle celle fa sì che sia possibile spegnere il riscaldatore mentre la batteria si scarica.
Figura 7 - Circuito termico equivalente del modulo di celle assieme al riscaldatore, a batteria accesa
Potrebbe essere necessario raffreddare la batteria a seconda del valore di 𝑃𝑖. Occorre infatti che la temperatura interna alle celle non superi i 350 °C.
Si considera il caso ideale con 𝑅𝑑 → ∞ A regime (𝑡 → ∞), a batteria spenta si ha
𝑇𝑐 = 𝑅𝑐𝑎𝑃𝑟+ 𝑇𝑎 (4)
A regime, a batteria accesa si ha
𝑇𝑐 = 𝑅𝑐𝑎(𝑃𝑟+ 𝑃𝑖) + 𝑇𝑎 (5)
Quando il riscaldatore è spento si ha
𝑇𝑐(𝑃𝑟 = 0) = 𝑅𝑐𝑎𝑃𝑖 + 𝑇𝑎 ≤ 350 °C (6) Se la condizione (6) non è rispettata, pur tenendo spento il riscaldatore, la temperatura a
Si può schematizzare in maniera semplice il riscaldatore come una resistenza alimentata da una tensione elevata attivabile tramite un interruttore.
Figura 8 – Schema semplificato del riscaldatore
L’attività del riscaldatore è regolata dallo Slave Processing Block. Esso, partendo dall’informazione sulla temperatura 𝑇𝑐 misurata nello Slave Measure Block, decide o meno se attivare il riscaldatore attraverso il segnale 𝐶𝑜𝑛𝑡𝑟𝑜𝑙.
Per temperature inferiori alla temperatura target 𝑇∗, il riscaldatore è acceso (𝐼𝑁𝑇ℎ𝑒𝑎𝑡𝑒𝑟 è chiuso) e dissipa una potenza pari a 𝑅1
𝑟𝑉ℎ𝑒𝑎𝑡
2
, dove 𝑉ℎ𝑒𝑎𝑡 è la tensione d’alimentazione del riscaldatore. Il riscaldatore è tanto più potente quanto più è piccola la sua resistenza 𝑅𝑟. Per temperature più grandi di 𝑇∗, il riscaldatore rimane spento (𝐼𝑁𝑇ℎ𝑒𝑎𝑡𝑒𝑟 è aperto). Riassumendo 𝑃𝑟 = { 𝑉ℎ𝑒𝑎𝑡2 𝑅𝑟 𝑝𝑒𝑟 𝑇𝑐 < 𝑇∗ 0 𝑝𝑒𝑟 𝑇𝑐 > 𝑇∗ (7)
Il riscaldatore rimarrà acceso finché la batteria non raggiunge la temperatura 𝑇∗. A questo punto il riscaldatore inizierà ad accendersi e spengersi ripetutamente in base alla temperatura rilevata. Esiste un’incertezza sulla misura, per cui ci si può aspettare un periodo di commutazione irregolare nel tempo. La temperatura in questo modo oscilla intorno al valore target. Ci si aspetta, nel caso in cui il riscaldatore riesca a seguire la temperatura misurata
𝑇𝑐 = 𝑇∗± ∆𝑇 (8)
Quando la batteria è accesa e dissipa potenza termica, il riscaldatore può evitare di accendersi del tutto nel caso in cui
𝑇𝑐(𝑃𝑟 = 0) = 𝑅𝑐𝑎𝑃𝑖 + 𝑇𝑎≥ 𝑇∗ (9) Il controllo sulla temperatura non richiede di essere particolarmente prestante in quanto non è importante che la temperatura rimanga costante su di un valore preciso. Ciò che importa è che la temperatura rimanga nell’intervallo di temperatura previsto. Questo è particolarmente ampio ed è quindi facile mantenere la temperatura al suo interno. Occorre che sia rispettata la condizione
250 °C < 𝑇𝑐 < 350 °C (10)
250 °C < 𝑇∗± ∆𝑇 < 350 °C (11) La non-criticità del controllo sulla temperatura e l’ampio range di funzionamento fa sì che ci si possa permettere un errore di qualche grado sulla misura della temperatura senza conseguenze rilevanti per il funzionamento del Battery Management System.
L’errore non può essere comunque eccessivo in quando le caratteristiche delle batterie ZEBRA variano in funzione della temperatura [7] e si desidera far lavorare la batteria il più vicino possibile alla temperatura target.
1.2.2. Il convertitore DC-DC
Le varie stringhe in parallelo che compongono la batteria contengono serie di celle che sono generalmente differenti per fabbricazione, difetti e invecchiamento. La diversità tra le celle si traduce nella presenza di una tensione differente ai capi dei diversi moduli. Uno 𝑆𝑂𝐶 differente tra le stringhe ha lo stesso effetto e contribuisce a far sì che la differenza di potenziale differisca da modulo a modulo. Poiché si desidera che il carico sia alimentato a tensione costante ed è pericoloso collegare direttamente batterie a potenziali diverso in parallelo (si rischia di far scorrere una corrente enorme, poiché generalmente la resistenza serie di una batteria è molto piccola), è necessaria la presenza di un dispositivo che equalizzi i vari potenziali delle stringhe. Il dispositivo utilizzato è un convertitore DC-DC che comunica digitalmente con il BMS. Questo circuito è in grado di regolare la corrente proveniente da ogni modulo della batteria e convogliarla nel ramo dove si trova il carico, facendo sì che ai capi di questo ci sia una adeguata tensione costante. Il convertitore si occupa anche di gestire la ricarica della batteria quando questa è collegata alla rete elettrica, limitando la quantità di corrente al massimo consentito per ragioni di sicurezza. È desiderabile infatti ricaricare le batterie con la corrente maggiore possibile, in modo da impiegare minor tempo, senza al tempo stesso eccedere i limiti di sicurezza poiché una corrente eccessiva può danneggiare la batteria o la circuiteria attraverso cui scorre. Generalmente, per evitare correnti eccessive, una batteria viene ricaricata con corrente costante (Constante Current, CC) per bassi valori dello 𝑆𝑂𝐶, e a tensione costante (Constant Voltage) per valori di 𝑆𝑂𝐶 medio-alti.[1] L’alimentazione CV comporta una ricarica lenta per valori dello 𝑆𝑂𝐶 prossimi al 100%, ma ha il vantaggio di evitare che la batteria si carichi oltre il massimo consentito se la tensione d’alimentazione è adeguata.
Figura 9 - esempio di ricarica completa di una cella ZEBRA. Si può osservare che inizialmente la ricarica è effettuata a corrente costante, e poi a tensione costante [9]
Il convertitore DC-DC deve essere sempre in grado di calcolare quale è la tensione d’alimentazione corretta per ogni stringa al fine di non sovraccaricarne alcuna. Occorre che 𝑉𝐶𝐶𝐻(𝑁𝑓) = 𝑉𝑂𝐶𝑡𝑜𝑡(𝑆𝑂𝐶 = 100%) = 𝑁𝑓𝑉𝑂𝐶𝑖(𝑆𝑂𝐶 = 100%) (12) Dove 𝑉𝐶𝐶𝐻 è la tensione d’alimentazione che il convertitore deve impiegare, 𝑉𝑂𝐶𝑡𝑜𝑡 indica la tensione a circuito aperto (OCV) di tutto il modulo, 𝑉𝑂𝐶𝑖 è la tensione a circuito aperto di una singola cella e 𝑁𝑓 è il numero di celle ancora integre all’interno della stringa. È infatti possibile che nel tempo qualche cella si rompa, cortocircuitandosi e smettendo di accumulare carica. Nel caso in cui ciò si verifichi, la tensione d’alimentazione 𝑉𝐶𝐶𝐻 deve diminuire in modo da adattarsi alla nuova 𝑂𝐶𝑉 a piena carica. Se la tensione d’alimentazione venisse mantenuta fissa a prescindere, in caso di presenza di una cella guasta le rimanenti verrebbero sovraccaricate. Quando una cella viene cariata oltre il suo potenziale massimo, dal momento che la sua normale reazione chimica di carica non può più avere luogo, avvengono altre reazioni chimiche indesiderate che rovinano la batteria in modo permanente, abbassandone la capacità massima e aumentando la sua resistenza interna. È quindi importante che il convertitore DC-DC alimenti sempre in maniera adeguata i vari moduli.
Il convertitore DC-DC può sfruttare la propria capacità di regolare la corrente di ogni singola stringa anche per pareggiare il livello dello 𝑆𝑂𝐶 all’interno dei vari moduli. Nel caso in cui ci siano stringhe più cariche di altre, questi può richiedere più corrente ai moduli più carichi e meno corrente a quelli più scarichi.
Ai fini del proprio funzionamento, il convertitore necessita di conoscere i valori delle correnti che passano nelle varie stringhe collegate. Esso si occupa quindi di misurare questi valori, provvedendo pure a digitalizzarli. I valori delle correnti misurati sono comunicati al BMS, al fine di elaborare l’algoritmo di monitoraggio dello 𝑆𝑂𝐶 ed effettuare decisioni di controllo.
1.3.
Algoritmi per BMS in letteratura
1.3.1. Algoritmi di calcolo del SOCEsistono diversi metodi in letteratura per stimare lo 𝑆𝑂𝐶 di una batteria. Le tecniche esistenti possono essere più o meno complesse a seconda del grado di affidabilità e accuratezza che si richiede. Per le batterie ZEBRA, dato il loro elevato valore e l’importanza del ruolo ricoperto, si desidera un’affidabilità elevata. Per garantire questa, il BMS deve conoscere più accuratamente possibile lo stato corrente della batteria, così da poter agire di conseguenza, se necessario.
Tra le tecniche più utilizzate per la stima dello 𝑆𝑂𝐶, si trova il Coulomb Counting, che consiste nell’integrare la corrente in uscita dalla batteria al fine di ricavare la quantità di carica all’interno della batteria ad un certo istante. [12] Considerando la corrente 𝐼𝐿 come entrante nella batteria
𝑆𝑂𝐶(𝑡) = 𝑆𝑂𝐶(0) + 1
𝑄𝑀𝐴𝑋∫ 𝐼𝐿(𝜏)𝑑𝜏 𝑡
0
(13)
Questa tecnica è molto semplice e diretta, ma ha gli svantaggi di richiedere la conoscenza dello 𝑆𝑂𝐶 iniziale e, nel caso in cui la misura di 𝐼𝐿 sia affetta da un offset costante 𝐼̃𝐿𝑂𝐹𝐹, l’integrazione porta a un errore che si cumula nel tempo. Si considera 𝑄𝑀𝐴𝑋 come costante nel tempo. 𝐼𝐿(𝜏) = 𝐼̅ (𝜏) + 𝐼𝐿 ̃𝐿 𝑂𝐹𝐹 (14) 𝑆𝑂𝐶(𝑡) = 𝑆𝑂𝐶(0) + ∫𝐼𝐿(𝜏) 𝑄𝑁 𝑑𝜏 𝑡 0 = 𝑆𝑂𝐶(0) + ∫ 𝐼̅ (𝜏)𝐿 𝑄𝑀𝐴𝑋𝑑𝜏 𝑡 0 + ∫𝐼̃𝐿𝑂𝐹𝐹 𝑄𝑀𝐴𝑋𝑑𝜏 𝑡 0 (15) 𝑆𝑂𝐶(𝑡) = 𝑆𝑂𝐶(0) + 𝑡𝐼̃𝐿𝑂𝐹𝐹 𝑄𝑀𝐴𝑋+ ∫ 𝐼̅ (𝜏)𝐿 𝑄𝑀𝐴𝑋𝑑𝜏 𝑡 0 (16)
Questo metodo da solo non è quindi molto efficace per stimare lo 𝑆𝑂𝐶.
Un’altra tecnica, il Discharge Test, consiste nel caricare e scaricare la batteria in maniera controllata, al fine di stimare lo stato di carica. Tale tecnica non è utilizzabile dal BMS desiderato in quanto essa richiede che il carico venga scollegato durante il test.[12]
L’Open Circuit Voltage è un’altra tecnica ancora, attraverso la quale è possibile risalire al valore dello 𝑆𝑂𝐶 dal valore della tensione a circuito aperto 𝑉𝑂𝐶, che tuttavia deve essere misurabile. Dato che è sempre presente una corrente 𝐼𝐿 non nulla se il carico è attaccato, non è mai possibile misurare direttamente 𝑉𝑂𝐶 ai capi della batteria e tale tecnica non è praticabile.[12]
Un altro metodo per calcolare il 𝑆𝑂𝐶 è basato sull’impiego di reti neurali artificiali composte da moltissimi nodi (neuroni) in comunicazione che lavorano in parallelo per gestire un numero enorme di dati e calcoli partendo dalle misure effettuate sulla batteria. Le reti neurali richiedono tuttavia una potenza computazionale e una memoria dati estremamente elevate e quindi costose.[12]
Un altro possibile approccio per stimare lo stato di carica di una o più celle della batteria, è di adottare un modello circuitale che simuli il comportamento della batteria, in base al suo stato e ai suoi ingressi e uscite, ed utilizzarlo per correggere il valore dello 𝑆𝑂𝐶 ottenuto con il Coulomb Counting. Ci sono altri tipi di modello oltre a quello circuitale, come il modello elettrochimico e il modello matematico, ma il circuitale risulta più intuitivo, semplice e veloce rispetto agli altri.[12]
1.3.2. Il modello circuitale di una batteria
Il modello circuitale con cui si può simulare il comportamento di una batteria è costituito da un generatore di tensione che eroga la tensione a circuito aperto 𝑉𝑂𝐶 con in serie una resistenza 𝑅0, che è la resistenza interna della batteria, e due maglie RC che simulano l’effetto di rilassamento della batteria. L’effetto di rilassamento della batteria consiste, quando questa è scollegata, nella convergenza della tensione ai suoi capi al valore della tensione 𝑉𝑂𝐶. Questo effetto si può attribuire a fenomeni di diffusione all’interno della batteria. [13] La tensione 𝑉𝑂𝐶 è in funzione dello stato di carica della batteria, che è schematizzato da un condensatore fittizio che si carica con la corrente 𝐼𝐿 che scorre sui terminali della batteria. In questa trattazione 𝐼𝐿 verrà sempre considerata come entrante nella batteria. Si ottiene il seguente schema [14]
Si possono scrivere le seguenti equazioni 𝐼𝐿 = 𝐼𝑅1+ 𝐼𝐶1 = 𝐼𝑅2+ 𝐼𝐶2 (18) 𝑑𝑆𝑂𝐶 𝑑𝑡 = 𝐼𝐿 𝑄𝑀𝐴𝑋 (19) 𝑉𝐿= 𝑉𝑂𝐶+ 𝑉𝑅0+ 𝑉𝑅𝐶1+ 𝑉𝑅𝐶2 (20) Da cui si ricava 𝑑𝑉𝑅𝐶1 𝑑𝑡 = − 𝑉𝑅𝐶1 𝑅1𝐶1+ 𝐼𝐿 𝐶1 (21) 𝑑𝑉𝑅𝐶2 𝑑𝑡 = − 𝑉𝑅𝐶2 𝑅2𝐶2+ 𝐼𝐿 𝐶2 (22) 𝑉𝐿 = 𝑉𝑂𝐶+ 𝑅0𝐼𝐿+ 𝑉𝑅𝐶1+ 𝑉𝑅𝐶2 (23) Definendo [13] 𝑥̅ = ( 𝑆𝑂𝐶 𝑉𝑅𝐶1 𝑉𝑅𝐶2 ) 𝑢 = 𝐼𝐿 𝑦 = 𝑉𝐿 Con 𝐴̿ = ( 0 0 0 0 −1 𝑅⁄ 1𝐶1 0 0 0 −1 𝑅⁄ 2𝐶2 ) 𝐵̅ = ( 1 𝑄⁄ 𝑀𝐴𝑋 1 𝐶⁄ 1 1 𝐶⁄ 2 ) 𝐶̅ = (𝑎𝑖 1 1) 𝐷 = 𝑅0 Si ottiene 𝑑𝑥̅ 𝑑𝑡 = 𝐴̿𝑥̅ + 𝐵̅𝐼𝐿 (24) 𝑦 = 𝐶̅𝑥̅ + 𝐷𝑢 + 𝑏𝑖 (25) 𝑑𝑥̅ 𝑑𝑡 = 𝐴̿𝑥̅ + 𝐵̅𝐼𝐿 (26)
I parametri interni del sistema, ovvero 𝑅0, 𝑅1, 𝐶1, 𝑅2, 𝐶2 sono sconosciuti a priori, ed è necessario effettuarne continuamente una stima in modo da ricavare il comportamento della batteria. I metodi per la stima dei parametri online si suddividono in quelli basati sul Kalman Filter e quelli basati sui minimi quadrati. I metodi basati sul filtro di Kalman sono pesanti dal punto di vista computazionale e commettono grossi errori quando l’errore di misura e l’errore di processo non sono correlati. I metodi sui minimi quadrati invece sono meno esigenti dal punto di vista computazionale e hanno una buona accuratezza.[12]
1.3.3. Stima del numero di celle rotte
Poiché sono disponibili solo due terminali da cui si può misurare la tensione (rispetto al riferimento che si trova sul polo negativo), il BMS deve preoccuparsi di stimare indirettamente il numero di celle funzionanti per ogni modulo. Date 𝑁 celle in serie all’interno di un singolo modulo si ha
𝑉𝑂𝐶 𝑡𝑜𝑡 = ∑ 𝑉𝑂𝐶𝑖 𝑁
𝑖=1
(27)
Dove 𝑉𝑂𝐶𝑡𝑜𝑡 indica la tensione a circuito aperto di tutto il modulo della batteria e 𝑉𝑂𝐶𝑖 quella della cella 𝑖 − 𝑒𝑠𝑖𝑚𝑎 all’interno del modulo.
Poiché in serie, le celle sono tutte attraversate dalla stessa corrente. Idealmente ogni cella si scarica alla stessa velocità delle altre, ma le differenze di fabbricazione, la presenza di difetti individuali o il differente invecchiamento, possono far sì che le capacità siano diverse. Se due o più celle hanno capacità diversa e sono attraversate dalla stessa corrente, lo 𝑆𝑂𝐶 di queste varia a velocità differenti. Un valore dello 𝑆𝑂𝐶 diverso si traduce in un valore di 𝑉𝑂𝐶𝑖 diverso.
𝑆𝑂𝐶𝑖 ≠ 𝑆𝑂𝐶𝑗 ⟺ 𝑉𝑂𝐶𝑖(𝑆𝑂𝐶𝑖) ≠ 𝑉𝑂𝐶𝑗(𝑆𝑂𝐶𝑗) (28) La presenza di celle con capacità diversa all’interno della stessa serie è alquanto problematica poiché le celle con capacità maggiore non riescono mai a caricarsi totalmente e non sono sfruttate al massimo. In una serie, la cella con capacità minima limita la carica di tutte le celle della serie, in quanto raggiunge il 100% dello 𝑆𝑂𝐶 mentre le altre non sono cariche completamente. Se si continua a far scorrere corrente, poiché tutte le celle vengono percorse, caricare al 100% la cella a capacità maggiore significa sovraccaricare inevitabilmente tutte le altre, danneggiandole e riducendone ulteriormente la capacità e la durabilità. Esistono dei metodi per ridistribuire la carica tra celle appartenenti alla stessa serie, in modo da permettere a tutte le celle di raggiungere il 100% di 𝑆𝑂𝐶 pur con capacità diverse. Per questo scopo, esistono metodi passivi, più semplici ma meno efficienti, e metodi attivi, più efficienti ma anche più complessi.[1]
Figura 12 - Bilanciamento attivo [15]
Nel BMS proposto, poiché non è possibile accedere agli estremi di ogni singola cella della batteria, non si è in grado di bilanciare ogni cella della batteria, ma è possibile equalizzare la carica tra i due gruppi di dieci celle di cui sono disponibili i terminali.
Se si considera una situazione in cui tutte le celle sono abbastanza simili tra loro, si può ipotizzare che le loro capacità siano simili, e che quindi le celle abbiano tutte lo stesso 𝑆𝑂𝐶 e la stessa 𝑉𝑂𝐶 𝑆𝑂𝐶𝑖(𝑡) ≅ 𝑆𝑂𝐶𝑗 (𝑡)∀𝑖, 𝑗 ≤ 𝑁𝑓(𝑡) (29) 𝑉𝑂𝐶𝑖(𝑡, 𝑆𝑂𝐶𝑖) ≅ 𝑉𝑂𝐶𝑗(𝑡, 𝑆𝑂𝐶𝑗)∀𝑖, 𝑗 ≤ 𝑁𝑓(𝑡) (30) 𝑉𝑂𝐶𝑡𝑜𝑡(𝑡) ≅ 𝑁𝑓(𝑡)𝑉𝑂𝐶𝑖(𝑡) (31) 𝑉𝑂𝐶𝑖(𝑡) ≅𝑉𝑂𝐶𝑡𝑜𝑡(𝑡) 𝑁𝑓(𝑡) (32)
𝑁𝑓 indica il numero di celle ancora funzionanti, e varia nel tempo. È possibile determinare se ad un certo istante si sono rotte una o più celle se si nota uno scostamento significativo tra la tensione appena misurata da quella precedente. La rottura di una cella ZEBRA causa infatti un cortocircuito, ovvero l’annullamento della differenza di potenziale ai capi della cella rotta. Si consideri la tensione 𝑉𝐿 ai capi delle 𝑁 celle in serie, e la corrente 𝐼𝐿, negli istanti di campionamento 𝑧 e 𝑧 + 1 distanti temporalmente ∆𝑇 , ossia il periodo di campionamento.
𝑉𝐿(𝑧) = 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) + 𝑁𝑅0𝐼𝐿(𝑧) + 𝑁𝑉𝑅𝐶1(𝑧) + 𝑁𝑉𝑅𝐶2(𝑧) (33) 𝑉𝐿(𝑧 + 1) = 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1) + 𝑁𝑅0𝐼𝐿(𝑧 + 1) + 𝑁𝑉𝑅𝐶1(𝑧 + 1) + 𝑁𝑉𝑅𝐶2(𝑧 + 1) (34)
𝑉𝑅𝐶1(𝑧 + 1) ≅ 𝑉𝑅𝐶1(𝑧) (35)
𝑉𝑅𝐶2(𝑧 + 1) ≅ 𝑉𝑅𝐶2(𝑧) (36)
In tal modo, si può ricavare la variazione della tensione a circuito aperto
∆𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) − 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1) ≅ 𝑉𝐿(𝑧) − 𝑉𝐿(𝑧 + 1) − 𝑁𝑅0[𝐼𝐿(𝑧) − 𝐼𝐿(𝑧 + 1)] (37) Si definisce per comodità
∆𝑉𝑂𝐶𝑡𝑜𝑡= 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) − 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1) (38) ∆𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1, 𝑧) ≅ 𝑉𝐿(𝑧) − 𝑉𝐿(𝑧 + 1) − 𝑁𝑅0[𝐼𝐿(𝑧) − 𝐼𝐿(𝑧 + 1)] (39) È possibile calcolare ∆𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1, 𝑧) perché 𝑉𝐿(𝑧), 𝑉𝐿(𝑧 + 1), 𝐼𝐿(𝑧), 𝐼𝐿(𝑧 + 1) sono misurate.
Ipotizzando che in caso di rottura la cella si cortocircuiti istantaneamente, nel caso in cui si rompa una singola cella tra i due istanti, ovvero per 𝑁𝑓(𝑧 + 1) = 𝑁𝑓(𝑧) − 1, si suppone
𝑉𝑂𝐶 𝑡𝑜𝑡(𝑧 + 1) ≅𝑁𝑓(𝑧 + 1) 𝑁𝑓(𝑧) 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) = 𝑁𝑓(𝑧) − 1 𝑁𝑓(𝑧) 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) (40) 𝑉𝑂𝐶 𝑡𝑜𝑡(𝑧) − 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1) = ∆𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1, 𝑧) ≅𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) 𝑁𝑓(𝑧) (41)
Si può quindi intuire che una cella si è rotta durante la scarica qualora ad un certo istante 𝑧 + 1 si abbia 𝑀𝑒𝑟𝑟(𝑧) < ∆𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1, 𝑧) (42) Con 𝑀𝑒𝑟𝑟(𝑧) <𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) 𝑁𝑓(𝑧) (43)
𝑀𝑒𝑟𝑟 rappresenta il margine di tolleranza entro cui viene stabilito che nessuna cella si è rotta, ed è calcolato in base al numero di celle ancora funzionanti e la tensione OCV. 𝑀𝑒𝑟𝑟 è presente poiché occorre tener conto della variazione 𝑉𝑂𝐶 𝑡𝑜𝑡(𝑧) dovuta alla normale carica o scarica della batteria. Occorre infatti impedire che una variazione di 𝑉𝑂𝐶𝑡𝑜𝑡 dovuta al cambiamento dello 𝑆𝑂𝐶 sia confusa per la rottura di una cella. Con questo metodo si può infatti rilevare la falsa rottura di una cella qualora la tensione 𝑉𝑂𝐶𝑡𝑜𝑡 crolli bruscamente senza che si rompano celle.
Quando lo 𝑆𝑂𝐶 è basso, la OCV di una cella cala rapidamente, e con essa la tensione ai terminali della batteria.[9] Far lavorare la batteria a basso 𝑆𝑂𝐶, tuttavia, è sconsigliabile per motivi di sicurezza (occorre tenersi lontani da livelli bassi di 𝑆𝑂𝐶 per evitare di rovinare la batteria), quindi si può evitare di operare in condizioni per cui il metodo fallisce lavorando sempre con una tensione 𝑉𝑂𝐶𝑡𝑜𝑡 che varia lentamente.
𝑀𝑒𝑟𝑟 dovrebbe essere calcolato in modo da essere maggiore di qualsiasi fluttuazione istantanea della OCV dovuta alla normale carica o scarica della batteria.
𝑀𝑒𝑟𝑟(𝑧) > |𝑉𝑂𝐶𝑡𝑜𝑡(𝑧) − 𝑉𝑂𝐶𝑡𝑜𝑡(𝑧 + 1)|𝑀𝐴𝑋, 𝑁
𝑓(𝑧+1)=𝑁𝑓(𝑧)
(44) Si noti che, mentre 𝑁𝑓(𝑧) viene aggiornato a livello software in tempo reale, in caso di rilevazione di rottura di una cella, 𝑁 è costante ed è il numero di celle contenute nel modulo. La componente resistiva di ogni cella è infatti persistente, e rimane anche dopo che la cella si è rotta.
Si osserva che nello studio si è assunto che il sistema di misura della tensione sia in grado di seguire la dinamica della variazione di tensione.
1.4.
Architetture di BMS in letteratura
Poiché una batteria solitamente non è composta da una singola cella ma da tanti moduli contenenti molteplici celle, sono presenti in letteratura più soluzioni per organizzare la gestione dei moduli (o celle).
Le architetture di Battery Management System (BMS) presenti in letteratura si distinguono in [16]:
• Architetture monolitiche • Architetture distribuite • Architetture semi-distribuite
Le architetture monolitiche concentrano il BMS in un unico blocco che svolge tutte le funzioni previste, mentre le architetture distribuite e semi-distribuite organizzano gerarchicamente i blocchi del BMS secondo la struttura Master-Slave. Essa consiste nella presenza di un circuito chiamato Master con capacità decisionale, e di un circuito denominato Slave che risponde ai comandi del Master. Il Master in un BMS è rappresentato dall’unità di elaborazione che valuta e regola il funzionamento della batteria comunicando con molti Slaves. Lo Slave in un BMS, invece, è la parte di circuito che acquisisce dati (tensioni, correnti, temperature…) e interviene nella regolazione delle funzioni di un singolo modulo della batteria, sotto gli ordini del Master.
Seguendo le definizioni descritte in letteratura [17], gli Slave sono Module Management Unit (MMU), poiché si occupano di gestire un singolo modulo associato, mentre il Master porta il nome di Pack Management Unit (PMU), dal momento che gestisce un intero gruppo di moduli, ovvero la batteria (o pacco batteria). Il BMS comprende il PMU e tutti i MMU e può essere diviso in più strati (layers). Lo strato più basso comprende i Cell Monitoring Unit (CMU) e si occupa di monitorare le singole celle. Tale strato è incorporato in quello intermedio, dove si trovano i MMU, che gestiscono tutto il modulo di CMU. I vari MMU sono infine gestiti dal PMU, che si trova sullo strato più alto.
1.4.1. Architetture monolitiche
Le architetture monolitiche sono più semplici ed economiche ma sono limitate dal numero di celle monitorabili. In queste architetture è presente un solo microcontrollore che si occupa di monitorare e controllare ogni cella del sistema. Il circuito di acquisizione, tuttavia, fissa dei limiti sul numero di celle supervisionabili, sia per l’interfaccia, sia per i Maximum Ratings sul livello di tensione a modo comune. Un gran numero di celle, infatti, implica la presenza di moltissimi collegamenti e di un livello di tensione a modo comune elevato sui capi delle celle in prossimità del polo positivo della batteria. Se tale numero è troppo grande, il 𝐵𝑀𝑆 può non disporre di sufficienti ingressi e può non essere compatibile con le tensioni da acquisire. Le architetture monolitiche sono, difatti, poco flessibili e difficilmente scalabili. [16]
Un tipo di architettura monolitica che si può trovare in letteratura è quello basato sul multiplexing degli ingressi. Essendo presente un unico circuito per monitorare tutti i moduli è possibile condurre i segnali di ogni cella al BMS impiegando dei multiplexers per regolare la selezione delle celle de monitorare.
Figura 14 - Multiplexing di celle condotte a un Amplificatore da Strumentazione (INA), posto in ingresso al BMS [18]
Tale architettura è molto economica e poco ingombrante ma dispone solo di un’unica unità di elaborazione che ha il ruolo di monitorare e controllare tutte le celle del sistema. Nel caso in cui il numero di celle sia elevato (o variabile), siano presenti molti segnali per ogni modulo o sia richiesta flessibilità, altri tipi di architetture sono preferibili.
1.4.2. Architetture distribuite
Le architetture distribuite sono caratterizzate da un elevato grado di modularità che garantisce una grande flessibilità, al costo di un elevato numero di componenti, e possiedono spesso una struttura Master-Slave. In una architettura distribuita, il dispositivo Slave di solito è integrato con il modulo della batteria e la maniera in cui il Master è connesso agli Slaves può essere di varia topologia. [19]
• Stella: tutti gli Slaves sono collegati al master direttamente. Master e Slave comunicano direttamente.
• BUS: il Master e gli Slaves sono tutti collegati tramite un BUS a comune. La comunicazione richiede l’utilizzo di indirizzi poiché ogni circuito condivide gli stessi collegamenti.
• Anello (Daisy-Chain): gli Slaves sono connessi in cascata e il master è connesso all’ultimo Slave della serie. La comunicazione è ottenuta con il passaggio dei dati da Slave a Slave lungo la cascata, fino al Master.
• Ibrida: combinazione delle altre topologie menzionate. Consiste nella presenza di cascate di Slaves multiple collegate al Master in parallelo tramite un BUS o un collegamento diretto.
Master e Slave parlano tra loro con un protocollo di comunicazione che, a seconda della tipologia, può essere di vario tipo (SPI, I2C, CAN, RS-232, Ethernet…) per scambiarsi comandi e informazioni.
Un esempio di architettura distribuita Master-Slave con BUS condiviso basato sul protocollo Control Area Network (CAN) è il seguente
1.4.3. Architetture semi-distribuite
Le architetture Semi-Distribuite rappresentano compromesso tra le architetture monolitiche, rispetto a cui sono più flessibili, e le architetture distribuite, rispetto a cui impiegano un numero minore di componenti. Esse presentano generalmente la stessa struttura Master-Slave (in una delle sue topologie) delle architetture distribuite ma non integrano gli Slaves assieme ai moduli della batteria. [16]
2. Soluzione proposta di BMS
Per il sistema è stata scelta un’architettura distribuita con gerarchia a due livelli di tipo Master-Slave, poiché si preferisce una soluzione flessibile rispetto al numero di moduli della batteria. Inoltre, il numero di segnali da gestire, comprendendo riscaldatore, sensori di temperature e terminali elettrici, è elevato per un’architettura monolitica.
2.1.
Descrizione generale
Il BMS che si vuole proporre è costituito da un blocco Master in comunicazione con cinque blocchi Slave e il convertitore DC-DC. Ogni BMS Slave è quindi associato a un modulo di celle. Ogni Slave ha il compito di misurare la tensione di mezza stringa, la tensione sul polo positivo e la temperatura delle celle. In più, ogni Slave si occupa di attivare o disattivare il riscaldatore, in modo da mantenere una temperatura adeguata al funzionamento della batteria. La misura della corrente non è fatta dallo Slave poiché già effettuata dal convertitore DC-DC, che per funzionare richiede la conoscenza di tale dato. Visto che il BMS Master e il convertitore sono in comunicazione, l’informazione sulla corrente può essere facilmente condivisa, risparmiando allo Slave il compito di effettuare a sua volta la misura. All’interno del BMS Slave, può essere inoltre incluso un sistema per bilanciare la tensione tra i due gruppi di celle.
Il BMS Master si occupa di controllare tutti gli interruttori (tra cui il teleruttore), di stimare il numero di celle ancora funzionanti, e di computare l’algoritmo con cui si determinano i parametri interni del modulo di celle, 𝑆𝑂𝐶 e 𝑆𝑂𝐻 . Gli Slave possono comunicare continuamente i dati acquisiti al Master, così che quest’ultimo possa usarli nella computazione del suo algoritmo per ogni modulo. Il blocco Master può decidere, intervenendo con degli interruttori, se staccare per motivi di sicurezza alcuni moduli di celle oppure no. Ciò può essere necessario qualora siano presenti dei moduli in cui si è rotto un numero eccessivo di celle o sia presente una temperatura inadeguata.
Quando le condizioni di funzionamento sono sicure, il BMS deve far sì che la batteria alimenti il carico se la rete elettrica è inattiva (o guasta).
Il BMS si occupa pure di regolare la corrente che scorre in ciascun modulo controllando un convertitore DC-DC. La regolazione delle correnti è attuata in modo sia da equalizzare il più possibile lo 𝑆𝑂𝐶 dei vari moduli, sia da ricaricare (o scaricare) le stringhe evitando una corrente eccessiva. È desiderabile che il BMS ricarichi la batteria con la corrente maggiore possibile, impiegando minor tempo, senza che questa si sovraccarichi.
2.2.
Architettura del sistema
Per realizzare l’architettura di tipo Master-Slave decisa, sono stati suggeriti due possibili approcci: uno mediante l’uso di una scheda FPGA ed uno con l’impiego di microcontrollori. Nel primo approccio si sintetizza il Master ed i blocchi d’elaborazione dello Slave con le risorse logiche presenti su di una scheda FPGA. In questo modo si ha un BMS più compatto ma meno modulare, in quanto il blocco delle Slave è costituito sia da una frazione della scheda FPGA, su cui si trova lo Slave Processing Block, che dai componenti che si occupano di effettuare le misure, ovvero lo Slave Measure Block (SMB). Il blocco Slave in questo caso è più difficile da distinguere e non è separabile dal blocco Master. Questa soluzione si può realizzare impiegando solamente una scheda FPGA collegata ai vari chip di misura.
Nel secondo tipo di architettura, Master e Slave sono separati e indipendenti tra loro. Il blocco dello Slave impiega un microcontrollore come unità di elaborazione (SPB) e per il Master si usa un diverso microcontrollore. Con questa architettura si può separare fisicamente il Master dagli Slaves.
Figura 19 - Architettura del secondo tipo
La computazione dell’algoritmo di stima del 𝑆𝑂𝐶 o del 𝑆𝑂𝐻 può essere affidata al Master o allo Slave in entrambe le architetture, ma per mantenere il circuito dello Slave più semplice ed economico possibile, è stato deciso di far eseguire l’algoritmo solo sul Master. In questo modo si possono utilizzare microcontrollori estremamente economici per gli Slave, poiché gli unici compiti che hanno sono di leggere e trasmettere con vari protocolli i dati in forma digitale. Il Master deve essere invece un microcontrollore con capacità di calcolo superiori in quanto gli algoritmi che deve eseguire sono di natura complessa. Per motivi di praticità, si è considerata più conveniente l’architettura del secondo tipo, così da
2.3.
Il BMS Master (PMU)
Il BMS Master è un blocco interamente digitale che si occupa di ricevere, elaborare ed inviare dati sulla batteria, nonché di azionare interruttori e controllare il convertitore DC-DC. Il Master comunica continuamente con i vari blocchi Slave, che gli forniscono dati sulla tensione e sulla temperatura dei vari moduli della batteria. Il Master può anche impartire comandi agli Slave, può controllare eventuali interruttori, e può comunicare con il convertitore DC-DC.
Il BMS Master deve essere in grado di gestire comunicazioni con molteplici Slave attraverso un qualche protocollo di comunicazione. La scelta del suddetto protocollo deve tenere conto del numero di informazioni che occorre trasmettere nel caso in cui ci siano molti Slaves. Ogni Slave infatti fornisce, ad ogni campionamento, una certa quantità di dati, tra cui la tensione, la temperatura e le informazioni di stato (bit di fault, ecc.).
Figura 20 - Schema del BMS Master
Il Master è a sua volta connesso ad una unità di elaborazione remota, tramite cui un utente può essere in grado di monitorare di persona lo stato della batteria e regolarne le impostazioni. Il BMS Master è l’unità incaricata di processare gli algoritmi di stima del 𝑆𝑂𝐶 e del 𝑆𝑂𝐻, partendo dalle informazioni su tensione, corrente (letta dal convertitore DC-DC), ed eventualmente, temperatura. Il BMS Master detiene anche il compito di mantenere la batteria nella sua zona di funzionamento sicuro, ed è in grado di connettere o disconnettere in qualsiasi momento uno o più moduli della batteria se ci sono problemi o se la temperatura è fuori dal range previsto.
2.4.
Il BMS Slave (MMU)
Il BMS Slave è il circuito che si occupa di monitorare e gestire il riscaldamento di un singolo modulo della batteria. Esso è dotato di dispositivi per monitorare le grandezze d’interesse, ovvero tensione e temperatura, e di un blocco d’elaborazione per controllare il riscaldatore e trasmettere i dati ottenuti al BMS Master.
2.4.1. Specifiche del BMS Slave
La batteria ZEBRA, a cui è dedicato il BMS progettato, possiede cinque moduli paralleli di venti celle collegate in serie. Ogni cella ha una tensione nominale di 2,6 V, a piena carica può raggiungere una tensione massima di 𝑉𝑐𝑒𝑙𝑙𝑀𝐴𝑋= 2,67 V, mentre la tensione minima è 𝑉𝑐𝑒𝑙𝑙𝑀𝐼𝑁 = 1,17 V[20]. Per progettare il BMS Slave sono stati scelti componenti al fine di soddisfare i seguenti requisiti
• Possibilità di misurare qualsiasi tensione in uscita dalla batteria
• Frequenze di campionamento sufficienti da seguire le dinamiche della batteria • Disporre di una risoluzione di tensione sufficiente da rilevare la rottura di una cella • Limitare la corrente assorbita dal circuito di misura
• Possibilità di misurare qualsiasi temperatura a cui si trova la batteria
• Disporre di una risoluzione di temperatura sufficiente a controllare il riscaldatore • Rendere idoneo l’intero circuito a lavorare a temperature ambiente elevate • Limitare il costo economico del circuito di misura
Da queste direttive, e dai dati sulla batteria ZEBRA, si può compilare la seguente tabella
Grandezza Simbolo Minimo Massimo Temperatura ambiente (°C) 𝑇𝑎 −40 100
Temperatura operativa della batteria (°C) 𝑇𝑐 250 350
Temperatura del sensore (°C) 𝑇𝑠 −70 400
Tensione misurabile della Batteria (V) 𝑉𝐻 23,4 53,4
Tensione d’Alimentazione Analogica (V) 𝑉𝐶𝐶 3 3,6
Tensione d’Alimentazione Digitale (V) 𝑉𝐷𝐷 3 3,6
Massima corrente assorbita (μA) 𝐼∗ 5
Risoluzione sulla tensione (mV) ∆𝑉𝑟𝑖𝑠 2
Accuratezza sulla tensione (mV) ∆𝑉 200 @23 °C 250 @60 °C Risoluzione sulla temperatura (°C) ∆𝑇𝑟𝑖𝑠 0,25