Come misurare piccole quantità appuntite di corrente?


13

Supponiamo che io abbia un microcontrollore con alcune periferiche collegate e vorrei essere in grado di fare una stima ragionevole della durata della batteria. Poiché a volte potrei farlo dormire e varie periferiche si troverebbero in stati diversi, il mio consumo corrente potrebbe variare tra uA (in modalità di sospensione) e circa 10 secondi di mA (quando sveglio).

Ora, potrei collegare una batteria e lasciarla scaricare e misurare il tempo, ma ciò rende sia il tempo che la fatica (e forse costoso) il confronto di approcci diversi, sia nel firmware che nell'hardware.

Potrei mettere un multimetro in serie, ma anche se ha la registrazione dei dati, questo è ad un certo intervallo e dovrei interpolare e potrei perdere completamente le variazioni più piccole dell'intervallo. (Più la tensione di carico e tutto il resto.)

Se il mio dispositivo dorme abbastanza , la corrente di risveglio diventa in qualche modo trascurabile, ma ciò potrebbe richiedere un rapporto di 1000: 1 tra il tempo di sonno e il tempo di veglia, quindi non è probabile su tutti i progetti.

Esiste un dispositivo che integra la corrente nel tempo in quantità molto ridotte (ad esempio, non il misuratore di uscita Kill-a-watt)? Fondamentalmente sono interessato a sapere che "nell'ultima ora sono stati consumati 20 mAh". Punti bonus se riesco a ottenere misurazioni di corrente di precisione in qualsiasi momento, per confrontare il consumo di corrente sveglio e addormentato.


3
@ Sparky256 di cosa stai parlando? Una frequenza di campionamento di 10 kHz sarebbe molto probabilmente sufficiente qui, supponendo che ci siano abbastanza condensatori di disaccoppiamento coinvolti. Diciamo che stiamo usando 16 bit per campione, il che fa solo 20 kB al secondo. Qualsiasi moderno micrococontrollore a 16 o 32 bit può scriverlo su una scheda SD senza troppi problemi e il mio PC può memorizzarne anni in RAM, su SSD o su disco rigido. Non sono gli anni '60! Anche 1MS / s di Vince è ... ridicolo per chi lavora con una radio definita da software.
Marcus Müller,

5
@ Sparky256, ho un sistema NI Labview a 16 canali in grado di registrare 16 canali di letture DAC a 16 bit a 200 ksps fino a quando il disco rigido da 1 TB è pieno. Si tratta di quanti soldi vuoi pagare.
Vince Patron,

3
@ Sparky256 certamente, le schede DAQ di marca sono costose. A tale scopo, farebbe un dispositivo molto semplice - potenzialmente anche una scheda audio (con cappucci di accoppiamento a ponte) con un riferimento di tensione sull'altro canale stereo.
Marcus Müller,

4
Mi scusi, ma l'integrazione non ha bisogno di memorizzare i campioni di corrente digitalizzati, è sufficiente salvare l'integrato cumulativo - una somma. 1MSa / secondo o 1Sa / secondo, un secondo di integrazione o una settimana, sono sufficienti pochi byte di memoria.
user287001

6
Non ho visto nessuno menzionare segnalini coulomb, che sembrano una cattiva idea in questa situazione
BeB00

Risposte:


13

Bene, ci sono sicuramente circuiti integrati di rilevamento della corrente specifici. Nel tuo caso, "semplicemente" sceglierei qualcosa del tipo:

  • Utilizzare una piccola serie di resistori (ad es. 0,5 Ω) tra la batteria e l'elettronica.
  • Amplifica la tensione attraverso quella resistenza con un amplificatore di strumentazione
  • Registrare quella tensione, ad es. Utilizzando un ADC

I problemi:

  1. basse correnti · bassa resistenza = bassa tensione: la precisione della misurazione sarà negativa a causa del rumore
  2. poiché i microcontrollori si svegliano molto velocemente e vanno a dormire altrettanto velocemente, la frequenza di campionamento ADC deve necessariamente essere molto alta.

Ma, in linea di principio, funziona ed è certamente fattibile (sebbene la progettazione di un amplificatore di strumentazione stabile, silenzioso e ad alta amplificazione potrebbe non essere banale; ma: ci sono IC instr.amp esistenti che lo rendono molto più semplice).

