Está en la página 1de 15

INSTITUTO POLITECNICO NACIONAL

Unidad Profesional Interdisciplinaria en Ingeniería y


Tecnologías Avanzadas

Práctica 1
“Cálculo de la exponencial de una matriz”
Control de Sistemas Mecatrónicos
Dr. Armando Fabián Lugo Peñaloza
4MV8

Alumnos:
Galván Cruz Daniel
López Terán Irving Josué
Martínez Briones Alexis
Roque Romero Luis Jesús

Fecha de entrega: 03/09/202


INDICE
1. Objetivo ................................................................................................................................... 1
2. Material .................................................................................................................................... 1
3. Introducción ............................................................................................................................. 1
4. Marco Teórico ......................................................................................................................... 2
1.1 Matriz Exponencial .......................................................................................................... 2
1.2 Propiedades de la matriz de transición de estados ........................................................... 2
1.3 Métodos para el cálculo de la matriz de transición de estados......................................... 3
1.3.1 Primer Método .......................................................................................................... 3
1.3.2 Segundo Método ....................................................................................................... 3
1.3.3 Tercer Método ........................................................................................................... 3
1.3.4 Cuarto Método .......................................................................................................... 4
1.3.4.1 Caso 1: Raíces Distintas ........................................................................................ 4
1.3.4.2 Caso 2: Raíces Repetidas ...................................................................................... 4
5. Desarrollo de la práctica .......................................................................................................... 5
1.4 Aplicación de los métodos ............................................................................................... 9
6. Conclusiones .......................................................................................................................... 13
7. Referencias ............................................................................................................................ 13
1. Objetivo
Crear un programa con una función que tome como argumento de entrada una matriz 𝐴 ∈ ℝ𝑛𝑥𝑛 ,
y que devuelva su matriz exponencial 𝑒 𝐴𝑡 correspondiente, obtenida mediante todos los métodos
vistos en clase.

2. Material
• Archivos y apuntes de introducción de la unidad de aprendizaje proporcionados por el
profesor
• Computadora con Matlab

3. Introducción
Un sistema moderno complejo posee muchas entradas y muchas salidas que se relacionan entre sí
de una forma complicada. Mientras la teoría de control convencional se basa en la relación entrada-
salida, o función de transferencia, la teoría de control moderna se basa en la descripción de las
ecuaciones de un sistema en términos de n ecuaciones diferenciales de primer orden, que se
combinan en una ecuación diferencial vectorial de primer orden. El uso de la notación matricial
simplifica enormemente la representación matemática de los sistemas de ecuaciones. El
incremento en el número de variables de estado, de entradas o de salidas no aumenta la
complejidad de las ecuaciones.
4. Marco Teórico
1.1 Matriz Exponencial

Sea 𝐴 ∈ ℝ n x n la ecuación de estado de un sistema lineal autónomo (LTI), definimos la siguiente


matriz:
𝑡2 𝑡𝑘
𝑒 𝐴𝑡 = 𝐼 + 𝑡𝐴 + 2! 𝐴2 = ∑∞
𝑘=0 𝑘! 𝐴
𝑘
(1)

A esta matriz se le conoce como matriz exponencial o matriz de transición de estados ya que nos
permite conocer el comportamiento de las variables de estado en el tiempo (su transición) y se
denota como:
ϕ(𝑡) = 𝑒 𝐴𝑡 (2)

La matriz de transición de estados contiene toda la información sobre el movimiento libre del
sistema definido mediante la siguiente ecuación:
𝑥̇ = 𝐴𝑥 (3)

1.2 Propiedades de la matriz de transición de estados

A continuación, se resumen las propiedades importantes de la matriz de transición de estados ϕ(𝑡).


Para el sistema lineal e invariante con el tiempo
𝑥̇ = 𝐴𝑥
para el cual:
ϕ(t) = 𝑒 𝐴𝑡 (4)

se tienen las siguientes propiedades:

• ϕ(0) = eA∙0 = I (5)


(5)

• ϕ(t1 + 𝑡2 ) = eA(t1+t2) = 𝑒 𝐴𝑡1 ∙ 𝑒 𝐴𝑡2 = ϕ(t1 ) ∙ ϕ(𝑡2 ) (6)

−1
• ϕ(−t) = 𝑒 𝐴(−𝑡) = (𝑒 𝐴𝑡 )−1 = 𝑒 −𝐴𝑡 = (ϕ(t)) (7)

𝑑 𝑑
• ϕ(t) = 𝑑𝑡 𝑒 𝐴𝑡 = 𝐴𝑒 𝐴𝑡 = 𝑒 𝐴𝑡 ∙ 𝐴 (8)
𝑑𝑡

