Está en la página 1de 7

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER

FACULTAD DE INGENIERIA

LABORATORIO No. 2 - SOLUCION DE EQUACIONES DIFERENCIALES


USANDO MATLAB/SIMULINK

INSTRUCCIONES

1- Las actividades de laboratorio y los informes deberán ser desarrollados en grupos de


hasta 2 (dos) alumnos.

2- Caso algún alumno no pueda hacer las actividades, en el día previsto de su laboratorio,
el mismo deberá entregar el informe individualmente siempre y cuando presente
constancia que justifique su ausencia, por lo contrario la no constancia de su justificación
tendrá como nota (0) cero para ese laboratorio.

3- Los trabajos o informes deberán ser entregados, únicamente, en la semana siguiente


después del laboratorio.

4- Las soluciones deberán ser de forma clara, simple y organizada. Si hay figuras, tablas y
ecuaciones, esas deberán ser numeradas y referenciadas. No deberá ser utilizado en el
informe, material ya presentado en las guías de cada laboratorio.

5- La página inicial del informe será la página que contiene las actividades ejecutadas.

6- Los ejercicios ha ser solucionados serán suministrados en el laboratorio por el


profesor.

OBJETIVO

Las actividades a seguir tienen por objetivo fijar la operación y el uso del Matlab
como herramienta para solucionar ecuaciones diferenciales aplicadas a sistemas
mecánicos. La idea es ir examinando todos los tópicos de la teoría através de estos
ejemplos.
REFERENCIAS

1- Ogata, K. Engenharia de Controle Moderno. Prentice Hall do Brasil, 3a. Ed., 1998.

2- Hanselman, D.; Littlefield, B. MATLAB 5: Versão do Estudante, Guia do Usuário,


Makron Books, 1999.

3- www.mathworks.com

4- Close, Charles M. Modeling and analysis of dynamic systems. 3rd. ed. New York : John
Wiley and Sons, 2001.

5- Ogata, Katsuhiko. Dinámica de sistemas. México :Prentice-Hall Hispanoamericana,


1987.

Solución de ecuaciones algebraicas y diferenciales empleando Matlab


1. Solución de ecuaciones algebraicas

Se desea resolver el siguiente sistema de ecuaciones algebraicas:

Para resolver varias ecuaciones algebraicas simultáneas f(x)=0 empleando Matlab se


emplea una función del toolbox de optimización llamada fsolve. Se requiere hacer un
"archivo m" (m-file) que describa los parámetros, las funciones y las variables
involucradas. La estructura general del m-file es:

% Comentarios, instrucciones, etc.


function [f]=ecalg(x)
% Parámetros
a=6;b=1.5;c=-14;
% Ecuaciones
f(1)=a+b*x(1)-x(1)^3;
f(2)=c*x(2)+a;

Notas:
• Cualquier comentario debe iniciarse con %
• El comando function debe ir al inicio
• El vector f contiene las funciones (en este caso f(1) y f(2))
• El vector x contiene las variables (en este caso x(1) y x(2))
• ecalg es el nombre de la función y debe ser el nombre con el que se guarda el archivo.
Conviene emplear un nombre que identifique al problema, en este caso, ecuaciones
algebraicas. Así, el archivo debe guardarse como ecalg.m
• Todos los parámetros y valores empleados por las funciones deben introducirse antes
de definir las funciones f(1) y f(2).

Para resolver el sistema de ecuaciones algebraicas definido en el archivo ecalg.m se debe


introducir en la ventana de comandos de Matlab la instrucción:

>>x0=[1,1];[x,feval,flag]=fsolve('ecalg',x0)

Esta orden llamará la función fsolve y Matlab empleando el toolbox de optimización


encontrará los valores de x(1) y x(2) que satisfacen que f(1) =f(2) =0 empleando los valores
iniciales x0 = [1,1] para x(1) y x(2) respectivamente.

Los valores reportados serán los valores de x(1) y x(2) agrupados en el vector x. El
resultado feval proporciona el valor de las funciones f(1) y f(2) evaluadas con los valores
de x encontrados, y la variable flag nos indica si el paquete de optimización encontró una
solución.
Es necesario verificar que la respuesta del sistema si sea una raíz. Esto se logra cuando se
cumple lo siguiente:
a. se lee el mensaje optimization terminated succesfully.
b. el valor de la variable feval es prácticamente cero (al menos igual o menor a 1e-5).
c. la variable flag tiene un valor de 1.

En este ejemplo los resultados proporcionados son:

Optimization terminated successfully:


First-order optimality less than OPTIONS.TolFun, and no negative/zero curvature
detected

x=
2.0905 0.4286
feval =
1.0e-007 *
-0.4932 0
flag =
1
Por tanto para este caso las raíces son 2.0905 y 0.4286.
Para mayores detalles introducir help fsolve en la ventana de comandos de Matlab.

2. Solución de ecuaciones diferenciales

