Site Info Site Info

Oscilador De Van Der Pol Matlab

Oscilador De Van Der Pol Matlab

Aquí está una guía paso a paso para resolver el problema del oscilador de Van der Pol en Matlab. Vamos a descomponer el problema en partes más pequeñas y manejables.

Paso 1: Definir la Ecuación Diferencial

El primer paso es definir la ecuación diferencial que describe el oscilador de Van der Pol. La ecuación es: x'' - μ(1 - x^2)x' + x = 0. Aquí, μ (mu) es un parámetro que controla la no linealidad y la fuerza de la amortiguación. Recuerda que x'' es la segunda derivada de x con respecto al tiempo, y x' es la primera derivada.

Para resolverla en Matlab, necesitamos transformar esta ecuación de segundo orden en un sistema de dos ecuaciones de primer orden. Introducimos una nueva variable y = x'. Esto nos da el siguiente sistema: x' = y y' = μ(1 - x^2)y - x.

Paso 2: Crear una Función de Matlab

Ahora, crearemos una función de Matlab que represente este sistema de ecuaciones. Esta función tomará el tiempo (t) y el vector de estado ([x; y]) como entrada, y devolverá las derivadas ([x'; y']). Abre un nuevo archivo en el editor de Matlab y guarda el archivo como van_der_pol.m.

El contenido del archivo van_der_pol.m será algo similar a esto: function dxdt = van_der_pol(t, x, mu) dxdt = [x(2); mu(1 - x(1)^2)x(2) - x(1)]; end

Bifurcación en el oscilador de Van der Pol - YouTube
Bifurcación en el oscilador de Van der Pol - YouTube

Recuerda guardar la función en el mismo directorio donde ejecutarás el script principal de Matlab.

Paso 3: Resolver la Ecuación Diferencial con ODE45

Matlab proporciona la función ode45 para resolver ecuaciones diferenciales ordinarias. Usaremos esta función para simular el oscilador de Van der Pol. Crea un nuevo script de Matlab (por ejemplo, main.m).

Oscilador de van der Pol
Oscilador de van der Pol

En main.m, primero definiremos los parámetros iniciales. Esto incluye el valor de μ, las condiciones iniciales para x e y, y el intervalo de tiempo de la simulación. Un ejemplo sería: mu = 1.5; initial_conditions = [1; 0]; % x(0) = 1, y(0) = 0 tspan = [0 20]; % Simulación de t=0 a t=20

A continuación, llamamos a la función ode45 para resolver la ecuación diferencial: [t, sol] = ode45(@(t,x) van_der_pol(t, x, mu), tspan, initial_conditions); Aquí, @(t,x) van_der_pol(t, x, mu) es una función anónima que llama a nuestra función van_der_pol con el valor actual de μ.

Real-Time Van der Pol Simulation - MATLAB & Simulink
Real-Time Van der Pol Simulation - MATLAB & Simulink

La función ode45 devuelve dos matrices: t, que contiene los puntos de tiempo en los que se resolvió la ecuación, y sol, que contiene los valores correspondientes de x e y en esos puntos de tiempo.

Paso 4: Visualizar los Resultados

Finalmente, visualizaremos los resultados de la simulación. Podemos graficar x en función del tiempo, o graficar y en función de x (el plano de fase). En el archivo main.m, agregamos el siguiente código:

Van der Pol Oscillator - MATLAB & Simulink
Van der Pol Oscillator - MATLAB & Simulink

Para graficar x en función del tiempo: plot(t, sol(:,1)); xlabel('Tiempo (t)'); ylabel('x(t)'); title('Oscilador de Van der Pol: x(t) vs Tiempo');

Para graficar el plano de fase: figure; % Crea una nueva figura plot(sol(:,1), sol(:,2)); xlabel('x(t)'); ylabel('y(t) = x''(t)'); title('Oscilador de Van der Pol: Plano de Fase');

Ejecuta el script main.m. Deberías ver dos gráficas: una mostrando la evolución de x con el tiempo, y otra mostrando el plano de fase, que revelará el ciclo límite característico del oscilador de Van der Pol.

Gallery

Operating Point for Van der Pol Oscillator - MATLAB & Simulink
A Brief History of MATLAB - MATLAB & Simulink
1: Solución del oscilador de Van der Pol para µ = 1 | Download
Operating Point for Van der Pol Oscillator - MATLAB & Simulink
SIMULINK built-in example for the van der Pol model called by the
Comparison of 3 patterns of Van der Pol Equation [gnuplot] - YouTube