Fortunatamente, il tuo problema è piuttosto comune. Quindi: molti, incluso Texas Instruments, dispongono di un portafoglio di amplificatori di rilevamento corrente, alcuni dei quali integrano sia la resistenza shunt di cui sopra che un'interfaccia digitale. Vedi l'elenco dei prodotti TI .

In effetti, questi circuiti integrati sono in grado di misurare la corrente e la tensione di alimentazione allo stesso tempo - ed è grandioso misurare effettivamente la potenza assorbita, una misura molto più rilevante per la durata della batteria rispetto alla corrente assorbita grezza, se ci sono elementi non lineari (ad esempio , MCU).

L'INA233, ad esempio, può essere collegato a uno shunt esterno (diciamo, 0,3 Ω) e ha una risoluzione di 2,5 µV per passo ADC. Ciò significa che un singolo passaggio ADC è I = U / R = 2,5 µV / 0,3 Ω = 8,333 µA in corrente.

Penso che il dispositivo abbia anche una modalità di campionamento e calcolo della media automatica, in modo da poter ottenere facilmente buone approssimazioni anche con carichi che cambiano rapidamente.

Inoltre, come ho appena scoperto: la cosa ha un livello di "allarme", in modo da poter riattivare il sistema di misurazione ogni volta che la corrente supera una soglia configurabile. Bello! In questo modo, devi solo campionare di tanto in tanto.


La necessità di un'alta frequenza di campionamento potrebbe essere affrontata alternativamente con un integratore analogico che viene campionato e poi resettato ad una velocità inferiore?
Phil Frost,

Si noti che nessun fornitore di batterie ha le stesse perdite, capacità ed effetto doppio strato o rapporti ESR. Quindi prevedere. La capacità di Ah rispetto alla scarica attuale è impossibile da generalizzare. Deve essere testato a meno che non sia specificato con precisione dal foglio dati.
Tony Stewart Sunnyskyguy EE75

@PhilFrost Mi piace quell'idea, ma sono preoccupato per le inesattezze anche integrate! Ma sono abbastanza sicuro che questo, almeno in una certa misura, sia fattibile!
Marcus Müller,

7

Esiste un dispositivo che integra la corrente nel tempo in quantità molto ridotte

Sì, ce ne sono diversi; la più antica è una cella galvanica (la massa di metallo placcato rappresenta le amp-ore) brevetto Edison e le celle di elettrolisi (accumulo di gas in una provetta capillare) sono state utilizzate più di recente. Questi sono esattamente equivalenti all'analisi della batteria dopo un lungo periodo di utilizzo.

Oggi usa la digitalizzazione.

Se si prevedono fluttuazioni più veloci di una frequenza di campionamento digitale, è risolvibile. È possibile disporre un percorso di corrente a due rami, con conduttanza ad alta frequenza (un condensatore) che bypassa il sensore di corrente e una conduttanza parallela a bassa frequenza (induttore ed elemento di rilevamento della corrente).

Se ti aspetti una piccola corrente di lunga durata (che sconfigge la granularità del campionamento digitale), anche questo è risolvibile. Aggiungi una piccola sorgente DC-plus-white-noise al segnale di corrente DC, e una quantità di corrente in bit frazionari causerà (statisticamente) un corretto accumulo digitale su grandi tempi. ADC con retinatura fig. 5a Tuttavia, la parte CC del segnale aggiunto deve essere calibrata. Le fonti di rumore pseudocasuali sono utili per questo tipo di "dithering".

La digitalizzazione e l'accumulo in un registro (proprio come il Kill-a-watt) possono funzionare con componenti facilmente disponibili e alcuni stratagemmi riducono il potenziale di discrepanza.


7

Veloce e sporco: SUPERCAPACITORS! (Cerca anche ultracapacitor.) Alimenteranno il tuo sistema e visualizzeranno la corrente integrata come un abbassamento di tensione nel tempo.

Quale processore Vdd e / o volt di batteria stavi pensando? Naturalmente un condensatore integra naturalmente la corrente e, se si utilizza un supercondensatore a pochi farads anziché un alimentatore a batteria, è possibile misurare la tensione che cade nel tempo e determinare con precisione i microamplificatori medi a lungo termine.

