Está en la página 1de 8

Universidad Nacional de Ingeniería

Facultad de Ingeniería Mecánica

Tarea N°4

Elaborado por
Grupo 2:
Jorge Cabello Oqueña
Johrdan Huamanchumo León

Curso
Control Moderno y Óptimo

Profesora del curso


Ing. Rosa Garrido Juárez

Sección
A

2020
Contenido
1 Representación en espacio-estado del sistema 1

2 Forma canónica modal 1

3 Forma canónica controlable 2

4 Forma canónica observable 3

5 Diseño por retroalimentación de estados usando ubicación de polos 3

i
Lista de figuras
1 Respuesta del sistema con ganancia de retroalimentación a un escalón unitario . . . . . . . . 4
2 Respuesta del sistema con ganancia de retroalimentación y prefiltro a un escalón unitario . . 5

ii
1 Representación en espacio-estado del sistema
La ecuación que representa el sistema de levitación magnética es:

ẍ = 1000x + 20i (1)

Se definen las variables de estado:

x1 = x
x2 = ẋ

Por lo tanto, la representación espacio-estado del sistema es:


[ ] [ ][ ] [ ]
ẋ1 0 1 x1 0
= + i
ẋ2 1000 0 x2 20
[ ]
[ ] x1
y= 1 0
x2

2 Forma canónica modal


De la ecuación (1), se obtiene su función de transferencia:
20
G(s) =
s2 − 1000

Por lo tanto, los polos del sistema son:

s1 = +31.6228
s2 = −31.6228

Cabe resaltar que un polo es positivo, por lo que el sistema es inestable.

Estos valores deben aparecer en la diagonal de la matriz A de la forma canónica modal. Para ello, se
utiliza el siguiente comando en Matlab:
canon(ss(A,B,C,D),’modal’)

obteniendose las siguientes matrices:


[ ] [ ]
31.6228 0 0.4446 [ ]
Am = , Bm = , Cm = 0.7113 −0.7113 , Dm = 0
0 −31.6228 0.4446

Se comprueba que los polos se encuentran en la diagonal de la matriz Am .

Alternativamente, se puede utilizar la matriz de Jordan de A, con los siguientes comandos:

Am=sym(A)
J= jordan(Am)

obteniéndose:
[ ]
−31.6228 0
J=
0 31.6228

1
3 Forma canónica controlable
Primero, se debe hallar el polinomio característico de la matriz A. Entonces:
det(sI − A) = s2 − 1000

por lo que:
a1 = 0, a0 = −1000

Alternativamente, se puede utilizar el comando:


p=poly(A)

donde p es un vector que contiene a los coeficientes del polinomio característico.

Con estos valores, se determina la matriz W, definida como:


 
a1 · · · an−1 1
 .. .. .. 
 . .
W = . 1 
an−1 · · · 0
1 ··· 0 0

A esta forma se le conoce como la matriz de Hankel. También se puede hallar W en Matlab con el siguiente
comando:
W=hankel([p(end-1:-1:2) 1])
obteniéndose:
[ ]
0 1
W =
1 0

Luego, se halla la matriz de controlabilidad Co, definida como:


[ ]
B AB · · · An−1 B

En Matlab, se introduce el siguiente comando:


Co=ctrb(A,B)

obteniéndose:
[ ]
0 20
Co =
20 0

Con W y Co, se calcula la matriz de transformación canónica controlable Tc :


[ ]
20 0
Tc = CoW =
0 20

obteniéndose:
[ ]
0 1
Ac = Tc −1 ATc =
1000 0
[ ]
−1 0
Bc = Tc B =
1
[ ]
Cc = C ∗ Tc = 20 0
Dc = 0

2
4 Forma canónica observable
Primero, se calcula la matriz de observabilidad, definida como:
[ ]
ob = C T AT C T · · · (An − 1)T C T

Para hallar ob en Matlab, se usa el siguiente comando:


ob=obsv(A,C)

donde se obtiene:
[ ]
1 0
ob =
0 1

Como ya se calculó W, se puede obtener la matriz de transformación canónica observable To :


[ ]
−1 −1 0 1
To = (W ob) =
1 0

obteniéndose:
[ ]
0 1000
Ao = To −1 ATo =
1 0
[ ]
20
Bo = To −1 B =
0
[ ]
Co = CTo = 0 1
Do = 0

5 Diseño por retroalimentación de estados usando ubicación de


polos
Como el sistema es inestable, se desea mover los polos para volverlo estable. Considérese que los polos
deseados deben cumplir las siguientes condiciones:

• El tiempo de establecimiento debe ser igual a 0.4s


• El sistema no debe tener oscilaciones

Con estas consideraciones, se calculan los polos deseados con los siguientes comandos en Matlab:
ts=0.4
z=1
w=4/(z*ts)
pp=[1 2*z*w w*w]
pd=roots(pp)

Entonces, los polos deseados son:


{ }
σ = −10 −10 (2)

Para hallar la ganancia de retroalimentación K, se utiliza la fórmula de Ackermann:


[ ]
K = 0 0 · · · 1 Co−1 W (A)

3
A partir de la ecuación (2), se obtiene W (s):
W (s) = (s + 10)(s + 10) = s2 + 20s + 100

Evaluando W (s) en A:
[ ]2 [ ] [ ] [ ]
0 1 0 1 1 0 1100 20
W (A) = + 20 + 100 =
1000 0 1000 0 0 1 20000 1100

Por lo tanto, K es:


[ ]
K = 55 1

Alternativamente, se puede utilizar el siguiente comando en Matlab:


K=acker(A,B,pd)

Para analizar la respuesta del sistema a un escalón unitario, se usa el siguiente comando:
step(A-BK,B,C,D)

Figura 1: Respuesta del sistema con ganancia de retroalimentación a un escalón unitario

En la figura 1, se observa que la amplitud en estado estacionario es 0.2. Para lograr que llegue a 1, se
necesita un prefiltro N , el cual se calcula como:
N = (D − C(A − BK)−1 B)−1

También se puede calcular con el siguiente comando en Matlab:


N=1/dcgain(A-B*K,B,C,D)

obteniéndose:
N =5

Se analiza la respuesta al escalón unitario con el siguiente comando:


step(A-B*K,N*B,C,D)

4
Figura 2: Respuesta del sistema con ganancia de retroalimentación y prefiltro a un escalón unitario

Como se puede apreciar en la figura 2, el sistema alcanza a la entrada escalón unitario gracias a la ganancia
de retroalimentación y el prefiltro.

También podría gustarte