𝑛
• (ϕ(𝑡)) = ϕ(nt) (9)

• ϕ(t 2 − 𝑡1 ) ∙ ϕ(t1 − 𝑡0 ) = ϕ(t 2 − 𝑡0 ) = ϕ(t1 − 𝑡0 ) ∙ ϕ(t 2 − 𝑡1 ) (10)


1.3 Métodos para el cálculo de la matriz de transición de estados

1.3.1 Primer Método

Este método usa la transformada inversa de Laplace del determinante del polinomio característico
de la siguiente forma:
𝑒 𝐴𝑡 = 𝐿−1 {(𝑠𝐼 − 𝐴)−1 } (11)

1.3.2 Segundo Método

Se define el polinomio característico de una matriz A tal como se muestra en la ecuación 12:
PA(λ) = Det (Iλ-A) = 𝜆𝑛 + 𝛼 1𝜆𝑛−1 + ⋯ + 𝛼 n-1𝜆 + 𝛼n (12)
Tomamos f(x) = 𝑒 𝑥𝑡 con el objetivo de calcular f(A) = 𝑒 𝐴𝑡 m considerando que λi es un eigenvalor
de A con multiplicidad ni, tenemos:
𝑃𝐴(𝜆) = ∏𝑚
𝑖=1(𝜆 − 𝜆𝑖)
𝑛𝑖
(13)
∑𝑚
𝑖=1 𝑛𝑖 =𝑛 (14)
Se propone la siguiente función.
h (λ) = ꞵn-1𝜆𝑛−1 + ⋯ + ꞵ1𝜆 + ꞵo (15)
Donde las ꞵi son incógnitas las cuales se resuelven planteando el siguiente sistema de ecuaciones.
𝑓 (𝐼) (𝜆𝑖) = ℎ(𝐼) (𝜆𝑖)
I = 0, …, n-1 (16)
i = 1, 2, …, m
Entonces se tiene f (A) = h (A)
Y h (λ) es igual a f (λ) sobre el espectro de A.
1.3.3 Tercer Método

Si la matriz A se traza en una forma diagonal, entonces 𝑒 𝐴𝑡 se puede obtener mediante.


𝑒 𝜆1𝑡 0 0
𝐴𝑡 𝐷𝑡 −1
𝑒 =𝑃𝑒 𝑃 = 𝑃[ 0 … 0 ] 𝑃 −1 (17)
0 0 𝑒 𝜆𝑛𝑡
Donde P es una matriz de diagonalización para A.

Pero si la matriz se transforma en forma canónica de Jordan, entonces 𝑒 𝐴𝑡 se obtiene mediante:


𝑒 𝐴𝑡 = 𝑆 𝑒 𝐽𝑡 𝑆 −1 (18)
Donde S es una matriz que transforma a A a su forma de Jordan.
La diagonalización es la búsqueda de una base respecto a la cual la matriz objetivo con base al
endomorfismo tiene la forma más sencilla (forma diagonal). Cuando la matriz no es diagonalizable
la forma más sencilla es la forma canónica de Jordan. Para que una matriz sea diagonalizable se
requiere que la multiplicidad algebraica de cada eigenvalor coincida con la multiplicidad
geométrica, esto es que cada valor propio tiene tantos vectores propios como veces que es solución
para el polinomio característico.

1.3.4 Cuarto Método

1.3.4.1 Caso 1: Raíces Distintas

El grado del polinomio mínimo de A es m. Se deben resolver las siguientes m ecuaciones para los
𝛼𝑘 :
𝛼0 + 𝛼1 𝜆1 + 𝛼2 𝜆12 + ⋯ + 𝛼𝑚−1 𝜆1𝑚−1 = 𝑒 𝜆1 𝑡
𝛼0 + 𝛼1 𝜆2 + 𝛼2 𝜆22 + ⋯ + 𝛼𝑚−1 𝜆𝑚−1
2 = 𝑒 𝜆2 𝑡
:
𝛼0 + 𝛼1 𝜆𝑚 + 𝛼2 𝜆𝑚 + ⋯ + 𝛼𝑚−1 𝜆𝑚 = 𝑒 𝜆𝑚 𝑡
2 𝑚−1
(19)

Una vez obtenidos los coeficientes 𝛼𝑘 , es necesario utilizarlos en la ecuación

𝑒 𝐴𝑡 = 𝛼0 + 𝛼1 𝐴 + 𝛼2 𝐴2 + ⋯ + 𝛼𝑚−1 𝐴𝑚−1 (20)

1.3.4.2 Caso 2: Raíces Repetidas

