Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Risoluzione rete resistiva di grandi dimensioni

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[1] Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtenteDanteCpp » 20 feb 2018, 17:31

Un saluto ai partecipanti,

ho la necessità di risolvere una rete resistiva di enormi dimensioni, dell'ordine di 10^{11} lati, (non planare).

Ho il presentimento che SPICE non regga tali dimensioni, però mi permetto di chiamare in causa Foto UtenteRenzoDF che SPICE lo conosce bene.

Mi è capitato di diagonalizzare matrici di grandi dimensioni con MATLAB o direttamente LAPACK però oltre i 10^5 il problema è intrattabile anche con questo metodo.

Pensavo a qualche metodo iterativo, però non so effettivamente quanto si possa spingere con questi metodi.

Qualcuno di voi ha esperienza in ambito, secondo voi c'è speranza di risolvere un sistema lineare di tali dimensioni (anche con dei supercalcolatori) oppure devo cercare in qualche modo di ridimensionare il problema?
Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
 
Messaggi: 1106
Iscritto il: 15 dic 2011, 18:51

1
voti

[2] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtenteDarwinNE » 20 feb 2018, 18:40

Non ho la risposta al quesito, però vorrei sapere come conti di rappresentare il problema nella memoria di un calcolatore. Hai un grafo con 10^{11} elementi? Oppure ne lasci perdere qualcuno per ridurre l'occupazione di memoria?

Da dove viene fuori il problema? Nanofili interconnessi? Puoi applicare metodi statistici?
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[3] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto Utentexyz » 20 feb 2018, 19:10

Quale SPICE usi e sotto quale sistema operativo ?
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

3
voti

[4] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtenteDrCox » 20 feb 2018, 19:15

Si tratta di un problema non banale e del tutto generale, non strettamente legato alla risoluzione di reti circuitali. Quando hai a che fare con matrici molto grandi, magari anche sparse, l'occupazione di banda è critica, e talvolta conviene proprio

DarwinNE ha scritto: applicare metodi statistici


Ti suggerisco la lettura di questo articolo, magari può darti qualche spunto:
https://ocw.mit.edu/courses/mathematics ... s/am36.pdf

Oltre alle tecniche lì indicate, io prenderei in considerazione anche lo sviluppo di un piccolo Monte Carlo (esempio).

O_/
"The past is not really the past until it has been registered. Or put another way, the past has no meaning or existence unless it exists as a record in the present."
John Archibald Wheeler
Avatar utente
Foto UtenteDrCox
2.738 2 8 12
Master EY
Master EY
 
Messaggi: 744
Iscritto il: 8 giu 2010, 21:42

0
voti

[5] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtenteDanteCpp » 20 feb 2018, 20:07

DarwinNE ha scritto:Non ho la risposta al quesito, però vorrei sapere come conti di rappresentare il problema nella memoria di un calcolatore. Hai un grafo con 10^{11} elementi? Oppure ne lasci perdere qualcuno per ridurre l'occupazione di memoria?


Anche per questo pensavo a metodi iterativi: i) carico riga, ii) carico colonna iii) salvo riga per colonna.

DarwinNE ha scritto:Da dove viene fuori il problema? Nanofili interconnessi? Puoi applicare metodi statistici?


film nanogranulari. Non so esattamente cosa si intende per per metodi statistici, riesco ad immaginarmi qualcosa solo se l'obbiettivo fosse calcolare la resistenza totale, ma a me servono le correnti in ogni ramo. Comunque approfondirò.

xyz ha scritto:Quale SPICE usi e sotto quale sistema operativo ?

Sicuramente sistemi unix-like, comunque non penso sia pane per i denti di SPICE!

DrCox ha scritto:Ti suggerisco la lettura di questo articolo, magari può darti qualche spunto:
https://ocw.mit.edu/courses/mathematics ... s/am36.pdf

Oltre alle tecniche lì indicate, io prenderei in considerazione anche lo sviluppo di un piccolo Monte Carlo (esempio).

O_/


Grazie!
Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
 
Messaggi: 1106
Iscritto il: 15 dic 2011, 18:51

0
voti

[6] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto Utentevenexian » 20 feb 2018, 20:32

Facendo i conti della serva, 10^11 lati non sovrapposti si hanno con minimo 450 000 nodi che si rappresentano con ciascuno con 20 bit, obbligatoriamente 3 Byte. Ogni lato è rappresentato da due nodi più il suo valore. Se consideriamo solo i nodi (*), abbiamo 6x10^11 Byte. Sono 560 GB di RAM. La soluzione analitica mi sembra... difficile.

(*) Trascurando il valore resistivo.
Avatar utente
Foto Utentevenexian
6.369 3 4 7
Master
Master
 
Messaggi: 2188
Iscritto il: 13 mag 2017, 10:07
Località: Venezia (ma va?)

0
voti

[7] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtenteDanteCpp » 20 feb 2018, 21:23

:) il metodo con la migliore efficienza spaziale per memorizzare un circuito di questo tipo è per mezzo di una matrice! :mrgreen:
Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
 
Messaggi: 1106
Iscritto il: 15 dic 2011, 18:51

6
voti

[8] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtentePietroBaima » 20 feb 2018, 21:54

Sistemi lineari di dimensioni così grandi richiedono l’algebra multimodulare e non sono banali da risolvere perché l’efficienza del metodo diventa di una importanza maniacale.

Se si riesce a rendere il sistema di Hessemberg o triangolare o a striscia le cose si semplificano di molto perché si può utilizzare un metodo iterativo (il vantaggio consiste nel fatto che i metodi iterativi non “riempiono” le matrici mentre risolvono e quindi si può memorizzare solo la striscia diagonale della matrice).
Altrimenti la buona vecchia decomposizione LU può dare molto.

In generale però bisogna studiare il caso specifico e trovarne delle proprietà che permettano di adattare un metodo più generale e farlo diventare ad hoc per il problema.

Questo è un problema per esperti di calcolo numerico.
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: 12206
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[9] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtenteDanteCpp » 20 feb 2018, 22:07

PietroBaima ha scritto:Questo è un problema per esperti di calcolo numerico.


Mi sa che è il caso di consultare il mio vecchio professore di matematica applicata, prima di provare ad implementare qualsiasi cosa!
Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
 
Messaggi: 1106
Iscritto il: 15 dic 2011, 18:51

2
voti

[10] Re: Risoluzione rete resistiva di grandi dimensioni

Messaggioda Foto UtentePietroBaima » 20 feb 2018, 22:16

No, nel tuo caso devi lavorare su tutti i fronti possibili.

Prima devi cercare di ridurre il problema dal punto di vista fisico, oppure renderlo scalabile.

Poi dopo pensiamo alla sua trattabilità numerica.
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: 12206
Iscritto il: 12 ago 2012, 1:20
Località: Londra

Prossimo

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti