Relatório circuitos elétricos 2
O objetivo desse trabalho é elaborar um simulador de circuitos elétricos capaz de simular os seguintes elementos: ▪ resistores, ▪ capacitores, ▪ indutores, ▪ fontes de tensão e corrente, ▪ fontes controladas, ▪ amplificadores operacionais ideais e ▪ mosfets.
Os elementos reativos podem ser simulados usando dois métodos de integração numérica: Backward de Euller e Gear, já os elementos não lineares são tratados através do método de Newton-Raphson que é capaz de encontrar uma aproximação numérica para a solução de equações não lineares.
O programa foi desenvolvido na linguagem C, usando o compilador do Visual Studio e foi …exibir mais conteúdo…
A função ‘dá um chute inicial‘ para começar a resolver o sistema. Para valores de t>0, ela usa a solução anterior do circuito como chute inicial A partir daí, ela resolve o sistema e o compara com a solução anterior para ver se o mesmo convergiu. Esta função possui um limite para o número de iterações que ela realiza para poder convergir, caso este número seja extrapolado ela dá um novo chute inicial, ou seja, ela faz uma nova tentativa. Caso o número de tentativas também seja extrapolado, ela aborta a simulação do circuito, pois o mesmo não converge em algum instante t. Ela faz uso da função estampaLinNLin.
• void estampaLineNLin(double Yn[MAX_NOS][MAX_NOS_1], double etAtual[MAX_NOS])
Esta função é responsável por montar as estampas dos elementos lineares e não lineares. Ela recebe a solução da iteração anterior que ocorre dentro da execução da função newtonRaphson.
• void salvarNoArquivo(FILE *saida, double solucao[MAX_NOS], double tempo)
Esta função é responsável somente por escrever no arquivo de saída todas as tensões e correntes calculadas pelo programa. Todos os resultados são separados por um caractere de tabulação(tab).
Exemplos de resultados obtidos
Exemplo 1
Netlist do Circuito
R0100 1 0 10E3
R0200 2 0 100
C0200 2 0 1000E-6 IC=0
D0301 3 1
D0401 4 1
D0102 1 2
V0003 0 3 SIN ( 0 12 60 0 0 0 100 )
V0400 4 0 SIN ( 0 12 60 0 0 0 100 )