Risoluzione dei problemi di simulazione
A colpo d'occhio
- Impara a interpretare gli avvisi e gli errori di simulazione e a capire quali indicazioni forniscono sulle cause del fallimento di una simulazione.
- Segui una lista di controllo passo passo per risolvere i problemi di convergenza, dalle verifiche dei collegamenti e della messa a massa fino alle regolazioni avanzate delle impostazioni di analisi.
- Scopri suggerimenti mirati per risolvere i problemi nelle analisi del punto di lavoro, in continua con scansione e del transitorio, così da scegliere la soluzione più adatta al tipo di simulazione che non riesce.
Quando un circuito non può essere simulato, occorre stabilire se il problema riguarda il circuito o il processo di simulazione. Segui le informazioni contenute in questa sezione della guida di riferimento e prova i suggerimenti proposti, 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 impediscono l'esecuzione della 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 sui problemi che il simulatore non è riuscito a risolvere e che hanno impedito il completamento della simulazione. I messaggi di errore indicano che non è stato possibile generare i risultati della simulazione, quindi gli errori devono essere corretti prima di poter analizzare il circuito.
Risoluzione dei problemi di esecuzione delle analisi di simulazione
Una delle sfide comuni a 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 determinare le tensioni e le correnti a riposo. Se non riesce a trovare queste tensioni e correnti (ovvero non converge), non sarà in grado di eseguire un'analisi del circuito.
SPICE utilizza sistemi di equazioni lineari, espressi in forma matriciale, per determinare il punto di lavoro (tensioni e correnti in continua) di un circuito a ogni passo della simulazione. Il circuito viene ridotto a un insieme di conduttanze, che vengono inserite nella matrice per formulare le equazioni (G * V = I). Quando un circuito include elementi non lineari, SPICE esegue più iterazioni delle equazioni lineari per tenere conto delle non linearità. SPICE effettua una stima iniziale delle tensioni ai nodi, quindi calcola le correnti nei rami in base alle conduttanze del circuito. Utilizza poi le correnti nei rami per ricalcolare le tensioni ai nodi e ripete il ciclo. Questo ciclo continua finché tutte le tensioni ai nodi e le correnti nei rami non rientrano nelle tolleranze specificate (convergenza).
Tuttavia, se le tensioni o le correnti non convergono entro un numero specificato di iterazioni, SPICE genera 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 della simulazione come stime iniziali per il passo successivo. Se stai eseguendo un'analisi del transitorio (ovvero il tempo viene fatto avanzare per passi) e SPICE non riesce a convergere a una soluzione utilizzando il passo temporale specificato, il passo temporale viene ridotto automaticamente e il ciclo viene ripetuto. Se il passo temporale viene ridotto eccessivamente, SPICE visualizza un messaggio Timestep too small e interrompe la simulazione.
Risoluzione generale dei problemi di convergenza della simulazione
Quando un'analisi di simulazione non va a buon fine, il problema più comune è la mancata convergenza del circuito verso un punto di lavoro plausibile. Utilizza le tecniche seguenti per risolvere i problemi di convergenza.
Passaggi per la risoluzione dei problemi di convergenza
- Quando riscontri un problema di convergenza, disattiva innanzitutto tutte le analisi tranne quella del punto di lavoro.
- Consulta il pannello Messages per verificare la presenza di errori o avvisi relativi alla simulazione.
- Assicurati che il circuito sia collegato correttamente. Non sono ammessi nodi scollegati e componenti isolati.
- Assicurati che il circuito abbia un nodo di massa e che ogni nodo del circuito disponga di un percorso in continua verso questa massa. Tra i componenti che possono isolare un nodo figurano trasformatori e condensatori. I generatori di tensione sono considerati cortocircuiti in continua, mentre i generatori di corrente sono considerati circuiti aperti in continua.
- Assicurati che gli zeri non siano stati confusi con la lettera O durante l'inserimento dei parametri di simulazione.
-
Assicurati che siano stati specificati i moltiplicatori SPICE corretti (
MEGanzichéMper1e6) per tutti i valori dei componenti o i parametri di simulazione. I moltiplicatori non fanno distinzione tra maiuscole e minuscole. Inoltre, non sono consentiti spazi tra valori e moltiplicatori. Ad esempio, la forma corretta è1.0uF, non1.0 uF. - Assicurati che tutti i dispositivi e i generatori siano impostati sui valori corretti.
- Assicurati che il guadagno di ciascun generatore dipendente sia impostato correttamente.
- Elimina temporaneamente i condensatori o i generatori di corrente in serie ed esegui nuovamente la simulazione.
- Elimina temporaneamente gli induttori o i generatori di tensione in parallelo 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
ITL1a300. Questo consentirà all'analisi del punto di lavoro di eseguire più iterazioni prima di interrompersi. -
Nella scheda Advanced della finestra di dialogo Advanced Analysis Settings, imposta il valore di
RSHUNT1. Questa resistenza viene aggiunta tra ogni nodo del circuito e la massa e aiuta a correggere problemi come gli errori di "matrice singolare". Di norma, RSHUNT deve essere impostato su un valore di resistenza molto elevato, ad esempio1e12. - Aggiungi dispositivi .NS (Nodeset) per definire le tensioni ai nodi. Se la stima iniziale della tensione di un nodo è molto lontana dal valore effettivo, è possibile utilizzare il dispositivo Nodeset per predefinire una tensione iniziale da usare in un passaggio preliminare dell'analisi del punto di lavoro. Configura il parametro Initial Voltage in ogni dispositivo Nodeset che posizioni. È possibile posizionare un dispositivo Nodeset dalla libreria Simulation Generic Components.
- Se il dispositivo Nodeset non favorisce la convergenza, prova a definire le condizioni iniziali posizionando dispositivi .IC. In questo caso, le tensioni ai nodi vengono mantenute ai valori specificati durante l'analisi del punto di lavoro, per poi essere lasciate libere di variare durante l'analisi del transitorio. I dispositivi per le condizioni iniziali possono essere posizionati dalle stesse librerie dei dispositivi Nodeset; il parametro della tensione iniziale deve essere configurato nello stesso modo.
- Abilita l'opzione Use Initial Conditions nelle impostazioni Transient dell'area Analysis Setup & Run del pannello Simulation Dashboard. Questa opzione funziona insieme ai dispositivi .IC (o al parametro IC dei componenti). Attivando questa opzione, l'analisi del punto di lavoro non viene eseguita e le tensioni specificate vengono utilizzate come condizioni iniziali per l'analisi del transitorio.
-
Specifica i parametri della resistenza in serie dei modelli e aumenta l'opzione
GMIN(nella scheda Advanced della finestra di dialogo Advanced Analysis Settings) di un fattore pari a10. -
Specifica la condizione iniziale (Starting Condition) dei dispositivi a semiconduttore, in particolare dei diodi, come
OFF. Questo può aiutare a risolvere i problemi di convergenza numerica escludendo il diodo (o il dispositivo a semiconduttore) dalla prima iterazione e favorendo così la convergenza.
Risoluzione dei problemi dell'analisi con scansione in continua
Quando riscontri un problema con un'analisi con scansione in continua, prova innanzitutto i passaggi elencati sopra per la risoluzione dei problemi di convergenza. Se i problemi persistono, prova quanto segue:
- Modifica il valore del parametro Step nella sezione Analysis Setup & Run di Simulation Dashboard. Se nel modello di un dispositivo sono presenti discontinuità (ad esempio tra le regioni lineare e di saturazione del modello), aumentare l'ampiezza del passo può consentire alla simulazione di superare la discontinuità. Ridurre l'ampiezza dei passi, invece, consente alla simulazione di risolvere le discontinuità dovute a rapide transizioni di tensione.
- Non utilizzare l'analisi con scansione in continua. Alcuni problemi (come l'isteresi) non possono essere risolti mediante l'analisi in continua. In questi casi, è più efficace utilizzare l'analisi del transitorio e far variare a rampa i valori dei generatori di alimentazione appropriati.
Risoluzione dei problemi dell'analisi del transitorio
Se riscontri un problema con un'analisi transitoria, prova innanzitutto i passaggi indicati sopra per la risoluzione dei problemi di convergenza. Se i problemi persistono, 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
RELTOLsu0.01. Aumentando la tolleranza rispetto al valore predefinito di0.001(accuratezza dello 0,1%), saranno necessarie meno iterazioni per convergere verso una soluzione e la simulazione si concluderà molto più rapidamente. -
Aumenta il valore del parametro
ITL4a100. Questo consentirà all'analisi transitoria di eseguire più iterazioni per ogni passo temporale prima di interrompersi. Aumentare questo valore può contribuire a eliminare gli erroritimestep too small, migliorando sia la convergenza sia la velocità di simulazione. -
Riduci l'accuratezza aumentando i valori di
ABSTOLeVNTOL, se i livelli di corrente e tensione lo consentono. Il tuo circuito potrebbe non richiedere risoluzioni fino a 1 µV o 1 pA. Dovresti comunque mantenere una risoluzione di almeno un ordine di grandezza inferiore ai livelli minimi di tensione o corrente previsti per il circuito. - Imposta Integration Method su uno dei metodi Gear. L'integrazione Gear richiede tempi di simulazione più lunghi, ma è generalmente più stabile di quella trapezoidale. L'integrazione Gear può essere particolarmente utile con circuiti che oscillano o presentano percorsi di retroazione.
Altri accorgimenti da provare:
- Modella il circuito in modo realistico. Aggiungi elementi parassiti realistici, in particolare capacità parassite e di giunzione. Utilizza reti snubber RC ai capi dei diodi. Sostituisci i modelli dei dispositivi con sottocircuiti, soprattutto per i dispositivi RF e di potenza.
- Aumenta i tempi di salita e discesa di tutte le sorgenti di impulsi periodici presenti nel circuito. Nemmeno i migliori generatori di impulsi possono commutare istantaneamente.