Risoluzione dei problemi di simulazione

Quando un circuito non viene simulato, è necessario identificare se il problema si trova nel circuito oppure nel processo di simulazione. Segui le informazioni contenute in questa sezione del riferimento e passa in rassegna i punti suggeriti, provandone uno alla volta.

A volte, durante una simulazione, viene visualizzato un messaggio che segnala errori o avvisi. Questi messaggi sono elencati nel pannello Messages .

  • Warning Messages – i messaggi di avviso non sono fatali per la simulazione. In genere forniscono informazioni sulle modifiche che SPICE ha dovuto apportare al circuito per completare la simulazione. Tra queste rientrano parametri non validi o mancanti, e così via.
  • Error Messages – i messaggi di errore forniscono informazioni su problemi che il simulatore non è riuscito a risolvere e che sono stati fatali per il processo di simulazione. I messaggi di errore indicano che non è stato possibile generare i risultati della simulazione, quindi devono essere corretti prima di poter analizzare il circuito.

Risoluzione dei problemi relativi agli errori dell’analisi di simulazione

Una delle sfide di tutti i simulatori è la convergenza. Che cosa si intende esattamente con il termine convergence? Come la maggior parte dei simulatori, il motore SPICE di Altium Designer utilizza un processo iterativo che risolve ripetutamente le equazioni che rappresentano il circuito, per trovare le tensioni e le correnti di riposo del circuito. Se non riesce a trovare queste tensioni e correnti (cioè non converge), non sarà in grado di eseguire un’analisi del circuito.

SPICE utilizza equazioni lineari simultanee, espresse in forma matriciale, per determinare il punto di funzionamento (tensioni e correnti DC) di un circuito a ogni passo della simulazione. Il circuito viene ridotto a un insieme di conduttanze che vengono inserite nella matrice per formare le equazioni (G * V = I). Quando un circuito include elementi non lineari, SPICE utilizza più iterazioni delle equazioni lineari per tenere conto delle non linearità. SPICE effettua una stima iniziale delle tensioni ai nodi, quindi calcola le correnti di ramo in base alle conduttanze del circuito. SPICE usa poi le correnti di ramo per ricalcolare le tensioni ai nodi, e il ciclo viene ripetuto. Questo ciclo continua finché tutte le tensioni ai nodi e le correnti di ramo non rientrano nelle tolleranze specificate (convergono).

Tuttavia, se le tensioni o le correnti non convergono entro un numero specificato di iterazioni, SPICE produce messaggi di errore (come singular matrix, Gmin stepping failed, source stepping failed o iteration limit reached) e interrompe la simulazione. SPICE utilizza i risultati di ogni passo di simulazione come stime iniziali per il passo successivo. Se si sta eseguendo un’analisi Transient (cioè il tempo avanza per passi) e SPICE non riesce a convergere su una soluzione usando il timestep specificato, il timestep viene ridotto automaticamente e il ciclo viene ripetuto. Se il timestep viene ridotto troppo, SPICE visualizza un messaggio Timestep too small e interrompe la simulazione.

Risoluzione generale dei problemi di convergenza della simulazione

Quando un’analisi di simulazione fallisce, il problema più comune è l’incapacità del circuito di convergere verso un punto di funzionamento sensato. Utilizza le seguenti tecniche per risolvere i problemi di convergenza.

Passaggi per la risoluzione dei problemi di convergenza

  • Quando si verifica un problema di convergenza, per prima cosa disattiva tutte le analisi tranne l’analisi del punto di funzionamento.
  • Consulta il pannello Messages per eventuali errori/avvisi relativi alla simulazione.
  • Assicurati che il circuito sia cablato correttamente. Nodi sospesi e componenti vaganti non sono consentiti.
  • Assicurati che il circuito abbia un nodo di massa e che ogni nodo del circuito abbia un percorso DC verso questa massa. I componenti che possono isolare un nodo includono trasformatori e condensatori. Le sorgenti di tensione sono considerate un cortocircuito DC, le sorgenti di corrente sono considerate un circuito aperto DC.
  • Assicurati che gli zeri non siano stati confusi con la lettera O durante l’immissione dei parametri di simulazione.
  • Assicurati che siano stati specificati i corretti moltiplicatori SPICE (MEG invece di M per 1e6) per qualsiasi valore dei componenti o parametro di simulazione. I moltiplicatori non fanno distinzione tra maiuscole e minuscole. Inoltre, non sono consentiti spazi tra i valori e i moltiplicatori. Ad esempio, deve essere 1.0uF, non 1.0 uF.
  • Assicurati che tutti i dispositivi e le sorgenti siano impostati sui valori corretti.
  • Assicurati che il guadagno di qualsiasi sorgente dipendente sia impostato correttamente.
  • Elimina temporaneamente i condensatori in serie o le sorgenti di corrente ed esegui nuovamente la simulazione.
  • Elimina temporaneamente gli induttori in parallelo o le sorgenti di tensione ed esegui nuovamente la simulazione.
  • Nella scheda Advanced della finestra di dialogo Advanced Analysis Settings (accessibile facendo clic su Settings nell’area Analysis Setup & Run del pannello Simulation Dashboard), aumenta il valore del parametro ITL1 a 300. Questo consentirà all’analisi del punto di funzionamento di eseguire più iterazioni prima di interrompersi.
  • Nella scheda Advanced della finestra di dialogo Advanced Analysis Settings, imposta il valore di RSHUNT1. Questo valore di resistenza, aggiunto tra ciascun nodo del circuito e la massa, aiuta a correggere problemi come gli errori di "singular matrix". Come regola generale, il valore RSHUNT deve essere impostato su una resistenza molto elevata, ad esempio 1e12.
  • Aggiungi dispositivi .NS (Nodeset) per definire le tensioni dei nodi. Se la stima iniziale della tensione di un nodo è molto lontana dal valore corretto, il dispositivo Nodeset può essere usato per predefinire una tensione iniziale utilizzata per un passaggio preliminare dell’analisi del punto di funzionamento. Configura il parametro Initial Voltage in ogni dispositivo Nodeset inserito. Un Nodeset può essere inserito dalla libreria Simulation Generic Components.
  • Se il dispositivo Nodeset non aiuta la convergenza, prova a definire le condizioni iniziali inserendo dispositivi .IC. In questo caso, le tensioni dei nodi vengono mantenute ai valori specificati durante l’analisi del punto di funzionamento, quindi rilasciate durante l’analisi Transient. I dispositivi Initial Condition possono essere inseriti dalle stesse librerie di un dispositivo Nodeset; il parametro Initial Voltage deve essere configurato nello stesso modo.
  • Abilita l’opzione Use Initial Conditions nelle impostazioni Transient nell’area Analysis Setup & Run del pannello Simulation Dashboard . Questa opzione funziona insieme ai dispositivi .IC (o al parametro IC dei componenti). Impostando questa opzione, l’analisi del punto di funzionamento non viene eseguita e le tensioni specificate vengono utilizzate come condizioni iniziali per l’analisi Transient.
  • Specifica i parametri di resistenza in serie dei tuoi modelli e aumenta l’opzione GMIN (scheda Advanced della finestra di dialogo Advanced Analysis Settings) di un fattore 10.
  • Specifica la condizione iniziale (Starting Condition) dei dispositivi a semiconduttore, in particolare dei diodi, come OFF. Questo può aiutare a risolvere problemi di convergenza numerica saltando il diodo (o il dispositivo a semiconduttore) nella prima iterazione, contribuendo a migliorare la convergenza.

