Sei sulla pagina 1di 6

Sistemas Dinámicos - Tarea 2: Sistemas Discretos

Solución
Pontificia Universidad Javeriana, Bogotá
Profesor: Gerardo Becerra.
Fecha límite de entrega: Jueves 8 de febrero de 2018 11:59 pm, a través de la página de
Blackboard del curso.

1. (10 puntos) Escriba la representación en variables de estado de la siguiente ecuación de diferencias:

a3 y(k + 3) + a2 y(k + 2) + a1 y(k + 1) + a0 y(k) = b2 u(k + 2) + b1 u(k + 1) + b0 u(k)

Una forma de entender mejor la forma como se relacionan las variables en una ecuación de diferencias es
dibujar el diagrama en bloques. La Fig. 1 presenta dicho diagrama:
Para obtener la representación en variables de estado se deben escribir las variables de la ecuación de diferencias
como variables fase. En este caso, como existen términos con retrasos para la entrada u, también se asignan
variables de fase a éstos. Es importante recordar que el objetivo es escribir una ecuación de estado de la forma
x(k + 1) = Ax + Bu.

x1 (k) = u(k)
x2 (k) = x1 (k + 1) = u(k + 1) (1)

Observando el diagrama de bloques podemos decir respecto a la entrada:

x2 (k + 1) = u(k + 2) (2)

Ahora, para las variables y:

x3 (k) = y(k)
x4 (k) = x3 (k + 1) = y(k + 1) (3)
x5 (k) = x4 (k + 1) = y(k + 2) (4)

Ahora, con la Despejando el término y(k + 3) de la ecuación de diferencias tenemos:

a2 a1 a0 b2 b1 b0
x5 (k + 1) = − y(k + 2) − y(k + 1) − y(k) + u(k + 2) + u(k + 1) + u(k) = y(k + 3) (5)
a3 a3 a3 a3 a3 a3

Entonces, escribiendo la sección subrayada de las Eqs. (1)-(5) tenemos:


      
x1 (k + 1) 0 1 0 0 0 x1 (k) 0
x2 (k + 1)  0 0 0 0 0  x2 (k)  1 
   
  
x3 (k + 1) =  0 0 0 1 0  x3 (k) +  0   u(k + 2) (6)
   
  
x4 (k + 1)  0 1 0 0 1  x4 (k)  0 
x5 (k + 1) b0/a3 b1/a3 −a0/a3 −a1/a3 −a2/a3 x5 (k) b2/a3

2. (10 puntos) La ecuación x2 = a puede escribirse como x = 21 (x + a/x). Esta forma lleva al método de
Newton para calcular la raíz cuadrada de un número positivo:
 
1 a
x(n + 1) = x(n) +
2 x(n)

1
b2
a3

b1
a3

b0
s−1 s−1 a3
u(k + 2) u(k + 1) u(k) y(k + 3)
x2 (k + 1) x2 (k) x1 (k)

a0
a3
a1
a3
a2
a3

s−1 s−1 s−1


y(k) y(k + 1) y(k + 2)
x3 (k) x4 (k) x5 (k)
Figure 1: Diagrama de bloques

(a) Calcule los valores de equilibrio para la ecuación de diferencias. Se dice que el sistema está en equilibrio
cuando el estado es constante entre un periodo y el siguiente: x(n + 1) = x(n) = x̄.

Reemplazando la condición de equilibrio en la ecuación de diferencias se tiene que:


1 a √
x̄ = x̄ + ⇒ x̄ = ± a
2 x̄
√ √
La ecuación de diferencias tiene entonces dos puntos de equilibrio: x̄1 = a, x̄2 = − a.
(b) Asumiendo a = 3, escriba un script de Matlab para encontrar la solución de la ecuación de diferencias
de manera iterativa. Grafique la respuesta para las dos condiciones iniciales x(0) = 1 y x(0) = −1.

El script mostrado en la Fig.2 calcula de manera iterativa la solución a la ecuación de diferencias. En la


misma figura se muestra la respuesta para las dos condiciones iniciales definidas.
(c) Concluya a partir de los resultados en (a) y (b).

