Este documento presenta un reporte grupal sobre las propiedades estructurales de un sistema de control de ventilador. El sistema consiste en un ventilador cuyas velocidad se ajusta dependiendo de la temperatura medida por un sensor analógico. El documento describe los componentes del sistema, su función de transferencia, diagramas de bloques, representación en espacio de estados, y análisis de controlabilidad y observabilidad.
1. Reporte Grupal sobre Propiedades
Estructurales
Adán Silva Emmanuel García Maximiliano Hernandez
13 de noviembre de 2012
1. Introducción
El sistema que controlaremos consiste en un ventilador, que al recibir la tempera-
tura ambiental por medio de un sensor analógico ajusta la velocidad del ventilador
a mayor temperatura mayor velocidad a menor temperatura menor velocidad.
Materiales tentativos:
Sensor analógico de temperatura LM35
Amplificador Operacional
Resistencias
Ventilador(VN4-012P)
Fuente de Poder de 12V
Cable para conexiones.
Entre otros.
1
2. 2. Función de Transferencia
Para construir la función de transferencia para nuestro sistema, necesitamos las
funciones de transferencia de cada uno de los componentes que actuarán en el
sistema, dichas funciones de transferencia de los componentes son:
Función de transferencia sensor de temperatura:
V (s) 0,01
=
T (s) s
Funcion de transferencia amplificador operacional
Vout R2 + R1
=
Vin R2
Comparador 1
V0
A=
Vre f −Vi
Comparador2
V0
A=
(Vi −V re f )
Relay de estado sólido
V0 (s) R2CS + 1
=
Vi (s) R1CS
Ventilador con motor DC
1
s
Al manejar cada una de las funciones de transferencia a manera de un diagrama de
bloques y aplicando sus propiedades obtenemos la función de transferencia final:
0,0026s + 0,12
s2 + 0,0026s + 0,1
3. 3. Diagramas de Bloques
A continuación se mostrarán los diagramas de bloques de la función de transfe-
rencia, desde su versión simple, expandiéndose utilizando las propiedades de los
diagramas de bloques.
Diagrama 1
0,0026s+0,12
R(s) s2 +0,0026s+0,1 C(s)
Diagrama 2
R(s) 0,0026s + 0,12 C(s)
s2 + 0,0026s + 0,1
Diagrama 3
R(s) 0,0026s C(s)
− 0,12
s2
0,0026s
0,1
4. 4. Representación en el Espacio de Estados
La representación en el espacio de estados de un sistema LTI esta dada por:
B(s) b1 sn−1 + ... + bn−1 s + bn
H(s) = = = C(sI − A)−1 B + D
A(s) a1 sm−1 + ... + am−1 s + am
x = Ax + Bu
˙
y = Cx + Du
Donde:
x es el vector de estado
y es el vector de salida
u es el vector de entrada(o de control)
A es la matriz de estados
B es la matriz de entrada
C es la matriz de salda
D es la matriz de transmisión directa
Podemos obtener las matrices de espacio de estados del sistema, utilizando la fun-
ción tf2ss, descrita a continuación:
Función tf2ss
Sintaxis: [A,B,C,D] = tf2ss(b,a)
Descripción:
Convierte los parámetros de la representación de una función de transferencia
de un sistema a su representación en el espacio de estados equivalente. Retor-
na las matrices A, B, C, D de la representación del espacio de estados para el
sistema.
5. Utilizando el sistema creado con nuestra función de transferencia, Octave propor-
ciona la siguiente salida:
Lo que significa que las matrices de espacio de estado del sistema, son las si-
guientes:
−3,3307e−16 0,1 −0,1200
A= B=
−1,0 −0,0026 0,0026
C = 0,0000 1,0000 D = 0
Y entonces la representación en el espacio de estados es así:
−3,3307e−16 0,1 −0,12
x=
˙ x+ u
−1,0 −0,0026 0,0026
y = 0,0 1,0 x + 0 u
6. 5. Controlabilidad
La controlabilidad es una propiedad de los sistemas de control que se refiere a la
capacidad de cambiar toda la configuración de espacios de un sistema utilizando
ciertas manipulaciones admisibles. En pocas palabras, se puede alcanzar un esta-
do desde cualquier otro.
Para analizar la controlabilidad de nuestro sistema, se hará lo siguiente:
Obtener la Matriz de controlabilidad.
Calcular el gramiano de controlabilidad.
Obtener la forma canónica controlable.
5.1. Matriz de Controlabilidad
La matriz de controlabilidad está dada por:
Co = B AB A2 B . . . An−1 B
Octave cuenta con una función ctrb que calcula la matriz de controlabilidad de un
sistema tomando como parámetros el sistema o las matrices A y B del espacio de
estados del sistema.
Función ctrb
Sintaxis: Co = ctrb(sys) ó Co = ctrb(A, B)
Descripción:
Calcula la matriz de controlabilidad para sistemas de espacio de estados.
Como se ve, podemos calcularlo de dos formas, utilizando el sistema creado con
la función de transferencia, o utilizando las matrices A y B del espacio de estados
del sistema.
7. Ambas producen el mismo resultado, la matriz de controlabilidad:
−0,12 0,0026
Co =
0,0026 0,11999
Es posible calcular el número de estados no controlables utilizando la matriz de
controlabilidad. Basta con realizar una resta, el largo de la matriz A menos el ran-
go de la matriz de controlabilidad.
El resultado de esta resta es el número de estados no controlables, en este caso
cero, por lo cual nuestro sistema es controlable.
5.2. Gramiano de controlabilidad
En teoría de control, el gramiano de controlabilidad es un gramiano utilizado para
determinar si un sistema lineal invariante en el tiempo(LTI) es controlable o no.
Debido a que el gramiano de controlabilidad tiene mejores propiedades numé-
ricas que la matriz de controlabilidad formada por la función ctrb, se calculará
también el gramiano de controlabilidad para de igual manera analizar la controla-
bilidad del sistema.
El gramiano de controlabilidad está definido por la siguiente ecuación:
Z ∞
eAτ BBT eA τ dτ
T
Wc =
0
Si la matriz resultante Wc es invertible, y es de rango completo, entonces el siste-
ma para el cual pertenece el par A, B es controlable.
Podemos utilizar el gramiano de controlabilidad para saber si nuestro sistema
es controlable. Para ello hacemos uso de octave y la función gram de Octave.
8. Función gram (para controlabilidad)
Sintaxis: Wc = gram(sys,’c’)
Descripción:
Wc = gram(sys,’c’) calcula el gramiano de controlabilidad del modelo de es-
pacio de estados sys.
Siendo sys el sistema creado con la función de transferencia, calculamos el gra-
miano:
El resultado es la siguiente matriz:
2,769236 −0,072
Wc (t) =
−0,072 27,693608
Para comprobar si el sistema es controlable o no, es necesario verificar que la
matriz resultante sea invertible, es decir, que exista otra matriz a la cual multipli-
cándose, el resultado sea una matriz identidad (con 1’s en la diagonal principal).
Para hacer esto, se utiliza la función inv de Octave.
Función inv
Sintaxis: B = inv(A)
Descripción:
Retorna la matriz inversa de una matriz cuadrada ’A’.
Haciendo uso de inv, se obtiene la matriz inversa de la obtenida con el gramiano
de controlabilidad. Después se multiplican ambas, para comprobar que el resulta-
do sea una matriz identidad. El resultado es en efecto, una matriz identidad, por
lo que se cumple ese punto.
9. Lo restante es verificar que sea de rango completo, lo cual sencillamente podemos
hacerlo utilizando la funciones rank y length de Octave.
Función rank Función length
Sintaxis: k = rank(A) Sintaxis: n = length(array)
Descripción: Descripción:
Retorna un estimado del número de Encuentra el número de elementos en
columnas o filas linealmente indepen- la dimensión más larga de un arreglo.
dientes de una matriz completa.
Se obtiene el rango y el tamaño de la matriz utilizando rank(wc) y length(wc)
y se comparan para saber si la matriz es de rango completo.
Como el resultado es 1, es decir True, se comprueba que wc es de rango completo,
y por lo tanto el sistema es controlable.
10. 5.3. Forma Canónica Controlable
La forma canónica controlable es como sigue:
x1
˙ 0 1 0 ... 0 x1 0
x2
˙ x2 0
0 0 1 ... 0 .
.
. = ... . + 0 u
. ... ... ... ... .
xn−1 0 0 0 0 0 x 0
˙ n−1
xn
˙ −an −an−1 −an−2 . . . −a1 xn 1
x1
x2
. . . b1 − a1 b0 . + b0 u
.
y = bn − an b0 bn−1 − an−1 b0
.
xn−1
xn
De igual manera que en la forma canónica controlable, obtenemos las a y b a partir
de la función de transferencia, tomando en cuenta:
Y (s) b0 sn + b1 sn−1 + . . . + bn−1 s + bn
=
U(s) sn + a1 sn−1 + . . . an−1 s + an
Entonces, las a y b son:
a1 = 0,0026, a2 = 0,1
b0 = 0, b1 = 0,0026, b2 = 0,12
Lo cual nos produce la forma canónica controlable:
x1 (t)
˙ 0 1 x1 (t) 0
= + u(t)
x2 (t)
˙ −0,1 −0,0026 x2 (t) 1
x1 (t)
y(t) = 0,12 0,0026
x2 (t)
11. 6. Observabilidad
Para analizar la observabilidad de nuestro sistema, se hará lo siguiente:
Obtener la Matriz de Observabilidad
Calcular el gramiano de observabilidad.
Obtener la forma canónica observable.
6.1. Matriz de Observabilidad
La matriz de observabilidad está dada por:
C
CA
Ob =
CA2
.
.
.
CA n−1
Igual que con la controlabilidad, Octave también proporciona una función para
calcular la matriz de observabilidad de un sistema.
Función obsv
Sintaxis: ob = obsv(A, C)
Descripción:
Calcula la matriz de observabilidad para sistemas de espacio de estados.
Calculamos la matriz de observabilidad usando la función obsv.
12. Con esto tenemos nuestra matriz de observabilidad:
0 1,0
Ob =
−1,0 −0,0026
Como en la controlabilidad, podemos calcular directamente con la forma normal
observable si el sistema es totalmente observable. Para hacerlo simplemente cal-
culamos el largo de la matriz A y se le resta el rango de la matriz de observabilidad.
El resultado es el número de estados no observables, en este caso siendo 0. Por lo
cual es el sistema es completamente observable.
6.2. Gramiano de Observabilidad
El gramiano de observabilidad es un gramiano utilizado en teoría de control para
determinar si un sistema lineal invariante en el tiempo (LTI) es observable.
Al igual que en el caso de la controlabilidad, lo utilizaremos debido a que pro-
porciona mejores propiedades numéricas para estudiar, en este caso, la observabi-
lidad del sistema.
El gramiano de observabilidad esta dado por:
Z ∞
eA τCT CeAτ dτ
T
Wo =
0
Sí la matriz resultante Wc es invertible, entonces el sistema para el cual pertenece
el par A, C es controlable.
Podemos utilizar el gramiano de observabilidad para saber si nuestro sistema es
observable. Igualmente, se utiliza la función gram de Octave, pero cambiando el
parámetro mode a “o”.
13. Función gram (observabilidad)
Sintaxis: Wo = gram(sys,’o’)
Descripción:
Wo = gram(sys,’o’) calcula el gramiano de observabilidad del modelo de es-
pacio de estados sys.
Utilizando el sistema como parámetro:
Se da como resultado la siguiente matriz:
1923,1 6,4082e−13
Wo =
6,4082e−13 192,31
Ahora para comprobar si es observable, debemos verificar que cumpla con el re-
quisito de ser invertible. Para ello calculamos su matriz inversa y multiplicamos
ambas.
Debido a que el resultado es una matriz identidad, se comprueba que es invertible,
y por lo tanto el sistema es observable.
14. 6.3. Forma Canónica Observable
La forma canónica observable es aquella que cumple con lo siguiente:
x1
˙ 0 0 . . . 0 −an x1 bn − an b0
x2 1 0 . . . 0 −an−1 x2 bn−1 − an−1 b0
˙
. = . . + u
. . . . . .
. .
. .
.
.
. . . .
.
.
xn
˙ 0 0 . . . 1 −a1 xn b1 − a1
x1
x2
y = 0 0 . . . 0 1 . + b0 u
. .
xn
De igual manera que en la forma canónica controlable, obtenemos las a y b a partir
de la función de transferencia, tomando en cuenta:
Y (s) b0 sn + b1 sn−1 + . . . + bn−1 s + bn
=
U(s) sn + a1 sn−1 + . . . an−1 s + an
Entonces, las a y b son:
a1 = 0,0026, a2 = 0,1
b0 = 0, b1 = 0,0026, b2 = 0,12
Lo cual nos produce la forma canónica observable
x1 (t)
˙ 0 −0,1 x1 (t) 0,12
= + u(t)
x2 (t)
˙ 1 −0,0026 x2 (t) 0,0026
x1 (t)
y(t) = 0 1
x2 (t)
Nota: Puede notarse que la matriz A de la forma canónica observable es la trans-
puesta de la matriz A de la forma canónica controlable.
15. 7. Diagonalización
7.1. Diagonalización con eigenvectores
Para que el sistema pueda ser diagonalizado se necesita que los eigenvectores de
la matriz .A"sean linealmente independientes, esto se puede comprobar utilizando
las raíces del sistema, si las raíces son diferentes esto puede lograrse, en cambio
si son iguales podría o no ser posible la diagonalización.
Para diagonalizar se utiliza la matriz de eigenvectores de la matriz transición de
estados E:
Aei = λi eo
Donde lambda representa una constante llamada eigenvalor, A es la matriz de es-
tados y e subíndice "i.es un eigenvector de esa matriz.
Conociendo los eigenvectores se puede formar la matriz ya mencionada:
E = e1 , e2 , . . . , eN
Siendo esta última matriz linealmente independiente, puede utilizarse para una
transformación lineal uno a uno. Ahora tenemos que la transformada de la matriz
de transiciones esta dada por la siguiente fórmula:
˜
A = E −1 AE
Este es el código en octave que utilizamos para implementar lo explicado:
function Null = diagonalizacion()
num = [0.0026, 0.12];
den = [1, 0.0026, 0.1];
sys = tf(num, den);
[A, B, C, D] = tf2ss(sys);
printf("Raices diferentesnn")
roots(den)
16. [E, L] = eig(A);
Ei = inv(E);
printf("Matriz A diagonalizadann")
Ad = Ei*A*E
endfunction
El resultado obtenido se muestra en la captura del programa corriendo, como se
puede observar las raíces son diferentes y los valores que no son de la diagonal
principal visiblemente son muy cercanos a cero:
7.2. Forma Canónica Diagonal
Para obtener la forma canónica diagonal es necesario que el polinomio de nues-
tro denominador se pueda factorizar en diferentes raíces. Podemos comprobar lo
anterior utilizando la función roots de Octave, dando como parámetro el denomi-
nador de la función de transferencia.
Función roots
Sintaxis: r = roots(c)
Descripción:
Retorna un vector en columna cuyos elementos son las raíces del polinomio
c.
17. Calculando las raíces, obtenemos que son diferentes, como se pueden ver:
Entonces podemos calcular la forma canónica diagonal. Sí tenemos que:
Y (s) b0 sn + b1 sn−1 + ... + bn−1
=
U (s) (s + p1 ) (s + p2 ) ... (s + pn )
Expandiéndose con fracciones parciales:
Y (s) c1 c2 cn
= b0 + + + ... +
U (s) s + p1 s + p2 s + pn
Entonces la forma canónica diagonal esta dada por:
x˙1 −p1 0 x1 1
x˙2 −p2 x2 1
= + u
... ... ... ...
x˙n 0 −pn xn 1
x1
x2
y = c1 c2 ... cn + b0 u
...
xn
Para poder obtener las c, debido a que Octave no cuenta con una forma directa
de obtener la forma canónica diagonal como Matlab, haremos uso de la función
residue para obtener las fracciones parciales(y de nuevo también las raíces) para
después simplemente sustituir en la forma canónica.
Función residue
Sintaxis: [r, p, k] = residue(b, a)
Descripción:
Encuentra los residuos, polos, y términos directos de una expansión de frac-
ciones parciales de dos polinomios a y b.
18. Utilizando residue con la función de transferencia obtenemos lo siguiente:
De estos datos obtenemos las p y las c, siendo p = p y c = r. Entonces:
p1 = −0,00130 + 0,31623i, p2 = −0,00130 − 0,31623i
c1 = 0,00130 − 0,1873i, c2 = 0,00130 + 0,1873i
Sustituyendo en la forma canónica diagonal:
x1˙(t) −0,00130 + 0,31623i 0 x1 (t) 1
˙ = + u
x2 (t) 0 −0,00130 − 0,31623i x2 (tx) 1
x1 (t)
y = 0,00130 − 0,18973i 0,00130 + 0,18973i
x2 (t)
19. Referencias
[1] Diagonalizing State Space Model
[2] Example State Space Diagonalization
[3] The Jordan Canonical Form
[4] Alternate State-Space Representations
[5] Matlab Documentation