Está en la página 1de 11

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERÍA QUÍMICA


CARRERA INGENIERÍA QUÍMICA
CONTROL AUTOMÁTICO DE PROCESOS
TALLER DE TUTORIZACIÓN. Ecuaciones Diferenciales Ordinarias en Matlab

APELLIDOS: Llangari Armijos NOMBRES: Ericka Gabriela

Realizar un resumen del siguiente video, realice el resumen en Word, adjunte códigos e
imágenes necesarias que le aplica dicha información a ejercicios similares, guarde los
scripts de forma ordenada y poniendo atención a la o las carpetas en donde se guardan.

VIDEO 1: ECUACIONES DIFERENCIALES ORDINARIAS MATLAB [Solver]

Matlab permite calcular la solución de diversas ecuaciones diferenciales EDO usando sus
solvers interno.
Matlab solo calcula soluciones numéricas de sistemas de ecuaciones diferenciales de primero
orden. Para resolver ecuaciones diferenciales de orden superior se deben convertir, mediante
un cambio de variables, en ecuaciones diferenciales de primer orden.
Para definir el sistema de ecuaciones en Matlab, primero se debe manipular manualmente dicho
sistema para que tenga la forma:
𝒅𝑽
= 𝒇(𝒕, 𝑽)
𝒅𝒕
Donde:
𝑉 = 𝑒𝑠 𝑢𝑛 𝑣𝑒𝑐𝑡𝑜𝑟 𝑐𝑜𝑛 𝑙𝑎𝑠 𝑓𝑢𝑛𝑐𝑖𝑜𝑛𝑒𝑠 𝑑𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎

El sistema debe estar en un formato de:


𝒅𝒚𝟏 𝒅𝒚𝟐
= ⋯; = ⋯ , 𝒆𝒕𝒄.
𝒅𝒕 𝒅𝒕
Edo Rígidas:
Un sistema rígido es uno que tiene componentes que cambian rápidamente, junto con
componentes de cambio lento.

Un problema de EDO es rígido si la solución que se busca varía lentamente, pero hay
soluciones cercanas que varías rápidamente, por lo que el método numérico se ejecuta en
pequeños pasos para conseguir un resultado adecuado.
La rigidez no es más que un problema de eficiencia. Si no interesa el tiempo que el algoritmo
le lleva para obtener la solución, entonces no habría preocupación por la rigidez.
[ts, x1] = ode45(@ (t, x) modelo (t, x, u, par), tspan, x0);
Donde tspan = [t0 tf] integra el Sistema de ecuaciones diferenciales y’=f (t, y) de t0 a tf con
condiciones iniciales x0. Cada fila del array de soluciones x1 corresponde a un valor devuelto
en el vector de columna ts.

Todos los solvers de ODE de MATLAB pueden resolver sistemas de ecuaciones con la forma
y’=f (t, y), o bien problemas que impliquen una matriz de masas, M (t, y) y’=f (t, y). Los solvers
utilizan sintaxis similares.
En sistemas dinámicos, el oscilador de van der Pol es un oscilador con amortiguamiento no
lineal. Su evolución temporal obedece a una ecuación diferencial de segundo orden:

𝒅𝟐 𝒙 𝒅𝒙
− 𝝁 ( 𝟏 − 𝒙𝟐 ) +𝒙 =𝟎
𝒅𝒕 𝒅𝒕
En la que x es la posición, función del tiempo t, y µ es un parámetro escalar que gobierna la no
linealidad y el amortiguamiento.

Reescribiendo la ecuación diferencial en dos ecuaciones de primer orden:

𝒙𝟏 = 𝒙

𝒙𝟐 = 𝒙

𝒙̇ 𝟏 = 𝒙̇ = 𝒙𝟐

𝒙̇ 𝟐 = 𝒙̈ = 𝝁(𝟏 − 𝒙𝟐𝟏 )𝒙𝟐 − 𝒙𝟏

Condiciones iniciales 𝝁 = 𝟏, 𝒙𝟏 (𝟎) = 𝟐, 𝒙𝟐 (𝟎) = 𝟎

• Matlab: Primero se crea el modelo VanDerPol


• Script:
function dx =VanDerPol(t,x,u,mu)
%Estados
x1 = x(1);
x2 = x(2);
%entradas
%ecuaciones diferenciales
dx1 =x2;
dx2 = mu*(1-x1^2)*x2-x1;
dx=[dx1;dx2];