Risoluzione dei problemi dell’analisi DC Sweep

Quando si verifica un problema con un’analisi DC Sweep, prova innanzitutto i passaggi elencati sopra nella procedura di risoluzione dei problemi di convergenza. Se continui a riscontrare problemi, prova quanto segue:

  • Modifica il valore del parametro Step nella sezione Analysis Setup & Run di Simulation Dashboard. Se esistono discontinuità in un modello di dispositivo (ad esempio tra le regioni lineare e di saturazione del modello), aumentare la dimensione del passo può consentire alla simulazione di superare la discontinuità. Ridurre i passi, invece, consentirà alla simulazione di risolvere discontinuità rapide nelle transizioni di tensione.
  • Non utilizzare l’analisi DC Sweep. Alcuni problemi (come l’isteresi) non possono essere risolti con l’analisi DC. In questi casi, è più efficace utilizzare l’analisi Transient e far variare gradualmente i valori delle sorgenti di alimentazione appropriate.

Risoluzione dei problemi dell’analisi Transient

Quando si verifica un problema con un’analisi Transient, prova innanzitutto i passaggi elencati sopra nella procedura di risoluzione dei problemi di convergenza. Se continui a riscontrare problemi, prova quanto segue.

Nella scheda Advanced della finestra di dialogo Advanced Analysis Settings (accessibile facendo clic su Settings nell’area Analysis Setup & Run del pannello Simulation Dashboard):

  • Imposta il parametro RELTOL su 0.01. Aumentando la tolleranza rispetto al valore predefinito di 0.001 (accuratezza dello 0,1%), saranno necessarie meno iterazioni per convergere su una soluzione e la simulazione verrà completata molto più rapidamente.
  • Aumenta il valore del parametro ITL4 a 100. Questo consentirà all’analisi Transient di eseguire più iterazioni per ogni timestep prima di interrompersi. L’aumento di questo valore può aiutare a eliminare gli errori timestep too small , migliorando sia la convergenza sia la velocità della simulazione.
  • Riduci l’accuratezza aumentando i valori di ABSTOL e VNTOL, se i livelli di corrente/tensione lo consentono. Il tuo circuito specifico potrebbe non richiedere risoluzioni fino a 1uV o 1pA. Dovresti comunque prevedere almeno un ordine di grandezza al di sotto dei livelli minimi di tensione o corrente attesi nel circuito.
  • Modifica Integration Method impostandolo su uno dei metodi Gear. L’integrazione Gear richiede un tempo di simulazione maggiore, ma in genere è più stabile rispetto al metodo trapezoidale. L’integrazione Gear può essere particolarmente utile con circuiti che oscillano o hanno percorsi di retroazione.

Ulteriori tentativi possibili:

  • Modella il circuito in modo realistico. Aggiungi parassiti realistici, in particolare capacità parassite/di giunzione. Usa reti RC snubber attorno ai diodi. Sostituisci i modelli dei dispositivi con sottocircuiti, soprattutto per dispositivi RF e di potenza.
  • Aumenta i tempi di salita/discesa di eventuali sorgenti a impulso periodico nel circuito. Anche i migliori generatori di impulsi non possono commutare istantaneamente.
AI-LocalizedLocalizzato tramite A
Se trovi un problema, seleziona il testo/l’immagine e premi Ctrl + Invio per inviarci il tuo feedback.
Disponibilità delle funzionalità

Le funzionalità disponibili dipendono dalla soluzione Altium in uso – Altium Develop, un’edizione di Altium Agile (Agile Teams o Agile Enterprise), oppure Altium Designer (con licenza attiva).

Se non vedi nel tuo software una funzionalità descritta,  contatta il team vendite di Altium per saperne di più.

Documentazione legacy

La documentazione di Altium Designer non è più suddivisa per versione. Se è necessario accedere alla documentazione delle versioni precedenti di Altium Designer, visitare la sezione Documentazione legacy della pagina Altri programmi di installazione.

Contenuto