El grado del polinomio mínimo de A es m, consideremos que tenemos 2 raíces repetidas (𝜆1 = 𝜆2 )
y el resto distintas. Se deben resolver las siguientes m ecuaciones para los 𝛼𝑘 :
𝛼0 + 𝛼1 𝜆1 + 𝛼2 𝜆12 + ⋯ + 𝛼𝑚−1 𝜆1𝑚−1 = 𝑒 𝜆1 𝑡
𝛼1 𝜆1 + 2𝛼2 𝜆1 + 3𝛼3 𝜆12 + ⋯ + (𝑚 − 1)𝛼𝑚−1 𝜆1𝑚−2 = 𝑡𝑒 𝜆1 𝑡
𝛼0 + 𝛼1 𝜆3 + 𝛼2 𝜆23 + ⋯ + 𝛼𝑚−1 𝜆𝑚−1
3 = 𝑒 𝜆3 𝑡
:
𝛼0 + 𝛼1 𝜆𝑚 + 𝛼2 𝜆𝑚 + ⋯ + 𝛼𝑚−1 𝜆𝑚 = 𝑒 𝜆𝑚 𝑡
2 𝑚−1 (21)

Tal como en el caso 1, una vez obtenidos los coeficientes 𝛼𝑘 , es necesario utilizarlos en la
ecuación 20:
𝑒 𝐴𝑡 = 𝛼0 + 𝛼1 𝐴 + 𝛼2 𝐴2 + ⋯ + 𝛼𝑚−1 𝐴𝑚−1
5. Desarrollo de la práctica
Lo primer que tuvimos que resolver para la práctica es la forma en la que se ingresaría la matriz,
pensamos en colocarla directo en el programa, pero nos decidimos que se ingresara valor por valor
desde teclado.
Para ello escribimos las siguientes líneas de código (Figura 1).

%---------------Programa para el cálculo de la exponencial de una matriz--------------

clc
clear all
close all

fprintf(['***Programa para el cálculo de la exponencial de una matriz***\n\n' ... ''])

n = input('¿Cuál es la dimensión de la matriz A?: ' ); %Tamaño de la matriz


fprintf('\n')
%Definición de simbólicas syms s t lambda;
%Ingresar la matriz A y comprobar si es correcta
condicion=2;
while condicion==2
for i = 1:n
for j = 1:n
fprintf('Ingrese el valor de la posición %d, %d' ,i,j);
A(i,j) = input(': ');
end
end
A %mostrar A
%preguntar si A es correcta, sino repetir
condicion = input('¿La matriz A es correcta? (si=1/no=2(volver a ingresar)): ' );
end
Figura 1.- Código de la práctica

En el anterior bloque de código también mostramos la matriz A y preguntamos si la matriz que se


ingresó es correcta, de lo contrario damos la opción de reingresarla.

Continuando con la introducción del programa, mostramos los eigenvalores de la matriz A y los
ordenamos de menor a mayor en el vector ‘r’, además indicamos la estabilidad del sistema. (Figura
2)
disp('Los eigenvalores de A son: ')
r = sortrows(eig(A)) %se obtienen los eigen valores de A y se ordenan de menor a mayor
disp('**********************************************')
if real(r)<=0
disp('Es estable')
else
disp('No es estable')
end
disp('**********************************************' )

Figura 2.- Código de la práctica (Estabilidad y eigenvalores)


A partir de aquí iniciamos con los métodos para obtener la matriz exponencial de A. Para el
primero de ellos (11) sólo se necesitaron las siguientes líneas de código, dado que Matlab cuenta
con un comando para la obtención de este. (Figura 3)

%---------------------------------- PRIMER MÉTODO-------------------------------

fprintf('\nCálculo de la exponencial de A por el primer método (Inversa de Laplace)' )


%Se muestra la matriz simplificada
M1 = simplify(ilaplace(inv(s*eye(n)-A)))

Figura 3.- Código de la práctica (Primer método)

Como se observa, resultó bastante sencillo, ya que solo se necesita de la inversa de Laplace del
determinante de un polinomio, por último, se muestra la matriz resultante de manera simplificada.
El segundo método representó algo más complicado dado que involucra el manejo de arreglo de
estructuras.
Como primer paso, creamos las variables simbólicas correspondientes a los coeficientes B,
posterior, creamos la función (15) y sustituimos los valores de lambda por cada raíz al tiempo que
creamos la exponencial (𝑒 𝜆𝑡 ) para cada ecuación, como punto importante, analizamos el caso para
las raíces múltiples y guardamos las ecuaciones en un arreglo (Eqs). Con todas las ecuaciones en
el arreglo, obtenemos las soluciones para los coeficientes y las guardamos en un arreglo de
estructuras que convertimos en celdas para un mejor manejo, por último, creamos un vector (X)
para guardar los valores de los coeficientes y lo usamos para crear la matriz exponencial con la
ecuación(17).

