Sommario:
- Passaggio 1: la fase di re-bias
- Passaggio 2: resistore di rilevamento corrente
- Passaggio 3: l'amplificatore a transconduttanza
- Passaggio 4: l'amplificatore per strumentazione
- Passaggio 5: la fase di input e la calibrazione
- Passaggio 6: roba avanzata: perdita spettrale (DC)
- Passaggio 7: cose avanzate: perdita spettrale (AC)
- Passaggio 8: roba avanzata: il fattore di guadagno teorico
- Passaggio 9: cose avanzate: il cambio di PA
Video: Analisi della bioimpedenza (BIA) con AD5933: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ero interessato a realizzare un analizzatore di bioimpedenza per le misurazioni della composizione corporea e le mie ricerche casuali hanno continuato a trovare un progetto del corso di strumentazione biomedica 2015 presso la Vanderbilt University. Ho lavorato attraverso il design e l'ho leggermente migliorato. Vorrei condividere con voi le mie scoperte. Prendi quello che puoi usare da questa "procedura" se qualcosa non è chiaro, suggerisci miglioramenti. Potrei un giorno scrivere il mio pensiero in una forma più coerente, ma per ora spero che tu possa usare tutto ciò che vedi qui. (Se pensi di poter scrivere questo e migliorare, sei il benvenuto)
Teddy
Questo design è costituito dal chip AD5933 e da un front-end analogico personalizzato (AFE) per interfacciare l'AD5933 con il corpo. L'AD5933 esegue quindi la misurazione e i risultati possono quindi essere elaborati da un microcontrollore (ad esempio un Arduino).
Se prevedi di utilizzare Arduino come alimentatore, assicurati che gli amplificatori operazionali e di strumentazione (op-amp e in-amp) supportino le cosiddette tensioni "single supply" e abbiano specifiche rail-to-rail.
(Di seguito userò un alimentatore (da un Arduino) di 5V e l'impostazione Range 1 su AD5933.)
Passaggio 1: la fase di re-bias
La prima parte dell'AFE è una fase di re-bias. Il segnale della tensione di uscita non è centrato al centro dell'intervallo della tensione di alimentazione (VDD/2). Questo viene corretto utilizzando un condensatore per bloccare la parte CC del segnale e inviandolo attraverso un divisore di tensione per aggiungere un offset CC al segnale.
I due resistori di ripolarizzazione possono avere qualsiasi valore purché siano gli stessi. Anche il valore specifico del tappo non è importante.
Lo stadio di re-bias funziona come un filtro passa alto e quindi ha una frequenza di taglio:
f_c = 1 / (2*pi * (0.5*R) * C)
Assicurati che la frequenza di taglio sia di qualche decennio al di sotto della frequenza minima che prevedi di utilizzare. Se prevedi di utilizzare 1kHz nella tua applicazione, dovresti scegliere valori di condensatori e resistori che ti daranno una frequenza di taglio nell'ordine di 1-10 Hz.
L'ultima parte di questa fase è un amplificatore operazionale impostato per essere un inseguitore di tensione. Questo per assicurarsi che i valori del resistore non interferiscano con la fase successiva
Passaggio 2: resistore di rilevamento corrente
La prima parte della fase successiva è il resistore di rilevamento della corrente. La corrente attraverso questo resistore sarà la stessa corrente che l'amplificatore cercherà di mantenere attraverso il corpo. Assicurarsi che la corrente sia conforme agli standard di sicurezza IEC6060-1*:
Al di sotto delle frequenze di 1 kHz è consentito un massimo di 10 microAmp (RMS) attraverso il corpo. A frequenze superiori a 1kHz la seguente equazione fornisce la corrente massima consentita:
Corrente CA max < (frequenza minima in kHz) * 10 microAmp(RMS)
La relazione tra l'ampiezza di picco di un segnale AC e il suo valore RMS è: Peak = sqrt(2) * RMS. (10 microAmp RMS corrispondono a 14 microAmp ampiezza di picco)
Usando la legge di Ohm sul resistore possiamo calcolare il valore del resistore che sarà conforme allo standard di sicurezza. Usiamo la tensione di eccitazione dall'AD5933 e il valore di corrente massima:
U = R * I => R = U / I
Per esempio. utilizzando l'impostazione Range 1 Upeak = 3V / 2 = 1.5V (o 1V @3.3V)
Usando il valore di picco di 14 microAmp dall'alto ottengo un valore di resistenza di almeno 107kOhms
Riferimenti:
* Dispositivi analogici: "Progettazione di circuiti a bioimpedenza per sistemi indossati dal corpo"
Passaggio 3: l'amplificatore a transconduttanza
Dopo il resistore di rilevamento della corrente c'è un amplificatore operazionale in una configurazione di feedback negativo. Questa è una cosiddetta configurazione Load-in-the-Loop. Il terminale di ingresso positivo dell'amplificatore operazionale è collegato a una tensione VDD/2. L'amplificatore operazionale proverà ora a regolare la sua uscita nella direzione opposta al segnale di eccitazione in modo tale che la tensione al terminale negativo sia uguale a VDD/2. Questo produrrà un potenziale altalenante che spinge e tira la corrente attraverso il corpo.
La corrente assorbita dal terminale negativo dell'amplificatore operazionale è praticamente zero. Tutta la corrente attraverso il resistore di rilevamento della corrente deve quindi fluire attraverso il corpo. Questo è il meccanismo che rende questa configurazione un amplificatore a transconduttanza (chiamato anche sorgente di corrente controllata in tensione, VCCS).
L'amplificatore operazionale può mantenere la corrente solo se l'impedenza del corpo non è troppo alta. Altrimenti l'uscita dell'amplificatore operazionale si limiterebbe al massimo alla tensione di alimentazione (0 o 5 V). L'intervallo di tensione massimo che può essere mantenuto è VDD/2 + Upeak (2.5+1.5V = 4V @ 5V supply). I margini di tensione dell'amplificatore operazionale dovrebbero essere sottratti da questo valore, ma se l'amplificatore operazionale ha specifiche rail-to-rail sarebbe solo una piccola quantità. L'impedenza massima che l'amplificatore operazionale può pilotare è quindi:
Z < (VDD/2 + Upeak) / Imax
(Nella mia configurazione Z < 4V / 14 microAmp = 285 kOhm, il desiderio è molto di coprire la gamma di impedenza del corpo)
Il resistore di protezione ha un valore molto grande (1-1,5 MOhms) rispetto al corpo (circa 100kOhm) e per tutte le normali operazioni questo non assorbirà alcuna corrente percettibile e l'impedenza del collegamento in parallelo è dominata dall'impedenza del corpo. Se l'impedenza del corpo dovesse aumentare (ad esempio i pad si allentano) la corrente può quindi passare attraverso il resistore e il massimo dell'amplificatore operazionale non creerebbe tensioni spiacevoli nei pad.
Passaggio 4: l'amplificatore per strumentazione
La fase successiva è l'amplificatore della strumentazione (in-amp) che misura la tensione attraverso il corpo. La tensione attraverso il corpo oscilla intorno a 0 V, ma l'AD5933 richiede che la tensione di ingresso sia in un intervallo positivo. L'in-amp quindi aggiunge un offset CC di VDD/2 al segnale di tensione misurato.
Il riferimento VDD/2 è generato da un partitore di tensione. È possibile utilizzare qualsiasi resistenza di valore purché sia la stessa. Il partitore di tensione è separato dall'impedenza del resto del circuito da un inseguitore di tensione. L'uscita del follower di tensione può quindi essere inoltrata sia all'in-amp che all'amplificatore a transconduttanza.
Passaggio 5: la fase di input e la calibrazione
Lo stadio di ingresso dell'AD5933 contiene un amplificatore operazionale in configurazione di feedback negativo. Ci sono due resistori: uno in serie (Rin) e uno in parallelo (RFB). Il guadagno dell'amplificatore operazionale è dato da
A = - RFB / Rin
I guadagni dell'amplificatore operazionale in ingresso e dell'amplificatore interno (e PGA) devono assicurarsi che il segnale che entra nell'ADC dell'AD5933 sia sempre compreso tra 0 V e VDD.
(Uso un guadagno unitario in-amp e valori di resistore che daranno circa A = 0,5)
All'interno dell'AD5933 l'ADC convertirà il segnale di tensione in un segnale digitale. L'intervallo di tensione da 0V a VDD viene convertito nell'intervallo digitale 0-128 (2^7). (La documentazione non è chiara su questo, ma un attento esame delle trame in [1] e alcune sperimentazioni da parte mia lo confermano.)
All'interno del modulo DFT c'è un'altra scalatura di 256 (1024/4, vedi [1]) prima che il risultato venga salvato nel registro reale e immaginario.
Seguendo il segnale di tensione attraverso l'AFE, nell'ADC e utilizzando i fattori di scala menzionati prima è possibile stimare che il fattore di guadagno sia:
g = (VDD * Rcorrente * Rin) / (256 * PGA * Upeak * RFB * 2^7)
potrebbe essere ancora necessaria una certa calibrazione, quindi tenere conto di alcuni effetti che non fanno parte di questo modello matematico, quindi si prega di misurare il vero valore di guadagno misurando componenti di impedenza nota, come i resistori. (g = Z / mag, vedi sotto)
L'impedenza può ora essere calcolata da
Z = g * mag
mag = sqrt(reale^2 + immaginario^2)
PA = arctan2(reale, immaginario) - deltaPA
Il PA probabilmente ha bisogno di essere calibrato così come c'è uno sfasamento sistematico in funzione della frequenza nell'AD5933. deltaPA sarà probabilmente una funzione lineare della frequenza.
La resistenza e la reattanza possono ora essere calcolate da
R = Z * cos(PA)
X = Z * sin(PA)
Riferimenti:[1] Leonid Matsiev, "Miglioramento delle prestazioni e della versatilità dei sistemi basati su rivelatori DFT a frequenza singola come AD5933", Electronics 2015, 4, 1-34; doi:10.3390/elettronica4010001
Passaggio 6: roba avanzata: perdita spettrale (DC)
Il segnale che inseriamo nell'AD5933 è una tensione/corrente come funzione del tempo, ma il nostro interesse principale è l'impedenza come funzione della frequenza. Per convertire tra dominio del tempo e dominio della frequenza dobbiamo prendere la trasformata di Fourier del segnale nel dominio del tempo. L'AD5933 ha un modulo di trasformata discreta di Fourier (DFT) integrato. Alle basse frequenze (inferiori a circa 10 kHz) la DFT incorporata è influenzata dall'aliasing e dalle perdite spettrali. In [1] esamina la matematica su come correggere la dispersione spettrale. L'essenza di questo è calcolare cinque (più due) costanti per ogni passo di frequenza nello sweep. Questo può essere fatto facilmente ad es. da Arduino nel software.
La dispersione si presenta in due forme: una dispersione DC che è di natura additiva e una dispersione AC che è di natura moltiplicativa.
La dispersione DC deriva dal fatto che il segnale di tensione all'ADC non oscilla intorno a 0V ma intorno a VDD/2. Un livello DC di VDD/2 dovrebbe corrispondere a una lettura DC digitale di circa 64 (delta designato in [1]).
I passaggi per correggere la dispersione spettrale CC:
1) Calcolare il fattore di inviluppo E per la frequenza corrente.
2) Calcolare i due fattori di guadagno GI (reale) e GQ (immaginario)
3) Sottrarre delta * GI dal valore del registro reale e delta * GQ dal valore del registro immaginario
Riferimenti:
[1] Leonid Matsiev, "Migliorare le prestazioni e la versatilità dei sistemi basati su
Rivelatori DFT a frequenza singola come AD5933 , Electronics 2015, 4, 1-34; doi:10.3390/electronics4010001
[2] Konrad Chabowski, Tomasz Piasecki, Andrzej Dzierka, Karol Nitsch, "Semplice misuratore di impedenza ad ampia gamma di frequenze basato sul circuito integrato AD5933", Metrol. mis. Syst., vol. XXII (2015), n. 1, pp. 13-24.
Passaggio 7: cose avanzate: perdita spettrale (AC)
Come la dispersione in corrente continua, la dispersione in corrente alternata può essere corretta matematicamente. In [1] la resistenza e la reattanza sono chiamate rispettivamente A*cos(phi) e A*sin(phi), dove A corrisponde al modulo dell'impedenza e phi corrisponde all'angolo di fase (PA).
I passaggi per correggere la dispersione spettrale CA:
1) Calcolare il fattore di inviluppo E (non uguale a DC) per la frequenza corrente.
2) Calcolare i tre fattori a, b e d. (valori approssimativi alle frequenze più alte: a = d = 256 e b = 0)
3) La resistenza (Acos(phi)) e la reattanza (Asin(phi)) possono ora essere calcolate in unità digitali
Riferimenti:[1] Leonid Matsiev, "Miglioramento delle prestazioni e della versatilità dei sistemi basati su rivelatori DFT a frequenza singola come AD5933", Electronics 2015, 4, 1-34; doi:10.3390/elettronica4010001
[2] Konrad Chabowski, Tomasz Piasecki, Andrzej Dzierka, Karol Nitsch, "Semplice misuratore di impedenza ad ampia gamma di frequenze basato sul circuito integrato AD5933", Metrol. mis. Syst., vol. XXII (2015), n. 1, pp. 13-24.
Passaggio 8: roba avanzata: il fattore di guadagno teorico
Data la modellizzazione matematica del DFT dovrebbe essere possibile modellare matematicamente anche l'intero AFE. Matematicamente il segnale di tensione può essere descritto da una funzione seno con una data frequenza fissa, un offset DC e un'oscillazione AC con un'ampiezza di picco. La frequenza non cambia durante un passo di frequenza. Poiché il fattore di guadagno cambia solo l'ampiezza dell'impedenza e non la PA, qui non ci occuperemo di alcuno sfasamento indotto sul segnale.
Ecco un breve riassunto del segnale di tensione mentre si propaga attraverso l'AFE:
1) Dopo la fase di re-bias, l'ampiezza AC è ancora Upeak=1.5V (1V @ VDD=3.3V) e l'offcet DC è stato cambiato in VDD/2.
2) Nel resistore di rilevamento della corrente la tensione è ancora la stessa della fase precedente …
3) … ma a causa dell'altalena di tensione dell'amplificatore operazionale, le oscillazioni CA hanno una dimensione di Z*Upeak/Rcurrent. (L'offset CC viene annullato dalla tensione di riferimento degli amplificatori operazionali di VDD / 2 - il punto di rotazione dell'altalena - e diventa una massa virtuosa in questa parte del circuito)
4) L'unità in-amp aggiunge l'offset CC di VDD/2 e inoltra il segnale allo stadio di ingresso dell'AD5933
5) L'amplificatore operazionale nello stadio di ingresso ha un guadagno di A=-RFB/Rin e quindi l'ampiezza AC diventa (Z*Upeak/Rcurrent)*(RFB/Rin)
6) Subito prima dell'ADC c'è un amplificatore a guadagno programmabile (PGA) con due impostazioni un guadagno di 1 o 5. Il segnale di tensione all'ADC diventa quindi: PGA*(Z*Upeak/Rcurrent)*(RFB/Rin)
L'ADC converte il segnale v(t) in un segnale digitale x(t) = u(t) / VDD * 2^7 con una precisione di 12 bit.
La grandezza A è collegata all'impedenza Z dal fattore di guadagno, k, come A = k * Z e ha un valore approssimativo di k = PGA * Upeak * RFB * 2^7 / (VDD * Rcurrent * Rin).
Se ti piace lavorare con gain-faktor invece g = 1 / k e Z = g * A.
Passaggio 9: cose avanzate: il cambio di PA
In [2] trovano uno spostamento sistematico della PA in funzione della frequenza. Ciò è dovuto a un ritardo temporale tra il DAC in cui viene generato il segnale di eccitazione e il DFT in cui il segnale in ingresso deve essere contorto con il segnale in uscita.
Lo spostamento è caratterizzato dal numero di cicli di clock in cui il segnale è di ritardo tra il DAC e il DFT all'interno dell'AD5933.
Riferimenti:[1] Leonid Matsiev, "Miglioramento delle prestazioni e della versatilità dei sistemi basati su rivelatori DFT a frequenza singola come AD5933", Electronics 2015, 4, 1-34; doi:10.3390/elettronica4010001
[2] Konrad Chabowski, Tomasz Piasecki, Andrzej Dzierka, Karol Nitsch, "Semplice misuratore di impedenza ad ampia gamma di frequenze basato sul circuito integrato AD5933", Metrol. mis. Syst., vol. XXII (2015), n. 1, pp. 13-24.
Consigliato:
Controllore automatico della luce e della ventola della stanza con contatore visitatori bidirezionale: 3 passaggi
Controllore automatico della luce e della ventola della stanza con contatore visitatori bidirezionale: spesso vediamo contatori visitatori in stadi, centri commerciali, uffici, aule, ecc. Come contano le persone e accendono o spengono la luce quando nessuno è all'interno? Oggi siamo qui con il progetto di controllo automatico della luce ambientale con contatore visitatori bidirezionale
Raspberry Pi Box di ventola di raffreddamento con indicatore della temperatura della CPU: 10 passaggi (con immagini)
Raspberry Pi Box di raffreddamento FAN con indicatore della temperatura della CPU: avevo introdotto il circuito dell'indicatore della temperatura della CPU raspberry pi (di seguito come RPI) nel progetto precedente. Il circuito mostra semplicemente RPI 4 diversi livelli di temperatura della CPU come segue.- LED verde acceso quando La temperatura della CPU è entro 30~
Hackerare un pulsante della porta della Jubilee Line della metropolitana di Londra: 12 passaggi (con immagini)
Hacking di un pulsante della porta della Jubilee Line della metropolitana di Londra: Il negozio del London Transport Museum vende pulsanti della porta dismessi della Jubilee Line (sono disponibili sia a sinistra che a destra). Se stai pensando di realizzare un progetto che necessita di un pulsante e di una spia di qualche tipo, saresti
Analisi del sentiment di Twitter con Raspberry Pi: 3 passaggi (con immagini)
Analisi del sentimento di Twitter con Raspberry Pi: cos'è l'analisi del sentimento e perché dovrebbe interessarti? L'analisi del sentimento è il processo di determinazione del tono emotivo dietro una serie di parole, utilizzato per comprendere gli atteggiamenti, le opinioni e le emozioni espresse all'interno di un
Analisi del sistema Bluetooth Windows: un approccio SensorTag: 7 passaggi (con immagini)
Analisi del sistema Bluetooth Windows – un approccio SensorTag: Di seguito, eseguirò un'analisi del sistema operativo Windows (OS) dal punto di vista della comunicazione con i dispositivi Bluetooth Low Energy - nel nostro caso con diversi tipi di SensorTag: Thunderboard React, Thunderboard Sense (b