Se il tuo progetto ha bisogno di un Vdd costante, scegli un valore di supercap sufficientemente grande che la tensione diminuisca solo del XX percento mentre il test è in esecuzione. A seconda della corrente media, potresti riuscire a cavartela con un condensatore da pochi dollari. Ad esempio, 4.7 farad a pochi volt è un supercap comune nei cataloghi surplus. (Sparkfun ha una decina di farad e le dimensioni massime sono i boostcap elettronici 3000 Gold Farad a 2,7 V.) Impilarli in serie per ottenere un limite di tensione più elevato.


3
Le supercar hanno una corrente di dispersione significativa che cambia con tensione e temperatura, di cui l'OP dovrà tenere conto.
Dmitry Grigoryev,

2
@DmitryGrigoryev Ottimo punto. Eseguire il test solo con condensatore nudo, calcolare la corrente di dispersione, quindi eseguire nuovamente il test con la scheda CPU collegata. Non dimenticare: veloce e sporco, non complicato e di alta precisione. Se ha bisogno di conoscere la risposta entro l'1%, vai agli integratori attivi ben progettati, ecc.
wbeaty

Esegui il test più volte , alcune con e alcune senza la scheda CPU allegata, in ordine casuale; quindi calcola la differenza media e il suo intervallo di confidenza. / statistico
nekomatic

Quindi meta-analisi di più progetti di CPU hobbisti, per rilevare se qualche gruppo stava creando pregiudizi scartando i valori anomali.
wbeaty

4

Se vi aspettate un ampio intervallo dinamico, un'opzione potrebbe essere quella di utilizzare uno specchio di corrente fatto scorrere da un amplificatore di trans-impedenza logaritmico come il LOG114 . Puoi ottenere più di 6 decenni di autonomia con un circuito ben sintonizzato. L'integrazione può essere regolata con un condensatore dopo il mirror corrente.

Questa è una soluzione più complessa e la risoluzione ad alta corrente, quando la carica della batteria viene modificata in modo significativo, è inferiore. La precisione rispetto al rilevamento diretto e proporzionale dipenderà dalla frazione di tempo che trascorri a bassa corrente.

Inoltre, puoi semplicemente andare alla bruta forza con la risoluzione ADC. 24 bit o 32 bit potrebbero coprire 4 decenni senza problemi.


3

Per le tue misurazioni approssimative (forse +/- 10% o 20%).

Basta mettere un resistore in serie con la potenza e parallelizzarlo con un condensatore per produrre una costante di tempo sufficientemente grande da non perdere dati significativi nella frequenza di campionamento. Ad esempio, se si esegue il campionamento a 100Hz, è possibile scegliere una costante di tempo di 0,2 secondi. Probabilmente sarà un condensatore elettrolitico e un tipo a bassa impedenza è il migliore, e puoi metterlo in parallelo con ceramica 1uF-10uF se gli impulsi sono più brevi di circa 10us. Il valore non è critico, deve solo essere abbastanza alto. Scegli il resistore in modo che non cada troppo voltaggio in modo da influire sul funzionamento ma produce abbastanza segnale da poter ottenere una misura ragionevole.

Non è necessario analizzare i tempi di salita e di discesa degli amplificatori o di qualsiasi altra roba: il resistore e il condensatore faranno il lavoro.

Tieni presente che l'operazione che dipende dal fatto che la batteria sia una fonte a bassa impedenza per gli impulsi "spikey" fallirà prima che la batteria sia effettivamente esaurita, il parallelismo della batteria con un condensatore può (a volte notevolmente) prolungare la durata della resistenza interna della batteria aumenta man mano che si esaurisce.


inoltre, tieni presente che se i tuoi tempi di accensione sono brevi e la corrente di standby è bassa, sarà una buona idea misurare la corrente senza il circuito collegato, solo per azzerare la perdita del cappuccio elettrolitico - I ' ho calcolato approssimativamente i modelli MCU di controller sporadicamente attivi e la perdita attraverso il tappo ceramico da 100 nF era superiore al consumo medio di energia dell'MCU.
Marcus Müller,

Ω

