Como fazer a análise de circuitos usando o Matlab?

14

Costumo ouvir pessoas usando o Matlab para análise de circuitos, mas nunca descobri como isso é feito. Suponho que exista algo mais do que apenas configurar equações manualmente e resolvê-las no Matlab.

Estou procurando um bom ponto de partida.

AndrejaKo
fonte
Você está perguntando sobre o uso do Matlab como um "substituto do SPICE" para simular componentes discretos de RLC ou mais ao longo das linhas de simulação do sistema?
W5VO 23/03
@ W5VO Ambos, mas com mais foco no SPICE. Eu sei que a simulação do sistema pode ser feita com o Simulink e que não é muito difícil.
AndrejaKo
5
A resolução de circuitos é apenas a solução de equações diferenciais não lineares, pelo que é possível no Matlab. OTOH Eu, já que o SPICE nada mais é do que um solucionador de equações diferenciais não lineares, então eu usaria o Matlab apenas se tivesse um problema realmente estranho ou especial.
Jpc 23/03

Respostas:

6

Você pode usar a caixa de ferramentas Matlab Simulink Simpowersystem para fazer análises de circuitos. Inclui componentes RLC, comutadores, máquinas elétricas, etc. Você pode criar seu próprio componente e modificar qualquer parâmetro dos componentes da biblioteca. Como você pode combinar seus circuitos com qualquer bloco Simulink, qualquer solucionador Simulink ou qualquer função Matlab, essa ferramenta é muito poderosa. Não há necessidade de resolver as equações do circuito primeiro porque você trabalha no ambiente Simulink. Ele é originalmente orientado para sistemas de energia, mas acho que você pode usá-lo para qualquer circuito eletrônico.

ths1104
fonte
3
Nossas respostas são que vem talvez um pouco tarde, mas há também SimElectronics que é mais específico que Simpowersystem (mas a parte com o problema de uma licença de caixa de ferramentas caro)
Clement J.
O fato é que eu achei o Simulink mesmo com todas as caixas de ferramentas adicionadas bastante complicadas. Basta olhar para o que é necessário para obter um circuito RLC simulado . Muito mais complicado do que no SPICE. Somente IMO que vale a pena em casos muito específicos em que você possui blocos de código comportamental relacionados ao controlador que não podem ser executados no SPICE de maneira razoável.
Fizz
Além disso, para obter uma função de transferência simbólica, o qsapecng é gratuito e basta desenhar o circuito e clicar em um botão e pronto.
Fizz
14

Eu uso bastante o MATLAB para análise de circuitos. Às vezes, prefiro temperar, outras vezes, depende do meu humor e exigências.

Estes são os seguintes passos:

  • 1: faça a transformada de Laplace do circuito
  • 2: obtenha a função de transferência
  • 3: plotar / analisar usando as funções do MATLAB. bode, impulso, freqresp e assim por diante.

A parte mais complicada que encontro é pegar a transformação de Laplace e derivar sua equação da função de transferência.

Existem muitos exemplos e livros de texto sobre como usar um Laplace na Internet. Resumidamente, o objetivo aqui é obter a equação na forma de

H(s)=as2+bs+cds2+es+f

onde a c é o numerador ed de f o denominador no exemplo apresentado abaixo.acdf

Para fazer isso, converta todos os seus elementos passivos em impedâncias complexas. Isso é

  • C = 1 / sC
  • R = R
  • L = sL

Em seguida, deduza uma equação para o seu circuito na forma de Vout / Vin.

Para um filtro passa-baixo simples na forma de:

Vin -------R-------------- Vout
               |
               C
               |
------------------------------

isso renderia:

VoutVin=sCR+sC

Escreva a equação acima na forma de num e den para MATLAB:

num = [C 0];
den = [C R];

Em seguida, continue usando qualquer função do matlab que você deseja analisar a função de transferência (bode), o diagrama do pólo zero e assim por diante.

Abaixo está um exemplo de filtro com o qual eu estava brincando recentemente e tentando ajustar os valores:

R1 = 20e3;
C1 = 235e-9;
R2 = 2e3;
C2 = 22e-9;
num = [2*R2*C1 0];
den = [C1*R1*C2*R2*2 (2*C1*R1 + C2*2*R2) 2];
g = tf(num,den);
P = bodeoptions; % Set phase visiblity to off and frequency units to Hz in options
P.FreqUnits = 'Hz'; % Create plot with the options specified by P
bode(g,P);
%[num,den] = eqtflength(num,den);      % Make lengths equal
%[z,p,k] = tf2zp(num,den)          % Obtain zero-pole-gain form
smashtastic
fonte
Alguma chance de um exemplo com uma boa explicação de cada etapa?
perfil completo de AndrejaKo
é claro - vou tentar detalhar um exemplo para você no fim de semana!
Smashtastic
Isso é perfeitamente correto, mas totalmente inútil. Não me julgue, eu amo Laplace e transformada z ...:) .... Basta tentar usar essa abordagem para simular um transistor e op-amp amplificadores ... :)
Brethlosze
Acho que você cometeu um erro ao escrever a função de transferência para o filtro passa-baixo. Eu acho que você quis Vout / Vin = (1 / SC) / (R + (1 / SC))
Scott Lawson
6

Eu uso algum tempo scipy (um conjunto de ferramentas numéricas para python) para fazer análises de circuitos. E sim, isso normalmente envolve a solução das equações do circuito manualmente. Isso é útil principalmente ao fazer análises de tolerância e sensibilidade no circuito.

Existe um livro sobre o assunto "Análise de tolerância de circuitos eletrônicos usando MATLAB" que fornece alguns exemplos de como realizar a análise típica em alguns circuitos comuns. Não é realmente um substituto para algo como o SPICE, mas é útil ao tentar projetar um bom rendimento de produção em todas as tolerâncias de componentes ou para considerar a variação de componentes ao longo do tempo e da temperatura.

Clint Lawrence
fonte
3
O SciPy é gratuito, diferente do Matlab, e faz muitas coisas iguais. scipy.org/NumPy_for_Matlab_Users Eu acho ótimo, também.
endolith 23/03
Algumas SPICEs também incluem simulação de Monte Carlo e análise de sensibilidade. O SIMetrix, em particular, possui o primeiro gratuitamente, mesmo na versão demo / introdução não expirada, mas a última função não é gratuita. Tanto a Intersil (iSim: PE) quanto a Analog Devices (ADIsimPE) agora vendem o SIMetrix como sua empresa SPICE, mas é basicamente a versão de introdução com suas bibliotecas extras de chips.
Fizz
Além disso, essa capa do livro MATLAB com erros ortográficos como MAT H LAB ... é muito divertida e não inspira muita confiança.
Fizz
1

Para circuitos RLC simples com qualquer topologia (série e paralela), podemos usar "rlcdemo". É uma boa interface para filtros de análise (LPF-HPF-BPF-BSF)

 rlcdemo
 Analyzing the Response of an RLC Circuit
 This demo shows how to use the Control System Toolbox(TM) functions
 to analyze the time and frequency responses of common RLC circuits
 as a function of their physical parameters.
Amir Alizadeh
fonte
0

Você pode usar um programa criado no Matlab chamado SCAM (análise de circuitos simbólicos no Matlab) e está aqui: https://www.swarthmore.edu/NatSci/echeeve1/Ref/mna/MNA6.html

ARTURO CORONA NIEVA
fonte
Por quê? basta usar o SimScape + SimElectronics, pois ele pode usar os modelos SPICE ...
JonRB
Não SimElectronics não dar-lhe equações analíticas que são, por vezes, muito útil
JLo
0

Além do SCAM no Matlab, há também uma ferramenta de análise de circuito simbólico online no CircuitNAV , que usa arquivos netlist (de LTspice, Micro-Cap, TINA-TI, PSpice etc.) como entrada e gera a solução algébrica para cada parâmetro do circuito .

O CircuitNAV também fornece uma demonstração e um tutorial .

XJ
fonte