Resolução de Problemas de Simulação
Quando um circuito não simula, tem de identificar se o problema está no circuito ou no processo de simulação. Siga a informação contida nesta secção da referência e percorra os pontos sugeridos, tentando um de cada vez.
Por vezes, durante uma simulação, é apresentada uma mensagem a comunicar erros ou avisos. Estas mensagens são listadas no painel Messages .
- Warning Messages – as mensagens de aviso não são fatais para a simulação. Normalmente fornecem informação sobre alterações que o SPICE teve de fazer ao circuito para conseguir concluir a simulação. Estas incluem parâmetros inválidos ou em falta, entre outros.
- Error Messages – as mensagens de erro fornecem informação sobre problemas que o simulador não conseguiu resolver e que foram fatais para o processo de simulação. As mensagens de erro indicam que não foi possível gerar resultados de simulação, pelo que têm de ser corrigidas antes de conseguir analisar o circuito.
Resolução de Problemas de Falhas na Análise de Simulação
Um dos desafios de todos os simuladores é a convergência. O que significa exatamente este termo, convergence? Tal como a maioria dos simuladores, o motor SPICE do Altium Designer usa um processo iterativo de resolução repetida das equações que representam o seu circuito, para encontrar as tensões e correntes quiescentes do circuito. Se não conseguir encontrar estas tensões e correntes (falhar a convergência), então não conseguirá efetuar uma análise do circuito.
O SPICE usa equações lineares simultâneas, expressas sob a forma matricial, para determinar o ponto de funcionamento (tensões e correntes DC) de um circuito em cada passo da simulação. O circuito é reduzido a um conjunto de condutâncias que são colocadas na matriz para formar as equações (G * V = I). Quando um circuito inclui elementos não lineares, o SPICE usa múltiplas iterações das equações lineares para ter em conta as não linearidades. O SPICE faz uma estimativa inicial das tensões nos nós e depois calcula as correntes nos ramos com base nas condutâncias do circuito. Em seguida, o SPICE usa as correntes nos ramos para recalcular as tensões nos nós, e o ciclo repete-se. Este ciclo continua até que todas as tensões nos nós e correntes nos ramos fiquem dentro das tolerâncias especificadas (converjam).
No entanto, se as tensões ou correntes não convergirem dentro de um número especificado de iterações, o SPICE produz mensagens de erro (como singular matrix, Gmin stepping failed, source stepping failed ou iteration limit reached) e aborta a simulação. O SPICE usa os resultados de cada passo da simulação como estimativas iniciais para o passo seguinte. Se estiver a executar uma análise Transient (ou seja, o tempo está a avançar por incrementos) e o SPICE não conseguir convergir para uma solução usando o passo temporal especificado, o passo temporal é automaticamente reduzido e o ciclo repete-se. Se o passo temporal for demasiado reduzido, o SPICE apresenta uma mensagem Timestep too small e aborta a simulação.
Resolução Geral de Problemas de Convergência de Simulação
Quando uma análise de simulação falha, o problema mais comum é a incapacidade do circuito de convergir para um ponto de funcionamento sensato. Use as seguintes técnicas para resolver problemas de convergência.
Passos para Resolução de Problemas de Convergência
- Quando tiver um problema de convergência, primeiro desative todas as análises, exceto a análise Operating Point.
- Consulte o painel Messages para quaisquer erros/avisos relacionados com a simulação.
- Certifique-se de que o circuito está corretamente ligado. Não são permitidos nós soltos nem componentes isolados.
- Certifique-se de que o circuito tem um nó de terra e que todos os nós do circuito têm um caminho DC para essa terra. Os componentes que podem isolar um nó incluem transformadores e condensadores. As fontes de tensão são consideradas um curto-circuito DC, as fontes de corrente são consideradas um circuito aberto DC.
- Certifique-se de que os zeros não foram confundidos com a letra O ao introduzir os parâmetros de simulação.
-
Certifique-se de que foram especificados os multiplicadores SPICE corretos (
MEGem vez deMpara1e6) para quaisquer valores de componentes ou parâmetros de simulação. Os multiplicadores não são sensíveis a maiúsculas/minúsculas. Além disso, não são permitidos espaços entre valores e multiplicadores. Por exemplo, deve ser1.0uFe não1.0 uF. - Certifique-se de que todos os dispositivos e fontes estão definidos com os valores corretos.
- Certifique-se de que o ganho de qualquer fonte dependente está corretamente definido.
- Elimine temporariamente condensadores em série ou fontes de corrente e execute novamente a simulação.
- Elimine temporariamente indutores em paralelo ou fontes de tensão e execute novamente a simulação.
-
No separador Advanced da caixa de diálogo Advanced Analysis Settings (acedida clicando em Settings na região Analysis Setup & Run do painel Simulation Dashboard), aumente o valor do parâmetro
ITL1para300. Isto permitirá que a análise Operating Point faça mais iterações antes de desistir. -
No separador Advanced da caixa de diálogo Advanced Analysis Settings, defina o valor de
RSHUNT1. Este valor de resistência é adicionado entre cada nó do circuito e a terra e ajuda a corrigir problemas como erros de "singular matrix". Regra geral, o valor RSHUNT deve ser definido para uma resistência muito elevada, como1e12. - Adicione dispositivos .NS (Nodeset) para definir as tensões dos nós. Se a estimativa inicial da tensão de um nó estiver muito longe do valor real, o dispositivo Nodeset pode ser usado para predefinir uma tensão inicial que é usada numa passagem preliminar da análise do ponto de funcionamento. Configure o parâmetro Initial Voltage em cada dispositivo Nodeset que colocar. Um Nodeset pode ser colocado a partir da biblioteca Simulation Generic Components.
- Se o dispositivo Nodeset não ajudar na convergência, tente definir as condições iniciais colocando dispositivos .IC. Neste caso, as tensões dos nós são mantidas nos valores especificados durante a análise Operating Point, sendo depois libertadas durante a análise Transient. Os dispositivos Initial Condition podem ser colocados a partir das mesmas bibliotecas que um dispositivo Nodeset; o parâmetro Initial Voltage tem de ser configurado da mesma forma.
- Ative a opção Use Initial Conditions nas definições de Transient na região Analysis Setup & Run do painel Simulation Dashboard . Esta opção funciona em conjunto com os dispositivos .IC (ou com o parâmetro IC dos componentes). Ao definir esta opção, a análise Operating Point não é executada e as tensões especificadas são usadas como condições iniciais para a análise Transient.
-
Especifique os parâmetros de resistência em série dos seus modelos e aumente a opção
GMIN(no separador Advanced da caixa de diálogo Advanced Analysis Settings) por um fator de10. -
Especifique a condição inicial (Starting Condition) dos dispositivos semicondutores, especialmente dos díodos, como
OFF. Isto pode ajudar a resolver problemas de convergência numérica, ignorando o díodo (ou dispositivo semicondutor) na primeira iteração, ajudando a melhorar a convergência.
Resolução de Problemas de Análise DC Sweep
Quando tiver um problema com uma análise DC Sweep, tente primeiro os passos listados acima nos passos de resolução de problemas de convergência. Se continuar a encontrar problemas, tente o seguinte:
- Altere o valor do parâmetro Step na secção Analysis Setup & Run de Simulation Dashboard. Se existirem descontinuidades num modelo de dispositivo (talvez entre as regiões linear e de saturação do modelo), aumentar o tamanho do passo pode permitir que a simulação ultrapasse a descontinuidade. Tornar os passos mais pequenos, por outro lado, permitirá que a simulação resolva descontinuidades rápidas de transição de tensão.
- Não use a análise DC Sweep. Alguns problemas (como a histerese) não podem ser resolvidos por análise DC. Nesses casos, é mais eficaz usar a análise Transient e fazer variar gradualmente os valores das fontes de alimentação apropriadas.
Resolução de Problemas de Análise Transient
Quando tiver um problema com uma análise Transient, tente primeiro os passos listados acima nos passos de resolução de problemas de convergência. Se continuar a encontrar problemas, tente o seguinte.
No separador Advanced da caixa de diálogo Advanced Analysis Settings (acedida clicando em Settings na região Analysis Setup & Run do painel Simulation Dashboard):
-
Defina o parâmetro
RELTOLpara0.01. Ao aumentar a tolerância relativamente ao valor predefinido de0.001(precisão de 0,1%), serão necessárias menos iterações para convergir para uma solução e a simulação será concluída muito mais rapidamente. -
Aumente o valor do parâmetro
ITL4para100. Isto permitirá que a análise Transient faça mais iterações para cada passo temporal antes de desistir. Aumentar este valor pode ajudar a eliminar errostimestep too small, melhorando tanto a convergência como a velocidade da simulação. -
Reduza a precisão aumentando os valores de
ABSTOLeVNTOL, se os níveis de corrente/tensão o permitirem. O seu circuito específico pode não exigir resoluções até 1uV ou 1pA. No entanto, deve permitir pelo menos uma ordem de grandeza abaixo dos níveis de tensão ou corrente mais baixos esperados no seu circuito. - Altere Integration Method para um dos métodos Gear. A integração Gear requer um tempo de simulação mais longo, mas geralmente é mais estável do que a trapezoidal. A integração Gear pode ser particularmente útil em circuitos que oscilam ou têm caminhos de realimentação.
Outras coisas a experimentar:
- Modele o seu circuito de forma realista. Adicione parasitas realistas, especialmente capacitância parasita/de junção. Use RC snubbers em torno dos díodos. Substitua modelos de dispositivos por subcircuitos, especialmente para dispositivos RF e de potência.
- Aumente os tempos de subida/descida de quaisquer fontes Periodic Pulse no seu circuito. Mesmo os melhores geradores de impulsos não conseguem comutar instantaneamente.