Sì, sono passati un paio d'anni. Ma, forse, è stato danneggiato (anche se non sono sicuro che tipo di danno aumenterebbe la perdita in modo così significativo. Ti fa chiedere se da qualche parte ho avuto un errore sistematico). L'MCU era qualcosa di ultra-low-power su scala mobile che era alla velocità di clock più bassa per un paio di dozzine di µs prima di spegnersi completamente (esclusi RAM e una fonte di interruzione), principalmente per secondi o minuti. Prototipo mai finito per "gioielli" di comunicazione IR.
Marcus Müller,

3

Quello che propongo è probabilmente eccessivo ... Ma se scopri che le soluzioni standard / economiche non hanno una gamma dinamica sufficiente, o se esegui regolarmente questo tipo di misurazioni, potresti voler guardare questo dispositivo molto pulito: RocketLogger .

È sviluppato e di provenienza aperta da ETH Zurigo. Lo chiamano "Registratore di dati di precisione a segnale misto per misurazioni portatili". È un registratore di corrente e tensione portatile con un intervallo di corrente dinamica molto elevato, basato su un Beaglebone SBC.

  • 2 × canali di corrente con elevata gamma dinamica da 4 nA fino a ± 500 mA
  • 4 × Canali di tensione che misurano da 13 uV a ± 5,5 V
  • eccetera...

Disclaimer: non sono associato ai creatori del dispositivo.


3

Il conteggio di Coulomb può essere effettuato misurando la variazione della carica immagazzinata per caduta di tensione da una carica nota Q = CV nell'intervallo misurato di almeno 1 ciclo ripetitivo.

Innanzitutto è necessario definire la durata della batteria in termini di un minimo in unità di watt-secondi o Joule in modo che sia possibile selezionare l'energia di durata totale della carica necessaria.

In secondo luogo, il metodo di conteggio di Coulomb deve essere sufficientemente accurato da un metodo di prova a brevi intervalli come 1 ora circa se questo può mediare cicli ripetuti di sonno e attività pulsata in modo che l'efficienza del software possa essere ottimizzata per l'energia.

La durata della batteria potrebbe o potrebbe essere ad esempio; 1 anno primario o 1 giorno secondario tra gli addebiti, ma dovrebbe essere specificato.

In terzo luogo , potremmo usare un tappo a bassa perdita per contare Coulombs più velocemente? Come in 1 ora?
Se si prevedeva che lo scarico fosse di 20 mA per ora media e scendesse solo 0,1 V, quale valore C è necessario? C = Ic * dt / dV = 20mA * 3600s / 0.1V = 700 Farads

Se possibile, scegliere una parte con questa gamma di capacità come una batteria CR123A da 3 V, quindi verificare il metodo di conteggio del coulomb e monitorare la tensione.

In alternativa, rileva la corrente e usa il contenuto corrente per contare con precisione Coulombs separatamente dal design.


3

La parte di un'ora della tua domanda lo rende un po 'difficile, ma forse non ti serve davvero se il tuo dispositivo sta facendo qualcosa di ciclico (come la maggior parte delle cose incorporate).

Quindi lasciamo andare l'eccesso completo solo per mostrare cosa potresti comprare. Il Keysight CX3300 vi permetterà di assaggiare le forme d'onda di corrente fino a 200 MHz analogico larghezza di banda e 1 GSA / s. Combinato con 256 MSa di memoria, è possibile ottenere frequenze di campionamento decenti anche oltre un'ora. Il prezzo è ovviamente un po 'alto a partire da $ 33.000 e le sonde a partire da $ 4.800.

Un po 'di strada più economica che di solito sto usando è il mio oscilloscopio con una sonda di corrente come l' N2820A - questo ti farà tornare indietro di $ 4.200 e non otterrai abbastanza la larghezza di banda analogica (fino a 3 MHz) ma lo trovo davvero utilizzabile. Questo ti darà un canale con misurazione della corrente bassa e uno con misurazione della corrente elevata, quindi l'analisi richiede un po 'di calcolo manuale.

Sono sicuro che ci sono offerte simili di diversi produttori per qualcosa come i suddetti prodotti Keysight.

Dato che il mio oscilloscopio non ha una grande quantità di memoria, ciò che faccio di solito è misurare un ciclo dell'attività e calcolare da lì - i nostri dispositivi non hanno cicli lunghi, quindi funziona abbastanza bene.

