17-4-2015
BENEMÉRITA UNIVERSIDAD
AUTÓNOMA DE PUEBLA
Facultad de Ciencias de la Electrónica
Control Moderno y Sus Aplicaciones
Reporte Práctica 2 Control por
Retroalimentación de estado y
diseño de observadores
Profesor: J. Fermi Guerrero
Castellanos
Alumnos:
Acoltzi Romano Maritza
Carballo Valderrábano Karla
Hernández Aguilar Luis Adrian
Herrera Medina Martín Raymundo
Primavera 2015
INTRODUCCIÓN
En ocasiones se requiere que en un sistema, después de un tiempo finito, todas las
variables de estado se puedan controlar por una señal de control que no esté sujeta a
ningún tipo de restricción, por lo que a éstos se les somete a un estudio de
controlabilidad y, en caso de que el sistema resulte controlable, se desarrolla un
controlador y/o un servosistema para alcanzar los requerimientos solicitados. Por otro
lado, no siempre se tienen la suficiente cantidad de sensores disponibles para
monitorear todas las variables de estado de un sistema; en algunos sistemas es
posible determinar el estado completo con la señal de salida del mismo, estos
sistemas son llamados observables, a los cuales se les diseña un observador para
cumplir con la propiedad mencionada.
Con la finalidad de comprender lo anteriormente expuesto, esta práctica se divide en
dos secciones; el primer apartado consiste en analizar la estabilidad, controlabilidad y
observabilidad de un sistema electromecánico, analizar cómo se pueden ver
afectados al modificar una variable del sistema y pensar en los posibles controladores
y observadores. El segundo apartado consiste en un sistema de un péndulo invertido,
del cual se obtiene su representación en variables de estado cuando se encuentra el
ángulo del péndulo en libre posición (no lineal) y cuando se busca que el sistema esté
en equilibrio, es decir, que este en posición vertical (lineal), posteriormente se analiza
la estabilidad, controlabilidad y observabilidad del sistema lineal, el cual se utiliza como
base para diseñar un controlador, un servosistema y un observador, los cuales son
implementados al sistema no lineal junto con el uso de un Joystick para determinar la
posición del carro que lleva al péndulo, simulándolo en tiempo real utilizando la
extensión Simulink de Matlab.
OBJETIVO
Comprender de una manera conceptual y práctica el uso de la representación en
variables de estado de un sistema LTI para el diseño de controladores y observadores.
MARCO TEÓRICO
Estado
El estado de un sistema dinámico es el conjunto más pequeño de variables (llamadas
variables de estado) tal que, el conocimiento de esas variables en un determinado
instante t0 junto con el conocimiento de los valores de la señal de entrada para los
instantes t ≥ t0, permite determinar el comportamiento y evolución del sistema para
cualquier instante de tiempo t ≥ t0. Las variables de estado se agrupan en el llamado
vector de estado y el espacio n dimensional que determinan los posibles valores de
esas variables, se denomina espacio de estados. La dinámica de un sistema se puede
describir en función del valor del vector de estados y de la señal de entrada.
Estabilidad
De acuerdo al Teorema de estabilidad: Si G(s) es la función de transferencia de un
sistema, ésta será estable si todos los polos de G(s) están en el semiplano izquierdo
del plano complejo.
La estabilidad de los sistemas dinámicos se refiere a que pequeñas perturbaciones
en las condiciones iniciales o en alguna de las variables que intervienen en la ecuación
del movimiento produzca un comportamiento suficientemente similar al
comportamiento sin dichas perturbaciones. Para sistemas deterministas descritos por
ecuaciones diferenciales la estabilidad del dicho sistema de ecuaciones obviamente
implica la estabilidad del sistema. Para esta práctica se hace uso del Criterio de
Estabilidad de Routh que estable que en un sistema realimentado es estable si todos
los polos de lazo cerrado se ubican en el semiplano izquierdo del plano s. Esto es lo
mismo a decir que todas las raíces de la ecuación característica tienen parte real
negativa. El criterio de estabilidad de Routh permite determinar si hay raíces con parte
real positiva, es decir que es sistema es inestable y sin necesidad de resolver el
polinomio.
Controlabilidad
Un sistema de control es completamente controlable o de estado completamente
controlable, si es posible transferir al sistema desde un estado inicial arbitrario a
cualquier estado deseado en un tiempo finito. También puede decirse que será
completamente controlable, si cada variable de estado se puede controlar en un
tiempo finito por una señal de control que no esté sujeta a ningún tipo de restricción.
Como es habitual nos centraremos en el estudio de la controlabilidad de sistemas LTI:
Siendo la señal u (kT) constante en el intervalo de tiempo kT ≤ t ≤ (k + 1) T. En este
caso, la controlabilidad de estado completo implica que existe una señal de control
constante entre cada tiempo de muestreo que transfiere al sistema, desde un estado
x (kT) cualquiera a un estado deseado xf en como mucho n periodos de muestreo,
donde n es el tamaño del vector de estados.
Recordemos que la solución de la ecuación de estados es:
de ahí se obtiene:
donde la matriz
es la llamada matriz de controlabilidad .
Supóngase un estado final arbitrario x (nT) = xf . Si el sistema fuera controlable debería
existir un vector de actuaciones que al multiplicarlo por la matriz de controlabilidad
diese como resultado xf − Gnx(0). Como xf y x(0) pueden ser cualquier par de valores
del vector de estado, es fácil entender que xf−Gnx(0) puede ser cualquier vector de Rn.
De esto se desprende que para que el sistema sea controlable, el espacio de vectores
generado por los vectores que forman la matriz de controlabilidad (es decir, sus
columnas) debe ser todo Rn. La condición necesaria y suficiente para que se cumpla
esto es que el rango de la matriz de controlabilidad sea n. Este resultado permite
enunciar el siguiente lema.
Dado un sistema LTI de orden n representado es condición necesaria y suficiente para
que el sistema sea completamente controlable que el rango de la matriz de
controlabilidad sea igual a n.
El sistema que cumpla la condición establecida en el lema 1 podrá alcanzar cualquier
estado como máximo en n periodos de muestreo, pero sólo si no existen restricciones
sobre la señal de control. En caso contrario, se tardaría más.
Si el sistema es controlable, se podrá determinar la secuencia de valores de la entrada
necesaria para llevar al sistema a xf resolviendo el sistema de ecuaciones.
Por otra parte, la controlabilidad se puede comprobar a partir de la función de
transferencia de un sistema observando si hay cancelaciones de polos y ceros. En el
caso de que las hubiese, el sistema no sería controlable. Por tanto, el sistema
no sería controlable pues existe una cancelación de un polo con un cero.
Observabilidad
Considérese un sistema autónomo:
El sistema autónomo es completamente observable si todo estado inicial x(0) se puede
determinar de la observación de y(kT) durante un número finito de intervalos de
muestreo. Para que ello ocurra, cada transición del estado debe afectar a todos los
elementos del vector de salida.
La observabilidad juega un papel esencial en el control de aquellos sistemas en los
que algunas de las variables de estado no son accesibles, es decir, no son medibles
directamente. Nótese que se ha considerado un sistema autónomo. La razón de esto
es que la observabilidad de un sistema no autónomo se reduce a la del sistema
autónomo equivalente.
Se sabe que la solución de la ecuación de estado para el sistema autónomo es:
De ahí
La observabilidad completa implica que usando
se pueden determinar
donde xi(0) indica la iésima componente de x(0). Es decir el sistema es completamente
observable si las ecuaciones:
permiten determinar x1(0), x2(0), • • • , xn(0). Como y(kT) es un m-vector (asumiendo
que el sistema tiene m salidas) el sistema de ecuaciones anterior es en realidad un
sistema de n × m ecuaciones, en las que las incógnitas son las n componentes de
x(0).
Para que la solución de este sistema sea única debe haber entre ellas n ecuaciones
linealmente independientes. Esto se traduce en la siguiente condición de
observabilidad completa:
donde ∗ indica la conjugada traspuesta de una matriz y a la matriz que aparece en la
condición se la llama matriz de observabilidad.
Por otra parte, de una manera análoga a la de la controlabilidad, la observabilidad de
un sistema a partir de su función de transferencia se puede asegurar si ésta no
presenta cancelaciones de polos y ceros.
Finalmente, se enuncia a continuación una propiedad que será útil para poder obtener
la representación de un sistema en forma canónica, sin que por ello pueda
argumentarse que existe la posibilidad de variar la controlabilidad u observabilidad del
mismo.
Sea un sistema LTI dado en la forma usual, cuya matriz de controlabilidad es M y la
de observabilidad es N. Si se define una transformación como la anterior con:
siendo P una matriz invertible, entonces las matrices de controlabilidad y
observabilidad del sistema equivalente tienen el mismo rango que M y N .
Joystick
El puerto de Joystick es una entrada de 8 bits, cuatro indican el estado de los botones
de ambos joysticks y los otros cuatro, la posición X - Y de los joysticks.
Figura 1 Esquema de Conexión de Joystick
El registro de estado se lee por la E/S 200h. La estructura de datos del registro es
como sigue:
Tabla 1 Estructura de datos del Joystick
Bit 7 6 5 4 3 2 1 0
Joystick B B A A B B A A
Eje/Botón 2 1 2 1 Y X Y X
La posición de los ejes X - Y se puede calcular con la siguiente fórmula:
𝑇𝑖𝑒𝑚𝑝𝑜(𝜇𝑠) = 24.2 + 0.11𝑅 R
Donde:
R = Impedancia
Tiempo = Periodo detectado
El procedimiento para obtener la posición X - Y es:
1. Sacar un pulso por E/S 200h para activar el puerto de Joystick.
2. El bit del axis X - Y se mantiene a nivel alto hasta que se completa el tiempo de
descarga.
3. Reemplazar el tiempo de descarga detectado en la fórmula anterior. El valor de
R es lineal.
Algunas utilidades posibles del puerto de Joystick son:
Como puerto de cuatro entradas digitales, formado por los cuatro botones de
disparo, por ejemplo en una central de alarma.
Como puerto de cuatro entradas analógicas, formado por los ejes X - Y de
ambos Joystick, por ejemplo para colocar unas resistencias sensibles a la
temperatura (PTC o NTC) y fabricarnos un termómetro, o para colocar una
fotorresistencia, para hacernos un sensor lumínico o un fotómetro.
Todo queda en poder de la imaginación del diseñador.
Uso de un joystick en simulink
El modelo de joystick utilizado fue el control de mando de Ps2 con adaptador USB. En
este caso, solo se desea mover la posición del carro en el eje X, para lo cual se utilizó
solo la palanca izquierda en el eje X.
Figura 2 Joystick y palanca utilizada.
La interfaz con Simulink se realizó de la siguiente manera. Primero se instalaron los
controladores para usar el Joystick en la PC y se colocaron los componentes en
Simulink a utilizar como se muestra en la figura 3.
Figura 3 Elementos en Simulink.
En el cual se observa un selector, y la primera posición corresponde a la palanca
izquierda y al eje X. Luego se obtiene el Id del Joystick y se coloca en casillero que lo
requiere, en el elemento “Joystick Input”. Sin ganancia, el joystick responde a valores
de [-1,1], por esta razón se añade una ganancia de cualquier valor.
Figura 4 ID del Joystick
DESARROLLO
1. SISTEMA ELECTROMECÁNICO
Se consideró el sistema electromecánico mostrado en la figura 5.
Figura 5 Sistema Electromecánico
Teniendo como variables involucradas:
Tm(t): Par aplicado.
VA(t); I(t): Voltaje aplicado al motor y corriente de armadura, respectivamente.
Jm; JL; JF: Momento de Inercia equivalente del motor, carga intermedia y carga
final.
b1;b2: Coeficiente de fricción viscosa equivalente a los cojinetes del motor y
carga.
θm; θL; θF: ángulos de desplazamiento del motor, carga intermedia y carga final.
K: coeficiente de torsión de la flecha que une la carga intermedia con la carga
final.
Se modeló dicho sistema, dividiéndolo en subsistemas, para después relacionarlos
entre sí, las ecuaciones obtenidas para cada subsistema fueron:
Motor: 𝑉𝐴 = 𝑅𝐼 + 𝐿𝐼̇ + 𝐾𝑚𝜃�̇�
Masa M: 𝐽𝑚𝜃�̈� = 𝑇𝑚 − 𝑏1𝜃�̇� − 𝑇1
Engranes: 𝛼 =𝑁1
𝑁2= −
𝑇𝑚
𝑇𝑙=
𝜃𝑙
𝜃𝑚
Masa L: 𝐽𝑙𝜃�̈� = 𝑇𝑙 − 𝑏2𝜃�̇� − 𝐾(𝜃𝑙 − 𝜃𝑓)
Masa F: 𝐽𝑓𝜃�̈� = 𝐾(𝜃𝑙 − 𝜃𝑓)
Al hacer un poco de álgebra a las ecuaciones diferenciales anteriores se llegó las
siguientes expresiones:
𝐼̇ = −𝑅
𝐿𝐼 −
𝐾𝑚
𝐿𝜃�̇� +
1
𝐿𝑉𝑎
𝜃�̈� = −𝑏
𝐽𝜃�̇� −
𝑘
𝐽(𝛼𝜃𝑚 − 𝜃𝑓) +
𝐾𝑚
𝐽𝐼
𝜃�̈� = −𝑘
𝐽𝑓(𝛼𝜃𝑚 + 𝜃𝑓)
De las cuales las variables J, b y k fueron definidas como sigue:
𝐽 = 𝐽𝑚 + 𝐽𝐿𝛼2
𝑏 = 𝑏1 + 𝑏2𝛼2
𝑘 = 𝐾𝛼
Representación en variables de Estados
Tomando como variables de estado a la corriente del motor, las posiciones y
velocidades de los cuerpos m y f se llegó a que:
𝑋1 = 𝐼, 𝑋2 = 𝜃𝑚, 𝑋3 = 𝜃�̇�, 𝑋4 = 𝜃𝑓 , 𝑋5 = 𝜃�̇�
𝑋1̇ = −𝑅𝑎
𝐿𝑋1 −
𝐾𝑚
𝐿𝑋3 +
1
𝐿𝑉𝑎
𝑋2̇ = 𝑋3
𝑋3̇ = −𝑏
𝐽𝑋3 −
𝑘
𝐽(𝛼𝑋2 − 𝑋4) +
𝐾𝑚
𝐽𝑋1
𝑋4̇ = 𝑋5
𝑋5̇ = −𝑘
𝐽𝑓(𝛼𝑋2 + 𝑋4)
Por lo tanto el sistema puedo ser representado en espacio de estados como se
muestra a continuación:
(
𝑋1̇
𝑋2̇
𝑋3̇
𝑋4̇
𝑋5̇)
=
(
−𝑅𝑎
𝐿0 −
𝐾𝑚
𝐿0 0
0 0 1 0 0𝐾𝑚
𝐽−
𝑘𝛼
𝐽−
𝑏
𝐽
𝑘
𝐽0
0 0 0 0 1
0 −𝑘𝛼
𝐽𝑓0 −
𝑘
𝐽𝑓0)
(
𝑋1
𝑋2
𝑋3
𝑋4
𝑋5)
+
(
1 𝐿⁄0000 )
𝑉𝑎
Y, considerando que solo sensores de posición angular están disponibles, se tuvo:
𝑦 = (0 1 0 0 00 0 0 1 0
)
(
𝑋1
𝑋2
𝑋3
𝑋4
𝑋5)
Debido a la complejidad del sistema se optó por utilizar el software de Matlab para
realizar todos los análisis y cálculos que fueran necesarios para el desarrollo de este
ejercicio, el código del programa se encuentra en el Anexo 1.
Análisis de Estabilidad
Se analizó la estabilidad del sistema, utilizando los siguientes valores para las
variables del mismo.
𝑅 = 0.67Ω
𝑁1 = 1
𝑁2 = 2
𝐾𝑚 = 4.3 × 10−3
𝐽𝑚 = 3.4 × 10−5
𝐽𝐿 = 2.64 × 10−4
𝐽𝐹 = 2.64 × 10−4
𝑏1 = 0.47
𝑏2 = 0.47
K = 0.015
L = 2.75 × 10−6
Quedando el sistema expresado en varibles de estado como:
(
𝑋1̇
𝑋2̇
𝑋3̇
𝑋4̇
𝑋5̇)
=
(
−2.423 × 105 0 −1.56 × 103 0 00 0 1 0 040 −40 −5.87 × 103 −80 00 0 0 0 10 −30 0 −60 0)
(
𝑋1
𝑋2
𝑋3
𝑋4
𝑋5)
+
(
3.64 × 105
0000 )
𝑉𝑎
𝑦 = (0 1 0 0 00 0 0 1 0
)
(
𝑋1
𝑋2
𝑋3
𝑋4
𝑋5)
Definiendo a las matrices A, B y C como:
𝐴 =
(
−2.44 × 105 0 −1.56 × 103 0 00 0 1 0 043 −37.5 −5.87 × 103 −75 00 0 0 0 10 −28.41 0 −56.82 0)
𝐵 =
(
3.6364 × 105
0000 )
𝐶 = (0 1 0 0 00 0 0 1 0
)
Enseguida, se calcularon los eigenvalores de la matriz A del sistema para determinar
la estabilidad del sistema, usando la directiva eig(A), la cual generó los siguientes
valores:
𝜆1 = −2.4356 × 105
𝜆2 = −5875.3
𝜆3 = 1.5 × 10−18
𝜆4 = −3.19 × 10−3 + 7.53𝑖
𝜆5 = −3.19 × 10−3 − 7.53𝑖
Debido a los valores obtenidos, en especial 𝜆3 que a pesar de ser un valor muy
cercano a cero es positivo, seguido en impacto por 𝜆4 y 𝜆5 al ser números negativos
muy cercanos a 0, se concluyó que el sistema no es estable.
Análisis de controlabilidad
Continuando con la práctica se analizó la controlabilidad del sistema, recordando que
para hacerlo se debe hallar el determinante de la matriz controlabilidad definida como:
𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 = [𝐵 𝐴𝐵 𝐴2𝐵 𝐴3𝐵 𝐴4𝐵]
Que para el sistema tiene los siguientes valores:
𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑
=
[ 3.64 × 105
0000
−8.86 × 1010
01.56 × 107
00
2.16 × 1016
1.56 × 107
−3.90 × 1012
00
−5.26 × 1021
−3.90 × 1012
9.51 × 1017
0−4.44 × 108
1.28 × 1027
9.51 × 1017
−2.32 × 1023
−4.44 × 108
1.11 × 1014 ]
Mediante la directiva det(CONTROLABILIDAD)se obtuvo el valor del determinante de
esta matriz el cual fue de:
𝑑𝑒𝑡(𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑) = 1.7544 × 1037
Al ser el determinante diferente de 0, se consideró que la matriz Controlabilidad era
de rango pleno, y, por tanto, que el sistema era controlable. Sin embargo, también se
utilizaron las directivas Co=ctrb(A,B)y rank(Co), las cuales calculan directamente la
matriz de controlabilidad del sistema y el rango de la misma, el resultado obtenido por
estas directivas fue de un rango igual a 2, el cual es menor que la dimensión de la
matriz A. Ante dicho resultado se concluyó que el sistema en realidad no era
controlable, a pesar de que el determinante de la matriz de controlabilidad sea
diferente de 0.
Análisis de Observabilidad
Posteriormente se supuso que solo se tenía un sensor para el ángulo θm, por lo que
la matriz C del sistema expresado en variables de estado cambió a:
𝐶 = (0 1 0 0 0)
Se realizó un análisis de observabilidad, recordando que para hacerlo se debe hallar
el determinante de la matriz observabilidad, definida como:
𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 = [𝐶 𝐶𝐴 𝐶𝐴2 𝐶𝐴3 𝐶𝐴4]
Y que para el sistema tiene los siguientes valores:
𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑
=
[
0043
−1.07 × 107
2.62 × 1012
10
−37.52.20 × 105
−1.30 × 109
01
−58753.44 × 107
−1.86 × 1011
00
−754.41 × 105
−2.58 × 109
000
−754.41 × 105]
Mediante la directiva det(OBSERVABILIDAD)se obtuvo el valor del determinante de esta
matriz el cual fue de:
𝑑𝑒𝑡(𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑) = 1.4357 × 1016
Al ser el determinante diferente de 0, se consideró que la matriz Observabilidad era
de rango pleno y, por tanto, que el sistema era observable. De igual manera que lo
hecho con la controlabilidad, se utilizaron las directivas Ob=obsv(A,C)y rank(Ob), las
cuales calculan directamente la matriz de observabilidad del sistema y el rango de la
misma. El resultado obtenido por estas directivas fue de un rango igual a 5, el cual es
igual que la dimensión de la matriz A, ante dicho resultado se corroboró que el sistema
era observable.
Cambio de valor de K
Finalmente se propuso un nuevo valor para el coeficiente de torsión de la flecha con
un valor de 𝐾 = 15 × 107, teniendo como hipótesis que este cambio era provocado
porque el esfuerzo de torsión necesario para que la flecha que une a las masas l y f
gire será 1010 veces mayor al tomado en cuenta anteriormente, en otras palabras, que
en cierto punto se podría tomar a las masas l y f y la flecha que los une como una sola
flecha.
Al cambiar este valor, la matriz A del sistema también cambia, quedando como:
𝐴′ =
(
−2.44 × 105 0 −1.56 × 103 0 00 0 1 0 043 −3.5 × 1011 −5.87 × 103 −7.5 × 1011 00 0 0 0 10 −2.84 × 1011 0 −5.68 × 1011 0)
Se hizo un análisis de la estabilidad del nuevo sistema, usando la directiva eig(A), la
cual generó los siguientes valores:
𝜆1 = −2.4356 × 105
𝜆2 = −3538.2
𝜆3 = −1.47 × 10−8
𝜆4 = −1167.9 + 9.71 × 105𝑖
𝜆5 = −1167.9 + 9.71 × 105𝑖
Debido a los valores obtenidos, en especial 𝜆3 que a pesar de ser un valor negativo
es muy cercano a 0, se concluyó que el sistema era marginalmente estable.
De igual modo, se volvió a analizar la controlabilidad del sistema, teniendo la matriz
de controlabilidad los siguientes valores:
𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑′
=
[ 3.64 × 105
0000
−8.86 × 1010
01.56 × 107
00
2.16 × 1016
1.56 × 107
−3.90 × 1012
00
−5.26 × 1021
−3.90 × 1012
−4.91 × 1018
0−4.44 × 1018
1.28 × 1027
−4.91 × 1018
1.27 × 1024
−4.44 × 1018
1.11 × 1024 ]
Mediante la directiva det(CONTROLABILIDAD)se obtuvo el valor del determinante de
esta matriz el cual fue de:
𝑑𝑒𝑡(𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑′) = 1.7544 × 1057
Al ser el determinante diferente de 0, se consideró que la matriz Controlabilidad podía
ser de rango pleno, y, por tanto, que el sistema podía ser controlable. Sin embargo,
también se utilizaron las directivas Co=ctrb(A,B)y rank(Co), el resultado obtenido por
estas directivas fue de un rango igual a 3, el cual es menor que la dimensión de la
matriz A. Ante dicho resultado se pensó que el sistema en realidad no era controlable,
a pesar de que el determinante de la matriz de controlabilidad era diferente de 0; sin
embargo, al recordar la interpretación física del cambio de K, siendo ésta el coeficiente
de torsión de la flecha que une a las masas l y f, cuestión que físicamente es muy
difícil de controlar en un sistema mecánico, se consideró que la matriz A del sistema
podía haber disminuido su dimensión, pues las masas l y f y la flecha que las une
pueden verse como un solo cuerpo, por lo que el sistema podría llegar a ser
controlable.
Hipótesis de Control por retroalimentación y observador de estados
En base a los datos obtenidos se concluyó que el sistema no es controlable, por lo
que cualquier diseño de un control por retroalimentación no brindará los resultados
deseables, sin embargo, se quiso comprobar esto, por medio del diseño del control
por retroalimentación y su posterior simulación.
Se asumió que todo el estado era medible y se propusieron como polos en lazo
cerrado a 𝜆1,2 = −1 ± 𝑗, 𝜆3,4 = −4 ± 2𝑗 y 𝜆5 = 2𝑗. Para calcular la matriz K es necesario
conocer la función de transferencia del sistema lineal, por lo que se implementaron los
polos en lazo cerrado deseados, planteándose de la siguiente manera:
(𝑠 + 1 − 𝑗) ∗ (𝑠 + 1 + 𝑗) ∗ (𝑠 + 4 − 2𝑗) ∗ (𝑠 + 4 + 2𝑗) ∗ (𝑠 + 2𝑗)
Dando como resultado
𝑠5 + 10.0002𝑠4 + 33.002𝑠3 + 40.006𝑠2 + 16.007𝑠 + 0.0031
Se encontró el polinomio característico del sistema en lazo cerrado por medio de la
matriz |𝜆𝐼 − (𝐴 + 𝐵𝐾)|, dando como resultado
𝑠5 + (−3.636 × 105𝐾1 + 2.495 × 105)𝑠4
+ (−2.136 × 109𝐾1 − 1.526 × 107𝐾3 + 1.431 × 109𝐾5)𝑠3
+ (−3.429 × 107𝐾1 − 1.563 × 107𝐾2 + 2.331 × 107)𝑠2
+ (8.133 × 1010 − 1.213 × 1011𝐾1 + 8.884 × 108𝐾3 + 4.442 × 108𝐾5)𝑠
+ (4.442 × 108𝐾4 − 8.884 × 105𝐾2)
Se igualaron el polinomio característico del sistema en lazo cerrado con el polo
característico deseado.
40 = 0 − 𝑘1
56 = −14.7𝑘1 − 0.00001𝑘3
38 = 1.47 − 0.00001𝑘4 − 14.65𝑘2 − 0.9923𝑘1 + 3.664𝑘3
10 = 16.223 + 3.664𝑘4 − 0.9923𝑘2
Utilizando el método Gauss Jordan en Matlab se obtuvo:
𝑘1 = 0.68613
𝑘2 = 0.01403
𝑘3 = 2.19933
𝑘4 = 0.02806
𝑘5 = 7.8788 × 10−6
Dando como resultado la matriz K
𝐾 = [0.68613 0.01403 2.19933 0.02806 7.8788 × 10−6]
Para el diseño del servosistema se implementó la siguiente fórmula para hallar el
valor Kr.
𝐾𝑟 = [−𝐶(𝐴 + 𝐵𝐾)−1𝐵]−1
Implementando el software Matlab se tiene como resultado
𝐾𝑟 = 2.7764 × 1011
Este control se implementó utilizando el programa Simulink al sistema y se comprobó
que aún proponiendo un sistema de control por retroalimentación, el sistema seguirá
siendo inestable como se puede observar en las siguientes figuras, en donde se
muestran la entrada al sistema, la posición de m y de f, respectivamente.
Figura 6 Sistema sin controlabilidad
Figura 7 Sistema implementando controlabilidad
2. SISTEMA PÉNDULO INVERTIDO
Se consideró el sistema péndulo invertido mostrado en la figura 8.
Figura 8 Sistema Péndulo Invertido
Las ecuaciones de movimiento del sistema vienen dadas por las siguientes
ecuaciones no lineales:
[ 𝐼 + 𝑚𝑙2 𝑚𝑙 cos 𝜃𝑚𝑙 cos 𝜃 𝑀 + 𝑚
] [�̈��̈�] + [
𝛽�̇� − 𝑚𝑔𝑙 sin 𝜃
𝑏�̇� − (𝑚𝑙 sin 𝜃)�̇�2] = [
0𝑢]
Representación en variables de Estados
Se expresó al sistema en variables de estado, utilizando las siguientes variables:
𝑥1 = 𝑥, 𝑥2 = �̇�, 𝑥3 = 𝜃, 𝑥4 = �̇�
[𝐼 + 𝑚𝑙2 𝑚𝑙 cos 𝑥3
𝑚𝑙 cos 𝑥3 𝑀 + 𝑚] [
𝑥4̇
𝑥2̇] + [
𝛽𝑥4 − 𝑚𝑔𝑙 sin 𝑥3
𝑏𝑥2 − (𝑚𝑙 sin 𝑥3)𝑥42] = [
0𝑢]
Desarrollando las ecuaciones se tuvo lo siguiente:
1. (𝐼 + 𝑚𝑙2)𝑥4̇ + (𝑚𝑙 cos 𝑥3)𝑥2̇ + 𝛽𝑥4 − 𝑚𝑔𝑙 sin 𝑥3 = 0
2. (𝑚𝑙 cos 𝑥3)𝑥4̇ + (𝑀 + 𝑚)𝑥2̇ + 𝑏𝑥2 − (𝑚𝑙 sin 𝑥3)𝑥42 = 𝑢
Se resuelve el sistema de ecuaciones anterior, despejando 𝑥4̇ de la ecuación 1,
sustituyéndolo en la ecuación 2, para obtener la siguiente expresión:
3. 𝑥2̇ =(𝑢 + (𝑚𝑙 sin 𝑥3)𝑥4
2 − 𝑏𝑥2)(𝐼 + 𝑚𝑙2) + (𝑚𝑙 cos 𝑥3)(𝛽𝑥4 − 𝑚𝑔𝑙 sin 𝑥3)
(𝑚𝑙 cos 𝑥3)(−𝑚𝑙 cos 𝑥3) + (𝑀 + 𝑚)(𝐼 + 𝑚𝑙2)
Se sustituye la ecuación 3 en la 2 y se obtiene:
𝑥4̇ =(𝑢 − 𝑏𝑥2 + (𝑚𝑙 sin 𝑥3)𝑥4
2)(𝑚𝑙 cos 𝑥3) + (𝑀 + 𝑚)(𝛽𝑥4 − 𝑚𝑔𝑙 sin 𝑥3)
(𝑚𝑙 cos 𝑥3)(𝑚𝑙 cos 𝑥3) − (𝑀 + 𝑚)(𝐼 + 𝑚𝑙2)
Simulación del sistema
Para la simulación de este sistema se realizó en Simulink un diagrama a bloques
correspondiente al espacio de estados de las ecuaciones anteriores como se muestra
en la Figura 9. Para un manejo más sencillo de la simulación se definieron unas
nuevas variables del sistema, éstas son:
𝑟1 = 𝑚𝑙
𝐼 + 𝑚𝑙2
𝑟2 = 𝑚𝑔𝑙
𝑟3 = 𝑚𝑙
𝑟4 = 𝐼 + 𝑚𝑙2
𝑟5 = 𝑀 + 𝑚
Quedando las ecuaciones del espacio de estados como sigue:
𝑥1̇ = 𝑥2
𝑥2̇ =(𝑢 + (𝑟3 sin 𝑥3)𝑥4
2 − 𝑏𝑥2)𝑟4 + (𝑟3 cos 𝑥3)(𝛽𝑥4 − 𝑟2 sin 𝑥3)
𝑟4𝑟5 − 𝑟32 cos 𝑥3
𝑥3̇ = 𝑥4
𝑥4̇ =−(𝑢 − 𝑏𝑥2 + (𝑟3 sin 𝑥3)𝑥4
2)(𝑟3 cos 𝑥3) − 𝑟5(𝛽𝑥4 − 𝑟2 sin 𝑥3)
𝑟4𝑟5 − 𝑟32 cos 𝑥3
Figura 9 Diagrama a bloques del sistema péndulo invertido no lineal
Para mejor organización de la simulación también se realizaron 3 susbsistemas, el
primero llamado Denominador está formado por el denominador de ambas ecuaciones
como se muestra en la figura 10.
Figura 10 Denominador del sistema
El segundo susbsistema genera como salida el numerador de la ecuación que
conforma a 𝑥2̇ como se muestra en la figura 11.
Figura 11 Coeficientes x_2 ̇
El tercer subsistema tiene como salida al numerador de la ecuación que conforma a
𝑥4̇ como se muestra en la figura 12.
Figura 12 Coeficientes x_4 ̇
En la figura 13 que a continuación se muestra, se observa claramente como el péndulo
cae 180° de su posición inicial. Cabe mencionar que en el momento en que cae el
péndulo ejerce una fuerza sobre el carro puesto que en la simulación se aprecia un
ligero cambio de posición de éste.
Figura 13 Simulación del péndulo en el sistema no lineal
Linealización del sistema
Si se considera que el sistema se encuentra cerca del punto de equilibrio en la posición
vertical hacia arriba, es decir,𝜃 ≈ 0, entonces es posible hacer la aproximación 𝜃 ≈
0 = sin 𝜃 y cos 𝜃 ≈ 1. Haciendo estas aproximaciones el sistema se puede expresar
en la forma �̇� = 𝐴𝑥 + 𝐵𝑢, como se ve en el siguiente desarrollo.
Se tenía al sistema de la siguiente manera:
[ 𝐼 + 𝑚𝑙2 𝑚𝑙 cos 𝜃𝑚𝑙 cos 𝜃 𝑀 + 𝑚
] [�̈��̈�] + [
𝛽�̇� − 𝑚𝑔𝑙 sin 𝜃
𝑏�̇� − (𝑚𝑙 sin 𝜃)�̇�2] = [
0𝑢]
Se hicieron las aproximaciones indicadas anteriormente:
[𝐼 + 𝑚𝑙2 𝑚𝑙𝑚𝑙 𝑀 + 𝑚
] [�̈��̈�] + [𝛽�̇� − 𝑚𝑔𝑙𝜃
𝑏�̇�] = [
0𝑢]
Utilizando las siguientes variables de estado:
𝑥1 = 𝑥, 𝑥2 = �̇�, 𝑥3 = 𝜃, 𝑥4 = �̇�
El sistema puede ser expresado como:
(𝐼 + 𝑚𝑙2)𝑥4̇ + (𝑚𝑙)𝑥2̇ + 𝛽𝑥4 − 𝑚𝑔𝑙𝑥3 = 0
(𝑚𝑙)𝑥4̇ + (𝑀 + 𝑚)𝑥2̇ + 𝑏𝑥2 = 𝑢
Resolviendo el sistema de ecuaciones obtenemos las siguientes expresiones:
𝑥1̇ = 𝑥2
𝑥2̇ =(𝑢 − 𝑏𝑥2)𝑟4 + 𝑟3(𝛽𝑥4 − 𝑟2𝑥3)
𝑟4𝑟5 − 𝑟32
𝑥3̇ = 𝑥4
𝑥4̇ =−(𝑢 − 𝑏𝑥2)(𝑟3) − 𝑟5(𝛽𝑥4 − 𝑟2𝑥3)
𝑟4𝑟5 − 𝑟32
Expresando al sistema en su representación en variables de estados se tiene:
(
𝑋1̇
𝑋2̇
𝑋3̇
𝑋4̇)
=
(
0 1 0 0
0 𝑏𝑟4
𝑟4𝑟5 − 𝑟32
−𝑟2𝑟3𝑟4𝑟5 − 𝑟32
𝛽𝑟3
𝑟4𝑟5 − 𝑟32
0 0 0 1
0 𝑏𝑟3
𝑟4𝑟5 − 𝑟32
𝑟2𝑟5𝑟4𝑟5 − 𝑟32
−𝛽𝑟5
𝑟4𝑟5 − 𝑟32)
(
𝑋1
𝑋2
𝑋3
𝑋4
) +
(
0𝑟4
𝑟4𝑟5 − 𝑟32
0−𝑟3
𝑟4𝑟5 − 𝑟32)
𝑢
Sustituyendo con los valores de cada variable del sistema en el espacio de estados,
éste puede ser expresado como sigue:
(
𝑋1̇
𝑋2̇
𝑋3̇
𝑋4̇)
= (
0000
1−0.0992
00.3663
0000
00.3663
1−16.1238
)(
𝑋1
𝑋2
𝑋3
𝑋4
) + (
00.9923
0−3.664
)𝑢
Por medio de Matlab se comprobó este espacio de estados, utilizando este comando
para declarar las variables del sistema del péndulo:
syms ('theta11','I1','m1','l1','M1','Beta1','b1','theta1','x11','u1')
Se declaró el modelo lineal del sistema, por medio de las matrices de las variables de
estado y de la entrada:
Ab=[I1+m1*(l1)^2 m1*l1;m1*l1 m1+M1]
Z=[-Beta1*theta11;-b1*x11+u1]
Se obtuvieron las ecuaciones de las variables 𝑥2̇ y 𝑥4̇ y así se comprobó la matriz
anterior
x=inv(Ab)*Z
Con valores asignados a las variables se declaró la matriz A en Matlab para obtener
valores numéricos de la misma
A22=(-b*(I+m*l^2))/((I+m*l^2)*(M+m)-(m*l)^2);
A24=(Beta*m*l)/((I+m*l^2)*(M+m)-(m*l)^2);
A42=(-b*(m*l))/(((m*l)^2)-(M+m)*(I+m*(l)^2));
A44=(Beta*(m+M))/(((m*l)^2)-(M+m)*(I+m*(l)^2));
A=[0 1 0 0;0 A22 0 A24;0 0 0 1;0 A42 0 A44]
Análisis de Estabilidad
Se calcularon los eigenvalores de la matriz A del sistema expresado en variables de
estado para determinar la estabilidad del sistema, usando la directiva eig(A), la cual
generó los siguientes valores:
𝜆1 = 0
𝜆2 = −18.292
𝜆3 = −0.0909
𝜆4 = 2.1597
Al analizar los valores obtenidos, debido a que una de las raíces fue igual a cero y otra
fue positiva, se concluyó que el sistema era inestable.
Análisis de controlabilidad
Para determinar si el sistema linealizado es controlable es necesario conocer la
determinante de la matriz de 𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑, es decir
𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 = |𝐵 𝐴𝐵 𝐴2𝐵 𝐴3𝐵 𝐴4𝐵|
Que tiene como valores:
𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 = |
0 0.90961 −0.09055 0.136440.90961 −0.09055 0.13644 −2.3914
0 −0.00077 0.34589 −5.6413−0.00077 0.34589 −5.6413 104.68
| = −3.766 ≠ 0
Debido a que la determinante de la matriz fue diferente de cero, se pensó que el
sistema es controlable, se usaron las directivas Co=ctrb(A,B)y rank(Co)para
corroborarlo, el resultado obtenido de un rango igual a 4, el cual es igual que la
dimensión de la matriz A, por lo que se concluyó que el sistema era controlable.
Análisis de control por retroalimentación
Se asume que todo el estado es medible, por lo tanto para diseñar un control por
retroalimentación de estado posicionando los polos en lazo cerrado en 𝜆1,2 = −1 ± 𝑗
y en 𝜆3,4 = −4 ± 2𝑗 de tal forma que el sistema linealizado sea asintóticamente
estable, es necesario conocer la función de transferencia del sistema lineal para
calcular la matriz K.
Para obtener la función en lazo cerrado del sistema lineal, se implementan los polos
en lazo cerrado deseados, por ello se plantean de la siguiente manera:
(𝑠 + 1 − 𝑗) ∗ (𝑠 + 1 + 𝑗) ∗ (𝑠 + 4 − 2𝑗) ∗ (𝑠 + 4 + 2𝑗)
Dando como resultado
𝑠4 + 10𝑠3 + 38𝑠2 + 56𝑠 + 40
Se encuentra el polinomio característico del sistema en lazo cerrado por medio de la
matriz |𝜆𝐼 − (𝐴 + 𝐵𝐾)|, dando como resultado
𝑠4 + (3.664𝑘4 − 0.9923𝑘2 + 16.223)𝑠3
+ (1.47 − 0.00003𝑘4 − 14.65𝑘2 + 3.664𝑘3 + 39.692)𝑠2 + (586.297
− 0.00001𝑘3)𝑠
Se igualaron el polinomio característico del sistema en lazo cerrado con el polo
característico deseado.
40 = 35.91𝑘1
56 = −3.59 − 14.66𝑘1 − 36𝑘2
38 = −0.9923𝑘1 − 14.7𝑘2 + 3.664𝑘3 − 38.03
10 = 16.223 + 3.664𝑘4 − 𝑘2
Utilizando el método Gauss Jordan en Matlab se obtuvo:
𝑘1 = 1.1139
𝑘2 = 2.1089
𝑘3 = 29.225
𝑘4 = −1.1228
Dando como resultado la matriz K
𝐾 = [1.1139 2.1089 29.225 −1.1228]
Análisis de servosistema
Para poder diseñar un servosistema es necesario tener en cuenta las matrices A, B,
C y K calculada previamente, debido a que la ecuación siguiente corresponde al valor
Kr.
𝐾𝑟 = [−𝐶(𝐴 + 𝐵𝐾)−1𝐵]−1
Implementando el software Matlab (ver Anexo 2) se tiene como resultado
𝐾𝑟 = −1.1139
Implementación de joystick al sistema
Por medio del joystick se pretendió introducir una señal de entrada, que proporcionaba
la posición deseada del carro, para corroborar que el control fuera el adecuado,
midiendo la posición del péndulo, el cual, al variar la posición del carro, tiene que
seguir vertical. El diagrama de conexión en Simulink es el mostrado en la siguiente
figura:
Figura 14 Diagrama de conexión de joystick con matriz K y Kr, para el control del péndulo invertido modelado de forma no
lineal.
Se observa que en el sistema no lineal el péndulo permanece en posición vertical
cuando la posición del carro es modificada por el joystick (figura 15), es decir, la planta
obedece al controlador no lineal cuando se implementa el control por
retroalimentación, sin embargo, cuando el cambio de posición del carro es drástica de
tal manera que el péndulo se aleja considerablemente de su posición inicial (figura
16), éste cae abruptamente (figura 17).
Figura 15 Medición de la posición del carro y del péndulo
Figura 16 Posición del péndulo fuera de su rango de control
Figura 17 Péndulo después de exceder su rango de control
Diseño de Observador
Posteriormente se supuso que solo se tenía presupuesto para comprar dos sensores,
por lo que se eligió que las variables de estado a medir fueran la posición lineal del
carrito y la angular del péndulo, de tal forma que el sistema linealizado fuera
observable, por lo que la matriz C del sistema expresado en variables de estado
cambió a:
𝐶 = (1 0 0 00 0 1 0
)
Se realizó un análisis de observabilidad, utilizando las directivas Ob=obsv(A,C)y
rank(Ob), las cuales calculan directamente la matriz de observabilidad del sistema y
el rango de la misma, respectivamente. La matriz obtenida con estas instrucciones es:
𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 =
[ 1 0 0 00 0 1 00 1 0 00 0 0 1 0 −0.09923 −0.89783 0.366460 0.36646 39.505 −16.1240 0.14414 14.566 −6.84310 −5.9453 −637.31 299.63 ]
El rango de esta matriz fue de 4, valor que es igual que la dimensión de la matriz A,
ante dicho resultado se concluyó que el sistema era observable.
Para el diseño de un observador se propusieron como polos del observador a 𝜆1,2 =
−4 ± 4𝑗 y en 𝜆3,4 = −16 ± 8𝑗, polos que son cuatro veces mayor al del control para
un asegurar un tiempo de respuesta del observador mayor al tiempo de respuesta del
controlador, por lo que el polinomio característico del observador quedó definido
como:
𝑠4 + 40𝑠3 + 608𝑠2 + 3584𝑠 + 10240
Para el cálculo de la matriz L del observador, son necesarios los coeficientes del
polinomio característico del observador en forma de vector (𝑝 =
[40 608 3584 10240]), la matriz A y la matriz C. Además fue necesario hacer uso
de la función L=place(A',C',p), la cual genera los coeficientes de la matriz L. El
resultado de la matriz L es la siguiente:
𝐿 = [−4290.3 4.984 × 105
2032.6 −1.187 × 106 2130.7 −1.731 × 106
−10198 5.998 × 106 ]
Simulación/Animación del Sistema
Finalmente se simuló el sistema no lineal y lineal con el observador, servosistema y
control a lazo cerrado desarrollados en la práctica, asimismo, se dispuso de un joystick
para mover el carro en la posición deseada. El diagrama de lo anteriormente
mencionado se muestra en la figura 18, donde se pueden identificar el sistema no
lineal, al cual se le aplica el observador del sistema lineal y el control por
retroalimentación y servosistema desarrollados por el sistema linealizado.
Fig. 18 Sistema no lineal, con observador implementado en sistema lineal.
En la figura 19 están representadas la salida del observador (línea morada) y el estado
del sistema no lineal (línea amarilla, recordando que solo dos de las cuatro variables
de estado alimentan al observador), midiendo la posición del carro en la primera
gráfica, la velocidad del carro en la segunda gráfica, la posición del péndulo en la
tercera gráfica y la velocidad del péndulo en la cuarta gráfica. Analizando las imágenes
se ve que el observador sigue muy de cerca al estado del sistema no lineal.
Fig. 19 Gráficas de sistema no lineal con observador.
Sin embargo, cuando el péndulo sale del rango donde es controlable, se puede ver
que se presenta la inestabilidad y el observador se pierde en la tercera y cuarta gráfica,
de posición y velocidad del péndulo, respectivamente, esto debido a que el observador
está diseñado para el sistema linealizado.
Figura 18 Gráficos del observador en el sistema no lineal tras una perturbación
PARÁMETROS
Los parámetros para el sistema electromecánico se encuentran en la Tabla 2.
Tabla 2 Parámetros para el sistema electromecánico
Los parámetros para el sistema péndulo invertido se encuentran en la Tabla 3.
Tabla 3 Parámetros para el sistema péndulo invertido
CONCLUSIONES
Debido a los resultados de cada ejercicio se pudo concluir que la controlabilidad,
observabilidad y control por retroalimentación de estado, son parteaguas para los
sistemas de control; puesto que aun cuando se tiene un sistema no linealizado, como
fue el caso del péndulo invertido, se puede tener un rango de control del sistema si se
hace un estudio y análisis del mismo sistema pero de su forma linealizada. Sin
embargo este control viene limitado a las condiciones de linealización, puesto que si
se sale de los márgenes de las mismas, el sistema no podrá ser alterado por el sistema
de control propuesto, pues se alejaría del sistema linealizado.
Por otro lado, se pudo apreciar que en ciertos sistemas lineales, al cambiar algunas
variables físicas, como en el sistema electromecánico al cambiar el coeficiente de
torsión de la flecha, se logra mejorar la estabilidad del sistema y también su
controlabilidad, pues en casos como el mencionado, se torna muy difícil controlar esas
variables.
Finalmente, se pudo ver que al realizar observadores a partir de sistemas lineales e
implementarlos en sistemas no lineales, éstos son útiles en un rango donde el sistema
no lineal no sufra cambios brucos para alejarlos de la linealización, tal como sucedió
con el sistema de control.
BIBLIOGRAFÍA
[1] K. Ogata, Ingeniería de Control Moderna, Pearson Educación, Tercera edición,
1998, pp. 58, 59,60, 85.
ANEXOS
Anexo 1 Programa en Matlab para resolver el ejercicio 1
%% Práctica 2 Ejercicio 1 %Sistema Electromecánico
%% VALORES DE DATOS R=0.67; KM=4.3*10^(-3); JM=3.4*10^(-5); JL=2.64*10^(-4); JF=2.64*10^(-4); B1=0.47; B2=0.47; Ks=0.015; L=2.75*10^(-6);
%VARIABLES PARA EL ESPACIO DE ESTADOS k=Ks/2; b=(B1)+(B2/4); j=(JL/4)+(JM);
%% MATRICES DEL ESPACIO DE ESTADOS A= [-R/L 0 -KM/L 0 0;0 0 1 0 0;KM/j -k/(2*j) -b/j -k/j 0;0 0 0 0 1;0 -
Ks/(2*JF) 0 -Ks/JF 0]; B=[1/L; 0; 0; 0; 0]; C=[0 1 0 0 0; 0 0 0 1 0];
%% ESTABILIDAD eig(A) %cálculo de los
eigenvalores de la matriz A
%% CONTROLABILIDAD A2=A^(2); A3=A^(3); A4=A^(4);
CONTROLABILIDAD=[B A*B A2*B A3*B A4*B]; %Matriz de controlabilidad
CONTROLABLE=det(CONTROLABILIDAD) %determinante de la matriz
de controlabilidad
Co=ctrb(A,B); %Obtención de matriz de
controlabilidad por Matlab rank(Co) %Rango de la matriz de
controlabilidad
%% OBSERVABILIDAD C2=[0 1 0 0 0]; OBSERVABILIDAD=[C2; C2*A; C2*A2; C2*A3; C2*A4]; %Matriz de observabilidad
OBSERVABLE=det(OBSERVABILIDAD) %determinante de la matriz
de observabilidad
Ob=obsv(A,C); %Obtención de matriz de
observabilidad por Matlab rank(Ob) %Rango de la matriz de
observabilidad
%% CAMBIO DE k EN LAS VARIABLES Y MATRICES DEL ESPACIO DE ESTADOS
K2s=15*10^(7); %Valor nuevo de K k2s=K2s/2;
A21=[-R/L 0 -KM/L 0 0;0 0 1 0 0;KM/j -k2s/(2*j) -b/j -k2s/j 0;0 0 0 0 1;0 -
K2s/(2*JF) 0 -K2s/JF 0]; %Nueva matriz A
eig(A21) %Estabilidad de la matriz
A21
% CONTROLABILIDAD NUEVO ESPACIO DE ESTADOS A22=A21^(2); A33=A21^(3); A44=A21^(4);
CONTROLABILIDAD2=[B A21*B A22*B A33*B A44*B]; %Matriz de controlabilidad
de A21
CONTROLABLE2=det(CONTROLABILIDAD2) %determinante de la matriz
de controlabilidad
Co=ctrb(A21,B); %Obtención de matriz de
controlabilidad por Matlab rank(Co) %Rango de la matriz de
controlabilidad
%% CONTROL POR RETROALIMENTACIÓN (K)
syms ('s','k1','k2','k3','k4','k5')
%Función de transferencia en lazo cerrado f=sym((s+1-j)*(s+1+j)*(s+4-2*j)*(s+4+2*j)*(s+2*j)) den_fun_lazocerrado=expand(f) %s^5 + 10.0002*s^4 + 33.002*s^3 + 40.00659983999*s^2 +
16.007999799968*s+0.00319999996
%Polinomio Característico K=[k1 k2 k3 k4 k5] SI=s*eye(5 pols=SI-(A+(B*K)) valores_para_k=det(pols)
%Resultado de la igualación del polinomio característico y el denominador %de lazo cerrado
%444214876.033058*k4-888429752.066116*k2+81331299586.7769*s-
121384297520.661*s*k1-888429752.066116*k3*s+444214876.033058*k5*s-
34297520.661157*k1*s^2 %-2136363636.36364*k1*s^3-15636363.6363636*k2*s^2-363636.363636364*k1*s^4-
15636363.6363636*k3*s^3+23313145.661157*s^2+1431430967.04545*s^3 %+249511.363636364*(s^4)+s^5
%Resultado factorizado de la igualación del polinomio característico y el %denominador de la función de transferencia de lazo cerrado
%444214876.033058*k4-888429752.066116*k2 %(81331299586.7769-121384297520.661*k1-
888429752.066116*k3+444214876.033058*k5)*s %(-34297520.661157*k1-15636363.6363636*k2+23313145.661157)*s^2 %(-2136363636.36364*k1-15636363.6363636*k3+1431430967.04545)*s^3 %(-363636.363636364*k1+249511.363636364)*(s^4) %+s^5
% Obtención de K's por medio de Gauss Jordan KG=[0 -888429752.066116 0 444214876.033058 0;-121384297520.661 0 -
888429752.066116 0 444214876.033058;-34297520.661157 -15636363.6363636 0 0
0;-2136363636.36364 0 -15636363.6363636 0 0;-363636.363636364 0 0 0 0] SG=[0.00319999996;16.007999799968/81331299586.7769;40.00659983999/23313145.
661157;33.002/1431430967.04545;10.0002/249511.363636364] MG=[0 -888429752.066116 0 444214876.033058 0 0.00319999996;-
121384297520.661 0 -888429752.066116 0 444214876.033058 16.007999799968-
81331299586.7769;-34297520.661157 -15636363.6363636 0 0 0 40.00659983999-
23313145.661157;-2136363636.36364 0 -15636363.6363636 0 0 33.002-
1431430967.04545;-363636.363636364 0 0 0 0 10.0002-249511.363636364] rref(MG)
% Matriz K k1=0.68612874945 k2=-0.0140319904947583 k3=-2.19933335812261 k4=-0.0280639809823129 k5=7.87880277336403e-06 K=[k1 k2 k3 k4 k5]
% Servosistema (Kr) p=inv(A+(B*K))
kr=[-C*(p)*B] Kr=1/3.60185094683417e-12
Anexo 2 Programa en Matlab para resolver el ejercicio 2 %% Práctica 2 Ejercicio 2
%% VALORES DE DATOS
M=1 %Kg m=0.1%Kg b=0.1%N/m/s Beta=0.1%N/m/s l=0.25%m I=0.00052%(Kg) (m^2) (2)= (ml^2)/12 g= 9.8%m/s^2
% VARIABLES PARA EL DIAGRAMA SIMULINK NO LINEAL r1=m*l/(I+m*l^2); r2=m*g*l; r3=m*l; r4=I+m*l^2; r5=M+m;
d=r4*r5-r3^2;
%% 3.SISTEMA LINEAL syms ('theta11','I1','m1','l1','M1','Beta1','b1','theta1','x11','u1') Ab=[I1+m1*(l1)^2 m1*l1;m1*l1 m1+M1] Z=[-Beta1*theta11;-b1*x11+u1] x=inv(Ab)*Z
A22=((- b)*(m*l^2 + I))/(M*m*l^2 + I*m + I*M); A23=(l*m*(- g*l*m))/(M*m*l^2 + I*m + I*M); A24= (l*m*(Beta))/(M*m*l^2 + I*m + I*M); A42=-(l*m*(- b))/(M*m*l^2 + I*m + I*M); A43=- ((M + m)*(- g*l*m))/(M*m*l^2 + I*m + I*M); A44=-((M + m)*(Beta))/(M*m*l^2 + I*m + I*M);
A=[0 1 0 0;0 A22 A23 A24;0 0 0 1;0 A42 A43 A44]
%% 4.ESTABILIDAD estabilidad=eig(A) %Asignación de estabilidad a los eigenvalores
%% 5.CONTROLABILIDAD B=[0;1/((M+m)-(m*l)^2);0;-m*l/(M+m)*(I+m*l^2)-(m*l)^2] %Asignación
de valores a matriz B e=[B A*B (A^2)*B (A^3)*B] %Cálculo matriz e sin determinante C=[1 0 0 0] %Asignación de valores a matriz C controlabilidad=det(e) %Cálculo de controlabilidad
ctrb(A,B)%matriz de controlabilidad rank(ans)%si es controlable o no = dimension de matriz A
%% 6. CONTROL POR RETROALIMENTACIÓN (K) syms ('s','k1','k2', 'k3','k4') K=[k1 k2 k3 k4]
%Polinomio característico SI=s*eye(4) pols=SI-(A+(B*K)) valores_para_k=det(pols) expand(valores_para_k)
%Resultado de la igualación del polinomio característico y el denominador %de lazo cerrado
%(-3.25417766051011e-05*k3+ 586.297273526824)*s %(3.664*k3+39.692-14.6574318381706*k2-3.25417766051011e-
05*k4+1.46584579302257)*s^2 %(-0.9923*k2+3.664*k4+16.2235414834359)*s^3 %s^4
%como no tenemos terminos en la constante %40=35.91k1 %56=-3.59 -14.66k1+36k2 %38=-0.99k1-14.7k2+3.7k3-38.03 %10=16.223+3.664k4-k2
% Obtención de K's por medio de Gauss Jordan KG=[35.91 0 0 0 40;-14.66 36 0 0 56+3.59;-0.99 -14.7 +3.7 0 38+38.03;0 -1
0 3.664 10-16.223] SG=[56;38;10] rref(KG)
% Matriz K k1=1.11389585073796 k2=2.1088809214394 k3=29.2252179560513 k4=-1.12284909349361
%% SERVOSISTEMA (Kr) C1=[1 1 1 1];
K=[k1 k2 k3 k4] p=inv(A+(B*K)) kr=[-C1*(p)*B] Kr=1/kr
%% OBSERVADOR
C=[1 0 0 0;0 0 1 0]
Ob=obsv(A,C) %Obtención de matriz de
observabilidad por Matlab rank(Ob) %Rango de la matriz de
observabilidad
%l %(s+4+4j)*(s+4-4j)*(s+16+8j)*(s+16-8j) %s^4 + 40*s^3 + 608*s^2 + 3584*s + 10240 %4_veces_alfa=40,608,3584,10240 p=[40,608,3584,10240] %syms ('I','l1','l2','l3','l4','I5','l6','l7','l8')
%L=[l1 l2;l3 l4;l5 l6;l7 l8] %SI=I*eye(4) %pols=A+(L*C) %pols1=SI-pols %pol=det(pols1) L=place(A',C',p)
Top Related