Se desea resolver el siguiente sistema de ecuaciones algebraicas:


Para resolver ecuaciones diferenciales en Matlab se sigue un procedimiento equivalente al
empleado en la solución de ecuaciones algebraicas. La diferencia es que se emplea una
función para integrar (p.ejm. ode45, ode23, ode15s).

Se requiere hacer un archivo m (m-file) que describa los parámetros, las funciones y las
variables involucradas. La estructura general del m-file es:

% Comentarios, instrucciones, etc.


function [f]=ecdif(t,x)
% Parámetros
a=6;b=1.5;c=-14;
% Ecuaciones
f(1)=a+b*x(1)-x(1)^3;
f(2)=c*x(2)+a;
f = f';

Notas:
• Cualquier comentario debe iniciarse con %
• El comando function debe ir al inicio
• El vector f contiene las funciones (en este caso f(1) y f(2))
• El vector x contiene las variables (en este caso x(1) y x(2))
• El vector t contiene la variable de tiempo
• ecdif es el nombre de la función y debe ser el nombre con el que se guarda el archivo.
Conviene emplear un nombre que identifique al problema, en este caso, ecuaciones
diferenciales. Así, el archivo debe guardarse como ecdif.m
• Todos los parámetros y valores empleados por las funciones deben introducirse antes
de definir las funciones f(1) y f(2).

Para resolver el sistema de ecuaciones diferenciales definido en el archivo ecdif.m se debe


introducir en la ventana de comando de Matlab la instrucción:

>>tr=[0,1];x0=[1,1];[t,x]=ode45('ecdif',tr,x0);

Esta orden llamará la función ode45 y resolverá el sistema ecdif empleando ese método de
integración en un rango de tiempo de tr=[0,1] partiendo de un valor inicial de x(1) y x(2)
igual a uno (x0=[1,1]). Los valores reportados serán los valores de x(1) y x(2) agrupados en
la matriz x y los valores del tiempo en el vector columna t.
Para mayores detalles introducir help ode45 (help ode23, helpode15s) y help odefile en la
ventana de comandos de Matlab.
Para graficar los resultados obtenidos de la simulación dinámica (solución de las
ecuaciones diferenciales en un rango de tiempo) simplemente se introduce en la ventana de
comandos de Matlab:
>>plot(t,x)
La gráfica obtenida se muestra a continuación. Para mayores detalles introducir help plot en
la ventana de comandos de Matlab.

3 ECUACIONES EN SIMULINK

La ecuación diferencial que define un sistema continuo es la siguiente:

Queremos obtener la relación x/u.

El modelo de Simulink que representa esta ecuación diferencial es el siguiente:

Obtener la transformada de laplace de esta ecuación y simular ante el paso unitario

4. CONVOLUCIÓN CON MATLAB

Es de recordar que la suma convolución expresa la salida de un sistema de tiempo discreto


en términos de la entrada y la respuesta al impulso del sistema. Matlab tiene una función
llamada conv que evalúa la convolución de señales de tiempo discreto de duración finita.
Si x y h son vectores representado señales, entonces el siguiente comando de Matlab
genera un vector llamado y representando la convolución de la señales representadas por x
y h.

y = conv(x, h)

El número de elementos en el vector y es dado por la suma de el número de elementos en


x y h menos uno. Nótese que se debe conocer el tiempo de origen de las señales
representadas por x y h con el fin de determinar el tiempo de origen de la convolución. En
general, si el primer elemento de x corresponde al tiempo n=kx y el primer elemento de h
corresponde a n=kh, entonces el primer elemento de y corresponde al tiempo n= kx+kh.

Para ilustrar este hecho, considere el siguiente ejemplo:


Asuma el sistema LTI el cual tiene la siguiente respuesta al impulso.

Determine la salida de este sistema en respuesta a la siguiente entrada.

Aquí el primer elemento diferente de cero en la respuesta al impulso del sistema ocurre en
el tiempo n = -1 y el primer elemento de la entrada x ocurre en el tiempo n = 0. La
anterior convolución se puede calcular en Matlab de la siguiente manera:

>> h = [1, 2, 1];

>> x = [2, 3, -2];

>> y = conv(x,h)

y=

2 7 6 -1 -2

>> n = -1:3;

>> stem(n,y);

EJERCICIOS PARA REALIZAR

1) Determine las soluciones de las siguientes ecuaciones diferenciales con valores


iniciales

a) 3t 2 + 4ty + ( 2y + 2t2 ) dy/dt = 0, y(0) = 1;


2) Resolver y graficar la siguiente ecuación diferencial para un intervalo de tiempo 0 ≤ t ≤ 60
dy
0.1( y 10)
dt
yo 100

3) Resuelva la siguiente ecuación diferencial. Modele el sistema en el simulink y obtenga


la respuesta y en el tiempo de 0 a 10seg., para una entrada x(t) escalón unitario.
Condiciones iniciales = 0

También podría gustarte