Se devo fare una misurazione a lungo con il calcolo automatico di Wh, uso la mia fidata Gossen Metrahit Energy , che fa un ottimo lavoro anche con basse correnti. Ma il datalogging non è adatto a correnti altamente variabili poiché la frequenza di campionamento non è eccezionale.

Per favore, non fraintendere questa risposta mentre mi vanto di alcune apparecchiature costose, è un indicatore del fatto che ci sono apparecchiature di prova professionali in grado di gestire i requisiti - poiché la maggior parte delle altre risposte si concentra sul farlo da sole (che potrebbe causare problemi se non stai solo eseguendo test felici per te).

Non sono affiliato a Keysight o Gossen in alcun modo, sono solo un felice utente dei loro prodotti.


2

Prendi la risposta eccellente di @ marcusmuller e inserisci l'output in un integratore. azzerare il limite prima di iniziare e misurare i mAh o uAh accumulati come tensione CC.

Potrebbe essere necessario sperimentare la selezione del condensatore dell'integratore; alcuni modelli di condensatori sono dannosi per l'immersione o hanno una resistenza interna che impedisce loro di azzerarsi correttamente.


2

Potrei mettere un multimetro in serie, ma anche se ha la registrazione dei dati, questo è ad un certo intervallo e dovrei interpolare e potrei perdere completamente le variazioni più piccole dell'intervallo.

Pertanto, è possibile inserire un filtro passa-basso nella catena di misurazione per registrare il valore medio a una frequenza ragionevolmente bassa:

schematico

simula questo circuito - Schema creato usando CircuitLab


2

Per periodi più brevi (secondi) è possibile utilizzare un dispositivo come la corrente μ collegata a un oscilloscopio.

Se la corrente di picco è relativamente irrilevante (ad esempio perché è molto breve o perché è dominata da un valore più o meno fisso e noto come la corrente di picco del microcontrollore), è possibile utilizzare un resistore shunt con un diodo in parallelo per limitare la caduta di tensione. Con uno shunt da 100 Ω e un diodo SI in parallelo è possibile misurare fino a ~ 7 mA e raggiungere la precisione in decine di μA.


È molto meglio dei secondi. La larghezza di banda analogica è di 8 kHz per l'originale μCurrent e di 300 kHz per μCurrent GOLD (quello Kickstarter). Ho misurato i transitori di corrente di 1 ms per un Raspberry Pi usando questa configurazione.
Peter Mortensen,

1
@PeterMortensen: intendevo per la durata totale che puoi misurare per stimare l'autonomia della batteria (ovvero la potenza media nel tempo). Se il dispositivo OP esegue cose come ad esempio misurazioni periodiche a intervalli di 0,5 secondi, sarebbe sufficiente misurare per alcuni secondi. Se il dispositivo di OP esegue attività più complesse per un periodo di tempo più lungo, avrebbe bisogno di un approccio diverso.
Michael

0

Penso che la tua idea di utilizzare una batteria potrebbe essere l'approccio migliore, ma non sono sicuro del motivo per cui dici che è difficile o costoso? Sono sicuro che ci sono misuratori A-Hr che puoi acquistare ma potrebbero non misurare accuratamente i brevi intervalli di corrente che ti interessano. Un altro approccio potrebbe essere una sonda di corrente collegata a un oscilloscopio. Questo sarebbe probabilmente il modo più accurato per caratterizzare la corrente in termini di ampiezza e tempo, ma non darebbe A-ore a meno che la tua forma d'onda attuale non sia periodica.


Diciamo che voglio vedere l'impatto dell'ultimo codice spingere la durata della batteria su un dispositivo progettato per funzionare per ~ 2 mesi su una singola batteria. Devo sedermi lì e lasciare che una batteria si scarichi per un po '. :) ("Caro" è per alcune definizioni se sono in uso celle primarie.)
David

Un'opzione sarebbe quella di utilizzare una batteria molto più piccola. Fintanto che l'A-h della batteria è a conoscenza, è possibile ridimensionare i risultati su batterie di qualsiasi dimensione.
EE_socal