Luego se ejecuta el ejemplo con el modelo de VanDerPol:

• Matlab:
• Script:
%Van der pol
clc
clear
close all
%Caso 1
x0 = [2 0]; %Condición Inicial
mu=1;
tspan=[0 10];
%Solución de la EDO
[ts,y] = ode45(@(t,x)VanDerPol(t,x,u,mu),tspan,x0);
figure
plot(ts,y(:,1))

Se corrige y se crea automáticamente la gráfica:

• Matlab:
• Script:
%Van der pol
clc
clear
close all
%Caso 1
x0 = [2 0]; %Condición Inicial
mu=1;
tspan=[0 30];
u=0;
%Solución de la EDO
[ts,y] = ode45(@(t,x)VanDerPol(t,x,u,mu),tspan,x0);
figure
plot(ts,y(:,1))

Haciendo un cambio:

• Matlab:
• Script:
%Van der pol
clc
clear
close all
%Caso 1
x0 = [2 0]; %Condición Inicial
mu=1000;
tspan=[0 3000];
u=0;
%Solución de la EDO
[ts,y] = ode45(@(t,x)VanDerPol(t,x,u,mu),tspan,x0);
figure
plot(ts,y(:,1))

• Matlab:
• Script:
%Van der pol
clc
clear
close all
%Caso 1
x0 = [2 0]; %Condición Inicial
mu=1000;
tspan=[0 3000];
u=0;
%Solución de la EDO
[ts,y] = ode23(@(t,x)VanDerPol(t,x,u,mu),tspan,x0);
figure
plot(ts,y(:,1))

• Matlab:
• Script:
%Van der pol
clc
clear
close all
%Caso 1
x0 = [2 0]; %Condición Inicial
mu=1000;
tspan=[0 3000];
u=0;
%Solución de la EDO
[ts,y] = ode15s(@(t,x)VanDerPol(t,x,u,mu),tspan,x0);
figure
plot(ts,y(:,1))

• Matlab:

• Script:
%Van der pol
clc
clear
close all
%Caso 1
x0 = [2 0]; %Condición Inicial
mu=1;
tspan=[0 30];
u=0;
%Solución de la EDO
[ts,y] = ode45(@(t,x)VanDerPol(t,x,u,mu),tspan,x0);
figure
plot(ts,y(:,2))
VIDEO 2: RESOLVER NUMÉRICAMENTE ECUACIÓN DIFERENCIAL
ORDINARIA USANDO ode45 de MATLAB.

Se busca resolver numéricamente la ecuación diferencial:

4𝑥̈ + 𝑥̇ + 5𝑥 = 5 sin(2𝑡)

Se llevará a cabo los siguientes pasos:


Convertir la ecuación diferencial de segundo a un sistema de primer orden

𝑥̇ 1 = 𝑥2
5 sin(2𝑡) − 𝑥̇ − 5𝑥
𝑥̇ 2 =
4
El siguiente paso es elaborar un script en Matlab en el que se define los arreglos de tiempo y
condiciones iniciales, así como el uso de la función ode45.

• Matlab

• Script:
%Universdid de Guayaquil
%Control automático de procesos
clear variables
clc
close all
t = (0:0.01:5);
condIni = [1;2];
[T,Y] = ode45(@resolverODE,t,condIni)

El tercer paso, en la función de Matlab se debe reescribir las dos ecuaciones diferenciales de
la siguiente forma:

𝑥̇ 1 = 𝑥2 → 𝑑𝑥𝑑𝑡(1) = 𝑥(2)
5 sin(2𝑡) − 𝑥̇ − 5𝑥
𝑥̇ 2 = → 𝑑𝑥𝑑𝑡(2) = (5 sin(2𝑡) − 𝑥(2) − 5𝑥(1))/4
4
• Matlab:

• Script:
function dxdt = resolverODE(t,x)
dxdt(1) = x(2);
dxdt(2) = (5*sin(2*t)-x(2)-5*x(1))/4;
dxdt = dxdt';
end
Ahora para ejecutar con gráficas se modifica el Script del ejemplo:

• Matlab:

• Script:
%Universdid de Guayaquil
%Control automático de procesos
clear variables
clc
close all
t = (0:0.01:5);
condIni = [1;2];
[T,Y] = ode45(@resolverODE,t,condIni);
x = Y(:,1);
xPunto = Y(:,2);
plot(t,x)
figure()
plot(t,xPunto)
CARPETA:

También podría gustarte