√ dos puntos de equilibrio: x̄ = ±
En el punto (a) se obtuvo que el sistema discreto tiene √ a. En el punto
(b) se observa que el estado del sistema converge a a para x(0) > 0 y converge a − a para x(0) < 0.
Éste método es útil para calcular de manera iterativa el valor aproximado de la raíz cuadrada y podría
utilizarse, por ejemplo, en un microcontrolador que no cuente con librerías de funciones matemáticas.
3. (30 puntos) La Ec. (7) corresponde al modelo dinámico de una población, donde xn representa la proporción
entre la población existente en el periodo de tiempo n y la máxima población posible.

xn+1 = rxn (1 − xn ) (7)

El modelo corresponde a una ecuación de diferencias, no lineal, que representa los fenómenos de abundancia
(cuando la población es pequeña, ésta aumenta debido a la disponibilidad de recursos) y escasez (cuando
la población es grande, ésta disminuye debido a la falta de recursos). El parámetro r representa la tasa de
crecimiento de una generación a la siguiente.

(a) Escriba un script de Matlab para obtener la respuesta del sistema, asumiendo una tasa de crecimiento
r = 2.5. Realice una gráfica mostrando las respuestas del sistema para diferentes condiciones iniciales en

2
2

1.5 X: 10
Y: 1.732
1

0.5

x(n)
0

a = 3; -0.5

N = 10;
-1
x = zeros(N,1);
x(1) = 1; X: 10
-1.5 Y: -1.732
for k = 1:N-1
x(k+1) = 0.5*(x(k)+a/x(k)); -2
end 1 2 3 4 5 6 7 8 9 10
n
plot(x)

Figure 2: Script que encuentra de manera iterativa la raíz cuadrada de un número usando el método de Newton (izq),
Respuesta de las iteraciones para las dos condiciones iniciales diferentes (der).

r 2.8 3.2 3.52 3.558 3.567 3.569 3.595 3.67


T - 2 4 6 8 16 32 -

Table 1: Valores del parámetro r y periodo T obtenido en su correspondiente respuesta.

el intervalo [0.01...0.99], para un periodo de tiempo de N = 20 generaciones.

La Fig.3 muestra el script implementado para simular la respuesta del sistema para diferentes condiciones
iniciales. En la gráfica se observa que cuando la población inicial es pequeña, debido a la abundancia
de recursos ésta aumentará hasta llegar a un punto de equilibrio. Para el caso de poblaciones iniciales
grandes, la escasez hace que la población decaiga rápidamente, hasta llegar a un punto donde nuevamente
los recursos disponibles son suficientes para que la población crezca hasta llegar al equilibrio. Para todas
las condiciones iniciales se alcanza el mismo punto de equilibrio.
(b) Ahora, fije la condición inicial igual a 0.5 y amplíe la duración de la simulación a N = 100 generaciones.
Grafique la respuesta del sistema para los valores de la tasa de crecimiento:

r = {2.8, 3.2, 3.52, 3.558, 3.567, 3.569, 3.595, 3.67}.

En cada caso, si obtuvo una señal periódica, identifique el periodo Tr de la señal obtenida. Analice el
resultado obtenido.

En la Fig.4 se muestran las diferentes respuestas para las tasas de crecimiento mencionadas. Para el caso
r = 2.8, la población presenta una oscilación inicial, pero rápidamente se estabiliza. Para los valores
posteriores se observa que la población presenta un comportamiento oscilatorio, donde se puede observar
un comportamiento periódico. En la tabla 1 se muestran los periodos de las señales oscilatorias obtenidos
para cada valor del parámetro r. Se puede observar que el periodo se duplica con cada cambio, pero
para el caso r = 3.67 la señal es aperiódica, es decir, no es posible identificar un valor de T para el cual
la señal se repita.
(c) Para investigar mejor el comportamiento del sistema respecto a los cambios en el parámetro r, modi-
fique el script del punto anterior para simular el sistema en un rango de valores de r = [0...4] con 1000
puntos. Puede usar para ésto el comando de Matlab linspace(0,4,1000). Prepare una gráfica donde
el eje horizontal corresponde a los valores del parámetro r y en el eje vertical los últimos 50 valores de
x obtenidos en cada simulación, es decir x51 hasta x100 . Para hacerlo utilice la función de Matlab scatter.

