Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Le due uscite di corrente di un MDAC

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

8
voti

[11] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentecarloc » 16 dic 2013, 1:47

Beh eccomi di nuovo qui, dopo lunga e ingiustificata [-X assenza riprenderei il discorso per i pochi deliranti interessati rimasti :D

Intanto prima di passare ad altri casi, diversi carichi alle uscite, darei conto degli interessantissimi sviluppi sulla matrice tridiagonale ottenuta:

Rivedendola qui

\mathbf{M}=\begin{bmatrix}
4 & -2 & 0 & \ldots & \ldots & 0 \\
-2 & 5 & -2 & 0  &  \ldots  & 0\\
0 & -2 & 5      & -2 & 0 & \ldots \\
\vdots &   & \ddots & \ddots     & & \vdots\\
0 &\ldots & 0 & -2 & 5 & -2 \\
0 &\ldots & \ldots& 0 & -2 & 5
\end{bmatrix}

si nota che quel "quattro" all'inizio della diagonale principale "disturba proprio molto" :mrgreen: , ma ebbene il nostro grandissimo

:ola: iOi iOi Foto UtentePietroBaima iOi iOi :ola:

ci ha regalato un mirabile, elegantissimo risultato: l'inversione simbolica di quella matrice, ha poi anche provato più volte a spiegarmi come lo ha ottenuto :ok: :ok: ma l'unica cosa che ho capito è che non si può scrivere "... con semplici passaggi..." :shock: :shock:

beh insomma si ha che per ogni matrice come quella di dimensione NxN

PietroBaima ha scritto:L'elemento \boldsymbol{M}^{-1}_{ij} (i e j sono gli indici riga e colonna, rispettivamente, della matrice) è pari a :

\boldsymbol{M}^{-1}_{ij}=\frac{1}{3}\left( \frac{1}{2^{\left|i-j\right|}}-\frac{1}{2^{2N+2-i-j}}  \right)

Se poniamo i=N, cioè se scorriamo l'ultima colonna della matrice, possiamo semplificare la formula in:

\boldsymbol{M}^{-1}_{Nj}=\frac{1}{4 \cdot 2^{N-j}}


questo intanto ci conforta del fatto che quella "bella colonna di potenze di due" evidenziata in giallo in [8] non è un caso ma una caratteristica che ritroveremo per qualsiasi dimensione della matrice, cioè per qualsiasi numero di bit del nostro convertitore.

E naturalmente useremo questo risultato ogni qualvolta ci sarà necessario per generalizzare l'analisi, e vorrei solo ribadirne l'importanza. Come è noto il fatto di averlo verificato per N=4 non assicurava proprio un bel niente nel caso generale, ma di più avrei potuto passare la vita a verificarlo per migliaia, milioni di dimensioni diverse senza in realtà provare poco più di niente. Invece Foto UtentePietroBaima ha elegantemente posto la parola fine alla questione :ok:


Tornando a bomba potremmo ad esempio passare ad un altro caso: uscite chiuse su di una tensione costante. Abbiamo già intuito dalla (7 bis) e dintorni del primo post che una rappresentazione delle tensioni ai morsetti di uscita fatta come modo comune più modo differenziale sembra aprire interessanti possibilità, quindi a questa mi atterrò.

Per il momento applichiamo solo una tensione in modo comune, allora prendendo il vettore delle correnti...

\underline{J}=\frac{1}{2R}\Big(U_\text{c}\,\underline{K}\,+\,U_\text{d}(\mathbf{A}\cdot\underline{a}-\frac{1}{2}\,\underline{K})\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)\qquad\qquad\text{(7 bis)}

vediamo che applicando soltanto una tensione in modo comune si semplifica in

\underline{J}=\frac{1}{2R}\Big(U_\text{c}\,\underline{K}\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)

vediamo allora come è fatto \underline{K} ...

\underline{K}=\mathbf{M}^{-1}\cdot(2,1,\ldots,1)^\text{T}-\underline{1}=(K_1,\ldots,K_i,\ldots,K_N)^\text{T}

moltiplicando per righe si ha che K_i , l'i-esimo elemento di \underline{K} vale

K_i=2\,\mathbf{M}^{-1}_{i,1}+\sum_{n=2}^{N}\mathbf{M}^{-1}_{i,n}\;-1

che stavolta sì con semplici (ma numerosi e noiosi) passaggi

K_i=-\frac{1}{2^{N+1-i}}

cioè abbiamo che anche \underline{K}=\left(-\frac{1}{2^N},-\frac{1}{2^{N-1}},\ldots,-\frac{1}{2}\right)^\text{T} è una colonna di potenze di due :shock: :shock:


Generalizziamo anche il secondo addendo già visto prima in [7]...

\mathbf{M}^{-1}\cdot\underline{E}=\mathbf{M}^{-1}\cdot(0,\ldots,0,2\,V_\text{vref})^\text{T}=
2\,V_\text{ref}\,(\mathbf{M}^{-1}_{N,1},\ldots,\mathbf{M}^{-1}_{N,N})^\text{T}=

=2\,V_\text{ref}\,\left(\frac{1}{4\cdot 2^{N-1}},\frac{1}{4\cdot 2^{N-2}},\ldots,\frac{1}{4}\right)^\text{T}
=V_\text{ref}\,\left(\frac{1}{2^{N}},\frac{1}{2^{N-1}},\ldots,\frac{1}{2}\right)^\text{T}

e guarda caso questo vettore è esattamente l'opposto di \underline{K} :D ...

e questo ci permette di metterlo in evidenza nell'espressione di J ed ottenere

\underline{J}=\frac{1}{2R}\Big(U_\text{c}\,\underline{K}\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)=
\frac{1}{2R}\Big(U_\text{c}\,\underline{K}\,-\,V_\text{ref}\,\underline{K}\Big)=
\frac{V_\text{ref}-U_\text{c}}{2R}\,\left(\frac{1}{2^{N}},\frac{1}{2^{N-1}},\ldots,\frac{1}{2}\right)^\text{T}

Cioè in pratica abbiamo trovato che una tensione in uscita in modo comune ha semplicemente l'effetto di introdurre una variazione di scala costante ed indipendente dal codice nel vettore delle correnti, come se cambiasse la tensione di riferimento, infatti sostituendo nei risultati del post [7] si ottiene semplicemente

\boxed{I_\text{a}=\frac{V_\text{ref}-U_\text{c}}{32R}\left(a_0+2\,a_1+4\,a_2+8\,a_3\right)}

un errore lineare di scala rispetto al caso uscite in corto.

Strano? Inatteso? no davvero, se si prende lo schema del DAC si nota che

che dato che il taglio della rete R/2R ha solo tre connessioni, Vref, Ua e Ub, è proprio che Vref si trova in antiserie a Uc senza possibiltà che la rete si "accorga di niente" dato che "dall'interno" niente cambia nel considerare il riferimento 1 o il 2.
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,8k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 2153
Iscritto il: 7 set 2010, 19:23

8
voti

[12] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto UtentePietroBaima » 16 dic 2013, 12:10

Beh, ammetto che invertire una matrice del tipo:

\mathbf{M}=\begin{bmatrix}A & B & 0 & \ldots & \ldots & 0\\
B & C & B & 0 & \ldots & 0\\
0 & B & C & B & 0 & \ldots\\
\vdots &  & \ddots & \ddots &  & \vdots\\
0 & \ldots & 0 & B & C & B\\
0 & \ldots & \ldots & 0 & B & C
\end{bmatrix}

Non sia proprio banalissimo, però Foto Utentecarloc esagera...
A me piace davvero tanto il lavoro che ha fatto sul DAC e secondo me potrebbe (dovrebbe) scriverci sopra un articolozzo :D
Ha fatto una analisi che io non mi sognerei nemmeno per la quale ho solo invertito una matrice, utilizzando, tra l'altro, anche alcuni risultati che ho trovato in un vecchio articolo.
In pratica non ho fatto quasi niente.

Ciao,
Pietro.
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

6
voti

[13] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto UtenteDirtyDeeds » 16 dic 2013, 12:21

PietroBaima ha scritto:In pratica non ho fatto quasi niente.


Ma sì, due scarabocchi su un quadratino di carta igienica al gabinetto e via :mrgreen:

Se non ci fosse il primo elemento diagonale diverso dagli altri sarebbe una matrice di Toeplitz per cui c'è questo algoritmo. Mi chiedevo se si riesce a ricondurre a tale tipo di matrice o sei hai fatto una modifica all'algoritmo.

Insomma, complimenti Foto UtentePietroBaima =D> =D> =D> =D>
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

6
voti

[14] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto UtentePietroBaima » 16 dic 2013, 14:36

Come sempre Foto UtenteDirtyDeeds ha le idee molto ben chiare sul problema.

Volevo considerare l'inversione di una matrice di Toeplitz (per la quale avevo un algoritmo semianalitico ricavato da un articolo) a blocchi. Il problema è che in una matrice fatta così restano fuori due "B" presenti agli "spigoli" del blocco.

Per capirci:

\left (
\begin{array}{r|rrrrr}
A & B & 0 & \ldots & \ldots & 0\\\hline
B & C & B & 0 & \ldots & 0\\
0 & B & C & B & 0 & \ldots\\
\vdots &  & \ddots & \ddots &  & \vdots\\
0 & \ldots & 0 & B & C & B\\
0 & \ldots & \ldots & 0 & B & C
\end{array}
\right )

che danno non poco fastidio.
L'idea è quindi quella di non considerare il primo blocco ma "tagliare" la matrice in modo che la superiore destra e la inferiore sinistra siano due matrici nilpotenti (si può osservare che lo sono sempre). Elevando la matrice ad un esponente opportuno si trova quindi una matrice diagonale a blocchi (sempre di Toeplitz) che si inverte con il metodo dell'articolo per ogni matrice. Basta poi ricomporla per ottenere la matrice complessiva.
Dopodichè bisogna però ritornare alla matrice originaria. Non basta fare una opportuna radice perché, in generale, non si ha la commutatività tra inversa ed elevamento a potenza. Esistono però delle relazioni tra le due operazioni, per le quali bisogna fare dei riordinamenti ipergeometrici.
Rimettendo tutto insieme la cosa spettacolare che si ottiene è quella formula incredibilmente semplice.
Ogni tanto un po' di fortuna non guasta!

Ciao,
Pietro.

EDIT: aggiungo che ho provato per un po' a generalizzare l'algoritmo di inversione per matrici tridiagonali simmetriche e a diagonale identica, ma non ci sono riuscito.
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

Precedente

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 69 ospiti