Le batterie non sono strumenti di misurazione calibrati. Tutto quello che sai di una batteria da 1 Ah è che contiene almeno 1 Ah.
Dmitry Grigoryev il

La batteria può essere calibrata caricando un carico noto e vedere quanto tempo impiega a scaricarsi. Sono d'accordo che non è il metodo più accurato ma forse abbastanza buono.
EE_socal

@EE_socal In un progetto per hobby, certo. Al lavoro, preferirei acquistare attrezzature di misurazione adeguate piuttosto che pagare un ingegnere per fare qualcosa di così avvincente come calibrare una batteria. Le batterie nuove possono cambiare le loro caratteristiche dopo alcuni cicli, quindi calibrarne una non è così veloce.
Dmitry Grigoryev il

0

Ho dovuto risolvere questo problema molto tempo fa con le batterie al litio. Il dispositivo si è svegliato per un tempo molto breve, una volta al minuto. Potrei campionare la tensione attraverso la batteria. Il problema con le batterie al litio in questa situazione è che hanno un 'ginocchio' molto improvviso nel loro ciclo di scarica e quando toccano quel punto, sei quasi fuori tempo ed è un intervallo di valori ridotto.


0

Ho effettivamente preso un analizzatore logico / analogico (Saleae Logic 8) e l'ho collegato a un µCurrent Gold e misurato l'intero diagramma di corrente e la tensione della batteria da completamente carica a scarica. Puoi semplicemente eseguire uno script Python che si collega all'interfaccia di sviluppo per eseguire il polling e archiviare i valori. Questo crea una tonnellata di dati e spesso non può essere facilmente manipolato in Excel, ma puoi almeno aprire un pezzo di tempo per vedere quale era la corrente istantanea in quel particolare momento.

Ecco uno screenshot di una convalida della durata della batteria che stavo facendo che assomiglia a quello che stai cercando:

Cattura corrente usando Saleae Logic 8

Il segnale giallo è la corrente (V tradurre in A). Puoi vedere la risposta della batteria (la batteria è stata aperta sopra i 5 V max di Logic 8 in questo caso) Quindi, soprattutto, puoi vedere le barre di alimentazione che si accendono e poi si spengono per le misurazioni (stavo effettivamente inviando dati tramite CAT -M ai nostri server cloud). Nel tuo caso, probabilmente non vedresti così tante cose eccitanti a causa del fatto che il tuo ciclo di lavoro è molto più piccolo (stavo facendo alcuni test accelerati della batteria, ecco perché era così frequente)

Se vuoi vedere come è stata la mia configurazione, ho scritto di recente un articolo su come eseguire le misurazioni con gli attrezzi che avevo prodotto sopra la cattura.

Probabilmente puoi fare qualcosa di simile con un osciliscope controllato da GPIB o un datalogger di marche diverse. Sono felice di usare ciò che avevo a portata di mano.

Per acquisizioni estese è anche possibile consultare il riferimento di programmazione Saleae per i loro analizzatori logici. Ho anche creato una sintesi del codice che ho usato per creare quell'acquisizione anche qui.


0

Tutte queste risposte e solo @wbeaty hanno menzionato l'ovvio. Un dispositivo che integra la corrente con il tempo? Che dire di I = C dV / dt?

Se il consumo di corrente è abbastanza basso, alcuni condensatori potrebbero essere più che sufficienti, ma sarebbe necessario un super condensatore per correnti più elevate. Regolazione dei condensatori per ottenere una caduta ragionevole in un ragionevole lasso di tempo. Un circuito come quello sotto farebbe il trucco.

schematico

simula questo circuito - Schema creato usando CircuitLab

Il divisore capacitivo è lì per evitare di rimuovere la corrente dal nodo. Può essere precaricato all'alimentazione dell'UC tramite il pin periferico per stabilire la condizione iniziale e quindi periodicamente misurato per leggere la velocità di scarica. Un problema con questo circuito è che la tensione di uscita cambierà, il che potrebbe significare un carico variabile.

Per evitare questo problema, e per un circuito universale regolabile con componenti di dimensioni ragionevoli, è possibile utilizzare un moltiplicatore di capacità attiva, come lo schema concettuale di seguito. Qualche calibrazione con carichi noti e hai un contatore di consumo su misura.

schematico

simula questo circuito

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.