Solução de problemas de simulação
Num relance
- Aprenda a interpretar avisos e erros de simulação e entenda o que eles revelam sobre os motivos de uma falha na execução.
- Confira uma lista de verificação passo a passo para resolver problemas de convergência, desde a verificação de conexões e aterramento até ajustes avançados nas configurações de análise.
- Veja dicas específicas para solucionar problemas nas análises de ponto de operação, varredura CC e transiente, para escolher a correção adequada ao tipo de simulação que está falhando.
Quando não for possível simular um circuito, você deverá identificar se o problema está no circuito ou no processo de simulação. Siga as informações contidas nesta seção da referência e verifique os pontos sugeridos, um de cada vez.
Às vezes, durante uma simulação, será exibida uma mensagem informando erros ou avisos. Essas mensagens são listadas no painel Messages .
- Warning Messages – as mensagens de aviso não impedem a execução da simulação. Em geral, elas fornecem informações sobre alterações que o SPICE precisou fazer no circuito para concluir a simulação. Isso inclui parâmetros inválidos ou ausentes, entre outros.
- Error Messages – as mensagens de erro fornecem informações sobre problemas que o simulador não conseguiu resolver e que impediram a execução da simulação. As mensagens de erro indicam que não foi possível gerar resultados de simulação, portanto, os erros devem ser corrigidos antes que você possa analisar o circuito.
Solução de falhas na análise de simulação
Um dos desafios de todos os simuladores é a convergência. O que exatamente significa o termo convergence? Assim como a maioria dos simuladores, o mecanismo SPICE do Altium Designer usa um processo iterativo de resolução repetida das equações que representam seu circuito para encontrar as tensões e correntes de repouso do circuito. Se não conseguir encontrar essas tensões e correntes (não convergir), ele não conseguirá realizar uma análise do circuito.
O SPICE usa equações lineares simultâneas, expressas em forma matricial, para determinar o ponto de operação (tensões e correntes CC) de um circuito em cada etapa da simulação. O circuito é reduzido a um conjunto de condutâncias, que são inseridas na matriz para formar as equações (G * V = I). Quando um circuito inclui elementos não lineares, o SPICE usa várias iterações das equações lineares para levar em conta as não linearidades. O SPICE faz uma estimativa inicial das tensões dos nós e, em seguida, calcula as correntes dos ramos com base nas condutâncias do circuito. Depois, o SPICE usa as correntes dos ramos para recalcular as tensões dos nós, e o ciclo se repete. Esse ciclo continua até que todas as tensões dos nós e correntes dos ramos estejam dentro das tolerâncias especificadas (convirjam).
No entanto, se as tensões ou correntes não convergirem dentro de um número especificado de iterações, o SPICE produzirá mensagens de erro (como singular matrix, Gmin stepping failed, source stepping failed ou iteration limit reached) e interromperá a simulação. O SPICE usa os resultados de cada etapa da simulação como estimativas iniciais para a etapa seguinte. Se você estiver realizando uma análise de transientes (ou seja, com avanço do tempo em passos) e o SPICE não conseguir convergir para uma solução usando o passo de tempo especificado, esse passo será reduzido automaticamente e o ciclo será repetido. Se o passo de tempo for reduzido demais, o SPICE exibirá uma mensagem Timestep too small e interromperá a simulação.
Solução de problemas gerais de convergência da simulação
Quando uma análise de simulação falha, o problema mais comum é a incapacidade do circuito de convergir para um ponto de operação coerente. Use as técnicas a seguir para resolver problemas de convergência.
Etapas para solucionar problemas de convergência
- Quando houver um problema de convergência, primeiro desative todas as análises, exceto a análise do ponto de operação.
- Consulte o painel Messages para verificar se há erros ou avisos relacionados à simulação.
- Certifique-se de que o circuito esteja conectado corretamente. Nós sem conexão e componentes soltos não são permitidos.
- Certifique-se de que o circuito tenha um nó de terra e que todos os nós do circuito tenham um caminho CC até esse terra. Componentes que podem isolar um nó incluem transformadores e capacitores. Fontes de tensão são consideradas curtos-circuitos em CC, e fontes de corrente são consideradas circuitos abertos em CC.
- Certifique-se de que zeros não tenham sido confundidos com a letra O ao inserir os parâmetros de simulação.
-
Certifique-se de que os multiplicadores SPICE adequados tenham sido especificados (
MEGem vez deMpara1e6) para todos os valores de componentes ou parâmetros de simulação. Os multiplicadores não diferenciam maiúsculas de minúsculas. Além disso, não são permitidos espaços entre valores e multiplicadores. Por exemplo, deve ser1.0uF, e não1.0 uF. - Certifique-se de que todos os dispositivos e fontes estejam configurados com os valores adequados.
- Certifique-se de que o ganho de cada fonte dependente esteja configurado corretamente.
- Remova temporariamente os capacitores ou fontes de corrente em série e execute a simulação novamente.
- Remova temporariamente os indutores ou fontes de tensão em paralelo e execute a simulação novamente.
-
Na aba Advanced da caixa de diálogo Advanced Analysis Settings (acessada clicando em Settings na região Analysis Setup & Run do painel Simulation Dashboard), aumente o valor do parâmetro
ITL1para300. Isso permitirá que a análise do ponto de operação execute mais iterações antes de desistir. -
Na aba Advanced da caixa de diálogo Advanced Analysis Settings, defina o valor de
RSHUNT1. Esse valor de resistência é adicionado entre cada nó do circuito e o terra e ajuda a corrigir problemas como erros de "matriz singular". Como regra, o valor de RSHUNT deve ser definido como uma resistência muito alta, 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 distante do valor real, o dispositivo Nodeset poderá ser usado para predefinir uma tensão inicial, usada em uma etapa preliminar da análise do ponto de operação. Configure o parâmetro Initial Voltage em cada dispositivo Nodeset inserido. Um Nodeset pode ser inserido a partir da biblioteca Simulation Generic Components.
- Se o dispositivo Nodeset não ajudar na convergência, tente definir as condições iniciais inserindo dispositivos .IC. Nesse caso, as tensões dos nós são mantidas nos valores especificados durante a análise do ponto de operação e, em seguida, liberadas durante a análise de transientes. Os dispositivos de condição inicial podem ser inseridos a partir das mesmas bibliotecas que um dispositivo Nodeset, e o parâmetro de tensão inicial deve ser configurado da mesma forma.
- Ative a opção Use Initial Conditions nas configurações de Transient, na região Analysis Setup & Run do painel Simulation Dashboard . Essa opção funciona em conjunto com os dispositivos .IC (ou com o parâmetro IC dos componentes). Ao ativar essa opção, a análise do ponto de operação não é realizada, e as tensões especificadas são usadas como condições iniciais para a análise de transientes.
-
Especifique os parâmetros de resistência em série dos seus modelos e aumente a opção
GMIN(na aba Advanced da caixa de diálogo Advanced Analysis Settings) por um fator de10. -
Especifique a condição inicial (condição de partida) dos dispositivos semicondutores, especialmente dos diodos, como
OFF. Isso pode ajudar a resolver problemas de convergência numérica ao ignorar o diodo (ou dispositivo semicondutor) na primeira iteração, contribuindo para melhorar a convergência.
Solução de problemas da análise de varredura CC
Quando houver um problema com uma análise de varredura CC, tente primeiro as etapas listadas acima para solucionar problemas de convergência. Se os problemas persistirem, tente o seguinte:
- Altere o valor do parâmetro Step na seção Analysis Setup & Run de Simulation Dashboard. Se houver descontinuidades no modelo de um dispositivo (talvez entre as regiões linear e de saturação do modelo), aumentar o tamanho do passo poderá permitir que a simulação salte a descontinuidade. Por outro lado, reduzir os passos permitirá que a simulação resolva descontinuidades de transição rápida de tensão.
- Não use a análise de varredura CC. Alguns problemas (como a histerese) não podem ser resolvidos pela análise CC. Nesses casos, é mais eficaz usar a análise de transientes e variar em rampa os valores das fontes de alimentação apropriadas.
Solução de problemas da análise de transientes
Quando você tiver um problema com uma análise de transientes, primeiro tente as etapas listadas acima para solucionar problemas de convergência. Se os problemas persistirem, tente o seguinte.
Na aba Advanced da caixa de diálogo Advanced Analysis Settings (acessada clicando em Settings na região Analysis Setup & Run do painel Simulation Dashboard):
-
Defina o parâmetro
RELTOLcomo0.01. Ao aumentar a tolerância em relação ao valor padrão 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. Isso permitirá que a análise de transientes execute mais iterações em cada passo de tempo antes de desistir. Aumentar esse valor pode ajudar a eliminar erros detimestep too small, melhorando tanto a convergência quanto a velocidade da simulação. -
Reduza a precisão aumentando os valores de
ABSTOLeVNTOL, se os níveis de corrente e tensão permitirem. Seu circuito pode não exigir resoluções tão baixas quanto 1 µV ou 1 pA. No entanto, você deve permitir pelo menos uma ordem de grandeza abaixo dos menores níveis de tensão ou corrente esperados no circuito. - Altere Integration Method para um dos métodos Gear. A integração de Gear exige mais tempo de simulação, mas geralmente é mais estável que a trapezoidal. A integração de Gear pode ser particularmente útil em circuitos que oscilam ou têm caminhos de realimentação.
Outras medidas que você pode tentar:
- Modele seu circuito de forma realista. Adicione elementos parasitas realistas, especialmente capacitâncias parasitas e de junção. Use circuitos snubber RC nos diodos. Substitua modelos de dispositivos por subcircuitos, especialmente no caso de dispositivos de RF e de potência.
- Aumente os tempos de subida e descida de todas as fontes de pulsos periódicos do circuito. Mesmo os melhores geradores de pulsos não conseguem comutar instantaneamente.