Análisis de Matlab y RLC

1

Estoy intentando trazar la respuesta de un circuito RLC en serie a una función escalonada utilizando Matlab.

He leído un poco a su alrededor, pero no puedo hacerlo funcionar. La ayuda sería muy apreciada.

Aquí está mi código de Matlab:

solution = dsolve('square(5, 50) / ((47*10^(-3) * 1*10^(-6))) = D2y + 220/(47*10^(-3)) * Dy + 1/(47*10^(-3) * 1*10^(-6)) * y', 'y(0) = 0', 'Dy(0) = 0', 'x');
ezplot('solution');

Los valores del circuito RLC son: \ $ R = 220 \ Omega \ $, \ $ L = 47 \ $ mH y \ $ C = 1 \ mu \ $ F. La ecuación para el voltaje del capacitor (que es lo que quiero trazar) es: $$ v '' (t) + \ frac {R} {L} v '(t) + \ frac {1} {LC} v (t) = \ frac {v_s} {LC} $$

\ $ v (t) \ $ es el voltaje del condensador y \ $ v_s \ $ es el voltaje de la fuente (que es una onda cuadrada \ $ 5 \ $ Vpp).

    
pregunta user968243

4 respuestas

2

Verá que hay un ligero rebasamiento, si está familiarizado con el "coeficiente de amortiguamiento" (o puede buscarlo) verá que juguetear con los valores de L & C variará el rebasamiento (o lo eliminará).

Puede descargar el PDF en lugar de las imágenes si desea tenerlo en su computadora:

enlace

Cualquier otra pregunta, siéntete libre.

    
respondido por el Jugurtha Hadjar
1

No estoy muy seguro de hacerlo de la manera en que se usan las ecuaciones diferenciales. Soy más familiar en las transformaciones laplace.

C=1/sC
L=sL
R=R

Cuando tenga la ecuación laplace para describir la función de transferencia en la forma de num / den arange por los términos s

num = [a b c]
den = [d e f]

donde a, b, c y son el doble cero, cero y unidad yd, e, yf son el polo doble, el polo y la unidad

luego use la función de transferencia y los comandos de pasos

sys=tf(num,den);
step(sys);

para un circuito simple de R, C, C, el siguiente ejemplo:

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];
sys = tf(num,den);
step(sys);

alternativamente, con las ecuaciones diferenciales, puede colocarlas directamente en la forma del espacio de estado y usar el comando de pasos.

    
respondido por el smashtastic
1

El problema es que square() no es una función analítica, y AFAIK Matlab no tiene tal cosa. square(t,duty) es una función Matlab "convencional" que toma un vector t y genera un vector de la misma longitud. El 5 que usa en square(5, 50) en realidad se interpreta como un vector de tiempo de un solo elemento y simplemente se resuelve en el número entero -1 cuando se evalúa.

>> square(5, 50)
ans =
    -1

Es posible que puedas engañar a Matlab para que trabaje con la función square() realizando algunos trucos simbólicos de la caja de herramientas, pero prefiero sugerir que reescribas tu problema y uses un solucionador numérico como ode45() para trazar la respuesta un período de tiempo dado.

Además, para trazar una función analítica llamada solution debería ejecutar ezplot(solution) (sin las comillas)

    
respondido por el GummiV
0

puedes usar rlcdemo (gui)

Analizando la respuesta de un circuito RLC    Esta demostración muestra cómo usar las funciones de Control System Toolbox (TM)    Analizar las respuestas de tiempo y frecuencia de circuitos RLC comunes.    En función de sus parámetros físicos.

    
respondido por el Amir Alizadeh

Lea otras preguntas en las etiquetas