¿Cómo hacer análisis de circuitos con Matlab?

14

A menudo escucho de personas que usan Matlab para el análisis de circuitos, pero en realidad nunca descubrí cómo se hace. Supongo que hay algo más que simplemente establecer ecuaciones a mano y resolverlas en Matlab.

Estoy buscando un buen punto de partida.

AndrejaKo
fuente
¿Está preguntando sobre el uso de Matlab como un "reemplazo de SPICE" para simular componentes RLC discretos, o más en la línea de simulación del sistema?
W5VO
@ W5VO Ambos, pero con más enfoque en SPICE. Sé que la simulación del sistema se puede hacer con Simulink y que no es demasiado difícil.
AndrejaKo
55
Resolver circuitos es solo resolver ecuaciones diferenciales no lineales, por lo que es posible en Matlab. OTOH I ya que SPICE no es más que un solucionador de ecuaciones diferenciales no lineales, entonces usaría Matlab solo si tuviera un problema realmente extraño o especial.
jpc

Respuestas:

6

Puede utilizar la caja de herramientas de Matlab Simulink Simpowersystem para realizar análisis de circuitos. Incluye componentes RLC, interruptores, máquinas eléctricas, etc. Puede crear su propio componente y modificar cualquier parámetro de los componentes de la biblioteca. Como puede combinar sus circuitos con cualquier bloque Simulink, cualquier solucionador Simulink o cualquier función de Matlab, esta herramienta es muy poderosa. No es necesario resolver primero las ecuaciones del circuito porque trabajas en el entorno Simulink. Originalmente está orientado para sistemas de energía, pero creo que puede usarlo para cualquier circuito electrónico.

ths1104
fuente
3
Quizás nuestras respuestas lleguen un poco tarde, pero también hay SimElectronics que es más específico que Simpowersystem (pero comparte con el problema de una costosa licencia de caja de herramientas)
Clement J.
La cuestión es que encontré Simulink incluso con todas las cajas de herramientas agregadas bastante engorrosas. Solo mira lo que se necesita para simular un circuito RLC . Mucho más complicado que en SPICE. Solo vale la pena la OMI en casos muy específicos en los que tiene bloques de código de comportamiento relacionados con el controlador que no se pueden hacer en SPICE de manera razonable.
Fizz
Además, para obtener una función de transferencia simbólica, qsapecng es gratis y solo dibuja el circuito y hace clic en un botón y listo.
Fizz
14

Yo uso MATLAB bastante para el análisis de circuitos. A veces prefiero las especias, otras veces prefiero las especias, depende de mi estado de ánimo y mis necesidades.

Estos son los siguientes pasos:

  • 1: tome la transformada de Laplace del circuito
  • 2: obtener la función de transferencia
  • 3: trazar / analizar usando las funciones de MATLAB. Bode, impulso, freqresp y así sucesivamente.

La parte más difícil que encuentro es tomar la transformación de Laplace y derivar la ecuación de la función de transferencia.

Hay muchos ejemplos y libros de texto sobre cómo tomar un Laplace en Internet. Brevemente, el objetivo aquí es obtener la ecuación en forma de

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

donde a c es el numerador y d a f el denominador en el ejemplo presentado a continuación.acdf

Para hacer esto, convierta todos sus elementos pasivos en impedancias complejas. Esto es

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

Luego deriva una ecuación para tu circuito en forma de Vout / Vin.

Para un filtro de paso bajo simple en forma de:

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

esto produciría:

VoutVin=sCR+sC

Escriba la ecuación anterior en forma de num y den para MATLAB:

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

Luego, siga usando cualquier función de matlab que desee para analizar la función de transferencia (bode), el diagrama del polo cero, etc.

A continuación se muestra un ejemplo de filtro con el que estaba jugando recientemente y que trataba de ajustar los 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
aplastante
fuente
¿Alguna posibilidad de un ejemplo con una buena explicación de cada paso?
AndrejaKo
por supuesto, ¡intentaré detallar un ejemplo para ti durante el fin de semana!
smashtastic
Esto es perfectamente correcto, pero totalmente inútil. No me juzguen, me encantan las transformaciones de Laplace y Z ...:) .... Solo trate de usar este enfoque para simular un transistor y amplificadores operacionales ... :)
Brethlosze
Creo que cometió un error al escribir la función de transferencia para el filtro de paso bajo. Creo que te referías a Vout / Vin = (1 / sC) / (R + (1 / sC))
Scott Lawson el
6

Alguna vez uso scipy (un conjunto de herramientas numéricas para python) para hacer análisis de circuitos. Y sí, eso generalmente implica resolver las ecuaciones del circuito a mano primero. Esto es principalmente útil cuando se realizan análisis de tolerancia y análisis de sensibilidad en el circuito.

Hay un libro sobre el tema "Análisis de tolerancia de circuitos electrónicos que usa MATLAB" que proporciona algunos ejemplos de cómo llevar a cabo el análisis típico en algunos circuitos comunes. No es realmente un reemplazo para algo como SPICE, pero es útil cuando se trata de diseñar para obtener un buen rendimiento de producción sobre todas las tolerancias de los componentes, o para tener en cuenta la deriva de los componentes a lo largo del tiempo y la temperatura.

Clint Lawrence
fuente
3
SciPy es gratis, a diferencia de Matlab, y hace muchas de las mismas cosas. scipy.org/NumPy_for_Matlab_Users Creo que es bastante bueno, yo mismo.
Endolith
Algunos SPICE también tienen simulación Monte Carlo y análisis de sensibilidad añadidos. SIMetrix, en particular, tiene el primero de forma gratuita, incluso en la versión demo / introducción que no caduca, pero la última función no es gratuita. Tanto Intersil (iSim: PE) como Analog Devices (ADIsimPE) ahora envían SIMetrix como SPICE de su compañía, pero es básicamente la versión de introducción con sus bibliotecas de chips adicionales.
Fizz
Además, esa cubierta de libro de texto deletreaba mal MATLAB como MAT H LAB ... bastante divertido y no inspira mucha confianza.
Fizz
1

para un circuito RLC simple con cualquier topología (serie y paralelo) podemos usar "rlcdemo". Es una buena interfaz gráfica para los filtros de análisis (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
fuente
0

Puede usar un programa creado en Matlab llamado SCAM (análisis de circuito simbólico en Matlab), y está aquí: https://www.swarthmore.edu/NatSci/echeeve1/Ref/mna/MNA6.html

ARTURO CORONA NIEVA
fuente
¿Por qué? simplemente use SimScape + SimElectronics ya que puede usar modelos SPICE ...
JonRB
SimElectronics no le ofrece ecuaciones analíticas que a veces son muy útiles
JLo
0

Además de SCAM en Matlab, también hay una ingeniosa herramienta de análisis de circuitos simbólicos en línea en CircuitNAV ingeniosa , que utiliza archivos netlist (de LTspice, Micro-Cap, TINA-TI, PSpice, etc.) como entrada y genera la solución algebraica para cada parámetro de circuito .

CircuitNAV también proporciona una demostración y un tutorial .

XJ
fuente