3
1

0.9

0.8
N = 100;
x = zeros(1,N); 0.7
r = 2.5;
0.6
x0 = linspace(0.01,0.99,20);

x(n)
for i = 1:length(x0) 0.5
x(1) = x0(i);
0.4
for k = 1:N-1
x(k+1) = r*x(k)*(1-x(k)); 0.3
end 0.2
figure(1)
hold on 0.1

plot(1:N,x) 0
hold off 2 4 6 8 10 12 14 16 18 20
n
end

Figure 3: Script para obtener la respuesta del modelo poblacional.

r=2.800000 r=3.200000
1 1

X: X:
6062
0.5 0.5
Y: 0.7995
Y: 0.7995

0 0
50 60 70 80 90 100 50 60 70 80 90 100
r=3.520000 r=3.558000
1 1

X: 60X: 64 X: 60 X: 68
0.5 Y: 0.8233
Y: 0.8233 0.5 Y: 0.8093 Y: 0.8093

0 0
50 60 70 80 90 100 50 60 70 80 90 100
r=3.567000 r=3.569000
1 1

X: 60 X: 76 X: 60 X: 92
0.5 Y: 0.8092 Y: 0.8092 0.5 Y: 0.8091 Y: 0.8091

0 0
50 60 70 80 90 100 50 60 70 80 90 100
r=3.595000 r=3.670000
1 1

X: 60
0.5 Y: 0.8973 0.5

0 0
50 60 70 80 90 100 50 60 70 80 90 100

Figure 4: Respuestas para diferentes valores del parámetro r.

4
r_vec = linspace(0,4,1000);
N = 100;
M = 50;
x = zeros(1,N);
x(1) = 0.5;
for i = 1:length(r_vec)
r = r_vec(i);
for k = 1:N-1
x(k+1) = r*x(k)*(1-x(k));
end
figure(1)
plot(1:N,x)
axis([1 N 0 1])
title(sprintf(’r=%f’,r))
drawnow
figure(2)
hold on
scatter(r*ones(1,M),
x(end-M+1:end),0.5,’b.’)
hold off
end
xlabel(’r’)
ylabel(’x_{50:100}’)

Figure 5: Script (izq) y gráfica (der) de los valores de x51:100 obtenidos a medida que varía el parámetro r.

En la Fig.5 se muestra el script que define un vector con 1000 valores del parámetro r en el intervalo [0, 4].
Luego ejecuta un ciclo para evaluar la respuesta del sistema para cada valor de r, y grafica verticalmente
los últimos 50 puntos de la señal obtenida para el valor correspondiente de r. En la gráfica se observa que
para valores de la tasa de crecimiento r = 1, la población eventualmente va a extinguirse, sin importar
la condición inicial.
(d) Analice los resultados obtenidos. ¿Puede explicar lo que sucede a medida que aumenta r?

Cuando 1 < r < 3, la población alcanza un punto de equilibrio, el cual aumenta a medida que r
aumenta. Luego, para 3 < r < 3.44949 aproximadamente la población presenta oscilación entre dos
valores diferentes. Pra 3.44949 < r < 3.54409 aproximadamente la población presenta oscilación entre 4
valores diferentes. Para valores de r > 3.54409 la población continuará presentando oscilaciones donde
los periodos se van duplicando: 8, 16,32, etc. En la Fig.6 se muestra ésta región en más detalle. Para
r > 3.56995 el sistema empieza a presentar oscilaciones entre valores diferentes pero sin ningún tipo
de periodicidad. Para las regiones donde no se puede observar un comportamiento periódico se dice
que el sistema presenta un comportamiento caótico. Bajo éstas condiciones pequeños cambios en la
población inicial producirán comportamientos totalmente diferentes, la cual es una propiedad inherente
del caos. También se puede observar que en intervalos posteriores de r el sistema recupera nuevamente el
comportamiento periódico, para luego ingresar nuevamente en la región de comportamiento aperiódico.
En el contexto de teoría del caos, al diagrama de la Fig.5 se le conoce como un diagrama de bifurcación.

5
Figure 6: Detalle del comportamiento del sistema para r = [3.5, 4]

Potrebbero piacerti anche