15 votos

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

A menudo oigo hablar de gente que utiliza Matlab para el análisis de circuitos, pero nunca he llegado a saber cómo se hace. Supongo que hay algo más que establecer ecuaciones a mano y resolverlas en Matlab.

Estoy buscando un buen punto de partida.

0 votos

¿Preguntas por el uso de Matlab como "sustituto de SPICE" para simular componentes RLC discretos, o más bien por la simulación de sistemas?

0 votos

@W5VO Ambos, pero con más enfoque en SPICE. Sí sé que la simulación de sistemas se puede hacer con Simulink y que no es demasiado difícil.

5 votos

Resolver circuitos es simplemente resolver ecuaciones diferenciales no lineales, por lo que es posible en Matlab. Por otro lado, dado que SPICE no es más que un solucionador de ecuaciones diferenciales no lineales, sólo utilizaría Matlab si tuviera un problema realmente extraño o especial.

14voto

YonahW Puntos 145

Utilizo bastante MATLAB para el análisis de circuitos. A veces lo prefiero a spice, otras veces prefiero spice, depende de mi estado de ánimo y de mis necesidades.

Estos son los siguientes pasos:

  • 1: tomar la transformada de Laplace del circuito
  • 2: obtener la función de transferencia
  • 3: trazar/analizar utilizando las funciones de MATLAB. bode, impulso, freqresp, etc.

La parte más complicada que encuentro es tomar la transformada 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 la forma de

$$H(s) = \dfrac{as^2 + bs + c } {ds^2 + es + f} $$

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

Para ello, convierte todos tus elementos pasivos en impedancias complejas. Esto es

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

A continuación, deduzca una ecuación para su circuito en forma de Vout/Vin.

Para un simple filtro de paso bajo en forma de:

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

que esto produciría:

\$ \dfrac{V_{out}}{V_{in}} = \dfrac{sC}{R + sC}\$

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

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

A continuación, utilice cualquier función de Matlab que desee para analizar la función de transferencia (bode), el diagrama de polos cero, etc.

A continuación se muestra un ejemplo de filtro con el que estuve jugando recientemente y tratando de afinar 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

0 votos

¿Hay alguna posibilidad de un ejemplo con una buena explicación de cada paso?

0 votos

Por supuesto - ¡intentaré detallar un ejemplo para usted durante el fin de semana!

0 votos

Esto es perfectamente correcto, pero totalmente inútil. No me juzgues, me encantan las transformadas de Laplace y Z... :).... Intenta usar este enfoque para simular un transistor y amplificadores op-amp... :)

6voto

fastcall Puntos 874

Veo que Pete se me ha adelantado en la respuesta de Resultant, así que voy a dar una respuesta ligeramente diferente. Para más información, véase la página 21 del libro de Ribbenboim Teoría clásica de los números algebraicos .

Dejemos que $p(x)=x^n+a_1x^{n-1}+\cdots + a_n$ . Nos gustaría encontrar el discriminante $D(p)$ de $p(x)$ utilizando sólo los coeficientes (es decir, sin conocer las raíces).

Establecer $p_k=\alpha_1^k + \cdots + \alpha_n^k$ donde el $\alpha_i$ son las raíces de $p(x)$ y $k=0,1,2,...$ . Ahora, la parte más sorprendente. Podemos encontrar todos los $p_i$ sin computar realmente ninguna de las $\alpha_i$ ¡!

Explícitamente, $p_0=n$ , $p_1=-a_1$ y $p_i$ para $i>1$ puede calcularse recursivamente utilizando las fórmulas de Newton.

Entonces

$D(p)=\displaystyle\det\begin{bmatrix} p_0 & p_1 & \cdots & p_{n-1} \newline p_1 & p_2 & \cdots & p_n \newline \vdots &\vdots & &\vdots\newline p_{n-1}&p_n &\cdots &p_{2n-2} \end{bmatrix}$

3 votos

SciPy es gratuito, a diferencia de Matlab, y hace muchas de las mismas cosas. scipy.org/NumPy_for_Matlab_Users A mí me parece muy bien.

0 votos

Algunos SPICEs tienen también la simulación Monte Carlo y el análisis de sensibilidad. SIMetrix, en particular, tiene la primera función de forma gratuita incluso en la versión demo/intro que no caduca, pero la segunda no es gratuita. Tanto Intersil (iSim:PE) como Analog Devices (ADIsimPE) ofrecen ahora SIMetrix como su SPICE de empresa, pero es básicamente la versión de introducción con sus bibliotecas de chips adicionales.

0 votos

Además, en la portada del libro de texto está mal escrito MATLAB como MAT H LAB... bastante divertido y no inspira mucha confianza.

6voto

ths1104 Puntos 108

Puede utilizar el programa Matlab Simulink Simpowersystem caja de herramientas para hacer análisis de circuitos. Incluye componentes RLC, interruptores, máquinas eléctricas, etc. Puedes crear tu propio componente y modificar cualquier parámetro de los componentes de la biblioteca. Como puedes combinar tus circuitos con cualquier bloque de Simulink, cualquier solver de Simulink o cualquier función de Matlab, esta herramienta es muy potente. No es necesario resolver primero las ecuaciones del circuito porque se trabaja en el entorno de Simulink. Está orientado originalmente a los sistemas de potencia, pero creo que se puede utilizar para cualquier circuito electrónico.

3 votos

Nuestras respuestas quizá 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 la caja de herramientas)

0 votos

El caso es que Simulink, incluso con todas las cajas de herramientas añadidas, me pareció bastante engorroso. Sólo hay que ver lo que se necesita para conseguir simular un circuito RLC . Mucho más complicado que en SPICE. Sólo merece la pena, según la OMI, en casos muy específicos en los que haya bloques de código de comportamiento relacionados con el controlador que no puedan realizarse en SPICE de forma razonable.

0 votos

Además, para obtener una función de transferencia simbólica qsapecng es gratis y sólo tienes que dibujar el circuito y hacer clic en un botón y ya está.

1voto

DarenW Puntos 677

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

-1voto

ria Puntos 1458

El libro en pdf de los ejemplos de Spice y Matlab, http://www.elsevierdirect.com/companions/9780750659321/exercises/SpiceAndMatlab.pdf Un libro que acompaña a Introducción al análisis y modelado de circuitos lineales de Moura & Darwazeh, tiene muy buena pinta para mis propósitos.

1 votos

Aunque esto puede responder teóricamente a la pregunta, sería preferible para incluir las partes esenciales de la respuesta aquí, y proporcionar el enlace como referencia.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X