Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Análisis de Sistemas
Andrés Núñez Zumbado, B44968
Alejandro Rojas Cordero, B36049
Ronny Quirós Alvarado, B25316
1
Índice
1. Ejercicio 1. Modelica 2
1.1. Modelo Lotka Volterra: Dinámica Depredador - Presa . . . . . . . . . . . . . 2
1.1.1. Código de OpenModelica Connection Editor . . . . . . . . . . . . . . 5
1.2. Circuito Eléctrico RLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1. Código de OpenModelica Connection Editor . . . . . . . . . . . . . . 9
2. Ejercicio 2. Simulink 10
2.1. Análisis de Modelo de Reactor Quı́mico . . . . . . . . . . . . . . . . . . . . 10
2.2. Código de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3. Ejercicio 3. Matlab 18
3.1. Código de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2. Diagrama de Polos y Ceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3. Respuesta del sistema ante distintas entradas . . . . . . . . . . . . . . . . . 20
4. Ejercicio 4. Matlab 23
4.1. Modelo numérico Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. Código de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6. Conclusiones 31
abstract
El objetivo del laboratorio 1 consiste en realizar una primera aproximación a
herramientas computacionales que serán de gran ayuda para el análisis y
modelado de sistemas.
1
1. Ejercicio 1. Modelica
1.1. Modelo Lotka Volterra: Dinámica Depredador - Presa
Los sistemas biológicos pueden ser modelados matemáticamente por medio de sistemas
de ecuaciones diferenciales que incorporan variables de estado y constantes que describen
la dinámica entre las especies en estudio. La relación entre dos especies, en la cual una de
ellas corresponde al depredador y la otra a la presa; puede ser analizada mediante el modelo
conocido comúnmente como Lotka Volterra. A continuación se presentan las ecuaciones que
ilustran el fenómeno ecológico.
(
ṗ(t) = p(t) · [α − βd(t)]
˙ = d(t) · [δp(t) − γ] (1)
d(t)
En dicho modelo se intenta describir el comportamiento de las poblaciones de las presas
(p) y depredadores (d), en el tiempo. Se consideran factores como la tasa de reproducción de
las presas (α), la tasa de reproducción del depredador por presa (δ), la tasa de mortalidad del
depredador (γ), la tasa de mortalidad del depredador por presa (β) y las condiciones iniciales
de la cantidad de individuos en cada especie. Además, las derivadas de las poblaciones de
presas y depredadores equivalen a su tasa de crecimiento.
Se realizó el análisis para tres casos con distintas condiciones iniciales. Para el primer
caso se tuvo que inicialmente existı́an más depredadores que presas; 14 y 7, respectivamente.
En el segundo caso, la cantidad inicial de presas y depresadores fue la misma, 4 cada uno.
Y finalmente, el caso en el que se tuvieron más presas que depredadores; 14 y 6, de forma
respectiva.
De forma general en los tres casos, se observó el siguiente comportamiento:
2
En el punto máximo y mı́nimo de cantidad de individuos de una población (donde
la primera derivada es cero) se da el cambio de concavidad del comportamiento de la
población opuesta (donde la segunda derivada es igual a cero).
Para el primer y segundo caso en especı́fico, se observó que el punto máximo de cantidad
de individuos depredadores, ocurre en la segunda intersección de poblaciones, cuando ambas
tienen la misma cantidad de individuos aproximadamente, como se puede observar en la
Figura 1 y en la Figura 2. Estos dos comportamientos se considera meramente matemáticos,
debido a que el punto mı́nimo de individuos depredadores en ambos casos decae a un valor
menor a un individuo a los 20 segundos; que en la realidad equivale a que la población de
depredadores se extingue y por lo tanto, es incapaz de reproducirse y aumentar su población
para el segundo ciclo del perı́odo del comportamiento matemático, y, que la población de
presas aumenta sin lı́mite dado a que no hay individuos depredadores que controlen su tasa
de crecimiento.
3
Figura 2: Modelo Lotka Volterra para condiciones iniciales: 4 presas y 4 depredadores.
4
Figura 3: Modelo Lotka Volterra para condiciones iniciales: 14 presas y 6 depredadores.
model LotkaVolterra
5
Depredador = DepredadorInicial;
end LotkaVolterra;
El resultado del primer caso se ilustra en la Figura 5, donde se observa que a partir
de 3 segundos; donde ocurre el escalón de tensión, el capacitor empieza a cargarse, es decir;
su tensión aumenta hasta ser aproximadamente la tensión de la fuente de voltaje directa. A
los 10 segundos, el capacitor tiene una tensión entre sus terminales de casi 12V, igual que
la fuente de tensión. Dado que la fuente de corriente tiene un valor de 0A en todo tiempo,
se comporta como un circuito abierto entre sus terminales, y toda la corriente de circuito
circula a través del lazo externo.
dy(t)
ic = C (2)
dt
Según el modelo matemático del capacitor, la corriente a través del mismo (que equivale
a la corriente en todo el circuito) sólo existe cuando la tensión entre las terminales del
capacitor (y(t)) es variable, esto debido al término derivador. Entre los 3 y 10 segundos,
el capacitor experimenta un aumento de tensión y durante este perı́odo existe corriente en
el circuito. Después de los 10 segundos, la tensión y(t) se estabiliza y adquiere un valor
constante de 12V hasta tiempo infinito; rango en el cual la corriente en el circuito es muy
cercana al cero absoluto. Debido a que en este rango no existe corriente, entonces tampoco
se generan caı́das de tensión en los resistores ni en el inductor. El modelo matemático del
inductor define que la tensión entre sus terminales depende de la variación de la corriente
6
a través de él, en este caso, su tensión en cero debido a que la corriente es constante en el
circuito.
dIc
VL = L (3)
dt
Figura 5: Tensión y(t) (rojo), Vin (azul) y iin (verde), para las condiciones del Caso 1.
7
En el segundo caso, el cual se ilustra en la Figuras 6 y 7, se tiene un cambio respecto
al caso anterior; la fuente de corriente se comporta como un circuito abierto entre los 0 y los
17 segundos, punto en el cual se enciende como un escalón de magnitud 3A.
En los primeros 17 segundos, la tensión en el capacitor y(t) se comporta de la misma
forma que en el primer caso; su valor es constante e igual a 12V. En la Figura 7 se observan
los tiempos de encendido de ambas fuentes.
A los 17 segundos, la fuente de corriente fuerza a pasar corriente a través del capacitor,
y como consecuencia, genera una variación en la tensión del mismo. La corriente de 3A se
debe distribuir inicialmente de forma proporcional a la magnitud de las resistencias, 5kω y
10kΩ; debido a que en ese instante no hay caı́da de tensión en ninguna de las dos. La fuente
de corriente es un generador constante, por que lo finalmente el inductor se carga totalmente,
haciendo pasar la totalidad de la corriente a través de él y entonces, una corriente de 0A pasa
por el capacitor, generando que la variación en la tensión del mismo sea de cero; es decir, el
capacitor llega a una tensión constante e igual a 15kV, como se observa en la Figura 6.
8
Figura 7: Vin (azul) y iin (verde), para las condiciones del Caso 2.
model Circuito
9
%Se definen las ecuaciones del sistema.
equation
If = if time >= 17.0 then 0.0 else 0.0;
Vf = if time >= 2.0 then 12 else 0.0;
C * der(Vc) = Il+If;
L * der(Il) = Vf - R1 * Il - R2 *(If + Il) - Vc;
end Circuito;
2. Ejercicio 2. Simulink
2.1. Análisis de Modelo de Reactor Quı́mico
La simulación de un reactor quı́mico viene dado por el siguiente sistema de variables
de estado:
dCa F0 (Ca0 − Ca )
= − k1 Ca Cb (4)
dt V
dCb F0 (Cb0 − Cb )
= − k1 Ca Cb − k2 Cb Cx − k3 Cb Cy (5)
dt V
dCx F0 (Cx0 − Cx )
= + k1 Ca Cb − k2 Cb Cx (6)
dt V
dCy F0 (Cy0 − Cy )
= + k2 Cb Cx − k3 Cb Cy (7)
dt V
dCz F0 (Cz0 − Cz )
= + k3 Cb Cy (8)
dt V
Donde Ca , Cb , Cx , Cy y Cz son las variables de estado del sistema. Y además, Ca0 , Cb0 ,
Cx0 , Cy0 y Cz0 son las entradas del sistema.
La Figura 8 muestra el diagrama implementado en Simulink para la obtención de
las gráficas de las variables de estado. Primeramente, se definieron todas las entradas del
sistemas y se colocaron a la izquierda, utilizando un bloque señales cuadradas. Seguidamente,
se colocaron todas las variables de estado a la derecha, que corresponden a las variables que
se desean graficar, utilizando un bloque de scope.
Para la variable Ca se utilizó la Ecuación 4 y por medio de la utilizaron de bloques de
ganancia, suma e integradores, se establecieron las conexiones entre bloques, tal que:
10
1. Se empezó por la parte derecha de la Ecuación 4, en donde no existen términos diferen-
ciales.
2. Se realizaron las operaciones por orden de prioridad, empezando por la variable de estado
Ca .
7. Obtenido ambos puntos luego de la operación con sus respectivos bloques de ganancia se
realizó la resta entre dichos resultados (4 y 6).
8. Una vez la resta realizada, se tiene en este punto la operación completa del lado derecho
de la Ecuación 4; que es equivalente al lado derecho, es decir; se tiene en este instante
dCa /dt.
9. Como lo que realmente se desea es el valor de Ca , se hace pasar el resultado del punto 9
por medio de un bloque integrador, al cual se le puede indicar la condición inicial de la
variable de estado en el tiempo igual a cero segundos.
11
Figura 8: Diagrama de bloques en Simulink para la simulación de un reactor quı́mico.
12
Comportamiento de la Variable de Estado Ca
1
0.9
0.8
Variable de Estado Ca
0.7
0.6
0.5
X: 830
Y: 0.3889
0.4
0.3
0 100 200 300 400 500 600 700 800 900 1000
Tiempo [s]
13
Comportamiento de la Variable de Estado Cb
0.6
X: 750
Y: 0.5756
0.5
Variable de Estado Cb
0.4
0.3
0.2
0.1
0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo [s]
14
10-3 Comportamiento de la Variable de Estado Cx
3.5
X: 650
Y: 0.002893
3
2.5
Variable de Estado Cx
1.5
0.5
0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo [s]
15
10-3 Comportamiento de la Variable de Estado Cy
4
X: 750
3.5 Y: 0.003866
3
Variable de Estado Cy
2.5
1.5
0.5
0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo [s]
16
10-3 Comportamiento de la Variable de Estado Cz
4.5
X: 850
4 Y: 0.004446
3.5
Variable de Estado Cz
2.5
1.5
0.5
0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo [s]
figure
plot(Ca(:,1),Ca(:,2),’r’,’linewidth’,2)
title(’Comportamiento de la Variable de Estado Ca’)
xlabel(’Tiempo [s]’)
ylabel(’Variable de Estado Ca’)
grid on
figure
plot(Cb(:,1),Cb(:,2),’r’,’linewidth’,2)
17
title(’Comportamiento de la Variable de Estado Cb’)
xlabel(’Tiempo [s]’)
ylabel(’Variable de Estado Cb’)
grid on
figure
plot(Cx(:,1),Cx(:,2),’r’,’linewidth’,2)
title(’Comportamiento de la Variable de Estado Cx’)
xlabel(’Tiempo [s]’)
ylabel(’Variable de Estado Cx’)
grid on
figure
plot(Cy(:,1),Cy(:,2),’r’,’linewidth’,2)
title(’Comportamiento de la Variable de Estado Cy’)
xlabel(’Tiempo [s]’)
ylabel(’Variable de Estado Cy’)
grid on
figure
plot(Cz(:,1),Cz(:,2),’r’,’linewidth’,2)
title(’Comportamiento de la Variable de Estado Cz’)
xlabel(’Tiempo [s]’)
ylabel(’Variable de Estado Cz’)
grid on
3. Ejercicio 3. Matlab
La pregunta 3 consistió en trabajar el modelo de un sistema dadas las matrices A, B,
C y D que lo definen. Utilizando comandos de matlab (el código completo se muestra en
el apartado siguiente), se crea primero el espacio de variables de estados del sistema, para
posteriormente analizar su salida ante distintas entradas. Por último se obtiene la función de
transferencia, que permite además comprobar que el diagrama de polos y ceros del sistema,
coincida con la función de transferencia obtenida.
18
C = [-1 -1 1 -1 0 1];
D = [-1];
19
[num,den]=ss2tf(A,B,C,D)
H=tf(num,den)
8
8
0.68 6
6
4
4
0.88
)
-1
2
2
Imaginario (seconds
-2
2
0.88
-4
4
-6
0.68 6
-8
8
20
Un comportamiento similar se observa en la figura 17, donde se aplicó una entrada
de escalón unitario al sistema. Sin embargo, difiere de los casos anteriores ya que todo el
comportamiento se da en el eje negativo de la amplitud. En este caso vemos también como
el sistema oscila de manera pronunciada en el primer segundo, después de este tiempo dis-
minuye la amplitud de las oscilaciones y se estabiliza en un valor negativo.
Por último, en la figura 18 se muestra la salida al aplicar una entrada de onda cuadrada.
Como podemos observar, el sistema presenta un comportamiento inverso al de la entrada,
donde la onda cuadrada es positiva, la salida es negativa. Además, en cada transición de la
entrada, la salida oscila hasta volver a un valor aproximado de -1.
0.5
0
Amplitud
-0.5
-1
-1.5
-2
0 1 2 3 4 5 6
Tiempo (seconds)
21
Respuesta a entrada de impulso
4
0
Amplitud
-1
-2
-3
-4
-5
0 1 2 3 4 5 6
Tiempo (seconds)
-1
-1.2
-1.4
Amplitud
-1.6
-1.8
-2
-2.2
-2.4
0 1 2 3 4 5 6
Tiempo (seconds)
22
Respuesta a entrada de onda cuadrada
1.5
0.5
0
Amplitud
-0.5
-1
-1.5
-2
-2.5
0 10 20 30 40 50 60 70 80
Tiempo (seconds)
4. Ejercicio 4. Matlab
4.1. Modelo numérico Newton-Raphson
El método númerico de Newton Raphson se basa en el conocimiento de la derivada de
la función y(x) en el punto xi para encontrar una aproximación de la raı́z de la ecuación y(x)
= 0. Matemáticamente se aproxima la función y(x) a una serie de Taylor truncada al primer
orden de manera que se pueda encontrar, mediante algunas iteraciones, el valor de la raı́z.
La aproximación de primer orden sigue la forma:
y(xi+1 ) ≈ y(xi ) + y 0 (xi ) · (xi+1 − xi ) (9)
Debido a que se quiere conocer el valor de x en el cual la función y(x) interseca con el
eje x; se define y(xi+1 = 0. Por lo tanto, de la Ecuación 9 se tiene que:
y(xi )
xi+1 = xi − (10)
y 0 (xi )
Para este problema se requiere encontrar las soluciones de la ecuación:
√
5 3
20x4 + x2 + tan(3x2 ) − 8x3 = − x · sec(x) + e7x (11)
15 5
Por lo tanto, siguiendo el método de solución numérico de Newton-Raphson se debe
obtener la función y(x) de la forma:
23
√
5 3
y(x) = 20x4 + x2 + tan(3x2 ) − 8x3 + x · sec(x) − e7x (12)
15 5
Y aplicando el método numérico iterativo de Newton-Raphson mediante la implemen-
tación de código de matlab se encontraron algunas soluciones en las que y(x) interseca al eje
equis. En dichos puntos, la Ecuación 11 posee soluciones.
En la Figura 19 se muestra la ventana de comando para la primera solución de la
Ecuación 11; la cual fue en x = −0,2344. La Figura 20 muestra cómo la curva de la ecuación
y(x) interseca en el mismo punto x = −0,2344 determinado anteriormente mediante el código
de matlab.
24
0.1
0.05
X: -0.2344
Variable dependiente y
Y: -0.0003267
0
-0.05
-0.1
-0.15
-0.25 -0.245 -0.24 -0.235 -0.23 -0.225 -0.22 -0.215 -0.21 -0.205 -0.2
Variable dependiente x
25
Figura 21: Segunda solución encontrada en x = −0,7484
0.5
X: -0.7484
Y: -0.0003637
0
Variable dependiente y
-0.5
-1
-1.5
-2
-0.749 -0.7485 -0.748 -0.7475 -0.747 -0.7465 -0.746 -0.7455 -0.745 -0.7445
Variable independiente x
26
4.2. Código de Matlab
A continuación se presenta el código de matlab implementado para la resolución del
método númerico de Newton-Raphson:
27
f1=subs(f,x,fx(i+1));
d=subs(z,x,fx(i+1));
28
%Función 4
x= 4: (1*10^-5):7;
y4=-3*sqrt(1-(x/7).^2);
plot (x,y4,’Color’,[1,1,0])
hold on
%Función 5
x= -4:(1*10^-5):4;
y5=abs(x/2)-((3*sqrt(33)-7)/(112))*x.^2+sqrt(1-(abs(abs(x)-2)-1).^2)-3;
plot (x,y5,’Color’,[1,0,0])
hold on
%Función 6
x= -1:(1*10^-5):-0.75;
y6=9-8*abs(x);
plot (x,y6,’Color’,[1,0,0])
hold on
%Función 7
x= 0.75:(1*10^-5):1;
y7=9-8*abs(x);
plot (x,y7,’Color’,[1,0,0])
hold on
%Función 8
x= -0.75:(1*10^-5):-0.5;
y8=3*abs(x)+0.75;
plot (x,y8,’Color’,[1,0,0])
hold on
%Función 9
x= 0.5:(1*10^-5):0.75;
y9=3*abs(x)+0.75;
plot (x,y9,’Color’,[1,0,0])
hold on
%Función 10
x1= -0.5;
x2= 0.5;
y10=2.25;
plot ([x1,x2],[y10,y10],’Color’,[1,0,0]);
hold on
%Función 11
x= -3:(1*10^-5):-1;
y11=(6*sqrt(10))/(7) + (1.5-0.5*abs(x)) - ((6*sqrt(10))/(14))*sqrt(4-(abs(x)-1).^2);
plot (x,y11,’Color’,[1,0,0])
hold on
%Función 12
29
x= 1:(1*10^-5):3;
y12=(6*sqrt(10)/7)+(1.5-0.5*abs(x))-(6*sqrt(10)/14)*sqrt(4-(abs(x)-1).^2);
plot (x,y12,’Color’,[1,0,0])
hold on
-1
-2
-3
-8 -6 -4 -2 0 2 4 6 8
30
6. Conclusiones
En este laboratorio se aprendió sobre el uso de las herramientas computacionales que
utilizaremos durante el semestre para la simulación de nuestros sistemas, y como estas nos
pueden ayudar a ver en que está fallando y qué parte debemos corregir para tener un funcio-
namiento óptimo. También se utilizó Matlab como una herramienta de ayuda matemática,
para resolver ecuaciones de difı́cil cálculo, y también para graficar funciones.
Además, es posible analizar el comportamiento en el tiempo de un sistema por medio
de su modelo en variables de estado. Para este laboratorio, conociendo las matrices que
conforman el MVE, se obtuvo el espacio de variables de estado y con este fue posible analizar
la salida del sistema según la entrada que se le aplica. Se puede concluir que la respuesta de
un sistema depende completamente de la entrada, ası́ como de las condiciones con que inicia
el sistema.
El programa OpenModelica permite la solución de sistemas de ecuaciones diferenciales
mediante métodos numéricos, siendo de mucha utilidad debido a que no es necesario realizar
el cálculo de forma manual y analı́tica para conocer el comportamiento de variables de estado;
donde el procedimiento regular requiere de la transformación de Laplace y Laplace inversa.
En cuanto a Simulink, permite igualmente la solución de sistemas de ecuaciones dife-
renciales mediante la asociación de bloques, representando variables y procesos matemáticos
de forma sencilla. De esta manera, no se requiere resolver las ecuaciones de analı́ticamente.
31
Referencias
[1] Michael M. Tiller. Lotka-Volterra Systems. Extraı́do el 14 de setiembre del 2017 de:
http://book.xogeny.com/behavior/equations/population/
[3] César, J. (Junio, 2016). Método de Newton-Raphson. Extraı́do el 14 de setiembre del 2017
de: https://blogdelingeniero1.wordpress.com/2013/12/31/-metodo-de-newton-raphson-
newton-fourier-en-matlab/
32