El código de lo antes descrito es el de la Figura 4.

%----------------------------------SEGUNDO MÉTODO--------------------------------

E = sym(zeros(n)); %inicializamos E
fprintf('Cálculo de la exponencial de A por el segundo método' )
r(length(r) + 1) = nan; %Ingresar un valor nulo para manejarlo en el
% %siguiente for (preguntar por raices múltiples)
%Variable de coeficientes
syms B [1 length(r)];
%Se inicializa la función H(lambda)
H = 0;
for i = 1:length(r) - 1
H = H + B(i)*(lambda^(i-1)); %B(n-1)lambda^(n-1)+…+B1lambda+B0
end
%Se evaluan las raíces en H(lambda)
for i = 1:(length(r) - 1)
HL(i) = subs(H,lambda,r(i));
%Se obtiene la exponencial correspondiente para cada ecuación
E(i) = exp(r(i)*t);
%Se evaluan los casos con raíces repetidas
if r(i) == r(i+1)
HL(i) = subs(diff(H,lambda),lambda,r(i)); E(i) = t*exp(r(i)*t);
end
%Se guardan las ecuaciones para cada ecuación
Eqs(i) = HL(i) == E(i);
end
S = struct2cell(solve(Eqs(:,:),B(1,:))); %Se obtiene un arreglo en celdas de las
soluciones para los coeficientes
%Se crea un vector (X) con las soluciones
for i = 1:length(r)-1
X(i) = S{i,:};
end
M2 = 0; %Se inicializa la matriz exponencial
for i = 1:length(r)-1
M2 = M2+X(i)*eye(n)*(A^(i-1));
end
%Se muestra la matriz simplificada
simplify(M2)

Figura 4.- Código de la práctica (Segundo método)

El tercer método lo iniciamos evaluando los eigen valores para saber si aplicar la forma diagonal
(19) o la forma canónica de Jordan (20), en este punto obteníamos en las exponenciales de la
matriz, para solucionarlo aplicamos un redondeo de 3 dígitos después del punto decimal para evitar
números muy pequeños (casi cero), por último, creamos la matriz exponencial (𝑒 𝐴𝑡 ) y calculamos
la matriz resultante de manera simplificada. (Figura 5)

%----------------------------------TERCER MÉTODO----------------------------------

fprintf('Cálculo de la exponencial de A por el tercer método' )


for i = 1:(length(r) - 1)
if r(i,1) == r(i+1,1) %Caso raíces múltiples (forma canónica de Jordan)
[V,D] = jordan(A);
Adj = inv(V)*A*V;
else %Forma diagonal
[V,D] = eig(A);
Adj = inv(V)*A*V;
end
end
%Redondear el valor a 3 dígitos para evitar valores extensos en las
%exponenciales
for i = 1:n
for j = 1:n
Adj(i,j) = round(Adj(i,j),3);
end
r(i,1) = round(r(i,1),3);
end
eat1 = simplify(ilaplace(inv(s*eye(n)-Adj))); %exp(A*t)
%Se muestra la matriz simplificada
M3 = simplify(V*eat1*inv(V))

Figura 5.- Código de la práctica (Tercer método)


En el último método (Interpolación de Sylvester) se utiliza una estructura muy similar al del
segundo método, ya que está basado en él para obtener la matriz exponencial.
Como primer paso creamos las variables simbólicas para los coeficientes para crear las ecuaciones
correspondientes asignándole a cada uno sus valores de exponentes (11), después analizamos el
caso para las raíces múltiples (12) para poder sustituir los valores de las lambdas por los de las
raíces y como en el segundo método obtenemos la estructura de soluciones y la transformamos a
celdas para poder guardarlas en un vector (Y), por último, calculamos la matriz exponencial y la
mostramos de manera simplificada. (Figura 6)

%---------------------------------CUARTO MÉTODO------------------------------------

