Sempre que você coloca um componente em sua PCB, é quase como se estivesse apostando. Todos os componentes têm tolerâncias, e algumas destas são muito precisas (resistores, por exemplo), mas outros componentes podem ter tolerâncias muito amplas em seus valores nominais (por exemplo, indutores enrolados ou ferrites). No caso de as tolerâncias desses componentes se tornarem muito grandes, como você pode prever como essas tolerâncias afetarão seus circuitos?
Embora você pudesse calcular variações em torno de valores elétricos nominais (tensão, corrente ou potência) manualmente, realizar esses cálculos à mão é muito demorado, especialmente em circuitos grandes. No entanto, os simuladores SPICE adotaram um tipo muito útil de simulação da teoria da probabilidade para ajudá-lo a responder a essas perguntas. Esse tipo de simulação é conhecido como Monte Carlo, e agora você pode realizar essa simulação com o pacote SPICE no Altium Designer.
Neste artigo, fornecerei uma visão geral da teoria envolvida na compreensão e construção de simulações de Monte Carlo, em seguida, mostrarei alguns resultados de exemplo para um circuito regulador de potência e como os resultados são afetados pelas tolerâncias. As simulações de Monte Carlo geram uma grande quantidade de dados que você pode usar para obter estatísticas sobre a operação do seu circuito, e isso lhe dá uma boa ideia de se o seu produto tem uma alta probabilidade de funcionar de acordo com suas especificações devido às tolerâncias nos valores dos componentes.
As simulações de Monte Carlo operam em um processo simples: gerar aleatoriamente um conjunto de números e, em seguida, usar esses números aleatórios em um modelo matemático para calcular algo útil. Quando uma simulação de Monte Carlo é usada em SPICE, a simulação gera os valores dos componentes do seu circuito aleatoriamente usando tolerâncias que você define. Em seguida, usa esses valores de componentes gerados aleatoriamente para executar uma simulação SPICE padrão. Esse processo é repetido várias vezes (às vezes centenas de vezes) para fornecer um conjunto de dados descrevendo como o comportamento do seu circuito muda devido às tolerâncias dos componentes.
Os pacotes SPICE implementam simulações de Monte Carlo por meio de um processo simples. Isso envolve a geração de números aleatórios e o cálculo de tensão e corrente no algoritmo padrão SPICE, seguido pela exibição dos resultados em uma tabela ou gráfico:
No exemplo a seguir, eu usei o circuito do conversor buck mostrado abaixo. Este circuito usa um indutor relativamente grande na seção principal (L1), seguido por um filtro L na saída para reduzir ainda mais o ruído de comutação. O capacitor de saída tem um resistor snubber para ajudar a reduzir a intensidade da resposta transitória e suavizar a tensão de saída.
Este circuito tem como objetivo reduzir a tensão de entrada de 25 V para cerca de 6,75 V. Na minha simulação, vou permitir que os valores do indutor variem em até 30% e realizarei 15 execuções. Essa grande variação pode ser encontrada em alguns indutores de fio enrolado e ferrites, e usar uma variação tão grande pode ajudar você a ver quais seriam os valores extremos de ripple e overshoot.
A outra razão pela qual o indutor é o componente variado é que ele é um determinante principal do ripple de saída quando o conversor está operando no modo de condução contínua. Poderíamos até ir um passo além e olhar para a corrente do indutor em si para ver quão próxima a corrente do indutor chega da condução contínua, se realmente precisássemos verificar o pior comportamento elétrico.
Alguns resultados iniciais mostrando a resposta transitória dada variações de 30% nos valores dos componentes são mostrados abaixo. Dessa janela, vemos que o conversor já exibe algum sobressalto variando de 8,37 V a 8,56 V, dependendo dos valores dos indutores. Os valores para o contorno inferior (em verde, L1 = 91,9 uH, L2 = 6,16 uH) e contorno superior (em roxo, L1 = 122uH, L2 = 7,64 uH) estão marcados no gráfico abaixo.
Cada curva corresponde a um par de valores de indutores gerados aleatoriamente. A partir dos resultados, podemos ver claramente os efeitos das variações no indutor:
O fato de o ripple de saída permanecer tão baixo é encorajador; isso significa que podemos confiar neste design para produzir um ripple consistente assumindo pequenas variações em todos os outros parâmetros.
Sem olhar para a equação do ripple de saída como uma função da indutância de saída, é natural assumir que uma mudança na indutância de +/- 30% produziria variações igualmente grandes na indutância de saída. No entanto, se olharmos para a equação do ripple da forma de onda de tensão na corrente de saída para um conversor buck operando no modo de condução contínua, podemos ver por que isso não é o caso:
Como o valor da indutância está no denominador, o efeito dessas variações é reduzido. Você pode ver isso ao fazer uma perturbação sobre os valores nominais do indutor e olhar como a sensibilidade do ripple é proporcional a qualquer variação nas indutâncias:
O impacto dessas variações é reduzido pelo valor do indutor. Em outras palavras, uma tolerância de 30% para um indutor grande criará uma mudança muito menor no ripple de saída do que a mesma tolerância de 30% em um indutor menor. Esse comportamento é típico quando a relação entre algum valor elétrico (corrente neste caso) está relacionada de forma não linear ao valor do componente em questão.
Além disso, a frequência de corte de 3 dB no filtro de saída (L2 + C2) já está abaixo da frequência PWM que modula Q1. A atenuação de 3 dB nesta seção do filtro é nominalmente de 41,1 kHz, enquanto a frequência de ripple corresponde à frequência PWM de 100 kHz. O ripple já será significativamente filtrado, então as variações resultantes na frequência de corte não têm tanto impacto no ripple de saída.
Se você vai realizar uma análise de Monte Carlo, pode ser necessário fazer alguma análise estatística para realmente entender os limites do comportamento do seu circuito devido a variações aleatórias nos valores dos componentes. No gráfico abaixo, peguei meus resultados de análise transiente acima e extraí os valores máximos de tensão que ocorrem durante a fase de ligação devido ao overshoot. Calculei a média e o desvio padrão para quantificar os efeitos das variações nos valores de indutância.
Para exportar seus resultados transientes em CSV ou outro formato de dados, use o comando Arquivo → Exportar → Gráfico no menu principal do Altium Designer. Você pode então importar seus dados para o Excel, MATLAB, Mathematica ou outro programa de análise de dados.
Se construirmos um intervalo de confiança usando nossos dados coletados e os valores estatísticos acima, 95% desses circuitos exibirão um overshoot variando de 8,375 V a 8,605 V. Se quiséssemos realizar uma análise mais aprofundada, como uma análise de pior caso, poderíamos usar qualquer um desses valores extremos para entender o comportamento do circuito.
Para avaliar a confiabilidade estatisticamente, você poderia executar um número muito maior de simulações, então você teria muitos pontos de dados para examinar. Com mais dados, você poderia construir um histograma a partir de suas medições extraídas e usar isso para obter uma distribuição de probabilidade que define o comportamento do circuito; você poderia então usar esses valores para determinar a probabilidade de que o circuito opere em um regime totalmente inaceitável (além dos valores extremos em nosso intervalo de confiança).
Apenas por diversão, aumentei o número de simulações realizadas nesta análise para 100 corridas. Os resultados transientes com 100 iterações são mostrados abaixo. A partir dessas curvas, podemos extrair novamente a tensão máxima de overshoot durante a fase de ligação.
Se você exportar os resultados para o Excel, agora terá dados suficientes para criar um histograma como o mostrado abaixo. A curva laranja sobreposta mostra a função cumulativa determinada a partir dos dados agrupados; ela mostra qual porcentagem dos dados está no ou abaixo do intervalo atual e pode ser usada como uma medida da faixa de operação esperada deste circuito.
A conclusão aqui é que temos uma maneira rápida e fácil de verificar como o desempenho do circuito variará dado as tolerâncias dos componentes. Se os resultados não estiverem dentro das nossas especificações ou margens de segurança, então o circuito precisará ser modificado antes de criar o layout da PCB e montar um protótipo.
Se você está interessado em executar simulações de Monte Carlo para seus circuitos dentro do Altium Designer®, você não precisa de um pacote de simulação externo ou software de análise especializado. Tudo o que você precisa para avaliar seus circuitos e realizar simulações de confiabilidade pode ser encontrado dentro do editor esquemático no Altium Designer. Uma vez que você tenha completado sua PCB e estiver pronto para compartilhar seus designs com colaboradores ou seu fabricante, você pode compartilhar seus designs concluídos através da plataforma Altium 365™. Tudo o que você precisa para projetar e produzir eletrônicos avançados pode ser encontrado em um único pacote de software.
Apenas começamos a explorar o que é possível fazer com o Altium Designer no Altium 365. Comece sua avaliação gratuita do Altium Designer + Altium 365 hoje.