Enfoque práctico de control moderno : con aplicaciones en Matlab 9786124191312, 6124191318, 9786124191824, 6124191822

2,248 258 5MB

Spanish; Castilian Pages [351] Year 2015

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Enfoque práctico de control moderno : con aplicaciones en Matlab
 9786124191312, 6124191318, 9786124191824, 6124191822

Citation preview

Lima, mayo de 2014 Universidad Peruana de Ciencias Aplicadas

www.full-ebook.com

© Universidad Peruana de Ciencias Aplicadas (UPC)

  "# % % #   Q Impreso en el Perú - Printed in Peru

Corrección de estilo: Silvana Velasco Diseño de cubierta: Germán Ruiz Ch. Diagramación: Otto Gonzales Editor del proyecto editorial Universidad Peruana de Ciencias Aplicadas S. A. C. Av. Alonso de Molina 1611, Lima 33 (Perú) Teléf: 313-3333 www.upc.edu.pe Primera edición: mayo de 2014

7' ; &*' #"&&  +% %  &'   %&' & 



1.2 Transformadas de Laplace

19

1.2.1 Propiedades de las Transformadas de Laplace

20

1.2.2 Expansión por fracciones parciales

20

1.3 Álgebra de los diagramas de bloques

24

1.4 Estabilidad

31

Capítulo 2: Análisis de la respuesta en el estado transitorio 2.1 Sistemas de primer orden

35

2.2 Sistemas de segundo orden

44

2.2.1 Conceptos generales

52

2.3 Diseño de controladores clásicos

|

58

2.3.1 Tipos de controladores clásicos

59

2.3.2 Ventajas y desventajas de los controladores clásicos

60

Capítulo 3: Análisis de los sistemas de control en el dominio de la frecuencia 3.1 Diagramas de Bode

66

3.1.1 Estabilidad en frecuencia

71

3.1.2 Relación entre el tipo de sistema y los diagramas de magnitud-fase

72

3.1.3 Frecuencia de ancho de banda

73

3.1.4 Performance de lazo cerrado

76

3.2 Controladores o compensadores de adelanto o atraso de fase

77

3.2.1 Compensador de adelanto de fase

78

3.2.2 Compensador de atraso de fase

79

3.2.3 Compensador de adelanto-atraso de fase

80

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 7

www.full-ebook.com

|

Capítulo 4: Modelamiento matemático en espacio de estados 4.1 Diseño en el espacio de estados

117

5  +%&    %&  ' &



4.2.1 Estado

118

4.2.2 Variables de estado

118

4.2.3 Vector de estado

118

4.2.4 Ecuaciones de estado

118

4.2.5 Espacio de estados

118

4.3 Pasos básicos para el modelamiento matemático

118

4.4 Programación en Matlab

131

4.5 Linealización de sistemas

135

4.5.1 No linealidad al comienzo

136

4.5.2 No linealidad interna

137

4.5.3 No linealidad completa

138

5  '+% % ƒ%'%  "'    7"&&  

|



Capítulo 5: Transformaciones 5.1 Transformaciones de sistemas SISO 55 = '   &%& +% '  " H"% ' H % 

159 

a. Forma canónica controlable

159

b. Forma canónica observable

159

5.1.2 A partir de los polos de una función de transferencia

161

a. Forma canónica diagonal o modal

161

b. Forma canónica de Jordan

161

5.1.3 Comandos del Matlab para las transformaciones canónicas

163

5.2 Transformación de un sistema SIMO

166

5.3 Transformación de un sistema MIMO

167

5.4 Transformaciones inversas

167

5.4.1 Cálculo de la función de transferencia desde las formas canónicas

168

5.4.2 Cálculo de la matriz de transferencia a través de la Transformada de Laplace 5.5 Equivalencias o transformaciones de semejanza de las ecuaciones de estado

|

172

Capítulo 6: Propiedades de los sistemas de espacio de estados 6.1 Solución de las ecuaciones de estado

177

6.1.1 Solución de las ecuaciones de estado de caso homogéneo

177

6.1.2 Matriz de transición de estados

178

6.1.2.1 Propiedades de la matriz de transición de estados

8

170

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

179

6.1.3 Solución de las ecuaciones de estado de caso no homogéneo 6.2 Estabilidad en espacio de estados

182

6.3 Controlabilidad

185

6.3.1 Método para determinar la controlabilidad

185

6.3.2 Matlab para probar la controlabilidad

186

6.4 Observabilidad

188

6.4.1 Método para determinar la observabilidad

188

6.4.2 Matlab para probar la observabilidad

189

6.5 Controlabilidad de la salida

191

6.5.1 Método para determinar la observabilidad

|

180

191

Capítulo 7: Diseño de controladores de estado 7.1 Algoritmo para el cálculo del controlador de estados 7.1.1 Método por excepción

200 201

7.2 Utilizando Matlab para el diseño de controladores

205

7.2.1 Matlab M-File de controlador.m para el diseño de controladores de estado

|

|

206

Capítulo 8: Diseño de observadores de estado 8.1 Tipos de observadores de estado

230

8.2 Observadores de estado de orden completo

230

8.3 Diseño de observadores de estado

232

8.3.1 Algoritmo para el cálculo del observador de estados

233

8.3.2 Algoritmo de Ackerman

235

8.3.3 Método por excepción

236

8.4 Comparaciones con respecto al diseño de los controladores de estado

239

8.5 Utilizando el Matlab para el diseño de observadores de estado

241

8.6 Observador de estado en sistemas de lazo cerrado

242

8.7 Consideraciones adicionales

246

Capítulo 9: Diseño de sistemas de seguimiento 9.1 Tipos de sistemas de seguimiento

255

9.1.1 Sistema de seguimiento con integrador

255

9.1.2 Sistema de seguimiento sin integrador

260

| Capítulo 10: Control óptimo 10.1 Criterio de estabilidad de Lyapunov

279

Q55"% + &' 



Q55J ' ; + &' 

Q

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 9

www.full-ebook.com

10.1.3 Función de Lyapunov

281

10.1.4 Prueba de estabilidad

281

10.1.5 Solución de la ecuación de Lyapunov

282

10.2 Control óptimo cuadrático 10.2.1 Optimización de parámetros mediante el criterio de Lyapunov

|

10

285 287

Apéndice: Introducción al Matlab Operadores de matemáticas

A–2

Operadores relacionales

A–2

Operadores lógicos

A–3

Variables

A–3

Polinomios

A–3

Condicional

A–4

Lazos de programación

A–4

Constantes del sistema

A–5

Algunos comandos útiles

A–6

7" *7 ƒ+%&

=‡

M-Files

A–8

Toolboxes; Symbolic Math Toolbox (toolbox de matemáticas simbólicas)

A–9

Integrales

A–12

Derivadas

A–13

Resolución de ecuaciones

A–14

Transformaciones

A–15

Toolboxes de control y señales

A–16

"%&  ' H %  + ' &  7%&

=‡

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Lista de ejemplos

Ejemplo E.1.1:

Expansión de fracciones parciales y cálculo de la Transformada inversa de Laplace

Ejemplo E.1.2:

Expansión de fracciones parciales y cálculo de la Transformada inversa de Laplace

Ejemplo E.1.3:

Expansión de fracciones parciales y cálculo de la Transformada inversa de Laplace

Ejemplo E.1.4:

Determinación de la función de transferencia de sistema circuito RLC (entrada: voltaje/salida: corriente)

Ejemplo E.1.5:

Determinación de la función de transferencia de sistema circuito RLC (entrada: voltaje/salida: caída de tensión en el capacitor)

Ejemplo E.1.6:

Determinación de la función de transferencia de sistema masa-resorte

Ejemplo E.1.7:

Determinación de la función de transferencia de sistema motor DC de posición

Ejemplo E.1.8:

Cálculo de los polos y los ceros de una función transferencia

Ejemplo E.1.9:

Cálculo de los polos y los ceros de una función transferencia

Ejemplo E.2.1:

Análisis de un sistema de primer orden

Ejemplo E.2.2:

Análisis de un sistema de primer orden con ruido en el sensor

Ejemplo E.2.3:

Análisis de un sistema de segundo orden

Ejemplo E.2.4:

Análisis de un sistema de segundo orden

Ejemplo E.2.5:

Diseño de un controlador PID

Ejemplo E.3.1:

Trazo de los diagramas de Bode

Ejemplo E.3.2:

Determinación de la estabilidad de un sistema

Ejemplo E.3.3:

Diseño de un controlador del péndulo invertido

Ejemplo E.3.4:

Diseño de un compensador de adelanto de fase

Ejemplo E.3.5:

Método de diseño de respuesta de frecuencia para el controlador de cabeceo de un avión

Ejemplo E.4.1:

Cálculo de las ecuaciones de estado de un circuito RLC

Ejemplo E.4.2:

Cálculo de las ecuaciones de estado de un sistema masa-resorte

Ejemplo E.4.3:

Cálculo de las ecuaciones de estado de un sistema múltiple masa-resorte

Ejemplo E.4.4:

Cálculo de las ecuaciones de estado de un sistema motor DC de posición o velocidad

Ejemplo E.4.5:

Linealización de un sistema

Ejemplo E.4.6:

Linealización de un sistema de suspensión de una bola por magnetismo

Ejemplo E.4.7:

Linealización de un giróscopo

Ejemplo E.5.1:

Obtención de las formas canónicas controlable, observable y diagonal de un sistema

Ejemplo E.5.2:

Transformación de función de transferencia a espacio de estados

Ejemplo E.5.3:

Transformación de función de transferencia a espacio de estados

Ejemplo E.5.4:

Transformación de ecuaciones de estado en matriz de transferencia

Ejemplo E.5.5:

Transformación de ecuaciones de estado en matriz de transferencia

Ejemplo E.5.6:

Transformación equivalente de un sistema

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 11

www.full-ebook.com

Ejemplo E.6.1:

Determinación de la matriz de transformación de estados

Ejemplo E.6.2:

Determinación de la respuesta en el tiempo de un sistema

Ejemplo E.6.3:

Determinación de la estabilidad de un sistema

Ejemplo E.6.4:

Determinación de la estabilidad de un sistema

Ejemplo E.6.5:

Determinación de la controlabilidad de un sistema

Ejemplo E.6.6:

Diseño de un controlador de estados para la altitud de un satélite

Ejemplo E.6.7:

Determinación de la observabilidad de un sistema

Ejemplo E.6.8:

Diseño de un observador de estados para los estados de un satélite

Ejemplo E.6.9:

Determinación de la controlabilidad, observabilidad y controlabilidad de un sistema

Ejemplo E.6.10: Cálculo de las ecuaciones de estado y de las propiedades de un tren magnético Ejemplo E.7.1:

Determinación de un controlador por ubicación de polos por el método completo

Ejemplo E.7.2:

Determinación de un controlador por ubicación de polos por el método por excepción

Ejemplo E.7.3:

Determinación de un controlador por ubicación de polos

Ejemplo E.7.4:

Determinación de un controlador por ubicación de polos, utilizando la función controlador.m en Matlab

Ejemplo E.7.5:

Determinación de un controlador por ubicación de polos, utilizando la función controlador.m en Matlab

Ejemplo E.7.6:

Prueba de la función controlador.m con un sistema MIMO

Ejemplo E.7.7:

Problema del péndulo invertido

Ejemplo E.7.8:

Diseño de un controlador de estados para un motor de posición

Ejemplo E.8.1:

Determinación de la ecuación característica con un observador de estados

Ejemplo E.8.2:

Determinación de un observador de estados

Ejemplo E.8.3:

Determinación de un observador de estados

Ejemplo E.8.4:

Determinar el valor de l1 y l2 desde el polinomio característico

Ejemplo E.8.5:

Determinación de un observador de estados

Ejemplo E.8.6:

Determinación del nuevo sistema de lazo cerrado con observador

Ejemplo E.8.7:

Determinación de un observador de estados

Ejemplo E.8.8:

Determinación de un observador de estados, utilizando la función acker en Matlab

Ejemplo E.8.9:

Determinación de un observador de estados para un motor de posición

Ejemplo E.9.1:

Diseño de un controlador de estados de seguimiento y determinación del sistema de lazo cerrado

Ejemplo E.9.2:

Diseño de un controlador con acción integral

Ejemplo E.9.3:

Diseño de un controlador de estados con acción integral para un motor de posición

Ejemplo E.9.4:

Realimentar los estados con mediante un observador de estados para el motor de posición con controlador de acción integral

Ejemplo E.9.5:

Realimentar los estados con mediante un observador de estados para el motor de posición con controlador de acción integral cuyo sensor genera ruido

Ejemplo E.9.6:

Comparar y analizar las diferencias de la tercera variable de estado de cada uno de los casos presentados en los tres ejemplos anteriores

12

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

$/  &$5Q5  " #  "H"%&#   + &' $/  &$5Q5  " #  "H"%&#   + &' Ejemplo E.10.3: Determinación de la matriz P mediante la Ecuación de Riccati Ejemplo E.10.4: Determinación de la matriz P mediante la Ecuación de Riccati Ejemplo E.10.5: Análisis de un sistema mediante el control óptimo Ejemplo E.10.6: Diseño de un controlador de estados mediante la función de costos de control óptimo Ejemplo E.10.7: Diseño de un controlador óptimo para un telescopio de instrucción Ejemplo E.10.8: Diseño de un controlador óptimo para un telescopio de instrucción realimentando los estados mediante un observador Ejemplo E.10.9: Análisis completo de control sobre un sistema diseñando todo tipo de controladores y cerrando el lazo con observadores

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 13

www.full-ebook.com

www.full-ebook.com

Introducción

Este libro ha sido preparado pensando en condensar temas sumamente abstractos de manera sencilla ‰"  &*  %' &  &%" & %& &W  %Š+%  ' W  + &  &'   %&' &  moderno, ya que cuando me tocó aprender y luego dictar estos cursos, el lenguaje que empleaban las publicaciones y la forma de escribir las matemáticas eran sumamente complicadas. Asimismo, no se tenían aplicaciones en Matlab de los ejemplos que planteaban, siendo una gran interrogante cómo los autores programaban y llegaban a los resultados. En este libro se condensa, en una forma práctica, estudios, trabajos e investigaciones de más de catorce años tratando de plasmar el enfoque práctico de la parte teórica del control moderno. La teoría de control moderno emplea durante sus diferentes etapas para el diseño de los controladores, un amplio número de ciencias y herramientas tales como álgebra lineal, teoría de vectores y matrices, cálculo diferencial y programación. Para esta última herramienta, empleamos el Matlab, por ello si el lector no está familiarizado con estos temas, es conveniente que primero desarrolle ciertas habilidades antes de comenzar con estos conocimientos, ya que solamente se mencionarán los procedimientos necesarios sin profundizar en ellos. Adicionalmente, todo ingeniero que vaya a analizar el comportamiento de un sistema controlado, o para controlarlo, deberá investigar la teoría que sostiene dicho comportamiento. En este caso, usamos ' & Š   %' % W %' % W %ƒ% *ƒ%   &&+ "&W %&&Š W‰"Š% &%" quiera que fuera el o los campos de trabajo del sistema en cuestión. Complementariamente, el control moderno utiliza análisis numérico, teoría de optimización, lógica difusa, redes neuronales y otras nuevas teorías que puedan mejorar el desempeño de los sistemas que manejemos. Se puede ver que desde el Capítulo 1 al 3, abarcamos las áreas tradicionales del control clásico, tales como los análisis de la respuesta en el tiempo transitorio y en la frecuencia. Se presentan de manera completa y con ejemplos desarrollados, los conceptos fundamentales del control, ya que la teoría clásica permite hacerlo de una manera fácil de comprender. Posteriormente, desde el Capítulo 4 al 6, establecemos los fundamentos de la teoría de espacio de estados, donde veremos el modelamiento matemático, sus transformaciones y propiedades. Esta teoría nos permitirá programar las simulaciones y el diseño de una manera más real, ya que una de sus capacidades es la de poder trabajar con sistemas de múltiples entradas y salidas, cosa que no era posible con la teoría de control clásica. Del mismo modo, introduce los conceptos de controlabilidad y observabilidad.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 15

www.full-ebook.com

Los capítulos centrales de este texto son el 7 y el 8. Ahí es donde aplicamos todos los conocimientos previos para el desarrollo de controladores y observadores de estado. Desde el Capítulo 9 al 10 veremos una serie de teorías complementarias que sirven para mejorar el comportamiento de los sistemas de control de estados. Hemos visto conveniente resaltar el seguimiento y el control óptimo. Todas estas teorías se utilizarán en las diferentes partes del análisis o diseño. Igualmente, no debemos limitarnos a ellas porque si sabemos emplear otras teorías que puedan apoyar a este campo, así como de otras nuevas que puedan desarrollarse, debemos experimentar su uso en la teoría de control moderno. =%&  ' W   ' " Œ% &  ' &" ' &"%% J ' #5"+   es enseñar a usar este programa, sino de explicar algunas de sus funciones y aplicaciones para ayudar a su empleo en el control. X&'  '  %& 'ƒ  ' &%& /  & "  % %%& +   " Hƒ% * ƒda comprensión, y casi en su totalidad son desarrollados adicionalmente en Matlab, siempre y cuando sea aplicable.

Enrique Arnáez Braschi

16

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Capítulo 1: Introducción al control moderno

A continuación, recordaremos una serie de conceptos que deberemos tener presentes para comprender los temas que se desarrollarán posteriormente. >& ; &&  +  %&' &   ' &%&&" & %‰" W     ' # /&

+ " %   '" # %& W'    "%  H %  '  7"  '    H %  y el resultado del proceso esperado, y lo continúa haciendo con base en esta diferencia hasta que el sistema se estabilice y en el mejor de los casos, hasta que la diferencia desaparezca. $ '    + %&&" %&# % %&& ' ‰"  %'Y %&/"'  ' *‰"  cumplen determinado objetivo. X  '   &#/ '&&#  %"   / %"'   %%&   % & 7 ;  %& +  lograr resultados de funcionamiento deseados. Es el objeto que se desea controlar.

Gráfico 1.1. Sistema

Las acciones elaboradas por el controlador se denominan señales de control, mientras que las que no dependen del sistema de control, que no se pueden predecir y que no son deseadas, se denominan perturbaciones. Los resultados para los cuales se diseñó el controlador son las variables de salida. El proceso es la sucesión de cambios que se producen en una planta: cambios de materia, energía, información, etcétera.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 17

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Gráfico 1.2. Sistema de control en varias formas

        a. Según su dimensión: –

Sistemas de parámetros concentrados: representados por ecuaciones diferenciales u &'  • ‰"  Œ% ƒ%' +'&5

‡

'      ƒ ' & ' #"& &   % ƒ%'  +'& &  & ‰"  ‰"  de derivadas parciales dentro de su representación, por ejemplo: el modelo de un oleoducto.

b. Según el conocimiento de sus parámetros: –

Sistemas determinísticos: sistemas de parámetros conocidos.



Sistemas estocásticos: donde algunos o todos sus parámetros son conocidos probabilísticamente.

c. Según el tipo de continuidad: ‡

'  %&'"&'   +% '&&' '  ' &*  ' "'& contiguos, por ejemplo una parábola.

18

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

‡

'  %&'"&'  " &ƒ +%&  %  ' '  ' &  cuales no son, necesariamente, puntos contiguos, por ejemplo: un tren de pulsos o una tangente.

‡

'  % '& 'ƒ +& % '& &&W&  /  &"  ™ " treada.

d. Según su estructura matemática: –

Sistemas lineales: su comportamiento puede ser representado por una línea recta. Se puede aplicar el principio de superposición.



Sistemas no lineales: no pueden ser representados por una línea recta en su totalidad o en una porción del mismo, así sea muy pequeña.

e. Según el comportamiento de sus parámetros: –

Sistemas invariantes en el tiempo: cuyos parámetros son iguales para todos los instantes de tiempo, por ejemplo: un sistema de suspensión mecánica.



Sistemas variantes en el tiempo: cuyos parámetros cambian conforme va transcurriendo el tiempo, por ejemplo: la masa de un cohete o de un carro Fórmula 1, volumen de cuerpos sometidos a diferentes temperaturas y otros similares.

Para las aplicaciones en el curso que estamos desarrollando y por motivos de instrucción vamos a utilizar sistemas lineales invariantes en el tiempo.

1.2 Transformadas de Laplace: Las Transformadas de Laplace se encargan de facilitar el cálculo de operaciones íntegro-diferenciales. Esto se realiza cambiando el dominio del tiempo a uno imaginario que denominamos Dominio de Laplace, en donde la solución de ecuaciones diferenciales se alcanza mediante procedimientos algebraicos. Las Transformadas de Laplace más comunes son las siguientes:

Es conveniente recalcar que para realizar las transformaciones inversas de Laplace se utilizan las mismas fórmulas, pero en sentido contrario.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 19

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

1.2.1 Propiedades de las Transformadas de Laplace: Las transformaciones se facilitan notablemente cuando, además de las fórmulas más comunes, aplicamos las propiedades que rigen a estas. A continuación vamos a presentar las más importantes:

Donde todas las derivadas de la función son iguales a 0, cuando las condiciones iniciales son 0.

L { ∫0 f(t) dt } = t

F(s) s

L {e–at f(t) } = F(s + a) ⎧ ⎨ ⎩



L ⎨ f⎛⎝at⎞⎠ ⎩

{∫ f t

0

1 (t −τ )

= aF(as)

}

f 2(τ ) dτ = F1( s ) F 2( s )

Teorema del valor inicial: f(0+) = lim sF(s) s →∞

@ &    & +  lim f (t ) = f (∞ ) = lim sF (s ) t→∞

s →0

1.2.2 Expansión por fracciones parciales: La expansión por fracciones parciales es utilizada para descomponer una función que contiene polinomios en el numerador y en el denominador, en un conjunto de fracciones que respondan fácilmente a la transformación inversa de Laplace. Los casos más frecuentes son expresiones con denominador compuesto por una multiplicación de binomios, y expresiones con denominador compuesto por binomios elevados a alguna potencia. Para los demás casos que no están explícitamente citados, se deberán combinar estas alternativas de solución y deberá usarse mucha álgebra para factorizar de la manera adecuada estas expresiones y nos apoyaremos bastante en las propiedades de las Transformadas de Laplace. Presentaremos la forma de resolver estas expansiones con los siguientes ejemplos:

20

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

Ejemplo E.1.1: Expandir en fracciones parciales y calcular la transformada inversa de Laplace de la siguiente función: F (s) =

s+4 ( s +1)(s + 2)

Solución: Expandamos la expresión anterior en la cantidad de fracciones iguales a los binomios que contenga el denominador y colocaremos cada binomio en el denominador de cada fracción, dejando como incógnita a cada numerador. F( s ) =

s+4 A B = + ( s +1)( s + 2 ) s + 1 s + 2

Igualamos los numeradores para resolver las incógnitas mediante ecuaciones simultáneas, s + 4 = A(s + 2) + B(s + 1) s + 4 = As + 2A + Bs + B s + 4 = (A + B)s + (2A + B) 7" & &%& +% '  A+B=1

… (1)

2A + B = 4

… (2)

A =3

… (3)

restamos (1) de (2):

reemplazamos (3) en (1) y despejamos: B = –2 reemplazamos estos resultados en la expansión de fracciones y obtenemos la respuesta:

F (s ) =

s+4 3 2 = − (s + 1)( s + 2) s + 1 s + 2

 + ; W & & &  %  ' H&      X  % 

L −1 ⎧⎨

3 2 ⎫ −t − 2t − ⎬ = 3e − 2e ⎩ s + 1 s + 2⎭

Ejemplo E.1.2: Expandir en fracciones parciales y calcular la transformada inversa de Laplace de la siguiente función:

F (s ) =

2s + 10 s + 2s + 5 2

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 21

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: Debemos trabajar el denominador a manera de representar en el denominador funciones que sean fáciles de transformar y para ello utilizaremos las propiedades de las Transformadas de Laplace.

F (s ) =

2s + 10 2s + 10 2s + 10 = 2 = s + 2s + 5 (s + 2s + 1) + 4 (s + 1) 2 + 22 2

Una vez que hemos conseguido una forma adecuada en el denominador, separaremos las expresiones en dos sumandos utilizando los del numerador:

F (s ) =

F (s ) =

2s + 10 2s + 2 8 = + 2 2 2 2 (s + 1) + 2 (s + 1) + 2 (s + 1) 2 + 22

2s + 2 8 s +1 2 + =2 +4 2 2 2 2 2 2 (s + 1) + 2 (s + 1) + 2 (s + 1) + 2 (s + 1) 2 + 22

Aplicando las propiedades, podemos agrupar:

F (s ) = 2

(s + 1) 2 +4 2 2 (s + 1) + 2 (s + 1) 2 + 22

Luego, mediante la transformada inversa de Laplace, tenemos:



(s + 1)



L −1 {F (s )} = L −1 ⎨2 (s + 1)2 + 22 + 4 (s + 1)2 + 22 ⎬ 2







(s + )









2



L ž {F (s )} = L ž ⎨2 (s + )2 + 22 ⎬ + L ž ⎨4 (s + )2 + 22 ⎬ ⎩



2s + 0 ⎫ −t −t ⎬ = 2e cos(2t) + 4e sin(2t) ⎩ s + 2s + 5 ⎭

L ž ⎧⎨

2

Ejemplo E.1.3: Expandir en fracciones parciales y calcular la transformada inversa de Laplace de la siguiente función:

F (s ) =

s 2 + 2s + 4 (s + 1) 3

Solución: Deberemos expandir la expresión inicial en tantas fracciones como binomios contenga el denominador, colocando literales en los numeradores, las cuales serán las incógnitas por 22

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

resolver. Es decir, si tenemos un binomio cubo, un binomio cuadrado y un binomio común, se deberán tener seis fracciones parciales.

F (s ) =

s 2 + 2s + 4 A B C = + + 3 2 s + 1 (s + 1) (s + 1) (s + 1)3

Ahora, tal como en el ejemplo a, debemos igualar los numeradores:

s 2 + 2s + 4 = A(s + 1) 2 + B (s + 1) + C s 2 + 2s + 4 = As 2 + 2 As + A + Bs + B + C

s 2 + 2s + 4 = As 2 + (2 A + B )s + ( A + B + C ) 7" & &%& +% ' * & &  %" %& " 'ƒ  A =1

… (1)

2A + B = 2

… (2)

A+B+C =4

… (3)

Reemplazamos (1) en (2) y despejamos B: B =0

… (4)

Reemplazamos (1) y (4) en (3) y despejamos C: C =3 Con los valores de las variables literales, obtenemos las fracciones parciales:

F (s ) =

s 2 + 2s + 4 1 0 3 1 3 = + + = + 3 2 3 s + 1 (s + 1) s + 1 (s + 1)3 (s + 1) (s + 1)

y por último, aplicamos la transformada inversa de Laplace:

⎧ 



L ž {F(s )} = L ž⎨ s +  + (s + )3 ⎬ 3





⎧3 2 ⎫ 3⎬ ⎩ 2 (s + 1) ⎭

⎧ 1 ⎫ ⎩ ⎭

L  {F(s )} = L  ⎨ s + 1⎬ = L  ⎨

L ž {F(s )} = e −t + 2 t 2e −t 3

L



⎧ s 2 + 2s + 3⎫ 3 2 −t ⎬ = e (1 + t ) ⎨ 3 2 ⎩ (s + 1) ⎭

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 23

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

1.3 Álgebra de los diagramas de bloques: X& 7   # &‰" &+7" ‰"  '  +%  • & %& /  H"ciones de transferencia, en una función de transferencia que represente el sistema en su totalidad. Ÿ %&  &‰"   +% H"% ' H %    %     '   entrada en el Dominio de Laplace, y ella responde a un tipo de modelo matemático.   '  % % +  &‰"   • &   ' &   &# &‰"  # ƒ '  en el Dominio de Laplace. Las principales operaciones se representan con los únicos dos operadores:

Gráfico 1.3. Operadores de bloques

A(s )

+

A(s ) ± B(s )

A(s )

±

F (s )

A(s ) F (s )

B(s ) Adición

Multiplicación

de estas operaciones básicas, se llega a una muy importante y bastante utilizada, la de realimentación:

Gráfico 1.4. Operador de Realimentación

R(s )

+

G (s )

C (s )

±

R(s ) H (s )

Es decir,

24

C (s ) R( s )

=

G (s ) 1 # G (s ) H (s )

G (s ) 1 # G (s ) H (s )

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

C (s )

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

Ejemplo E.1.4: Determinar la función de transferencia de sistema circuito RLC (entrada: voltaje-salida: corriente):

R

L

C

V(t)

i (t)

Vc (t)

Solución: Este circuito se representa por la siguiente ecuación:

v(t ) = Ri (t ) + L

di(t) dt

+

1 t i(t) dt C ∫0

Si a esta ecuación le aplicamos la Transformada de Laplace, tenemos:

V(s) = RI (s) + LsI (s) +

1 I (s) Cs

Despejamos I(s):

1 ⎞ ⎛ V (s) = ⎜ R + Ls + ⎟ I (s) Cs ⎠ ⎝ Posteriormente, buscamos darle la forma de relación de salida entre entrada, lo cual es la función de transferencia:

I (s) V (s)

1

=

R + Ls +

1 Cs

=

Cs LCs + RCs + 1 2

 +% &*  / & s 2 del denominador:

I (s) V (s)

1 s L = 1 R s2 + s + L LC

el bloque del sistema sería:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 25

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

1 s L R 1 s2 + s + L LC

V(s)

I(s)

Ejemplo E.1.5: Determinar la función de transferencia de sistema circuito RLC (entrada: voltaje-salida: caída de tensión en el capacitor):

R

L

C

V(t)

i (t)

Vc (t)

Este circuito se representa por las siguientes ecuaciones: v(t ) = Ri (t ) + L

di(t ) dt

1 t i(t ) dt C ∫0

v c (t ) =

+ v c (t )

Si a estas ecuaciones les aplicamos la Transformada de Laplace, tenemos: V (s ) = RI (s ) + LsI (s ) + V c (s )

Vc (s ) =

1 I (s ) Cs

Despejamos I(s): I (s ) = V c (s )Cs

Reemplazamos esta expresión en la ecuación del circuito:

V (s ) = RCsV c (s ) + LCs 2V c (s ) + V c (s )

Despejamos Vc(t):

(

)

V (s ) = LCs 2 + RCs + 1 V c (s )

26

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

Posteriormente, buscamos darle la forma de relación de salida entre entrada, la cual es la función de transferencia:

V c (s ) V (s )

=

1 LCs + RCs + 1 2

 +% &*  / & s2 del denominador:

V c (s ) V (s )

1 LC = R 1 s2 + s + L LC

el bloque del sistema sería:

1 LC

V (s )

V c (s )

1 R s + s+ L LC 2

Ejemplo E.1.6: Determinar la función de transferencia de sistema masa-resorte:

k

b F

M x

Solución: Asumimos al sistema partiendo del reposo, y sobre esa consideración aplicamos la segunda Ley de Newton, ΣF = ma: F (t ) − kx(t ) − bx (t ) = Mx(t )

aplicando la Transformada de Laplace: F (s ) − kX (s ) − bsX (s ) = Ms 2 X (s )

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 27

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Despejamos X(s):

(

)

F (s ) = Ms 2 + bs + k X (s )

Posteriormente, buscamos darle la forma de relación de salida entre entrada, lo cual es la función de transferencia:

X (s ) F (s )

=

1 Ms + bs + k 2

 +% &*  / & s2 del denominador:

X (s ) F (s )

1 M = b k s2 + s+ M M

el bloque del sistema sería:

1 M

F (s )

s2 +

X (s )

b k s+ M M

Ejemplo E.1.7: Determinar la función de transferencia de sistema motor DC de posición. Solución: Este problema ha sido escogido como ejemplo por su complejidad y será resuelto paso a paso. En algunos casos reforzaremos los conceptos más importantes. Para comenzar, vamos a levantar sus ecuaciones íntegro-diferenciales, las transformaremos al Dominio de Laplace y calcularemos su función de transferencia a través del álgebra de bloques y sus correspondientes diagramas.

R

L T

θ

+

+ e = K θ

V −

J

− bθ

28

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

R

L

θ

T +

+ e = K θ

V −

J

− bθ

Las ecuaciones del Motor DC de Posición han sido obtenidas mediante las leyes de Kirchoff y las de Newton: v(t ) = Ri(t ) + L

di(t )

+ e(t )

dt

e t = K eθ t

τ (t) = K t i(t) Jθ(t ) + bθ(t ) = τ (t )

y sus respectivas Transformadas de Laplace: V(s ) = RI (s ) + LsI (s ) + E (s )

... (1)

E ( s ) = K c s θ (t )

... (2)

τ (s ) = K t I (s )

... (3)

Js 2θ (s ) + bsθ (s ) = τ (s )

... (4)

Modelo matemático de función de transferencia. Para llegar a ella recurrimos al álgebra de bloques, elaborando uno por cada ecuación en el Dominio de Laplace, donde cada ecuación ha sido representada como función de transferencia. De la ecuación (4):

θ (s ) 1 = 2 τ (s ) Js + bs

1 Js + bs 2

de la ecuación (3):

τ (s ) I (s )

= Kt

Kt

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 29

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

de la ecuación (2):

E(s )

θ (s )

= Kc s

Kc s

de la ecuación (1): a.

b.

V(s ) − E (s ) = R + Ls I (s )

I (s ) V(s ) − E (s )

=

1 Ls + R

1 Ls + R

agrupando los bloques: 1 Ls + R

V(s ) E (s )

τ (s )

1 Js + bs

θ (s )

2

Kt (Ls + R )( Js 2 + bs)

E (s )

V(s )

Kt

Kc s

V(s )

V(s )

I (s )

θ (s )

Kc s

Kt (Ls + R )( Js 2 + bs) Kc K t s 1+ (Ls + R )( Js 2 + bs)

Kt (Ls + R )( Js 2 + bs) + K c Kt s

θ (s )

θ (s )

del mismo modo, podemos presentar el modelamiento matemático de espacio de estados a través de sus ecuaciones de estado, tal como lo haremos en el capítulo correspondiente, y donde centraremos las aplicaciones y estudios de este texto. Las bondades de las ecuaciones de estados radican en la posibilidad de representar sistemas de múltiples entradas y múltiples salidas o MIMO del inglés Multiple Input – Multiple Output, así como de trabajar en el dominio del tiempo y no en el de Laplace. 30

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

1.4 Estabilidad: La estabilidad es la propiedad de un sistema de permanecer en estado de equilibrio cuando no está afectado por perturbaciones ni por fuerzas externas. La forma matemática de expresar esta propiedad está en una de las características de la función de transferencia del sistema. El polinomio característico es ubicado en el denominador de la función de transferencia. La ecuación característica es el polinomio característico igualado a cero. Las raíces o polos son las soluciones de la ecuación característica. Se dice que un sistema es estable cuando sus polos o raíces están en el semiplano izquierdo de Laplace.

Gráfico 1.5. Plano de estabilidad en el Dominio de Laplace jϖ

Sistema inestable

Sistema estable

σ

Plano de Laplace

Se puede representar de la siguiente manera:

G (s ) =

Z (s ) (s − z0 )(s − z1 )(s − z2 )...( s − zn ) = (s − p0 )(s − p1 )(s − p2 )...( s − pm ) P(s )

Si resolvemos la ecuación característica: P(s ) = (s − p0 )(s − p1 )(s − p2 )...( s − pm ) = 0

POLOS = p0 , p1 , p2 ,... pm

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 31

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

obtenemos los polos o raíces del sistema mientras que si resolvemos: Z (s ) = (s − z0 )(s − z1 )(s − z2 )...( s − zn ) = 0

CEROS = z0 , z1 , z2 ,... zn obtenemos los ceros del sistema. Ejemplo E.1.8: Calcular los polos y los ceros de la siguiente función de transferencia: G (s ) =

(s + 1)(s − 2) (s + 3)(s − 1)(s + 1)

Solución: Polos: los polos o raíces serán determinados de la ecuación característica contenida en el denominador de la función de transferencia:

(s + 3)(s − 1)(s + 1) = 0 s = −3, s = +1 y s = −1 Ceros: serán determinados de la ecuación que se obtiene al igualar a cero el numerador de la función de transferencia: (s + 1)(s −2) = 0 s = −1 y s = +2



x

-3

-1

x

+1

σ

+2

x = Polos = Ceros

Plano de Laplace

32

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘[”_“jx{{\—[k}{“[”_“}˜“j^_[“

Ejemplo E.1.9: Calcular los polos y los ceros de la siguiente función de transferencia:

G (s ) =

s 2 + 2s + 1 s2 − s + 3

Solución: Polos:

s2 − s + 3 = 0

aplicando la fórmula de la ecuación cuadrática:

s=

s=

− b ± b 2 − 4ac 2a

− (−1) ± (−1) 2 − 4(1)(3) 2(1)

s = 0,5 + j1. 6583 s = 0,5 − j1. 6583 Ceros:

s 2 + 2s + 1 = 0 (s + 1) 2 = 0 s = −1



x

σ

x

x = Polos = Ceros

Plano de Laplace

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 33

www.full-ebook.com

www.full-ebook.com

Capítulo 2: Análisis de la respuesta en el estado transitorio

$  ' &' '& &  +   &&  " ' %  "'   ' " 'Š" &5 Usualmente, se utilizan estímulos o entradas de ciertas características para conseguir el análisis   %&& '  '&   &   '   &   "  %"    '+% %5  ' &   '  entradas, se usan con mayor frecuencia la señal impulso, el escalón unitario y la señal rampa, y con usos menos frecuentes a las señales senoidales y al ruido blanco. Para el caso de nuestras aplicaciones centraremos el trabajo en las señales escalón debido a su facilidad de comprensión y aplicación en sistemas tanto simples como complejos, y además en que estas se pueden considerar como señales de referencia en casi todos los sistemas de control por regulación.   ; "  & & ƒ W &'   % +%    &  % '  &los con los que cuentan. Con ello decimos que un sistema de un polo es un sistema de primer orden y uno de dos es de segundo orden. A pesar de existir sistemas de órdenes superiores, vamos a centrar el análisis en los sistemas antes enunciados, ya que en ellos se aprecian las caracterís'% ƒ& ' '    ™& '   %&' & *   '+% % '  5

2.1 Sistemas de primer orden: Pueden ser representados por diversas maneras, pero debemos operar su función de transferencia de lazo cerrado expresándolo de la siguiente forma:

Gráfico 2.1. Sistema de primer orden

R(s ) ±

k s  (p + k )

G( s ) =

C(s )

C( s ) R( s )

=

R(s )

k s p

C (s )

k s p

donde k es una ganancia y p es el polo. Y la salida del sistema responde a la siguiente forma:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 35

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

C( s ) = R( s )

k sž p

Comenzaremos el análisis de la respuesta ante la entrada de un escalón de amplitud a.

C (s ) =

a k s s p

Si esta función en el Dominio de Laplace la expandimos en fracciones parciales para determinar la transformada inversa, tenemos:

ak ak a k p p C (s ) = =ž + s sž p s sž p Aplicando la transformada inversa de Laplace, resulta la siguiente expresión:

c (t ) = ž

ak ak pt + e p p

Simulamos en Matlab1 esta expresión, para ver su comportamiento de modo general con constantes iguales a 1 y su polo en –1:

a = 1; k = 1; p = -1; c = 0; cont = 1; for t=0:0.01:10 cc(cont,1) = c; tt(cont,1) = t; c = -a*k/p + a*k/p*exp(p*t); cont = cont + 1; end plot(tt,cc)

Respuesta del Matlab:

  X&' •'& %"    +    Š   &7  % J ' #5

36

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Gráfico 2.2. Respuesta de un sistema de primer orden a una entrada escalón 100

90

80

Amplitud de Salida (%)

70

60

50

40

30

20

10

0

0

1

2

3

4

5

6

7

8

9

10

Cantidad de Constantes de Tiempo T

Si sobre este programa comenzamos a variar los valores de la ganancia k del sistema y de la amplitud a del escalón de la entrada, apreciaremos que el sistema se estabiliza en un valor igual a la multiplicación de la ganancia del sistema por la amplitud de la entrada dividida entre el valor del polo, siempre y cuando el sistema sea estable, es decir, que su polo sea negativo. Del mismo modo, si comenzamos a variar los valores del polo haciéndolo más negativo, ve +% &‰"   " '  '   % " ' & ' #   % W* &  "  %&' '  ' & + %&&

T=

1 p

donde p es el valor del polo, y T es la constante de tiempo.   +%  & & & % '"  % % '&   " '  % " ' & ' # W analizamos los vectores donde hemos almacenado la información de tiempo y respuesta, cc y tt respectivamente. De ellos obtenemos los siguientes datos:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 37

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Cantidad de constantes de tiempo

% de crecimiento hacia el estado estable

1T

62.84%

2T

86.33%

3T

94.97%

4T

98.15%

5T

99.32%

6T

99.75%

7T

99.91%

8T

99.97%

9T

99.99%

10T

100.00%

c (10T ) =

ak p

Gráfico 2.3. Constantes de tiempo señaladas en la respuesta de un sistema de primer orden a una entrada escalón 100

90

3T=94.97%

Amplitud de Salida (%)

80

ak=100%

2T=86.33%

70

60

1T=62.84% 50

40

30

20

10

0 0

1

2

3

4

5

6

7

8

Cantidad de Constantes de Tiempo T

38

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

9

10

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Es importante tener en cuenta que la función al impulso, entrega como respuesta del sistema a la función en el tiempo correspondiente a la función de transferencia del sistema. Pero, es muy poco probable que en la realidad podamos reproducir o generar una función que estimule al sistema con las características completas de una función impulso. Por el contrario, sí es fácil generar una función escalón, unitario o no, de tal manera que podamos obtener la información necesaria del modelo matemático. Ejemplo E.2.1: Determinar la constante de tiempo T, el valor de la salida en estado estable y la función de su respuesta en el tiempo para una entrada constante de 3, para el siguiente sistema:

6 3s + 9

R (s ) ±

C (s )

Solución: Operamos el diagrama de bloques para hallar la función de transferencia:

R (s ) ±

6 3s + 9

C (s )

R (s )

6 3 s + 15

C (s )

Despejamos el término de Laplace s a manera de darle, a la función de transferencia, la forma propuesta en el desarrollo del tema:

G (s) =

6 3s + 15

G ( s) =

2 s+5

Teniendo planteada la función de transferencia, podemos determinar que el sistema tiene un solo polo en –5 así que es estable por encontrarse en el semiplano izquierdo de Laplace. Con este dato determinamos la constante de tiempo T. p = –5

T=

T=

1 žp

1 ž (ž5)

T = 0.2 segundos

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 39

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Del mismo modo, determinamos la salida en estado estable, es decir, la salida cuando ya alcanzó el 100% de su amplitud a un tiempo de operación de 10T, sabiendo que contamos con una entrada constante de amplitud igual a 3 (a = 3 ), y una ganancia del sistema de 2. Esta última obtenida de la función de transferencia ( k = 2).

c (10T ) =

c (10T) =

ak žp

(3)(2) ž (ž5)

c (10T) = 1.2 unidades Y por último, la salida en el tiempo la tenemos de la fórmula obtenida:

c (t ) = ž

c (t ) = ž

ak ak pt + e p p

(3)(2) (3)(2) (5)t + e (ž5) (ž5)

c(t ) = 1. 2 ž 1. 2e (5)t Del mismo modo, teniendo la función de transferencia, podemos correr el programa en Matlab,  % & &+% %&  % &W*7 ƒ+%  ' W& & %&'   " ' 5 a = 3; k = 2; p = -5; T = 1/(-p)

% Constante de Tiempo

c10T = a*k/(-p)

% Salida en estado estable

c = 0; cont = 1; for t=0:(10*T/100):10*T cc(cont,1) = c; tt(cont,1) = t; c = -a*k/p + a*k/p*exp(p*t); cont = cont + 1; end plot(tt,cc) grid on; zoom on; xlabel(‘segundos’); ylabel(‘Amplitud’) title(‘Sistema de Primer Orden’) Respuesta del Matlab:

40

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Sistema de primer orden 1.4

1.2

1

Amplitud

Salida en estado estable 0.8

0.6

Amplitud de 62.84%

0.4

0.2

Constante de Tiempo 0

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

segundos

T = 0.2000 c10T = 1.2000 Ejemplo E.2.2: Determinar la constante de tiempo T, el valor de la salida en estado estable y

H"% ' H %  '        ' %7 ƒ+%  %&& '  '&  su respuesta en el tiempo para una entrada constante de 2 por un tiempo de trabajo de tres segundos. La señal presenta ruido que ha sido introducido por el sensor. Respuesta de un sistema de primer orden por 3 segundos 0.9

0.8

0.7

0.6

Amplitud

0.5

0.4

0.3

0.2

0.1

0

žQ5 1

0

0.5

1

1.5

2

2.5

3

segundos

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 41

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: Es evidente que la respuesta está estabilizada alrededor del 0.75. Asumimos ese valor como nuestro punto de partida. Posteriormente, determinamos qué valor es el que corresponde a 62.84% de la amplitud: 0.75 x 0.6284 = 0.4713 Es decir, aproximadamente 0.47 y con este valor vemos el tiempo en el que se cumple para tener el valor de la constante de tiempo.

Respuesta de un sistema de primer orden por 3 segundos 0.9

0.8

0.7

Respuesta estabilizada en 0.75 aprox.

0.6

62.84% es aproximadamente 0.47

Amplitud

0.5

0.4

0.3

0.2

0.1

0.25 segundos 0

žQ5 1

0

0.5

1

1.5

2

segundos

Así tenemos que T = 0.25 segundos, lo que nos da un polo en –4:

T=

1 −p

p=

1 −T

p=

1 − 0. 25

p=−4

42

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

2.5

3

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Como la respuesta en estado estable es 0.75 ( c (10T ) = 0.75), el polo es – 4 (p = –4) y la entrada tiene una amplitud de 2 (a = 20), podemos calcular la ganancia k del sistema.

c (10T ) = k=

k=

ak −p

− c (10T ) p a

− (0. 75)(4) 2 k = 1. 5

Con estos parámetros calculados determinamos la función de transferencia:

G (s ) =

k s− p

G (s ) =

1. 5 s+4

y su función en el tiempo para la entrada escalón 2:

c (t ) = −

c(t ) = −

ak ak pt + e p p

(2)(1. 5) (2)(1. 5) − 4t e + −4 −4

c(t ) = 0. 75 − 0. 75e−4 t =&& %&+  %& & &#  & ƒ ' &   &7   J ' #* & & 7 +% &#  & '&%   +% "  ;5 a = 2; k = 1.5; p = -4; T = 1/-p % Constante de Tiempo c10T = a*k/(-p) % Salida en estado estable c = 0; cont = 1; for t=0:0.005:3 cc(cont,1) = c; tt(cont,1) = t; c = -a*k/p + a*k/p*exp(p*t); cont = cont + 1; end

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 43

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

La respuesta del Matlab es: Respuesta de un sistema de primer orden por 3 segundos 0.9

0.8

0.7 Señal Original Modelo Calculado

Amplitud

0.6

0.5

0.4

0.3

0.2

0.1

0

žQ5 1

0

0.5

1

1.5

2

2.5

3

segundos

T = 0.2500 c10T = 0.7500 El comportamiento fue tal como se había calculado y respondió al comportamiento esperado. =& & &  '  H"% ' H %  '     &   '+%   paramétricamente:

2 s

3 s+4

C (s )

2.2 Sistemas de segundo orden: Pueden ser representados por diversas maneras, posiblemente hasta con uno o dos ceros. Pero, debemos operar su función de transferencia de lazo cerrado de manera que esta tome la forma tradicional presentada por los textos de consulta más usados:

44

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Gráfico 2.4. Sistema de segundo orden

R(s )

k

±

ϖ n2 s (s + 2ζϖ n )

C (s )

G (s ) =

R(s )

=

C (s )

R(s )

kϖ n2 s 2 + 2ζϖ n s + ϖ n2

C (s )

kϖ n2 s 2 + 2ζϖ n s + ϖ n2 donde k en una ganancia propia del sistema, ωn es la frecuencia natural no amortiguada y ζ es el factor de amortiguamiento.

Los polos del sistema deben ser analizados, para ello extraemos la ecuación característica del sistema:

s 2 + 2ζϖ n s + ϖ n2 = 0 lo que nos entrega los siguientes polos:

s=

− 2ζϖ n ± (2ζϖ n ) 2 − 4ϖ n2 2

 +% &

s=

− 2ζϖ n ± 4ζ 2ϖ n2 − 4ϖ n2 2

s=

− 2ζϖ n ± 4ϖ n2 (ζ 2 − 1)

s=

2 − 2ζϖ n ± 2ϖ n ζ 2 − 1 2

s = −ζϖ n ± ϖ n ζ 2 − 1

De esta expresión podemos extraer que para que existan polos complejos, el factor de amortiguamiento deberá ser menor que 1 ( ζ > £5= ƒW& & + ‰" σ = ζωn y se denomina factor de atenuación, y

ϖ d = ϖ n 1 − ζ 2 denominándose frecuencia natural amortiguada.

Ahora, calculemos cuál es la salida del sistema de segundo orden para una entrada escalón de amplitud a:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 45

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

G (s ) =

C (s ) R(s )

C (s ) = R(s )

C (s ) =

=

kϖ n2 s 2 + 2ζϖ n s + ϖ n2

kϖ n2 s 2 + 2ζϖ n s + ϖ n2

kϖ n2 a s s 2 + 2ζϖ n s + ϖ n2

Expandiendo en fracciones parciales, tenemos:

C (s )

kϖ n2 a A Bs + C = = + 2 2 2 s s + 2ζϖ n s + ϖ n s s + 2ζϖ n s + ϖ n2

Resolviendo:

akϖ n2 = A(s 2 + 2ζϖ n s + ϖ n2 ) + (Bs + C )s akϖ n2 = As 2 + 2 Aζϖ n s + Aϖ n2 + Bs 2 + Cs akϖ n2 = ( A + B )s 2 + (2 Aζϖ n + C )s + Aϖ n2 7" &%& +% ' 

A+B =0

2 Aζϖ n + C = 0

akϖ n2 = Aϖ n2

B = −A

C = −2 Aζϖ n

A = ak

B = −ak

C = −2akζϖ n

C (s ) =

kϖ n2 aks + 2akζϖ n a ak = − s s 2 + 2ζϖ n s + ϖ n2 s s 2 + 2ζϖ n s + ϖ n2 C (s ) =

aks + 2akζϖ n ak − 2 s s + 2ζϖ n s + ϖ n2

Como a y k son constantes:

⎛1 ⎞ s + 2ζϖ n ⎟ C (s ) = ak ⎜⎜ − 2 2 ⎟ ⎝ s s + 2ζϖ n s + ϖ n ⎠ si recordamos la expresión de la frecuencia natural amortiguada, veremos:

46

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

ϖ d = ϖ n 1− ζ 2

ϖ d2 = ϖ n2 (1 − ζ 2 ) ϖ d2 = ϖ n2 − ϖ n2ζ 2 Si sumamos y restamos este resultado al denominador cuadrático de la salida, obtenemos:

⎛1 ⎞ s + 2ζϖ n ⎟ C (s ) = ak ⎜⎜ − 2 2 2 2 2 2 ⎟ s ζϖ ϖ ϖ ϖ ϖ ζ s s + 2 + + ( − + ) n n d n n ⎝ ⎠ ⎛1 ⎞ s + 2ζϖ n ⎟ C (s ) = ak ⎜⎜ − 2 2 2 2 ⎟ ⎝ s (s + 2ζϖ n s + ϖ n ζ ) + ϖ d ⎠ ⎛1 ⎞ s + 2ζϖ n ⎟ C (s ) = ak ⎜⎜ − 2 2 ⎟ ⎝ s (s + ζϖ n ) + ϖ d ⎠ ⎛1 ⎞ s + ζϖ n ζϖ n ⎟ C (s ) = ak ⎜⎜ − − 2 2 2 2 ⎟ ⎝ s (s + ζϖ n ) + ϖ d (s + ζϖ n ) + ϖ d ⎠ C (s )

1− ζ 2 ζϖ n s + ζϖ n 1 = ak − ak − ak s (s + ζϖ n ) 2 + ϖ d2 (s + ζϖ n ) 2 + ϖ d2 1 − ζ 2

ϖ n 1− ζ 2 s + ζϖ n 1 akζ C (s ) = ak − ak − 2 2 s (s + ζϖ n ) 2 + ϖ d2 1 − ζ 2 (s + ζϖ n ) + ϖ d ϖ n 1− ζ 2 s + ζϖ n 1 akζ C (s ) = ak − ak − 2 2 s (s + ζϖ n ) 2 + ϖ d2 1 − ζ 2 (s + ζϖ n ) + ϖ d Así, podemos aplicar la transformada inversa de Laplace a cada una de las expresiones:

c (t ) = ak − ake−ζϖ nt cos(ϖ d t) −

akζ 1− ζ

2

e −ζϖ nt sin(ϖ d t)

⎛ ⎛ ⎞⎞ ζ c (t ) = ak ⎜1 − e −ζϖ nt ⎜ cos(ϖ d t) + sin(ϖ d t) ⎟ ⎟ ⎜ ⎜ ⎟⎟ 1− ζ 2 ⎝ ⎠⎠ ⎝ ⎛ ⎛ ⎞⎞ ζ c (t ) = ak ⎜1 − e −ζϖ nt ⎜ cos(ϖ n 1 − ζ 2 t) + sin(ϖ n 1 − ζ 2 t) ⎟ ⎟ ⎜ ⎜ ⎟⎟ 1− ζ 2 ⎝ ⎠⎠ ⎝

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 47

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Veamos, qué pasa con la salida, si variamos el factor de amortiguamiento de 0.2 a 1.0, y con la frecuencia natural no amortiguada en 10 rad/s, para una entrada escalón unitario. Adicional ' W +7" "%   &  & 7  % 5 

& %"

&"  '   Matlab. clear all; close all a = 1; k = 1; c1 = 1;c2 = 1; c3 = 1; wn = 10; for z = 0:0.2:1 if z==1;z=0.9999;end for t = 0:0.01:10 tt(c3)=t; %wwn(c2)=wn; zz(c1)=z; c=a*k*(1-exp(-z*wn*t)*(cos(wn*sqrt(1-z^2)*t)+... z/sqrt(1-z^2)*sin(wn*sqrt(1-z^2)*t))); ct(c3)=c; c3 = c3 + 1 end c1 = c1 + 1 end c=[]; for k = 1:1001:6006 c=[c ct(k:k+100)’]; end surf(c) axis([0 5 0 100 0 2]) save s2orden tt zz c

La respuesta del Matlab es:

48

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Gráfico 2.5. Respuesta al escalón unitario de un sistema de segundo orden Respuesta al Escalón Unitario (wn=10) 2 1.8

Amplitud de la Salida

1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 1 2 3

z

4 5

0

10

20

30

40

50

60

70

80

90

100

Wnt

 &&&W& &  %  " +7"  & &  clear all; close all load s2orden t=0:0.1:10; t=t’; plot(t,c(:,1),’k’) hold on plot(t,c(:,2),’k’);plot(t,c(:,3),’k’) plot(t,c(:,4),’k’);plot(t,c(:,5),’k’) plot(t,c(:,6),’k’) grid on xlabel(‘Tiempo’); ylabel(‘Amplitud’) title(‘Factor de Amortiguamiento’)

La respuesta del Matlab es:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 49

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Gráfico 2.6. Factor de amortiguamiento Factor de Amortiguamiento 2

1.0 1.8

1.6

0.8

1.4

0.6 Amplitud

1.2

0.4

1

0.2

0.0

0.8

0.6

0.4

0.2

0 0

1

2

3

4

5

6

7

8

9

10

Tiempo

Por experiencia, sabemos que según el valor del factor de amortiguamiento, el sistema de se7"&&   "  % +%  "# & '7" &W% Š'%  '  & '7" &&&# & tiguado. Cabe resaltar que existe una diferencia perceptible entre los valores teóricos que limi'  ' % +% %* & &  5$'&Y '&& &‰"  # &%&   efectos de análisis y diseño.

Clase \ Tipo Subamortiguado Críticamente Amortiguado Sobreamortiguado

Teórico 0k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Utilizando las ayudas del toolbox de matemáticas simbólicas del Matlab, resolveremos la transformada inversa de Laplace de la salida del sistema de segundo orden, pero primero debere& +%   • & &#'  5 clear all; close all syms s a b c k Gs = (a)/(s^2+b*s+c); Rs = k/s;

% Función de Transferencia 2do. orden

% Entrada escalón k

Cs = Rs*Gs; Cs = simple(Cs) ct = ilaplace(Cs); ct = simple(ct) La respuesta es: Cs = k/s*a/(s^2+b*s+c) En una expresión formal sería:

C (s ) =

ka s (s + bs + c ) 2

Para aplicar la transformada inversa de Laplace, debemos agregar al Matlab: ct = ilaplace(Cs); ct = simple(ct) cuya respuesta es: ct = k*a*(1/c+1/(b^2-4*c)^(1/2)*(1/(-1/2*b+1/2*(b^2-4*c)^(1/2))*ex((1/2*b+1/2*(b^2-4*c)^(1/2))*t)-1/(-1/2*b-1/2*(b^2-4*c)^(1/2))*exp((-1/2*b1/2*(b^2-4*c)^(1/2))*t))) lo que en una expresión formal es:

c (t )

⎛ ⎛ −b + ⎜ ⎜ ⎜ 1 1 1 ⎜ e⎝ = ka ⎜ + 2 2 c b − 4c − b + b − 4c ⎜⎜ 2 ⎝

b 2 − 4c 2

⎞ ⎟t ⎟ ⎠



1 − b − b 2 − 4c 2

e

⎛ − b − b 2 − 4c ⎜ ⎜ 2 ⎝

⎞ ⎟t ⎟ ⎠

⎞ ⎟ ⎟ ⎟ ⎟⎟ ⎠

 +% &

c (t )

⎛ − b + b 2 − 4c ⎜ 2

⎜ ka ka 2 e⎝ = + 2 2 c b − 4c − b + b − 4c

⎞ ⎟t ⎟ ⎠



2ka − b − b 2 − 4c

e

⎛ − b − b 2 − 4c ⎜ ⎜ 2 ⎝

⎞ ⎟t ⎟ ⎠

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 51

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

2.2.1 Conceptos generales: Aclarado el panorama sobre el cual trabajaremos, es necesario que nos familiaricemos con el tipo de señal que deberemos esperar, con algunas variaciones y sus diferentes partes:

Gráfico 2.7. Características de un sistema de segundo orden y(t) Entrada al escalón unitario

Sobrepaso máximo

1.05 1.00 0.95 0.90

0.50

Tiempo de retardo td

0.10 0

tmax

Tiempo de levantamiento tr

t

Tiempo de asentamiento ts

Conociendo la ubicación de los polos podemos calcular:

Gráfico 2.8. Representación de los polos en el plano de Laplace



ϖ d = ϖ n 1− ζ 2

jϖ d

x

σ = ζϖ n

ϖn Donde:

σ –σ

ζ = Factor de amortiguamiento ϖ n = Frecuencia natural no amortiguada ϖ d = Frecuencia natural amortiguada

x = Polos

52

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Referencia (ref ): es el valor hacia donde se desea que se comporte la salida estable, en el % &  +7"   "' ; &  % "' &%&& ™   H % 5 Salida en estado estable (c()): nos referimos a la salida en un estado estable a la salida cuando no presenta variaciones, es decir, cuando ya ha pasado un tiempo grande como para que esta ya no cambie su valor de manera considerable. Es muy importante tener en cuenta que la intención del diseño es la de hacer coincidir a la salida en estado estable con la referencia. Por ello, para efectos prácticos, consideraremos en nuestros programas a la salida en estado estable en lugar de la referencia, cada vez que la ambigüedad se presente. Es decir, en los casos del sobreimpulso y de los diferentes tiempos. Tolerancia: es el rango de error porcentual aceptado por el diseñador para que, a pesar de que el sistema no presente un comportamiento perfecto, este cumpla con su trabajo co

%'  ' 5X '& % ƒ"  &  ¨W!¨*¨5$ +7"    %  una tolerancia del 5%, y se señala como una línea punteada en +5% (1.05) y otra en -5% (0.95). Error de estado estacionario (ess): también conocido como el error de estado estable, es el valor absoluto de la diferencia entre la salida en estado estable menos la referencia. Se expresa e unidades de la referencia y siempre en valores positivos.

ess = c (∞) − ref Valor Pico (c(t )): es el valor máximo de la salida. p

Sobreimpulso (Mp): el sobreimpulso, o sobrepaso máximo u overshot, es el valor pico máximo de la respuesta. Se calcula de manera porcentual con respecto a la referencia o a la salida en estado estable, según el análisis del caso.

Mp =

c (t p ) − c ( ∞ ) c (∞ )

× 100%

Del mismo modo, se pueden emplear las siguientes aproximaciones: ⎛ − ⎜⎜ ζ

Mp = e



− ⎛⎜ σ ϖ

Mp = e



⎞ ⎟π 1−ζ 2 ⎟⎠

d

,o

⎞π ⎟ ⎠

Tiempo de Retardo (td): es el tiempo requerido para que la respuesta alcance por primera vez la mitad del valor de la referencia o de la salida en estado estable, según sea el caso.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 53

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Tiempo de Levantamiento (tr): también llamado tiempo de subida es el tiempo requerido para que la respuesta vaya desde el inicio o un estado cercano a él, hasta la referencia o la salida en estado estable, según sea el caso, o un valor cercano a ella. Los intervalos más H %" ' & Q QQ¨W  ¨* Q Q¨5$ +7"  & & Q  90% siendo este el más común. Tiempo de Pico (tp£  ' &  % ;   & %&5@ #Œ "   +  como el tiempo requerido para llegar al sobreimpulso, se aproxima bastante a la siguiente expresión:

tp =

π π = ϖ d ϖ n 1− ζ 2

Tiempo de Establecimiento (ts): también conocido como el tiempo de asentamiento, es el requerido para que el valor de la salida entre al rango de la tolerancia permitida y permanezca dentro de ella. Para determinar sus valores de manera sencilla, podemos utilizar las siguientes expresiones:

ts =

ts =

4

ζϖ n 3

ζϖ n

(para una tolerancia del 2%)

(para una tolerancia del 5%)

Ejemplo E.2.3: dado el siguiente sistema:

R(s )



ϖ n2 s (s + 2ζϖ n )

C (s )

en el cual se conoce que el factor de amortiguamiento es 0.5 y su frecuencia natural no amortiguada es 6 rad/s, determinar: a.

El sobreimpulso máximo y su tiempo pico

b. El tiempo de asentamiento Solución: a.

54

Sobreimpulso Mp:

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“ ⎞ ⎛ ⎟π −⎜ ζ ⎜ 1−ζ 2 ⎟⎠ ⎝

Mp = e Mp = e Mp = e Mp = e

Mp = e

⎛ ⎞ ⎟π − ⎜ 0. 5 2 ⎟ ⎜ − 1 0 , 5 ⎝ ⎠ ⎛ ⎞π − ⎜ 0. 5 ⎟ 1− 0, 25 ⎠ ⎝ ⎛ ⎞π − ⎜ 0. 5 ⎟ 0, 75 ⎠ ⎝

)

(

π − 0. 5 0, 87

Mp = 0. 1630 Tiempo pico tp :

tp = tp =

tp = tp =

π ϖ n 1− ζ 2 π 6 1 − 0. 52

π 6 0. 75

π (6)(0. 8660)

tp = 0. 605 Este sistema presenta un sobreimpulso máximo de 16.3% en un tiempo pico de 0.605 segundos. b.

El tiempo de asentamiento ts depende de la tolerancia a la que va a estar expuesto el '  5>&& ' & &  %+%  W & % %"   &&% &ƒ frecuentes, el de 2% y el de 5%. Caso de tolerancia 5%:

ts (5%) =

3

ζϖ n

=

3 3 = = 1s (0. 5)(6) 3

Caso de tolerancia 2%:

ts (2%) =

4

ζϖ n

=

4 4 = = 1. 33s (0. 5)(6) 3

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 55

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

El tiempo de asentamiento para este sistema es de 1 y 1.33 segundos para las tolerancias de 5 y 2% respectivamente. Ejemplo E.2.4: dado el siguiente sistema:

ϖ n2 s (s + 2ζϖ n )

R(s )



C (s )

Se requiere que tenga un tiempo de asentamiento de 1 segundo para una tolerancia del 2% y un sobreimpulso de 0.5 para una entrada escalón unitario. Determinar su función de transferencia. Solución: Revisemos nuestros datos:

Mp = e

⎛ −⎜ ζ ⎜ 1−ζ 2 ⎝

ts (2%) =

⎞ ⎟π ⎟ ⎠

4

= 0. 5

= 1s

ζϖ n

Primero determinaremos el factor de amortiguamiento de la expresión del sobreimpulso:

0. 5 = e

⎛ ⎞ ⎟π −⎜ ζ 2 ⎟ ⎜ ζ − 1 ⎝ ⎠

ζ

ln 0. 5 = −

1− ζ 2

(ln 0. 5 ) (1− ζ ) = ζ 2

2

(ln 0. 5 ) − (ln 0. 5 ) ζ 2

2

2

π π2

2

= ζ 2π 2

π 2ζ 2 + (ln 0. 5 ) ζ 2 = (ln 0. 5 ) 2



2

2

)

+ (ln 0. 5 ) ζ 2 = (ln 0. 5 ) 2

2

(ln 0.5 ) + (ln 0. 5 ) ) 2

ζ = 2

ζ2=

56



2

2

0. 4805 π + 0. 4805

(

2

)

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

ζ2=

0. 4805 10. 3501

ζ2=

0. 4805 10. 3501

ζ 2 = 0. 0462 ζ = 0. 04642 ζ = 0. 2155 Una vez determinado el factor de amortiguamiento, despejamos la frecuencia natural no amortiguada de la expresión correspondiente al tiempo de asentamiento:

1=

ϖn =

4

ζϖ n 4 0. 2155

ϖ n = 18. 57rad/s Con los datos del factor de amortiguamiento, la frecuencia natural no amortiguada y sabiendo que la entrada es un escalón unitario, es decir, que no va a existir ninguna amplitud adicional (k=1), podemos reemplazar los valores obtenidos en la expresión de la función de transferencia de sistemas de segundo orden.

G (s )

G (s ) =

kϖ n2 = 2 s + 2ζϖ n s + ϖ n2

(1)(18.57 )2 s 2 + 2(0. 2155)(18.57) s + (18.57)2

G (s ) =

R(s )



344. 6766 s + 8. 0037s + 344. 6766 2

344. 6766 s (s + 8. 0037)

C (s )

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 57

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

2.3 Diseño de controladores clásicos: X&%&' & & & & % 7 & &+%  %&& '  '& '   

 la salida a los valores deseados. Debemos comenzar por ver nuevamente la forma general de un sistema, el cual puede ser ines' # & ' #  &W"%&& '  '& +'  ' W   %" &5$&'  # W  error de estado estacionario es demasiado grande.

Gráfico 2.9. Sistema genérico

R (s)

C(s)

G(s)

Entrada

Salida Función de transferencia

El mismo sistema con controlador responderá al siguiente diagrama:

Gráfico 2.10. Sistema genérico con controlador y sensor

R (s)

E (s)

Gc(s)

G(s)

Controlador

Sistema

C(s) Salida

H(s) Sensor Nuevo Sistema Controlado cuya función de transferencia será:

Gráfico 2.11. Función de transferencia

R (s)

Gc (s) G (s) 1+ Gc (s) G (s) H (s)

C(s) Salida

La intención del controlador es corregir la salida adecuadamente, utilizando un sensor que le permita comparar el error para la realimentación.

58

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

2.3.1 Tipos de controladores clásicos: Esta corrección o control puede ser proporcional (P), derivativo (D), integral (I), o cualquiera de las combinaciones de ellas, siendo las más usadas las P, PD, PI y PID. Cada una tiene sus ventajas y sus defectos. Las funciones de transferencia de cada uno de los controladores descritos, son las siguientes: Controlador proporcional (P):

Gráfico 2.12. Función de transferencia de controlador P

Kp

Controlador derivativo (D):

Gráfico 2.13. Función de transferencia del controlador D

sKd

Controlador Integral (I):

Gráfico 2.14. Función de transferencia del Controlador I

Ki s Controlador PD:

Gráfico 2.15. Función de transferencia del Controlador PD

Kp + sKd

Controlador PI:

Gráfico 2.16. Función de transferencia del Controlador PI

Kp + Ki s

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 59

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Controlador PID:

Gráfico 2.17. Función de transferencia del Controlador

Kp + sKd + Ki s

o

s 2Kd + sKp + Ki s

2.3.2 Ventajas y desventajas de los controladores clásicos: En el cuadro siguiente vamos a presentar las ventajas y desventajas que tienen cada uno de los controladores. Controlador Proporcional Derivativo Integral

Ventajas

Desventajas

Aproxima la salida a la referencia.

No reacciona ante variaciones del error, ni llega a eliminarlo.

Prevé variaciones del error y es rápido.

= +%   "&*&"   trabajar independientemente.

Desaparece el error de estado estacionario.

Es lento en su trabajo.

Ejemplo E.2.5: Dado el sistema que tiene por función de transferencia:

G (s ) =

8 s + 1.2s + 4 2

Aplicar un controlador PID cuyas constantes sean Kp = 10, Kd = 5, y Ki = 10. Asumir que el sensor tiene función de transferencia 1. Solución: Primero debemos determinar las funciones de transferencias del controlador y del sensor: Controlador:

Gc (s ) =

Sensor:

H( s ) =

s 2 Kd + sKp + Ki 5s 2 + 10s + 10 = s s

1 1

Retomando la función de transferencia del sistema nuevo, vamos a resolverlo con ayuda del Matlab:

60

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

G N (s ) =

Gc (s ) G (s ) 1 + Gc (s ) G (s ) H (s )

Descompondremos las funciones de transferencia en numeradores y denominadores para facilitar el acceso al programa. Con ello podemos analizar cómo eran sus polos inicialmen' *%&‰"   + 5=%&  ' W & " %&  %%& 7"& del sistema original y del sistema nuevo. Las respuestas se irán indexando en el texto del programa para ir evaluando sus resultados y para comprobar que estamos trabajando correctamente. El programa será el siguiente: clear all; close all % Características del Sistema num = [ 8 ]; den = [ 1 1.2 4 ]; sys = tf(num,den) Respuesta del Matlab: Transfer function: 8 -------------------s^2 + 1.2 s + 4 % Características del Controlador numc = [ 5 10 10 ]; denc = [ 1 0 ]; sysc = tf(numc,denc) Respuesta del Matlab: Transfer function: 5 s^2 + 10 s + 10 ---------------------s % Características del Sensor nums = [ 1 ]; dens = [ 1 ]; syss = tf(nums,dens) Respuesta del Matlab: Transfer function: 1

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 61

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

% Aplicando la fórmula. numsn = conv(conv(num,numc),dens); densn = conv(conv(denc,den),dens)+[0 conv(conv(num,numc),dens)]; syssn = tf(numsn,densn) Respuesta del Matlab: Transfer function: 40 s^2 + 80 s + 80 --------------------------------s^3 + 41.2 s^2 + 84 s + 80 % Otra manera de hacer lo mismo es: sysla = series(sysc,sys); syslc = feedback(sysla,syss) Respuesta del Matlab: Transfer function: 40 s^2 + 80 s + 80 --------------------------------s^3 + 41.2 s^2 + 84 s + 80 % Comenzaremos el análisis de los polos del sistema nuevo y del sistema   polos_orig = roots(den) Respuesta del Matlab: polos_orig = –0.6000 + 1.9079i –0.6000 - 1.9079i polos_nuevos = roots(densn) Respuesta del Matlab: polos_nuevos = -39.1042 -1.0479 + 0.9735i -1.0479 – 0.9735i % Las simulaciones iniciales y posteriores serán:  step(sys,5)

62

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘=[Ž}\`\`j^}k_^`|x^`”k^[^}^`”kj“”_k[`\”“_\“

Step Response

3

2.5

Amplitude

2

1.5

1

0.5

0 0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Time (seconds)





step(syssn,5)

Step Response 1.4

1.2

Amplitude

1

0.8

0.6

0.4

0.2

0

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Time (seconds)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 63

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

En la comparación de los polos, podemos ver que se han hecho más negativos y de mayor magnitud, es decir, que el sistema es más estable. En cuanto a las simulaciones, vemos claramente que antes de usar el controlador, el sistema era estable, pero en lugar de aproximarse al valor 1, lo hacía al valor 2, lo que presenta un error de 100%. Luego de aplicar el controlador, vemos que el error desaparece y hay un mejor amortiguamiento.

64

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Capítulo 3: Análisis de sistemas de control en el dominio de la frecuencia

Ÿ " '  H %" % 7+%  " '   ' & ' %& & "'   "  '   sinusoidal. En los métodos de respuesta en frecuencia, variamos la frecuencia de la señal de entrada en un cierto rango y estudiamos la respuesta resultante El método de análisis de la respuesta en frecuencia, a diferencia de los otros métodos es menos subjetivo y además tiene la ventaja de que, en la realidad, es el más utilizado para determinar las funciones de transferencia a partir de mediciones o toma de datos de una planta. La respuesta en frecuencia de un sistema normalmente es presentada por alguna de dos maneras, mediante los diagramas de Bode o a través de los diagramas de Nyquist. Ambos muestran la misma información de forma diferente. El primero es logarítmico y el segundo es polar. Nuestro estudio se centrará en los diagramas de Bode.

Para comenzar debemos transformar nuestro modelo matemático, es decir nuestra función de transferencia, en otro modelo que esté en función de la frecuencia. Para ello partimos de un sistema:

Gráfico 3.1. Sistema genérico x(t ) X (t )

G (s )

y(t ) Y (t )

cuya función de transferencia es: G (s ) =

Y(s ) X (s )

Para realizar la transformación, debemos considerar que todos los sistemas estables, lineales e invariantes en el tiempo están sujetos a una entrada senoidal, tal como x(t ) = Xsen (ω t), tienen una salida senoidal de igual frecuencia con diferente amplitud y diferente fase: y(t) = Ysen(ω t + ϕ ) donde: Y = X G ( jω ) ⎡ Gi ( jω ) ⎤ ϕ = ∠G ( jω ) = tan−1 ⎢ ⎥ ⎣⎢ Gr ( jω ) ⎦⎥

Gi ( jω ) es la parte imaginaria de Gi ( jω ) Gr( jω ) es la parte real de Gi ( jω )

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 65

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Gráfico 3.2. Respuesta a una entrada senoidal 1.5

1

X Y

0.5

0

–0.5

ž

–1.5 0

1

2

3

4

5

6

7

8

9

10

La presentación de las características de la respuesta en frecuencia se toman directamente de: G ( jω ) =

Y( jω )

, cociente de amplitud entre el seno de la salida y el seno de la entrada.

X ( jω )

∠G ( jω ) = ∠

Y( j ω ) X ( jω )

, desplazamiento de fase del seno de la salida con respecto al seno de la entrada.

Un ángulo de fase negativo se llama retardo de fase y uno positivo se llama adelanto de fase. $ " * '&& &% &W& **‰"'W  " '  H %" %  'ƒ + %&&  diferencia de magnitud y fase entre los senos de la entrada y de la salida.

3.1 Diagramas de Bode: Tal como mencionamos, los diagramas de Bode son una forma de representar la magnitud y la fase de G(jω). Por ejemplo, si tenemos la siguiente función de transferencia, G(s ) =

50 s + 9s + 30s + 40 3

2

Sus diagramas de Bode son:

66

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Gráfico 3.3. Diagrama de Bode del sistema G(s) Diagrama de Bode Q

Magnitud (dB)

Q

žQ

žQ

žQ

žQ

žQQ Q

Fase (deg)

‡ ‡Q ‡! ‡Q ‡ ‡Q Q

‡

Q

Q

Q



Q

Frecuencia (rad/s)

Cabe resaltar que la frecuencia está en escala logarítmica, la fase en grados y la magnitud está dada como ganancia en decibelios. X& %# &  + %&&

(

K (dB) = 20log G ( jω )

)

Ejemplo E.3.1: Trazar los diagramas de Bode del sistema cuya función de transferencia es: G( s ) =

10(s + 1) s (s − 3)

el cual posee realimentación unitaria negativa. Solución: Desarrollando el sistema tenemos:



10(s + 1) s (s − 3)

10 (s + 1) s (s − 3) + 10(s + 1)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 67

www.full-ebook.com



$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

10(s + 1) s 2 + 7s + 10

10s + 10 (s + 5)(s + 2)

La función de transferencia G(s)es evaluada en jω generando G(jω).

G ( jω ) = G ( jω ) =

G ( jω ) =

10 jω + 10 ( jω + 5)( jω + 2)

G ( jω ) =

10 jω + 10 7 jω + (10 − ω 2 )

10 jω + 10 (10 − ω 2 ) − 7 jω × 2 (10 − ω ) + 7 jω (10 − ω 2 ) − 7 jω

100 + 10ω 2 + 70ω 2 + j (100ω − 10ω 3 ) (10 − ω 2 )2 − (7 jω )2

G ( jω ) =

(100 + 80ω 2 ) + j (100ω − 10ω 3 ) (10 − ω 2 ) 2 + (7ω ) 2

G ( jω ) =

(100 + 80ω 2 ) + j (100ω − 10ω 3 ) 100 − 20ω 2 + ω 4 + 49ω 2

G ( jω ) =

(100 + 80ω 2 ) + j (100ω − 10ω 3 ) ω 4 + 29ω 2 + 100

G ( jω ) =

100 + 80ω 2 100ω − 10ω 3 + j ω 4 + 29ω 2 + 100 ω 4 + 29ω 2 + 100

de donde calculamos su magnitud y fase de la siguiente manera: ⎛ (100 + 80ω 2 )2 + (100ω − 10ω 3 )2 K (dB ) = 20 log G( jω ) = 20 log ⎜ ⎜ (ω 4 + 29ω 2 + 100)2 ⎝

(

)

⎞ ⎟ ⎟ ⎠

⎛100ω − 10ω 3 ⎞ ⎟ ϕ = ∠G ( jω ) = atg ⎜⎜ 2 ⎟ ⎝ 100 + 80ω ⎠

68

ω

κ

φ

0

0

0

1

3.795

26.565

2

5.496

15.945

5

3.738

-19.654

10

-0.617

-48.013

20

-6.174

-67.631

50

-14.004

-80.870

100

-20.006

-85.421

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

&   7   &  '   %" ' % %" &  '  7" ' J+ 1: clc; clear all; close all k = 1; for w = 0:0.1:10; g(k,1) = 20*log10(sqrt(((100+80*w*w)^2+(100*w-… 10*w^3)^2)/(w^4+29*w^2+100)^2)); p(k,1) = 180/pi*atan((100*w-10*w^3)/(100+80*w*w)); f(k,1) = (w); k = k + 1; end for w = 11:99; g(k,1) = 20*log10(sqrt(((100+80*w*w)^2+(100*w-… 10*w^3)^2)/(w^4+29*w^2+100)^2)); p(k,1) = 180/pi*atan((100*w-10*w^3)/(100+80*w*w)); f(k,1) = (w); k = k + 1; end for w = 100:10:10000; g(k,1) = 20*log10(sqrt(((100+80*w*w)^2+(100*w-… 10*w^3)^2)/(w^4+29*w^2+100)^2)); p(k,1) = 180/pi*atan((100*w-10*w^3)/(100+80*w*w)); f(k,1) = (w); k = k + 1; end for w = 10000:1000:1000000; g(k,1) = 20*log10(sqrt(((100+80*w*w)^2+(100*w-… 10*w^3)^2)/(w^4+29*w^2+100)^2)); p(k,1) = 180/pi*atan((100*w-10*w^3)/(100+80*w*w)); f(k,1) = (w); k = k + 1; end   

  X&' •'& %"    +    Š   &7  % J ' #5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 69

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

La respuesta del Matlab es: Diagrama de Bode 10

Ganancia

0

ž10

ž20

ž30 ž 10

0

10

10

1

10

2

50

Fase

0

ž50

ž100 ž1 10

0

10

10

1

10

2

Frecuencia

num = [10 10]; den = [1 7 10]; sys = tf(num,den)    La respuesta del Matlab es: Diagramas de Bode Magnitud (dB)

2

1.5

1

0.5

0 ž 10

10

0

10

1

10

2

Fase (Grados)

20 0 ž20 ž40 ž60 ž80 ž100 ž1 10

10

0

10

1

Frecuencia (rad/seg)

70

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

10

2

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

3.1.1. Estabilidad en frecuencia: La estabilidad en el dominio de la frecuencia se analiza determinando los márgenes de fase y de ganancia. Margen de ganancia: 'ƒ +&%&& % #& 7  %  ‰" &  ;& # '&  %& '  '    ' # 5  +  ‰"  &'  %&7  ƒ 7    ganancia pueden soportar grandes cambios de parámetros en el sistema antes de convertirse en sistemas de lazo cerrado inestables. El margen de ganancia es la amplitud medida desde los 0 dB cuando la fase es de –180°. Hacia abajo es positivo. Gm = 0 dB − K dB

ϕ = −180°

Margen de fase: 'ƒ +&%&& % #&&  H    ;& # '& ‰" & '&   '    ;&%

& ' # 5  + ' #Œ%&& '& %  a los retardos respuesta en el tiempo. Si el retardo es mayor que los 180°, es decir hay una inversión en el signo del seno, el sistema de lazo cerrado se convierte en un sistema inestable. El margen de fase es el ángulo medido desde los –180° cuando la ganancia es 0 dB. Hacia arriba es positivo. Pm = ϕ

K = 0dB

− (−180°)

Estabilidad: el sistema es estable siempre que ambos, el margen de ganancia y el de fase, sean positivos. Ejemplo E.3.2: Determinar la estabilidad del sistema de la siguiente ecuación:

G(s) =

50 s + 9s + 30s + 40 3

2

Cuyos diagramas de Bode son:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 71

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Diagrama de Bode Q

Magnitud (dB)

Q žQ žQ žQ žQ žQQ Q

Fase (deg)

ž žQ ž! žQ ž žQ ž

Q

Q

Q

Q



Q



Frecuencia (rad/s)

Solución: Sobre este diagrama podemos determinar los márgenes de ganancia y de fase de la siguiente manera: Diagrama de Bode ¬­!5!® 5 ¯£W­Q²® 5 ¯£ Q

Magnitud (dB)

Q žQ žQ žQ žQ žQQ Q

Fase (deg)

ž žQ ž! žQ ž žQ Q

ž

Q

Q

Q



 %" % ® ¯£

3.1.2. Relación entre el tipo de sistema y los diagramas de magnitud-fase:  &"'     ' % 7 ' W%&&   +7" 

72

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Q



>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Gráfico 3.4. Sistema de alimentación negativa G( s )



H (s )

La constante de error de posición estática Kp, la constante de error de velocidad estática Kv y la constante de error de aceleración estática KaW  + %&&7"  K p = lim G (s ) H (s ) s →0

K v = lim sG (s ) H (s ) s →0

K a = lim s 2 G(s ) H(s ) s →0

Estas constantes de error estáticas describen el comportamiento a bajas frecuencias de los sistemas tipo 0, tipo 1 y tipo 2. Recuerde que el número de integradores encontrados en el polinomio característico determinan el tipo del sistema. Observe que para un sistema  &WY%  ' "   %&' '  

&  'ƒ'%  +' *7+% ' 5= ƒW %" '& *&    &   %&' '  

&  'ƒ'% +' Wƒ7    ;&%" do la frecuencia tiende a cero.

3.1.3 Frecuencia de ancho de banda: X H %" %   %& #  &  '  %& #  W 'ƒ + %&&  frecuencia a la cual la respuesta en magnitud de lazo cerrado es igual a los –3 dB, la cual describe una banda de frecuencias comprendida entre el 0 y esta frecuencia en cuestión. Por supuesto, cuando nosotros diseñamos a través de la respuesta en frecuencia, estamos interesados en predecir la conducta del sistema en lazo cerrado a partir de la respuesta del sistema en lazo abierto. Existe relación entre el ancho de banda, la frecuencia natural no amortiguada y el factor de amortiguamiento, y ello está estrechamente ligado al tiempo de asentamiento y al tiempo pico. Tiempo de Asentamiento:

ω BW = ω n (1 − 2ζ 2 ) + ζ 4 − 4ζ 2 + 2

ω n(2%) = ω BW =

4 ts ζ

4 ts ζ

(1− 2ζ 2 ) + ζ 4 − 4ζ 2 + 2

Para apreciar fácilmente el comportamiento de esta ecuación, la ploteamos:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 73

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Gráfico 3.5. Simulación del tiempo de asentamiento Tiempo de asentamiento 200 180 160 140

W(BW)*ts

120 100 80 60 40 20 0 0

0. 1

0. 2

0. 3

0. 4

0. 5

0. 6

0. 7

0. 8

0. 9

1

Factor de Amortiguamiento

Tiempo Pico:

ωn = ω BW =

π tP 1− ζ

2

π t P 1− ζ

2

(1− 2ζ 2 ) + ζ 4 − 4ζ 2 + 2

Nuevamente, si lo ploteamos tenemos:

Gráfico 3.6. Simulación del Tiempo Pico Simulación de Tiempo Pico 7

6

W(BW)*tp

5

4

3

2

1

0 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Factor de Amortiguamiento

74

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

0.8

0.9

1

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Existe una burda aproximación para el tiempo de levantamiento, que es bastante útil en: tr =

1. 8

ϖn

=

1. 8

ϖ BW

Para resaltar la importancia del ancho de banda, vamos a mostrar la variación de las salidas ante diferentes frecuencias en la entrada. Se va a poder apreciar que las frecuencias menores a la frecuencia del ancho de banda siguen adecuadamente a la señal del sistema, mientras que las mayores a la frecuencia en cuestión se atenúan considerablemente al igual que sufren variaciones en fase. Esta es la función de transferencia en lazo cerrado de un sistema: 1 2 s + 0. 5s + 1

Gráfico 3.7. Diagrama de Bode de lazo cerrado Diagrama de Bode Q Q

ž!

Magnitud (dB)

Q žQ žQ ž!Q žQ žQ žQ žQ žQ

5! ¯ 7 Q

Fase (deg)

–

–Q

–!

–Q Q

‡

Q

‡

Q

Q

Q



Q



Frecuencia (rad/s)

En esta representación podemos apreciar que el ancho de banda está limitado por una frecuencia aproximada de 1.43 rad/seg. Ahora, asumiremos una frecuencia menor para la primera simulación tal como 0.3 rad/ seg. y la presentamos en el dominio del tiempo junto con una frecuencia mayor igual a 3 rad/seg.:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 75

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Gráfico 3.8. Simulación del sistema de lazo cerrado

= '"®Q5! ¯ 7£

Resultados de la Simulación  55 1 Q55 0 žQ55 ž ž55 ž 50

55

60

65

70

75

80

85

90

95

100

55

99

55

100

Tiempo en segundos (seconds) Resultados de la Simulación = '"®! ¯ 7£

 55 1 Q55 0 žQ55 ž ž55 ž 95

55

96

55

97

55

98

Tiempo en segundos (seconds)

$ 7 ƒ+%  ' & "&"    %   ' " %*  H   '&   ™  mayores al ancho de banda de frecuencia.

3.1.4 Performance de lazo cerrado: Antes de estar en capacidad de predecir el comportamiento de un sistema de lazo cerrado a partir de un sistema de lazo abierto debemos aclarar una serie de conceptos. 1.

El sistema debe ser estable en lazo abierto si es que vamos a diseñar un compensador o controlador a partir de los diagramas de Bode.

2.

Si la frecuencia de corte de la ganancia es menor que la frecuencia corte de la fase, entonces el sistema de lazo cerrado será estable.

3.

Para los sistemas de segundo orden, el factor de amortiguamiento de lazo cerrado es aproximadamente igual al margen de fase dividido entre 100 si es que este último está entre los 0 y los 60°. Si el margen de fase es mayor que los 60°, podemos usar este concepto con mucha precaución.

4.

Para los sistemas de segundo orden, la relación entre el factor de amortiguamiento, frecuencia de ancho de banda y el tiempo de establecimiento está descrita por las ecuaciones indicadas en la parte de frecuencia de ancho de banda.

76

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

5.

Una aproximación burda se tiene en asumir a la frecuencia del ancho de banda como a la frecuencia natural no amortiguada.

6.

El tiempo de levantamiento es aproximadamente igual a 1.8 entre la frecuencia natural no amortiguada.

7.

El error de estado estable se puede determinar mediante la fórmula:

error =

1 100% 1+ Magnitud

donde: 10 (K (dB) /20) = Magnitud cuando la frecuencia es 0 rad/seg.

3.2 Controladores o compensadores de adelanto o atraso de fase El Controlador PID y sus componente en la forma de controladores PD y PI, representan formas simples de controladores que emplean operaciones de derivación e integración en la compensación de sistemas de control. Generalizando, el diseño de los controladores en ingeniería de %&' &  "   %&" &#    ™& + ' &  %"  •' "7 Y & de esquemas posibles.    "'&  '  + ' &W %&' & &  "+ ' &  = ' W  "   Bajos y el PID es un Pasa-Banda. = + ' &   '    & %&&%&  & &%&' & &    '& H  * ‰"  se introduce una fase positiva al sistema en algún intervalo de frecuencia. $ + ' &  # /& ' #Œ%&&%&%&&%&  & &%&' & &   ' & H  W*  que la fase correspondiente introducida es negativa. $'   %&  %& + ' &*%&

 '& H  &Y'  & ™&  ;  en el dominio de la frecuencia. Los compensadores de adelanto y de atraso de fase son muy utilizados en control. Un compensador de adelanto de fase puede incrementar la estabilidad o la velocidad de respuesta de un sistema. Un compensador de atraso de fase puede reducir, pero no eliminar, el error de estado estacionario. Dependiendo de cual sea el efecto deseado, uno o más compensadores de adelanto y atraso podrían ser utilizados en múltiples combinaciones. Compensadores de adelanto, atraso y adelanto-atraso son normalmente diseñados para sistemas cuyo modelo matemático es una función de transferencia.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 77

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

3.2.1 Compensador de adelanto de fase: Tiene la siguiente forma: G(s) =

1 + α Ts donde α > 1 1 + Ts

Nótese que esta forma es equivalente a la forma general: Gc ( s ) = K c

s − z0 s − p0

donde p0 = −

1 , 1, z0 = − y Kc = α . αT T

Gain dB

Gráfico 3.9. Diagrama de Bode del Compensador de adelanto de fase

0

1/αT

1/T

Frequency (rad/sec)

Phase deg

90

0

En el diseño en frecuencia, el Compensador de adelanto de fase agrega fase positiva al sistema en el rango de frecuencia comprendido entre 1/αT y 1/T. Un diagrama de Bode del >&  &    '& H     %   +7"  ' & 5 Las dos frecuencias de esquina son 1/αT, como la frecuencia baja, y 1/T como la frecuencia ' 5$'ƒ% &  7 ƒ+%  ' & ‰"  H  &'  & 7 7   '  ' & frecuencias. Dependiendo del valor de α, la máxima fase por ser agregada puede ser hasta

78

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

90°, si se necesitaran más de 90° se pueden incluir más compensadores de adelanto. La máxima fase será agregada a la frecuencia central, la cual está ubicada en la media geométrica de las frecuencias esquina en:

ωc =

1 T α

y la ecuación que determina la máxima fase es: sinϕ =

α −1 α +1

Agregar fase positiva al sistema incrementa el margen de fase y este aumenta la estabilidad. Este tipo de controlador o compensador se diseña determinando α desde el requerimiento de fase necesario para satisfacer el margen de fase, y determinando T para ubicar la fase agregada en la nueva ganancia de frecuencia de corte. K' & H %'& %&  &    '& "     +7"   7'"W&   compensador eleva la ganancia del sistema a altas frecuencias en cantidad igual a α. Esto puede hacer crecer a la frecuencia de corte, la cual ayudará a disminuir el tiempo pico y el tiempo de establecimiento del sistema.

3.2.2 Compensador de atraso de fase: Un compensador de atraso de fase tiene la siguiente forma:

G (s ) =

1 ⎛ 1 + α Ts ⎞ ⎜ ⎟ , donde α < 1 α ⎝ 1 + Ts ⎠

Este compensador de atraso de fase es similar al de adelanto, excepto que ahora α es menor que 1. La principal diferencia radica en que el compensador de atraso agrega fase ne7 '   '   &#   7&   H %" %   %+% &W  '  ‰"      '& agrega fase positiva. Su diagrama de Bode es:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 79

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Gain dB

Gráfico 3.10. Diagrama de Bode del compensador de atraso de fase

0

1/T

1/αT

Frequency (rad/sec)

Phase deg

0

–90

Las dos frecuencias de esquina son 1/T, como la frecuencia baja, y 1/αT como la frecuencia alta. El efecto principal del compensador de atraso de fase está en agregar ganancia a las frecuencias bajas en una magnitud igual a α. El efecto de esta ganancia origina que el error de estado estable en lazo cerrado del mismo sistema disminuya en un factor de α. Debido a que la ganancia de las frecuencias medias y altas es la unidad, la respuesta transitoria y la estabilidad no son prácticamente alteradas.

3.2.3 Compensador de adelanto-atraso de fase: Un compensador de adelanto-atraso combina los efectos de un compensador de adelanto con los de un compensador de atraso. El resultado es un sistema con adecuada respuesta transitoria, estabilidad y error de estado estacionario. Para diseñar un compensador de adelanto-atraso, primero se diseña el compensador de adelanto de fase para conseguir la estabilidad y la respuesta en el transitorio deseada, y posteriormente se agrega el compensador de atraso de fase para alcanzar un adecuado estado estable.

80

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Ejemplo E.3.3: Usamos el siguiente esquema para diseñar un controlador:

donde Gc(s) es el controlador y G(s) es la planta.

donde las constantes son: m = 1000 b = 50 U(s) = 10 Y(s) = Velocidad del carro Para el diseño se plantean los siguientes requerimientos: a.

Error de estado estacionario menor del 2%

b.

El sobreimpulso máximo debe ser menor al 10%

c.

El tiempo de levantamiento debe ser menor de 5 segundos

Solución: $•' &H&    &  '  &#  W 7 ƒ+% *  ' ƒ'% 5³ & "' zar al Matlab para resolverlo de la primera manera. Para este sistema solamente es necesario resolver un controlador proporcional, así que la función de transferencia de lazo abierto sería:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 81

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Primero debemos simular su respuesta a una entrada escalón para ver si el sistema en lazo abierto es estable, para lo cual asumimos Kp = 1. M = 1000;b = 50;Kp = 1; num = [ Kp ]; den = [ M b ]; sys = tf(num,den) step(sys)

Respuesta al Escalón 0.02 0.018 0.016 0.014

Amplitud

0.012 0.01 0.008 0.006 0.004 0.002 0 0

20

40

60

80

100

Tiempo (seconds)

Adicionalmente presentamos los diagramas de Bode del sistema de lazo abierto:  bode(sys)

82

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

120

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Diagrama de Bode ž!Q

ž!

Magnitud (dB)

žQ

ž

žQ

ž

žQ

Fase (deg)

Q

ž 

ž Q Q

ž!

Q

ž2

Q

ž1

Q

Frecuencia (rad/s)

cuya función de transferencia es: Transfer function: 1 ----------------------1000 s + 50 $•' & '&& &  '&    7'"W H   * H %" %     +7"     7" '  manera: % Extraemos los vectores de Magnitud, Fase y Frecuencia para más frecuencias que las primeras. [m,p,w]=bode(sys,[0:0.1:100]); % Adecuamos los vectores. ma(1,1:1001) = m(1,1,:); clear m m = ma’; clear ma mdB = 20*log10(m); ph(1,1:1001) = p(1,1,:); clear p p = ph’; clear ph

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 83

www.full-ebook.com

Q

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

´ # &%&+  &  ' #    ' '  ® "  "' ;  %& &µ gin’) y pudiendo observar sus diagramas de Bode, ahora sí vamos a diseñar su Controlador Proporcional. a.

Controlador Proporcional:

Para nuestro sistema la ganancia de baja frecuencia (0 rad/seg) K(dB) es aproximadamente -34 dB, para ello 10(–34/20) = 0.02 , entonces:

X&%&+  &" &  " '   %   ;&%

& Respuesta al Escalón 0.02

0.018

0.016

Amplitud

0.014

0.012

0.01

0.008

0.006

0.004

0.002

0

0

20

40

60

80

100

120

Tiempo (seconds)

$ +7"  %& 7"&  '  &7" '  & numlc = num; denlc = [den]+[0 num]; syslc = tf(numlc,denlc) ! step(syslc) Si nosotros aumentamos la ganancia, el ancho de banda y la ganancia de baja frecuencia aumentarán, y con ellos el tiempo pico y el error de estado estacionario mejorarán. Asumimos aleatoriamente un nuevo igual a 100 y presentamos sus diagramas de Bode:

84

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Kp = 100;numo = [ Kp ]; deno = [ M b ]; syso = tf(numo,deno) " bode(syso)

Transfer function: 100 ---------------------1000 s + 50 Diagrama de Bode Q

Magnitud (dB)



Q

ž

žQ

ž

žQ

Fase (deg)

Q

ž 

ž Q Q

ž3

Q

ž

Q

ž

Q

Frecuencia (rad/s)

Ahora, podemos apreciar que la Ganancia de Baja Frecuencia está aproximadamente en W  % W  % & H "  ' & W"  7'" 5!·W &‰"  predice un error de estado estable de 33.3861%. La Frecuencia del ancho de banda es de 0.1 rad/seg. aproximadamente, la cual establece un tiempo de levantamiento (tr) de 18 segundos aproximadamente. Nuevamente volvemos a plotear la respuesta al escalón, pero de amplitud 10 en lazo cerrado y tenemos: t = 0:0.01:20; u = 10*ones(size(t)); sysc = feedback(syso,1) # lsim(sysc,u,t)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 85

www.full-ebook.com

Q

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Resultados de Simulación Lineal 7

6

Amplitud

5

4

3

2

1

0

0

2

4

6

8

10

12

14

16

18

20

Tiempo (seconds)

Tal como se había predicho, el tiempo pico y el error de estado estacionario mejoraron. Vamos a seguir aumentado la ganancia del controlador proporcional para ver qué sucede: Kp = 2500;numo = [ Kp ];deno = [ M b ]; syso = tf(numo,deno) $ w=0.01:0.01:10; bode(syso)

86

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Diagrama de Bode 35

Magnitud (dB)

30

25

20

15

10

5

Fase (deg)

0

ž 45

ž 90 ž!

10

10

ž2

10

ž1

10

0

Frecuencia (rad/s)

En el diagrama vemos que la ganancia de baja frecuencia ha aumentado a 34 dB aproximadamente, es decir, una magnitud de 50.12 lo cual predice un error de estado estable de 1.96 % y la frecuencia de ancho de banda, que está alrededor de los 3.53 rad/seg. predice un tiempo de levantamiento de 0.5099 segundos. Si simulamos la respuesta en lazo cerrado vemos: t = 0:0.01:3; u = 10*ones(size(t)); sysc = feedback(syso,1) & lsim(sysc,u,t)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 87

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Resultados de Simulación Lineal 10

9

8

Amplitud

7

6

5

4

3

2

1

0 0

0.5

1

1.5

2

2.5

3

Tiempo (seconds)

  '   ‰"  &+% & '   %  %"  '&  & ‰"'& teados originalmente.   %&+  &  %'    %  '  & 7   & *" ƒ  H cuencia, con la respuesta en el transitorio del tiempo. b.

Controlador en atraso de fase:

Una de las características que vamos a utilizar del Compensador de atraso de fase es la de agregar ganancia a las frecuencias bajas mientras se mantiene la frecuencia de ancho de banda en la misma ubicación. Eso es exactamente lo que nosotros buscamos, agrandar la ganancia de baja frecuencia sin variar la frecuencia de ancho de banda para así mantener el mismo tiempo pico. Recordemos que la función de transferencia del Compensador de atraso de fase es: para a < 1

Viendo las fórmulas planteadas en la parte correspondiente a los controladores o compensadores de atraso de fase, determinamos que el error de estado estable decrece con a, mientras que el valor de T debiera ser escogido de tal manera que las dos frecuencias esquina no se ubiquen muy cerca ya que perjudicaría a la respuesta en el transitorio. Para comenzar asumiremos a a igual a 0.05 y a T igual a 700 para ver que ocurre. Simularemos en orden, primero veremos los diagramas de Bode de la Planta:

88

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

M = 1000; b = 50; Kp = 600; t = 0:0.01:20; u = 10*ones(size(t)); numo = [ Kp ]; deno = [ M b ]; syso = tf(numo,deno) bode(syso); title(‘Bode de la Planta’)

Bode de la Planta 

Magnitud (dB)

20



10

 0

ž

Fase (deg)

0

ž 

ž 90

10

ž3

10

ž2

10

ž1

10

0

Frecuencia (rad/s)

Luego veremos los del Compensador de atraso de fase: a = 0.05; T = 700; numatr = [a*T 1]; denatr = a*[T 1]; sysatr = tf(numatr,denatr)  bode(sysatr); title(‘Bode del Compensador de Atraso’)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 89

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Bode del Compensador de Atraso 30

Magnitud (dB)

25

20

15

10

5

Fase (deg)

0 0

ž 30

ž 60

ž 90 ž

10

10

ž3

ž2

10

ž1

10

10

Frecuencia (rad/s)

para terminar viendo los diagramas de Bode del nuevo sistema de lazo abierto compuesto por la dos sistemas en serie, el compensador y la planta: syson = series(syso,sysatr); ' bode(syson) title(‘Bode del Nuevo Sistema Compensador*Planta’)

90

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

0

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Bode del nuevo sistema compensador*planta Q

Magnitud (dB)

Q

!Q

Q

Q

Q žQ

Fase (deg)

Q

ž 45

ž Q

Q

ž5

Q

ž4

Q

ž3

Q

ž2

Q

ž

Q

Frecuencia (rad/s)

La intención original se ha cumplido. La ganancia de baja frecuencia se ha conseguido aumentar mientras que la frecuencia del ancho de banda se mantiene. Esto quiere decir que el error de estado estacionario debe reducirse y el tiempo pico debe ser el mismo.  &' & &'  W & 7 * " &W  ;&%

& %&+   '  + mación. % Simulando los dos sistemas en lazo cerrado. sysc = feedback(syso,1); syscn = feedback(syson,1); ! lsim(sysc,’b’,syscn,’k’,u,t) title(‘Simulación del Transitorio’)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 91

www.full-ebook.com

Q

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Simulación del transitorio 10

9

Planta + Compensador Planta Original

8

Amplitud

7

6

5

4

3

2

1

0 0

2

4

6

8

10

12

14

16

18

20

Tiempo (seconds)

No se puede apreciar, pero el error de estado estacionario está muy cercano a las 10 unida W"%&ƒ  &‰" +7"   +7"  ' & 5 & '&    ' &  asentamiento es demasiado grande. Para arreglar esto, elevemos la ganancia proporcional a 1500, la cual ha sido probada con anterioridad y veremos qué sucede con los diagramas de Bode y con la simulación en el transitorio de lazo cerrado. Bode del Nuevo Sistema Compensador*Planta 60

Magnitud (dB)

50

40

30

20

10

0

Fase (deg)

0

ž 45

ž 90 ž

10

ž4

10

10

ž3

ž2

10

Frecuencia (rad/s) 92

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

ž1

10

0

10

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

  ' +7" W& & •' ‰"  7  %  # / H %" %    &•   '   55.56 dB, es decir de una magnitud de 599.7911 lo que hace un error de estado estacionario igual a 0.1664 %, mientras que la frecuencia de ancho de banda es de 2.2948 rad/seg. entregando un tiempo de levantamiento semejante a 0.7844 segundos. Simulación del Transitorio 10 9

Planta + Compensador 8

Planta Original Tiende a 10 Unidades

Amplitud

7 6 5 4 3 2 1 0 0

2

4

6

8

10

12

14

16

18

20

Tiempo (seconds)

Otro tipo de Solución: Otro tipo de solución de los problemas de diseño en frecuencia esta dado por el siguiente ejemplo.

Ejemplo E.3.4: Consideremos al siguiente sistema:

para el cual se desea diseñar un controlador tal que el sistema en lazo cerrado satisfaga las siguientes condiciones: Constante de error de velocidad estática = Kv = 20 rad/seg. Margen de fase = 50° J 7  7  % ¸Q5 Se diseñará un compensador de adelanto de fase Gc(s) de la forma:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 93

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

'  & %" '  7" '  +%

donde K = Kc> Solución: Primero debemos ajustar la ganancia K   %&'    %+% %   %&& ' miento de estado estacionario o proporcionar la constante de error de velocidad estática requerida. Como la constante de error Kv viene dada como 20 rad/seg, se tiene:

K = 10 Con K = 10, el sistema compensado con el requisito de estado estacionario. A continuación representaremos el Diagrama de Bode de:

con ayuda del Matlab: K = 10; num = [0 0 4*K]; den = [1 2 0]; G1 = tf(num,den) margin(G1) title(‘Bode de G1(s)’)

94

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Diagrama de Bode Gm = Inf dB (a Inf rad/s) , Pm = 18 deg (a 6.17 rad/s)

Magnitud (dB)

Q

Q

žQ

Fase (deg)

ž Q

ž!

ž Q

Q

ž1

Q

Q

Q

1

Q

Frecuencia (rad/s)

$ +7"   % &‰"   7  H    ²*‰"   7  7  %    ¹º5 Como el requerimiento es de un margen de Fase de 50°, es necesario aplicar un adelanto de fase de 32°, para ello vamos a aplicar un controlador de adelanto de fase. @  & %" ' ‰"   % "%&  &    '&&+%  %"   magnitud en el diagrama de Bode, observamos que la frecuencia de la ganancia de cruce se desplazará hacia la derecha. Debido a ello adicionaremos unos 6° para compensar el desplazamiento en cuestión, asumiendo que el máximo adelanto de fase requerido será de 38°. Como ϕm ­!² '&% »­Q5!5³      % ‰" »­Q5%&

&  " ϕm = 37.8°, así que seleccionamos este último dado que no hay mucha diferencia. Una vez determinada la atenuación de adelanto de fase a partir de >el siguiente paso es determinar las frecuencias esquinas ωl = 1/T y ωh = 1/αT del compensador de adelanto. Obsérvese que el máximo ángulo de adelanto de fase ϕm ocurre en la media geométrica de las dos frecuencias esquinas.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 95

www.full-ebook.com

2

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

X % '   &+% %  %"   7'" 

debido a la inclusión

es:

del término

Observamos que:

Si lo agregamos a nuestro archivo-M, debemos colocar: phi = 37.8*pi/180; a = (1-sin(phi))/(1+sin(phi)) MagGc = 1/sqrt(a) MagGc = 20*log10(MagGc) Ahora, necesitamos encontrar el punto de frecuencia donde, al añadir el controlador de adelanto, la magnitud sea de 0 dB. ´ %Œ& ;&&  +7"   7   &   ' & ' &  ' W  % & que la magnitud de –6.2 dB de G1(s) se alcanza en ?@9 rad/seg. Otra forma de determinar la frecuencia de corte ?, es interpolando los valores de magnitud y frecuencia para el valor de –6.2 dB en unidades de magnitud. Ello lo conseguimos de la siguiente manera: MagGc = -MagGc; [Mi,Pi,W] = bode(G1); M(:,1) = Mi(1,1,:); P(:,1) = Pi(1,1,:); MagGcc = 10^(MagGc/20); wc = interp1(M,W,MagGcc) Aplicando la fórmula de la frecuencia de corte tenemos:

96

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Por lo tanto:

Así, el compensador o controlador de adelanto de fase determinado es:

donde:

Por lo tanto:

Ahora simularemos con ayuda del Matlab, al compensador de adelanto: % Determinando T T = 1/(wc*sqrt(a)) % Calculando las frecuencias de esquina fa = 1/(a*T)

% Frecuencia Alta

@\`

{ 

| }

Kc = K/a  @~  €   @~  Gc = tf(numgc,dengc)  bode(Gc)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 97

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Diagrama de Bode 34

Magnitud (dB)

32 30 28 26 24 22 20 40

Fase (deg)

30

20

10

0 ž

0

10

1

10

10

2

10

3

10

Frecuencia (rad/s)

 + ; %&  ™&W    ‰" %&'" &%& " %& W &' & los Diagramas de Bode del sistema de lazo abierto con compensador. % Retiramos el K = 10 num = [0 0 4]; G = tf(num,den); Gla = series(Gc,G) ' margin(Gla)

98

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Diagrama de Bode ¬­H® 'H ¯£W­Q5 7® '5 ¯£ Q

Magnitud (dB)

Q Q

Q žQ žQ žQ žQ

Fase (deg)

ž Q

ž 135

ž Q ž1 Q

Q

Q

Q

1

Q



Q

3

Frecuencia (rad/s)

A continuación compararemos las simulaciones ante un escalón unitario del sistema. Primero sin compensador, es decir, el sistema original, y luego con el compensador de adelanto: % Cerrando el lazo y simulando Golc = feedback(G,1); Glc = feedback(Gla,1); t = 0:0.01:6; [sal,T1] = step(Golc,t); [sallc,T2] = step(Glc,t); ! plot(T1,sal,’r’,T2,sallc,’b’) legend(‘Original’,’Compensado’) title(‘Simulación del Sistema’)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 99

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Simulación del Sistema 1. 4 Original Compensado 1. 2

1

0. 8

0. 6

0. 4

0. 2

0 0

1

2

3

4

5

6

Ejemplo E.3.5: Método de diseño de respuesta de frecuencia para el controlador de cabeceo de un avión.  %& ; W +& % # % &%&& &  '& 7"   

 &   un eje imaginario que corre de un extremo del ala hasta el extremo de la otra. Del mismo &&W # &%&   +% ƒ7" &  ' ‰" %&& ƒ7" &‰" H&  

%"  7 &Œ' %  " +  %&  &%    % ' W '&& %  la dirección de movimiento, sino la actitud de vuelo o posición correcta durante el vuelo de una aeronave. Asimismo, debemos determinar el modelo matemático del avión en cuestión, sabiendo por información de los expertos, que las ecuaciones que rigen el comportamiento de un avión con un complicado conjunto de seis ecuaciones diferenciales nolineales. Sin embargo, luego de ciertas consideraciones, ellas pueden ser independizadas y linealizadas a modo de ecuaciones que representen el movimiento longitudinal y lateral. El control del ángulo de ataque en un problema longitudinal, y en este ejemplo, vamos a diseñar un autopiloto que lo controle. Los ejes de las coordenadas básicas y las fuerzas actuantes son mostradas:

100

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Asumiremos que el avión está en una etapa de crucero, a velocidad y altitud constante; así, el empuje y la fuerza de resistencia del aire se anulan, y la sustentación con el peso también. Del mismo modo, asumimos que el cambio en el ángulo del cabeceo no variará la &%   # /&7" % %"' % W'" %&"*  &‰"  +ca el problema. Bajo estas suposiciones, las ecuaciones longitudinales de movimiento del avión pueden ser escritas como:

Donde:

α = Ángulo de Ataque q = Razón de cambio del cabeceo α

θ = Ángulo de cabeceo δ = ½7" &  + •  &

ρ = Densidad del aire S = ½ " +%   = Longitud promedio de la cuerda m = Masa del Avión

U = Equilibrio de la velocidad de vuelo CR =>& +% '   Ÿ ' % CS =>& +% '  "' ' % CP =>& +% '   &

γ = Ángulo del Sendero de vuelo = Constante Sigma i = Momento de Inercia normalizado = Constante Nu   ' '  W  '    ƒ7" &  + •  & *     ƒ7" & del cabeceo. A continuación, debemos establecer algunos criterios para el diseño. Deseamos diseñar un controlador realimentado tal que la salida tenga un sobreimpulso menor al 10%, que el tiempo de levantamiento sea menor a los 2 segundos y un tiempo de establecimiento de 10 segundos para una tolerancia del error de estado estacionario menor al 2%.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 101

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Por ejemplo, si la entrada es de 0.2 radianes (11°), entonces el ángulo del cabeceo no deberá exceder a los 0.22 radianes, alcanzando los 0.2 rad. antes de los 2 segundos y se estabilizará dentro del 2% de la entrada en menos de 10 segundos permaneciendo con valores dentro del rango de 0.196 a 0.204 radianes. Dadas las ecuaciones que rigen al sistema y las condiciones para el diseño, determinamos

H"% ' H %   % & & &   %&' ' W%& +    +%  & &5

Los valores aplicados han sido tomados de un avión comercial de la empresa Boeing. Aplicaremos la Transformada de Laplace a las ecuaciones del modelo anteriores, asumiendo condiciones iniciales iguales a cero:

Después de la operación algebraica correspondiente, llegamos a la siguiente expresión:

Donde: θ = Ángulo de cabeceo

δ = ½7" &  + •  & Tal como se había comentado anteriormente, el método de diseño de respuesta en frecuencia es más efectivo para sistemas de lazo abierto estables. Para chequear esta estabilidad, emplearemos el Matlab: del = 0.2; num = [1.151 0.1774]; den = [1 0.739 0.921 0]; roots(den) cab = tf(num,den); step(del*cab) title(‘Respuesta de Lazo Abierto’) xlabel(‘Tiempo (seg.)’) ylabel(‘Ángulo de Cabeceo (rad.)’) axis([0 15 0 1]) grid

102

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Respuesta de lazo abierto 1 0.9

Ángulo de Cabeceo (rad.)

0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0

5

10

15

Tiempo (seg.) (seconds)

Desafortunadamente, nuestro sistema tiene un polo en cero y esto lo convierte en inestable en lazo abierto; de todos modos, nosotros continuaremos diseñando el sistema de lazo cerrado mediante el método de respuesta de frecuencia, aunque este no sea el más fácil para este caso. Primero, generemos los diagramas de Bode del sistema de lazo abierto para ver a qué se parecen. Así que nuevamente regresamos al Matlab:  grid margin(cab) grid

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 103

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Diagrama de Bode ¬­H® 'H ¯£W­5 7® '5 ¯£ Q

Magnitud (dB)

Q

Q žQ

žQ

žQ

žQ

Q

Fase (deg)

ž 

ž Q

ž 135

ž Q ž

Q

Q

ž1

Q

Q

Q

1

Q



Frecuencia (rad/s)

Con los datos planteados en los requerimientos de diseño, debemos calcular el margen de fase y el ancho de banda. Nos apoyaremos en las siguientes fórmulas:

% De los requerimientos, tenemos los datos deseados: trd = 2; Mpd = 0.1; BWd = 1.8/trd zd = sqrt((log(Mpd))^2/(pi^2+(log(Mpd))^2)) Pmd = zd*100 De la primera fórmula, despejaremos el ancho de banda (BW) ya que tenemos el tiempo de levantamiento, lo cual nos entrega un BW mayor o igual a 0.9 rad/seg. Del mismo modo, de

104

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

la segunda, obtenemos el factor de amortiguamiento mayor o igual a 0.59 y de la tercera, un margen de fase deseado mayor o igual a 59°. Actualmente, tenemos un ancho de banda de 1.5 rad/seg. y un margen de fase de 48°, calculados de la siguiente manera: % Determinando el Ancho de Banda [Mi,P,W] = bode(cab); M(:,1) = Mi(1,1,:); P(:,1) = Pi(1,1,:); MagLog = 20*log10(M); BW = round(10*interp1(MagLog,W,-3))/10 % Determinando el Margen de Fase Pmf = interp1(MagLog,W,0); Pm = round((interp1(W,P,Pmf)-(-180))) A continuación, vamos a plotear el mismo sistema original en lazo cerrado para ver cómo se comporta: % Ploteando al sistema de lazo cerrado cabcl = feedback(cab,1); ' step(del*cabcl) title(‘Respuesta de Lazo Abierto’) xlabel(‘Tiempo (seg.)’) ylabel(‘Ángulo de Cabeceo (rad.)’) grid

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 105

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Respuesta de Lazo Abierto 0. 2

0.18

0.16

Ángulo de Cabeceo (rad.)

0.14

0.12

0. 1

0.08

0.06

0.04

0.02

0 0

10

20

30

40

50

60

70

Tiempo (seg.) (seconds)

Como se puede apreciar, la respuesta transitoria es mala y existe un gran tiempo de asentamiento. Para corregir este problema, vamos a diseñar un compensador de adelanto de fase. Este compensador responde a la siguiente función de transferencia:

Debemos determinar los valores de las constantes del compensador para poder incorporarlo en el sistema, empleando, para este caso, las siguientes fórmulas:

Lo cual nos entrega un α mayor o igual que 1.48, para un ‚ mayor o igual a 11.12°. Posteriormente, vamos a calcular el valor de T, usando la expresión:

Donde:

106

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Resultando, T & &7" ‰" Q55>& #& '&%&+7" & H"% ' H rencia del compensador de adelanto, asumiendo un K = 8, con estos datos lo simularemos: % Compensador de Adelanto de Fase phi = Pmd - Pm + 10 phi = phi*pi/180; a = (1+sin(phi))/(1-sin(phi)) wmi = -10*log10(a); wm = interp1(MagLog,W,wmi) T = 1/(wm*sqrt(a)) K = 8; numcad = [K*a*T K]; dencad = [T 1]; Gcad = tf(numcad,dencad); ! margin(Gcad)

Diagrama de Bode Gm = Inf , Pm = Inf 25

Magnitud (dB)

24 23 22 21 20 19 18 25

Fase (deg)

20

15

10

5

0

10

ž

10

0

10

1

10

2

Frecuencia (rad/s)

Este compensador lo integramos al sistema de presentando sus diagramas de Bode de Lazo Abierto:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 107

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

% Sistema + Compensador lazo abierto Gcla = series(Gcad,cab); " margin(Gcla)

Diagrama de Bode ¬­H® 'H ¯£W­5 7® '5! ¯£ Q

Magnitud (dB)

Q

Q

Q

Q žQ

žQ

žQ

Q

Fase (deg)

ž 

ž Q

ž 135

ž Q

Q

ž3

Q

ž

ž1

Q

Q

Q

1

Q

Q



Frecuencia (rad/s)

Para terminar, calculamos el nuevo ancho de banda y ploteamos los diagramas de Bode para el sistema de lazo cerrado así como su respuesta al escalón. % Determinando el Ancho de Banda clear Mi M Pi W [Mi,Pi,W] = bode(Gcla); M(:,1) = Mi(1,1,:); MagLog = 20*log10(M); BWla = round(10*interp1(MagLog,W,-3))/10 % Sistema + Compensador lazo cerrado Gclc = feedback(Gcla,1) #

108

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

margin(Gclc) grid $ step(del*Gclc) grid Diagrama de Bode ¬­H® 'H ¯£W­!5 7® '5Q ¯£ Q

Magnitud (dB)

Q žQ

žQ

ž!Q

žQ

žQ

žQ

Q

Fase (deg)

ž 

ž Q

ž !

ž Q Q

ž

ž

Q

Q

Q

Q



Q



Frecuencia (rad/s)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 109

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Respuesta al Escalón 0.35

0. 3

Amplitud

0.25

0. 2

0.15

0. 1

0.05

0 0

5

10

15

20

25

Tiempo (seconds)

Sin embargo, podemos apreciar que a pesar de que el ancho de banda y el margen de fase hayan crecido, la respuesta todavía no satisface a los requerimientos de diseño. Por este &' &W &   /  & & ‰" &+‰"   7  H    &* 7  cia del compensador. En otras palabras, agregamos la tolerancia a ‚ de 69° y una ganancia K de 14, con estos valores encontramos el siguiente compensador de adelanto:

pause phif = Pmd - Pm + 69 phif = phif*pi/180; af = (1+sin(phif))/(1-sin(phif)) wmif = -10*log10(af); wmf = interp1(MagLog,W,wmif) Tf = 1/(wmf*sqrt(af)) Kf = 14; numcadf = [Kf*af*Tf Kf]; dencadf = [Tf 1]; Gcadf = tf(numcadf,dencadf)

110

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Este compensador nos provee de la respuesta transitoria deseada. Para ver sus diagramas de Bode y los diagramas de Bode con el sistema en lazo abierto, agregamos las siguientes líneas a nuestro archivo previo. & margin(Gcadf) „  †‡    ˆ   Gclaf = series(Gcadf,cab); ‰ margin(Gclaf)

Diagrama de Bode Gm = Inf , Pm = Inf 70 65

Magnitud (dB)

60 55 50 45 40 35 30 25 20

Fase (deg)

90

45

0 ž

10

10

ž1

0

10

10

1

10

2

10

3

10

Frecuencia (rad/s)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 111

www.full-ebook.com

4

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Diagrama de Bode ¬­H® 'H ¯£W­5 7® '5 ¯£ QQ Q

Magnitud (dB)

Q Q Q

Q žQ žQ žQ žQ žQQ

Q

Fase (deg)

ž

žQ

ž!

žQ ž3

Q

Q

ž

Q

ž

Q

Q

Q



Q



3

Q



Q

Frecuencia (rad/s)

Si comparamos el Diagrama de Bode actual con respecto al original, se puede ver que el ancho de banda y el margen de fase se han incrementado. Al incrementar ambos, mejoramos el tiempo de levantamiento, el sobreimpulso y el tiempo de asentamiento, tal como se puede ver en la respuesta al escalón del sistema con compensador. % Determinando el Ancho de Banda clear Mif Mf Pif Wf [Mif,Pif,Wf] = bode(Gclaf); Mf(:,1) = Mif(1,1,:); MagLogf = 20*log10(Mf); BWlaf = round(10*interp1(MagLogf,Wf,-3))/10 „  †‡    ˆ   Gclcf = feedback(Gclaf,1) Š step(del*Gclcf) grid

112

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

Respuesta al escalón 0.25

Amplitud

0.2

0.15

0.1

0.05

0 0

0.5

1

1.5

2

2.5

Tiempo (seconds)

Ahora, para mejorar el error de estado estacionario, le agregaremos un compensador de atraso al sistema. La función de transferencia típica de primer orden de un compensador de atraso es:

El error de estado estacionario será reducido en proporción al > correspondiente del com  &   ' &5  +7"    " '   %  ' & W  % &‰"  

&  de estado estacionario es de 10% aproximadamente, esto quiere decir que necesitaremos un > de 0.1 aproximadamente. Del mismo modo, el T correspondiente a este compensador, debe ser mayor a >`& ‰"  ' %&  & & # &+% "' %  '   puesta en el transitorio. Después de varias pruebas, un > de 0.1, un T de 20 y un K 5Q '+% &  ‰" miento de la respuesta deseada, a través de su función de transferencia:

   & " ' &W&+% &" ' & &7  W 7 7 & 7" '  Š  Kat = 1; Tat = 20; aat = 0.1; at = aat*Tat;

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 113

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

numat = Kat/aat*[at 1]; denat = [Tat 1]; Gcat = tf(numat,denat)  margin(Gcat)

Diagrama de Bode Gm = Inf , Pm = –180 deg (at Inf rad/s) 20

Magnitud (dB)

15

10

5

0

Fase (deg)

0

ž !Q

ž 60 ž!

10

10

ž2

10

ž1

10

0

10

1

Frecuencia (rad/s)

Ahora, incorporamos este compensador al sistema observamos sus diagramas de Bode de lazo abierto y la respuesta al escalón de lazo cerrado: ‹  @ ‹ ‹  ‹  @ ‹    ‹  @  Œ‹    grid   ‹   grid '

114

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“!‘=[Ž}\`\`j^`\`”^˜k`j^{“[”_“}^[^}“˜\[\“j^}k_^{x^[{\k

 €‹   grid % Determinando el Ancho de Banda ~ Ž ‘@ ‹   Mff(:,1) = Miff(1,1,:); MagLogff = 20*log10(Mff); BWlaff = round(10*interp1(MagLogff,Wff,-3))/10

Diagrama de Bode ¬­H® 'H ¯£W­Q5 7® '5 ¯£

Magnitud (dB)

QQ

Q

Q

žQ

žQQ

Fase (deg)

ž 

ž Q

ž !

ž Q Q

ž3

Q

ž2

Q

ž

Q

Q

Q



Q

2

Q

3

Q

4

Frecuencia (rad/s)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 115

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Respuesta al Escalón 0.25

Amplitud

0.2

0.15

0.1

0.05

0 0

1

2

3

4

5

6

7

8

9

10

Tiempo (seconds)

Si vemos el Diagrama de Bode, la ganancia de baja frecuencia ha sido incrementada mientras mantenemos un igual ancho de banda (17.6 rad/seg.). Esto nos dice que el error de es' & ' %& &   "%&* ' &  '  '&   ' &5X +7"  anterior de la respuesta al escalón, nos enseña un error de estado estacionario aceptable. En este momento podemos decir que los requerimientos han sido cumplidos.

116

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Capítulo 4: Modelamiento matemático en espacio de estados

El diseño de un sistema de control requiere un delicado balance entre limitaciones fundamentales y soluciones de compromiso. Para lograr este balance, es necesario tener una comprensión completa del proceso en cuestión. Esta comprensión usualmente se captura en un modelo matemático. Teniendo un modelo es posible predecir el impacto de distintos diseños posibles sin comprometer al sistema real. El modelamiento matemático no es una tarea sencilla ya que la mayoría de veces en los sistemas comunes se presentan complejas características no lineales y a su vez, son afectados por pertur# %&   %# W '&  &"*+Š%  & 5>&H&    ‰"  *&  %  & &W  %" %& * & &% & %  &   '+% % '   se vuelve más complejo. Existe toda una serie de alternativas para conseguir modelos matemáticos que representen el comportamiento de un sistema dado. Los más sencillos se basan en funciones de transferencia y ecuaciones de estado. Estos pueden complicarse a través de modelos con ecuaciones no lineales &% ' 5% " "    '  % &%&& &‰" "' % ' 7 %  '+% W con modelos en redes neuronales o lógica difusa. Algunos otros se pueden conseguir a través   &Œ'&&  '+% % '  %&& &% &=Ÿ¾W=ŸJ=W=ŸJ=¾W '%Œ' W & %" &"*#  +&  toolbox  '+% % '   J ' #5

A continuación, vamos a discutir brevemente cómo: 1. Elegir el nivel adecuado de complejidad de un modelo. 2. Linealizar modelos no lineales. 3. Obtener experimentalmente modelos elementales.

4.1 Diseño en el espacio de estados: 1. Se trata directamente sobre las ecuaciones que describen el sistema. 2. Permiten un estudio del comportamiento de las variables internas del sistema en el dominio del tiempo y no en el de Laplace, además del estudio de la relación entrada / salida. 3. Facilitan el estudio de sistemas de varias entradas y varias salidas (MIMO).

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 117

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

      4.2.1. Estado: es la caracterización interna del sistema en cada instante de tiempo. En él se resume la historia del sistema. Las salidas de los sistemas dependen de los estados y de las entradas. El comportamiento dinámico del sistema, representado por su razón de cambio o derivada es una función de los estados y de las entradas. 4.2.2. Variables de estado: son las variables que expresan el estado dinámico de un sistema. $'   #   ' &"   && 7'" +Š% 5 4.2.3. Vector de estado: es la agrupación de variables de estado en forma de vector que representa un punto en el espacio. 4.2.4. Ecuaciones de estado: son las ecuaciones matriciales que representan el comportamiento dinámico y las salidas del sistema. Son ecuaciones cuyas variables son el vector de estado y el vector de entrada. 4.2.5. Espacio de estados: es un espacio n-dimensional cuyos ejes están formados por las variables de estado. Todo vector de estado estará representado por un punto en el espacio de estados.

Gráfico 4.1. Comportamiento de un sistema en el tiempo u (t )

x = f ( x, u , t )

Condiciones iniciales

Entradas

Modelo matemático

y (t ) Salidas

x3

x (t)

x0

Vector de estado

x (0) x2

Trayectoria

x1

Espacio de estados

Sistema con que tiene n integradores y m entradas, representa su comportamiento con las siguientes funciones:

x1(t ) = f1( x1 , x2 ,..., xn ;u1 , u2 ,..., um ;t ) . . x n(t ) = f n( x1 , x2 ,..., xn ;u1 , u2 ,..., um ;t )

118

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

mientras que las salidas se representan con las siguientes funciones: y1(t) = g1( x1 , x2 ,..., xn ;u1 , u2 ,..., um ;t )

. . y p (t ) = g p ( x1 , x2 ,..., xn ;u1 , u2 ,..., um ;t )

Estas ecuaciones también pueden ser escritas en forma vectorial:

⎡ x1(t) ⎤ ⎡ f1( x1 , x2 ,..., xn ;u1 , u2 ,..., um ;t) ⎤ ⎥ ⎢ . ⎥ ⎢ . ⎥ ⎥ ⎢ ⎢ ⎥ ⎢ . ⎥=⎢ . ⎥ ⎥ ⎢ ⎢ . ⎥ ⎢ . ⎥ ⎢ ⎢ x n(t) ⎥ ⎢ f n( x , x ,..., x ;u , u ,..., u ;t ) ⎥ ⎦ ⎣ 1 2 n 1 2 m ⎦ ⎣ y ⎡ 1(t ) ⎤ ⎡ g1( x1 , x2 ,..., xn ;u1 , u2 ,..., um ;t ) ⎤ ⎥ ⎢ . ⎥ ⎢ . ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ . ⎥=⎢ . ⎥ ⎢ ⎥ ⎢ . ⎥ ⎢ . ⎥ ⎢ ⎢ y p (t) ⎥ ⎢ g p ( x , x ,..., x ;u , u ,..., u ;t ) ⎥ ⎣ ⎦ ⎣ 1 2 n 1 2 m ⎦

o simplemente : x = f ( x , u , t ) y = g ( x,u,t )

linealizando las ecuaciones tenemos las siguientes ecuaciones de estado y de salida: x (t ) = A(t ) x(t ) + B(t )u(t ) y (t ) = C (t ) x (t ) + D (t ) u (t )

Donde: x(t):

Vector de estado de orden (n x 1).

y(t):

Vector de salida de orden (p x 1).

u(t):

Vector de entrada de orden (m x 1).

A(t):

Matriz de estado o del sistema es de orden (n x n), donde n es el número de variables de estado.

B(t):

Matriz de entrada cuyo orden es de (n x m), siendo m el número de entradas.

C(t):

Matriz de salida cuyo orden es de (p x n), donde p es el número de salidas.

D(t):

Matriz de transmisión directa, y es de orden(p x m).

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 119

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

4.3 Pasos básicos para el modelamiento matemático: Para realizar el modelamiento matemático de cualquier tipo de sistema realizaremos los siguientes pasos: 5  '+%  '& '  W  % W  %ƒ%&W Œ%' %&W ƒ" %&WŠ# &W'Œ %&W etc. Con este dato debemos plantear las ecuaciones íntegro-diferenciales que rigen al sistema. Si no las conocemos, debemos averiguarlas o asesorarnos de algún especialista en el campo. En el caso de un sistema mecánico las ecuaciones serían las leyes de Newton, en el caso de un sistema eléctrico serían las leyes de Kirchoff, etc. 2. Plantear las ecuaciones que caracterizan al sistema. !5  '+%  ®£ '  ®£W ®£  ®£ '  *   #   ' &5 4. Determinar cuáles son las variables de mayor orden (orden n+1) de cada estado y establecer el vector de estado comenzando por las variables de orden mayor menos uno (orden n). Del mismo modo, establecer los vectores de entradas y de salidas.

El vector de estado x es de orden (n x 1).

El vector de entradas es de orden (m x 1).

El vector de salidas es de orden (p x 1).

5. Si tenemos el vector de estado x, podemos deducir fácilmente cual es la derivada del vector de estado, más conocido como x punto ( ):

La derivada del vector de estado es de orden (n x 1).

6. Visualizamos las ecuaciones de estado:

120

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

5 > #  &  '&   ' %    %" %&   ' &W&  &%& +% '   las variables correspondientes de las ecuaciones diferenciales, colocando ceros para completar los elementos de la matriz. A continuación, presentamos los tipos de sistemas más comunes. Recordemos que un sistema puede tener muchas variantes y que estas provocarán que las ecuaciones varíen. Además, dependiendo de la perspectiva desde la cual se aborde un problema de modelamiento, se obtendrán resultados distintos pero correctos a la vez. Es útil tener presente que para comenzar, estamos presentando un procedimiento para elaborar las ecuaciones de estado, pero este no es rígido. Conforme aumente la práctica en la elaboración de las ecuaciones de estado, cada uno va desarrollando sus habilidades y métodos propios. Ejemplo E.4.1: Determinar las ecuaciones de estado del circuito RLC: En el capítulo 1, cuando tratamos este mismo sistema, se plantearon dos problemas, uno para cada tipo de salida, corriente o caída de tensión en el capacitor. Dado que el modelo de ecuaciones de estado permite trabajar con sistemas MIMO, ya no es necesario plantear dos modelos, sino lo que vamos a hacer es manejar las salidas a nuestra conveniencia, inclusive planteando + "& &‰" %&'   #   5

R

V(t)

L

C i (t)

Vc (t)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 121

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: Este circuito representa su comportamiento en las siguientes ecuaciones (paso 2):

Es conveniente eliminar la integral derivando ambos lados de la igualdad de la ecuación respectiva:

 '+% &   #  '  ® &!£W'  &%&& '      # v(t), como salidas a i(t), a ec(t), o a ambas, y como variables tenemos a i(t),

Las variables de mayor orden son

y

, ec(t) y

.

(paso 4). Por lo tanto, el vector de estado es:

El vector de entrada es: u = [v] Los vectores de salida, dependiendo cómo se deseen son: y = [i], y = [ec] o

La derivada del vector de estado (paso 5) es:

La visualización de las ecuaciones de estado (paso 6) se muestra a continuación, comenzando por la ecuación del sistema:

$   +   ; &    %" % '  W&  &  / & ,  ' ‰"    7" + W  7"  %" %

122

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Con lo cual tenemos (paso 7):

Por otro lado, debemos considerar a las salidas, para lo cual hemos planteado tres casos diferentes: a. y = [i]

Reemplazando:

b. y = [ec]

Reemplazando:

c.

Reemplazando:

Si presentamos las ecuaciones de estado del sistema Circuito RLC con las dos salidas, corriente y caída de tensión en el capacitor, tenemos:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 123

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ejemplo E.4.2: Determinar las ecuaciones de estado del sistema masa-resorte:

k

b F

M x

Solución: Asumimos al sistema partiendo del reposo, y sobre esa consideración aplicamos la segunda Ley de Newton, ΣF = ma, para obtener la ecuación que rige al sistema (paso 2):

 '+% &   #  '  ® &!£W'  &%&& '      # F(t), como salida a x(t), y como variables tenemos a La variable de mayor orden es

(paso 4). Es importante resaltar que por coincidencia el

%'&   ' &  + %&&•*   #   %&' #Œ5"  

 %&H"W Š que las variables las hemos colocado en función del tiempo para diferenciarlas. Por lo tanto, el vector de estado es:

El vector de entrada es: u = [F] Es vector de salida es:

La derivada del vector de estado (paso 5) es:

La visualización de las ecuaciones de estado (paso 6) se muestra a continuación, comenzando por la ecuación del sistema:

124

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

$   +   ; &  %" % '  W&  &  / &

, mientras

‰"    7" + W%& ' & & '& &#'   7"  

con lo cual tenemos (paso 7):

Por otro lado debemos considerar a la salida:

Reemplazando:

Si presentamos las ecuaciones de estado del sistema masa-resorte tenemos:

Ejemplo E.4.3: Determinar las ecuaciones de estado del sistema múltiple masa-resorte:

k1

b1

F1

M1 k2

b2

F2

x1

M2 k3

b3

x2

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 125

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Notamos que existen dos fuerzas que actúan en conjunto sobre el sistema. Se sabe que la fuerza F2 es menor a la fuerza F1. Estas dos fuerzas serán las entradas del sistema. Además, tenemos dos variables que representan la posición de las masas uno y dos. Solución: Para efectos de este ejemplo, se tomarán como salidas las posiciones y velocidades de cada una de las masas. Esto hace que el sistema sea de tipo MIMO, es decir que tiene múltiples entradas y múltiples salidas. Empezando el desarrollo del modelamiento, hallamos las ecuaciones que caracterizan al sistema (paso 2). Planteamos el diagrama de cuerpo libre para ambas masas y planteamos las ecuaciones:

Ecuaciones: Para la masa 1:

Para la masa 2:

 '+% &   #  '  ® &!£W'  &%&& '      # F1 y F2, como salidas a

y como variables tenemos a

Las variables de mayor orden son

126

y

(paso 4). Por lo tanto, el vector de estado es:

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

El vector de entrada es:

Es vector de salida es:

La derivada del vector de estado (paso 5) es:

La visualización de las ecuaciones de estado (paso 6) se muestra a continuación, comenzando por la ecuación del sistema:

$   +   ; &  %" %      W&  &  / & :

$ ' % + %& &% & %&

& '    7"   W& ' #Π  / :

 ' ‰"    7" *%" ' + W%& ' & &#'   7"  5 Con estas ecuaciones tenemos (paso 7):

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 127

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Por otro lado, debemos considerar a la salida:

Reemplazando:

Si presentamos las ecuaciones de estado del sistema múltiple masa-resorte tenemos:

Ejemplo E.4.4: Determinar las ecuaciones de estado del sistema motor DC de posición o ve-

Foto: Wikimedia Commons

locidad:

128

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

R

L T

θ

+

+ e = K θ

V −

J

− bθ

Solución: Las ecuaciones del Motor DC han sido obtenidas mediante las leyes de Kirchoff y las de Newton (paso 2): Circuito equivalente: Fuerza contraelectromotriz: Torque: Ley de fuerza y movimiento:  '+% &   #  '  ® &!£W'  &%&& '      # v(t), como salida a θ(t), para el caso de control de posición y a

, para el caso de control de velocidad. Nun-

(t)

ca debe considerarse el control de velocidad y posición en simultáneo porque no es controlable como lo veremos más adelante, y como variables tenemos a i(t),

, θ(t),

(t)

(t)

y

. No considera-

(t)

mos al torque τ(t), porque tiene dependencia lineal con la corriente i(t), pero sin embargo, pode&&# &%&"   W' %&& & ' & +   ' & &5 Las variables de mayor orden son

y

(paso 4). Por lo tanto, el vector de estado es:

El vector de entrada es:

Es vector de salida, vamos a considerar a la velocidad y al torque:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 129

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

La derivada del vector de estado (paso 5) es:

La visualización de las ecuaciones de estado (paso 6) se muestra a continuación, comenzando por la ecuación del sistema:

$   + %& &% & &%& +% ' &#' &   %" % % %"'& ‰" ' W donde hemos reemplazado a la fuerza contraelectromotriz,

y hemos despejado ,

$   7"  +  %& &% & & %& +% '     %" %   H" ;  * &  '& &  hemos reemplazado al torque:

y hemos despejado a

,

 ' ‰"   ' % + W%& ' & & '& &#'   7"  5 >& &%& +% '   ; &'  &® &£

Por otro lado, debemos considerar a la salida:

130

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Reemplazando la equivalencia de la velocidad

directamente del vector de estado y la del

torque τ(t) de la ecuación del torque:

Si presentamos las ecuaciones de estado del motor DC tenemos:

4.4 Programación en Matlab: A continuación se presenta un ejemplo de modelamiento matemático en Matlab1. Si bien el modelamiento matemático es un proceso que se realiza sin la ayuda de una computadora, es posible introducir los resultados del modelamiento matemático en Matlab y ver como responde el sistema a cierto tipo de entrada. Los pasos a seguir son los siguientes 5   +  %&' '  %   5 b. Se ingresan las matrices de estado A, B, C y D, respetando cuidadosamente el orden de cada una de ellas. %5   +  %&%& %  '  5&  /  &W &% W&%&ƒ7" & inicial. 5   + " %'& ' &5=‰"Š  # '   %" ' '& "H %  ' &

&"+% '  '  ‰" ™& ‰"  "    % #   " '  '  5$  valor óptimo de este parámetro varía de acuerdo a la naturaleza del sistema, y a que tan rápido este responde. e. Se inicializa un contador para el almacenamiento de las variables que se estén utilizando con miras a su ploteo. X&' •'& %"    +    Š   &7  % J ' #5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 131

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

f.

Luego se crea un lazo «for» para iterar la respuesta del sistema en cada instante del tiempo  +&   & ' & 5 ' &  '  ;& "' ;   %" %&   ' &5 H55    %   & '& &&  %'& W &‰"  ƒ7 +% & +   &grama. f.2. Colocamos las ecuaciones de estado para representar al sistema como modelo matemático. f.3. Integración por el Método de Euler.

75 & " '& 7 +%   " ' &&#' &W Š & ƒ  %  /&   " '   sistema. Aplicaremos estos pasos en la simulación de un motor eléctrico de corriente continua: Inicialización: %Simulación de un motor eléctrico close all; clear all; clc;   +  %&' '  %    ’      K

=

0.01;

% Constantes de Electricidad

K1

=

K; K2

= K;

J

=

0.01;

% Inercia

b

=

0.1;

% Constante de Amortiguamiento

R

=

1;

% Resistencia

L

=

0.5;

% Inductancia

%Variables se tratan de colocar en minúscula y matrices en mayúscula, % siempre y cuando no confundan por efectos de su nomenclatura. Se ingresan las matrices de estado A, B, C y D, respetando cuidadosamente el orden de cada una de ellas. A

B

=

=

[

[

-R/L

-K/L

0

K/J

-b/J

0

0

1

0

];

1/L 0

C

132

=

[

0

0

];

1

0

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

K D

=

[

0

0

];

0 0

];

  +  %&%& %  '  5&  /  &W &% W&%&ƒ7" &% 5 %Condiciones iniciales x0 =

[

0 0 0

V

=

];

10;

  + " %'& ' &5=‰"Š  # '   %" ' '& "H %  ' & & "+% '  '  ‰" ™& ‰"  "    % #   " '  '  5$  &  óptimo de este parámetro varía de acuerdo a la naturaleza del sistema, y qué tan rápido este responde. ’     ti

=

0;

dt =

0.001;

tf

5;

=

Se inicializa un contador para el almacenamiento de las variables que se estén utilizando con miras a su ploteo. %Inicializar contador k=1; x=x0; u=V; Luego se crea un lazo «for» para iterar la respuesta del sistema en cada instante del tiempo  +&   & ' & 5 ' &  '  ;& "' ;   %" %&   ' &5 %SIMULACIÓN „       “ ”•        – %Almacenamiento de datos for t=ti:dt:tf x1(k,1)=x(1,1); x2(k,1)=x(2,1); x3(k,1)=x(3,1); T(k,1)=t; U(k,1)=u;

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 133

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Colocamos las ecuaciones de estado para representar al sistema como modelo matemático. %Ecuaciones del sistema xp=A*x+B*u; y=C*x+D*u; y1(k,1)=y(1,1); % Almacenamiento de la Salida Velocidad. y2(k,1)=y(2,1); % Almacenamiento de la Salida Torque. Integración por el Método de Euler. %Integración x=x+xp*dt;

%Por Euler

%Incremento del contador k=k+1; end & Y '& 7 +%   " ' &&#' &W Š & ƒ  %  /&   " '  '  5 plot(T,y1, ‘r’,T,y2, ‘b ‘) grid on; title(‘Simulacion de un motor electrico’); xlabel(‘Tiempo (seg.)’); ylabel(‘Velocidad angular y Torque’); legend(‘Velocidad’, ‘Torque’); Si se desea, se puede copiar cada uno de los pasos descritos. Uno a continuación de otro, en un % &J J ' #W*  " 7&%&

&* +%  %&

%'&H"%&  '&5 X& " ' &  " %   '   7" ' +7" 

134

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Simulación de un motor eléctrico 1 Velocidad Torque 0.9

Velocidad angular y Torque

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Tiempo (seg.)

4.5 Linealización de sistemas: Los sistemas pueden presentar comportamiento que no necesariamente responden de manera lineal. Ellos son los más frecuentes, tal es el caso del Trasbordador Espacial que cambia de masa al desprender uno de sus cohetes propulsores, el Fórmula 1 que permanentemente varía su masa por el consumo de combustible y por desgaste de sus neumáticos, y a pesar de ello debe controlar los frenos y la tracción en las curvas, y por último, un brazo de robot que deja un artículo en un lugar determinado. Por suerte, la mayoría de veces, este comportamiento se puede representar con alguna o algunas aproximaciones lineales. Los casos generales los podemos presentar en los siguientes puntos.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 135

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

4.5.1 No linealidad al comienzo: Gráfico 4.2. Sistema con no linealidad al comienzo

El problema de la no linealidad al comienzo se solucionó con un linealización solamente. Siempre debemos buscar una solución sencilla a estos casos.

136

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

4.5.2 No linealidad interna: Gráfico 4.3. Sistema con no-linealidad interna

En este caso, al tener la no linealidad en una parte interna del comportamiento del sistema, es más fácil linealizar las dos partes lineales y proyectar su zona lineal hasta su intersección. Para el caso del modelo matemático, deberemos considerar una condicional, la cual se ubicará en el lugar correspondiente a la intersección. En otras palabras, debemos asumir las siguientes etapas:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 137

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

a.

: Para un caso mayor que 0 y menor que x1, debe asumirse la linealiza-

ción correspondiente a ese rango. b.

: Para un caso mayor que x1, se considerará la linealización correspon-

diente al mismo rango.

4.5.2 No linealidad completa: Gráfico 4.4. Sistema con no linealidad completa

138

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Este último caso, al tener una gran no linealidad, es conveniente buscar una equivalencia con una serie etapas lineales, tal como se hizo en el caso anterior, pero repetitivamente. Se debe considerar un rango equivalente al de operación real del sistema y un adicional de un 10% aproximadamente por motivos de seguridad. Para el modelo matemático, consideraremos la cantidad de condicionales necesarias para plantear la continuidad de todas las etapas lineales. a.

: Para un caso mayor que 0 y menor que x1, debe asumirse la linealiza-

ción correspondiente a ese rango. : Para un caso mayor que x1 y menor que x2, se considerará la linealiza-

b.

ción correspondiente al mismo rango. : Para un caso mayor que x2 y menor que x2, y continuar hasta completar

c.

el rango necesario para la operación del sistema. Con el concepto de la linealización visualizado, vamos a buscar la representación matemática de ella. Un sistema no lineal se representa por la siguiente función:

$' %   '  &+Š%     ' * %&' & W&  /  &W &  siguiente sistema:

donde x 22(t ) es una no linealidad. Para linealizar estas ecuaciones no lineales que representan el comportamiento de un sistema, las expandiremos en una serie de Taylor alrededor de un punto de operación nominal, en el cual todos los términos de la serie de orden superior a uno son descartados por ser próximos a cero (0), con lo cual nos quedamos solamente con un término lineal. El punto nominal se denominará x 0 ( t ) y le corresponde una entrada u 0 ( t ) , junto con algu %&%& % +/ &%&' ' 5X  •      @ * & W % ' & los términos mencionados, es:

donde x es de orden nx1 y u es de orden px1. Sea, Δxi = xi − x 0i y Δu j = u j − u 0 j , entonces Δx i = x i − x 0i . Y teniendo en cuenta a la expresión x 0i = f i ( x0 ,u0 ) , podemos volver a escribir la ecuación de la siguiente manera:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 139

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Si lo expresamos de forma matricial:

donde:

Ejemplo E.4.5: Linealizar el siguiente sistema:

donde:

la cual es una expresión no lineal, dado que la función signo se expresa como:

Solución: Si ploteamos la variable x1( t ) versus u (t ) , apreciamos la no linealidad. Vamos a usar el J ' #   ' +7"  % Ploteo de linealización close all clear all clc

140

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

@"— 

”       ˜ x = –1.5:0.01:1.5; u = (1-exp(-K*abs(x))).*sign(x); plot(x,u) title(‘x1(t) versus u(t)’; xlabel(‘x1(t)’); ylabel(‘u(t)’) X +7"  " ' '   7" '  •®'£ ""®'£ 

Q58

Q56

Q54

"®'£

Q52

Q

žQ5 2

žQ5 4

žQ5 6

žQ5 8

ž ž5 5

ž

žQ5 5

Q

Q55



55

•®'£

Si regresamos a las ecuaciones del sistema y reemplazamos con las características de las funciones de linealización, tenemos:

Evaluando en la fórmula alrededor de x 01 y x 02 :

Ahora, podemos obtener las siguientes expresiones: a.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 141

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

b.

De tal manera:

Si lo colocamos de manera matricial:

en el origen de la no linealidad, entonces a = K y la ecuación se con-

Si escogemos a vierte en:

Por el contrario, si

es grande, entonces a = 0 , por lo tanto:

Existe otra forma de resolver este método de linealización y es a través de una manera matricial. Para ello, tomamos las funciones iniciales

y las reemplazamos en la expresión correspondiente:

142

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Donde las matrices deben corresponder a:

Ahora evaluamos cada derivada parcial que se encuentra en cada elemento de cada matriz:

Por lo tanto, el sistema quedaría:

Ejemplo E.4.6: Linealizar el siguiente sistema de suspensión de una bola por magnetismo, y determinar el modelo lineal en espacio de estados del sistema de suspensión magnética (electroimán – esfera de acero). El principio utilizado en este ejemplo es el mismo que se emplea para la suspensión del tren magnético, y para su propulsión.

R

e (t)

L

i (t)

i2 y

y

M Esfera de acero

Mg

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 143

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Donde los parámetros del bobinado del electroimán son:

e(t ) = Voltaje de la entrada i(t ) = Corriente del bobinado L = Inductancia del bobinado R = Resistencia del bobinado Y los del sistema mecánico son:

y (t ) = Posición de la esfera M = Masa de la esfera g

= Constante de la gravedad

Solución: Las ecuaciones que rigen al sistema son las siguientes:

 + &   #   ' &W'  &

El sistema se va a linealizar considerando como punto de equilibrio a dato asumido como constante, podemos evaluar las siguientes expresiones:

Con estas dos expresiones calculamos el valor de

144

:

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

. Con este

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Luego, aplicamos las matrices del método de linealización:

Del mismo modo, lo hacemos para la otra matriz:

Por lo tanto, el sistema se representaría de manera linealizada alrededor de y 0 ( t ) con la siguiente ecuación:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 145

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ejemplo E.4.7: Linealizar el siguiente sistema de un giróscopo: Η θ

ω

O

k b

Cuerpo

Α e ort Sop

Β

Los giróscopos son sensores que sirven para determinar la posición angular de vehículos o plataformas con respecto a una referencia. Se desea determinar el modelo lineal en espacio de estados de un giróscopo de un grado de libertad.  %& ; W +&  %" %‰"    '  '    +7" 

Posteriormente, despejamos la variable de mayor orden:

=& W &%  &  +    #   ' & , la entrada u = ω , y la salida debe ser el ángulo de interés y = θ .

Las ecuaciones de estado son:

146

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Linealizamos considerando al punto de equilibrio jante a 0. Es decir,

con un valor muy pequeño, seme-

.

Por lo tanto, ya podemos ingresar a las matrices para la linealización:

Por lo tanto, el sistema linealizado que representa al giróscopo de un grado de libertad, es:

            Para diseñar un nuevo sistema podemos utilizar todo lo mostrado hasta el momento, porque vamos a partir desde el origen hasta conseguir el resultado deseado. En la práctica, muchas veces hay sistemas que ya existen y deben ser controlados. Para ello debemos determinar el modelo matemático que rige su comportamiento. Como herramientas modernas tenemos una gran cantidad de sensores y software para la adquisición de datos y su procesamiento, y podemos basarnos en ellos para efectuar este modelamiento de una manera más sencilla y bastante segura. =%&'" %W &  '+%  & & ' ƒ'%& "'    7"&&  W'  como ya se hizo con la  ˜    –™ } ‡ š Análisis de la respuesta en el estado transitorio. Comenzaremos eligiendo un sistema, le aplica-

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 147

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

remos un escalón unitario, guardaremos los resultados de las mediciones, procesaremos esta H&  % Œ' %  ' * + %& & & '&&#' &%& && 7 5 Es importante resaltar que al utilizar los datos registrados, no todas las fórmulas pueden ser usadas. Vamos a usar un método práctico para este caso. La función de transferencia deberá considerar un factor de amortiguamiento de 0.4, una frecuencia natural no amortiguada de 5rad/seg. y una ganancia del sistema de 1.05.

donde:

ζ = 0.4 , ϖ n = 5 rad/seg. y k = 1.05.

Por lo tanto:

Comenzaremos la simulación para efectuar la toma de datos ante la salida del escalón unitario: % Ejemplo de toma de datos de un sistema. clc clear all close all num = 26.25; den = [ 1 4 25 ]; sys = tf(num,den) T = 0:0.01:4;  step(sys,T) El Matlab entrega: Transfer function: 26.25 -------------s^2 + 4 s + 25

148

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

 Respuesta del sistema original Respuesta al escalón 1.4

1.2

Amplitud

1

0.8

0.6

0.4

0.2

0

0

0.5

1

1.5

2

2.5

3

3.5

4

Tiempo (seconds)

Procedemos a guardar los datos de la salida y del tiempo de la siguiente manera: % Obtenemos los datos. [ sal, t ] = step(sys,T); [lsal,a] = size(sal); En este momento acabamos de terminar la simulación de un sistema conocido y comenzare&  '+% % "H"% ' H %   '   H " %&&% 5 Nuestro primer paso será determinar el sobreimpulso, ya que con él podemos determinar el factor de amortiguamiento, despejándolo de la fórmula:

El sobreimpulso es el punto más alto de la curva, expresado de manera porcentual con respecto a la salida estabilizada:

disp(‘El Sobreimpulso en % es: ‘) Mp = (max(sal)-sal(lsal))/sal(lsal)*100

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 149

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Respuesta del Matlab: El sobreimpulso en % es: Mp = 25.4038 Para determinar el tiempo pico, buscamos el número correspondiente al orden del valor máximo de la salida, y ese número de orden se aplica como en el vector de tiempo, dando como respuesta el tiempo pico: disp(‘el tiempo pico en segundos es: ‘) @   @@   tp = t(ftp) Respuesta del Matlab: El tiempo pico en segundos es: tp = 0.6900 Para determinar el error de estado estacionario, aplicamos la fórmula correspondiente:

Como valor de referencia (ref) tomamos a la unidad, ya que la entrada es el escalón unitario y " '&%&&%&W ' ‰" %&&    +'&® c (∞ ) ) tomaremos el último valor del vector de la salida. disp(‘El Error de Estado Estacionario es: ‘) Ess = abs(sal(lsal) -1) Respuesta del Matlab: El error de estado estacionario es: Ess = 0.0498 Seguimos calculando el tiempo de retardo. Como sabemos, el tiempo de retardo es el que se alcanza al 50% del valor de la salida estable. Por lo tanto, vamos a evaluar cada elemento de la salida comparándolo con el valor del 50% del valor de la salida estable. Es posible que no exista la coincidencia exacta para ese valor, así que consideraremos el último valor menor al 50%. disp(‘El Tiempo de Retardo en segundos es: ‘) for i=1:lsal if sal(i)>(sal(lsal)*0.50)

150

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

td = t(i-1) break end end Respuesta del Matlab: El tiempo de retardo en segundos es: td = 0.2400 Con el mismo criterio empleado, ahora vamos a comparar los elementos de la salida hasta que alcancen el valor de la salida estable, es decir, el 100%. disp(‘el tiempo de levantamiento de 0 a 100% es: ‘) for i=1:lsal if sal(i)>sal(lsal) trf = t(i-1) ; tr = trf – 0 break end end Respuesta del Matlab: El tiempo de levantamiento de 0 a 100% es: tr = 0.4300 Si repasamos las características del tiempo de levantamiento, no es usado el que calculamos en las líneas anteriores, sino que los más usados son los de 5% a 95% y de 10% a 90%. Para ello,  '  & & &  •' &* +  & ' &   '   &  ‰" do. En otras palabras, para estos dos casos vamos a hacer dos cálculos y una diferencia. Comenzaremos con el tiempo de levantamiento de 5% a 95%. disp(‘el tiempo de levantamiento de 5 a 95% es: ‘) for i=1:lsal if sal(i)> (sal(lsal)*0.05) tri = t(i-1); break end end for i=1:lsal if sal(i)> (sal(lsal)*0.95)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 151

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

trf = t(i-1); break end end tr = trf - tri Respuesta del Matlab: El tiempo de levantamiento de 5 a 95% es: tr = 0.3400 Continuamos con el tiempo de levantamiento de 10% a 90%. disp(‘el tiempo de levantamiento de 10 a 90% es: ‘) for i=1:lsal if sal(i)> (sal(lsal)*0.10) tri = t(i-1);break end end for i=1:lsal if sal(i)> (sal(lsal)*0.90) trf = t(i-1); break end end tr = trf - tri Respuesta del Matlab: El tiempo de levantamiento de 10 a 90% es: tr = 0.2900 Por otro lado y con el mismo criterio, determinamos el tiempo de establecimiento para una tolerancia del 2%. Para ello, debemos calcular el valor del 2% con respecto al tiempo en el +'&W  % W ' & ' # 5$" ' &% &W  7& ' ƒ & ' Q5*5Q5&teriormente, comenzando por el último y retrocediendo de uno en uno, compararemos cada valor del vector de la salida con este rango, y cuando el valor salga de él, registramos el orden del elemento y tomamos el tiempo correspondiente. disp(‘El tiempo de establecimiento para una tolerancia del 2% es: ‘) for i = lsal:-1:1 if (sal(i)sal(lsal)*1.02) ts2 = t(i+1) break 152

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

end end Respuesta del Matlab: El tiempo de establecimiento para una tolerancia del 2% es: ts2 = 1.6900 Ahora determinamos el tiempo de establecimiento para una tolerancia del 5%, es decir, para un rango de 0.95 a 1.05. disp(‘El tiempo de establecimiento para una tolerancia del 5% es: ‘) for i = lsal:-1:1 if (sal(i)sal(lsal)*1.05) ts5 = t(i+1) break end end Respuesta del Matlab: El tiempo de establecimiento para una tolerancia del 5% es: ts5 = 1.5300 Una vez analizados los datos y obtenidos estos parámetros de la curva, podemos utilizar las fórmulas conocidas para reconstruir la función de transferencia de un sistema de segundo orden equivalente o aproximado. Recordemos viendo la forma de la función de transferencia, para ver cuáles son los parámetros que necesitamos:

Ahora, sabemos que necesitamos determinar el valor de la ganancia k del sistema, del factor de amortiguamiento , y de la frecuencia natural no amortiguada ϖ n . Comenzaremos despejando el valor del factor de amortiguamiento de la fórmula de sobreimpulso:

Aplicamos logaritmo natural y eliminamos el denominador:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 153

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Elevamos al cuadrado ambos miembros para eliminar el radical:

Acomodamos los factores para despejar el factor de amortiguamiento:

Aplicando esta fórmula en Matlab: disp(‘El Factor de Amortiguamiento es:’) ln2 = (log(Mp/100))^2; %Mp está en %, debemos colocarlo en valor real. z = sqrt(ln2/(ln2+pi^2)) Respuesta del Matlab: El factor de amortiguamiento es: z = 0.3998 Del mismo modo, debemos calcular el valor de la frecuencia natural no amortiguada. Lo vamos a hacer de las fórmulas del tiempo de establecimiento. Para una tolerancia de 2%:

Despejando, la frecuencia:

Aplicando esta fórmula en Matlab: disp(‘La Frecuencia Natural No Amortiguada (2%) es:’) wn2 = 4/(z*ts2) Respuesta del Matlab: La frecuencia natural no amortiguada (2%) es: wn2 = 5.9202

154

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Y, para una tolerancia de 5%:

Despejando, la frecuencia:

Aplicando esta fórmula en Matlab: disp(‘La Frecuencia Natural No Amortiguada (5%) es:’) wn5 = 3/(z*ts5) Respuesta del Matlab: La frecuencia natural no amortiguada (5%) es: wn5 = 4.9045 Por último, calculamos la ganancia del sistema, dividiendo la el valor cuando la salida tien  +'& '   H % 

Aplicando esta fórmula en Matlab: disp(‘La Ganancia del Sistema es:’) k = sal(lsal)/1 Respuesta del Matlab: La ganancia del sistema es: k = 1.0498 Con estos datos podemos reconstruir la función de transferencia y determinar cuán apro•  "    '  '+% %

Caso a de tolerancia de 2%:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 155

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Resolviendo en Matlab: disp(‘Función de Transferencia del ‘) ž ` 

Ÿ    num2 = k*wn2^2; den2 = [1 2*z*wn2 wn2^2]; sys2 = tf(num2,den2) Respuesta del Matlab: Función de transferencia del ¨ '& %  '+%  Transfer function: 36.79 --------------------------s^2 + 4.734 s + 35.05 Es decir:

Caso a de tolerancia de 5%:

Resolviendo en Matlab: disp(‘Función de Transferencia del ‘) ž" ` 

Ÿ    num5 = k*wn5^2; den5 = [1 2*z*wn5 wn5^2]; sys5 = tf(num5,den5) Respuesta del Matlab: Función de transferencia del ¨ '& %  '+%  Transfer function: 25.25 3.922 s + 24.05

156

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘J“j^}k˜\^[”“˜k”^˜Ž”\{“^[^`|k{\“j^^`”kj“`

Es decir:

Ahora comparemos las simulaciones ante un escalón unitario con el original para escoger con qué sistema debemos trabajar:  step(sys,sys2,sys5,T) legend(‘Original’,’Tolerancia 2%’,’Tolerancia 5%’) Figura de Respuesta del Matlab:

Gráfico 4.6. Respuesta de los tres sistemas Respuesta al Escalón 1.4 Original Tolerancia 2% Tolerancia 5% 1.2

Amplitud

1

0.8

0.6

0.4

0.2

0

0

0.5

1

1.5

2

2.5

3

3.5

4

Tiempo (seconds)

Claramente se puede apreciar, que el sistema que más se asemeja al original es el del caso de tolerancia de 5%. " '  " '    H"% ' H %  '+%   

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 157

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

>& '  /  &W &&& +%  & ' %   ƒ   & '&&#' &*  correcta aplicación de las fórmulas descritas en este capítulo y en los anteriores.

158

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Capítulo 5: Transformaciones

Las transformaciones o realizaciones son utilizadas para convertir la forma de un modelo ma' ƒ'%& &' &5X&&' &"    &W &&   ' "+   H % '   presentación del modelo para las posteriores operaciones que se desarrollarán en él. Usualmente, las transformaciones se dan entre las funciones de transferencia y las ecuaciones de estado, y viceversa, pero también se realizan entre una ecuación de estado a otra semejan' W%& +    " H&  %&&%  '     ‰"  ƒ %

& de conseguir los controladores o los observadores de estado, como las formas canónica controlable y canónica observable, respectivamente. Estos temas serán tratados en el momento oportuno.

5.1 Transformaciones de sistemas SISO: La transformación de sistemas SISO puede desarrollarse directamente tomando en cuenta los siguientes casos: 5 = '   &%& +% '  " H"% ' H % 5 2. A partir de los polos de una función de transferencia.



 !     "  "  X ' H&  %& ‰"   ;   '   &%& +% '  " H"% ' ferencia, también son llamadas formas canónicas, y ellas pueden ser: a.

Forma canónica controlable

b.

Forma canónica observable

Ninguna representación canónica tiene ventaja sobre la otra siendo ambas muy utilizadas por ser muy fáciles de obtener y porque son formas muy útiles para diseñar los controladores y los observadores de estado.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 159

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Como caso general, consideremos al siguiente sistema:

donde u es la entrada e y es la salida. Este sistema tiene la siguiente función de transferencia:

a.

Forma canónica controlable: Es útil para el diseño de controladores por ubicación de polos. La forma canónica controlable (FCC) presenta al sistema con las siguientes ecuaciones de estado:

b. Forma canónica observable: Esta forma, tal como la anterior, es útil para el diseño de observadores por ubicación de polos. La forma canónica observable (FCO) presenta al sistema con las siguientes ecuaciones de estado:

160

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘@_k[`’“_˜k{\“[^`

Si vemos las dos formas descritas anteriormente, apreciaremos que en ellas se ha ex  &    %'  &%& +% '    %" %% 5 Del mismo modo, si comparamos cada una de las matrices del sistema FCC con el FCO, veremos ciertas equivalencias que hacen muy semejantes a ambos sistemas. De esta semejanza, deduciremos algunas propiedades que relacionan la Forma canónica observable con la Forma canónica controlable a través de las traspuestas de sus matrices del sistema:

Mientras, las propiedades que relacionan la Forma canónica controlable con la Forma canónica observable, serían:

5.1.2 A partir de los polos de una función de transferencia: Las transformaciones realizadas a partir de los polos de una función de transferencia, también son conocidas como formas canónicas de Jordan. Recibe este nombre por la naturaleza de la matriz A resultante. Esta forma canónica se obtiene a partir de la expansión de fracciones parciales de la función de transferencia. Esta forma canónica presenta dos casos: a.

Forma canónica diagonal: también llamada forma modal. Cuando todos los po-

los de la función de transferencia son diferentes. b.

Forma canónica de Jordan: cuando la expansión en fracciones parciales pre-

senta multiplicidad en uno o más polos.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 161

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

a.

Forma canónica diagonal o modal: La expansión en fracciones parciales presenta la siguiente forma:

Vemos que todos los polos de la función de transferencia son diferentes y reales. Su representación en espacio de estados sería la siguiente:

Adicionalmente, cuando existe un par de polos complejos, como el caso general siguiente:

corresponde la representación de la siguiente forma modal o diagonal:

162

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘@_k[`’“_˜k{\“[^`

b. Forma canónica de Jordan Es aplicable cuando la función de transferencia presenta polos múltiples.

Su representación en espacio de estados sería la siguiente:

5.1.3 Comandos del Matlab para las transformaciones canónicas: Las transformaciones desarrolladas anteriormente pueden ser obtenidas utilizando los siguientes comandos de Matlab1: TF2SS Determina la forma canónica controlable invertida [A,B,C,D] = TF2SS(NUM,DEN) CANON Entrega la forma canónica que se le indique. CSYS = CANON(SYS,TYPE) &  /  &W  ; &@& ; &%&"% & %

&%& +    %& % & & %&  '  llegar al caso general.

6.1.1 Solución de las ecuaciones de estado de caso homogéneo: El caso homogéneo representa al sistema con sus variables de estado y no es afectado por entradas:

dado que trabajar con matrices es más complejo, iniciaremos las operaciones con el equivalente escalar de este sistema, resolveremos la derivada:

A esta ecuación le aplicamos la Transformada de Laplace, por ser un método más sencillo:

Despejamos:

Aplicamos la transformada inversa de Laplace:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 177

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Si retornamos al caso matricial de las ecuaciones de estado, y operamos de la misma manera que en la forma escalar:

Aplicamos Transformada de Laplace:

Despejamos:

Es necesario tener presente que:

Si le aplicamos la transformada inversa de Laplace, tenemos:

Ahora, si transformamos toda la expresión inicial, llegamos a la solución que estábamos buscando:

6.1.2 Matriz de transición de estados: Dado el caso homogéneo:

y su solución:

podemos reemplazar

por

, donde la última expresión recibe el nombre de Matriz

de transición de estados. Así, la solución del caso homogéneo se puede expresar como:

178

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

El nombre de Matriz de transición de estados responde al hecho de que cualquier estado inicial, multiplicado por esta matriz evaluada en el tiempo deseado, entrega el estado para ese mismo tiempo. 6.1.2.1 Propiedades de la matriz de transición de estados: es conveniente mencionar algunas de sus propiedades, dado que con ellas vamos a poder resolver fácilmente ecuaciones complicadas. Estas propiedades han sido deducidas de las características exponenciales de su de+%5

Ejemplo E.6.1: Determinar la matriz de transformación de estados Φ (t ) y la matriz −1

inversa Φ ( t ) del siguiente sistema:

Solución: resolvemos recordando la forma de la Matriz de Transformación de Estados:

De esta expresión, vemos que nuestro primer paso es calcular :

Como segundo paso, calculamos la inversa de la matriz resultante del paso anterior:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 179

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Aplicamos la transformada inversa de Laplace a cada elemento de la matriz independientemente y tenemos la primera respuesta solicitada:

Para la segunda parte, es decir para determinar la inversa, no vamos a aplicar el procedimiento matricial de la inversa de una matriz, porque puede ser muy extenso dependiendo del orden de ella, sino aplicaremos la propiedad correspondiente:

6.1.3 Solución de las ecuaciones de estado de caso no homogéneo: El caso no homogéneo representa al sistema con sus variables de estado y con las entradas:

Aplicamos Transformada de Laplace:

Despejamos:

180

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

Si le aplicamos la transformada inversa de Laplace a esta última expresión, nos encontraremos una integral de convolución como solución en el dominio del tiempo:

Si evaluamos para un tiempo inicial diferente a 0

:

Ejemplo E.6.2: Determinar la respuesta en el tiempo del siguiente sistema:

donde u es un escalón unitario y condiciones iniciales 0

.

Solución: como primer paso debemos determinar la Matriz de transformación de estados del sistema. Dado que la matriz del sistema A, es la misma que la del ejemplo anterior, asumimos la misma matriz de transformación de estados:

Como paso siguiente, reemplazamos a la matriz donde corresponde en la nueva solución:

Antes de integrar, resolvemos las multiplicaciones matriciales:

Integramos, y obtenemos la solución para el caso general:

Pero, como nosotros tenemos las condiciones iniciales, podemos determinar la solución exacta:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 181

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

6.2 Estabilidad en espacio de estados: La Estabilidad es la propiedad del sistema que indica si el sistema vuelve al reposo o estado de equilibrio luego de una entrada temporal o ante una perturbación. Desde el punto de vista analítico, podemos decir que un sistema es estable si todos sus polos, sin excepción, tienen parte real negativa, es decir, están en el semiplano izquierdo de Laplace. Teóricamente, cuando uno o varios de sus polos tienen parte real igual a cero (0), se diría que el sistema también es estable, pero en la práctica se ha determinado que la coincidencia exacta con una ubicación tan perfecta en el cero (0), no existe. Por lo tanto, dado que sería casi imposible que un polo asuma este valor, el sistema se ve afectado por la tendencia real positiva que existe en sus proximidades y lo convierten en inestable, el cual, luego de un tiempo de operación, reacciona inicialmente como un sistema estable y, posteriormente, comienza a oscilar tornándolo inestable. Para determinar la estabilidad de un sistema, consideremos el caso general de espacio de estados:

de donde obtenemos la siguiente matriz de transferencia:

El denominador de esta expresión contiene al polinomio característico, quien a su vez contiene a los polos o raíces. Entonces, sabiendo que el polinomio característico se encuentra en , lo despejamos de la siguiente manera:

Entonces, podemos decir que los el polinomio característico es det

.

Esta última expresión coincide con los valores propios, eigenvalues, eigenvalores o autovalores de la matriz del sistema A. Por lo tanto, si deseamos calcular los polos del sistema, debemos de-

182

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

terminar los autovalores de A. De esta aclaración, podemos concluir que la estabilidad del sistema no depende de las entradas ni de las salidas, sino de las características del propio sistema. Ejemplo E.6.3: Determinar la estabilidad de un sistema que está representado por las siguientes ecuaciones de estado:

Solución:

Aplicamos la fórmula de la ecuación cuadrática:

El sistema es inestable por tener un polo con parte real positiva. Si resolvemos el mismo ejemplo con Matlab1 debemos operar de la siguiente manera: Introducimos la matriz de estados A.

X&' •'& %"    +    Š   &7  % J ' #5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 183

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

A=[

0

1

;

3 -1

]

eig(A) Respuesta del Matlab: >>ans =

1.3028 -2.3028

El sistema es inestable por tener un polo con parte real positiva.

Ejemplo E.6.4: Determinar la estabilidad de un sistema que está representado por las siguientes ecuaciones de estado:

Solución:

Por lo tanto: s1 = –1 s2 = –2 El sistema es estable por tener todos sus polos con parte real negativa. Si resolvemos el mismo ejemplo con Matlab debemos operar de la siguiente manera: introducimos la matriz de estados A.

184

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

A=[

-2

0 ;

0 -1

]

eig(A) Respuesta del Matlab: >>ans =

-1 -2

El sistema es estable por tener todos sus polos con parte real negativa.

6.3 Controlabilidad: Se dice que la ecuación de espacio de estados

es controlable, si para cualquier es-

tado inicial x(0)=x0*%" ‰"  ' &+ x1 •' "  '  ‰" ' + x0 a x1, en un ' &+'&5$&'  # W  %" ‰"  ' &%  "   % ; %" ‰"  ' &+ W '   %&' & # 5&'    "' ‰"  '&   x0 a x1. Al determinar la controlabilidad de un sistema, estamos determinando si este es controlable, es decir, si se pueden diseñar controladores para él.

6.3.1 Método para determinar la controlabilidad: Enunciaremos un método para determinar si un sistema es controlable o no. Como veremos, la controlabilidad es una propiedad de las matrices A y B del sistema, y es independiente de las matrices C y D. En otras palabras, la controlabilidad del sistema depende del sistema propiamente dicho y de las entradas.

 + &"  ' ; %&' & #    & n x nm, que esté compuesta de la siguiente manera:

Si el rango de la matriz es n (rango=n), el sistema es controlable. Adicionalmente, vale aclarar que n es el orden de la matriz del sistema A, y m es el número de columnas de la matriz de entradas B, o la cantidad de entradas.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 185

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

En el caso de un sistema SISO, la matriz de controlabilidad es cuadrada, lo cual implica que  ‰"  %&% %" W# ' Š %& +% ‰" " '  '  H '  de cero ( det ζ ≠ 0 ).

6.3.2 Matlab para probar la controlabilidad: En Matlab, la función ctrb genera la matriz de controlabilidad de un sistema. Para saber si un sistema es controlable o no, utilizamos también las funciones rank y det, para evaluar el rango y el determinante de las matrices. Con estas funciones podemos evaluar si el rango de la matriz de controlabilidad es igual a la dimensión de la matriz de estado A. Ejemplo E.6.5: Determinar la controlabilidad del siguiente sistema:

Solución: La matriz de controlabilidad del sistema es:

Así, tenemos:

aplicando el determinante:

Como el determinante de la matriz de controlabilidad es diferente de 0, entonces existe    %    ' "+ *%& " W &‰"  " ' ‰" " 7& %& to, es decir 2. Como su rango es 2 y coincide con la dimensión de la matriz A, el sistema es controlable. Si resolvemos el mismo ejemplo con Matlab debemos operar de la siguiente manera:

186

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

Introducimos la matriz de estados A y la matriz de entradas B. A=[ B=[

0

1; -2 -3

0; 1

];

];

CC = [ B A*B ]; Det_controlabilidad = det(CC) Respuesta del Matlab: >>Det_controlabilidad = -1 El sistema es controlable por ser SISO y por tener el determinante de la matriz de controlabilidad diferente de 0. Ejemplo E.6.6: Para diseñar el controlador de estados que se encargue de manejar la altitud de un satélite, debemos, como paso previo, determinar la controlabilidad del siguiente sistema:

Solución: La matriz de controlabilidad del sistema es:

Así, tenemos:

Del álgebra lineal sabemos que el rango de la matriz ζ es el número de rectas linealmente independientes. Para nuestro caso, el rango es igual a 4. Como la dimensión de la matriz A, es decir n, es 4 y es igual al rango, entonces el sistema es controlable. Si resolvemos el mismo ejemplo con Matlab debemos operar de la siguiente manera:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 187

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Introducimos la matriz de estados A y la matriz de entradas B. A=[ 0

1 0 0 ; 3 0 0 2; 0 0 0 1; 0 -2 0 0 ];

B=[ 0

0; 1 0; 0 0; 0 1 ];

CC = [ B A*B A*A*B A*A*A*B ]; controlabilidad = rank(CC) Respuesta del Matlab: >>controlabilidad = 4 El sistema es controlable por tener el rango de la matriz de controlabilidad igual a las dimensiones de la matriz del sistema.

6.4 Observabilidad: Se dice que el sistema de espacio de estados es observable, si a partir de la(s) salida(s) se pueden estimar todos los estados del sistema. Al determinar la observabilidad de un sistema, determinamos la factibilidad de agregarle un observador de estados, el cual usará las pocas salidas sensadas para estimar las que no tienen sensor. En otras palabras, es un estimador en software. Mayor información se puede encontrar en el Capítulo 8: Observadores de estado.

6.4.1 Método para determinar la observabilidad: Enunciaremos un método para determinar si un sistema es observable o no. Como veremos, la observabilidad es una propiedad de las matrices A y C del sistema, y es independiente de las matrices B y D. En otras palabras, depende el sistema y de las salidas sensadas.

 + &"  ' ; &# #    & np x n, que esté compuesta de la siguiente manera:

188

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

Si el rango de la matriz es n (rango=n), el sistema es observable. Donde n es el orden de la matriz del sistema A, y p  Y & +    ' ;   C, o la cantidad de salidas. En el caso de un Sistema SISO, la matriz de controlabilidad es cuadrada, lo cual implica que  ‰"  %&% %" W# ' Š %& +% ‰" " '  '  H '  de cero ( det ϑ ≠ 0 ).

6.4.2 Matlab para probar la observabilidad: En Matlab, la función obsv genera la matriz de observabilidad de un sistema. Para saber si un sistema es observable o no utilizamos también las funciones rank y det, para evaluar el rango y el determinante de las matrices. Con estas funciones podemos evaluar si el rango de la matriz de observabilidad es igual a la dimensión de la matriz de estado A. Ejemplo E.6.7: Determinar la observabilidad del siguiente sistema:

Solución: La matriz de observabilidad del sistema es:

Así, tenemos:

aplicando el determinante:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 189

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Como el determinante de la matriz de observabilidad es diferente de 0, entonces existe    %    ' "+ *%& " W &‰"  " ' ‰" " 7& %& to, es decir 2. Como su rango es 2 y coincide con la dimensión de la matriz A, el sistema es observable. Si resolvemos el mismo ejemplo con Matlab debemos operar introduciendo la matriz de estados A y la matriz de salidas C. A=[ C=[

0

1; -2 -3

1 0

];

];

OO = [ C; C*A ]; Det_Observabilidad = det(OO) Respuesta del Matlab: >>Det_Observabilidad = 1 El sistema es observable por ser SISO y por tener el determinante de la matriz de controlabilidad diferente de 0. Ejemplo E.6.8: Para diseñar el observador de estados que se encargue de estimar los estados de un satélite, debemos, como paso previo, determinar la observabilidad del siguiente sistema:

Solución: La matriz de observabilidad del sistema es:

Así, tenemos:

190

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

Del álgebra lineal sabemos que el rango de la matriz ϑ es el número de líneas linealmente independientes. Para este caso, el rango es igual a 4. Como la dimensión de la matriz A, es decir n, es 4 y es igual al rango, entonces el sistema es observable. Si deseamos resolverlo mediante el Matlab, debemos operar de la siguiente manera: Introducimos la matriz de estados A y la matriz de salidas C. A=[ 0

1 0 0 ; 3 0 0 2; 0 0 0 1; 0 -2 0 0 ];

C=[ 1 0 0

0; 0 0 1 0 ];

OO = [ C; C*A; C*A*A; C*A*A*A ]; Observabilidad = rank(OO) Respuesta del Matlab: >>Observabilidad = 4 El sistema es observable por tener el rango de la matriz de observabilidad igual a las dimensiones de la matriz del sistema.

6.5. Controlabilidad de la salida: Es un caso muy especial y hasta extraño. En él se busca controlar la salida en vez de controlar algún estado.

6.5.1 Método para determinar la controlabilidad a la salida: Enunciaremos un método para determinar si un sistema es de salida controlable. Como veremos, la controlabilidad de la salida es una propiedad que depende de todas las matrices del sistema A, B, C y D.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 191

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

 + &"  ' ; %&' & #        & m x (n+1)p, para los casos en que la matriz de transmisión directa D sea diferente que cero, y estaría compuesta de la siguiente manera:

Para el caso en que la matriz de transmisión directa D, sea igual a cero, se usa la siguiente matriz de controlabilidad de la salida, de dimensiones m x np:

Donde m es la cantidad de salidas, p es la cantidad de entradas y n es el orden del sistema. Si el rango de la matriz es m (rango=m), el sistema es de salida controlable. Ejemplo E.6.9: Determinar la controlabilidad, observabilidad y la controlabilidad de la salida del siguiente sistema:

Solución: a.

Controlabilidad: La matriz de controlabilidad del sistema es:

Así, tenemos:

aplicando el determinante:

192

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

Como el determinante de la matriz de controlabilidad es diferente de cero, el sistema es controlable. b.

Observabilidad: La matriz de observabilidad del sistema es:

Así, tenemos:

aplicando el determinante:

Como el determinante de la matriz de observabilidad es diferente de cero, el sistema es observable. c.

Controlabilidad de la salida: La matriz de controlabilidad de la salida del sistema es:

Así, tenemos:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 193

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Es obvio observar, que el rango de la matriz de controlabilidad de la salida es 1, y dado que el número de salidas es 1, el sistema tiene salida controlable. Ejemplo E.6.10: En 1969 en Alemania, se diseñó el tren magnético con capacidad de al% ;  &QQȯ5$ ' ‰"  " && + &' % 7Œ'% W &%"     fricción. Asumir los siguientes valores: M = 100, G = 5, H = 1, L = 10 y R = 3.

Determinar: a.

Las ecuaciones de estado de la suspensión del tren

b.

Estabilidad

c.

Controlabilidad

d.

Observabilidad

Solución: Primero, tenemos que saber que lo que vamos a determinar o controlar es la altura del vagón. Pero, esta altura debe ir en función de la referencia h, que es constante. Por tal motivo, vamos a controlar d. Donde:

194

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

=%&  ' W  +%  '  W%& &‰"   Gravedad, responde a la siguiente ecuación:

reemplazando (2) en (1):

Debemos determinar las ecuaciones que gobiernan al sistema y a simple vista se determinan dos: la del sistema de cuerpo libre y la del circuito del electroimán. Diagrama de cuerpo libre:

Si despejamos la variable de mayor orden, tenemos:

Circuito magnético:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 195

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Si despejamos la variable de mayor orden tenemos:

Asumimos las variables de estado:

La entrada será u = v(t) y mientras que la salida será y = d . Las ecuaciones de estado son:

Si reemplazamos los valores que se consideraron en el enunciado del problema, respondemos a la pregunta (a), donde las ecuaciones serían:

Determinando la estabilidad (pregunta (b)), debemos calcular los valores propios de A.

196

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘_“|\^jkj^`j^}“``\`”^˜k`j^^`|k{\“j^^`”kj“`

Dado que el sistema tiene un polo con parte real positiva, el sistema es inestable. Resolviendo la pregunta (c), determinaremos la controlabilidad del sistema. Para ello, debemos estructurar la matriz de controlabilidad:

calculando el determinante de ζ :

Como el determinante es diferente de cero, podemos decir que el sistema es controlable. Pero, como el valor es muy pequeño, vemos que existe cierto riesgo para controlarlo. Por último, resolviendo la pregunta (d), determinaremos la observabilidad del sistema. Para ello, debemos estructurar la matriz de observabilidad:

calculando el determinante de ϑ :

Como el determinante es diferente de cero, podemos decir que el sistema es observable.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 197

www.full-ebook.com

www.full-ebook.com

Capítulo 7: Diseño de controladores de estado

A continuación se desarrollará el diseño de controladores de estado por medio de la ubicación de polos, teniendo como parámetros de entrada los polos del sistema. Se considera al sistema de forma general: x = Ax + Bu

y = Cx + Du para el cual existe una ley de control:

u = − Kx Si aplicamos la ley a la ecuación del sistema, teniendo en cuenta que los valores K del controlador son realimentados al sistema, obtenemos:

x = Ax + B (− Kx ) x = Ax − BKx x = ( A − BK )x De este último sistema de caso homogéneo, tenemos la siguiente solución: x(t) = e ( A − BK )t x(0)

Podemos indicar que si la matriz que afecta a x es estable, el sistema lleva a todos sus estados a cero.

λI − ( A − BK ) = 0 Si y solo si, todos los valores propios

λ tienen parte real negativa.

Todos los sistemas controlados mediante esta ley de control llevan a todos los estados a cero. Como apreciamos, el Controlador K se encarga de determinar cuál es la mejor señal de control u tomando como referencia al vector de estado actual x. Esta orden debe ser aplicada al actuador del sistema. En este capítulo veremos cómo calcular al controlador de estados K.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 199

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

7.1 Algoritmo para el cálculo del controlador de estados: A continuación, se describirá un algoritmo que calcula los valores del Controlador K, que lleve al sistema a obtener los polos deseados. 5 ³ +% %&' & #  5 La matriz

ζ de controlabilidad está conformada: ζ = [B

A 2 B .....

AB

A n−1 B

]

El sistema será controlable siempre que, el rango de la matriz

ζ sea igual al rango de la

matriz A. En el caso de un sistema SISO, la matriz de controlabilidad es cuadrada, lo cual implica alternativamente que para que la condición se cumpla, el determinante

ζ ≠ 0.

5  '   &%& +% '  & &&% %' Š'%& 

 # & '   &%& +% '  & &&% %' Š'%&5$' & && &#' ne a partir de la matriz A del sistema, de la siguiente manera: sI − A = (s − p1 )(s − p2 ) ....... ( s − pn ) = s n + a1s n−1 + a2 s n− 2 ....... an−1s + an



X&%& +% '  ƒ  a1 hasta an, serán usados más adelante para obtener los valores de los elementos de la matriz K.

3. Matriz de transformación La matriz T es la denominada matriz de transformación que convierte un sistema de cualquier forma a uno de Forma canónica controlable (FCC). Se halla de la siguiente manera: T = ζ ⋅W

La matriz W'  %&&  '&  &%& +% '  & &&% %' Š'%&

& en el paso anterior, los elementos dentro de la matriz se ordenan de la siguiente forma: ⎡ an−1 ⎢a ⎢ n− 2 ⎢ .. ⎢ W = ⎢ .. ⎢ .. ⎢ ⎢ a1 ⎢ 1 ⎣

200

an− 2 an−3 .. ..

.. .. .. .. .. .. .. ..

a1 1 .. ..

.. 1 0

.. .. .. .. .. .. ..

.. 0 0

1⎤ 0⎥⎥ .. ⎥ ⎥ .. ⎥ .. ⎥ ⎥ 0⎥ 0⎥⎦

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

5 > %" & &%& +% '  & &&% %' Š'%&  &5 Los un son los polos deseados del sistema, que son datos ingresados por el usuario. Al resolver las multiplicaciones de los binomios que contienen los polos, encontramos un polino&% %' Š'%&  &%"*&%& +% '  α n son los otros datos que necesitamos para

calcular K5=%&'" % " '  H&  ‰" '  Š  &%& +% '  α n : (s − u1 )(s − u2 )......( s − un ) = s n + α 1s n−1 + ..... + α n−1s + α n

5. Calculo de K. La matriz de ganancia K, también conocida como el controlador, se obtiene a partir de la " ' % %  H %   &%& +% '  α n y an, y con la inversa de la matriz T. K = [α n − an

α n−1 − an−1 ......

α 1 − a1 ]T −1

7.1.1 Método por excepción: Si el sistema es de un orden inferior (n\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

T =ζ W 1 ⎤ ⎡ 7 12 1⎤ ⎡0 0 ⎢ T = ⎢0 1 − 12⎥⎥ ⎢⎢12 1 0⎥⎥ ⎢⎣1 − 12 137⎥⎦ ⎢⎣ 1 0 0⎥⎦ ⎡1 0 0⎤ T = ⎢⎢0 1 0⎥⎥ ⎢⎣0 0 1⎥⎦

&' &  ' W

& &%& +% '  & &&% %' Š'%&  &  '   los polos deseados: (s − (−3 + 5 j ))(s − (−3 − 5 j ))(s − (−8))

(s + 3 − 5 j )(s + 3 + 5 j )(s + 8) s 3 + 14s 2 + 82s + 272

 & &#'  & &7" ' %& +% ' 

α 1 = 14 α 2 = 82

α 3 = 272 Por último, se halla la matriz de ganancia de realimentación del estado K: K = [α 3 − a3 α 2 − a2 α 1 − a1 ]T −1

⎡1 0 0⎤ K = [272− 1 82 − 7 14 − 12] ⎢⎢0 1 0⎥⎥ ⎣⎢0 0 1⎥⎦

−1

Entonces la solución al problema es: K = [271 75 2]

Ejemplo E.7.2: Determinar un controlador K que ubique los polos en s = −3 ± 5 j y

s = −8 , para el siguiente sistema. 1 0 ⎤ ⎡0 ⎡0⎤ ⎢ ⎥ x = ⎢ 0 0 1 ⎥ x + ⎢⎢0⎥⎥u ⎣⎢− 1 − 7 − 12⎦⎥ ⎣⎢1⎦⎥

y = [0 1 0]x + [0]u

Usar el método por excepción.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 203

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución:   & # & +% ‰"  '   %& '  ' %&' & # W &' # jar en vano.

1 ⎤ ⎡0 0 ⎢ ζ = ⎢0 1 − 12⎥⎥ ⎣⎢1 − 12 137⎦⎥ Probamos su controlabilidad, comprobando si esta matriz tiene rango completo a través de su determinante. Es decir, si esta es diferente de cero, la matriz es de rango completo.

ζ = −1 Por lo tanto, el sistema es controlable. Como paso siguiente, asumimos que K = [k1

k2

k3 ] y con esta variable igualamos con

la ecuación característica deseada de la cual se obtiene: (s + 3 − 5 j )(s + 3 + 5 j )(s + 8) = sI − A + BK 1 0 ⎤ ⎡0⎤ ⎡ s 0 0⎤ ⎡ 0 ⎢ ⎥ ⎢ s + 14s + 82s + 272 = ⎢0 s 0⎥ − ⎢ 0 0 1 ⎥⎥ + ⎢⎢0⎥⎥[k1 ⎢⎣0 0 s ⎥⎦ ⎢⎣− 1 − 7 − 12⎥⎦ ⎢⎣1⎥⎦ 3

2

s 3 + 14s 2 + 82s + 272 =

s

−1

0

0

s

−1

1 + k1 7 + k2

k2

s + 12 + k3

s 3 + 14s 2 + 82s + 272 = s 3 + (12 + k3 )s 2 + (7 + k2 )s + 1 + k1

Por lo tanto, tenemos tres ecuaciones simultáneas: 12 + k 3 = 14 7 + k 2 = 82 1 + k1 = 272

cuyo resultado es: k3 = 2 k 2 = 75 k1 = 271

el cual conforma la matriz del controlador K de la siguiente manera:

204

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

k3 ]

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

K = [271 75 2]

Ejemplo E.7.3: Determinar un controlador de estado cuyos polos estén ubicados en

ui = −2,4 ± 3,6 j , para el siguiente sistema: ⎡ 0 1⎤ ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣18.1 0⎦ ⎣1⎦ y = [1 0]x + [0]u

Solución: >& ; & +% & %&' & #   '  W&   ' ; ζ es:

⎡0 1⎤ ⎥ ⎣1 0⎦

ζ =⎢ El determinante de

ζ = −1, por lo tanto el sistema es controlable.

Utilizaremos la forma por excepción para resolver este ejemplo, ya que el rango de la matriz A es menor a 3. ⎡ s 0⎤ ⎡ 0 1⎤ ⎡0⎤ (s + 2. 4 + 3. 6 j )(s + 2. 4 − 3. 6 j ) = ⎢ ⎥−⎢ ⎥ + ⎢ ⎥[k1 k2 ] ⎣0 s ⎦ ⎣18.1 0⎦ ⎣1⎦ s 2 + 4. 8s + 18.72 =

s −1 k1 − 18.1 k2 + s

s 2 + 4. 8s + 18.72 = s 2 + k2 s + k1 − 18.1 k1 − 18.1 = 18.72 k2 = 4. 8

La matriz del Controlador K es:

7.2 Utilizando Matlab para el diseño de controladores: Se ha implementado la función controlador.m útil tanto para sistemas MIMO, como para sistemas SISO. Esta función comprueba el resultado obtenido de la siguiente forma: calcula los valores propios de la matriz realimentada con los valores K obtenidos, y si estos valores propios del sistema realimentado son iguales a los polos deseados inicialmente, entonces el resultado es el correcto. $ % &  &'  JJKW  ' ; %&' & #  '  ƒ' ' + %&& '   tenga el sistema.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 205

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

7.2.1 Matlab M-File de controlador.m para el diseño de controladores de estado: A continuación se plantea el texto del programa para Matlab1 (M-File) que compone a la función controlador, la cual resuelve los controladores de estado por ubicación de polos. Adicionalmente, para los casos de sistemas SISO, se puede emplear la función acker, que viene con el Toolbox de Control del Matlab. function [K]=controlador(A,B,polos_d) %1.Determinar si escontrolable n=size(A,1); CC=[ ]; for k=1:n CC=[CC (A^(k-1))*B]; end prueba=rank(CC); if(prueba==n) disp(‘El sistema es controlable’) else disp(‘El sistema es no controlable’) end %2.Determinar polos polos=eig(A); [n,n]=size(A); pc=1; for k=1:n pc=conv(pc,[1 -polos(k,1)]); end a(1:n,1)=pc(1,2:n+1)’; %3. %3.1 Hallando W  @ for col=1:n

 @@  ‘   @   ¡  ‘   @Š ‘   @  ¢  end end end

X&' •'& %"    +    Š   &7  % J ' #5

206

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

for k=1:n W(:,k)=Wi(:,n-k+1); end aux1=1;aux2=n; [b1,b2]=size(B); for i=1:b2 n=size(A,1); CC=[ ]; for k=1:n CC=[CC (A^(k-1))*B(:,i)]; end T=CC*W; %4. alfai pcd=1; polo1=polos_d(aux1:aux2,1); for k=1:n pcd=conv(pcd,[1 -polo1(k,1)]); end alfa(1:n,1)=pcd(1,2:n+1)’; Ki=(alfa-a)’; for k=1:n K(:,k)=Ki(:,n-k+1); end K=K*inv(T); disp(‘------------------------------------------------------------------------ ‘) disp(‘ ‘) disp(‘Comprobación: deben aparecer los polos deseados que ingreso’) polos_deseados=eig(A-B(:,i)*K) aux1=aux1+n; aux2=aux2+n; Kaux(i,:)=K; end disp(‘------------------------------------------------------------------------ ‘) disp(‘ ‘) disp(‘Matriz K del Controlador’) K=Kaux;

Ejemplo E.7.4: resolveremos el Ejemplo E.7.1 de este capítulo, utilizando la función controlador.m en Matlab. Solución: Para ello debemos digitar:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 207

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

A=[0 1 0;0 0 1;-1 -7 -12]; B=[0; 0; 1]; polos=[-8 -3+5*j -3-5*j]’; controlador(A,B,polos) La respuesta del Matlab es: El sistema es controlable ------------------------------Comprobación: deben aparecer los polos que ingresó polos_deseados =

-3.0000 + 5.0000i -3.0000 – 5.0000i -8.0000

-------------------------------Matriz K del Controlador ans = 271.0000 75.0000 2.0000 Como se puede apreciar, los resultados obtenidos mediante el Matlab coinciden con los calculados anteriormente.

Ejemplo E.7.5: resolveremos el Ejemplo E.7.3 de este capítulo, utilizando la función controlador.m en Matlab. Solución: Ingresamos a Matlab los datos del ejemplo E.7.3: A=[0 1;18.1 0]; B=[0;1]; polos=[-2.4+3.6*j -2.4-3.6*j]’; controlador(A,B,polos) El resultado es el siguiente: El sistema es controlable ------------------------------Comprobación: deben aparecer los polos que ingresó polos_deseados =

-2.4000 + 3.6000i -2.4000 – 3.6000i

-------------------------------Matriz K del Controlador ans = 36.8200 4.8000

208

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

Nuevamente, si comparamos los valores del vector de estado K, con los valores obtenidos anteriormente, se puede apreciar que son iguales.

Ejemplo E.7.6: probaremos la función controlador.m con un sistema MIMO. El sistema será el siguiente:

1⎤ ⎡0 ⎡4 0⎤ x = ⎢ x+⎢ ⎥ ⎥u ⎣− 2 − 3⎦ ⎣0 5⎦ y los polos deseados serán -6, -7, -8, y -9. Solución: Para determinar la matriz K, solo necesitamos las matrices A y B. A=[0 1;-2 -3]; B=[4 0; 0 5]; polos=[-6 -7 -8 -9]’; controlador(A,B,polos) El resultado de Matlab es: El sistema es controlable ------------------------------Comprobación: deben aparecer los polos que ingresó polos_deseados =

-7 -6

------------------------------Comprobación: deben aparecer los polos que ingresó polos_deseados =

-8 -9

-------------------------------Matriz K del Controlador ans = 2.5000 -1.2500 14.0000

2.8000

El resultado obtenido es correcto, porque observamos que en la comprobación se reprodujeron los polos que ingresamos.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 209

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ejemplo E.7.7: El péndulo invertido es uno de los problemas clásicos del control moderno. En él se ven contenidos los conceptos para la correcta actitud de vuelo vertical de un cohete que debe salir de la atmósfera y sus órganos de control están en la parte posterior de fuselaje. El caso completo, de tres dimensiones, guarda mucha semejanza con el juego infantil de tratar de mantener vertical a una escoba parada sobre la palma de la mano. Para efectos de nuestro problema consideraremos un péndulo invertido de dos dimensiones de la siguiente manera:

l

m, I

F

θ

M

x Donde:

M = Masa del carro (0.5 kg) m = Masa del péndulo (0.2 kg) b = Fricción del carro (0.1 N/m/s) l = Distancia del extremo al centro de gravedad del péndulo (0.3 m) I = Inercia del péndulo (0.006 kg m2) F = Fuerza aplicada al carro x = Coordenada de la posición del carro



£ = Ángulo del péndulo con respecto a la vertical

Se pide determinar el modelo lineal del sistema, analizar su estabilidad, controlabilidad y observabilidad. Diseñar un controlador de estados que mantenga la posición del péndulo en 0° (asumir los polos deseados en −15, −18, −20 y −16). Simular al sistema con y sin controlador. Solución: Debemos comenzar con el análisis del sistema mecánico y sus diagramas de cuerpo libre. Para ello asumimos que el centro de gravedad del péndulo es lo que debemos controlar, * & +/ %&&% ' & %&&     "'& '  %% '  %

&*  péndulo.

210

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

Iθ2

Iθ2cosθ

Iθ2sinθ θ m, I

P N

F

N P

bx

M x

Donde:

P = Peso del péndulo N = Fuerza normal aplicada en el punto g = Aceleración de la gravedad (9.81 m/s2)

bx = Fuerza de la fricción del carro l = Distancia al del extremo al centro de gravedad del péndulo (0.2 m)

Iθ 2 = Fuerza centrífuga

F = Fuerza aplicada al carro x = Coordenada de la posición del carro 

£ = Ángulo del péndulo con respecto a la vertical

Las coordenadas del centro de gravedad del brazo del péndulo: xG = x + l sinθ yG = l cosθ

Del mismo modo, el movimiento rotacional del péndulo se representa por la siguiente ecuación: Iθ = Pl sinθ − Nl cosθ

Con toda esta información determinamos las sumatorias de fuerzas tanto en el carro, como en el péndulo: a.

Sumatoria de fuerzas horizontales en el péndulo: ∑ F = ma m

d 2 (x + l sinθ ) = N + Iθ 2 sinθ 2 dt

b. Sumatoria de fuerzas verticales en el péndulo:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 211

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

∑ F = ma m

c.

d 2 (l cosθ ) = P − mg + Iθ 2 cosθ 2 dt

Sumatoria de fuerzas en el carro: ∑ F = ma M

d 2 (x) = F − N − bx dt 2

Como condición inicial tenemos que el péndulo debe permanecer en posición vertical, y como vamos a diseñar un controlador para que trabaje adecuadamente, podemos suponer que el ángulo θ , siempre va a tener un valor pequeño. Es decir, cercano al cero. Por lo tanto:

θ ≈ 0° sinθ = θ cosθ = 1

θ 2 = 0 Reemplazando estos datos en nuestras cuatro ecuaciones anteriores, tanto la rotacional como las de las sumatorias de fuerzas, tenemos: Iθ = Pl sinθ − Nl cosθ

Iθ = Pl θ − Nl m

d 2 (x + l sinθ ) = N + Iθ 2 sinθ dt 2 mx + mlθ = N

m

… (2)

d 2 (l cosθ ) = P − mg + Iθ 2 cosθ dt 2 0 = P − mg M

… (3)

d 2 (x) = F − N − bx dt 2 Mx = F − N − bx

Si reemplazamos la ecuación (2) en la (4):

212

… (1)

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

… (4)

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

Mx = F − bx − mx − mlθ (M + m)x + bx + mlθ = F

… (I)

del mismo modo, si reemplazamos la ecuación (3) en la (1):

Iθ = mglθ − Nl ahora, debemos reemplazar la ecuación (5) en la (2): Iθ = mglθ − mlx − ml 2θ (I + ml 2 )θ + mlx = mglθ

… (II)

si de (II) despejamos θ :

θ =

mglθ − mlx I + ml 2

y la reemplazamos en (I): (M + m)x + bx + ml

mglθ − mlx =F I + ml 2

(I + ml 2 )(M + m)x + b(I + ml 2 )x + m2l 2 gθ − m2l 2 x = (I + ml 2 )F [ I (M + m) + Mml 2 + m2l 2 − m2l 2 ]x + b(I + ml 2 )x + m2l 2 gθ = (I + ml 2 )F [ I (M + m) + Mml 2 ]x + b(I + ml 2 )x + m2l 2 gθ = (I + ml 2 )F

Posteriormente, despejamos x , la cual es una de las variables de mayor orden, para obtener:

x = −

m2 l 2 g b(I + ml 2 ) I + ml 2  θ − F + x I (M + m) + Mml 2 I (M + m) + Mml 2 I (M + m) + Mml 2

… (A)

Luego en (I), despejamos la variable x : x =

F − bx − mlθ M +m

y lo reemplazamos en (II): F − bx − mlθ (I + ml 2 )θ + ml = mglθ M +m (M + m)(I + ml 2 )θ + mlF − mlbx − m2l 2θ = (M + m)mglθ [ I (M + m) + Mml 2 + m2l 2 − m2l 2 ]θ + mlF − mlbx = (M + m)mglθ [ I (M + m) + Mml 2 ]θ + mlF − mlbx = (M + m)mglθ

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 213

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Igual que en los pasos anteriores despejamos θ, que es la otra variable de mayor orden, para tener:

θ =

mlb ml (M + m)mgl θ+ x − F 2 2 I (M + m) + Mml I (M + m) + Mml I (M + m) + Mml 2

… (B)

=& W +&   #   ' &W  %'&   ' &*"    ⎡θ ⎤ ⎢θ⎥ x=⎢ ⎥ ⎢ x⎥ ⎢ ⎥ ⎣ x ⎦

y

⎡θ ⎤ ⎢ ⎥ θ x = ⎢ ⎥ ⎢ x ⎥ ⎢ ⎥ ⎢⎣ x⎥⎦

la entrada del sistema y las salidas: u=F

e

⎡θ ⎤ y=⎢ ⎥ ⎣ x⎦

Si reemplazamos las ecuaciones (A) y (B) en las de estado de un sistema 4x4, con una entrada y dos salidas, tenemos:

0 ⎡ ⎡θ⎤ ⎢ (M + m)mgl ⎢θ⎥ ⎢ 2 ⎢ ⎥ = ⎢ I (M + m) + Mml 0 ⎢ x ⎥ ⎢ m2l 2 g ⎢ ⎥ ⎢ ⎣ x⎦ ⎢− I (M + m) + Mml 2 ⎣

0 0 ⎡ ⎤ ⎤ mlb ml ⎥ ⎥ ⎡θ ⎤ ⎢ − 0 0 2⎥ 2 ⎥ ⎢ ⎥ ⎢ θ I (M + m) + Mml ⎢ ⎥ I (M + m) + Mml +⎢ ⎥F ⎥ 0 0 1 0 ⎥ ⎢ x ⎢ ⎥ ⎥ 2 2 b(I + ml ) I + ml ⎥ ⎥ ⎢ x ⎥ ⎢ 0 0 − I (M + m) + Mml 2 ⎥⎦ ⎣ ⎦ ⎢⎣ I (M + m) + Mml 2 ⎥⎦

1 0

⎡θ ⎤ ⎢ ⎥ ⎡θ ⎤ ⎡1 0 0 0⎤ ⎢θ⎥ ⎡0⎤ = ⎢ x ⎥ ⎢0 0 1 0⎥ ⎢ x ⎥ + ⎢0⎥ F ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎢ ⎥  x ⎣ ⎦

Formalmente veremos: 0 ⎡ (M + m)mgl ⎢ ⎢ I (M + m) + Mml 2 x = ⎢ 0 ⎢ m2 l 2 g ⎢− ⎢⎣ I (M + m) + Mml 2

0 0 ⎤ ⎡ ⎤ mlb ml ⎥ ⎢ ⎥ − 0 0 2 ⎥ 2⎥ ⎢ I (M + m) + Mml I (M + m) + Mml ⎥u ⎥x + ⎢ 0 0 1 0 ⎥ ⎢ ⎥ 2 2 b(I + ml ) I + ml ⎥ ⎢ ⎥ 0 0 − ⎢⎣ I (M + m) + Mml 2 ⎥⎦ I (M + m) + Mml 2 ⎥⎦

1 0

⎡1 0 0 0⎤ ⎡0⎤ y=⎢ x + ⎢ ⎥u ⎥ ⎣0 0 1 0⎦ ⎣0⎦

Con el modelo matemático como ecuaciones de estado, vamos a continuar resolviendo el problema con ayuda del Matlab.

214

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

Como primer paso inicializamos el programa y cargamos las constantes. % Péndulo Invertido. clear all; close all; clc % Constantes del Sistema. M = 0.5; m = 0.2; b = 0.1; I = 0.006; g = 9.81; l = 0.3; &' &  ' W% 7 &  ' %    %" %&   ' &W &  & +nimos una constante, a modo de variable intermedia, para facilitar el tipeo de las matrices: % Matrices de sistema para las ecuaciones de estado. ”@Ÿ€††€€¤   ˜     ¥ A=[

0

10

0

((M+m)*m*g*l)/q 0

00

(m*l*b)/q

1

-(((m*l)^2)*g)/q B=[

00

0 0 -(b*(I+m*l^2))/q ]

0

-(m*l)/q 0 (I+m*l^2)/q ] C=[1 0 0 0 0 0 1 0] D=[0 0] Matlab responde: A=

B=

0

1.0000

0

0

31.2136

0

0

0.4545

0

0

0

1.0000

-2.6755

0

0

-0.1818

0 -4.5455 0 1.8182

C=

1 0 0 0 0 0 1 0

D=

0 0

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 215

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Esto implica que el sistema quedaría de la siguiente manera: 0 1. 0000 ⎡ ⎢ 31.2136 0 x = ⎢ 0 0 ⎢ ⎢ 0 ⎣ − 2. 6755

0 ⎤ 0 ⎤ ⎡ ⎢ ⎥ 0. 4545 − 4. 5455⎥ ⎥x + ⎢ ⎥u 1. 0000 ⎥ 0 ⎥ ⎢ ⎢ ⎥ ⎥ 0 − 0. 1818⎦ ⎣ 1. 8182 ⎦ 0 0 0

⎡1 0 0 0⎤ ⎡0⎤ y=⎢ x + ⎢ ⎥u ⎥ ⎣0 0 1 0⎦ ⎣0⎦ Con estos valores, vamos a determinar la estabilidad a través del Matlab, nuevamente: % Estabilidad. Polos = eig(A) coa = 0; for co = 1:max(size(Polos)) if Polos(co)>=0 disp (‘El Sistema es Inestable.’) coa = 1; break end end if coa==0 disp(‘El Sistema es Estable.’) end Matlab responde: Polos = 0 5.5680 -5.6069 -0.1428 El sistema es inestable Ahora determinaremos la controlabilidad: % Controlabilidad. Cont = [ B A*B (A^2)*B (A^3)*B ]; if rank(Cont)==4 disp(‘El Sistema es Controlable.’) else disp(‘El Sistema no es Controlable.’) end

216

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

Matlab responde: El sistema es controlable. Posteriormente, determinaremos la observabilidad: % Observabilidad. Obs = [ C C*A C*(A^2) C*(A^3) ]; if rank(Obs)==4 disp(‘El Sistema es Observable.’) else disp(‘El Sistema no es Observable.’) end Matlab responde: El sistema es observable. =%&'" % + &  '  %&&"" &"' &W %&%& %  y los tiempos de simulación desde cero hasta dos segundos tomados con una diferencial de ' & Q5QQ &"+% '  ‰" ™  ‰"  '   %&& ' %&& ' '   un sistema de tiempo continuo. % Entrada. u = 1;

% Impulso Unitario.

’  ˜ `  „  ˜– ti = 0;

% Tiempo Inicial.

tf = 6;

% Tiempo Final.

dt = 0.001;

% Diferencial de Tiempo.

% Condiciones Iniciales. x = [ 2 -0.5 0 0 ]’; % Asumimos que el péndulo está inclinado 2° Ahora, armamos el lazo de la simulación donde almacenaremos cada una de las variables de estado, el tiempo y las salidas: % Simulación. k = 1; for t = ti:dt:tf X1(k,1) = x(1,1); % Ángulo (Theta) X2(k,1) = x(2,1); % Velocidad Angular (Theta Punto)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 217

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

X3(k,1)=x(3,1); % Posición del Carro(Equis) X4(k,1)=x(4,1); % Velocidad del Carro(Equis) TT(k,1)=t; % Ecuaciones de Estado. xp = A*x + B*u; y = C*x + D*u; Y1(k,1) = y(1,1); % X1 Y2(k,1) = y(2,1); % X3 % Integrando mediante Euler. x = x + dt*xp; k = k + 1; u = 0; end >& & '&    #   %   W &%  & 7 +% W' '&   #   estado como las salidas: ‹  „  –  subplot(221) plot(TT,X1,’b’) title(‘Ángulo del Péndulo’) xlabel(‘Tiempo (Segundos)’) ylabel(‘°’) subplot(222) plot(TT,X2,’b’) title(‘Velocidad Angular del Péndulo’) xlabel(‘Tiempo (Segundos)’) ylabel(‘°/s’) subplot(223) plot(TT,X3,’b’) title(‘Estado X de la Posición del Carro’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Metros’) subplot(224) plot(TT,X4,’b’) title(‘Estado X de la Velocidad del Carro’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Metros/Segundo’)  subplot(221) plot(TT,Y1)

218

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

title(‘Salida Y1 de la Ángulo del Péndulo’) xlabel(‘Tiempo (Segundos)’) ylabel(‘º’) subplot(222) plot(TT,Y2) title(‘Salida Y2 de la Posición del Carro.’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Metros’) subplot(212) plot(TT,Y1,’r-’,TT,Y2,’b-’) title(‘Salidas: Ángulo del Péndulo y Posición del Carro.’) xlabel(‘Tiempo (Segundos)’); legend(‘Ángulo’,’Posición’) $   7 ƒ+%&  ' &&  J ' #W‰" %&'    %" ' &  #   ' &W es el siguiente:

3

Ángulo del Péndulo

x 10 14

16

Velocidad Angular del Péndulo

x 10 14

14 2. 5 12 2

10 8

1. 5 6 1

4 2

0. 5 0 0

0

1

2

3

4

5

ž

6

0

1

Tiempo (Segundos)

0

x 10 13

2

3

4

5

6

Tiempo (Segundos)

Estado X de la Posición del Carro 0

x 10 13

Estado X de la Velocidad del Carro

0

1

ž2

Metros/Segundo

Metros

ž0. 5

ž1

ž1. 5

ž4 ž6 ž8 ž10

ž2 ž12 ž2. 5

0

1

2

3

4

5

6

ž14

Tiempo (Segundos)

2

3

4

5

6

Tiempo (Segundos)

Claramente se aprecia que ninguna variable tiende a un estado estable. En otras palabras, %&+  &7 ƒ+%  ' ‰"  '    ' # 5 $  7"&7 ƒ+%&  ' &&  J ' #W&" '    

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 219

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“ x 10

3

14

Salida Y1 del Ángulo del Péndulo 0

2. 5

x 10

13

Salida Y2 de la Posición del Carro

žQ55

Metros

2 1. 5

ž

ž55

1 ž

0. 5 0

0

1

2

3

4

5

ž55

6

0

1

2

Tiempo (Segundos)

3

x 10

3

4

5

6

Tiempo (Segundos)

Salidas: Ángulo del Péndulo y Posición del Carro

14

Ángulo Posición

2. 5 2 1. 5 1 0. 5 0 ž0. 5

0

1

2

3

4

5

6

Tiempo (Segundos)

Vemos claramente la coincidencia entre las salidas y las variables de estado correspondientes. En otras palabras, podemos ver que la salida y1 = x1 = θ y que la salida y 2 = x 2 = x . =& W ™ & %&' & &   ' &W& "#% % & &W&+% &" tro programa inicial de la siguiente manera: % Diseño del Controlador. %_________________________ % Polinomio Característico. p1 = [ 1 -Polos(1) ]; p2 = [ 1 -Polos(2) ]; p3 = [ 1 -Polos(3) ]; p4 = [ 1 -Polos(4) ]; apc = conv(p1,conv(p2,conv(p3,p4))); % Matriz de Transformación T. % T = Cont*W W=[

apc(4) apc(3) apc(2)

1

apc(3) apc(2) 1

0

apc(2) 1

0

0

1

0

0 ];

0

T = Cont*W;

220

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

% Introducimos los polos deseados. Polos_d = [

-5

-5 -5 -5 ]; pd1 = [ 1 -Polos_d(1) ]; pd2 = [ 1 -Polos_d(2) ]; pd3 = [ 1 -Polos_d(3) ]; pd4 = [ 1 -Polos_d(4) ]; adpc = conv(pd1,conv(pd2,conv(pd3,pd4))); K = [ adpc(5)-apc(5) adpc(4)-apc(4) adpc(3)-apc(3) adpc(2)-apc(2)]*inv(T) N_Polos = eig(A-B*K) Ante este procedimiento los resultados son los siguientes: K = -45.4735 -8.8852 -14.0163 -11.3130 N_Polos = -5.0000 -5.0000 -5.0000 -5.0000 $'&7+% ‰"   '+%  && &  &W %&' & & % %" &%" %& & requerimientos dispuestos inicialmente de polos, y que el procedimiento ha sido correctamente aplicado. Por lo tanto el controlador es:

K = [− 45. 4735 − 8. 8852 − 14. 0163 − 11. 3130] A continuación, simularemos cerrando el lazo de control al aplicar la Ley de Control mediante la matriz K: % Entrada. u = 1;

% Impulso Unitario.

% Simulación. k = 1; for t = ti:dt:tf X1(k,1) = x(1,1); % Ángulo (Theta) X2(k,1) = x(2,1); % Velocidad Angular (Theta Punto) X3(k,1) = x(3,1); % Posición del Carro (Equis) X4(k,1) = x(4,1); % Velocidad del Carro (Equis Punto) TT(k,1) = t;

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 221

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

% Ecuaciones de Estado. xp = A*x + B*u; y = C*x + D*u; u = -K*x; % Ley de Control Y1(k,1) = y(1,1); % X1 Y2(k,1) = y(2,1); % X3 % Integrando mediante Euler. x = x + dt*xp; k = k + 1; end "  ' 7 +% &   #   ' &*   W & &  '   'ƒ trabajando con un controlador de estados: ‹  „  –  subplot(221) plot(TT,X1,’b’) title(‘Ángulo del Péndulo’) xlabel(‘Tiempo (Segundos)’) ylabel(‘º’) subplot(222) plot(TT,X2,’b’) title(‘Velocidad Angular del Péndulo’) xlabel(‘Tiempo (Segundos)’) ylabel(‘º/s’) subplot(223) plot(TT,X3,’b’) title(‘Estado X de la Posición del Carro’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Metros’) subplot(224) plot(TT,X4,’b’) title(‘Estado X de la Velocidad del Carro’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Metros/Segundo’)  subplot(221) plot(TT,Y1) title(‘Salida Y1 de la Ángulo del Péndulo.’) xlabel(‘Tiempo (Segundos)’) ylabel(‘°’)

222

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

subplot(222) plot(TT,Y2) title(‘Salida Y2 de la Posición del Carro.’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Metros’) subplot(212) plot(TT,Y1,’r-’,TT,Y2,’b-’) title(‘Salidas: Ángulo del Péndulo y Posición del Carro.’) xlabel(‘Tiempo (Segundos)’) legend(‘Ángulo’,‘Posición’) $ ' % 7 ƒ+%&  ' &&  J ' #W%&'    %" ' &  #   ' &%&troladas:

3

x 10

Ángulo del Péndulo

14

2

2

x 10

Velocidad Angular del Péndulo

15

1

1

0

0 ž1 ž ž2

ž

ž3

ž! ž

0

1

2

3

4

5

ž4

6

0

1

Tiempo (Segundos)

5

x 10

2. 5

Metros/Segundo

3

Metros

4

5

6

x 10

15

Estado X de la Velocidad del Carro

2

4

2 1 0 ž1

3

Tiempo (Segundos)

Estado X de la Posición del Carro

14

2

1. 5 1 0. 5 0 ž0. 5

0

1

2

3

4

5

6

ž1

0

1

Tiempo (Segundos)

2

3

4

5

6

Tiempo (Segundos)

= %&' &   7 ƒ+%&& & •'Š 7" %   %&' & W &    %  ‰" '&    #   ' &'   " ' & ' # 5>&

&%&+  &7 ƒ+camente que el sistema es estable y que todas las variables tienden a cero. $ %" '&7 ƒ+%& &    #    %&' &  5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 223

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

3

x 10

14

Salida Y1 del Ángulo del Péndulo 5

2

14

Salida Y2 de la Posición del Carro

4

1

Metros

3

0 ž

2 1

ž

0

ž! ž

x 10

0

1

2

3

4

5

ž1

6

0

1

2

Tiempo (Segundos)

6

x 10

3

4

5

6

Tiempo (Segundos)

Salidas: Ángulo del Péndulo y Posición del Carro

14

Ángulo Posición

4

2

0

ž2

ž4

0

1

2

3

4

5

6

Tiempo (Segundos)

Ejemplo E.7.8: Diseñar un controlador de estados para un motor de posición cuyo modelo matemático fue determinado en el Ejemplo E.4.4, donde la salida del sistema será solamente la posición angular. Los polos deseados para el diseño del controlador son -3+5j, -3-5j y -2. ⎡ R ⎢− L ⎢ K x = ⎢ ⎢ J ⎢ 0 ⎢⎣

K L b − J 1



⎤ 0⎥ ⎡1⎤ ⎢L⎥ ⎥ 0⎥ x + ⎢ 0 ⎥u ⎢ ⎥ ⎥ ⎢ 0⎥ 0⎥ ⎢⎣ ⎥⎦ ⎥⎦

y = [0 0 1] x + [0]u

Las constantes del sistema son: Momento de inercia del motor:

J = 0.01 kg m2/s2

Relación de amortiguamiento:

b = 0.1 Nms

Constante de fuerza electromotriz:

K =Ke=Kt = 0.01 Nm/Amp

Resistencia eléctrica:

R = 1 Ohm

Inductancia eléctrica:

L = 0.5 H

Solución: Como en el ejemplo anterior, el análisis del sistema lo desarrollaremos con Matlab.

224

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

Para ello iniciamos nuestro programa, cargamos las constantes del sistema y las matrices del mismo: % Motor DC con Control de Posición. clear all; close all; clc % Constantes del Sistema. J = 0.01; % Momento de Inercia del Motor. (kg m^2/s^2) b = 0.1; % Relación de Amortiguamiento. (Nms) K = 0.01; % Constante de Fuerza Electromotriz. (Nm/Amp) (K=Ke=Kt) R = 1; % Resistencia Eléctrica. (ohm) L = 0.5; % Inductancia Eléctrica. (H) % Matrices de Sistema para las Ecuaciones de Estado. A = [ -R/L -K/L 0 K/J -b/J 0 0

1 0 ];

B = [ 1/L 0 0 ]; C = [ 0 0 1 ]; D = [ 0 ]; Con los resultados del Matlab, vemos que las ecuaciones de estado son: ⎡2⎤ ⎡− 2 − 0. 02 0⎤ ⎥ ⎢ x = ⎢ 1 − 10 0⎥ x + ⎢⎢0⎥⎥u ⎢⎣0⎥⎦ ⎢⎣ 0 1 0⎥⎦ y = [0 0 1] x + [0]u

Diseñaremos el controlador mediante el comando ‘acker’ del Matlab, donde se colocan las matrices A y B, y los polos deseados. % Calculo del Controlador K = acker(A,B,[-3+5j; -3-5j; -2]); Con este comando, determinamos que el controlador de estados K, es:

K = [− 2 32.99 34] Planteamos la entrada, los parámetros de tiempo para una simulación de seis segundos y las condiciones iniciales. Dentro de estas últimas asumiremos que el motor está girado en 0.5 radianes (28.6°):

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 225

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

% Entrada Inicial. u = 1;

% Escalón Unitario.

’  ˜ `  „  ˜– ti = 0;

% Tiempo Inicial.

tf = 6;

% Tiempo Final.

dt = 0.001;

% Diferencial de Tiempo.

% Condiciones Iniciales. xo = [

0 0 0.5 ];

x = xo; Simulamos agregando la Ley de Control, almacenamos los datos para su posterior ploteo e integramos. % Simulación. k = 1; for t = ti:dt:tf CORR(k,1) = x(1,1); THETAP(k,1) = x(2,1); THETA(k,1) = x(3,1); TIEMPO(k,1) = t; % Ecuaciones de Estado. xp = A*x + B*u; y = C*x + D*u; u = -K*x; Y(k,1) = y; % Integrando mediante Euler. x = x + dt*xp; k = k + 1; end >&&Y '& &W7 +% &   #   ' &*    ‹    –  subplot(221) plot(TIEMPO,CORR) title(‘Estado x1: Corriente’) xlabel(‘Tiempo (Segundos)’) 226

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^{“[”_“}kj“_^`j^^`”kj“

ylabel(‘Amperios’) grid on subplot(222) plot(TIEMPO,THETAP) title(‘Estado x2: Velocidad Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes/Segundo’) grid on subplot(223) plot(TIEMPO,THETA) title(‘Estado x3: Posición Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) grid on subplot(224) plot(TIEMPO,Y,’r’) title(‘Salida y: Angular Theta’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) grid on X +7"   " %  7" '  Estado x1: Corriente

Estado x2: Velocidad Angular

2

Q51 0 žQ51

Radianes/Segundo

Amperios

0

ž

ž

žQ52 žQ53 žQ54 žQ55

ž žQ56 ž

žQ57 0

1

2

3

4

5

6

0

1

Tiempo (Segundos)

Estado x3: Posición Angular

3

4

5

6

5

6

Salida y: Angular Theta

Q57

Q57

Q56

Q56

Q55

Q55

Radianes

Radianes

2

Tiempo (Segundos)

Q54 Q53

Q54 Q53

Q52

Q52

Q51

Q51

0

0 0

1

2

3

4

5

6

0

1

Tiempo (Segundos)

2

3

4

Tiempo (Segundos)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 227

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

se puede apreciar cómo la posición angular baja desde los 0.5 radianes hasta alcanzar los 0 radianes. En cuanto a la corriente, utiliza un consumo negativo para hacer retroceder al sistema y deja de usar la entrada cuando la posición llega a cero. Por último, la salida corresponde a la tercera variable de estado, o sea, la posición angular.

228

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

Capítulo 8: Diseño de observadores de estado

Los observadores de estado son herramientas virtuales que permiten estimar las variables o estados de un sistema, basándose en mediciones de las señales de salida. Permiten enviar información acerca del valor que toman dichos estados, propiciando conocer un aproximado del valor real, además tienen muy poco margen de diferencia o error, sobre todo en una etapa inicial que podríamos considerar de sintonía. Posteriormente, la estimación de la salida es muy precisa. Para comprender el empleo de los observadores de estado, debemos tener una idea de la función completa de un sistema controlado. Los controladores de estado se encargarán de manipular al sistema de una manera estable hacia salidas esperadas, pero, para funcionar adecuadamente deben realimentarse todos los estados del sistema, lo cual es un concepto que ya fue tocado en el capítulo correspondiente. Los observadores son útiles, debido a que muchas veces los estados necesarios para la realimentación mediante el controlador, no están disponibles por motivos muy sencillos: a. Los sensores no existen: es obvio que para realimentar un estado, este debe ser sensado y si aún no ha sido inventado, la realimentación sería imposible, como es el caso de las reacciones nucleares o de estados de orden elevado como la derivada de la aceleración. b. Los sensores son demasiado caros: un motivo frecuente. Normalmente queremos medir estados como posición, aceleración, variación de ángulo, tensión, y ellos solamente pueden ser censados por instrumentos de medición extremadamente caros con respecto al sistema por controlar. Por ejemplo, colocarle un Girocompás Láser a un automóvil para determinar la velocidad crucero, lo haría no comercial debido a su precio. c. Los sensores producen demasiado ruido: esta es una función indirecta que podemos explotar de los observadores de estado. Cuando los sensores producen demasiado ruido, los observa& W #& "% %' Š'%  H %" % W+ ' ƒ" #"   ' &"'&'  5 A los observadores de estado se les considera una herramienta virtual, puesto que son software que corrige y estima al sistema.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 229

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

8.1 Tipos de observadores de estado: Existen dos tipos de observadores: de orden completo y de orden reducido u orden mínimo. Los observadores de orden completo, son utilizados para observar o estimar todos los estados de un sistema. Los observadores de orden reducido, son empleados para observar o estimar solo algunos estados de un sistema, los cuales no serán tratados en este texto.

8.2 Observadores de estado de orden completo: Dado el sistema: x = Ax + Bu y = Cx + Dx

Es factible asumir estados estimados para un sistema conocido, pero como ellos no son exactos *  &  &"% +  '  '   W # & 7 7 "  && % 

&  '     '  W&H %'&  %&

%%W%& +   %&  & Sistema real:

x = Ax + Bu

Sistema estimado u observado:

~ x = A~ x + Bu + L ( y − ~ y) donde: L

Vector de ganancias que permiten la observación de estados (1 x n)

230

~ x

Vector de estados estimados

y

Salida estimada

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

Gráfico 8.1. Diagrama de un sistema con observador de estados H

+

x

x

s

+

y

C

SISTEMA REAL

A u ~ x +

B

+

+

~ x +

~ y

s

C

+ + SISTEMA OBSERVADO

A L

Debe notarse que las matrices A, B, C, D son las mismas tanto para un sistema real como para el sistema estimado.

x se denomina error de observación, y el término L( y − ~ y) La diferencia existente entre x y ~ se denomina factor de corrección. Para determinar el error de observación restamos x − ~ x , así tenemos: x − ~ x = ( Ax + Bu) − ( A~ x + Bu + L ( y − ~ y ))

x − ~ x = Ax − A~ x − L( y − ~ y) x − ~ x = A(x − ~ x ) − L (Cx + Du − C ~ x − Du ) x − ~ x = A(x − ~ x ) − LC (x − ~ x)

x − ~ x = ( A − LC )(x − ~ x) >&& #Š & %& &W 

&  'ƒ +&%&& H %  '   ' & *  estado estimado, entonces se tendrá: e = x−~ x ~ e = x − x

e = ( A − LC )e A partir de esta expresión se puede conocer el comportamiento dinámico y la estabilidad del sistema, si la matriz |A-LC| es estable, entonces el observador hará bien su trabajo, y dada cualquier condición inicial, el sistema tenderá a un error cero.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 231

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

La elección de correctos valores para el vector de observabilidad L, permitirá que el comporta '&ƒ%&  %'&  

&   ' # * &"+% '  '  ƒ& '   " valor de cero. La estabilidad y la velocidad de respuesta de la dinámica del error se determinan mediante los autovalores de la matriz |A-LC|, dados por el polinomio característico |sI-A+LC|. Existe una condición necesaria, la cual consiste en que el sistema obtenido sea estable y completamente controlable y observable.

Ejemplo E.8.1: Determinar el polinomio característico del sistema siguiente, si se le agrega un observador de estados L. ⎡0 − 2⎤ ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣1 − 4⎦ ⎣1⎦ y = [0 1]x + [0]u Solución: Si el sistema es de orden 2, es de suponer que el observador también será de orden 2, y lo po & + %&&

⎡l ⎤ L = ⎢ 1⎥ ⎣l 2 ⎦ Luego, el polinomio característico estará dado por: 1 0⎤ ⎡0 − 2⎤ ⎡ l1 ⎤ ⎥−⎢ ⎥ + ⎢ ⎥[0 1] ⎣0 1⎦ ⎣1 − 4⎦ ⎣l 2 ⎦

[sI − A + LC ] = s ⎡⎢

s 0⎤ ⎡0 − 2⎤ ⎡0 l1 ⎤ ⎥ ⎥−⎢ ⎥+⎢ ⎣0 s ⎦ ⎣1 − 4⎦ ⎣0 l2 ⎦

[sI − A + LC ] = ⎡⎢

2 + l1 ⎤ ⎥ ⎣− 1 s + 4 + l 2 ⎦

[sI − A + LC ] = ⎡⎢

s

[sI − A + LC ] = s(s + 4 + l 2 ) + (2 + l1 ) [sI − A + LC ] = s 2 + (4 + l2 )s + (2 + l1)

8.3 Diseño de observadores de estado: Para calcular el valor del observador de estados, vamos a desarrollar tres formas que pueden utilizarse a conveniencia de cada uno. 232

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

8.3.1 Algoritmo para el cálculo del observador de estados: 5  '    ' ; &# #  * +%  &# #   '   ⎡ C ⎤ ⎢ CA ⎥ ⎥ Observabilidad: ϑ = ⎢ ⎢  ⎥ ⎢ n−1 ⎥ ⎣CA ⎦ b.

Calcular el polinomio característico original |sI-A|, el cual será: |sI-A| = sn + a1sn-1 + a2sn-2 + … + an-1s + an

c.

Es conveniente trabajar con las ecuaciones de estado en su forma canónica observable, si no está así, se debe determinar una matriz de transformación para llevarla a ' H&  W %"   + %&& Q = (W x ϑ )-1 En donde ϑ es la matriz de observabilidad, y W  + %&&

⎡ an−1 ⎢a ⎢ n− 2 W=⎢  ⎢ ⎢ a1 ⎣⎢ 1

an− 2  a1 1⎤ an−3  1 0⎥⎥    ⎥ ⎥ 1  0 0⎥ 0  0 0⎥⎦

En donde a1, a2, … an-2, an-3W& &%& +% '  & &&% %' Š'%&& 7  |sI-A|. d.

Se determina el polinomio característico deseado a partir de: (s-μ1) (s-μ2) (s-μ3) … (s-μn) donde μi es un polo deseado, obteniéndose: sn + b1sn-1 + b2sn-2 + … + bn-1s + bn

e.

Finalmente, el observador de estados L se calcula a partir de la siguiente expresión: ⎡ bn − an ⎤ ⎢b − a ⎥ n−1 ⎥ ⎢ n−1 L = Q × ⎢bn− 2 − an− 2 ⎥ ⎥ ⎢  ⎥ ⎢ ⎢⎣ b1 − a1 ⎥⎦

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 233

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ejemplo E.8.2: Para el siguiente sistema, determinar el observador de estados L, si se quiere que los polos deseados del observador se ubiquen en -5, -2+j y -2-j

1 0⎤ ⎡0 ⎡0⎤ ⎥ ⎢ ⎢ 0 1 ⎥ x + ⎢0⎥⎥u x = ⎢ 0 ⎢⎣1⎦⎥ ⎣⎢− 2 − 1 − 2⎦⎥ y = [1 0 0]x + [0]u

Solución: a.

Observabilidad ⎡1 0 0⎤ ϑ = ⎢⎢0 1 0⎥⎥ ⎣⎢0 0 1⎥⎦ rank( ϑ ) = 3 det( ϑ ) = 1

∴ El sistema es observable #5 > %" & &%& +% '  & &&% %' Š'%& 1 0⎤ ⎡ s 0 0⎤ ⎡ 0 ⎢ ⎥ ⎢ sI − A = ⎢0 s 0⎥ − ⎢ 0 0 1 ⎥⎥ ⎢⎣0 0 s ⎥⎦ ⎢⎣− 2 − 1 − 2⎥⎦ s sI − A = 0 2

−1

0

s 1

−1 s+2

sI − A = s (s 2 + 2s + 1) + 2 sI − A = s 3 + 2s 2 + s + 2

sI − A = s 3 + a1s 2 + a2 s + a3 

&  &%& +% ' & a1 = 2 , a2 = 1 y a3 = 2 .

c.

Q = ( W ξ ϑ )-1 ⎡a2 W = ⎢⎢ a1 ⎢⎣ 1

a1 1⎤ ⎡1 2 1⎤ 1 0⎥⎥ = ⎢⎢2 1 0⎥⎥ 0 0⎥⎦ ⎢⎣1 0 0⎥⎦

⎡1 2 1⎤ ⎡1 0 0⎤ ⎡1 2 1⎤ Wϑ = ⎢⎢2 1 0⎥⎥ ⎢⎢0 1 0⎥⎥ = ⎢⎢2 1 0⎥⎥ ⎢⎣1 0 0⎥⎦ ⎣⎢0 0 1⎦⎥ ⎢⎣1 0 0⎥⎦

234

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

1⎤ ⎡0 0 ⎢ Q = ⎢0 1 − 2⎥⎥ ⎢⎣1 − 2 3 ⎥⎦ 5  '  & &%& +% '  & &&% %' Š'%&  & (s − μ1) (s − μ2) (s − μ3) = s3 + b1s2 + b2s + b3 (s − μ1) (s − μ2) (s − μ3) = (s + 5) (s + 2 + j) (s + 2 − j) (s − μ1) (s − μ2) (s − μ3) = (s + 5) (s2 + 4s + 5) (s − μ1) (s − μ2) (s − μ3) = s3 + 9s2 + 25s + 25 

&  &%& +% ' &b1 = 9, b2 = 25 y b3 = 25.

e.

El observador de estados es: 1 ⎤ ⎡ 23⎤ ⎡b3 − a3 ⎤ ⎡0 0 ⎢ ⎥ ⎢ L = Q ⎢b2 − a2 ⎥ = ⎢0 1 − 2⎥⎥ ⎢⎢24⎥⎥ ⎣⎢ b1 − a1 ⎦⎥ ⎣⎢1 − 2 3 ⎦⎥ ⎢⎣ 7 ⎦⎥ ⎡ l1 ⎤ ⎡ 7 ⎤ L = ⎢⎢l 2 ⎥⎥ = ⎢⎢ 10 ⎥⎥ ⎣⎢l 3 ⎦⎥ ⎣⎢− 4⎦⎥

8.3.2 Algoritmo de Ackerman: La fórmula de Ackerman aplicada al diseño de observadores de estado, está dada por: ⎡0⎤ ⎢0⎥ L = Φ ( A )ϑ −1 ⎢ ⎥ ⎢⎥ ⎢ ⎥ ⎣1⎦ En donde Φ (s ) es el polinomio característico deseado, pero en vez de la variable de

Laplace s se evalúa en la matriz A: Φ ( A) .

Ejemplo E.8.3: Determinar el observador de estados L, con polos deseados ubicados en -3+j y -3-j, para el siguiente sistema: ⎡0 − 1⎤ ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣1 − 2⎦ ⎣1⎦ y = [0 1]x + [0]u

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 235

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: a.

Determinamos el polinomio característico deseado: Φ (s ) = (s − μ1 )(s − μ 2 )

Φ (s ) = (s + 3 − j )(s + 3 + j ) Φ (s ) = s 2 + 6s + 10 b.

Evaluamos el polinomio característico deseado en A: Φ ( A ) = A 2 + 6 A + 10I 2

Φ ( A)

⎡0 − 1⎤ ⎡0 − 1⎤ ⎡1 0⎤ =⎢ + 6⎢ +10⎢ ⎥ ⎥ ⎥ ⎣1 − 2⎦ ⎣1 − 2⎦ ⎣0 1⎦

⎡ − 1 2⎤ ⎡0 − 6 ⎤ ⎡10 0 ⎤ Φ ( A) = ⎢ ⎥+⎢ ⎥+⎢ ⎥ ⎣− 2 3⎦ ⎣6 − 12⎦ ⎣ 0 10⎦ ⎡9 − 4⎤ Φ ( A) = ⎢ ⎥ ⎣4 1 ⎦ c.

Calculamos la matriz de observabilidad, y aprovechamos para determinar la observabilidad: ⎡C ⎤ ⎥ ⎣CA ⎦

ϑ=⎢ ⎡0

1⎤

ϑ=⎢ ⎥ ⎣1 − 2⎦ El sistema es observable. d.

Calculamos la inversa de la matriz de observabilidad:

ϑ

−1

ϑ −1

ϑ −1

236

⎡0 1 ⎤ =⎢ ⎥ ⎣1 − 2⎦

−1

⎡0 1 ⎤ ⎢1 − 2⎥ ⎦ =⎣ 0 1 1 −2 ⎡− 2 − 1⎤ ⎢−1 0 ⎥ ⎦ =⎣ −1

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

⎡2 1⎤

ϑ −1 = ⎢ ⎥ ⎣1 0⎦ e.

Aplicamos la fórmula de Ackerman: ⎡0⎤ L = Φ ( A )ϑ −1 ⎢ ⎥ ⎣1⎦ ⎡9 − 4⎤ ⎡2 1⎤ ⎡0⎤ L=⎢ ⎥⎢ ⎥⎢ ⎥ ⎣4 1 ⎦ ⎣1 0⎦ ⎣1⎦ ⎡9 − 4⎤ ⎡1⎤ L=⎢ ⎥⎢ ⎥ ⎣4 1 ⎦ ⎣0⎦ ⎡9⎤ L=⎢ ⎥ ⎣4⎦ ⎡9⎤ El observador de estados es: L = ⎢ ⎥ ⎣4⎦

8.3.3 Método por excepción: Analizando la respuesta del ejemplo E.8.1, se aprecia que los valores que toman l1 y l2 están en función del polinomio característico y del polinomio característico deseado. Este último depende de los polos deseados para el observador. Es un caso similar al que desarrollamos en los controladores. Por lo tanto, podemos asumir valores para dichas raíces, a los que llamaremos μ1 y μ2 de modo tal que el polinomio tenga una respuesta estable. Luego, por simple equivalencia de términos, podemos hallar el valor de las incógnitas. Podemos generalizar la metodología que se va a presentar, diciendo que si tenemos [μ1 μ2 μ3 … μn], que son los autovalores deseados para la matriz del observador |A-LC|, estos conforman el polinomio característico (s-μ1) (s-μ2) (s-μ3) … (s-μn). Este polinomio se iguala al polinomio característico original donde se ha considerado el observador |sI-A+LC|, creándose una equivalencia entre términos: |sI-A+LC| = (s-μ1) (s-μ2) (s-μ3) … (s-μn) resolviendo la equivalencia se podrá encontrar el valor del vector L. Como la solución depende de un sistema de ecuaciones simultáneas, este método está restringido a sistemas de hasta 3er orden.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 237

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ejemplo E.8.4: Dado el polinomio característico del ejemplo E.8.1: s2+(4+l2)s+(2+l1) determinar el valor de l1 y l2 si se quiere que los polos deseados del sistema se ubiquen en −4 y −3. Solución: a.

Con los polos deseados, determinamos el polinomio característico deseado: (s − μ1 )(s − μ 2 ) (s − (−4))(s − (−3)) (s + 4)(s + 3)

s 2 + 7s + 12 b.

Asumimos el observador de estados como:

⎡l ⎤ L = ⎢ 1⎥ ⎣l 2 ⎦ c.

Con las matrices del sistema y la evaluación de L, determinamos al polinomio característico deseado: sI − A + LC ⎡1 0⎤ ⎡0 − 2⎤ ⎡ l1 ⎤ s⎢ ⎥−⎢ ⎥ + ⎢ ⎥[0 1] ⎣0 1⎦ ⎣1 − 4⎦ ⎣l 2 ⎦ ⎡ s 0⎤ ⎡0 − 2⎤ ⎡0 l1 ⎤ ⎢0 s ⎥ − ⎢1 − 4⎥ + ⎢0 l ⎥ ⎣ ⎦ ⎣ ⎦ ⎣ 2⎦ s l1 + 2 − 1 s + l2 + 4 (s )(s + l 2 + 4) − (−1)(l1 + 2) s 2 + (l 2 + 4)s + (l1 + 2)

d.

Igualamos ambos polinomios característicos deseados:

s 2 + (l 2 + 4)s + (l1 + 2) = s 2 + 7s + 12 5 = 7"  &%& +% ' '  &‰" 

238

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

l1 + 2 = 12 l1 = 10

l2 + 4 = 7 l2 = 3 f.

Por lo tanto, el observador de estados L, es: ⎡10⎤ L=⎢ ⎥ ⎣ 3⎦

Es aconsejable que los polos del observador sean de tres a cinco veces mayores (más negativos) que los polos del controlador por realimentación de estados, pero sin salirse de la región de estabilidad. La elección de los polos deseados determinará las características    " ' &#'  W&  &‰" "   •' "%&/"'&+'&  %'& L como solución, de las cuales solo un limitado número de soluciones cumplen con las necesidades requeridas para el sistema (como por ejemplo: sobreimpulso, velocidad de respuesta, etcétera del sistema estimado), por lo que se aconseja probar, mediante simulación, la respuesta del sistema a diferentes valores de polos escogidos.

8.4 Comparaciones con respecto al diseño de los controladores de estado: Vamos a usar, por su simplicidad, archivo-m1µcontrolador’ del capítulo anterior, que se encarga de diseñar los controladores de estado. Este comando tiene la siguiente forma: K = controlador(A,B,polos_d) Asimismo, recordemos que existen formas canónicas controlables y observables. Ellas determinan en el diseño, si es necesaria la matriz de transformación o no. En otras palabras, si para él un sistema que tiene forma canónica controlable va a ser utilizado para diseñarle un controlador, la matriz de transformación no será necesaria porque el sistema ya está en la forma establecida. Del mismo modo, para el diseño de observadores de estado, cuando el sistema está en forma canónica observable. Las formas canónicas controlable y observable, tienen cierta relación con respecto a sus traspuestas, que resumiremos en los siguientes cuadros presentados en el capítulo de transformaciones:

  X&' •'& %"    +    Š   &7  % J ' #5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 239

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ahora, si asumimos al comando ‘controlador’ como algoritmo de diseño de controladores de estado, tenemos la siguiente expresión: a. Para diseño de controladores de estado:

Gráfico 8.2. Algoritmo del controlador de estados K = controlador(A,B,polos_d) A, B,

Algoritmo de

Controlador de

polos deseados

controlador

estados (K)

b. Para diseño de observadores de estado con el mismo algoritmo de diseño de controladores:

Gráfico 8.3 Algoritmo del controlador de estados empleado para el diseño de observador de estados L = controlador(A’,C’,polos_d)’ A’, C’,

Algoritmo de

Controlador de

polos deseados

controlador

estados (L’ )

Como conclusión tenemos que todos los algoritmos para el diseño de controladores y observadores de estado parten del mismo principio, y pueden ser utilizados para el diseño de ambos, siempre y cuando entreguemos las entradas en la forma canónica correspondiente o su equivalente.

240

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

8.5 Utilizando el Matlab para el diseño de observadores de estado: Tal como se describió en las comparaciones con respecto al diseño de los controladores de estado (8.4), vamos a utilizar comandos conocidos del Matlab para el diseño y simulación de los observadores de estado. Adicionalmente, para los casos SISO, se pueden emplear los comandos acker o place. Para utilizar cualquiera de estos comandos, debemos considerar a un sistema de la forma: x = Ax + Bu y = Cx + Dx

y a un vector de polos deseados: P = [ μ1

μ2  μn ]

Con ellos escribimos los comandos de la siguiente manera: L =controlador (A’,C’,P)’ L = place (A’,C’,P)’ L = acker (A’,C’,P)’

Ejemplo E.8.5: Para el siguiente sistema, determinar el vector de observadores de estados L, si se requiere que los polos deseados se ubiquen en -2, -1+j y -1-j 1 0⎤ ⎡0⎤ ⎡0 ⎥ ⎢ 0 1 ⎥ x + ⎢⎢0⎥⎥u x = ⎢ 0 ⎢⎣1⎥⎦ ⎢⎣− 3 − 2 − 1⎥⎦ y = [2 0 0]x + [0]u

Solución: Digitar en Matlab los siguientes comandos para obtener las soluciones: A = [0 1 0; 0 0 1; -3 -2 -1]; C = [2 0 0]; P = [-2 -1+j -1-j]; L = acker(A’,C’,P)’ para lo cual, el Matlab responde: >>L = 1.5000 0.5000 -3.0000

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 241

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

o también: L = place(A’,C’,P)’ para lo cual, el Matlab nuevamente responde: >>L = 1.5000 0.5000 -3.0000 Es decir, el observador de estados para este sistema es: ⎡ 1. 5 ⎤ L = ⎢⎢ 0. 5 ⎥⎥ ⎣⎢− 3. 0⎦⎥

8.6 Observador de estado en sistemas de lazo cerrado: Veamos cómo sería la representación de un sistema de lazo cerrado mediante el observador de estados:

Gráfico 8.4. Diagrama de un sistema controlado con observador de estados B

+

x

s

+

x

y

C

SISTEMA REAL

A u

B

+

+

+

−K ~ x

s

+

~ x ~ y

C

A

+ + SISTEMA OBSERVADO

L

En la práctica real, tal vez un estado de x (t ) no pueda medirse y sea necesario generar un esta-

x(t ) para la realimentación. do observado ~

Por lo tanto la Ley de Realimentación sería:

u = −K~ x

242

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

si cerramos el lazo y lo reemplazamos en la ecuación del sistema:

x = Ax − BK ~ x si a esa ecuación sumamos y restamos BKx :

x = Ax − BK ~ x + BKx − BKx donde quedaría:

x = ( A − BK )x + BK (x − ~ x) como ya lo habíamos aplicado, reemplazamos: e = x −~ x

donde obtenemos:

x = ( A − BK )x + BKe Sabiendo de la teoría de observadores que:

e = ( A − LC )e podemos concluir un nuevo sistema de caso homogéneo de lazo cerrado mediante el observador: ⎡ x ⎤ ⎡ A − BK ⎢ e ⎥ = ⎢ 0 ⎣ ⎦ ⎣

BK ⎤ ⎡ x ⎤ A − LC ⎥⎦ ⎢⎣ e ⎥⎦

Este sistema será estable si sus polos tienen parte real negativa, y los polos del sistema los encontramos en la siguiente ecuación característica: sI − A + BK sI − A + LC = 0

Ejemplo E.8.6: Determinar el nuevo sistema de lazo cerrado con observador del sistema original siguiente:

⎡ 0 1⎤ ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣18. 1 0⎦ ⎣1⎦ y = [1 0]x + [0]u donde los polos deseados del controlador sean –2.4±3.6j y los del observador sean –12.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 243

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: Diseñando al controlador de estados: sI − A + BK = (s + 2. 4 − j 3. 6)(s + 2. 4 + j 3. 6) ⎡ s 0⎤ ⎡ 0 1⎤ ⎡0⎤ ⎢0 s ⎥ − ⎢18. 1 0⎥ + ⎢1⎥[k1 ⎣ ⎦ ⎣ ⎦ ⎣ ⎦

− 1⎤ ⎡ 0 ⎡ s ⎢− 18.1 s ⎥ + ⎢k ⎣ ⎦ ⎣ 1 s

k2 ] = (s + 2. 4) 2 − ( j 3. 6) 2

0⎤ = (s 2 + 4. 8s + 5. 76) − (−12.96) k2 ⎥⎦ −1

k1 − 18.1 s + k2

= s 2 + 4. 8s + 18.72

(s )(s + k2 ) − (−1)(k1 − 18.1) = s 2 + 4. 8s + 18.72 s 2 + k2 s + (k1 − 18.1) = s 2 + 4. 8s + 18.72 7" &%& +% '  k1 = 36.82 k2 = 4. 8 el controlador de estados es: K = [36.82 4. 8] Ahora diseñamos el observador de estados: sI − A + LC = (s + 12)(s + 12) ⎡ s 0⎤ ⎡ 0 1⎤ ⎡ l1 ⎤ 2 ⎢0 s ⎥ − ⎢18.1 0⎥ + ⎢l ⎥[1 0] = (s + 12) ⎣ ⎦ ⎣ ⎦ ⎣ 2⎦ − 1⎤ ⎡ l1 ⎡ s ⎢ − 18.1 s ⎥ + ⎢l ⎣ ⎦ ⎣2

0⎤ = s 2 + 24s + 144 0⎥⎦

s + l1 −1 = s 2 + 24s + 144 l2 − 18.1 s (s + l1 )(s ) − (l2 − 18.1)(−1) = s 2 + 24s + 144 s 2 + l1s + (l2 − 18.1) = s 2 + 24s + 144 7" &%& +% ' 

244

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

l1 = 24 l2 = 162.1 el observador de estados es: ⎡ 24 ⎤ L=⎢ ⎥ ⎣162.1⎦ Si tratamos de llegar a la forma general del sistema de lazo cerrado mediante el observador de estados, debemos reemplazar tanto las matrices del sistema como al controlador de estados y al observador de estados en ella: ⎡ x ⎤ ⎡ A − BK ⎢ e ⎥ = ⎢ 0 ⎣ ⎦ ⎣

BK ⎤ ⎡ x ⎤ A − LC ⎥⎦ ⎢⎣ e ⎥⎦ donde: ⎡e ⎤ ⎡x ⎤ x = ⎢ 1⎥ y e = ⎢ 1⎥ ⎣e 2 ⎦ ⎣ x2 ⎦

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡ 0 1⎤ ⎡0⎤ ⎤⎡ x ⎤ ⎡0⎤ [36.82 4. 8] ⎥ ⎢ ⎡⎢ 1 ⎤⎥⎥ − ⎢ ⎥[36.82 4. 8] ⎢ ⎢  ⎥⎥ ⎢ ⎢ ⎢ ⎥ ⎥ ⎣1⎦ ⎢ ⎣ x2 ⎦ ⎥ = ⎢ ⎣18.1 0⎦ ⎣1⎦ ⎥ ⎢ ⎣ x2 ⎦ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡ 0 1⎤ ⎡ 24 ⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎢e ⎥ ⎥ ⎢ ⎢0 0⎥ ⎢18.1 0⎥ − ⎢162.1⎥[1 0]⎥ ⎢ ⎢e ⎥ ⎥ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎦⎣ ⎣ 2 ⎦ ⎦ ⎣⎣ 2⎦⎦ ⎣

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡ 0 1⎤ ⎡ 0 0⎤ 0⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ 0 −⎢ ⎢ ⎢ ⎥⎥ ⎢ ⎢ ⎥ ⎢ ⎢ ⎥⎥ ⎥ ⎥ ⎥ ⎢ ⎣36. 82 4. 8⎦ ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣18.1 0⎦ ⎣36. 82 4. 8⎦ ⎥ ⎢ ⎣ x2 ⎦ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡ 0 1⎤ ⎡ 24 0⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎢e ⎥ ⎥ ⎢ ⎢0 0⎥ ⎢18.1 0⎥ − ⎢162.1 0⎥ ⎥ ⎢ ⎢e ⎥ ⎥ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎦ ⎣ ⎣ 2 ⎦ ⎦ ⎣⎣ 2⎦⎦ ⎣ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡ 0 ⎢ ⎢ ⎥⎥ ⎢⎢ ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣ − 18.72 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 ⎢ ⎢e ⎥ ⎥ ⎢ ⎢0 ⎣ ⎣⎣ 2⎦⎦ ⎣

1 ⎤ ⎡ 0 − 4. 8⎥⎦ ⎢⎣36.82 0⎤ ⎡ − 24 ⎢ − 144 0⎥⎦ ⎣

0 ⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎥ ⎥⎢ 4. 8⎥⎦ ⎥ ⎢ ⎢⎣ x2 ⎥⎦ ⎥ 1⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ 0⎥⎦ ⎥⎦ ⎢⎣ ⎢⎣e2 ⎥⎦ ⎥⎦

con lo que el sistema de lazo cerrado sería:

1 0 ⎤ ⎡ x1 ⎤ 0 ⎡ x1 ⎤ ⎡ 0 ⎢ x ⎥ ⎢ − 18.72 − 4. 8 36.82 4. 8⎥ ⎢ x ⎥ ⎢ 2⎥ = ⎢ ⎥⎢ 2 ⎥ ⎢ e1 ⎥ ⎢ 0 − 24 1 ⎥ ⎢ e1 ⎥ 0 ⎢ ⎥ ⎢ ⎥⎢ ⎥ − 144 0 ⎦ ⎣ e2 ⎦ 0 ⎣ e2 ⎦ ⎣ 0

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 245

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

8.7 Consideraciones adicionales: Los observadores de estado para sistemas con más de una salida tienen un procedimiento de solución muy largo. Así hallaremos una alternativa más sencilla. Consideremos al sistema de la siguiente manera: x = Ax + Bu y = Cx + Dx

~ x = A~ x + Bu + L ( y − ~ y) Asumimos las siguientes matrices: L = [L1

L2 ]

⎡y ⎤ y = ⎢ 1⎥ ⎣ y2 ⎦

⎡C ⎤ C = ⎢ 1⎥ ⎣C 2 ⎦ donde Li es un vector columna, C i 













" %'& +  i son los valores 1 y 2.

reemplazando las asunciones y operando matricialmente: ⎛ ⎡ y ⎤ ⎡C ⎤ ⎡0⎤ ⎞ L( y − ~ y ) = L ⎜⎜ ⎢ 1 ⎥ − ⎢ 1 ⎥~ x + ⎢ ⎥u ⎟⎟ ⎣0⎦ ⎠ ⎝ ⎣ y 2 ⎦ ⎣C 2 ⎦

L( y − ~ y ) = [L1 L( y − ~ y ) = [L1

⎛ ⎡ y ⎤ ⎡C ⎤ ⎞ L 2 ] ⎜⎜ ⎢ 1 ⎥ − ⎢ 1 ⎥~ x ⎟⎟ y C 2 2 ⎣ ⎦ ⎣ ⎦ ⎝ ⎠ x⎤ ⎡ y − C 1~ L2 ] ⎢ 1 ~⎥ ⎣ y2 − C 2 x ⎦

L( y − ~ y ) = L1 ( y1 − C 1~ x ) + L 2 ( y 2 − C 2~ x) Colocando este resultado en la ecuación del sistema original, tenemos: ~ x = A~ x + Bu + L1 ( y1 − C 1~ x ) + L 2 ( y 2 − C 2~ x) Debido a las propiedades de separabilidad lineal, para sistemas lineales podemos asumir: a.

246

sI − A + L1C 1 = polinomio característico deseado, y

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

b.

sI − A + L 2C 2 = polinomio característico deseado.

Con estas ecuaciones (a y b), resolvemos L1 y L2 . Por lo tanto: Es importante resaltar que para todos los casos puede usarse el mismo polinomio característi%&  &W%" &&   %+% ‰"  '& #  H ' 5  &&&W  #  +%   &    &# #    L1 y L2 . Si L1 y L2 son observables, entonces L es observable. Si alguna de las Li no es observable o si una de las salidas no se necesita observar, simplemente esta se puede dejar de considerar y se reduce el orden del L completo, Pero, se debe tener mucho cuidado con la ecuación de estado, por ejemplo, si tenemos un sistema con tres salidas: ~ x = A~ x + Bu + L ( y − ~ y) ~ x = A~ x + Bu + [L1

L2

⎛ ⎡ y1 ⎤ ⎡ C 1 ⎤ ⎞ ⎜ ⎟ L3 ]⎜ ⎢⎢ y 2 ⎥⎥ − ⎢⎢C 2 ⎥⎥~ x⎟ ⎜ ⎢ y ⎥ ⎢C ⎥ ⎟ ⎝⎣ 3⎦ ⎣ 3⎦ ⎠

En este sistema decidimos no considerar a la salida y2, la cual tiene características no observables o tiene un sensor muy preciso. Con esta decisión, el observador de estados se reduciría de la siguiente manera:

L = [L1

L3 ]

Por lo tanto, el nuevo sistema estimado sería:

⎛ ⎡ y ⎤ ⎡C ⎤ ⎞ ~ x ⎟⎟ x = A~ x + Bu + [L1 L3 ] ⎜⎜ ⎢ 1 ⎥ − ⎢ 1 ⎥ ~ ⎝ ⎣ y3 ⎦ ⎣C 3 ⎦ ⎠ En este tipo de operaciones, es importante tener mucho cuidado con el orden de las diferentes matrices del sistema. Ejemplo E.8.7: Determinar el observador de estados del siguiente sistema: 1 0⎤ ⎡0 ⎡0⎤ ⎢ ⎥ 0 1 ⎥ x + ⎢⎢0⎥⎥u x = ⎢ 0 ⎢⎣− 1 − 5 − 6⎥⎦ ⎣⎢1⎥⎦

y = [0 1 0] x + [0]u

asumiendo que los polos deseados del observador están en –10, –10 y –15.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 247

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: Utilizaremos las herramientas planteadas para el diseño de controladores de estado y las propiedades de las equivalencias de los controladores con los observadores, para ello debemos digitar: clear all clc A=[0 1 0;0 0 1;-1 -5 -6]; C=[0 1 0]; polos=[-10 -10 -15]’; L=controlador(A’,C’,polos)’ La respuesta del Matlab es: El sistema es controlable -----------------------------------------------------------------------Comprobacion: deben aparecer los polos deseados que ingreso polos_deseados =

-10.0000 + 0.0000i -10.0000 – 0.0000i -15.0000

-----------------------------------------------------------------------Matriz K de controlabilidad L = 1.0e+003 * -1.4990 0.0290 0.2210 Como se puede apreciar, los resultados obtenidos mediante el Matlab serían: ⎡− 1499⎤ L = ⎢⎢ 29 ⎥⎥ ⎣⎢ 221 ⎦⎥

Ejemplo E.8.8: Resolveremos el Ejemplo E.7.3 de este capítulo, utilizando la función acker en Matlab. Los polos deseados del observador deben estar en -2.4±j3.6. Solución: Recordamos que el sistema es:

248

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

⎡ 0 1⎤ ⎡0⎤ x + ⎢ ⎥u x = ⎢ ⎥ ⎣18.1 0⎦ ⎣1⎦ y = [1 0]x + [0]u Ingresamos a Matlab los datos del ejemplo E.7.3: A=[0 1;18.1 0]; C=[1 0]; polos=[-2.4+3.6*j -2.4-3.6*j]’; L = acker(A’,C’,polos)’ El resultado es el siguiente: L = 24.0000 162.1000 En otras palabras el observador de estados es: ⎡ 24 ⎤ L=⎢ ⎥ ⎣162.1⎦

Ejemplo E.8.9: Diseñar un observador de estados para un motor de posición cuyo modelo matemático fue determinado en el Ejemplo E.4.4, y el controlador de estados en el Ejemplo E.7.8, donde la salida del sistema será solamente la posición angular. Los polos deseados para el diseño del observador son -8±j5 y -12. ⎡ R ⎢− L ⎢ K x = ⎢ ⎢ J ⎢ 0 ⎢⎣

K L b − J 1



⎤ 0⎥ ⎡1⎤ ⎢L⎥ ⎥ 0⎥ x + ⎢ 0 ⎥u ⎢ ⎥ ⎥ ⎢ 0⎥ 0⎥ ⎢⎣ ⎥⎦ ⎥⎦

y = [0 0 1] x + [0]u u = −[− 2 32.99 34]x

Las constantes del sistema son: Momento de inercia del motor:

J = 0.01 kg m2/s2

Relación de amortiguamiento:

b = 0.1 Nms

Constante de fuerza electromotriz:

K =Ke=Kt = 0.01 Nm/Amp

Resistencia eléctrica:

R = 1 Ohm

Inductancia eléctrica:

L = 0.5 H

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 249

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Solución: Como en el ejemplo anterior, el análisis del sistema lo desarrollaremos con Matlab. Adicionalmente, utilizaremos los conceptos de las comparaciones de los controladores y los observado %& +   "  &%& &* %&&%&  &  &  & 7"&5 Para ello iniciamos nuestro programa, cargamos las constantes del sistema y las matrices del mismo: % Motor DC con control de posición. clear all; close all; clc % Constantes del sistema. J = 0.01; % Momento de Inercia del Motor. (kg m^2/s^2) b = 0.1; % Relación de Amortiguamiento. (Nms) K = 0.01; % Constante de Fuerza Electromotriz. (Nm/Amp) (K=Ke=Kt) R = 1; % Resistencia Eléctrica. (ohm) L = 0.5; % Inductancia Eléctrica. (H) % Matrices de Sistema para las Ecuaciones de Estado. A = [ -R/L -K/L 0 K/J -b/J 0 0

1 0 ];

B = [ 1/L 0 0 ]; C = [ 0 0 1 ]; D = [ 0 ]; K = [ -2 32.99 34 ]; Con los resultados del Matlab, vemos que las ecuaciones de estado son: ⎡ R ⎢− L ⎢ K x = ⎢ ⎢ J ⎢ 0 ⎢⎣

K L b − J 1



⎤ 0⎥ ⎡1⎤ ⎢L⎥ ⎥ 0⎥ x + ⎢ 0 ⎥u ⎢ ⎥ ⎥ ⎢ 0⎥ 0⎥ ⎢⎣ ⎥⎦ ⎥⎦

y = [0 0 1] x + [0]u u = −[− 2 32.99 34]x

Diseñaremos el observador mediante el comando ‘acker’ del Matlab, donde se colocan las matrices A y C, y los polos deseados.

250

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

% Calculo del Observador L = acker(A’,C’, [-8-5j; -8+5j; -12])’; Con este comando, determinamos que el observador de estados L, es: ⎡359.72⎤ L = ⎢ 43.98 ⎥ ⎢ ⎥ ⎣⎢ 16 ⎦⎥

Planteamos la entrada, los parámetros de tiempo para una simulación de seis segundos y las condiciones iniciales. Dentro de las condiciones iniciales asumiremos que el motor está girado en 0.5 radianes (28.6º), y asumiremos condiciones iniciales para el sistema del observador, diferentes a las reales: % Entrada inicial u = 1;

% Escalón unitario.

’  ˜     ˜– ti = 0;

% Tiempo Inicial

tf = 6;

% Tiempo Final

dt = 0,001; % Diferencial de Tiempo % Condiciones Iniciales. x = [ 0; 0; 0.5 ]; xo = [ 1; 1; 0 ]; Simulamos agregando al sistema observado, almacenamos los datos para su posterior ploteo e integramos. % Simulación. k = 1; for t = ti:dt:tf CORR(k,1) = x(1,1); THETAP(k,1) = x(2,1); THETA(k,1) = x(3,1); CORRO(k,1) = xo(1,1); THETAPO(k,1) = xo(2,1); THETAO(k,1) = xo(3,1); TIEMPO(k,1) = t; % Ecuaciones de Estado. xp = A*x + B*u; y = C*x + D*u; xop = A*xo + B*u + L*(C*x-C*xo);% sistema estimado u observado. u = -K*xo; %realimentación de estados estimados. Y(k,1) = y;

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 251

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

% integrando mediante Euler. x = x + dt*xp; xo = xo + dt*xop; k = k + 1; end >&&Y '& &W7 +% &   #   ' &*        –  subplot(221) plot (TIEMPO,CORR,’b’, TIEMPO,CORRO,’r:’) title(‘Estado x1: Corriente’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Amperios’) legend(‘Real’,’Observado’) grid on subplot(222) plot(TIEMPO,THETAP,’b’, TIEMPO,THETAPO,’r:’) title(‘Estado x2: Velocidad Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes/Segundo’) legend(‘Real’,’Observado’) grid on subplot(223) plot(TIEMPO,THETA,’b’, TIEMPO,THETAO,’r:’) title(‘Estado x3: Posición Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) legend(‘Real’,’Observado’) grid on subplot(224) plot(TIEMPO,Y,’r’) title(‘Salida y: Angular Theta’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) grid on X +7"   " %  7" ' 

252

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^“Ì`^_]kj“_^`j^^`”kj“

Estado x1: Corriente

Estado x2: Velocidad Angular

10

2 Real Observado

Radianes/Segundo

0

Amperios

Real Observado

55

5

ž

žQ

1 Q55 0 žQ55 ž

ž

žQ 0

ž55

1

2

3

4

5

ž 0

6

1

2

Tiempo (Segundos)

Estado x3: Posición Angular

5

6

5

6

Q56 Real Observado

Q55

Q55

Q54

Q54

Q53

Q53

Radianes

Radianes

4

Salida y: Angular Theta

Q56

Q52

Q52

Q51

Q51

0

0

žQ51

žQ51

žQ52 0

3

Tiempo (Segundos)

1

2

3

4

5

6

žQ52 0

1

Tiempo (Segundos)

2

3

4

Tiempo (Segundos)

Se puede apreciar cómo las variables observadas o estimadas comienzan en lugares diferentes, tal como se indicó al comienzo del ejemplo, y conforme el tiempo transcurre el error entre la señal original y la estimada desaparece. Esto indica que el observador está trabajando correctamente y que ha sido bien diseñado. Es importante resaltar que es muy útil comenzar con condiciones iniciales para el sistema

x( o ) ≠ x( o ) ). Esto es conveniente porque si coobservado, diferentes a las del sistema real ( ~ menzaran con el mismo valor y el observador fuese muy bueno, las señales se montarían una sobre la otra y no tendríamos la certeza de que esté trabajando correctamente. Además, si el &# & ' # / "* W&#  '   ™ &  ;%   +7" &  

&  generado. Este último caso es muy raro, pero puede ocurrir.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 253

www.full-ebook.com

www.full-ebook.com

Capítulo 9: Diseño de sistemas de seguimiento

En el Capítulo 7, vimos cómo se diseñaban los controladores de estado. El resultado de este sistema con controlador, hacía que las variables de estado lleven sus valores a cero. Ese caso no es el real para los sistemas industriales, ya que es un requerimiento común que las salidas tiendan a valores diferentes que cero o que sigan un patrón determinado de referencia. En este capítulo vamos a hacerle seguimiento a referencias diferentes que cero, y dependiendo del tipo de sistema, hasta podermos seguir referencias no constantes. Para realizar el seguimiento, vamos a cambiar la variable por un error que depende de una diferencia de la variable de estado con respecto a su referencia, y mediante el uso de una acción integral sobre este error lo llevamos a cero. Con esto conseguimos que, al desaparecer el error, la variable tenga el mismo valor que la referencia. Para este desarrollo vamos tener una serie de consideraciones nuevas. Comenzaremos con los sistemas conocidos e iremos agregando las nuevas partes que se integrarán a él.

9.1 Tipos de sistemas de seguimiento: a.

Sistema de seguimiento con integrador: tiene, dentro de sus características, un integrador disponible (1/s) , con respecto a la variable que va a ser la salida. Cuando está en conjunto con el controlador, se puede enunciar de dos maneras: planta con integrador, o controlador sin acción integral.

b.

Sistema de seguimiento sin integrador: no tiene con un integrador disponible con respecto a la salida. En otras palabras, el integrador necesario para el control, deberá ser incluido en el controlador de estados. A este conjunto sistema con controlador se le enuncia de dos formas: sistema sin integrador, o controlador con acción integral.

9.1.1 Sistema de seguimiento con integrador: El sistema de seguimiento con integrador, requiere de un controlador que no tenga una acción integral. Comenzaremos con el sistema de forma general: x = Ax + Bu

y = Cx + Du

u = − Kx

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 255

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Asumimos una referencia igual al escalón unitario (r(t) = 1), para la cual existe una ley de control: u = −Kx la cual debe seguir a alguna variable de estado. En este caso vamos a escoger a x1, pero podría ser cualquiera. La Ley de Control cambia a la siguiente forma:

u = −[k1

k2

k3

⎡ x1 − r ⎤ ⎢ x ⎥ ⎢ 2 ⎥  kn ]⎢ x3 ⎥ ⎢ ⎥ ⎢  ⎥ ⎢⎣ x n ⎥⎦

con la cual hemos aplicado el cambio de variable por la diferencia de la variable de estado en cuestión menos la referencia. Si operamos de manera de llevar esta expresión a una forma más amigable, tenemos: u = −k1 x1 + k1r − k2 x 2 − k3 x3  − kn x n

u = −[0 k2

k3

⎡ x1 ⎤ ⎢x ⎥ ⎢ 2⎥  kn ]⎢ x3 ⎥ + k1 (r − x1 ) ⎢ ⎥ ⎢⎥ ⎢⎣ x n ⎦⎥

o de una mejor manera:

u = − k1 x1 − k2 x 2 − k3 x3  − kn x n + k1r

u = −[k1

k2

k3

⎡ x1 ⎤ ⎢x ⎥ ⎢ 2⎥  kn ]⎢ x3 ⎥ + k1r ⎢ ⎥ ⎢⎥ ⎢⎣ x n ⎥⎦

u = − Kx + k1r

Ahora, si aplicamos esta nueva Ley de Control a la ecuación del sistema, obtenemos: x = Ax + Bu

u = − Kx + k1r

256

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

x = Ax + B (− Kx + k1r ) x = Ax − BKx + Bk1r

x (t ) = ( A − BK )x(t ) + Bk1r(t )

… (1)

Como la referencia asumida es el escalón unitario (r(t) = 1), en el estado estable, es decir, %" & ' &'   +'&W'  & 7" '  %" %

x (∞ ) = ( A − BK )x(∞ ) + Bk1r(∞ )

... (2)

Si restamos el sistema (2) del sistema (1), tenemos: x (t ) − x (∞ ) = ( A − BK )(x(t ) − x(∞ ) ) + Bk1r(t ) − Bk1r(∞ )

x (t ) − x (∞ ) = ( A − BK )(x(t ) − x(∞ ) ) Si hacemos un cambio de variable por el error de la siguiente manera:

e(t ) = x(t ) − x(∞ ) Entonces,

e(t ) = ( A − BK )e(t ) En esta ecuación se describe la dinámica del error. Si demostramos que este nuevo sistema es estable, las variables del error convergerán con el cero, por lo tanto la referencia con la variable a ser controlada se igualarán.

λI − ( A − BK ) = 0 con polos de parte real menor que 0.

Ejemplo E.9.1: Dado el siguiente sistema: Y(s ) U(s )

=

1 s (s + 2)(s + 3)

Donde (1/s) es el integrador, diseñar un controlador de estados de seguimiento a la variable de estado x1, donde los polos deseados sean − 1 ± j 2 y –8, y presentar el sistema de lazo cerrado. Solución: Transformando a ecuaciones de estado, asumimos:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 257

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

x1 = y x 2 = x1

x3 = x 2 El nuevo sistema con su respectiva ley de control, sería: 0⎤ ⎡0 1 ⎡0⎤ ⎢ ⎥ x = ⎢0 0 1 ⎥ x + ⎢⎢0⎥⎥u ⎢⎣0 − 6 − 5⎥⎦ ⎣⎢1⎥⎦ y = [1 0 0] x + [0]u

u = − Kx + k1r Si desagregamos la Ley de Control, tenemos:

u = −k1 x1 − k2 x 2 − k3 x3 + k1r Antes de diseñar el controlador de estados, donde están las incógnitas para nuestro sistema, debemos evaluar la controlabilidad del sistema:

ζ = [B

AB

A2B

]

1⎤ ⎡0 0 ⎢ ζ = ⎢0 1 − 5⎥⎥ ⎢⎣1 − 5 19 ⎥⎦

ζ = (0)(0)(0) − (1)(0)(0) = −1 ≠ 0 Como el determinante de la matriz de controlabilidad es diferente de cero, el rango de la matriz es completo, por lo tanto el sistema es controlable. Para diseñar el controlador de estados, dado que el sistema es de orden 3, vamos a utilizar el método por excepción: sI − ( A − BK ) = (s + 1 + j 2 )(s + 1 − j 2 )(s + 8) 0 ⎤ ⎡0⎤ ⎡ s 0 0⎤ ⎡0 1 ⎢0 s 0⎥ − ⎢0 0 1 ⎥⎥ + ⎢⎢0⎥⎥[k1 ⎢ ⎥ ⎢ ⎢⎣0 0 s ⎦⎥ ⎢⎣0 − 6 − 5⎦⎥ ⎢⎣1⎥⎦

⎡s − 1 0 ⎤ ⎡ 0 ⎢0 s − 1 ⎥⎥ + ⎢⎢ 0 ⎢ ⎢⎣0 6 s + 5⎦⎥ ⎢⎣k1

258

0 0 k2

k2

[

]

k3 ] = (s + 1)2 − ( j 2) 2 (s + 8)

0⎤ 0 ⎥⎥ = [(s 2 + 2s + 1) − (−2)](s + 8) k3 ⎥⎦

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

s 0 k1

−1 0 s −1 = (s 2 + 2s + 3)(s + 8) k2 + 6 s + k3 + 5

s 3 + (k3 + 5)s 2 + k1 + (k2 + 6)s = s 3 + 2s 2 + 3s + 8s 2 + 16s + 24 s 3 + (k3 + 5)s 2 + (k2 + 6)s + k1 = s 3 + 10s 2 + 19s + 24 = 7"  &%& +% ' '  & k1 = 24 k2 = 13

k3 = 5 Es decir que el controlador de estados es: K = [24 13 5] y responde a la siguiente ley de control: u = −24 x1 − 13x 2 − 5x3 + 24r ⎡ x1 ⎤ ⎢ u = −[24 13 5]⎢ x 2 ⎥⎥ + 24r ⎢⎣ x3 ⎦⎥

Del mismo modo, debemos determinar el nuevo sistema de lazo cerrado: x = ( A − BK )x + Bk1r ⎧ ⎡0 1 ⎫ ⎡0⎤ 0 ⎤ ⎡0⎤ ⎪ ⎪⎢ ⎥ ⎢ ⎥ x = ⎨⎢0 0 1 ⎥ − ⎢0⎥[24 13 5]⎬ x + ⎢⎢0⎥⎥[24]r ⎪⎢0 − 6 − 5⎥ ⎢1⎥ ⎪ ⎢1⎥ ⎦ ⎣ ⎦ ⎭ ⎣ ⎦ ⎩⎣

⎧ ⎡0 1 0 ⎤ ⎡ 0 0 0⎤ ⎫ ⎡ 0 ⎤ ⎪⎢ ⎪ x = ⎨⎢0 0 1 ⎥⎥ − ⎢⎢ 0 0 0⎥⎥ ⎬ x + ⎢⎢ 0 ⎥⎥ r ⎪⎢0 − 6 − 5⎥ ⎢24 13 5⎥ ⎪ ⎢24⎥ ⎦ ⎣ ⎦⎭ ⎣ ⎦ ⎩⎣ donde el sistema resultante es: 1 0 ⎤ ⎡ 0 ⎡0⎤ ⎢ ⎥ x = ⎢ 0 0 1 ⎥ x + ⎢⎢ 0 ⎥⎥ r ⎢⎣24⎥⎦ ⎣⎢− 24 − 19 − 10⎦⎥ y = [1 0 0] x + [0]u

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 259

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

9.1.2 Sistema de seguimiento sin integrador: El sistema de seguimiento sin integrador, a diferencia del caso anterior, requiere de un controlador que introduzca al sistema una acción integral. Esta acción integral se genera mediante software. Comenzaremos con el sistema de forma general: x = Ax + Bu

y = Cx + Du Asumimos una referencia r(t ) , de donde podemos determinar las características de la Ley de Control: = − Kx + k I ξ donde ξ es la salida del integrador y se debe considerar como una variable de estado adicional al sistema, y k I es la ganancia integral. Para ello, consideramos:

ξ = r − y = r − Cx Por lo tanto, nuestro nuevo sistema de seguimiento, considera esta nueva ecuación: x = Ax + Bu

y = Cx + Du u = − Kx + k I ξ

ξ = r − Cx Si integramos la nueva variable en la ecuación del sistema, llegamos a la siguiente expresión matricial:

⎡ x ⎤ ⎡ A ⎢ξ⎥ = ⎢− C ⎣ ⎦ ⎣

0⎤ ⎡ x ⎤ ⎡ B ⎤ ⎡0⎤ + ⎢ ⎥u + ⎢ ⎥ r ⎥ ⎢ ⎥ 0⎦ ⎣ξ ⎦ ⎣ 0 ⎦ ⎣I ⎦

donde cada uno de los elementos de las matrices, son matrices.  " &  +'&   #   ' &W # &%& 7"  x(∞) = constante

ξ (∞) = constante u(∞) = constante

260

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

ξ(∞ ) = 0 y(∞) = r Si lo reemplazamos en la ecuación de estado, tenemos: ⎡ x (∞ ) ⎤ ⎡ A ⎢ξ ⎥ = ⎢ ⎣ (∞ ) ⎦ ⎣ − C

0⎤ ⎡ x(∞ ) ⎤ ⎡ B ⎤ ⎡0⎤ ⎢ξ ⎥ + ⎢ ⎥u(∞ ) + ⎢ ⎥ r(∞ ) ⎥ 0⎦ ⎣ (∞ ) ⎦ ⎣ 0 ⎦ ⎣I ⎦

Si realizamos la diferencia de los dos modelos, sabiendo que r( t ) − r( ∞ ) = 0 , siempre que r sea un escalar, conseguimos: ⎡ x (t ) − x (∞ ) ⎤ ⎡ A ⎢ξ − ξ ⎥ = ⎢ (∞ ) ⎦ ⎣− C ⎣ (t )

0⎤ ⎡ x(t ) − x(∞ ) ⎤ ⎡ B ⎤ ⎡0⎤ ⎢ξ − ξ ⎥ + ⎢ ⎥ (u(t ) − u(∞ ) ) + ⎢ ⎥ (r(t ) − r(∞ ) ) ⎥ 0⎦ ⎣ (t ) (∞ ) ⎦ ⎣ 0⎦ ⎣I ⎦

⎡ x (t ) − x (∞ ) ⎤ ⎡ A ⎢ξ − ξ ⎥ = ⎢ (∞ ) ⎦ ⎣− C ⎣ (t )

0⎤ ⎡ x(t ) − x(∞ ) ⎤ ⎡ B ⎤ (u(t ) − u(∞ ) ) ⎢ ⎥+ 0⎦⎥ ⎣ξ (t ) − ξ (∞ ) ⎦ ⎢⎣ 0 ⎥⎦

 +& x e (t ) = x ( t ) − x ( ∞ )

ξ e (t ) = ξ (t ) − ξ ( ∞ ) u e (t ) = u ( t ) − u ( ∞ ) Por lo tanto: ⎡ x e(t ) ⎤ ⎡ A ⎢ξ ⎥ = ⎢ ⎣ e (t ) ⎦ ⎣ − C

0⎤ ⎡ xe (t ) ⎤ ⎡ B ⎤ u e (t ) ⎥+ ⎢ 0⎥⎦ ⎣ξ e(t) ⎦ ⎢⎣ 0 ⎥⎦

donde la ley de control es:

ue(t ) = − Kx e(t) + k I ξ e(t) \^[{\k`=|}\{kjk` 265

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ci = [ C zeros(1,1) ]; Di = [ D ]; Wi = [ zeros(3,1) ones(1,1) ]; El sistema con la acción integral sería: ⎡ x ⎤ ⎡ A ⎢ξ⎥ = ⎢− C ⎣ ⎦ ⎣

0⎤ ⎡ x ⎤ ⎡ B ⎤ ⎡0⎤ + ⎢ ⎥u + ⎢ ⎥ r ⎥ ⎢ ⎥ 0⎦ ⎣ξ ⎦ ⎣ 0 ⎦ ⎣I ⎦

y = [C

⎡ x⎤ 0]⎢ ⎥ + [D ]u ⎣ξ ⎦

⎡− 2 − 0. 02 0 ⎢ 0 − 10 ⎡ x ⎤ ⎢ 1 ⎢ξ ⎥ = ⎢ 0 1 0 ⎣ ⎦ ⎢ 0 −1 ⎣0

0⎤ ⎡2⎤ ⎡0⎤ ⎥ ⎢ ⎥ ⎢0⎥ 0⎥ ⎡ x ⎤ ⎢0⎥ u + ⎢ ⎥r + ⎢ ⎥ ⎢0⎥ 0⎥ ⎣ξ ⎦ ⎢0⎥ ⎢ ⎥ ⎥ ⎢ ⎥ 0⎦ ⎣0⎦ ⎣1⎦

⎡ x⎤ y = [0 0 1 0]⎢ ⎥ + [0]u ⎣ξ ⎦ Con las nuevas matrices y con los polos deseados calculamos el controlador de estados: Ki = acker(Ai,Bi,[-10 -10 -10 -10]’); K = Ki(1,1:3); kI = -Ki(1,4); El controlador sería: Kˆ = [K

− kI ]

Kˆ = [14 150 2000 − 5000] K = [14 150 2000] k I = [5000]

%&'" % +& &' &W %&%& %   '  *  H %  ’  ˜ `  ti = 0; dt = 0.001; tf = 2; % Condiciones Iniciales x = [ 0 0 0 0 ]’; u = 0.5; r = 4*pi; 266

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

Ahora pasamos a la simulación, almacenamiento de datos e integración: % Simulación: k = 1; for t = ti:dt:tf TI(k,1) = t; X1(k,1) = x(1,1); X2(k,1) = x(2,1); X3(k,1) = x(3,1); X4(k,1) = x(4,1); xp = Ai*x + Bi*u + Wi*r; y = Ci*x + Di*u; u = -K*x(1:3,1) + kI*x(4,1); Y(k,1) = y; x = x + xp*dt; k = k + 1; end & Y '&W7 +% &  " '  ‹  — 

 ¦ –  subplot(221) plot(TI,X1,’b’) title(‘Estado x1: Corriente’) xlabel(‘Tiempo (Segundos)’); ylabel(‘Amperios’) grid on subplot(222) plot(TI,X2,’b’) title(‘Estado x2: Velocidad Angular’) xlabel(‘Tiempo (Segundos)’); ylabel(‘Radianes/Segundo’) grid on subplot(223) plot(TI,X3,’b’) title(‘Estado x3: Posición Angular’) xlabel(‘Tiempo (Segundos)’); ylabel(‘Radianes’) grid on $ ' +7"  & 7  "  Š  &/ "'  W‰"  %&

  &    H rencia 4π . hold on P4 = 4*pi*ones(size(X3));

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 267

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

plot(TI,P4,’r:’) subplot(224) plot(TI,X4,’b’) title(‘Acción Integral’); xlabel(‘Tiempo (Segundos)’) grid on =%&'" % & & " ' &‰"  &7 +% &   Š " & W&   %" ' +7"  'ƒ   '    %%' 7 5 Estado x1: Corriente

Estado x2: Velocidad Angular

350

30

300

25

Radianes/Segundo

Amperios

250 200 150 100

15

10

5

50 0

20

0

0. 5

1

1. 5

2

0

0

0.5

Tiempo (Segundos)

1

1.5

2

1.5

2

Tiempo (Segundos)

Estado x3: Posición Angular

Acción Integral

14

6

12

5

Radianes

10 4

8 3

6 2

4 1

2 0

0

0.5

1

1.5

2

0

0

0.5

Tiempo (Segundos)

1

Tiempo (Segundos)

Los resultados mostrados señalan que el controlador con acción integral ha llevado a la salida hacia la respuesta deseada o mejor dicho a la referencia. Hemos visto que se ha controlado perfectamente el comportamiento del sistema haciendo seguimiento a la referencia.

Ejemplo E.9.4: Dado el motor de posición del Ejemplo E.9.3, el cual ya tiene un controlador con acción integral. Realimentar los estados mediante un observador de estados cuyos polos estén en –20. Simular al sistema.

268

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

Solución: Tomaremos las características del sistema, sus ecuaciones de estado y el controlador con acción integral del Ejemplo E.9.3: Ecuaciones de estado iniciales: ⎡ R ⎢− L ⎢ K x = ⎢ ⎢ J ⎢ 0 ⎢⎣

K L b − J 1



⎤ 0⎥ ⎡1⎤ ⎢L⎥ ⎥ 0⎥ x + ⎢ 0 ⎥u ⎢ ⎥ ⎥ ⎢ 0⎥ 0⎥ ⎢⎣ ⎥⎦ ⎥⎦

y = [0 0 1]x + [0]u $ '  &+% &   %%' 7 *"  %'  * %&' &  ⎡− 2 − 0. 02 0 ⎢ − 10 0 ⎡ x ⎤ ⎢ 1 = ⎢ξ ⎥ ⎢ 0 1 0 ⎣ ⎦ ⎢ −1 0 ⎣0

0⎤ ⎡2⎤ ⎡0⎤ ⎢ ⎥ ⎢0⎥ ⎥ 0⎥ ⎡ x ⎤ ⎢0⎥ ⎢ ⎥r u + + ⎢0⎥ 0⎥ ⎢⎣ξ ⎥⎦ ⎢0⎥ ⎥ ⎢ ⎥ ⎢ ⎥ 0⎦ ⎣0⎦ ⎣1⎦

⎡ x⎤ y = [0 0 1 0]⎢ ⎥ + [0]u ⎣ξ ⎦ u = −[14 150 2000] x + 5000ξ >& '& '&%& ; &  &7   + &  ' % * %&' '  % Motor DC con Control de Posición. clear all; close all; clc % Constantes del Sistema. J = 0.01; % Momento de Inercia del Motor (kgm^2/s^2) b = 0.1; % Relación de Amortiguamiento (Nms) K = 0.01; % Constante de Fuerza Electromotriz. (Nm/Amp) (K=Ke=Kt) R = 1; % Resistencia Eléctrica. (ohm) L = 0.5; % Inductancia Eléctrica. (H) % Matrices de Sistema para las Ecuaciones de Estado. A = [ -R/L -K/L 0 K/J -b/J 0 0

1 0 ];

B = [ 1/L 0

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 269

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

0 ]; C = [ 0 0 1 ]; D = [ 0 ]; % Matrices de Sistema con Acción Integral. Ai = [ A

zeros(3,1)

-C zeros(1,1) ]; Bi = [

B zeros(1,1) ];

Ci = [ C zeros(1,1) ]; Di = [ D ]; Wi = [ zeros(3,1) ones(1,1) ]; Ki = acker(Ai,Bi,[-10 -10 -10 -10]’); K = Ki(1,1:3); kI = -Ki(1,4); Debemos considerar que los estados que se deben observar son los reales y no la acción integral, la cual aparece como un estado adicional. Con esto no se quiere decir que no se pueda, sino que es conveniente hacerlo solamente con los estados reales. Con estos datos en el programa, diseñaremos el observador de estados: L = acker(A’,C’,[-20 -20 -20]’)’ Matlab nos va a entregar la sigueinte respuesta: L = 1.0e+003 * 5.8311 0.6040 0.0480 En otras palabras:

⎡5831.1⎤ L = ⎢ 604 ⎥ ⎢ ⎥ ⎣⎢ 48 ⎦⎥ =%&'" % +& &' &W %&%& %   '  *  H %  ’  ˜ `  ti = 0; dt = 0.001; tf = 2;

270

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

% Condiciones Iniciales. x = [ 0 0 0 0 ]’; xo = [50 10 5 ]’; u = 0.5; r = 4*pi; Ahora pasamos a la simulación, almacenamiento de datos e integración: % Simulación: k = 1; for t = ti:dt:tf TI(k,1) = t; X1(k,1) = x(1,1); X2(k,1) = x(2,1); X3(k,1) = x(3,1); X4(k,1) = x(4,1); Xo1(k,1) = xo(1,1); Xo2(k,1) = xo(2,1); Xo3(k,1) = xo(3,1); xp = Ai*x + Bi*u + Wi*r; y = Ci*x + Di*u; xop = A*xo + B*u + L*C*(x(1:3,1)-xo); u = -K*xo + kI*x(4,1); % lazo cerrado con el observador Y(k,1) = y; x = x + xp*dt; xo = xo + xop*dt; k = k + 1; end Por último, ploteamos los resultados, donde los estados observados aparecen como líneas punteadas: ‹  — 

 ¦ –  subplot(221) plot(TI,Xo1,’m:’,TI,X1,’b’) title(‘estado x1: corriente’) xlabel(‘tiempo (segundos)’) ylabel(‘amperios’) grid on subplot(222) plot(TI,Xo2,’m:’,TI,X2,’b’)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 271

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

title(‘Estado x2: Velocidad Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes/Segundo’) grid on subplot(223) plot(TI,Xo3,’m:’,TI,X3,’b’) title(‘Estado x3: Posición Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) grid on hold on P4 = 4*pi*ones(size(X3)); plot(TI,P4,’r:’) subplot(224) plot(TI,X4,’b’) title(‘Acción Integral’) xlabel(‘Tiempo (Segundos)’) grid on X +7" ‰"  ' 7  J ' #  " %W  7" '  Estado x1: Corriente

Estado x2: Velocidad Angular

800

Q !Q

600

Radianes/Segundo

20

Amperios

QQ

200

0

10

0 žQ žQ

žQQ

ž!Q

žQQ

žQ 0

0. 5

1

1. 5

2

0

0. 5

Tiempo (Segundos)

1

1. 5

2

Tiempo (Segundos)

$' &•!&%=7"

=%%' 7



6

12 5

10

Radianes



8 6

!

 2

2 1

0 ž

0

0

0.5

1

1. 5

2

0

0.5

Tiempo (Segundos)

272

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

1

Tiempo (Segundos)

1.5

2

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

vemos que todos los estados observados alcanzan a los reales en menos de 0.3 segundos. Esto nos indica que el observador está trabajando correctamente, y por ende el controlador puede aprovechar la realimentación de los estados completos.

Ejemplo E.9.5:³ +%  &# &   ' &    '   "&   &      W ' %&

%'  '    #   ' &*+ '   "&5  %&   asumir la solución del Ejemplo E.9.4 como punto de partida para el presente ejemplo. Solución: El primer paso es agregar el ruido del sensor a la salida. Para ello, utilizaremos la función randn, que representa una función aleatoria de distribución normal, muy semejante al ruido blanco. Esto lo haremos agregando esta función a la línea del programa del Ejemplo E.9.4 correspondiete a la ecuación de estado de la salida: y = Ci*x + Di*u + randn(1,1)*0.2; xop = A*xo + B*u + L*(y-C*xo-D*u); La función ha sido aplicada en un 20%, para darle características proporcionales a las de un sensor comercial. Para visualizar la salida, cambiaremos el último subplot del programa, donde reemplaza & 7 ƒ+%&   %%' 7 W&      %& "&  &  subplot(224) plot(TI,Y,’b’) title(‘Salida Sensada con Ruido’) xlabel(‘Tiempo (Segundos)’); grid on X& " ' & " '   +7" 7" ' 

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 273

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Estado x1: Corriente

Estado x2: Velocidad Angular

800

Q !Q

Radianes/Segundo

600

Amperios

QQ

200

0

20 10 0 žQ žQ

žQQ

žQQ

ž!Q

0

0.5

1

1.5

2

žQ

0

0.5

Tiempo (Segundos)

Radianes

$' &•!&%=7" 

12

12

10

10

8

8

6

6





2

2

0

0

ž

ž

0.5

1

1.5

2

Salida Sensada con Ruido



0

1

Tiempo (Segundos)

1.5

2

0

0.5

Tiempo (Segundos)

1

1.5

2

Tiempo (Segundos)

$ Y ' 7 ƒ+% W   % %  '   "&7  &   & *  % &   salida sensada, la cual corresponde a la tercera variable de estado, es decir, a la posición angular del motor. Sin embargo, a pesar del ruido, el observador estima de manera muy aproximada las tres  #   ' &W+Š ' ƒ& &  % &    #  &% 7" 5

Ejemplo E.9.6: Comparar y analizar las diferencias de la tercera variable de estado de cada uno de los casos presentados en los ejemplos anteriores, es decir, en el caso de seguimiento con acción integral, en el caso de seguimiento con acción integral con realimentación mediante observador y en el caso de seguimiento con acción integral y ruido en el sensor con realimentación mediante observador. Solución: Debemos corregir cada uno de los tres programas de los ejemplos, E.9.3, E.9.4 y E.9.5 agre7ƒ&   +    %   "&W "  Š  ‰"  7"   &  '& % %" &    ' %  variable de estado.

274

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

En el Ejemplo E.9.3: save E93X3 TI X3 La línea anterior se interpreta de la siguiente manera: crear el archivo E93X3.mat, y guardar en él las variables TI y X3. Con el mismo criterio, lo aplicamos la misma línea para los demás progrmas: En el Ejemplo E.9.4: save E94X3 TI X3 En el Ejemplo E.9.5: save E95X3 TI X3 Una vez almacenados estos datos, debemos recuperarlos en nuevo programa, cambiarles  &#   ' %&H"& W*  ' & " +7"  '&&/"'&5 clear all; close all; clc load E93X3 TI3 = TI; X33 = X3; load E94X3 TI4 = TI; X34 = X3; load E95X3 TI5 = TI; X35 = X3; =& W  ' &'&    #    +7"  &'  H %  ‹  — 

 ¦ –  plot(TI3,X33,’m’,TI4,X34,’r’, TI5,X35,’b’) title(‘Estado x3: Posición Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) legend(‘Controlador’,’+Observador’,’con Ruido’) grid on

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 275

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Estado x3: Posición Angular 14 Controlador +Observador con Ruido

12

10

Radianes

8

6

4

2

0

ž 0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

Tiempo (Segundos)

  +7" W &‰"  %&& '  '&    # %& %&' & &   7" to con acción integral (color magenta) trabaja de manera perfecta. Sin embargo, cuando al sistema se le realimentan los estados mediante el observador (color rojo), la respuesta varía durante el primer segundo de operación. Esto se debe a que las %&%&  '  % % # 7+% '  ' %&  %'&  %&%&  iniciales del sistema, y la realimentación considera a las variables estimadas. De todas formas, a pesar de comenzar con condiciones iniciales diferentes, vemos que el observador alcanza al sistema en menos de un segundo. Esto puede mejorar si asumimos condiciones iniciales iguales o mejores con respecto a las reales, o si colocamos polos más veloces en el observador. Por último, podemos ver que la variable correspondiente al sistema con ruido en el sensor (color azul), es afectada pobremente por el ruido presente. Esto se debe a las característi%  + ' /  H %" % ‰" '   &# &   ' &5 Para apreciar de manera completa cada una de las variables, las presentaremos por sepa &*/"'    ; " & +7"   subplot(221) plot(TI3,X33) title(‘x3: Con Controlador’) xlabel(‘Tiempo (Segundos)’)

276

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“‘\`^ɓj^`\`”^˜k`j^`^Îx\˜\^[”“

ylabel(‘Radianes’) axis([0 2 0 15]) grid on subplot(222) plot(TI4,X34) title(‘x3: + Observador’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) axis([0 2 0 15]) grid on subplot(223) plot(TI5,X35) title(‘x3: Con Ruido’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) axis([0 2 0 15]) grid on subplot(224) plot(TI3,X33,’m’,TI4,X34,’r’, TI5,X35,’b’) title(‘Estado x3: Posición Angular’) xlabel(‘Tiempo (Segundos)’) ylabel(‘Radianes’) legend(‘Controlador’,’+Observador’,’con Ruido’) axis([0 2 0 15]) grid on X& " ' && &&‰"  &‰"  &' &    +7" W&  '  que hemos separado a cada una de las variables de estado correspondientes a cada sistema de cada ejemplo, en los tres primeros cuadros, y dejamos el último para presentar a '&  %&/"'&&#   +7" 

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 277

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

x3: Con Controlador

x3: + Observador

10

10

Radianes

15

Radianes

15

5

0

5

0

0.5

1

1.5

0

2

0

0.5

Tiempo (Segundos)

x3: Con Ruido

1.5

10

Controlador +Observador con Ruido

Radianes

10

Radianes

15

0

2

Estado x3: Posición Angular

15

5

5

0

0.5

1

1.5

2

0

0

0.5

Tiempo (Segundos)

278

1

Tiempo (Segundos)

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

1

Tiempo (Segundos)

1.5

2

Capítulo 10: Control óptimo

10.1 Criterio de estabilidad de Lyapunov El criterio de estabilidad de Lyapunov es un método que prueba la estabilidad de un sistema. Este implica encontrar una función llamada de Lyapunov, para un sistema. Si existe, entonces el sistema es estable. Según lo demostrado por Aleksandr Lyapunov: «Todo sistema que se encuentra entregando  7Š W  " '   ' # Ñ5 X   +%  "*  %

5 $ &'   # W %" & " sistema solamente consume energía, llega un momento en que esta se acaba y el sistema para, por lo tanto, llega a un estado de equilibrio o reposo. Matemáticamente se demuestra buscando una función que represente la «energía» del sistema y si la derivada de ella es negativa, el sistema es estable. Para ello, se deben cumplir algunas características de cada una de las funciones, tanto de la original, como de la derivada. Para ello,  + & % %' Š'%  %   5

 # $    % "  &  ' % '%  & , *   %  1.

, para todo x.

2.

, si y solo si x = 0.

Ejemplo E.10.1: Probar si la función f ( x ) = 1000 x1 + 100 x 2   + &' 5 2

2

Solución: 1.

Para cualquier valor de x1 que sea diferente de 0, 1000 x1 > 0 .

2.

Para cualquier valor de x 2 que sea diferente de 0, 100 x 2 > 0 .

3.

Teniendo en cuenta a (a) y (b), para cualquier valor de x1 y x 2 , diferente de 0,

2

2

1000 x12 + 100 x 22 > 0 .

4.

Para x1 = x 2 = 0 , 1000 x1 + 100 x 2 = 0 . 2

2

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 279

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Dado que se cumplen las condiciones (i) y (ii), la función

es  + 

positiva. Ejemplo E.10.2: Dada la función

, donde

y

. Determi-

  H"%  + &' 5 Solución: Si evaluamos la matriz y la variable vectorial en la función, tenemos:

\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

10.1.3 Función de Lyapunov: cualquier función escalar V(x) será una $ ;\^[{\k`=|}\{kjk`

www.full-ebook.com

1⎤ y queremos encontrar − 1⎥⎦ 0⎤ . 2⎥⎦

>k|–”x}“Q‘>“[”_“}—|”\˜“

Solución: Como primer paso, asumimos a la matriz P de la siguiente forma: ⎢p P=⎢ 1 ⎣ p2

p2 ⎥ p3 ⎥⎦

para luego aplicar la fórmula correspondiente: A T P + PA = −Q T

⎡ 0 1 ⎤ ⎡ p1 ⎢− 1 − 1⎥ ⎢ p ⎣ ⎦ ⎣ 2 ⎡0 − 1⎤ ⎡ p1 ⎢1 − 1⎥ ⎢ p ⎦⎣ 2 ⎣ ⎡ − p2 ⎢p − p 2 ⎣ 1

p2 ⎤ ⎡ p1 + p3 ⎦⎥ ⎢⎣ p2 p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡ 0 1 ⎤ ⎡4 0⎤ = −⎢ ⎥ ⎢ ⎥ ⎥ p3 ⎦ ⎣− 1 − 1⎦ ⎣0 2⎦ p2 ⎤ ⎡ 0 1 ⎤ ⎡4 0⎤ = −⎢ ⎥ ⎢ ⎥ ⎥ p3 ⎦ ⎣− 1 − 1⎦ ⎣0 2⎦

− p3 ⎤ ⎡− p2 + p2 − p3 ⎥⎦ ⎢⎣ − p3

⎡ − 2 p2 ⎢p − p − p 2 3 ⎣ 1

p1 − p2 ⎤ ⎡− 4 0 ⎤ = p2 − p3 ⎦⎥ ⎢⎣ 0 − 2⎥⎦

p1 − p2 − p3 ⎤ ⎡− 4 0 ⎤ = 2 p2 − 2 p3 ⎥⎦ ⎢⎣ 0 − 2⎥⎦

De esta igualdad tenemos: − 2 p2 = −4 p1 − p2 − p3 = 0 2( p2 − p3 ) = −2 resolviendo el sistema de ecuaciones: p1 = 5 p2 = 2 p3 = 3 Por lo tanto, el resultado del problema es:

⎢5 2⎥ P=⎢ ⎥ ⎣2 3⎦ Ejemplo E.10.4: considerando al sistema siguiente:

1⎤ ⎡0 ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣− 2 − 1⎦ ⎣1⎦

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 283

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

determinar P para que cumpla el Criterio de Lyapunov ATP + PA + Q = 0. Solución: Asumimos cualquier QW' ‰"   +&&' &

⎡1 0⎤ Q =⎢ ⎥ ⎣0 1⎦ Reemplazamos los datos que tenemos en la fórmula correspondiente: A T P + PA = −Q T

1 ⎤ ⎡ p1 ⎡0 ⎢− 2 − 1⎥ ⎢ p ⎣ ⎦ ⎣ 2 ⎡0 − 2⎤ ⎡ p1 ⎢1 − 1⎥ ⎢ p ⎣ ⎦⎣ 2 ⎡ − 2 p2 ⎢p − p 2 ⎣ 1

p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎢⎣ p2 p2 ⎤ ⎡ p1 + p3 ⎦⎥ ⎢⎣ p2

p2 ⎤ ⎡ 0 1⎤ ⎡1 0⎤ = −⎢ ⎥ ⎢ ⎥ ⎥ p3 ⎦ ⎣− 2 − 1⎦ ⎣0 1⎦ p2 ⎤ ⎡ 0 1⎤ ⎡1 0⎤ = −⎢ ⎥ ⎢ ⎥ ⎥ p3 ⎦ ⎣− 2 − 1⎦ ⎣0 1⎦

− 2 p3 ⎤ ⎡− 2 p2 + p2 − p3 ⎦⎥ ⎢⎣ − 2 p3

− 4 p2 ⎡ ⎢ p − p − 2p 2 3 ⎣ 1

p1 − p2 ⎤ ⎡− 1 0 ⎤ = p2 − p3 ⎦⎥ ⎢⎣ 0 − 1⎥⎦

p1 − p2 − 2 p3 ⎤ ⎡− 1 0 ⎤ = 2 p2 − 2 p3 ⎦⎥ ⎢⎣ 0 − 1⎥⎦

De esta igualdad tenemos: − 4 p2 = −1 p1 − p2 − 2 p3 = 0 2( p2 − p3 ) = −1 resolviendo el sistema de ecuaciones: p1 = 1.75 p2 = 0.25 p3 = 0.75 Por lo tanto, el resultado del problema que cumple con las propiedades de la Función de Lyapunov es:

⎢1. 75 0. 25⎥ P=⎢ ⎥ ⎣0. 25 0. 75⎦

284

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

10.2 Control óptimo cuadrático Los sistemas lineales responden a la siguiente ecuación de estado:

x = Ax + Bu al diseñar controladores de estado para sistemas MIMO, muy a menudo nos preocupa minimizar alguna o algunas variables, debido a las restricciones de diseño por motivos de costo, estructura u otra consideración. Por ello, debemos seleccionar una señal de control u (t ) , tal que minimice las variables que necesitemos. Para ello, recurrimos a la teoría de minimización de costos, donde existirá un índice de desempeño cuadrático, con límites de integración son 0 e ∞ , que tenga la siguiente forma: ∞

J = ∫ L( x , u ) dt 0

en donde L( x ,u ) es una función cuadrática y hermitiana de x y u , y que producirá la ley de control: u(t) = −Kx(t) donde K es una matriz de r x n: ⎡ k11 k12 ⎡ u1 ⎤ ⎢k ⎢u ⎥ ⎢ 21 k22 ⎢ 2⎥ ⎢ . ⎢ . ⎥ . ⎢ ⎥ = −⎢ . ⎢ . ⎢ . ⎥ ⎢ . ⎢ . ⎥ . ⎢ ⎢ ⎥ ⎣⎢ur1 ⎦⎥ ⎣⎢ kr1 kr 2

. .

. .

. .

. . . .

.

.

k1n ⎤ ⎡ x1 ⎤ . ⎥⎥ ⎢⎢ x 2 ⎥⎥ . ⎥⎢ . ⎥ ⎥⎢ ⎥ . ⎥⎢ . ⎥ . ⎥⎢ . ⎥ ⎥⎢ ⎥ krn ⎦⎥ ⎣⎢ x n ⎦⎥

Por lo tanto, el diseño de los sistemas de control óptimo y los sistemas reguladores óptimos, basados en tales índices de desempeño cuadráticos, se reduce a la determinación de los elementos de la matriz K. Una ventaja de usar el esquema de control óptimo cuadrático es el que el sistema diseñado será estable, excepto en el caso en que el sistema no sea controlable. Para diseñar sistemas de control, basándose en la función de costos que minimiza los índices de desempeño cuadráticos, necesitamos resolver la Ecuación de Ricatti. A continuación, consideraremos el problema de determinar el vector de control u (t ) óptimo para el sistema de control: x = Ax + Bu

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 285

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

mediante el empleo de la función de costos: ∞

J = ∫ (x * Qx + u * Ru)dt 0

donde Q  "  ' ; W '  &Œ' % * + &' W*Ÿ "  ' ; W  '  &Œ' % * + &' * u no está restringida. Estas matrices han sido escogidas de manera que cumplan con el Criterio de estabilidad de Lya"& W&  H"%%  '  #   + &' *"   W +  7 ' 5 Por lo tanto, si estos dos principios se cumplen, el sistema es estable. Es importante resaltar que para los sistemas con vectores reales y matrices reales, las matrices transpuestas conjugadas, son solamente transpuestas: ∞



0

0

J = ∫ (x * Qx + u * Ru )dt es igual a J = ∫ (x T Qx + u T Ru)dt es igual a Asumamos una matriz Q, de orden 3 simétrica que nos permita demostrar qué tan fácil se pueden considerar los valores de sus elementos:

x Qx = [x1 T

x2

⎡ q11 x3 ]⎢⎢q12 ⎣⎢ q13

q12 q22 q23

q13 ⎤ ⎡ x1 ⎤ q23 ⎥⎥ ⎢⎢ x 2 ⎥⎥ q33 ⎦⎥ ⎣⎢ x3 ⎦⎥

Del mismo modo, asumimos que los valores de los elementos que no pertenecen a la diagonal principal, son iguales a cero: ∀i ≠ j → qij = 0 x Qx = [x1q11 T

x 2 q22

⎡ x1 ⎤ x3 q33 ]⎢⎢ x 2 ⎥⎥ ⎣⎢ x3 ⎦⎥

x T Qx = x1q11x1 + x 2 q22 x 2 + x3 q33 x3

x T Qx = q11x12 + q22 x 22 + q33 x32 Donde esta función presenta un escalar cuadrático, y si cada uno de los elementos q, es positivo, '&% %" %& %&%&    +%5 Del mismo modo, vemos que si valoramos adecuadamente el elemento q11 potenciaremos a la variable x1 , mientras que si valoramos al elemento q22 potenciaremos a la variable x2 , y así sucesivamente.

286

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

10.2.1 Optimización de parámetros mediante el Criterio de Lyapunov: A continuación analizaremos una relación directa entre las funciones de Lyapunov y los índices cuadráticos de desempeño, y resolveremos el problema de optimización de parámetros a partir de esta relación. Consideremos el sistema: x = Ax

en el que todos los valores característicos de A tiene partes reales negativas, o el origen x = 0 es estable. Suponemos que la matriz A tiene un parámetro ajustable. Se requiere minimizar la siguiente función de costo: ∞

J = ∫ (x * Qx )dt 0

Por tanto, el problema se convierte en determinar los valores de los parámetros ajustables para minimizar la función tratada. Ahora mostraremos que una Función de Lyapunov se usa efectivamente en la solución de este problema. Supongamos que:

x * Qx = −

d * (x Px ) dt

en donde P "  ' ; '  &Œ' % W + &' 5$ ' % &W' %&& ya se ha demostrado, obtenemos: x * Qx = − x * Px − x * P x x * Qx = −( Ax )* Px − x * P ( Ax ) x * Qx = −(x * A * )Px − x * P ( Ax ) x * Qx = − x * A * Px − x * PAx − x * Qx = x * ( A * P + PA )x Mediante el método de Lyapunov, sabemos que para una Q, existe un P, siempre que A sea estable, tal que: A * P + PA = −Q

Por tanto, determinamos los elementos de P a partir de esta ecuación. La función de costo se calcula de la siguiente manera: ∞



0

0

J = ∫ x * Qx dt = − x * Px

= − x(*∞ ) Px (∞ ) + x(*0) Px (0)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 287

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Dado que todos los valores característicos de A tienen partes reales negativas tenemos que

x( ∞ ) → 0 . Por lo tanto, obtenemos: J = x(*0) Px (0) Así, la función de costo J se obtiene en términos de la condición inicial x ( 0 ) y P, que se determina mediante A y Q usando la ecuación A*P + PA = −Q . Ejemplo E.10.5: Dado un sistema cuya función de transferencia es: G (s ) =

C (s ) R(s )

=

1 s + 4ζs + 1 2

Determinar el factor de amortiguamiento relativo

ζ > 0 , tal que cuando la entrada sea un

escalón unitario r( t ) = 1 , se minimice el siguiente índice de la función de costo: ∞

J = ∫ (10e 2 + α e 2 )dt 0

α > 0 , e = r − c y sabiendo que el sistema parte del reposo, con condiciones iniciales x1( 0 ) = 1 y x 2 ( 0 ) = 0 . donde

Solución: El sistema: G (s ) =

C (s ) R(s )

=

1 s + 4ζs + 1 2

se puede expresar como: r(t ) = c + 4ζc + c si lo evaluamos en términos del error: e = r−c e = r − c e = r − c − c + r − r − 4ζc + 4ζr − 4ζr − c + r = 0

(r − c) + 4(ζr − ζc) + (r − c ) = r + 4ζr e + 4ζe + e = r + 4ζr como r(t) = 1, entonces r = r = 0:

288

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

e + 4ζe + e = 0 asumimos como variable de estado a x1 = e y a x2 = e . La ecuación de estado es: 1 ⎤ ⎡ x1 ⎤ ⎡ x1 ⎤ ⎡ 0 ⎢ x ⎥ = ⎢− 1 − 4ζ ⎥ ⎢ x ⎥ ⎦⎣ 2 ⎦ ⎣ 2⎦ ⎣

Por otro lado: ∞

J = ∫ (10e 2 + αe 2 )dt 0



J = ∫ (10x12 + α x 22 )dt 0





0

0

J = ∫ x T Qx dt = ∫ (10x12 + α x 22 )dt ∞



0

0

J = ∫ x T Qx dt = ∫ [x1

⎡10 0 ⎤ ⎡ x1 ⎤ x 2 ]⎢ ⎥ ⎢ ⎥ dt ⎣ 0 α ⎦ ⎣ x2 ⎦

Por lo tanto:

⎡10 0 ⎤ Q =⎢ ⎥ ⎣ 0 α⎦ Con el valor de Q, determinaremos a P: A T P + PA = −Q T

1 ⎤ ⎡ p1 ⎡0 ⎢− 1 − 4ζ ⎥ ⎢ p ⎦ ⎣ 2 ⎣

p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡ 0 1 ⎤ ⎡10 0 ⎤ = −⎢ ⎥ ⎢ ⎥ ⎥ p3 ⎦ ⎣− 1 − 4ζ ⎦ ⎣ 0 α⎦

⎡0 − 1 ⎤ ⎡ p1 ⎢1 − 4ζ ⎥ ⎢ p ⎦⎣ 2 ⎣

p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡ 0 1 ⎤ ⎡− 10 0 ⎤ = ⎥ ⎢ p3 ⎦ ⎣− 1 − 4ζ ⎦⎥ ⎢⎣ 0 − α ⎥⎦

⎡0 − 1 ⎤ ⎡ p1 ⎢1 − 4ζ ⎥ ⎢ p ⎦⎣ 2 ⎣

p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡ 0 1 ⎤ ⎡− 10 0 ⎤ = ⎥ ⎢ p3 ⎦ ⎣− 1 − 4ζ ⎦⎥ ⎢⎣ 0 − α ⎥⎦

− 2 p2 ⎡ ⎢ p − 4ζp − p 2 3 ⎣ 1

p1 − 4ζp2 − p3 ⎤ ⎡− 10 0 ⎤ = 2 p2 − 8ζp3 ⎥⎦ ⎢⎣ 0 − α ⎥⎦

Con estos datos tenemos tres ecuaciones simultáneas:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 289

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

− 2 p2 = −10 p1 − 4ζp2 − p3 = 0 2 p2 − 8ζp3 = −α en la cuales los resultados de las expresiones en función del factor de amortiguamiento ζ y de μ son: p1 =

α + 10 + 160ζ 2 8ζ p2 = 5

p3 =

μ + 10 8ζ

Si visualizamos P:

⎡α + 10 + 160ζ 2 ⎢ 8ζ P=⎢ ⎢ 5 ⎢⎣

⎤ ⎥ ⎥ μ + 10⎥ 8ζ ⎥⎦ 5

Con P y con las condiciones iniciales, debemos desarrollar: ⎡α + 10 + 160ζ 2 ⎢ 8ζ J = [1 0] ⎢ ⎢ 5 ⎢⎣

⎡α + 10 + 160ζ 2 J =⎢ 8ζ ⎣ J =

⎤ ⎥ ⎡1⎤ ⎥ μ + 10⎥ ⎢⎣0⎥⎦ 8ζ ⎦⎥ 5

⎤ ⎡1⎤ 5⎥ ⎢ ⎥ ⎦ ⎣0⎦

α + 10 + 160ζ 2 8ζ

Para minimizar la función de costos J, debemos hacer:

∂J =0 ∂ζ

⎛ α + 10 ⎞ ⎟ ∂ ⎜⎜ 20ζ + 8ζ ⎟⎠ ⎝ ∂J = ∂ζ ∂ζ

α + 10 ∂J = 20 + (−1) ∂ζ 8ζ 2 α + 10 ∂J = 20 − =0 ∂ζ 8ζ 2

290

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

20 =

α + 10 8ζ 2

160ζ 2 = α + 10

ζ =

α + 10 160

Por lo tanto, el valor óptimo del factor de amortiguamiento ζ es ζ =

α + 10

160 por ejemplo, si μ = 1, el valor del factor de amortiguamiento es ζ = 0. 2622.

. Entonces,

10.2.3 Diseño del controlador óptimo cuadrático: >& &%&% '&  ' #  * &'; % +&  &ƒ

H& ' & W  continuación analizaremos el diseño de los controladores de estado mediante un criterio óptimo cuadrático. Para ello, partimos de la ecuación de estado, de la ley de control y de la función de costos para un sistema de caso no homogéneo: x = Ax + Bu u = − Kx ∞

J = ∫ (x T Qx + u T Ru)dt 0

Si reemplazamos (2) en (1), para cerrar el lazo, tenemos: x = Ax + B (− Kx ) x = Ax − BKx x = ( A − BK )x Si esta expresión es estable, reemplazamos (2) en (3): ∞

J = ∫ (x T Qx + (− Kx )T R (− Kx ))dt 0



J = ∫ (x T Qx + x T K T RKx )dt 0



J = ∫ [ x T (Q + K T RK )x]dt 0

Ahora, podemos igualar:

x T (Q + K T RK )x = −

d T (x Px ) dt

Si resolvemos, podemos llegar a la Ecuación de Riccati:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 291

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

x T Px + x T P x = − x T (Q + K T RK )x [( A − BK )x]T Px + x T P[( A − BK )x] = − x T (Q + K T RK )x x T ( A − BK )T Px + x T P ( A − BK )x = − x T (Q + K T RK )x x T A T Px − x T K T B T Px + x T PAx − x T PBKx = − x T (Q + K T RK )x x T ( A T P − K T B T P + PA − PBK )x = − x T (Q + K T RK )x Si despejamos la expresión de las variables de estado, tenemos: A T P − K T B T P + PA − PBK = −(Q + K T RK ) ( A T − K T B T )P + P ( A − BK ) = −(Q + K T RK ) Y si a esta expresión le aplicamos un cambio de variable, de manera que R = T T T , obtenemos la Ecuación de Riccati: ( A T − K T B T )P + P ( A − BK ) + (Q + K T T T TK ) = 0

' ' &  +%  '  •  A T P − K T B T P + PA − PBK + Q + K T T T TK = 0 A T P + PA + K T T T TK − PBK − K T B T P + Q = 0 a dos sumandos de la ecuación vamos a multiplicarlos por la equivalencia de la unidad de esa manera: a uno por T −1 T y al otro por T T T − T. Del mismo modo, a la ecuación vamos a −1 −T T sumar y restar la siguiente expresión: PBT T B P : A T P + PA + (K T T T TK − PBT −1TK − K T T T T −T B T P + PBT −1T −T B T P − PBT −1T −T B T P + Q = 0

Factorizando: A T P + PA + [ K T T T − PBT −1 ][TK − T −T B T P ] − PB (TT T ) −1 B T P + Q = 0 A T P + PA + [TK − T −T B T P ]T [TK − T −T B T P ] − PBR −1 B T P + Q = 0 Dado que la teoría de optimización exige que la expresión J = x(T0) Px (0) sea mínima, y que el objetivo de control es calcular o diseñar un controlador K que minimice esa expresión, entonces procuraremos un K que minimice los términos encerrados en los corchetes haciéndolos iguales a 0:

292

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

[TK − T −T B T P ]T [TK − T −T B T P ] = 0 TK − T −T B T P = 0 TK = T −T B T P K = T −1T −T B T P K = (TT T ) −1 B T P Dado que R = R T y R = T T T , obtenemos un controlador K óptimo cuadrático:

K = R −1 B T P y la ley de control sería:

u = − R −1 B T Px Entonces, si K va a convertir esta expresión en 0, para determinar P debemos considerar solamente: A T P + PA − PBR −1 B T P + Q = 0

la cual es conocida como la Ecuación Reducida de Riccati. Luego de este análisis, resumimos diciendo que para un sistema: x = Ax + Bu

que tiene una ley de control: u = − Kx

la cual corresponde a una función de costos conocida, de la forma: ∞

J = ∫ (x T Qx + u T Ru)dt 0

El controlador de estados será calculado con la siguiente expresión:

K = R −1 B T P donde R y B son datos y P es extraído de la Ecuación Reducida de Riccati: A T P + PA − PBR −1 B T P + Q = 0

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 293

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Ejemplo E.10.6: dado un sistema que responde a la siguiente ecuación de estado,

⎡0 1⎤ ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣0 0⎦ ⎣1⎦ se requiere minimizar la siguiente función: 16 x12 + β x 22 + u 2

donde β ≥ 0, y procurando determinar el K óptimo para u = −Kx. Solución: Planteamos la función de costos que represente a la expresión que se busque minimizar: ∞

J = ∫ (16x12 + β x 22 + u 2 )dt 0

∞⎛ ⎞ ⎡16 0 ⎤ J = ∫ ⎜⎜ x T ⎢ x + u T [1]u⎟⎟ dt ⎥ 0 ⎝ ⎣ 0 β⎦ ⎠

⎡16 0 ⎤ donde Q = ⎢ ⎥ y R = [1] . ⎣ 0 β⎦ Con estos datos, aplicamos la Ecuación Reducida de Riccati: A T P + PA − PBR −1 B T P + Q = 0 T

T

⎡0 1⎤ ⎡ p1 ⎢0 0⎥ ⎢ p ⎣ ⎦ ⎣ 2

p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎣⎢ p2

p2 ⎤ ⎡0 1⎤ ⎡ p1 − p3 ⎥⎦ ⎢⎣0 0⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡0⎤ −1 ⎡0⎤ ⎡ p1 [1] ⎢ ⎥ ⎢ p3 ⎥⎦ ⎢⎣1⎥⎦ ⎣1⎦ ⎣ p2

⎡0 0⎤ ⎡ p1 ⎢ ⎥⎢ ⎣1 0⎦ ⎣ p2

p2 ⎤ ⎡ p1 + p3 ⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡0 1⎤ ⎡ p1 − p3 ⎥⎦ ⎢⎣0 0⎥⎦ ⎢⎣ p2

p2 ⎤ ⎡0⎤ p [1][0 1]⎡⎢ 1 ⎥ ⎢ ⎥ p3 ⎦ ⎣1⎦ ⎣ p2

⎡0 ⎢ ⎣ p1

0 ⎤ ⎡0 + p2 ⎦⎥ ⎢⎣0 ⎡0 ⎢p ⎣ 1

p1 ⎤ ⎡ p2 ⎤ [ p2 − p2 ⎥⎦ ⎢⎣ p3 ⎥⎦

p1 ⎤ ⎡ p22 −⎢ 2 p2 ⎦⎥ ⎣ p2 p3

p2 ⎤ ⎡16 0⎤ ⎡0 0⎤ + = p3 ⎥⎦ ⎢⎣ 0 β ⎥⎦ ⎢⎣0 0⎥⎦ p2 ⎤ ⎡16 0 ⎤ ⎡0 0⎤ + = p3 ⎥⎦ ⎢⎣ 0 β ⎥⎦ ⎢⎣0 0⎥⎦

⎡16 0 ⎤ ⎡0 0⎤ p3 ] + ⎢ ⎥ ⎥=⎢ ⎣ 0 β ⎦ ⎣0 0⎦

p2 p3 ⎤ ⎡16 0 ⎤ ⎡0 0⎤ ⎥+⎢ ⎥=⎢ ⎥ p32 ⎦ ⎣ 0 β ⎦ ⎣0 0⎦

⎡ − p22 + 16 p1 − p2 p3 ⎤ ⎡0 0⎤ ⎢ ⎥=⎢ ⎥ 2 ⎣ p1 − p2 p3 2 p2 − p3 + β ⎦ ⎣0 0⎦

De esta expresión tenemos las siguientes ecuaciones: − p22 + 16 = 0

(a)

p1 − p2 p3 = 0

(b)

2 p2 − p3 + β = 0

(c)

2

294

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

de la ecuación (a): p2 = 4

(d)

reemplazando (d) en (c), y despejando: 2(4) − p3 + β = 0 2

p3 = β + 8

(e)

Por último, reemplazamos (d) y (e) en (b): p1 − (4)( β + 8) = 0 p1 = 4 β + 8

con lo cual, la matriz P es:

⎡4 β + 8 P=⎢ ⎣ 4

4 ⎤ ⎥ β + 8⎦

Ahora, ya podemos reemplazar los valores de las matrices correspondientes, en la expresión del controlador de estados óptimo cuadrático: K = R −1 B T P T −1 ⎡0⎤ ⎡ 4 β + 8 K = [1] ⎢ ⎥ ⎢ ⎣1⎦ ⎣ 4

4 ⎤ ⎥ β + 8⎦

⎡4 β + 8 K = [0 1]⎢ ⎣ 4

[

K = 4

4 ⎤ ⎥ β + 8⎦

β +8

]

La ley de control para este sistema sería: u = − Kx

[

u=−4

]⎡ x ⎤

β +8 ⎢ 1⎥ ⎣ x2 ⎦

u = −4x1 − x 2 β + 8 Ejemplo E.10.7: Se tiene un telescopio para instrucción cuyos motores para la elevación y  + •&>5"  ' %ƒ•   Q³& '&*%&" " &' % ƒ•ma de 1KW. Requisitos necesarios para su movimiento de 0 a 90° son:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 295

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

a.

Sobreimpulso máximo menor del 2 %.

b.

Tiempo de establecimiento de dos segundos para una tolerancia menor al 2 %.

El modelo matemático del motor DC es: 1 0⎤ ⎡0 ⎡0⎤ ⎥ ⎢ x = ⎢0 − 10 1 ⎥ x + ⎢⎢0⎥⎥ u ⎣⎢0 − 0. 02 − 2⎦⎥ ⎣⎢2⎦⎥ y = [1 0 0]x + [0]u ⎡θ ⎤ donde el vector de estado es: x = ⎢⎢θ⎥⎥ ⎢⎣ i ⎥⎦

Se desea diseñar un controlador óptimo de seguimiento integral. Solución: Como el sistema no tiene integrador para el caso de control de posición, debemos transformar al sistema para controlarlos adecuadamente: ⎡ x ⎤ ⎡ A ⎢ξ⎥ = ⎢− C ⎣ ⎦ ⎣ y = [C

0⎤ ⎡ x ⎤ ⎡ B ⎤ ⎡0⎤ + ⎢ ⎥u + ⎢ ⎥ r ⎥ ⎢ ⎥ 0⎦ ⎣ξ ⎦ ⎣ 0 ⎦ ⎣I ⎦ ⎡ x⎤ 0]⎢ ⎥ + [D ]u ⎣ξ ⎦

1 0 ⎡0 ⎢ − 10 1 ⎡ x ⎤ ⎢ 0 ⎢ξ⎥ = ⎢ 0 − 0. 02 − 2 ⎣ ⎦ ⎢ 0 0 ⎣− 1

0⎤ ⎡0⎤ ⎡0⎤ ⎥ ⎢ ⎥ ⎢0⎥ 0⎥ ⎡ x ⎤ ⎢0⎥ ⎢ ⎥r + + u ⎢0⎥ 0⎥ ⎢⎣ξ ⎥⎦ ⎢2⎥ ⎥ ⎢ ⎥ ⎢ ⎥ 0⎦ ⎣0⎦ ⎣1⎦

⎡ x⎤ y = [1 0 0 0] ⎢ ⎥ + [0] u ⎣ξ ⎦ Con esta aclaración, desarrollaremos el ejemplo mediante el empleo de Matlab1. Por lo tanto comenzaremos cargando las matrices correspondientes: % Modelo del Motor de Posición. % Diseño de Control para: %

Seguimiento a Theta = pi/2 rad.

%

Entrada: u(t) = 0 V.

X&' •'& %"    +    Š   &7  % J ' #5

296

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

%

Sobreimpulso < 2%.

%

Tiempo de Establecimiento < 2 seg.

%

Tolerancia del 2%.

close all; clear all; clc % Matrices del Sistema: A = [ 0 1 0; 0 -10 1; 0 -0.02 -2 ]; B = [ 0 0 2 ]’; C = [ 1 0 0 ]; D = [ 0 ]; % Matrices del Sistema con Integrador: Ai = [ A zeros(3,1); -C 0 ]; Bi = [ B; 0 ]; Ci = [ C 0 ]; Di = [ 0 ]; Wi = [ zeros(3,1); 1 ]; Para el cálculo del controlador óptimo de seguimiento con acción integral y para la determinación de P, consideraremos al comando lqr del Matlab. Comenzamos asumiendo las matrices Q y R, de la siguiente manera: 0 0 ⎤ ⎡10000 0 ⎢ 0 1000 0 0 ⎥⎥ Q =⎢ ⎢ 0 0 10 0 ⎥ ⎢ ⎥ 0 0 100000⎦ ⎣ 0 R = [1] Kˆ = [K

− kI ]

Con esas matrices, la función de costo del sistema es: ⎛ ⎡10000 0 ⎞ 0 0 ⎤ ⎟ ⎜ ⎢ ⎥ 1000 0 0 ⎥ ⎟ ⎜ T⎢ 0 T J = ∫⎜ x x + u [1]u⎟ dt ⎢ 0 0 10 0 ⎥ ⎟ ⎜ ⎢ ⎥ ⎟ ⎜ 0 0 0 100000 ⎦ ⎝ ⎣ ⎠ 10000θ 2 +1000θ 2 + 10 i 2 + 100000ξ 2 + u 2 = 0 Con estos datos, y las matrices propias del sistema, calculamos el controlador con el Matlab: % Cálculo del Controlador. Q = [ 10000 0 0 0; 0 1000 0 0; 0 0 10 0; 0 0 0 100000 ]; R = [ 1 ]; Km = lqr(Ai,Bi,Q,R);

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 297

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

K = Km(1,1:3); Ki = -Km(1,4); Los resultados nos indican que el controlador y las leyes de control serán las siguientes: a.

Controlador: K m = [253.6860 25.5110 5.0424 - 316.2278] K = [253.6860 25.5110 5.0424] K I = [316. 2278]

b. La ley de control es: u = −253.6860θ − 25.5110θ − 5.0424i + 316.2278ξ

=& W + & %&%& % W &' & " %W  H % *  entrada: ’  ˜ `  ti = 0; dt = 0.001; tf = 5; % Condiciones Iniciales. x = [ 0 0 0 0 ]’; u = 0; r = pi/2; % Referencia Armamos el lazo de la simulación, donde almacenaremos los resultados: % Simulación: k = 1; for t = ti:dt:tf TI(k,1) = t; X1(k,1) = x(1,1); X2(k,1) = x(2,1); X3(k,1) = x(3,1); X4(k,1) = x(4,1); U(k,1) = u; xp = Ai*x + Bi*u + Wi*r; y = Ci*x + Di*u; u = -K*x(1:3,1) + Ki*x(4,1); Y(k,1) = y; x = x + xp*dt; k = k + 1; end

298

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

¬ +% & & " ' &  subplot(221) plot(TI, X1,’b’) title(‘X1’); grid on; axis([0 5 0 2]) zoom on subplot(222) plot(TI,X2,’b’) title(‘X2’); grid on; axis([0 5 -0.1 2]) zoom on subplot(223) plot(TI,X3,’b’) title(‘X3’); grid on; axis([0 5 -0.4 20]); zoom on subplot(224) plot(TI,U,’b’) title(‘Entrada’);grid on; axis([0 5 -3 40]);zoom on  plot(TI,Y,’b’) title(‘Salida’); hold on plot(TI,pi/2*ones(size(Y)),’r:’) axis([0 5 0 1.75]); zoom on >&& " ' & &#'"  & 7" ' +7"  X1

X2

2

2

1.5

1.5

1

1

0.5

0.5

0 0

0

1

2

3

4

5

0

1

X3

2

3

4

5

3

4

5

Entrada

20

40 35 30

15

25 20

10

15 10

5

5 0 0 0

1

2

3

4

5

0

1

2

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 299

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Salida 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Se aprecia que las señales de las variables de estado 2 y 3 van a cero mientras que la variable de posición se dirige a la referencia. El sobreimpulso es de aproximadamente 1% y su tiempo de asentamiento es de 1.75 segundos aproximadamente. Con esto queda demostrado que el controlador de estados ha sido correctamente calculado.   " ' && "# %& 7"&W  # ƒ &+% & & &  Q hasta alcanzar el comportamiento deseado.

Ejemplo E.10.8: Sabiendo que el ejemplo E.10.7 se ha considerado un sistema que supuestamente tiene sensores en todas las variables de estado y eso normalmente no sucede, se desea diseñar un observador óptimo que estime las variables 2 y 3 para el mismo sistema. Solución: =" & %&%& *  &7    /  & ' &  &+% &* 7 garle el observador de estados óptimo. Es importante aclarar que el observador de estados no va a estimar a la acción integral. Por

&' '&W '   ' & ƒ & 7 *& &+% &   7" '&5>& este mismo criterio, y sabiendo que la acción integral es calculada mediante software, va& &+%   * %&' &  ‰" %&     #  '  *   %% integral sin estimador. La ley de control por cumplirse será: u = −253.6860θ − 25.5110θ − 5.0424i + 316.2278ξ

300

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

Para plasmar el observador de estados óptimo, usaremos el comando lqr y las características en común entre el diseño de controladores y observadores demostradas en el punto ®5£5   ' W +&  ' % T y S: 0 ⎡1000000 0 ⎤ ⎢ ⎥ T =⎢ 0 1000 0 ⎥ 0 1000000⎥⎦ ⎣⎢ 0 S = [1] Con ellas tenemos la siguiente función de costos: ⎛ ⎡1000000 0 ⎞ 0 ⎤ ⎜ ~T ⎢ ⎟ ⎥ T ~ 1000 0 J e = ∫⎜x ⎢ 0 ⎥ x + u [1]u ⎟ dt ⎜ ⎢ 0 ⎟ 0 1000000⎥⎦ ⎝ ⎣ ⎠

~ ~ ~  1000000θ 2 + 1000θ 2 + 1000000i 2 + u 2 = 0 Con estos datos, y las matrices propias del sistema calculamos el observador con el Matlab, justamente después del controlador: % Cálculo del Observador. T = [ 1000000 0 0; 0 1000 0; 0 0 1000000 ]; S = [ 1 ]; L = lqr(A’,C’,T,S)’ Los resultados nos indican que el observador es el siguiente: ⎡ 1000 ⎤ L = ⎢⎢ 2.1292 ⎥⎥ ⎢⎣20.7582⎥⎦

=& W + & %&%&  '  % *  7 7 &  &7   x = [ 0 0 0 0 ]’; xo = [ 0.1 0.1 0.1 ]’; X  '   " % &+% &  7" '    % Simulación: k = 1; for t = ti:dt:tf TI(k,1) = t; X1(k,1) = x(1,1); XO1(k,1) = xo(1,1); X2(k,1) = x(2,1); XO2(k,1) = xo(2,1);

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 301

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

X3(k,1) = x(3,1); XO3(k,1) = xo(3,1); X4(k,1) = x(4,1); U(k,1) = u; xp = Ai*x + Bi*u + Wi*r; y = Ci*x + Di*u; xop = A*xo + B*u + L*(y - C*xo); u = -K*xo + Ki*x(4,1); Y(k,1) = y; x = x + xp*dt; xo = xo + xop*dt; k = k + 1; end * 7 7 &   #  '   %  7 ƒ+%&W&+% &  Š %&

& '  a cada ploteo, de la siguiente manera: plot(TI, X1,’b’,TI, XO1,’r:’) plot(TI, X2,’b’,TI, XO2,’r:’) plot(TI, X3,’b’,TI, XO3,’r:’) X" 7& %&

 ' " & &7  W'  & 7" ' +7"  X1

X2

2

2

1.5

1.5

1

1

0.5

0.5

0 0 0

1

2

3

4

5

0

1

2

X3

3

4

5

4

5

Entrada

20

40 35 30

15

25 20

10

15 10

5

5 0 0 0

1

2

3

4

5

0

1

2

3

$ ' +7" W&   &'   & &' & &  ' &  & ' & *

302

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

a los estimados, podemos apreciar que las simulaciones de unos con los otros se superponen, a pesar de tener condiciones iniciales diferentes. Esto quiere decir que el observador de estados está trabajando perfecta y rápidamente. Salida 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

$ Y ' +7"    % ‰"   ™     W % ;   ' & ' #  5 segundos aproximadamente. Es decir, en un tiempo menor a los dos segundos. Del mismo modo, el sobreimpulso no supera el 2%. Con esto queda demostrado que el observador de estados ha sido correctamente calculado.   " ' && "# %& 7"&W  # ƒ &+% & & &  T hasta alcanzar el comportamiento deseado.

Ejemplo E.10.9: Dado el siguiente sistema: ⎡0 1⎤ ⎡0⎤ x = ⎢ x + ⎢ ⎥u ⎥ ⎣1 0⎦ ⎣1⎦ y = [1 0] x + [0]u a.

Determinar la estabilidad del sistema.

b.

Determinar la controlabilidad del sistema.

c.

Diseñar un controlador de estados por ubicación de polos, sabiendo que los polos están en –1 y –2.

d.

Determinar la observabilidad del sistema.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 303

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

e.

Diseñar un observador de estados por ubicación de polos sabiendo que los polos deseados están en –1.

f.

Determinar la ley de control y la representación del sistema de lazo cerrado con el observador.

g.

Determinar la ley de control y la representación del sistema para seguimiento sin acción integral de lazo cerrado mediante el observador, dado que la referencia es 2.

h.

Determinar la ley de control y la representación del sistema para seguimiento con acción integral de lazo cerrado mediante el observador, dado que la referencia es 3, y polos en –1, –1 y –2.

i.

Diseñar un controlador óptimo que minimice a la función 10 x12 + x 22 + u 2.

Solución: a.

Determinación de la estabilidad:

λI − A = 0 ⎡λ 0⎤ ⎡0 1⎤ ⎢ 0 λ ⎥ − ⎢1 0⎥ = 0 ⎣ ⎦ ⎣ ⎦

λ

−1

−1

λ

=0

(λ )(λ ) − (−1)(−1) = λ2 − 1 = 0

(λ − 1)(λ + 1) = 0

λ 1 = 1 y λ 2 = −1 Este sistema al tener un polo real positivo es inestable. b.

Determinación de la controlabilidad del sistema:

ζ = [B ⎡ ⎡0⎤

AB ]

⎡0 1⎤ ⎡0⎤ ⎤

ζ = ⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎥ ⎣ ⎣1⎦ ⎣1 0⎦ ⎣1⎦ ⎦ ⎡0 1⎤

ζ =⎢ ⎥ ⎣1 0⎦ ζ =

304

0 1 1 0

= −1 ≠ 0

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

dado que la determinante de la matriz de controlabilidad es diferente de cero, la matriz tiene rango completo. Por lo tanto, el sistema es controlable. c.

Diseñar un controlador de estados por ubicación de polos sabiendo que los polos deseados están en –1 y –2. sI − A + BK = (s + 1)(s + 2) ⎡ s 0⎤ ⎡0 1⎤ ⎡0⎤ ⎢0 s ⎥ − ⎢1 0⎥ + ⎢1⎥[k1 ⎣ ⎦ ⎣ ⎦ ⎣ ⎦

⎡ s − 1⎤ ⎡ 0 ⎢ ⎥+⎢ ⎣− 1 s ⎦ ⎣k1

0⎤ = s 2 + 3s + 2 k2 ⎥⎦

−1

s

k2 ] = s 2 + 3s + 2

= s 2 + 3s + 2

k1 − 1 s + k2

s 2 + k2 s + (k1 − 1) = s 2 + 3s + 2 k1 = 3 k2 = 3 El controlador de estados es: K = [3 3]

d.

Determinación de la observabilidad del sistema: ⎡C ⎤

ϑ=⎢ ⎥ CA ⎣



⎡ [1 0] ⎤ ⎡0 1⎤ ⎥ ϑ=⎢ ⎢[1 0] ⎢ ⎥⎥ ⎣1 0⎦ ⎥⎦ ⎣⎢ ⎡1 0⎤ ⎥ ⎣0 1⎦

ϑ=⎢ ϑ =

1 0 0 1

= 1≠ 0

Dado que la determinante de la matriz de observabilidad es diferente de cero, esta tiene rango completo. Por lo tanto, el sistema es observable. e.

Diseñar un controlador de estados por ubicación de polos sabiendo que los polos deseados están en –1.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 305

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

sI − A + LC = (s + 1) 2 ⎡ s 0⎤ ⎡0 1⎤ ⎡ l1 ⎤ 2 ⎢0 s ⎥ − ⎢1 0⎥ + ⎢l ⎥[1 0] = s + 2s + 1 ⎣ ⎦ ⎣ ⎦ ⎣ 2⎦ ⎡ s − 1⎤ ⎡ l1 ⎢− 1 s ⎥ + ⎢l ⎣ ⎦ ⎣2

0⎤ = s 2 + 2s + 1 0⎥⎦

s + l1 0 = s 2 + 2s + 1 l2 − 1 s s 2 + l1s + (l 2 − 1) = s 2 + 2 s + 1 l1 = 2 l2 = 2 El observador de estados es:

⎡2⎤ L=⎢ ⎥ ⎣2⎦ f.

Determinar la ley de control y la representación del sistema de lazo cerrado con el observador. f.1.

La ley de control es: u = −K ~ x

x ⎤ ⎡~ u = − [3 3]⎢ ~1 ⎥ ⎣ x2 ⎦ u = −3~ x1 − 3~ x2 f.2.

La representación del sistema de lazo cerrado con el observador la determinaremos, recordando que si cerramos el lazo y lo reemplazamos en la ecuación del sistema: x = Ax − BK ~ x

si a esa ecuación sumamos y restamos BKx. x = Ax − BK ~ x + BKx − BKx

donde quedaría:

x = ( A − BK )x + BK (x − ~ x)

306

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

como ya lo habíamos aplicado, reemplazamos: e = x −~ x

donde obtenemos:

x = ( A − BK )x + BKe sabiendo de la teoría de observadores que:

e = ( A − LC )e podemos concluir un nuevo sistema de caso homogéneo de lazo cerrado mediante el observador:

⎡ x ⎤ ⎡ A − BK ⎢ e ⎥ = ⎢ 0 ⎣ ⎦ ⎣

BK ⎤ ⎡ x ⎤ A − LC ⎥⎦ ⎢⎣ e ⎥⎦

Por lo tanto, reemplazamos las matrices: ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0 1⎤ ⎡0⎤ ⎢⎢ ⎥ ⎥ ⎢⎢ ⎥ − ⎢ ⎥[3 3] ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣1 0⎦ ⎣1⎦ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡0 ⎢⎢  ⎥⎥ ⎢ ⎢ ⎥ ⎢ ⎣0 0⎦ ⎣1 ⎣ ⎣e 2 ⎦ ⎦ ⎣ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0 ⎢⎢ ⎥ ⎥ ⎢⎢ ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣1 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎢⎢ ⎥⎥ ⎢ ⎣ ⎣e2 ⎦ ⎦ ⎣

1⎤ ⎡0 0⎤ − 0⎥⎦ ⎢⎣3 3⎥⎦ ⎡0 0⎤ ⎢0 0⎥ ⎦ ⎣

⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡0⎤ ⎥ ⎢⎢ ⎥ ⎥ ⎢1⎥[3 3] ⎣ ⎦ ⎥ ⎢⎣ x2 ⎦ ⎥ 1⎤ ⎡2⎤ ⎥⎢⎡e ⎤ ⎥ − ⎢ ⎥[1 0]⎥ ⎢ ⎢ 1 ⎥ ⎥ ⎥ 0⎦ ⎣2⎦ ⎦ ⎣ ⎣e2 ⎦ ⎦

⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡0 0⎤ ⎥ ⎢⎢ ⎥ ⎥ ⎢3 3⎥ ⎣ ⎦ ⎥ ⎢⎣ x2 ⎦ ⎥ ⎡0 1⎤ ⎡2 0⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢1 0⎥ − ⎢2 0⎥ ⎥ ⎢ ⎢e ⎥ ⎥ ⎦⎦⎣ ⎣ 2 ⎦ ⎦ ⎦ ⎣ ⎣

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡ 0 1 ⎤ ⎡0 ⎢⎢ ⎥ ⎥ ⎢⎢ ⎥ ⎢ ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣− 2 − 3⎦ ⎣3 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡− 2 ⎢⎢  ⎥⎥ ⎢ ⎢ ⎢−1 ⎥ 0 0 e ⎦ ⎣ ⎣⎣ 2 ⎦⎦ ⎣ ⎣

0⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎥ ⎥⎢ 3⎥⎦ ⎥ ⎢ ⎢⎣ x 2 ⎥⎦ ⎥ 1⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎥ ⎥⎢ 0⎥⎦ ⎦ ⎣ ⎢⎣e2 ⎥⎦ ⎦

con lo que el sistema de lazo cerrado sería: 1 0 ⎡ x1 ⎤ ⎡ 0 ⎢ x ⎥ ⎢− 2 − 3 3 ⎢ 2⎥ = ⎢ ⎢ e1 ⎥ ⎢ 0 0 −2 ⎢ ⎥ ⎢ 0 −1 ⎣ e2 ⎦ ⎣ 0

0⎤ ⎡ x1 ⎤ 3⎥⎥ ⎢⎢ x 2 ⎥⎥ 1⎥ ⎢ e1 ⎥ ⎥⎢ ⎥ 0⎦ ⎣ e2 ⎦

u = −3~ x1 − 3~ x2

g.

Determinar la ley de control y la representación del sistema para seguimiento sin acción integral de lazo cerrado mediante el observador, dado que la referencia es 2.

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 307

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

g.1.

La ley de control es: u = −K~ x + k 1r x ⎤ ⎡~ u = −[3 3]⎢ ~1 ⎥ + 3(2) ⎣ x2 ⎦

u = −3~ x1 − 3~ x2 + 6 g.2.

La representación del sistema de seguimiento sin acción integral de lazo cerrado con el observador la calcularemos recordando las ecuaciones principales del sistema: x = Ax + Bu

y = Cx + Du ~ x = A~ x + Bu + L ( y − ~ y) ~ y = C~ x + Du u = −K~ x + k1r

e = x −~ x Comenzaremos cerrando el lazo en la ecuación del sistema real: x = Ax + B (− K ~ x + k1r )

Sumamos y restamos BKxW +% &*  ; & 

&  x = Ax − BK ~ x + Bk1r + BKx − BKx x = Ax − BKx + BKx − BK ~ x + Bk1r

x = ( A − BK )x + BK (x − ~ x ) + Bk1r x = ( A − BK )x + BKe + Bk1r 

=& W +% &  •  '   ' &W 'ƒ&  tema real: x − ~ x = ( Ax + Bu) − ( A~ x + Bu + L ( y − ~ y ))

x − ~ x = Ax + Bu − A~ x − Bu − L (Cx + Du − C ~ x − Du ) x − ~ x = Ax − A~ x − L (Cx − C ~ x) (x − ~ x ) = A(x − ~ x ) − LC (x − ~ x)

(x − ~ x ) = ( A − LC )(x − ~ x) e = ( A − LC )e 308

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

Por último, reemplazamos las dos ecuaciones obtenidas en una expresión matricial donde el nuevo vector de estados contenga a x y al error e:

⎡ x ⎤ ⎡ A − BK ⎢ e ⎥ = ⎢ 0 ⎣ ⎦ ⎣

BK ⎤ ⎡ x ⎤ ⎡ Bk1 ⎤ r + A − LC ⎥⎦ ⎣⎢ e ⎥⎦ ⎢⎣ 0 ⎥⎦

Si en esta ecuación reemplazamos las matrices del sistema: ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0 1⎤ ⎡0⎤ ⎢⎢ ⎥ ⎥ ⎢⎢ ⎥ − ⎢ ⎥[3 3] ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣1 0⎦ ⎣1⎦ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡0 ⎢⎢  ⎥⎥ ⎢ ⎢ ⎥ ⎢1 ⎣0 0⎦ ⎣ ⎣ ⎣e 2 ⎦ ⎦ ⎣ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0 ⎢⎢ ⎥ ⎥ ⎢⎢ ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣1 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎢⎢ ⎥⎥ ⎢ ⎣ ⎣e2 ⎦ ⎦ ⎣

1⎤ ⎡0 0⎤ − 0⎥⎦ ⎢⎣3 3⎥⎦ ⎡0 0⎤ ⎢0 0⎥ ⎣ ⎦

⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎡0⎤ ⎥ ⎢ ⎢ ⎥ ⎥ ⎢ ⎢ ⎥[3]⎥ ⎢1⎥[3 3] ⎣ ⎦ ⎥ ⎢ ⎣ x 2 ⎦ ⎥ + ⎢ ⎣1⎦ ⎥ 2 1⎤ ⎡2⎤ ⎥ ⎢ ⎡ e ⎤ ⎥ ⎢ ⎡0⎤ ⎥ − ⎢ ⎥[1 0]⎥ ⎢ ⎢ 1 ⎥ ⎥ ⎢ ⎢ ⎥ ⎥ ⎥ 0⎦ ⎣2⎦ ⎦ ⎣ ⎣e2 ⎦ ⎦ ⎣ ⎣0⎦ ⎦

⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎡0 0⎤ ⎥ ⎢⎢ ⎥ ⎥ ⎢⎢ ⎥ ⎥ ⎢3 3⎥ ⎣ ⎦ ⎥ ⎢ ⎣ x 2 ⎦ ⎥ + ⎢ ⎣3⎦ ⎥ 2 ⎡0 1⎤ ⎡2 0⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0⎤ ⎥ ⎢1 0⎥ − ⎢2 0⎥ ⎥ ⎢ ⎢e ⎥ ⎥ ⎢ ⎢0⎥ ⎥ ⎣ ⎦ ⎣ ⎦ ⎦ ⎣ ⎣ 2 ⎦ ⎦ ⎣⎣ ⎦ ⎦

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡ 0 1 ⎤ ⎡0 ⎢⎢ ⎥ ⎥ ⎢⎢ ⎥ ⎢ ⎢ ⎣ x 2 ⎦ ⎥ = ⎢ ⎣− 2 − 3⎦ ⎣3 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡− 2 ⎢⎢ ⎥⎥ ⎢ ⎢ ⎥ ⎢ ⎣−1 ⎣ ⎣e2 ⎦ ⎦ ⎣ ⎣0 0⎦

0⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎥ ⎢ ⎥ ⎥⎢ 3⎥⎦ ⎥ ⎢ ⎢⎣ x 2 ⎥⎦ ⎥ ⎢ ⎢⎣6⎥⎦ ⎥ + 1⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0⎤ ⎥ ⎥ ⎢ ⎥ ⎢ 0⎥⎦ ⎥⎦ ⎣ ⎣⎢e2 ⎥⎦ ⎦ ⎣ ⎣⎢0⎥⎦ ⎦

con lo que el sistema de lazo cerrado sería: 1 0 ⎡ x1 ⎤ ⎡ 0 ⎢ x ⎥ ⎢− 2 − 3 3 ⎢ 2⎥ = ⎢ ⎢ e1 ⎥ ⎢ 0 0 −2 ⎢ ⎥ ⎢ 0 −1 ⎣ e2 ⎦ ⎣ 0

0⎤ ⎡ x1 ⎤ ⎡0⎤ 3⎥⎥ ⎢⎢ x 2 ⎥⎥ ⎢⎢6⎥⎥ + 1⎥ ⎢ e1 ⎥ ⎢0⎥ ⎥⎢ ⎥ ⎢ ⎥ 0⎦ ⎣ e2 ⎦ ⎣0⎦

x1 − 3~ x2 + 6 u = −3~

h.

Determinar el controlador de estados, la ley de control y la representación del sistema para seguimiento con acción integral de lazo cerrado mediante el observador, dado que la referencia es 3, y polos en –1, -1 y -2. h.1.

El controlador con acción integral lo calculamos a través del redimensionamiento de las matrices del sistema, y la ubicación de sus polos: x = Ax + Bu

y = Cx + Du u = −K~ x + kI ξ

ξ = r − Cx

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 309

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

⎡ x ⎤ ⎡ A ⎢ ⎥ = ⎢ ⎣ξ ⎦ ⎣− C y = [C

0⎤ ⎡ x ⎤ ⎡ B ⎤ ⎡0⎤ + ⎢ ⎥u + ⎢ ⎥ r ⎥ ⎢ ⎥ 0⎦ ⎣ξ ⎦ ⎣ 0 ⎦ ⎣I ⎦ ⎡ x⎤ 0]⎢ ⎥ + [D ]u ⎣ξ ⎦

Por lo tanto, el nuevo sistema es:

⎡ x1 ⎤ ⎡ ⎡0 1⎤ ⎡0⎤ ⎤ ⎡ x1 ⎤ ⎡ ⎡0⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎢ x ⎥ = ⎢ ⎢ ⎥ ⎢ x ⎥ + ⎢ ⎢ ⎥ ⎥u + ⎢ ⎢ ⎥ ⎥ r ⎥ ⎢ ⎥ ⎢ 2 ⎥ ⎢ ⎣1 0⎦ ⎣0⎦ ⎥ ⎢ 2 ⎥ ⎢ ⎣1⎦ ⎥ ⎢ ⎣0⎦ ⎥  ⎢⎣ ξ ⎥⎦ ⎣⎢− [1 0] [0] ⎦⎥ ⎣⎢ ξ ⎥⎦ ⎣⎢ [0] ⎦⎥ ⎣⎢ [1] ⎦⎥ ⎡0⎤ ⎡ x1 ⎤ ⎡ 0 1 0⎤ ⎡ x1 ⎤ ⎡0⎤ ⎢ x ⎥ = ⎢ 1 0 0⎥ ⎢ x ⎥ + ⎢1⎥u + ⎢0⎥ r ⎢ ⎥ ⎥⎢ 2 ⎥ ⎢ ⎥ ⎢ 2⎥ ⎢ ⎢⎣1⎥⎦ ⎢⎣ ξ ⎦⎥ ⎢⎣− 1 0 0⎥⎦ ⎣⎢ ξ ⎦⎥ ⎢⎣0⎥⎦

⎡ x1 ⎤ y = [1 0 0]⎢⎢ x 2 ⎥⎥ + [0]u ⎣⎢ ξ ⎥⎦ calculando, el controlador de estados: sI − ( A − BKˆ ) = (s + 1) 2 (s + 2)

⎡ s 0 0⎤ ⎡ 0 1 0⎤ ⎡0⎤ ⎢0 s 0⎥ − ⎢ 1 0 0⎥ + ⎢1⎥[k ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ 1 ⎢⎣0 0 s ⎦⎥ ⎢⎣− 1 0 0⎦⎥ ⎢⎣0⎥⎦ ⎡ s − 1 0⎤ ⎡ 0 ⎢− 1 s 0⎥ + ⎢k ⎢ ⎥ ⎢ 1 ⎢⎣ 1 0 s ⎥⎦ ⎢⎣ 0

0 k2 0

s −1 k1 − 1 s + k2 1 0

k2

− kI ] = (s 2 + 2s + 1)(s + 2)

0 ⎤ − k I ⎥⎥ = s 3 + 2s 2 + s + 2s 2 + 4s + 2 0 ⎦⎥ 0 − k I = s 3 + 4s 2 + 5s + 2 s

s 3 + k2 s 2 + k I + (k1 − 1)s = s 3 + 4s 2 + 5s + 2 s 3 + k2 s 2 + (k1 − 1)s + k I = s 3 + 4s 2 + 5s + 2 

7"  &%& +% ' '  & k1 = 6 k2 = 4

kI = 2 Es decir que, el controlador de estados es: Kˆ = [6 4 − 2]

310

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

h.2.

La ley de control es: u = − Kˆ ~ x donde: Kˆ = [K

− kI ]

= −K ~ x + kI ξ

x ⎤ ⎡~ u = −[6 4]⎢ ~1 ⎥ + 2ξ ⎣ x2 ⎦ u = −6~ x1 − 4~ x 2 + 2ξ h.3.

La representación del sistema de seguimiento con acción integral de lazo cerrado con el observador la calcularemos recordando las ecuaciones principales del sistema: x = Ax + Bu

y = Cx + Du

e = x −~ x e = ( A − LC )e u = −K~ x + kI ξ

ξ = r − Cx Cerraremos el lazo de control en la ecuación del sistema: x = Ax + B (− K ~ x + kI ξ ) x = Ax − BK ~ x + Bk I ξ + (BKx − BKx )

x = Ax − BKx + BKx − BK ~ x + Bk I ξ x = ( A − BK )x + BK (x − ~ x ) + Bk I ξ si reemplazamos la equivalencia del error: x = ( A − BK )x + BKe + Bk I ξ

ahora, con la ecuación obtenida, con la de la derivada del error y con la acción integral, llegamos al siguiente sistema:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 311

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

⎡ x ⎤ ⎡ A − BK ⎢e⎥ = ⎢ 0 ⎢ ⎥ ⎢ ⎢⎣ξ⎥⎦ ⎢⎣ − C y = [C

Bk I ⎤ ⎡ x ⎤ ⎡0⎤ 0 ⎥⎥ ⎢⎢ e ⎥⎥ + ⎢⎢0⎥⎥ r 0 ⎥⎦ ⎢⎣ξ ⎦⎥ ⎣⎢ I ⎥⎦

BK A − LC 0

⎡ x⎤ ⎢ 0 0]⎢ e ⎥⎥ + [D ]u ⎢⎣ξ ⎥⎦

Si reemplazamos las ecuaciones iniciales, tenemos:

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0 1⎤ ⎡0⎤ ⎢⎢ ⎥ ⎥ ⎢⎢ ⎥ − ⎢ ⎥[6 4] ⎢ ⎣ x 2 ⎦ ⎥ ⎢ ⎣1 0⎦ ⎣1⎦ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 0⎤ ⎡0 ⎢⎢  ⎥⎥ = ⎢ ⎢ ⎥ ⎢1 ⎣0 0⎦ ⎣ ⎢ ⎣e2 ⎦ ⎥ ⎢ ⎢ [ξ ] ⎥ ⎢ − [1 0] ⎥ ⎢ ⎢ ⎣ ⎦ ⎣

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0 ⎢⎢ ⎥ ⎥ ⎢⎢ ⎢ ⎣ x 2 ⎦ ⎥ ⎢ ⎣1 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎢⎢ ⎥⎥ = ⎢ ⎢ ⎣e2 ⎦ ⎥ ⎢ ⎢ [ξ] ⎥ ⎢ ⎢ ⎥ ⎢ ⎦ ⎣ ⎣

1⎤ ⎡0 0⎤ − 0⎥⎦ ⎢⎣6 4⎥⎦ ⎡0 0⎤ ⎡0 ⎢0 0⎥ ⎢1 ⎣ ⎦ ⎣ [− 1 0]

⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡ 0 ⎢⎢ ⎥ ⎥ ⎢⎢ ⎢ ⎣ x 2 ⎦ ⎥ ⎢ ⎣− 5 ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0 ⎢⎢  ⎥⎥ = ⎢ ⎢ ⎢ ⎣e 2 ⎦ ⎥ ⎢ ⎣0 ⎢ [ξ] ⎥ ⎢ [− 1 ⎥ ⎢ ⎢ ⎣ ⎦ ⎣

1⎤ − 4⎥⎦ 0⎤ 0⎥⎦ 0]

⎡0⎤ ⎡0⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎢1⎥[6 4] ⎢1⎥[2]⎥ ⎢ ⎢ x ⎥ ⎥ ⎢ ⎢0⎥ ⎥ ⎣ ⎦ ⎣ ⎦ ⎥ ⎢⎣ 2 ⎦ ⎥ ⎢⎣ ⎦ ⎥ 1⎤ ⎡2⎤ ⎡0⎤ ⎥ ⎢ ⎡ e ⎤ ⎥ ⎢ ⎡0⎤ ⎥ − ⎢ ⎥[1 0] ⎢ ⎥ ⎥ ⎢ ⎢ 1 ⎥ ⎥ + ⎢ ⎢ ⎥ ⎥ r ⎥ 0⎦ ⎣2⎦ ⎣0⎦ ⎥ ⎢ ⎣e2 ⎦ ⎥ ⎢ ⎣0⎦ ⎥ [0 0] [0] ⎥ ⎢ [ξ ] ⎥ ⎢ [1]⎥ ⎥ ⎢ ⎥ ⎥⎢ ⎦⎣ ⎦ ⎣ ⎦

⎡0 0⎤ ⎢6 4⎥ ⎣ ⎦ 1⎤ ⎡2 0⎤ − 0⎥⎦ ⎢⎣2 0⎥⎦ [0 0]

⎡0 ⎢6 ⎣ ⎡− 2 ⎢−1 ⎣ [0

⎡0⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎢2⎥ ⎥ ⎢ ⎢ x ⎥ ⎥ ⎢ ⎢0⎥ ⎥ ⎣ ⎦ ⎥ ⎢⎣ 2 ⎦ ⎥ ⎢⎣ ⎦ ⎥ ⎡0⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0⎤ ⎥ ⎢0⎥ ⎥ ⎢ ⎢e ⎥ ⎥ + ⎢ ⎢0⎥ ⎥ r ⎣ ⎦ ⎥ ⎢ ⎣ 2 ⎦ ⎥ ⎢⎣ ⎦ ⎥ [0] ⎥ ⎢ [ξ ] ⎥ ⎢ [1] ⎥ ⎥ ⎢ ⎥ ⎥⎢ ⎦⎣ ⎦ ⎣ ⎦

0⎤ ⎡0⎤ ⎤ ⎡ ⎡ x1 ⎤ ⎤ ⎡ ⎡0⎤ ⎤ ⎥ ⎢ ⎥ ⎥⎢ 4⎥⎦ ⎢⎣2⎥⎦ ⎥ ⎢ ⎢⎣ x 2 ⎥⎦ ⎥ ⎢ ⎢⎣0⎥⎦ ⎥ 1⎤ ⎡0⎤ ⎥ ⎢ ⎡ e1 ⎤ ⎥ ⎢ ⎡0⎤ ⎥ r ⎥+ ⎢ 0⎥⎦ ⎢⎣0⎥⎦ ⎥⎥ ⎢ ⎢⎣e2 ⎥⎦ ⎥ ⎢⎢ ⎢⎣0⎥⎦ ⎥⎥ 0 ] [0] ⎥ ⎢ [ξ ] ⎥ ⎢ [1] ⎥ ⎥ ⎢ ⎥ ⎥⎢ ⎦⎣ ⎦ ⎣ ⎦

Las ecuaciones de estado del sistema de lazo cerrado y su respectiva ley de control son: 1 0 0 ⎡ x1 ⎤ ⎡ 0 ⎢ x ⎥ ⎢− 5 − 4 6 4 ⎢ 2⎥ ⎢ ⎢ e1 ⎥ = ⎢ 0 0 −2 1 ⎢ ⎥ ⎢ 0 −1 0 ⎢ e2 ⎥ ⎢ 0  ⎢⎣ ξ ⎥⎦ ⎢⎣ − 1 0 0 0

0⎤ ⎡ x1 ⎤ ⎡0⎤ 2⎥⎥ ⎢⎢ x 2 ⎥⎥ ⎢⎢0⎥⎥ 0⎥ ⎢ e1 ⎥ + ⎢0⎥ r ⎥⎢ ⎥ ⎢ ⎥ 0⎥ ⎢ e2 ⎥ ⎢0⎥ 0⎥⎦ ⎢⎣ ξ ⎥⎦ ⎢⎣1⎥⎦

⎡ x1 ⎤ ⎢x ⎥ ⎢ 2⎥ y = [1 0 0 0 0]⎢ e1 ⎥ + [0]u ⎢ ⎥ ⎢ e2 ⎥ ⎣⎢ ξ ⎦⎥

312

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

u = −6~ x1 − 4~ x 2 + 2ξ i.

Diseñar un controlador óptimo que minimice a la función. La función de costos que minimiza a la función es: ∞

J = ∫ (x T Qx + u T Ru)dt 0



J = ∫ (10x12 + x 22 + u 2 )dt 0

∞⎛ J = ∫ ⎜⎜ [x1 0 ⎝

⎞ ⎡10 0⎤ ⎡ x1 ⎤ + u[1]u⎟⎟ dt x 2 ]⎢ ⎢ ⎥ ⎥ ⎣ 0 1⎦ ⎣ x 2 ⎦ ⎠

⎡10 0⎤ de donde Q = ⎢ ⎥ y R = [1] . ⎣ 0 1⎦ Determinamos P usando la Ecuación Reducida de Riccati: ATP + PA − PBR−1BTP + P+Q = 0 T

⎡0 1⎤ ⎡ p1 ⎢1 0⎥ ⎢ p ⎦ ⎣ 2 ⎣

p2 ⎤ ⎡ p1 + p3 ⎦⎥ ⎢⎣ p2

⎡ p1 ⎢p ⎣ 2 ⎡0 1⎤ ⎡ p1 ⎢ ⎥⎢ ⎣1 0⎦ ⎣ p2

⎡ p2 ⎢p ⎣ 1

p2 ⎤ ⎡0 1⎤ − p3 ⎥⎦ ⎢⎣1 0⎦⎥ T

p2 ⎤ ⎡0⎤ −1 ⎡0⎤ ⎡ p1 [1] ⎢ ⎥ ⎢ p3 ⎥⎦ ⎢⎣1⎥⎦ ⎣1⎦ ⎣ p2

p2 ⎤ ⎡ p2 + p3 ⎥⎦ ⎢⎣ p3

p3 ⎤ ⎡ p2 + p2 ⎥⎦ ⎢⎣ p3 ⎡ 2 p2 ⎢p + p 3 ⎣ 1 ⎡ 2 p2 ⎢p + p 3 ⎣ 1

p2 ⎤ ⎡10 0⎤ ⎡0 0⎤ + = p3 ⎦⎥ ⎢⎣ 0 1⎦⎥ ⎣⎢0 0⎥⎦

p1 ⎤ ⎡ p2 ⎤ ⎡p − ⎢ ⎥[1][0 1]⎢ 1 ⎥ p2 ⎦ ⎣ p3 ⎦ ⎣ p2

p1 ⎤ ⎡ p2 ⎤ ⎡p − ⎢ ⎥[0 1]⎢ 1 ⎥ p2 ⎦ ⎣ p3 ⎦ ⎣ p2 p1 + p3 ⎤ ⎡0 − 2 p2 ⎥⎦ ⎢⎣0

⎡ p22 − 2 p2 ⎢ ⎣ p2 p3 − p1 − p3

p2 ⎤ ⎡10 0⎤ ⎡0 0⎤ = + p3 ⎦⎥ ⎢⎣ 0 1⎦⎥ ⎢⎣0 0⎥⎦

p2 ⎤ ⎡ p1 p3 ⎥⎦ ⎢⎣ p2

p1 + p3 ⎤ ⎡ p22 −⎢ 2 p2 ⎥⎦ ⎣ p2 p3

p2 ⎤ ⎡10 0⎤ ⎡0 0⎤ + = p3 ⎦⎥ ⎢⎣ 0 1⎥⎦ ⎢⎣0 0⎥⎦

p2 ⎤ ⎡− 10 0 ⎤ = p3 ⎦⎥ ⎢⎣ 0 − 1⎥⎦

p2 p3 ⎤ ⎡− 10 0 ⎤ ⎥=⎢ ⎥ p32 ⎦ ⎣ 0 − 1⎦

p2 p3 − p1 − p3 ⎤ ⎡10 0⎤ ⎥=⎢ ⎥ p32 − 2 p2 ⎦ ⎣ 0 1⎦

De esta igualdad, obtenemos las siguientes ecuaciones simultáneas: p22 − 2 p2 = 10 p2 p3 − p1 − p3 = 0

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 313

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

p32 − 2 p2 = 1

Resolviendo la primera ecuación: De esta igualdad, conseguimos las siguientes ecuaciones simultáneas: p22 − 2 p2 = 10 p2 p3 − p1 − p3 = 0 p32 − 2 p2 = 1

Resolviendo la primera ecuación:

p2 =

2 ± 4 + 40 2

p2 =

2 ± 44 2

p2 = 1 ± 11 p2,1 = 4. 3167 y p2, 2 = −2. 3167 no podemos descartar ninguna de las dos alternativas, hasta comprobar que la matriz   + &' W*"   H&    +% &‰" %  "   "# ' 2 ces de la diagonal de P, tengan determinante positiva. Es decir, p1 > 0 y p1 p3 − p2 > 0. Comenzaremos evaluando a p2,1 en la tercera ecuación: p32 − 2 − 2 11 = 1 p32 = 9. 6334 p3,1,1 = 3. 1038 y p3,1, 2 = −3. 1038 Reemplazamos los valores de p2,1 y p3 ,1,1 en la segunda ecuación: (4.3167)(3.1038) − p1 − (3.1038) = 0 p1 = 10. 2944

Con este dato podemos armar P:

⎡10. 2944 4. 3167⎤ PA = ⎢ ⎥ ⎣ 4. 3167 3. 1038⎦ Esta matriz PA cumple con las dos condiciones presentadas en el párrafo anterior. De '&    +% & *ƒ " & "%5

314

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

>k|–”x}“Q‘>“[”_“}—|”\˜“

Ahora, reemplazaremos los valores de p2,1 y p3 ,1,2 en la segunda ecuación: (4. 3167)(−3. 1038) − p1 − (−3. 1038) = 0 p1 = −10. 2944

En este paso ya vemos que una de las condiciones no está cumpliéndose, así que descartamos estos valores. Continuamos, evaluando a p2,2 en la tercera ecuación: p32 − 2 + 2 11 = 1 p32 = −3. 6334 p3, 2,1 = 1. 9061j y p3, 2, 2 = −1. 9061j Reemplazamos los valores de p2,2 y p3,2.1 en la segunda ecuación: (−2. 3167)(1. 9061j ) − p1 − (1. 9061j ) = 0 p1 = −6. 3221j

En este paso por lo menos una de las condiciones no está cumpliéndose, así que descartamos estos valores. Ahora, reemplazaremos los valores de p2,2 y p3,2.2 en la segunda ecuación: (−2. 3167)(−1. 9061j ) − p1 − (−1. 9061j ) = 0 p1 = 6. 3221j

Con este dato podemos armar P:

⎡ 6. 3221j − 2. 3167⎤ PB = ⎢ ⎥ ⎣− 2. 3167 − 1. 9061j ⎦ Esta matriz PB cumple con las dos condiciones presentadas en el párrafo anterior. Nuestras soluciones son: ⎡10. 2944 4. 3167⎤ ⎡ 6. 3221j − 2. 3167⎤ y PB = ⎢ PA = ⎢ ⎥ ⎥ ⎣ 4. 3167 3. 1038⎦ ⎣− 2. 3167 − 1. 9061j ⎦ Para facilitar el cálculo y evitar trabajar con términos imaginarios para el diseño del controlador óptimo, tomamos la matriz PA como nuestra solución:

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` 315

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

⎡10. 2944 4. 3167⎤ P=⎢ ⎥ ⎣ 4. 3167 3. 1038⎦ Para calcular el controlador debemos reemplazar los valores de las matrices correspondientes en la fórmula: K = R −1 B T P T

⎡0⎤ ⎡10. 2944 4. 3167⎤ K = [1] ⎢ ⎥ ⎢ ⎥ ⎣1⎦ ⎣ 4. 3167 3. 1038⎦ −1

⎡10. 2944 4. 3167⎤ K = [1][0 1]⎢ ⎥ ⎣ 4. 3167 3. 1038⎦ Por lo tanto, el controlador de estados óptimo cuadrático es: K = [4. 3167 3. 1038]

Con este calculador podemos realizar todo tipo de análisis y simulación, tal como se ha hecho en los diferentes puntos de este ejemplo.

316

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Apéndice A: Introducción al Matlab

Matlab (Matricial Laboratory o Laboratorio Matricial) es al mismo tiempo un entorno y un lenguaje de programación. Uno de sus puntos fuertes es el hecho de que el lenguaje de Matlab1 le permite construir sus propias herramientas reutilizables (Archivos-M o M-Files). La agrupación de estas herramientas en un directorio da origen al nombre de toolbox (caja de herramientas). Así como cada uno puede generar sus M-Files y agruparlos en toolboxes particulares, existen toolboxes comerciales debido al esfuerzo de investigadores líderes a nivel mundial en Control, Procesamiento de Señales, Matemáticas y Estadística, entre otras. Los toolboxes comercializados son los siguientes: 1. Control System Toolbox 

5  %" %*& *'  '+% '&@&& #&• 3. Fuzzy Logic Toolbox 4. Higher-Order Spectral Analysis Toolbox 5. Image Procesing Toolbox 6. Model Predictive Toolbox 7. Mu-Analysis and Synthesis Toolbox 8. NAG Foundation Toolbox 9. Neural Network Toolbox 10. Nonlinear Control Design Toolbox 11. Optimization Toolbox 12. Quantitative Feedback Theory Toolbox 13. Robust Control Toolbox 14. Signal Processing Toolbox 15. Simulink 16. Simulink Real-Time Workshop 17. Spline Toolbox 18. Statistics Toolbox 19. Symbolic Math Toolbox



Q5 *'  '+% '&@&& #&•

Para correr el Matlab, simplemente se debe hacer doble clic con el botón derecho del mouse sobre el Š%&&  &7  J ' #5& 'ƒ&# W "   / %"'   % &J=@X=5$¾$"#% &  el subdirectorio BIN del directorio Matlab.

X&' •'& %"    +    Š   &7  % J ' #5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–1

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Una vez cargado el programa aparece la ventana de comandos (Command Window) donde ya se puede empezar a realizar los cálculos necesarios. En el entorno de la ventana de comandos se escriben las instrucciones para ser ejecutadas. Actualmente, en la Versión 6, se abren más ventanas tales como la ventana del Lauch Pad, la cual permite ver un árbol de ayuda y demos del producto, la ventana del Current Directory (directorio actual), donde se ven los archivos del directorio, ubicado el programa, el que a su vez puede variarse en esa misma aplicación, la ventana de Command History (Historial de Comandos) donde se presentan todos los comandos utilizados anteriormente y otros que iremos comentando oportunamente.

Operadores de matemáticas: Son ejecutados exactamente igual que en cualquier calculadora, es decir si quiero sumar dos números: 2 + 3 ENTER y en la pantalla aparecerá la respuesta 5. El mismo procedimiento se realiza para la resta (−), división (/), multiplicación (*), raíz cuadrada (sqrt), potencia (^), logaritmo natural (log), logaritmo en base 10 (log10), etcétera.

Operadores relacionales: X&& &  %&  ' 7 %&& " ' "µÄ%" & & % µ³   Ä *"µQÄ%" & & % µ  Ä5 Son frecuentemente utilizados como condicionantes en estructuras de programación, es decir, efectúan desvíos de la secuencia normal de trabajo de un programa. Los operadores son:
= Mayor o igual que == Igual que ~= Diferente que

A–2

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Operadores lógicos: Los operadores lógicos se encargan de validar las operaciones lógicas conocidas como las conjunciones, disyunciones, negaciones y la diferencia simétrica, más conocida como el O Exclusivo. Estos operadores son: ~A

Negación lógica (NOT) o complemento de A

A&B

Conjunción lógica (AND) o intersección de A y B

A|B

Disyunción lógica (OR) o unión de A y B

xor(A,B)

K $•% " &®¾KŸ£&H % Œ' %  =*

Variables: Las variables son usadas como memorias de números, vectores, matrices, números complejos y de las mismas variables, y de todas las combinaciones de los antes mencionados. a = 1; (el punto y coma se usa para que el resultado no aparezca en pantalla) a = 1 + 2i; a = [2 3 4]; (forma de un vector) a = [ 2 3 4 ; 5 6 7 ; 8 9 1 ]; o

a=[

2

3

4

5

6

7

8

9

1 ] ; (en ambos casos son matrices)

c = 24 * 15 – 46 + sqrt( a ) – log10 ( pi ) / exp( 5 ); a = a + 1 – a ^ 2 + c; Cabe resaltar que estos cálculos se pueden aplicar entre los elementos matriciales siempre y cuando se coloque un punto (.) antes del operador.

Polinomios: X&& &&& %&&%&  J ' #%&& %'& + *& & / %"' & %&nes con ellos. Por ejemplo: A = [1 1];

es la representación de x + 1

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–3

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Es importante mencionar que podemos considerar a los vectores como matrices unidimensio W  '   " %'& +  "  ' ; &  •*" %'& %& "  "  matriz de orden Nx1.

Condicional: IF Ejecuta órdenes al cumplirse una/s condición/es La forma general de un IF es: IF condición, órdenes, END Las órdenes son ejecutadas si la parte real de la variable condicionada tiene todos sus elementos diferentes de cero, es decir si la condición es verdadera. Las condiciones normalmente están sujetas a los siguientes operadores condicionales lógicos: ==, , =, o ~=. Por ejemplo: IF I == J A(I,J) = 2; ELSEIF ABS(I-J) == 1 A(I,J) = -1; ELSE A(I,J) = 0; END

Lazos de Programación: FOR 

Ÿ '     "Y &  %Š+%&  % 5 La forma general del FOR es: FOR variable = expr, orden, ..., orden END Las columnas de la expresión son ejecutadas o grabadas una por vez en la variable y luego son ejecutadas todas las órdenes antes del END. Las expresiones normalmente son de la H&  ¾ 0, E = E + F; F = A*F/N; N = N + 1; END

Constantes del Sistema: NaN Del inglés Not-a-Number, No es un Número. NaN es la representación aritmética de la IEEE para algo que no es un número. Un NaN se &#'  %&&  " ' & "  +% ' ƒ'%  & %& %&&Q5Q¯Q5Q* inf-inf. INF 

+'&5



  %  %&&   ' % 'Œ'%     $$$    +'& &' &5 +'& también es el resultado de operaciones como las divisiones por cero y por el desbordamiento de las capacidades del programa. Por ejemplo, 1.0/0.0, o exp (1000).

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–5

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

PI La constante trigonométrica π. Es decir, 3.1415926… EPS 

"'&+ &' '   % ' 5$%    %Š  ' &"'&%&tiguos para efectos de cálculo del programa, es decir, que es el menor intervalo. Es utilizado por defecto por muchos comandos. Su valor está alrededor de 2.2204e-016.

Algunos comandos útiles: CONV Encuentra las raíces o polos de un polinomio (resuelve el polinomio). 

ŸKK@®>£%&"'   Š%  & &&%"*&%& +% ' & &  '&  %'&  >5>'  ¹%&& ' W & && >®£Ö¾×¹555¹>®£Ö¾¹>®¹£5 Convolución o multiplicación polinómica.



>­>K³®=W£%& & "%&  & %'& =*5X  &7'"  %'&  " ' '   µX&7'" =¹ &7'" ‡Ä5=*& %'& ‰"    ' %& +% ' & cos, podemos concluir que la convolución es equivalente a la multiplicación polinómica.

EIG Valores propios, autovalores o eigenvalues de una matriz. 

$­$¬®¾£ ' 7 " %'& $‰" %&'   & &  && "  ' ;%"   ¾5

SUM Sumatoria de elementos. 

  %'& WZJ®¾£  " '&    &  '&  %'& ¾5  ' % WZJ®¾£ " %'& + %"*&  '&%&'   " '&   "  %' %& " 5



$/  &¾­ØQ 3 4 5]



'&% =­"®¾£ Ø!Ù*"®=£ 5

MEAN Valor medio o promedio. 

  %'& W J$=®¾£    & &   &  '&   %'&  ¾5    ' % W J$=®¾£ " %'& + ‰" %&'   & &  & "  %' %& " 5



$/  &¾­ØQ 3 4 5]



A–6

'&%  ®¾£Ø55!5Ù

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

J=¾&J Componentes máximos y mínimos. 

  %'& WJ=¾®¾£&J®¾£& &ƒ•&& &Š&  %'& ¾5  ' % W J=¾®¾£&J®¾£ ' 7 " %'& + %& &ƒ•&&Š&%&

& '  " respectivas columnas.

ROOTS Encuentra las raíces o polos de un polinomio (resuelve el polinomio). 

ŸKK@®>£%&"'   Š%  & &&%"*&%& +% ' & &  '&  %'&  >5>'  ¹%&& ' W & && >®£Ö¾×¹555¹>®£Ö¾¹>®¹£5

POLY Polinomio característico. 

= "  ' ;& WKX\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Ejemplo 3: Teclado:

syms x y a = (x ^ 2 + 2 * x * y + y ^ 2) ^ 2 + 3 * x * y

Matlab:

a= (x ^ 2 + 2 * x * y + y ^ 2) ^ 2 + 3 * x * y

Teclado:

simple(a)

Matlab:

simplify: x^4 + 4 * x^3 * y + 6 * x^2 * y ^2 + 4 * x * y^3 + y^4 + 3 * x * y radsimp: x^4 + 4 * x^3 * y + 6 * x^2 * y^2 + 4 * x * y^3 + y^4 + 3 * x * y combine(trig): x^4 + 4 * x^3 * y + 6 * x^2 * y^2 + 4 * x * y^3 + y^4 + 3 * x * y factor: x^4 + 4 * x^3 * y + 6 * x^2 * y^2 + 4 * x * y^3 + y^4 + 3 * x * y expand: x^4 + 4 * x^3 * y + 6 * x^2 * y^2 + 4 * x * y^3 + y^4 + 3 * x * y combine: (x^2+2*x*y+y^2)^2+3*x*y convert(exp): (x^2+2*x*y+y^2)^2+3*x*y convert(sincos): (x^2+2*x*y+y^2)^2+3*x*y convert(tan): (x^2+2*x*y+y^2)^2+3*x*y collect(x): x^4 + 4 * x^3 * y + 6 * x^2 * y^2 + ( 4 * y^3 + 3 * y ) * x + y^4 ans = (x^2+2*x*y+y^2)^2+3*x*y

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–11

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Integrales: Para realizar integrales se debe utilizar la función int( ), la cual puede tomar varias entradas. int(s)  ' 7  +    %" %µsÄ%&  %'&    #  '  + &   H %'&&  J ' #5µs’ " %&' ' W ' 7  " ' %&  %'& µ•Ä5 int(s,v)  ' 7  +  ‘s’ con respecto a la variable ‘v’. ‘v’ debe ser una variable lite  +   ' sym o syms. int(s,a,b) " ' 7  +  ‘s’ con respecto a la variable simbólica por defecto desde ‘a’ hasta ‘b’. ‘a’ y ‘b’ son escalares o variables literales. int(s,v,a,b)  ' 7  +  ‘s’ con respecto a la variable ‘v’ desde ‘a’ hasta ‘b’. Ejemplos: Teclado:

syms x x1 alpha u t; A = [ cos( x * t ), sin( x * t ); - sin( x * t ), cos( x * t ) ]; int( 1 / ( 1 + x ^ 2 ) )

A–12

Matlab:

atan( x )

Teclado:

int( sin( alpha * u ) , alpha )

Matlab:

- cos( alpha * u ) / u

Teclado:

int( besselj( 1 , x ) , x )

Matlab:

- besselj( 0 , x )

Teclado:

int( x1 * log( 1 + x1 ) , 0 , 1 )

Matlab :

1/4

Teclado:

int( 4 * x * t , x , 2 , sin( t ) )

Matlab :

2 * sin( t ) ^ 2 * t – 8 * t

Teclado:

int( [ exp( t ) , exp( alpha * t ) ] )

Matlab :

[ exp( t ) , 1 / alpha * exp( alpha * t ) ]

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Teclado:

int( A , t )

Matlab:

[ sin( x * t ) / x , - cos( x * t ) / x ] [ cos( x * t ) / x ,

sin( x * t ) / x ]

Derivadas: diff( ) Es la función que resuelve una derivada o derivada parcial. diff(x)W ' 7      "  %" %& ' ;%&  %'& "   #  +  diante sym o syms, o a una variable por defecto del Matlab. diff(S,v), "      %  "  %" %& ' ; + %&&‘S’, con respecto a "   # # %  + %&&‘v’. Ejemplo: Teclado:

syms x y A=2*x +3*x^2+x*y*3

Matlab:

A= 2*x+3*x^2+3*x*y

Teclado:

diff( A )

Matlab:

ans = 2+6*x+3*y

Teclado:

diff( A , x )

Matlab:

ans = 2+6*x+3*y

Teclado:

B=2*y

Matlab:

B= 2*y

Teclado:

diff( B )

Matlab:

ans = 2

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–13

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Teclado:

diff( A , y )

Matlab:

ans = 3*x

Resolución de ecuaciones: Las matemáticas simbólicas del Matlab, pueden servir para resolver ecuaciones mediante la función solve( ). solve( f ), resuelve una ecuación simbólica ‘f’ despejando su variable simbólica. Esta función asume la ecuación f=0. [v1, v2, … ] = solve( f1 , f2 …), resuelve el sistema de ecuaciones representado por las funciones ‘f1’, ‘f2’, ..., entregando los valores de las variables ‘v1’, ‘v2’, ... [ v ] = solve( f , v ), despeja una variable de una ecuación entregando su solución, o su representación con respecto a las demás variables de la misma ecuación. Ejemplo: Teclado:

syms x y eq1 = ‘x – 3 = 4’;





‰­µ•×‡•‡­QµÆ





‰!­µ•×¹Ö•¹­QµÆ





‰­µ!Ö•¹Ö*‡;­QµÆ





‰­µ‡•¹!Ö*¹Ö;­µÆ





‰­µ•‡*‡;­‡µÆ solve( eq1 )

Matlab:

ans = 7

Teclado:

A–14

solve( eq2 )

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Matlab:

ans = [ -2 ] [ 3]

Teclado:

solve( eq3 )

Matlab:

ans = [-1+i*3^(1/2)] [-1–i*3^(1/2) ]

Teclado:

[ x , y , z ] = solve( eq4, eq5, eq6 )

Matlab:

x= -2 y= 5 z= -6

Teclado:

[ x ] = solve( eq6, ‘x’ )

Matlab:

x= y+z-1

Transformaciones: Algunas de las aplicaciones que no son muy utilizadas pero que nos permiten ahorrar bastante tiempo en cálculos tediosos, son las relacionadas con las transformaciones. Ellas están desarrolladas en el Matlab bajo las siguientes funciones:

Transf. Directas

Transf. Inversas

Nombre de Transformación

laplace( )

ilaplace( )

Transformada de Laplace

fourier( )

ifourier( )

Transformada de Fourier

ztrans( )

iztrans( )

Transformada Z

Las funciones para ser transformadas deberán ser colocadas entre los paréntesis. Cabe incidir ‰"    #  # ƒ '    '  + # %  ' 5

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–15

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Toolboxes de control y señales Estas son herramientas del Matlab que tienen una serie de funciones que facilitarán el procesamiento de las señales y de los sistemas de control. Explicar al detalle cada una de las funciones de los toolboxes en cuestión llevaría mucho tiempo y es probable que se vuelva muy tedioso y complicado, así que es recomendable plantear una serie de casos diferentes para que en ellos se pueda entender y conocer el uso de las funciones más útiles. Para comenzar debemos diferenciar dos señales, las analógicas de las digitales: 1.

Señal analógica:

x(t ) = A cos(ω t + φ )

2.

Señal digital:

x k = A cos(ω kT + φ ) donde:

ω = 2π f T = Periodo de muestreo k = Número de muestra

φ = Fase Si asignamos valores de la siguiente manera: A = e−t

ω = 2π

φ=

3π 2

T= 0.01 podemos apreciar que las señales análoga y digital generadas serían:

A–16

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Señal Analógica 1

0.5

f(t) 0

-0.5

0

0.5

1

1.5

2

2.5

3

2

2.5

3

t,s

Señal Digital 1

0.5

f(kT) 0

-0.5 0

0.5

1

1.5

kT,s

  &'  +7"  ' & W" &" % &JW ‰" 

 &H %5*‰" %&'   las siguientes líneas: clear all close all clc w = 2*pi; phi = 3*pi/2; k = 1; for t = 0:0.01:3 A

= 1*exp(-t);

tt(k,1) = t; f(k,1) = A*cos(w*t+phi); k

= k + 1;

end k = 1; for t = 0:0.1:3 A

= 1*exp(-t);

tt1(k,1) = t; f1(k,1) = A*cos(w*t+phi); k

= k + 1;

end

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–17

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

 subplot(211) plot(tt,f) xlabel(‘t,s’) ylabel(‘f(t)’) title (‘Señal Analógica’) grid on subplot(212) plot(tt1,f1,’o’) xlabel(‘kT,s’) ylabel(‘f(kT)’) title(‘Señal Digital’) grid on El cálculo anterior fue diseñado solamente para generar una función senoidal y tomar unas muestras de ella. =& WŠ & 7  "  ™ %&% %' Š'%   %Š+% 5&  /  &W7  & una señal seno de frecuencia 20 Hz con una frecuencia de muestreo igual a 128 Hz y tomaremos 64 muestras. Esta señal la conseguimos con el siguiente archivo-M llamado frec2.m: clear all close all clc f = 20; w = 2*pi*f; fm = 128; T = 1/fm; N = 64; k = 0:N-1; x = sin(w*k*T);  plot(k*T,x) xlabel(‘kT (seg)’) ylabel(‘x(kT)’) title(‘Señal Seno de 20 Hz’) grid on

A–18

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Señal Seno de 20 Hz 1

0.8

0.6

0.4

0.2

x(kT)

0

-0.2

-0.4

-0.6

-0.8

-1 0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

kT (seg)

Para complementar el análisis, debemos desarrollarlo en el dominio de las frecuencias, es decir, debemos aplicarle la transformada rápida de Fourier, usando la función fft( ). frec2 close X = fft(x); magX = abs(X);  subplot(211) plot(k*T,x) xlabel(‘kT (seg)’) ylabel(‘x(kT)’) title(‘Señal Seno de 20 Hz’) grid on subplot(212) stem(k(1:N/2),magX(1:N/2)) title(‘Magnitud de X(k)’) xlabel(‘k’) ylabel(‘|X(k)|’) gris

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–19

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

Señal Seno de 20 Hz 1

0.5

x(kT)

0

-0.5

-1 0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

kT (seg) 40

30

20

10

0 0

5

10

15

20

25

30

35

Y si las frecuencias no se quieren presentar en función de k, sino de la frecuencia debemos hacer el siguiente archivo-M, llamado frec4.m: frec3 close hertz = k*(1/(N*T));  subplot(211) plot(k*T,x) xlabel(‘kT (seg)’) ylabel(‘x(kT)’) title(‘Señal Seno de 20 Hz’) grid on subplot(212) stem(hertz(1:N/2),magX(1:N/2)) title(‘Magnitud de X(k)’) xlabel(‘Hz’) ylabel(‘|X(k)|’) grid

A–20

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Señal Seno de 20 Hz 1

0.5

x(kT)

0

-0.5

-1 0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

kT (seg) 40

30

20

10

0 0

10

20

30

40

50

60

70

Supongamos que la frecuencia del senoide hubiera sido 19 Hz, en lugar de 20 Hz. Dado el incre '& ´; '  &   " ' ¾k es de 2 Hz, y como ahora la frecuencia es 19 Hz, se debería tener un k = 9.5, para conseguir la frecuencia en cuestión. Sin embargo, los valores de k & ' &W Š‰" & •'   & ¾9.5 y por eso aparecerán frecuencias grandes en 18 Hz y 20 Hz, tal como se comprueba con el siguiente programa llamado frec5.m: clear all close all clc f = 19; w = 2*pi*f; fm = 128; T = 1/fm; N = 64; k = 0:N-1; x = sin(w*k*T); X = fft(x); magX = abs(X); hertz = k*(1/(N*T));  subplot(211) plot(k*T,x) xlabel(‘kT (seg)’) ylabel(‘x(kT)’)

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–21

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

title(‘Señal Seno de 19 Hz’) grid on subplot(212) stem(hertz(1:N/2),magX(1:N/2)) title(‘Magnitud de X(k)’) xlabel(‘Hz’) ylabel(‘|X(k)|’) grid

Señal Seno de 19 Hz 1

0.5

x(kT)

0

-0.5

-1 0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

kT (seg) 25 20 15 10 5 0 0

10

20

30

40

50

60

70

$   "       # &   '   "  +7" W   7'"  %&

& '    H %" %    & 7" ' + ' &

A–22

H1(s ) =

0. 5279 s 2 + 1. 0275s + 0.5279

H 2(s ) =

s2 s 2 + 0. 1117s + 0. 0062

H3(s ) =

1. 05s s 2 + 1. 05s + 0. 447

H 4(s ) =

s 2 + 2. 2359 s 2 + 2. 3511s + 2. 2359

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

=|Õ[j\{^=‘[”_“jx{{\—[k}Jk”}kÌ

Filtro H2(s) 1

0.8

0.8

0.6

0.6

Amplitud

Amplitud

Filtro H1(s) 1

0.4

0.2

0.4

0.2

0

0 0

2

4

6

0

0.1

0.2

w (rad/seg)

0.3

0.4

w (rad/seg)

Filtro H3(s) 1

Amplitud

0.8

0.6

0.4

0.2

0 0

5

10

0

2

4

6

w (rad/seg)

Esto se consigue con frec6.m: close all clear all clc w1 = 0:0.05:5; num1 = [0.5279]; den1 = [1 1.0275 0.5279]; H1s = freqs(num1,den1,w1); w2 = 0:0.001:0.3; num2 = [1 0 0]; den2 = [1 0.1117 0.0062]; H2s = freqs(num2,den2,w2); w3 = 0:0.01:10; num3 = [1.05 0]; den3 = [1 1.05 0.447]; H3s = freqs(num3,den3,w3); w4 = 0:0.005:5; num4 = [1 0 2.2359]; den4 = [1 2.3511 2.2359]; H4s = freqs(num4,den4,w4);

|

Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk` A–23

www.full-ebook.com

$[_\x^=_[Ž^_k`{\‘$[’“x^|_Ž{”\{“j^}>“[”_“}J“j^_[“

 subplot(221) plot(w1,abs(H1s)) title(‘Filtro H1(s)’) xlabel(‘w (rad/seg)’) ylabel(‘Amplitud’) grid subplot(222) plot(w2,abs(H2s)) title(‘Filtro H2(s)’) xlabel(‘w (rad/seg)’) ylabel(‘Amplitud’) grid subplot(223) plot(w3,abs(H3s)) title(‘Filtro H3(s)’) xlabel(‘w (rad/seg)’) ylabel(‘Amplitud’) grid subplot(224) plot(w4,abs(H4s)) title(‘Filtro H4(s)’) xlabel(‘w (rad/seg)’) ylabel(‘Amplitud’) grid

A–24

| Z[\]^_`\jkj^_xk[kj^>\^[{\k`=|}\{kjk`

www.full-ebook.com

= '  >

ÅSTRÖM, Kart & WITTENMARK, Björn (1996) Computer–Controlled Systems, Theory and Design. 3ra Ed. New Jersey: Prentice Hall Information and System Sciences Series. CARNEGIE MELLON & THE UNIVERSITY OF MICHIGAN (2005) Control Tutorials for Matlab. (consulta: 14 de febrero) (http://www.engin.umich.edu/group/ctm). ETTER, Delores (1998) Solución de Problemas de Ingeniería con Matlab, 2da Ed., México D. F.: Prentice Hall Inc. KHALIL, Hassan (1996) Nonlinear Systems. 2da Ed. New Jersey: Pearson, Education, 1996. KUO, Benjamín (1997) Sistemas de Control Automático, 7ma Ed. México D. F.: Prentice Hall Inc. OGATA, Katsuhiko (1998) Ingeniería de Control Moderna, 3ra Ed. México D. F.: Prentice Hall Inc. ———— (1999) Problemas de Ingeniería de Control utilizando Matlab, 1ra Ed. México D. F.: Prentice Hall Inc. ———— (2000) Sistemas de Control en Tiempo Discreto, 2da Ed. México D. F.: Prentice Hall Inc. THE MATHWORKS INC. (2002) Symbolic Math Toolbox: User’s Guide, Mathworks Inc.

www.full-ebook.com

www.full-ebook.com

Recientes publicaciones de Editorial UPC

2014 Sardón Taboada, José Luis (editor) Revista de Economía y Derecho Verano de 2014, vol. 11, nro. 41 Valdivia Pareja, Álvaro Suicidología. Prevención, tratamiento psicológico e investigación de procesos suicidas Egoavil Vera, Juan Raúl Fundamentos de matemática. Introducción al nivel universitario Chu Rubio, Manuel {  ˆ      –‡   ˜ Parodi Revoredo, Daniel ‡  «  

˜–¦    Ž¥  ‡¬  ‡ ­ ® « (2008-2014) Aguirre, Mauricio; Maldonado, Claudia; Peña, Cinthia, y Rider, Carlos (comps). Cómo leer y escribir en la universidad. Prácticas letradas exitosas Aguirre, Mauricio; Maldonado, Claudia; Peña, Cinthia, y Rider, Carlos (comps). Cómo leer y escribir en la universidad. Cuaderno de trabajo

2013 Sardón Taboada, José Luis (editor) Revista de Economía y Derecho Primavera de 2013, vol. 10, nro. 40 Diseño y Gestión en Moda Técnicas de patronaje. Tomo I - Mujer Pérez, María Cecilia (compiladora) Cómo aprovechar el APEC Perú 2008 en la Era de los TLC Sardón Taboada, José Luis (editor) Revista de Economía y Derecho Invierno de 2013, vol. 10, nro. 39

www.full-ebook.com

León Cannock, Alejandro ‡  š    –¦ «   š   Alvarado de Marsano, Liliana | Œ ¦ Œ   ”       š  Riebenbauer, Raúl M. El silencio de Georg: La investigación periodística de un crimen de Estado. Sardón Taboada, José Luis (editor) Revista de Economía y Derecho Otoño de 2013, vol. 10, nro. 38 Lira Briceño, Paúl ¦“  ˜ «   “ ˜®            ˆ    ˜ de valor Herz Ghersi, Jeannette ¯         Rivero Zanatta, Juan Paulo Costos y presupuestos: reto de todos los días Curo, Agustín y Martínez, Mihaly Matemática básica para administradores Sardón Taboada, José Luis (editor) Revista de Economía y Derecho Verano de 2013, vol. 10, nro. 37

Encuentre más publicaciones de Editorial UPC, en versión impresa y digital, ingresando a: www.upc.edu.pe/editorialupc Visite la página de Facebook Editorial UPC: www.facebook.com/editorialupc

www.full-ebook.com

www.full-ebook.com

www.full-ebook.com

www.full-ebook.com

www.full-ebook.com

www.full-ebook.com

www.full-ebook.com

www.full-ebook.com