fprintf(['Cálculo de la exponencial de A por el cuarto método ' ... '(Interpolación de


Sylvester)'])
syms alpha lamb [length(r) 1] %se crean las matrices simbólicas de coeficientes

%Se crean las ecucaciones para el cuarto método


for i = 1:length(r)-1
for j = 1:length(r)-1
if j == 1
EC(i,1) = alpha(j,1);
else
EC(i,1) = EC(i,1) + alpha(j,1)*lamb(i,1)^(j-1);
End
end
%Se asignan sus valores de exponentes
EC(i,1) = EC(i,1) == exp(lamb(i,1)*t);
end
%Se analiza el caso para raíces multiples
for i = 2:length(r)-1
j = 1;
if r(i-1,1) == r(i,1)
EC(i,1) = diff(EC(i-1,1),lamb(length(i-j),1));
j = j + 1; %para mantener la misma lambda
end
end

%Se sustituyen los valores de lambda por los de las raíces


EC(1,1) = subs(EC(1,1),lamb(1,1),r(1,1));
for i = 2:length(r)-1 j = 1;
if r(i-1,1) r(i,1)
EC(i,1) = subs(EC(i,1),lamb(length(i-j),1),r(i-j,1));
j = j + 1;
else
EC(i,1) = subs(EC(i,1),lamb(i,1),r(i,1));
end
end

%Se obtienen las soluciones y se pasan a un vector


S = struct2cell(solve(EC(:,:),alpha)); %Se convierte de estructuras a celdas
%para poder manejarla
for i = 1:length(r)-1
Y(i) = S{i,:};
end
%Se inicializa la matriz
M4 = 0;
for i = 1:length(r)-1
M4 = M4 +Y(i)*eye(length(r)-1)*(A^(i-1));
end
%Se muestra la matriz simplificada
simplify(M4)
Figura 6.- Código de la práctica (Cuarto método)

1.4 Aplicación de los métodos

Para demostrar el funcionamiento de los métodos utilizaremos una matriz de 2x2 y una de 3x3 de
los ejemplos vistos en clase:

Ingresamos la matriz A de 2x2 en el programa:

Figura 7.- Matriz A

Figura 8.- Ingreso de la matriz A en el programa


Las matrices exponenciales que se obtiene por cada método son las siguientes:

Figura 9.- Resultados del programa para la matriz A

Como se observa, se obtiene la misma matriz para todos los casos.


Ahora se prueba para la siguiente matriz A de 3x3:

Figura 10.- Matriz A

Figura 11.- Ingreso de la matriz A en el programa


Las matrices exponenciales que se obtienen por cada método son las siguientes:

Figura 12.- Resultados del programa para la matriz A

Al igual que en la matriz de 2x2, se obtienen las mismas matrices para cada método, por lo tanto,
el programa funciona de manera correcta.
6. Conclusiones
Es importante para la comprensión del estudio de estabilidad poder resolver bajo los 4 métodos la solución
a la matriz exponencial, la mayoría de ellos no utiliza el cálculo de auto vectores (generalizados) de la
matriz, lo cual ha sido un método clásico de abordar el problema en varios textos a nivel de iniciación. Si
bien estos métodos pueden aplicarse a cualquier matriz, todos ellos resultan ineficaces si tratamos con
matrices grandes o con entradas inexactas considerando las similitudes que se tienen entre el método 2 y la
interpolación de Sylvester el cual no solo nos ayuda a calcular la matriz exponencial, sino también la
evaluación matricial de cualquier función analítica.

En cuanto al objetivo de la práctica, podemos concluir que, en la resolución de problemas de ingeniería de


control, con frecuencia resulta necesario calcular 𝑒 𝐴𝑡 para saber el cambio de estados de un sistema. Si se
tiene la matriz A de forma numérica, MATLAB ofrece una forma simple de calcular 𝑒 𝐴𝑡 .

En la parte de programación de la práctica, podemos decir que el primer método resultó bastante sencillo
ya que existen funciones en Matlab para obtenerla de forma directa, conforme fuimos avanzando en los
métodos se no fue complicando cada vez más, pero con ayuda de los ejemplos brindados por el profesor y
los manuales que ofrece Matlab pudimos obtener resolución de todos los métodos, los más complicados
fueron el segundo y por consecuencia el cuarto, ya que se necesitó del manejo de arreglo de estructuras.
Es de gran importancia que el programa nos haya resultado, ya que obtener la matriz exponencial nos será
muy útil para el resto de la materia y materias posteriores.

7. Referencias
[1] Ogata K., Ingeniería de Control Moderna. Ed. Pearson, 2010. España. ISBN: 978-84-8322-
955-2
[2] E. Villota. "Control Moderno y ´Optimo". bionanouni.wdfiles.com.
http://bionanouni.wdfiles.com/local--files/teaching-mt227b-horario-
2012i/ControlModernoyOptimo.pdf (accedido el 2 de septiembre de 2022).
[3] D. A. F. Lugo Peñaloza, "Control de Sistemas Mecatrónicos", septiembre de 2022,
Introducción, Ciudad de México, México, UPIITA.

También podría gustarte