Está en la página 1de 473

CONTROL AVANZADO

Dise~
no y Apli a iones en Tiempo Real

ARTURO ROJAS-MORENO, Ph.D.

Universidad Na ional de Ingenier


a, Per
u

 Control 
Optimo

 Control Adaptivo

 Control Predi tivo

 Control Robusto

 Control No Lineal

 Programas en MATLAB y C/C++


ii

Control Avanzado
Dise~
no y Apli a iones en Tiempo Real

Copyright
2001 Arturo Rojas-Moreno. Reservados todos los dere hos.

ISBN 9972{9318{0{3

Ni todo el libro ni parte de esta publi a ion puede ser reprodu ida, ar hivada,
transmitida o distribuida en forma alguna o mediante algun medio ele troni o,
me ani o, o de otra ndole, sin que exista previamente y por es rito el permiso de
autoriza ion del autor.
Dedi atoria

A mi Familia
A mi Alma Mater

Indi e General

Dedi atoria iii


Prefa io xi
1 Matemati a Asistida on Computadora 1
1.1 Cal ulo Matri ial . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Opera iones y Tipos de Matri es . . . . . . . . . . . . 1
1.1.2 Determinantes y Matriz Inversa . . . . . . . . . . . . . 5
1.1.3 Derivadas e Integrales on Matri es y Ve tores . . . . 14
1.2 Analisis Ve torial . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.1 Independen ia, Ortonormalidad y Normas . . . . . . . 15
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores . . 18
1.2.3 Diagonaliza ion de Matri es . . . . . . . . . . . . . . . 19
1.2.4 Formas Cuadrati as y Bilineales . . . . . . . . . . . . 20
1.3 La Transformada de Lapla e . . . . . . . . . . . . . . . . . . 26
2 Sistemas Dis retos 29
2.1 Dise~no de Sistemas de Control Digital . . . .. . .. . .. . . 29
2.2 Con epto de Estado y Variables de Estado . .. . .. . .. . . 31
2.2.1 Linealiza ion de Pro esos . . . . . . .. . .. . .. . . 31
2.3 Fundamentos de Sistemas Dis retos . . . . . .. . .. . .. . . 38
2.3.1 Muestreo y Re onstru ion . . . . . .. . .. . .. . . 38
2.3.2 La Transformada Z . . . . . . . . . . .. . .. . .. . . 45
2.3.3 La Transformada Z Inversa . . . . . .. . .. . .. . . 49
2.3.4 Fun ion de Transferen ia de Pulso . .. . .. . .. . . 51
2.3.5 El Espa io de Estado Dis reto . . . .. . .. . .. . . 53
2.3.6 Controlabilidad y Observabilidad . . .. . .. . .. . . 64
vi INDICE GENERAL

3 Modelado de Pro esos 69


3.1 Modelo del Pro eso Pendulo Invertido . . . . . . . . . . . . . 69
3.1.1 Modelo del Subsistema Carro-Pendulo . . . . . . . . . 70
3.1.2 Modelo del Subsistema Motor-Polea . . . . . . . . . . 72
3.1.3 Representa ion en el Espa io de Estado . . . . . . . . 74
3.1.4 Obten ion del Modelo Lineal . . . . . . . . . . . . . . 75
3.1.5 El Modelo en el Espa io de Estado Dis reto . . . . . . 76
3.2 Modelo del Pro eso Grua-Puente . . . . . . . . . . . . . . . . 77
3.2.1 Modelo del Subsistema Carro-Varilla . . . . . . . . . . 77
3.2.2 Modelo del Subsistema Motor-Polea . . . . . . . . . . 79
3.2.3 Representa ion en el Espa io de Estado . . . . . . . . 79
3.2.4 Obten ion del Modelo Lineal . . . . . . . . . . . . . . 80
3.2.5 El Modelo en el Espa io de Estado Dis reto . . . . . . 80
3.2.6 Resumen de Variables y Parametros . . . . . . . . . . 81
3.2.7 Identi a ion de la Zona Muerta del Servomotor . . . 81
3.3 Modelo del Servomotor D.C. No Lineal . . . . . . . . . . . . . 84
3.3.1 El Subsistema Me ani o . . . . . . . . . . . . . . . . . 84
3.3.2 El Subsistema Ele tri o . . . . . . . . . . . . . . . . . 86
3.3.3 Conversion de Energa Ele tri a en Me ani a . . . . . 87
3.3.4 Modelo y Compensa ion de no Linealidades . . . . . . 89
3.3.5 Linealiza ion y Dis retiza ion del Pro eso . . . . . . . 90
3.4 Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 91
3.5 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 116

4 Control Optimo 123
4.1 Introdu ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.2 Control O ptimo Cuadrati o No Esta ionario . . . . . . . . . . 125
4.3 Control O ptimo Cuadrati o Esta ionario . . . . . . . . . . . . 127
4.4 El Regulador O ptimo Propor ional . . . . . . . . . . . . . . . 128
4.5 Sele ion de las Matri es de Pondera ion . . . . . . . . . . . . 130
4.6 Dise~no del Observador O ptimo Cuadrati o . . . . . . . . . . . 136
4.7 El Regulador O ptimo Propor ional Integral . . . . . . . . . . 139
4.8 Pro edimiento de Dise~no e Implementa ion . . . . . . . . . . 145
4.9 Control O ptimo Cuadrati o del Pendulo Invertido . . . . . . 145
4.9.1 Formula ion del Problema . . . . . . . . . . . . . . . . 145
4.9.2 El Modelo del Pro eso a Controlar . . . . . . . . . . . 146
4.9.3 Cal ulo de la Matriz de Ganan ia del Controlador . . 147
4.9.4 Cal ulo la Matriz de Ganan ia del Observador . . . . 149
INDICE GENERAL vii

4.9.5 Simula ion del Sistema de Control O ptimo . . . . . . 150


4.9.6 El Hardware del Sistema de Control . . . . . . . . . . 153
4.9.7 Implementa ion del Software de Control . . . . . . . . 160
4.9.8 Resultados Experimentales . . . . . . . . . . . . . . . 177
4.10 Control O ptimo Cuadrati o de la Grua-Puente . . . . . . . . 179
4.10.1 Formula ion del Problema . . . . . . . . . . . . . . . . 179
4.10.2 Simula ion del Sistema Controlado . . . . . . . . . . . 180
4.10.3 El Hardware y el Software del Sistema de Control . . 185
4.10.4 Resultados experimentales . . . . . . . . . . . . . . . . 185
4.11 Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 187
4.12 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 202
5 Control Adaptivo 205
5.1 Introdu ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.2 Modelando Pro esos No Lineales . . . . . . . . . . . . . . . . 207
5.3 Pro edimientos de Estima ion . . . . . . . . . . . . . . . . . . 208
5.3.1 El Metodo de los Mnimos Cuadrados Re ursivo . . . 208
5.3.2 Mnimos Cuadrados Re ursivo Mejorado . . . . . . . . 211
5.3.3 Estima ion de Estados . . . . . . . . . . . . . . . . . . 219
5.4 La Ley de Control . . . . . . . . . . . . . . . . . . . . . . . . 219
5.5 Pro edimiento de Dise~no . . . . . . . . . . . . . . . . . . . . . 221
5.6 Control Adaptivo de un Servomotor No Lineal . . . . . . . . 222
5.6.1 Formula ion del Problema . . . . . . . . . . . . . . . . 222
5.6.2 El Modelo del Pro eso . . . . . . . . . . . . . . . . . . 222
5.6.3 Estima ion de Parametros . . . . . . . . . . . . . . . . 223
5.6.4 Estima ion de Estados . . . . . . . . . . . . . . . . . . 224
5.6.5 La Ley de Control . . . . . . . . . . . . . . . . . . . . 224
5.6.6 La Ley de Control Residual . . . . . . . . . . . . . . . 225
5.6.7 Simula ion del Sistema de Control Adaptivo . . . . . . 225
5.6.8 Implementa ion del Hardware . . . . . . . . . . . . . . 229
5.6.9 Implementa ion del Software de Control . . . . . . . . 235
5.6.10 Resultados Experimentales . . . . . . . . . . . . . . . 252
5.7 Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 253
5.8 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 279
6 Control Predi tivo 283
6.1 Control Predi tivo Basado en Modelos . . . . . . . . . . . . . 283
6.2 Prin ipios del Control Predi tivo Basado en Modelos . . . . . 284
6.3 El Modelo del Pro eso . . . . . . . . . . . . . . . . . . . . . . 287
viii INDICE GENERAL

6.4 El Modelo del Predi tor . . . . . . . . . . . . . . . . . .. . . 290


6.4.1 Predi ion de y(t + k=t) . . . . . . . . . . . . . .. . . 290
6.4.2 Predi ion de n(t + k=t) . . . . . . . . . . . . . .. . . 292
6.5 El Controlador Predi tivo . . . . . . . . . . . . . . . . .. . . 296
6.5.1 Objetivo del Controlador . . . . . . . . . . . . .. . . 296
6.5.2 Respuesta Libre y Respuesta Forzada . . . . . .. . . 297
6.5.3 La Ley de Control . . . . . . . . . . . . . . . . .. . . 301
6.6 Pro edimiento de Dise~no . . . . . . . . . . . . . . . . . .. . . 303
6.7 Control de Posi ion de un Servomotor . . . . . . . . . .. . . 304
6.7.1 Formula ion del Problema . . . . . . . . . . . . .. . . 304
6.7.2 Respuesta Libre del Pro eso . . . . . . . . . . . .. . . 305
6.7.3 Respuesta del Pro eso al Es alon . . . . . . . . .. . . 306
6.7.4 La Ley de Control . . . . . . . . . . . . . . . . .. . . 306
6.7.5 Simula ion del Sistema de Control Predi tivo . .. . . 306
6.7.6 Implementa ion del Hardware . . . . . . . . . . .. . . 311
6.7.7 El Software de Control . . . . . . . . . . . . . . .. . . 312
6.7.8 Resultados Experimentales . . . . . . . . . . . .. . . 321
6.8 Problemas Resueltos . . . . . . . . . . . . . . . . . . . .. . . 324
6.9 Problemas Propuestos . . . . . . . . . . . . . . . . . . .. . . 342
7 Control Robusto 347
7.1 Estru tura del Control on Modelo Interno . . . . . . .. . . 347
7.2 Formula ion del Problema CMI . . . . . . . . . . . . . .. . . 353
7.2.1 El Modelo del Pro eso . . . . . . . . . . . . . . .. . . 353
7.2.2 Des rip ion de In ertidumbres del Modelo . . . .. . . 353
7.3 Control Robusto para Pro esos Estables . . . . . . . . .. . . 356
7.3.1 Rendimiento Nominal . . . . . . . . . . . . . . .. . . 357
7.3.2 El Filtro Dis reto CMI . . . . . . . . . . . . . . .. . . 361
7.3.3 Estabilidad Robusta . . . . . . . . . . . . . . . .. . . 362
7.3.4 Rendimiento Robusto . . . . . . . . . . . . . . .. . . 363
7.4 Control Robusto para Pro esos Inestables . . . . . . . .. . . 368
7.4.1 Rendimiento Nominal . . . . . . . . . . . . . . .. . . 370
7.4.2 El Filtro Dis reto CMI . . . . . . . . . . . . . . .. . . 372
7.4.3 Estabilidad y Rendimiento Robustos . . . . . . .. . . 372
7.5 Pro edimiento de Dise~no . . . . . . . . . . . . . . . . . .. . . 373
7.6 Control Robusto de un Servomotor No Lineal . . . . . .. . . 374
7.6.1 Formula ion del Problema . . . . . . . . . . . . .. . . 374
7.6.2 Dise~no del Sistema de Control Robusto . . . . .. . . 374
INDICE GENERAL ix

7.6.3 Simula ion del Sistema de Control Robusto . . .. . . 374


7.6.4 Implementa ion del Hardware . . . . . . . . . . .. . . 375
7.6.5 Implementa ion del Software . . . . . . . . . . .. . . 376
7.6.6 Resultados Experimentales . . . . . . . . . . . .. . . 380
7.7 Problemas Resueltos . . . . . . . . . . . . . . . . . . . .. . . 380
7.8 Problemas Propuestos . . . . . . . . . . . . . . . . . . .. . . 399
8 Control No Lineal 405
8.1 Herramientas Matemati as . . . . . . . . . . . . . . . .. . . 406
8.1.1 Derivadas y Cor hetes de Lie . . . . . . . . . . .. . . 406
8.1.2 Difeomor smo y Transforma ion de Estados . . .. . . 408
8.1.3 Transforma ion no Lineal de Estados . . . . . . .. . . 409
8.1.4 El Teorema de Frobenius . . . . . . . . . . . . .. . . 410
8.2 Grado Relativo . . . . . . . . . . . . . . . . . . . . . . .. . . 412
8.3 Forma Normal de Pro esos No lineales . . . . . . . . . .. . . 413
8.4 Linealiza ion Exa ta y la Ley de Control . . . . . . . . .. . . 414
8.5 Observadores No Lineales . . . . . . . . . . . . . . . . .. . . 418
8.6 Pro edimiento de Dise~no . . . . . . . . . . . . . . . . . .. . . 421
8.7 Control No Lineal de un Servosistema . . . . . . . . . .. . . 422
8.7.1 Formula ion del Problema . . . . . . . . . . . . .. . . 422
8.7.2 Modelo del Pro eso . . . . . . . . . . . . . . . . .. . . 422
8.7.3 Determina ion del Grado Relativo . . . . . . . .. . . 424
8.7.4 Comprobar Linealiza ion Exa ta . . . . . . . . .. . . 424
8.7.5 La Forma Normal . . . . . . . . . . . . . . . . .. . . 425
8.7.6 La ley de Control No Lineal . . . . . . . . . . . .. . . 427
8.7.7 Dise~no del Observador No Lineal de Estados . .. . . 430
8.7.8 Simula ion del Sistema de Control No Lineal . .. . . 431
8.7.9 Implementa ion del Hardware . . . . . . . . . . .. . . 439
8.7.10 Implementa ion del Software . . . . . . . . . . .. . . 440
8.7.11 Resultados Experimentales . . . . . . . . . . . .. . . 444
8.8 Problemas Resueltos . . . . . . . . . . . . . . . . . . . .. . . 445
8.9 Problemas Propuestos . . . . . . . . . . . . . . . . . . .. . . 452
Bibliografa 453
Indi e de Materias 456
Prefa io

Fundamentos
A nadie es apa el he ho de que estamos presen iando un dramati o y per-
manente desarrollo de dispositivos y equipos basados en te ni a digital, tales
omo mi ro ontroladores, tarjetas de desarrollo para pro esamiento digital
de se~nales, sistemas en apsulados, omputadoras industriales, sistemas de
adquisi ion de datos, entre otros. Tales dispositivos y equipos, que ada vez
son mas peque~nos y de menor osto, pero paradoji amente mas potentes,
han provo ado que a tualmente la gran mayora de los sistemas de ontrol
se dise~nen basados en te ni as digitales.
Con respe to a las te ni as empleadas en el dise~no de los sistemas de on-
trol, podemos observar en la industria que ada vez son mas las apli a iones
basadas en te ni as no tradi ionales, las uales denominaremos te ni as de
ontrol avanzado. En este ontexto, las te ni as de ontrol avanzado que
han logrado mayor a epta ion son las siguientes: ontrol predi tivo, ontrol
no lineal, ontrol robusto, ontrol adaptivo, ontrol optimo, entre otras. La
literatura te ni a y las publi a iones para ada una de ellas, es de he ho
abundante pero lamentablemente espar ida, de modo que el tratamiento
aislado de ada te ni a puede onsumir gran antidad de tiempo y esfuerzo.
Esta publi a ion integra en un solo volumen, los fundamentos y los pro-
edimientos en aminados al dise~no de sistemas de ontrol avanzado y su
orrespondiente implementa ion en tiempo real. El material desarrollado
basa sus fundamentos en la representa ion de los sistemas de ontrol en el
espa io de estado dis reto. Sin embargo, no se deja de men ionar y de tratar
el punto de vista tradi ional, uando sea ne esario.
He sido muy uidadoso en ubrir on amplitud y on la laridad del aso,
empleando mu has ve es ejemplos expli ativos, aquellos on eptos funda-
mentales requeridos para un mejor entendimiento del material presentado.
Las apli a iones en tiempo real desarrolladas para validar los metodos de
xii Prefa io

dise~no presentados en los aptulos del uatro al o ho, onstituyeron proye -


tos de investiga ion realizados en la Se ion de Postgrado de la Fa ultad de
Ingeniera Ele tri a y Ele troni a de la Universidad Na ional de Ingeniera
(http:// ee.uni.edu.pe), asa de estudios de la ual soy do ente.
Herramientas Computa ionales
La gran mayora de los ejer i ios y problemas formulados en este libro se de-
sarrollan on el auxilio de la omputadora personal. Espe  amente, para
el desarrollo de los ejemplos y problemas, y para la simula ion de las apli a-
iones, se emplea el software \MATLAB" (version 4.2) on sus herramientas
\Control Systems", \Signal Pro essing" y \SIMULINK". El software para
las apli a iones en tiempo real esta es rito en C/C++ de \Borland", version
4.52. Evidentemente, los programas elaborados tambien pueden eje utarse
en versiones de software mas a tualizadas. Los programas fuente se pueden
des argar de mi pagina web: http:/ ee.uni.edu.pe/728681F. Antes de
emplear tales programas, leer el ar hivo README.TXT.
Sistema de Unidades y A entua ion en Programas Fuente
Esta publi a ion emplea el Sistema Interna ional (SI) de unidades. Para se-
parar la parte entera de la parte de imal de los numeros de imales, seguire-
mos usando el punto (.) en lugar de la oma (,), debido a que los paquetes
de software MATLAB y Borland C/C++ solo permiten emplear el pun-
to (.) para expresar numeros de imales. Como tales paquetes de software
no emplean el a ento ortogra o, en los listados de los programas fuente
pres indiremos de tal a entua ion.
Sobre el Contenido de los Captulos
Captulo 1: Matemati a Asistida on Computadora. Des ribe
en forma su inta algunos topi os de matemati as apli adas (basi amente
analisis matri ial y ve torial) ne esarios para el desarrollo de los aptulos
posteriores. La mayora de los ejemplos se desarrollan on el auxilio del
software MATLAB. De all la razon del nombre del aptulo.
Captulo 2: Sistemas Dis retos. Presenta los on eptos fundamen-
tales a er a de los sistemas de ontrol realimentados operando en el tiempo
dis reto, y la representa ion de los mismos en el espa io de estado.
Captulo 3: Modela ion de Pro esos. En este aptulo se desarrolla
la modela ion de los tres pro esos, uyos sistemas de ontrol avanzado van a
xiii

ser implementados en tiempo real. Tales pro esos son: el pendulo invertido,
la grua-puente y el servomotor D.C. (\Dire t Current") sujeto a argas no
lineales. En su se ion problemas, el aptulo presenta la modela ion de
diversos pro esos tpi os.

Captulo 4: Control Optimo. Desarrolla los fundamentos del ontrol
optimo uadrati o dis reto y dos apli a iones en tiempo real: ontrol optimo
de posi ion del pendulo invertido y ontrol optimo de posi ion de la grua-
puente. En su se ion problemas, el aptulo desarrolla dise~nos de sistemas
de ontrol optimo uadrati o para varios pro esos tpi os.
Captulo 5: Control Adaptivo. Dis ute brevemente a er a de los
prin ipales sistemas de ontrol adaptivo, para luego presentar en detalle
el pro edimiento de dise~no de un sistema de ontrol adaptivo on autosin-
toniza ion. El pro edimiento desarrollado se apli a para implementar en
tiempo real el ontrol adaptivo on autosintoniza ion de la posi ion de un
servomotor D.C. operando on arga no lineal y variable. En su se ion
problemas, el aptulo presenta dise~nos de sistemas de ontrol adaptivo on
autosintoniza ion para varios pro esos tpi os.
Captulo 6: Control Predi tivo. Presenta los fundamentos del on-
trol predi tivo basado en modelos y desarrolla una apli a ion en tiempo real:
ontrol predi tivo de la posi ion de un servomotor D.C. sujeto a argas no
lineales empleando el algoritmo de la matriz dinami a de ontrol. En su
se ion problemas, el aptulo desarrolla dise~nos de sistemas de ontrol pre-
di tivo para diversos pro esos tpi os, naturalmente, empleando el algoritmo
de la matriz dinami a de ontrol.
Captulo 7: Control Robusto. Trata los fundamentos del ontrol
robusto basado en la te ni a de ontrol on modelo interno. A ontinua ion,
di ha te ni a se apli a para el ontrol robusto en tiempo real de la posi ion de
un servomotor D.C. modelado on in ertidumbres. Tambien, en su se ion
problemas, el aptulo desarrolla dise~nos de sistemas de ontrol robusto para
diversos pro esos tpi os, empleando el algoritmo de ontrol on modelo
interno.
Captulo 8: Control No Lineal. Desarrolla los fundamentos rela-
ionados on el ontrol no lineal de pro esos empleando la te ni a deno-
minada linealiza ion por realimenta ion. Para validar los fundamentos de
di ha te ni a, se desarrolla el dise~no e implementa ion del sistema de on-
trol por linealiza ion de la realimenta ion de la posi ion de un servomotor
D.C. no lineal. En su se ion problemas, el aptulo desarrolla dise~nos de
sistemas de ontrol no lineal para diversos pro esos tpi os.
xiv Prefa io

Pre-requisitos y Con gura ion de Cursos


Por su ontenido y su presenta ion, este volumen puede ser usado omo libro-
texto en las espe ialidades de Ingeniera Ele tri a, Ele troni a, Me ani a
y/o Me atroni a, para el di tado de un urso semestral, tanto de antegrado
(a llevarse en los ultimos semestres) omo de postgrado. Para un urso
de antegrado se sugiere desarrollar los aptulos 1, 2, 3, 4 y 6, y tratar
su intamente los aptulos 5, 7 y 8. Para un urso de postgrado se sugiere
ubrir los aptulos 3 al 8, quedando los aptulos 1 y 2 omo medio de
onsulta.
Por su ara ter apli ativo, por el tratamiento laro y fa ilmente om-
prensible del material presentado y gra ias a la gran antidad de ejemplos,
problemas y apli a iones desarrollados, este libro puede ser empleado tam-
bien por la gran audien ia de ingenieros y te ni os espe ializados que ejer en
en la industria y por los investigadores de otras areas (fsi os, matemati os,
entre otros) que deseen familiarizarse on las te ni as digitales para dise~nar
e implementar en tiempo real sistemas de ontrol avanzado.
Agrade imientos
La publi a ion de este libro fue nan iada en parte por el Instituto General
de Investiga ion de la UNI. Mi agrade imiento a su Dire tor, Dr. Guillermo
Lira. Mi gratitud espe ial a mis alumnos que olaboraron on esta publi-
a ion: Leonardo Gushiken ( aptulos 3 y 4), Omar Tupaya hi ( aptulos 3
y 8) y Raul Benitez ( aptulos 6 y 7). Luis Le ina (alumno de la Universidad
Polite ni a de Catalu~na) olaboro on el aptulo 5. La revision de todo lo
es rito estuvo a argo de mi alumna Claudia Cordova, mientras que Rommel
Romero (mi futuro alumno) se en argo de todo lo relativo a la impresion del
libro.
Arturo Rojas Moreno, Ph.D.
arojasmviab p. om
arojasuni.edu.pe
http:// ee.uni.edu.pe/728681F
Cap
tulo 1

Matem
ati a Asistida on
Computadora

Este aptulo es una breve exposi ion de los fundamentos matemati os rela iona-
dos on el analisis matri ial, el analisis ve torial y la transformada de Lapla e. El
material sele ionado esta estre hamente rela ionado on el material a desarro-
llarse en los aptulos siguientes. Para mayores detalles del material ubierto se
re omienda onsultar las referen ias [18℄, [19℄, [20℄, [21℄, [22℄, [14℄ y el apendi e
A de [3℄. Los al ulos, en su gran mayora, se realizan on el auxilio del paquete
MATLAB. Todos los ar hivos orrespondientes a los ejer i ios desarrolados se
pueden des argar del sitio: http:// ee.uni.edu.pe/728681F.

1.1 Cal ulo Matri ial


1.1.1 Opera iones y Tipos de Matri es
Nomen latura
La nomen latura que se expli a a ontinua ion no esta libre de ex ep iones
a la regla. Tales ex ep iones seran a laradas onforme aparez an.
Una matriz A de orden (o dimension) n  m, la ual sera denotada
siempre on letra mayus ula, es un arreglo re tangular on sus elementos
aij dispuestos en n las y m olumnas. Es de ir:
2 3
a11 : : : a1m
A = [aij ℄ = 6
4
... ... 7
5 ; i = 1; : : : ; n; j = 1; : : : ; m
an1 : : : anm
2 Matemati a Asistida on Computadora

Los elementos de una matriz pueden ser numeros (reales o omplejos),


fun iones, otras matri es, et . Cuando n = 1, A se onvierte en un ve tor
la. Cuando m = 1, A toma la forma de un ve tor olumna. Sin embargo,
los ve tores seran denotados en negrita. Por ejemplo, el ve tor olumna x(t)
de orden n se representa omo:
2 3
x1 (t)
x(t) = 64
... 75
xn (t)
El ve tor la orrespondiente es:
   
xT (t) = x1 (t)    xn (t) ; x(t) = x1 (t)    xn (t) T
donde el superndi e T indi a transpuesta.
El ambio de dominio (o de argumento) de una matriz o ve tor debido a
una transforma ion solo afe ta al dominio. Por ejemplo, las transformadas
de Lapla e de A(t), x(t) e Y(t) (subse ion 1.3) se representan omo A(s),
x(s) e Y(s) respe tivamente.
La rela ion entre la salida y(:) y la entrada u(:) de un sistema, depen-
diendo del argumento, se designa omo:
y(t) = g(t)  u(t); y(s) = G(s)u(s)
y(k) = g(k)  u(k); y(z ) = G(z )u(z )
donde el asteris o denota la opera ion onvolu ion, t y k son los tiempos
ontinuo y dis reto, s y z son las variables lapla iana y zeta, G(s) y G(z)
son fun iones de transferen ia y, g(t) y g(k) son las respuestas del sistema a
un impulso unitario. Mas adelante veremos que el asteris o tambien denota
la opera ion onjugada en expresiones omplejas.
Estados de equilibrio de matri es y ve tores variantes on el tiempo
ontinuo t o dis reto k se denotan on una barra sobre la letra empleada.
Por ejemplo, los estados de equilibrio de A(k) e Y(k) son A(k) e Y (k)
respe tivamente. En muy ontados asos, la barra sobre una variable tiene
el signi ado de se~nal re onstruida por un dispositivo de reten ion.
En el aso de ve tores variantes on el tiempo ( ontinuo o dis reto),
y uando sea ne esario, emplearemos variables redu idas (es ritas on le-
tra minus ula), las uales tambien se denominan variables de desvia ion o
perturba ionales. Por ejemplo, la variable redu ida de Y(k) es:
y(k) = Y(k) Y  (k)
1.1 Cal ulo Matri ial 3

Las formas estimadas de A(:), x(:) e Y(:) (para ualquier argumento) se


representan omo A^(:), x^ (:) e Y^ (:), respe tivamente.
Opera iones on Matri es
Una matriz A on todos sus elementos aij iguales a ero se denomina matriz
ero o nula y se denota omo A = 0. Dos matri es A = [aij ℄ y B = [bij ℄ son
iguales si son del mismo orden y ademas [aij ℄ = [bij ℄.
La suma de dos matri es, denotada omo C = A  B , solo es posible si
A y B son del mismo orden:
C = [ ij ℄ = A  B = [aij  bij ℄
La multipli a ion de dos matri es, denotada omo C = AB , solo es
posible si el numero de olumnas de A es igual al numero de las de B . Si
A es de orden n  m y B es de orden m  r, enton es C debe ser de orden
n  r. Los elementos de C se determinan omo sigue:
m
X
ij = aik bkj ; i = 1; 2; : : : ; n; j = 1; 2; : : : ; m
k=1
Por ejemplo:
2 3

a11 a12 a13
 b11 
11
 
a11 b11 + a12 b21 + a13 b31


a21 a22 a23


4 b21 5 = 21 = a21 b11 + a22 b21 + a23 b31
b31
Si  es un es alar, enton es A resulta una matriz en donde ada elemento
queda multipli ado por . Es de ir:
A = [aij ℄ = [aij ℄
La multipli a ion es aso iativa:
ABCD = (AB )(CD) = A(BCD) = (ABC )D
y distributiva:
(A + B )(C + D) = AC + AD + BC + BD
Cuando AB = BA, se di e que A y B son matri es que onmutan. Sin
embargo, en general, la multipli a ion no es onmutativa:
AB 6= BA
4 Matemati a Asistida on Computadora

Si AB = 0, impli a que A = 0 o B = 0, o que A y B sean singulares


(e ua ion (1.1)). Si AB = AC , no ne esariamente impli a que B = C .
La matriz transpuesta, denotada omo AT , es la matriz A on sus las y
olumnas inter ambiadas. Por onsiguiente:
(AT )T = A; (A + B )T = AT + B T ; (AB )T = B T AT
Un numero omplejo se designa omo s =  + j!, donde j = p 1 es la
unidad de los numeros imaginarios y tanto  omo ! son numeros reales.
La opera ion onjugada, denotada omo A , toma la onjugada a todos los
elementos omplejos de A. Para la opera ion onjugada se umple:
(A ) = A; (A + B ) = A + B ; (AB ) = A B 
La opera ion hermitiana, denotada omo AH , toma la onjugada y luego
la transpuesta (o toma la transpuesta y luego la onjugada) de la matriz A.
Es de ir:
AH = (A )T = (AT )
Por onsiguiente:
(AH )H = A; (A + B )H = AH + B H ; (AB )H = B H AH
Tipos de Matri es
Si el orden de una matriz A es nn, enton es la matriz se denomina uadrada
de orden n. Esta matriz posee una diagonal prin ipal, o simplemente una
diagonal on elementos aii. La traza de una matriz uadrada se de ne omo:
traza(A) = a11 +    + ann
Una matriz uadrada se denomina matriz diagonal uando los elementos que
no pertene en a su diagonal son todos eros:
2 3
d11 0 0 : : : 0
6 0 d22 0 : : : 0 77
D = [dii ℄ = 6
6 . . . ... 75
4 .. .. ..
0 0 0 : : : dnn
Una matriz uadrada se denomina triangular superior si los elementos debajo
de su diagonal son todos eros. Si los elementos en ima de de su diagonal
son todos eros, enton es la matriz es triangular inferior.
1.1 Cal ulo Matri ial 5

La matriz identidad I , denotada tambien omo In (n es el orden de la


matriz), es una matriz diagonal que solo posee unos. Si A es uadrada,
AI = IA, y en general se umple que:
A es simetri a si: AT = A
A es antisimetri a si: AT = A
A es ortogonal si: AAT = AT A = I
A es periodi a si: A+1 = A;  es un entero positivo
A es nilpotente si: A = 0;  es un entero positivo
A es hermitiana si: (AT ) = (A )T = AH = A
A es antihermitiana si: AH = A
A es unitaria si: AAH = AH A = I
A es normal si: AAH = AH A
A 1 es inversa de A si: AA 1 = A 1 A = I
A es singular si: det(A) = 0 (1.1)
donde det(A) denota el determinante de A, punto que se trata en la siguiente
subse ion.
Una matriz uadrada A on elementos omplejos puede ser es rita o-
mo la suma de una matriz hermitiana B = 12 (A + AH ) mas una matriz
antihermitiana C = 12 (A AH ). Es de ir:
1 1
A = B + C = (A + AH ) + (A AH )
2 2
1.1.2 Determinantes y Matriz Inversa
Determinantes
El determinante de la matriz A = [aij ℄ de orden 2 es:
 
det a11 a12
= a11 a22 a12a21 (1.2)
a21 a22
Para obtener el determinante de una matriz de orden n > 2 podemos
emplear el metodo de la expansion. Si tomamos omo base la primera la,
el determinante de una matriz A se obtiene de:
n
X
det(A) = ( 1)1+j a1j det(A1j ) = ( 1)1+1 a11 det(A11 ) + ( 1)1+2 a12 det(A12 ) +   
j =1
6 Matemati a Asistida on Computadora

donde A1j , j = 1; : : : ; n es la matriz que resulta luego de eliminar la la 1


y la olumna j de A. Por ejemplo, el determinante de una matriz de orden
n = 3 se al ula omo:
02 31
a11 a12 a13 
a a

det  4 a21 a22 a23 5 A 1+1 22
= ( 1) a11 det a32 a33 + 23
a31 a32 a33
   
1+2 a21 a 23 1+3
( 1) a12det a31 a33 + ( 1) a13 det a31 a32 a21 a22 (1.3)
Con rela ion a dos matri es uadradas A y B de orden n:
1. Si ada elemento de una la o olumna de A es ero, det(A) = 0.
2. det(A) = det(AT ).
3. Si  multipli a una la o olumna de A, enton es el det(A) queda
multipli ado por .
4. Si B se obtiene inter ambiando dos las o olumnas de A, enton es
det(B ) = det(A).
5. Si dos las o olumnas de A son iguales, enton es det(A) = 0.
6. Si sumamos un multiplo de una la o olumna de A a ualquiera de
sus las o olumnas, el valor del det(A) no ambia.
7. det(AB ) = det(BA) = det(A)det(B )
8. Si los eigenvalores de A son 1 ; 2 ; : : : ; n , det(A) = 12 : : : n.
La determina ion de eigenvalores se trata en la subse ion 1.2.2.
Matriz Inversa
Si A y B son dos matri es no singulares; es de ir, si det(A) 6= 0 y det(B ) 6= 0,
enton es:
(AB ) 1 = B 1A 1; (AT ) 1 = (A 1 )T
((A )T ) 1 = ((A 1 ))T ; det(A 1 ) = det1(A)
Si A es una matriz no singular de orden 2, vale re ordar que:
   
A= a b ; A = 1 1 d b (1.4)
d ad b a
1.1 Cal ulo Matri ial 7

Si A es una matriz no singular de orden 3:


2 3
a b
A=4 d e f 5
g h i

2       3
e f b b
det det det
6
6  h i   h i   e f  7
7
1 6 d f a a 7
A 1= 6 det det det 7
det(A) 6  g i   g i   d f  7
6 7
4 d e a b a b 5
det det det
g h g h d e

det(A) = aei + gbf + dh ge ahf idb (1.5)


Lema de Inversion de Matri es. Si A, B , C y D son matri es no
singulares de orden n  n, n  m, m  n y n  n respe tivamente, enton es:
(A + BDC ) 1 = A 1 A 1 B (D 1 + CA 1B ) 1CA 1 (1.6)
Este lema se demuestra pre-multipli ando ada miembro de la e ua ion (1.6)
por (A + BDC ). Luego, efe tuar las opera iones matri iales resultantes:
(A + BDC )(A + BDC ) 1 = I
(A + BDC )[A 1 A 1 B (D 1 + CA 1 B ) 1 CA 1 ℄ =
I + BDCA 1 B (D 1 + CA 1 B ) 1 CA 1 BDCA 1 B (D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1 (BDD 1 + BDCA 1 B )(D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1 BD(D 1 + CA 1 B )(D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1 BDCA 1 = I
Valor Absoluto. Si g = gr + jgi es un numero o una fun ion real o
ompleja, su valor absoluto, ono ido tambien omo modulo o magnitud y
denotado omo jgj, es un numero real positivo o ero. El angulo de g en rad
se denota omo \g. Si <e[:℄ e =m[:℄ son los operadores real e imaginario
respe tivamente, enton es se umple que:
<e[g℄ = gr ; =m[g℄ = gi ; g = <e[g℄ + j =m[g℄ = jgj\g
 
p
= m[g℄
jgj = (<e[g℄) + (=m[g℄) ; \g = ar tan <e[g℄
2 2
8 Matemati a Asistida on Computadora

Si G es una matriz ompleja on elementos gij , enton es las opera iones


anteriores se eje utan elemento por elemento; es de ir:
<e[G℄ = <e[gij ℄; =m[G℄ = =m[gij ℄
G = jGj\G = jgij j\gij ; jGj = jgij j; \G = \gij
La tabla 1.1 muestra los omandos para eje utar opera iones matri iales
empleando MATLAB.

Ejemplo 1.1
Dada la matriz uadrada A, al ular B .
2
1 j 2 j 3 j 3
A = 4 4j 2 3 + 5j 5
6 j 7 j 8 + 3j
B=
(A + AT 0:7jA3 )A 1 AH jAj\A <e[A℄=m[A℄
(2j + 1) traza(A)det(A)
Solu ion: El programa en MATLAB para al ular B es el siguiente:
% ejem1_1.m EJEMPLO SOBRE CALCULO MATRICIAL COMPLEJO
lear all
A = [1-j 2-j 3- j
4j -2 3+5j
6-j 7-j 8+3j℄;
B = ( onj(A)+ onj(A')-0.7j*A^3)*inv(A)*A'*abs(A)* ...

angle(A)*real(A)*imag(A)/((2*j+1)*tra e(A)*det(A));

% B = 1.0e+002 *
% 0.2488 - 0.0957i 0.8007 - 0.3510i -2.1614 + 0.9495i
% 0.2952 + 0.3551i 0.9809 + 1.0977i -2.6468 - 2.9592i
% 0.8222 + 0.1991i 2.7135 + 0.5050i -7.3267 - 1.3550i

Ejemplo 1.2
Determinar la matriz hermitiana B y la antihermitiana C de la matriz A
del ejemplo anterior.
1.1 Cal ulo Matri ial 9

Tabla 1.1: Comandos para omputo matri ial


Opera ion Codigo MATLAB
Suma A+B A + B
Resta A B A - B
Multipli a ion AB A*B
Multipli a ion A; : omplejo kappa*A
Conjugada A onj(A)
Transpuesta (A real) A T A'
Transpuesta (A ompleja) AT onj(A'); A.'
Hermitiana AH A'
Poten ia A n A^n
Determinante det(A) det(A)
Inversa A 1 inv(A)
Division izquierda A*X = B; X = A\B
Division dere ha X*A = B; X = B/A
Valor absoluto jAj abs(A)
A ngulo \A angle(A)
Parte real <[A℄ real(A)
Parte maginaria =P[An ℄ imag(A)
Traza i=1 aii tra e(A)
Matriz identidad In eye(n)
10 Matemati a Asistida on Computadora

Solu ion: Las matri es pedidas son:


1
B = (A + AH );
1
C = (A AH )
2 2
y se puede omprobar que B = B y C = C H . Ver programa ejem1 2.m.
H
% ejem1_2.m MATRICES HERMITIANAS
lear all
A = [1-j 2-j 3-j
4j -2 3+5j
6-j 7-j 8+3j℄;
B = (A + A')/2; C = (A - A')/2;

ZB = B - B'; % ZB RESULTA LA MATRIZ CERO


ZC = C + C'; % ZC RESULTA LA MATRIZ CERO
Ejemplo 1.3
Multipli a ion on Parti ion de Matri es.- Dos matri es Anm y Bmp
(los subndi es indi an las dimensiones) pueden ser parti ionadas omo sigue:
2 3 2 3
An1 m1    An1 mm Bm1 p1    Bm1 pp
A=6
4
... ... 7
5 ; B=6
4
... ... 7
5
Ann m1    Ann mm Bmm p1    Bmm pp
La ondi ion ne esaria para realizar el produ to Cnp = Anm Bmp empleando
parti iones, es que las olumnas de A y las las de B sean parti ionadas
en la misma forma. Por tanto, n = n1 +    + nn, m = m1 +    + mm y
p = p1 +    + pp . Determinar si el produ to siguiente es valido y si lo es,
obtener C = AB . 2 32 3
A22 A23 A21 B22 B23
AB = 4 A32 A33 A31 5 4 B32 B33 5
A42 A43 A41 B12 B13
Solu ion: Podemos notar que para A: n = 2+3+4 = 9, m = 2+3+1 = 6,
y para B : m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5. Por onsiguiente, la parti ion
es orre ta. La multipli a ion ahora es dire ta:
2 3
A22 B22 + A23 B32 + A21 B12 A22 B23 + A23 B33 + A21 B13
C = 4 A32 B22 + A33 B32 + A31 B12 A32 B23 + A33 B33 + A31 B13 5
A42 B22 + A43 B32 + A41 B12 A42 B23 + A43 B33 + A41 B13
En nota ion MATLAB, ono iendo las matri es parti ionadas, el produ to
resulta:
1.1 Cal ulo Matri ial 11

C = [A22*B22+A23*B32+A21*B12 A22*B23+A23*B33+A21*B13
A32*B22+A33*B32+A31*B12 A32*B23+A33*B33+A31*B13
A42*B22+A43*B32+A41*B12 A42*B23+A43*B33+A41*B13℄;

Ejemplo 1.4
Matriz Aumentada.- Si los ve tores x, y, v y w son de orden n, m, p y
q respe tivamente, obtener una e ua ion que reempla e a las dos e ua iones
diferen iales siguientes:
dx
= Ax + Bv; dy
dt dt
= Cy + Dw
Solu ion: Las matri es A on C y B on D forman matri es aumentadas
omo sigue:
 dx       
dt = A 0 x + B 0 v
dy 0 C y 0 D w
dt
Ejemplo 1.5
Si los i son los eigenvalores de la matriz A de orden n, omprobar numeri amente
que:
det(A) = 1 2 : : : n ; i = 1; : : : ; n
Solu ion: Ver el programa ejem1 5.m.
% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4)
lear all
A = [1-j 2-j 3-j -3+8j
4j -2 3+5j 4-2j
6-j 7-j 8+3j 3+j
2 -1 j 0℄;
L = eig(A); % DETERMINA LOS EIGENVALORES DE A
detA = det(A); P = L(1)*L(2)*L(3)*L(4);
% SE DEBE CUMPLIR QUE: P = detA

Ejemplo 1.6
Cono idas las matri es Ann, Bnm , Cmn y Dmm on det(A) 6= 0 y det(D) 6= 0,
y de niendo:
     
E= A B ; G= A 0 ; H= A B
0 D C D C D
12 Matemati a Asistida on Computadora

demuestre numeri amente que:


det(E ) = det(G) = det(A)det(D)
det(H ) = det(A)det(D CA 1 B ) = det(D)det(A BD 1C )
Solu ion: El siguiente programa demuestra numeri amente lo pedido.
% ejem1_6.m DETERMINANTE DE MATRICES PARTICIONADAS
lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(A) Y det(D) DISTINTOS DE 0
% zeros(m,n) CREA UNA MATRIZ DE CEROS DE ORDEN (m,n)
E = [A B
zeros(3,2) D℄;
G = [A zeros(2,3)
C D℄;
M = det(A)*det(D);
% SE DEBE CUMPLIR: det(E) = det(G) = M DISTINTO DE 0
H = [A B
C D℄;
J = det(A)*det(D-C*inv(A)*B);
K = det(D)*det(A-B*inv(D)*C);
% SE DEBE CUMPLIR: det(H) = det(J) = K

Ejemplo 1.7
Demostrar numeri amente que:

A B
 1 
A 1 A 1 BD 1


0 D = 0 D 1

A 0
 1 
A 1 0


C D = 1
D CA 1 D 1
Solu ion: Ver el programa ejem1 7.m.
1.1 Cal ulo Matri ial 13

% ejem1_7.m INVERSION DE MATRICES PARTICIONADAS


lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(A) y det(D) DISTINTOS DE 0
% LA MATRIZ CERO DEBE SER DE ORDEN (m,n)
Z1 = zeros(3,2);
E = [A B
Z1 D℄;
G = [inv(A) -inv(A)*B*inv(D)
Z1 inv(D)℄;
% LA MATRIZ CERO DEBE SER DE ORDEN (m,n):
Z2 = zeros(2,3);
F = [A Z2
C D℄;
H = [inv(A) Z2
-inv(D)*C*inv(A) inv(D)℄;
% E*G, G*E, F*H y H*F DEBEN RESULTAR MATRICES IDENTIDAD

Ejemplo 1.8
Demostrar numeri amente que:

A B
 1 
A 1 + A 1 B (D CA 1 B ) 1 CA 1 A 1 B (D CA 1 B ) 1

=
C D (D CA 1 B ) 1 (D CA 1 B ) 1

A B
 1 
(A BD 1 C ) 1 (A BD 1 C ) 1 BD 1

= 1 1 1
C D D C (A BD C ) D C (A BD 1 C ) 1 BD 1 + D 1
1
Solu ion: Ver en el siguiente programa la demostra ion pedida.
% ejem1_8.m INVERSION DE MATRICES PARTICIONADAS
lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
14 Matemati a Asistida on Computadora

5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(D) Y det(D-C*inv(A)*B) DISTINTOS DE 0
E = [A B;C D℄;
G11 = inv(A) + inv(A)*B*inv(D-C*inv(A)*B)*C*inv(A);
G12 = -inv(A)*B*inv(D-C*inv(A)*B);
G21 = -inv(D-C*inv(A)*B)*C*inv(A);
G22 = inv(D-C*inv(A)*B);
G = [G11 G12;G21 G22℄;
% CONDICION: det(D) Y det(A-B*inv(D)*C) DISTINTOS DE 0
H11 = inv(A-B*inv(D)*C);
H12 = -inv(A-B*inv(D)*C)*B*inv(D);
H21 = -inv(D)*C*inv(A-B*inv(D)*C);
H22 = inv(D)*C*inv(A-B*inv(D)*C)*B*inv(D)+inv(D);
H = [H11 H12;H21 H22℄;
% E*G, E*H, G*E y H*E DEBEN RESULTAR MATRICES IDENTIDAD

1.1.3 Derivadas e Integrales on Matri es y Ve tores


Derivada e integral de una matriz A(t) = [aij (t)℄ de orden n  m:
2 d 3 2 R R 3
dt
a11 (t)  d
dt
a1m (t) Z a11 (t)  a1m (t)
d .. .. .. ..
A(t) = 6
4 . .
7
5; A(t) = 6
4 . .
7
5
dt R R
dt n1 (t)
d
a  dt nm (t)
d
a an1 (t)  anm (t)
(1.7)
Derivada e integral de un ve tor x(t) = [x1 : : : xn℄T :
2 d 3 2 R 3
dt x1 (t) Z x1 (t)
d
x(t) = 6
4
... 75 ; x(t) = 6
4
... 75 (1.8)
dt R
d x (t)
dt n xn (t)
Cuando las matri es A y B y el es alar  son fun iones de t, se umple:
d
dt
[A + B ℄ = dtd A + dtd B ; dtd [AB ℄ = dA
dt
B+A
dB
dt
d dA 1
dt
[Ak℄ = dA
dt
dk
k+A ;
dt
d 1
dt
A = A 1
A
(1.9)
1.2 Analisis Ve torial 15

Derivada par ial de una fun ion es alar J (x) de variable ve torial:
2
2 J 3 2J 2J  2J 3
x21 x1 x2 x1 xn
x1
2J
J
= 64 ... 75 ; ... ... ...
6 7
x x2
= 64 7
5 (1.10)
2 2 2
J
xn
 J
xn x1
 J
xn x2   J
x2n
Derivada total de una fun ion es alar V (x(t)) de variable ve torial:
 
d V T dx
V (x(t)) = (1.11)
dt x dt
Ja obiano de una fun ion ve torial f(x) de orden m on argumento ve torial
de orden n: 2 3
f f
x
1 f
2
x1  x1
m
6 f11
f 6 x2
f2  fm 7
x2 7
x
= 6
6 ... x2
... ...7
7 (1.12)
4 5
f1
xn
f2
xn  fm
xn
Si la matriz uadrada A y los ve tores x e y son reales y de orden n se
umple:
 T
x Ax = Ax + AT x
x
 T  T
x Ay = Ay; x Ay = AT x (1.13)
x y
Si A es una matriz hermitiana de orden n y x e y son ve tores omplejos de
orden n, se umple:
 H
x Ax = Ax
x
 H  H
x Ay = Ay; x Ay = AT x (1.14)
x y

1.2 Analisis Ve torial


1.2.1 Independen ia, Ortonormalidad y Normas
Independen ia de Ve tores
Se di e que los ve tores xi, i = 1; : : : ; n son linealmente independientes si:
n
X
i xi = 0
i=1
16 Matemati a Asistida on Computadora

La e ua ion anterior impli a que las onstantes i = 0, i = 1; : : : ; n, o que


det([x1 : : : xn ℄) 6= 0.

Opera ion on Ve tores Complejos y Reales


Si x e y son ve tores omplejos de orden n:
n
X
xH y = (yH x) = yT x = xi yi
i=1
n
X n
X
xH x = xi xi = jxi j2
i=1 i=1
2 3
x1 x1 x1 x2 : : : x1 xn
xxH = 6 4 :::
... ... 7
5 (1.15)
xnx1 xn x2 : : : xn xn
Si x e y son ve tores reales de orden n:
n
X n
X
x T y = yT x = xi yi ; xT x = x2i
i=1 i=1
2 3
x21 x1 x2 : : : x1 xn
xxT = 64 :::
... ... 7
5 (1.16)
xn x1 xnx2 : : : x2n

Ve tores Ortonormales
Los ve tores reales x1; x2 ; : : : son ortonormales si xTi xj = 0 uando i 6= j y
xTi xj 6= 0 uando i = j .

Normas de Ve tores y Matri es


Norma de un Ve tor
En general, una norma es una medida del tama~no de un ve tor o matriz. La
eje u ion de la norma resulta en un es alar positivo. La norma de un ve tor
denotada omo k x k posee las propiedades siguientes:
k x k 0 para todo x 6= 0
1.2 Analisis Ve torial 17

k x k= 0 si y solo si x = 0
k x k=k  kk x k  es un es alar
Desigualdad triangular: k x + y kk x k + k y k
Desigualdad de S hwarz: jxH yj k x kk y k
La norma mas empleada es la Eu lidiana:
p
k x k2 = (xH x)1=2 = jx1j2 + jx2 j2 +    + jxnj2 (1.17)
que es un aso parti ular de la siguiente norma:
q p q
k x k= (P x)H (P x) = xH P H P x = xH Qx)℄  0; Q = P H P = QH
Otras normas pueden ser de nidas omo:
n
X
k x k= jxi j; k x k1= max
i
jxij; k x k 1= min
i
jxi j
i=1
n !1=p
X
k x kp= jxijp
i=1

Norma de una Matriz


La norma de una matriz A de orden n es el menor valor de  tal que:
k A k  k A k
Tal norma umple las propiedades de la norma de un ve tor. En adi ion,
tambien umple:
k A k=k AH k; k A k=k AT k; k Ax kk A kk x k
k A k2 = max
x [x A Ax℄; si x x = 1
H H H

jj k A k; si  es un eigenvalor de A
Otras normas para una matriz A de orden n son:
0 11=2
n X
X n Xn X
n
k A k= jaij j; k A kF =  jaij j2 A
i=1 j =1 i=1 j =1
18 Matemati a Asistida on Computadora
! 0 1
m
X n
X
k A k1 = max
j
jaij j ; k A k1= max
i
 jaij jA
i=1 j =1
q
k A k2 = max
i
i (AH A)

1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores


Rango de una Matriz
Si A es una matriz de orden n  m, su rango, denotado omo rango(A), es
igual al numero maximo r de sus ve tores olumnas linealmente indepen-
dientes. Si A es una matriz de orden n  m y B es de orden m  k:
rango(AB ) = rango(AH ) = rango(AH A) = rango(AAH )
rango(AB ) = rango(AT ) = rango(AT A) = rango(AAT )
rango(AB )  rango(A); rango(AB )  rango(B )
rango(AB ) = rango(A); si A y B son no singulares
rango(AB ) = rango(B ); si A y B son no singulares
Si A es una matriz de orden n y det(A) 6= 0, enton es:
rango(A) = n

Eigenvalores y Eigenve tores


Un eigenvalor de una matriz de orden n, ono ido tambien omo valor pro-
pio, modo, \eigenvalue", valor o raz ara tersti a, es un es alar  que
permite una solu ion no trivial de la e ua ion:
Ax = x x0 (1.18)
Fa torizando x obtenemos la e ua ion ara tersti a de A:
det(I A) (1.19)
Aso iado on ada eigenvalor i existe un eigenve tor ei de magnitud arbi-
traria que es solu ion de Aei = ei. Para un eigenve tor normalizado e^, su
norma Eu lidiana es uno: k e^ k= 1.
1.2 Analisis Ve torial 19

1.2.3 Diagonaliza ion de Matri es


Matri es Similares
Se di e que dos matri es A y B de orden n son similares si existe una matriz
P no singular tal que P 1 AP = B y B = P AP 1 .
Sea A una matriz de orden n que posee n eigenvalores distintos. Sea
E = [e1 : : : en ℄ una matriz formada on los eigenve tores de A y sea 
una matriz diagonal uyos elementos son los eigenvalores de A. Enton es se
di e que A y  son similares porque:
2 3
1 0 : : : 0
6 0 2 : : : 0 7
1
E AE =  = 6 6 .. ... ... 775 ; E E 1 = A (1.20)
4 .
0 0 : : : n
Forma Canoni a de Jordan
Si una matriz A de orden n posee r eigenve tores linealmente independientes,
la forma de Jordan es una matriz J que posee n r unos sobre la diagonal,
on todos los demas elementos iguales a ero. Por ejemplo, si los valores
propios de A de orden n = 5 son 1 ; 1; 1 ; 2; 3 , enton es son posibles
varias formas de J (se muestran uatro):
2 3 2 3
1 1 0 0 0 1 1 0 0 0
6 0 1 1 0 0 77 6 0 1 0 0 0 77
6 6
J1 = 66 0 0 1 0 0 77 J2 = 6
6 0 0 1 0 0 77
4 0 0 0 2 0 5 4 0 0 0 2 0 5
0 0 0 0 3 0 0 0 0 3
2 3 2 3
1 0 0 0 0 1 0 0 0 0
6 0 1 0 0 0 77 6 0 2 0 0 0 77
6 6
J3 = 66 0 0 1 0 0 77 J4 = 6
6 0 0 1 1 0 77
4 0 0 0 2 0 5 4 0 0 0 1 1 5
0 0 0 0 3 0 0 0 0 3
Notar que J1 y J4 deben poseer tres eigenve tores linealmente independien-
tes, la matriz diagonal J3 in o y J2 uatro. Para un problema espe  o, la
forma orre ta de la matriz J se determina de a uerdo a las reglas siguientes:
1. Si una matriz uadrada A de orden k posee k eigenvalores multiples,
y si el rango de [I A℄ es k s, donde 1  s  k, enton es exis-
20 Matemati a Asistida on Computadora

ten s eigenve tores linealmente independientes aso iados on . Por


onsiguiente, existen s bloques de Jordan.
2. La suma de los ordenes de los bloques de Jordan derivados on la regla
anterior debe ser igual a la multipli idad k (ver ejemplo 1.14).
1.2.4 Formas Cuadrati as y Bilineales
Formas Cuadrati as
Una forma uadrati a es un polinomio real que ontiene terminos de la forma
aij xi xj . Si A = [aij ℄ = AH es una matriz hermitiana de orden n y x es un
ve tor omplejo de orden n, enton es:
n X
X n
xH Ax = aij xi xj ; aji = aij
i=1 j =1

Si A = [aij ℄ = AT es una matriz real y simetri a de orden n y x es un ve tor


real de orden n:
n X
X n
xT Ax = aij xi xj ; aji = aij
i=1 j =1

Formas Bilineales
Una forma bilineal es un polinomio real que ontiene terminos de la forma
aij xi yj . Si A = [aij ℄ es una matriz ompleja de orden n, y si los ve tores
omplejos x e y son de orden n y m respe tivamente, enton es:
n X
X m
xH Ay = aij xi yj
i=1 j =1

Si A = [aij ℄ es real de orden n, y si los ve tores reales x e y son de orden n


y m respe tivamente, enton es:
n X
X m
xT Ay = aij xi yj
i=1 j =1
1.2 Analisis Ve torial 21

De ni ion y Semide ni ion de Matri es


Para una matriz A de orden n, las expresiones A > 0, A  0, A < 0 y
A  0 denotan que A es de nida positiva, semide nida positiva, de nida
negativa y semide nida negativa respe tivamente. Hemos visto que la forma
uadrati a xH Ax esta aso iada on la matriz hermitiana A, as omo xT Ax
lo esta on la matriz real y simetri a A.
Una matriz A de orden n es de nida positiva si su forma uadrati a
aso iada es siempre positiva, ex epto uando x = 0. Si todos los eigenvalores
de A son positivos, enton es A > 0.
Una matriz A de orden n es semide nida positiva si su forma uadrati a
aso iada es mayor o igual a ero uando x 6= 0. Si los eigenvalores de A son
positivos o nulos, enton es A  0.
Una matriz A de orden n es de nida negativa si su forma uadrati a aso-
iada es siempre negativa, ex epto uando x = 0. Si todos los eigenvalores
de A son negativos, enton es A < 0.
Una matriz A de orden n es semide nida negativa si su forma uadrati a
aso iada es menor o igual a ero uando x 6= 0. Si los eigenvalores de A son
negativos o nulos, enton es A  0.
Si la matriz A posee eigenvalores positivos y negativos, enton es A es
inde nida.
La tabla 1.2 muestra los omandos para eje utar otras opera iones ma-
tri iales y ve toriales empleando MATLAB.

Ejemplo 1.9
Resolver el siguiente sistema (mas in ognitas que e ua iones):
(5 j )x1 + (2 + 3j )x2 + (3 j )x3 + ( 1 + 4j )x4 + ( 6 + j )x5 = 2 9j
4jx1 2x2 + (3 + 5j )x3 7jx4 + (8 2j )x5 = 4 j
(6 j )x1 + (7 j )x2 + (8 3j )x3 + (3 j )x4 + (1 + 4j )x5 = 3 + j
Solu ion: Ver el programa ejem1 9.m.
% ejem1_9.m SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j 2+3j 3-j -1+4j -6+j
4j -2 3+5j -7j 8-2j
6-j 7-j 8-3j 3-j 1+4j℄;
22 Matemati a Asistida on Computadora

Tabla 1.2: Comandos para omputo matri ial y ve torial


Opera ion Codigo MATLAB
Produ to interno omplejo xH y x'*y
Produ to interno real xT y x'*y
Produ to por elemento aij bij A.*B
Division por elemento aij =bij A.\B; A./B
Poten ia por elemento (aij )bij Pm
A.^B
Norma matri ial k A k1 = maxj p i=1 jaij j norm(A,1)
Norma matri ial k A k2 = maxi Pi(AH A) norm(A,2)
Norma matri ial k A k1= maxi nj=1 jaij j norm(A,inf)
 1=2
Norma matri ial k A kF = Pij jaij j2 norm(A,'fro')
Norma ve torial k x kp= (pPni=1 jxijp)1=p norm(x,p)
Norma ve torial k x k2 = xH x norm(x)
Norma ve torial k x k1= maxi jxij norm(x,inf)
Norma ve torial k x k 1= mini jxij norm(x,-inf)
Rango rank(A)
Eigenvalores i eig(A)
Eigenve tores E = [e1 : : : en ℄ [E,D℄=eig(A)
1.2 Analisis Ve torial 23

B = [2-9j;4-j;3+j℄;
X = A\B; %
% X =
% 3.5719 - 3.4126i --> x1;
% 0 --> x2
% -2.8535 + 1.6221i --> x3
% 0 --> x4
% 0.9991 - 0.4860i --> x5

Ejemplo 1.10
Resolver el siguiente sistema (menos in ognitas que e ua iones):
(5 j )x1 + (2 + 3j )x2 + (3 j )x3 = 2 9j
4jx1 2x2 + (3 + 5j )x3 = 4 j
(6 j )x1 + (7 j )x2 + (8 3j )x3 = 3 + j
( 1 + 4j )x1 + ( 6 + j )x2 + (3 j )x3 = 3 + 7j
7jx1 + (8 2j )x2 + (1 + 4j )x3 = 9
Solu ion: Ver el programa ejem1 10.m.
% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j 2+3j 3-j
4j -2 3+5j
6-j 7-j 8-3j
-1+4j -6+j 3-j
-7j 8-2j 1+4j℄;
B = [2-9j;4-j;3+j;-3+7j;-9℄;
X = A\B;
% X =
% 1.2270 - 2.1969i --> x1
% 0.6871 + 1.2202i --> x2
% -0.9472 + 0.4153i --> x3

Ejemplo 1.11
Comprobar numeri amente que:
xH y = (yH x) = yT x
Solu ion: Ver el programa ejem1 11.m.
24 Matemati a Asistida on Computadora

% ejem1_11.m CALCULO VECTORIAL


lear all
% VECTORES DATOS
x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j℄;
y = [-5+j;-3+j;-8+9j;5-6j;2+7j;-3-j℄;
% COMPROBAR QUE x'*y = onj(y'*x) = onj(y')* onj(x)
p = x'*y; q = onj(y'*x); r = onj(y')* onj(x);
[p q r℄ % p, q y r DEBEN SER IGUALES

Ejemplo 1.12
En el siguiente programa se al ulan diferentes normas matri iales y ve to-
riales.
% ejem1_12.m NORMAS
lear all
% VECTOR DATO
x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j℄;
a = norm(x,5); % NORMA p = 5 (a = 12.3798)
b = norm(x,2); % NORMA EUCLIDIANA (b = 16.2481)
= norm(x,inf); % NORMA INFINITO ( = 12.0416)
d = norm(x,-inf); % NORMA -INFINITO (d = 1.4142)
% MATRIZ DATO
A = [1-j 2-j 3-j -4-j
4j -2 3+5j 2-8j
6-j 7-j 8+3j -7+3j
3+5j 2-8j 1-j 2-9j℄;
e = norm(A); % MAXIMO EIGENVALOR DE A: e = 18.7269
f = norm(A,2); % LO MISMO QUE norm(A): e = f = 18.7269
g = norm(A,1); % max(sum(abs(A)))): g = 29.2046
h = norm(A,inf); % max(sum(abs(A'))): h = 29.3136
k = norm(A,'inf'); % IGUAL QUE norm(A,inf): k = h = 29.3136
m = norm(A,'fro'); % sqrt(sum(diag(A'*A))): m = 23.7276
p = 'fro'; % p DEBE SER 1, 2, inf o 'fro'
n = norm(A,2); % NORMA p: n = 18.7269

Ejemplo 1.13
Sean las matri es Anm , Bmp y Cmm . Demostrar numeri amente las siguien-
tes propiedades del rango: rango(A)  min(n; m); rango(A) = rango(AH );
rango(AB )  min(rango(A); rango(B )); rango(CB ) = rango(B ).
Solu ion: El siguiente programa presenta las demostra iones pedidas.
1.2 Analisis Ve torial 25

% ejem1_13.m PROPIEDADES DEL RANGO


lear all
% MATRICES DATO
A = [-1+j 3-5j -5+6j -2+5j
8-9j 4-2j -1+j -4
-2+3j 4-6j -2-5j 7j℄; % ORDEN (3,4)
B = [1+j -3-5j
8+9j -4+2j
-2+3j -4-6j
-5-6j -2+5j℄; % ORDEN (4,2)
C = [-1+j -2+j 3-j -5-7j
4-2j -1+j -4 2
4-6j -2-5j 7j -j
7j -1 9j 4j℄; % ORDEN (4,4)
rA = rank(A); rAH = rank(A'); rB = rank(B);
rAB = rank(A*B); rCB = rank(C*B);
% SE DEBE CUMPLIR: rA MENOR O IGUAL QUE min(3,4);
% rA = rAH
% rAB MENOR O IGUAL QUE min(rA,rB)
% rCB = rB

Ejemplo 1.14
El siguiente programa determina la forma de Jordan para la matriz:
2
0 1 0 3 3
6 0 1 1 1 77
A=6 4 0 0 0 1 5
0 0 1 2
% ejem1_14.m FORMA CANONICA DE JORDAN
lear all
A = [0 1 0 3;0 -1 1 1;0 0 0 1;0 0 -1 -2℄; % ORDEN 4
[E D℄ = eig(A);
% E = % MATRIZ DE EIGENVECTORES
% 1.0000 -0.7071 0.9045 0.7068
% 0 0.7071 0 -0.7074
% 0 0 0.3015 -0.0002
% 0 0 -0.3015 0.0002

% D = % LOS EIGENVALORES DE A FORMAN LA DIAGONAL DE D


% 0 0 0 0
% 0 -1 0 0
26 Matemati a Asistida on Computadora

% 0 0 -1 0
% 0 0 0 -1
rank((-1)*eye(4)-A); % RESULTA 2 => 2 BLOQUES DE JORDAN
% ASOCIADOS CON LA RAIZ TRIPLE (-1)
% FORMA DE JORDAN: 0 0 0 0
% 0 -1 1 0
% 0 0 -1 0
% 0 0 0 -1
Ejemplo 1.15
Determinar la de ni ion de las matri es siguientes:
2 3 2 3
2 2 2 1 2 1
A=4 2 6 0 5; B=4 2 4 2 5
1 0 2 3 6 0
Solu i
on: Ver el programa ejem1 15.m.
% ejem1_15.m DEFINICION DE MATRICES
lear all
A = [2 2 -2;2 6 0;-1 0 2℄;
EigA = eig(A); % EIGENVALORES DE A: 0.1996, 6.8922, 2.9083
% A > 0 DADO QUE TODOS SUS EIGENVALORES SON POSITIVOS
B = [1 2 1;2 4 2;3 6 0℄;
EigB = eig(B); % EIGENVALORES DE B: 0, 7.1098, -2.1098
% B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0

1.3 La Transformada de Lapla e


La transformada de Lapla e de una fun ion g(t) se de ne omo:
Z 1
g(s) = L[g(t)℄ = g(t)e st dt (1.21)
0
donde s es la variable lapla iana. La transformada de Lapla e es util para
modelar sistemas lineales invariantes on el tiempo. Su transformada inversa
se designa omo:
g(t) = L 1 [g(s)℄ (1.22)
Como ejemplo, la transformada de Lapla e de la fun ion g(t) = e at , donde
a es real, se determina omo sigue:
s+a)t 1
" #
Z 1
e ( 1
L[e at ℄ = e at e st dt = =
0 s+a 0 s+a
1.3 La Transformada de Lapla e 27

La tabla 1.3 muestra la transformada de Lapla e de algunas fun iones. Al-


gunas de sus propiedades se muestran en la tabla 1.4.
Tabla 1.3: Transformadas de Lapla e
Des rip ion g(t) g(s)
Impulso unitario Æ(t) 1
Es alon unitario  1
s
Rampa unitaria t 1
s2
Rampa de orden n !
s +1 ; n! = n(n 1) : : :
t n n
n

Exponen ial e at 1
s+a
Seno sen!t !
s2 +!2
Coseno os!t s
s2 +!2
Seno amortiguado e at sen!t !
(s+a)2 +!2
Coseno amortiguado e at os!t s+a
(s+a)2 +!2

Tabla 1.4: Propiedades de la transformada de Lapla e


Des rip ion Propiedad
h i
Deriva ion L dg
h dt i
= sg(s) g(0), g(0) = [g(t)℄t=0
Deriva ion de orden n L ddt g = sng(s) sn 1 g(0)    gn 1 (0)
n
n
h
1 i
gn 1 (0) = dt d 1 g(t)
n

t=0
n
hR i
Integral L 0t g(t)dt = g(ss)
Desplazamiento en tiempo L[g(t t0)(t t0)℄ = e t0 sg(s)
Desplazam. en fre uen ia L[e at g(t)℄ = g(s + a)
Valor ini ial limt!0 g(t) = lims!1 sg(s)
Valor nal limt!1 g(t) = lims!0 sg(s)

Ejemplo 1.16
La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una
velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si se
28 Matemati a Asistida on Computadora

despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv es


lo uni o que se opone al movimiento, donde b= 50 N-s/m es el oe iente
de fri ion, enton es la dinami a del pro eso puede modelarse omo:
dv
mv_ (t) + bv(t) = u(t); v_ =
dt
Determinar la fun ion de transferen ia del pro eso y su respuesta a un es-
alon de 1 m/s, sabiendo que la entrada es u y la salida es v.
v velocidad
friccion
bv m u

Figura 1.1: Movil en movimiento.


Solu ion: La fun ion de transferen ia del pro eso se obtiene apli ando la
propiedad de deriva ion de orden n (tabla 1.4), on todas las ondi iones
ini iales iguales a ero:
v(s) 1
msv(s) + bv(s) = u(s); =
u(s) ms + b
Dado que la entrada es un es alon, u(s) = 1s . La salida se determina de:
  " #
v(t) = L 1 [v(s)℄ = L 1
1 = 1L 1 1 1
s(ms + b) b s s + mb
y empleando la tabla 1.3 obtenemos:
1
v(t) = (1 e bt=m )
b
Ejemplo 1.17
Empleando las propiedades del valor ini ial y del valor nal, determinar
tales valores para la velo idad del movil del problema anterior.
Solu ion: El valor ini ial se determina de: limt!0 v(t) = lims!1 sv(s) = 0.
El valor nal se obtiene de: limt!1 v(t) = lims!0 sv(s) = 1b .
Cap
tulo 2

Sistemas Dis retos

En este aptulo se exponen los on eptos de variables de estado, muestreo y


re onstru ion de se~nales en los pro esos a ontrolar. Tambien se trata la dis-
retiza ion dire ta de pro esos ontinuos, la transformada Z omo herramienta
de dis retiza ion, las formas anoni as de los pro esos en el espa io de es-
tado dis reto y los on eptos de ontrolabilidad y observabilidad. El material
expuesto pretende dar una base solida a er a de los sistemas de ontrol en el do-
minio dis reto. Todos los ar hivos orrespondientes a los ejer i ios desarrollados
en este aptulo se pueden des argar del sitio: http:// ee.uni.edu.pe/728681F.

2.1 Dise~
no de Sistemas de Control Digital
La gura 2.1 muestra la estru tura de un sistema de ontrol digital, uyo
objetivo de ontrol es lograr que la se~nal de salida Y del pro eso (de ara ter
ontinuo, omo en la mayora de los asos) siga a la se~nal de referen ia r
umpliendo determinadas espe i a iones de dise~no, tales omo: mnimo
tiempo de estabiliza ion, mnimo sobreimpulso y/o error en estado esta-
ionario nulo en Y . En otras palabras, el algoritmo de ontrol implementa-
do, en este aso digitalmente, debe ser apaz de rear una se~nal de ontrol
U (la variable manipulada), la ual a tuando sobre el pro eso a traves de un
a tuador, minimi e la se~nal de error e. El bloque de ltraje es util para eli-
minar las omponentes ontaminantes de alta fre uen ia de la se~nal de ruido
de medi ion n. El ltro de ruido puede ser analogi o o digital y su in lusion
depende de la magnitud del ruido y su relevan ia dentro del fun ionamiento
del sistema de ontrol.
30 Sistemas Dis retos

Disturbios

r e Muestreador D/A U Actuador Y


y Computadora y y
Digital
A/D Retencion Proceso

Filtraje Medicion

Figura 2.1: Estru tura de un sistema de ontrol digital.

En la estru tura de ontrol des rita en el parrafo anterior, el algorit-


mo de ontrol se implementa en un dispositivo digital que puede ser una
omputadora personal, una omputadora de pro esos ( on apa idad para
manejar varios lazos de ontrol), un mi ro ontrolador o una tarjeta PDS
(Pro esamiento Digital de Se~nales). El pro esamiento digital del algorit-
mo de ontrol requiere de la presen ia de los dispositivos de adquisi ion de
datos: muestreadores, onversores de se~nal A/D (analogi o a digital) y D/A
(digital a analogi o) y retenedores (re onstru tores) de se~nal.
La on gura ion mostrada en la gura 2.1 no es uni a. Por ejemplo, dado
el aso, la se~nal de referen ia y la ompara ion de se~nales pueden ser gene-
radas dentro de la omputadora digital. En otros asos, si el a tuador y los
dispositivos de medi ion son apa es de pro esar se~nales digitales, enton es
tales dispositivos pueden a tuar dire tamente sobre el pro eso, dando lugar
a nuevas on gura iones. En las apli a iones des ritas en este libro, el dispo-
sitivo de pro esamiento digital es una omputadora personal, los sensores de
se~nal son de odi adores ele troni os de pulsos (\en oders"), mientras que
el a tuador es una ombina ion de un servomotor D.C. (de orriente onti-
nua) on un ampli ador ele troni o PWM (\Pulse Wide Modulation").
El empleo del pro esamiento digital permite la realiza ion de algoritmos
de ontrol so sti ados existentes en la teora de ontrol moderna, pero tam-
bien refuerza la interrogante sobre que algoritmo de ontrol es ade uado para
determinada apli a ion. Una respuesta a esta interrogante solo es posible
si se tiene ono imiento su iente del modelo de la dinami a del pro eso a
ontrolar y de sus se~nales. Tal ono imiento va a permitir la sele ion ade-
uada de un algoritmo de ontrol que sea apaz de ha er umplir el objetivo
de ontrol on el menor gasto ( omputa ional, por ejemplo) y on el mayor
rendimiento (satisfa ion de las espe i a iones de dise~no).
2.2 Con epto de Estado y Variables de Estado 31

2.2 Con epto de Estado y Variables de Estado


La dinami a de un pro eso multivariable, es de ir, un pro eso que posee
multiples entradas y multiples salidas, puede ser representada en el espa io
de estado mediante dos onjuntos de e ua iones diferen iales ordinarias de
primer orden, denominadas las e ua iones de estado y de salida, omo sigue:
X_ = f(X; U; v; t)
Y = h(X; U; w; t) (2.1)
donde f y h son fun iones ve toriales de variable ve torial de orden n y r
respe tivamente, X es el ve tor de estado de orden n, U es el ve tor de
ontrol de orden m, Y es el ve tor de salida de orden r, v es el ve tor de
disturbios (de orden n) en los estados, y w es el ve tor de disturbios (de
orden r) en las salidas. El tiempo t se in luye omo parte del argumento
para indi ar que pueden existir parametros variantes on el tiempo. En este
punto es onveniente de nir el on epto de estado:
El ve tor de estado X = [X1 : : : Xn ℄T de un pro eso (donde el su-
perndi e T indi a transpuesta) es el mnimo onjunto de variables, las va-
riables de estado X1 : : : Xn , las uales ontienen informa ion su iente
a er a de la historia pasada del pro eso. Esta informa ion permite om-
putar todos los futuros estados del pro eso, asumiendo por supuesto, que
todas las futuras entradas U son tambien ono idas, omo del mismo modo
lo son las e ua iones dinami as que des riben di ho sistema. El numero n
de variables de estado de ne el orden o la dimension del sistema.
El espa io de estado es el espa io n-dimensional de todos los estados.
Cuando el sistema es de orden n = 2, el espa io de estado es ono ido omo
el plano de fase on oordenadas X1 y X2 . Los puntos de equilibrio en el
espa io de estado para el pro eso des rito en (2.1) se determinan uando el
estado del pro eso no ambia gra ias a la a ion de una fuerza de entrada
 . Por tanto, los puntos de equilibrio (X ) se determinan de:
U
X_ = f(X;
 U ) = 0 (2.2)
2.2.1 Linealiza ion de Pro esos
La representa ion linealizada en el espa io de estado de (2.1), sin la presen ia
de parametros variantes on el tiempo, es la siguiente:
x_ = Ax + Bu + Ev
32 Sistemas Dis retos

= Cx + Du + F w
y (2.3)
donde A es la matriz de estado, B es la matriz de ontrol, E es la matriz
de disturbios en los estados, C es la matriz de salida de los estados, D es
la matriz de salida de las entradas y F es la matriz de disturbios en las
salidas. Las dimensiones de di has matri es son: Ann, Bnm, Enn, Crn, Drm
y Err , donde el primer subndi e es el numero de las de la matriz y el
segundo, el numero de olumnas. Es importante notar que en (2.3) estamos
empleando las variables residuales (tambien llamadas variables de desvia ion
o perturba ionales) siguientes:
x=X X 
u=U U 
Sin la presen ia de disturbios (v = w = 0), y para la opera ion del
pro eso alrededor del estado de equilibrio (X , U ), las matri es A, B , C y D
pueden ser determinadas evaluando las siguientes matri es ja obianas:
2 f1 f1 3 2 f1 f1 3
X1  Xn U1  Um
A = 6
4
... ... ... 7
5 B=6
4
... ... ... 7
5
fn
X1  fn
Xn (X ;U ) fn
U1  fn
Um (X ;U )
2 h1 h1 3 2 h1 h1 3
X1  Xn U1  Um
C = 6
4
... ... ... 7
5 D=6
4
... ... ... 7
5 (2.4)
hr
X1  hr
Xn (X ;U )
hr
U1  hr
Um (X ;U )
La matriz de transferen ia para pro esos multivariables lineales se de-
termina empleando la e ua ion matri ial siguiente:
Y(s) = [C (sI A) 1 B + D℄U(s) (2.5)
donde s es la variable lapla iana e I es la matriz identidad. Cuando las
se~nales Y y U son unidimensionales, la e ua ion anterior se onvierte en la
e ua ion de transferen ia de un pro eso univariable. La e ua ion ara -
tersti a del pro eso se obtiene de:
det(sI A) = 0 (2.6)
donde det es la opera ion determinante. Las ra es de (2.6) son tambien
ono idas omo ra es ara tersti as, eigenvalores, valores propios, modos,
2.2 Con epto de Estado y Variables de Estado 33

entre otras denomina iones. Los eigenvalores determinan la estabilidad del


pro eso alrededor de un punto de equilibrio X en el espa io de estado omo
sigue:
El pro eso des rito por la e ua ion (2.3) es estable, siempre que todos los
eigenvalores de su e ua ion ara tersti a (2.6) posean parte real negativa.
Cuando al menos uno de tales eigenvalores posea parte real positiva o ero,
enton es el pro eso es inestable.
De a uerdo a la e ua ion (2.2), el pro eso des rito por (2.3) on u y v
nulos posee un solo punto de equilibrio: el origen. Empleando este he ho,
la estabilidad del pro eso des rito en (2.3) tambien puede ser formulada
empleando el on epto de estado, omo sigue:
El pro eso des rito por la e ua ion (2.3) es estable, uando no siendo
forzado (es de ir, uando u = v = 0), el estado del pro eso tiende a ero
para ualquier estado ini ial nito x0 .

Ejemplo 2.1
La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal S =9 m2 de ada tanque es onstante. El objetivo de ontrol es
estabilizar ( ontrolar) la altura H2 empleando omo fuerza de ontrol el
ujo de alimenta ion Qo. Determinar el modelo linealizado de este pro eso
hidrauli o.
Q p
0 0

ρ Tanque
H1
1
p
1 γ
g
Q
p 1
0
ρ
Tanque
H2
2
p
2 γ
Q
2

Figura 2.2: Pro eso hidrauli o.


Solu ion: Los ujos de salida Q1 y Q2 de los tanques se pueden modelar
34 Sistemas Dis retos

omo: p p
Q1 = P1 P0 ; Q2 = P2 P0
donde P1 , P2 y P0 son las presiones en el fondo de los tanques y en el exterior
respe tivamente, y =0.4 es una onstante que depende de la geometra del
ori io. Si =1.23 kg/m3 es la densidad del lquido y g=9.81 m/s2 es la
a elera ion de la gravedad:
P1 P0 = gH1 ; P2 P0 = gH2
El ujo a umulado en ada tanque es:
dH dH
Q0 Q1 = S 1 ; Q1 Q2 = S 2
dt dt
Resolviendo las e ua iones anteriores para las alturas, obtenemos:
1 pg p
H_ 1 = Q0 H1 = f1
S S
p
g p
H_ 2 =
p
S
[ H1 H2 ℄ = f2
y su orrespondiente e ua ion de salida:
 
Y = [0 1℄ H1
H2
De namos las siguientes variables residuales: h1 = H1 H 1, h2 = H2 H 2,
q0 = Q0 Q 0 . Cono iendo Q 0 = 3 m3 /s, el estado de equilibrio del pro eso
se puede obtener de:
1 pg p 
H_ 1 = Q 0 H1 = 0
S S
pg p 
H_ 2 =
p
[ H1 H 2 ℄ = 0
S
lo que resulta en:
Q 2
H 1 = H 2 = 2 0
g
Apli ando el ja obiano, el pro eso linealizado resulta:
h_ = A h + B q0 ; y = h2 = C h
2.2 Con epto de Estado y Variables de Estado 35

donde:
2 ppgH
3
  "
f1 f1
#
0
h = hh1 ; A= H1 H2 = 4 2
p
S 1
p g 5
2 f2
H1
f2
H2 (H 1 ;H 2 ) p g
2S H 1
p
2S H 2
" # 
B=
f1
Q0 1
= 0 ; C = [0 1℄; D = [0℄
f2
Q0 Q0
Ejemplo 2.2
El pro eso pendulo no lineal mostrado en la gura 2.3 puede rotar libre-
mente alrededor del pivote gra ias a la a ion de un torque externo U . En
di ha gura Bp=1.3366 N-m/rad/s es la fri ion vis osa rota ional en el
punto pivote, Lo=1.6350 m es la longitud de la varilla de peso despre ia-
ble, Mo=0.5 kg es la masa de la esfera y g=9.81 m/s2 es la a elera ion
de la gravedad. La salida de interes es la posi ion angular  del pendulo.
Para las situa iones mostradas en las guras 2.3(a) y 2.3(b) determine: las
e ua iones no lineales de estado y de salida, los puntos de equilibrio, las
e ua iones linealizadas de estado y de salida, las fun iones de transferen ia,
las e ua iones ara tersti as, y la estabilidad del pro eso.
Bp Mo

U
Θ U
Φ
Lo
Lo
Mo Bp
(a) (b)

Figura 2.3: Pendulo no lineal en posi ion de equilibrio estable ( gura (a)) y
en posi ion de equilibrio inestable ( gura (b)).
Solu ion: El pro eso en estudio es univariable; es de ir, una sola entrada U
a tuando sobre el pro eso, y una sola salida: la posi ion angular. Primero
analizaremos la situa ion mostrada en la gura 2.3(a). El torque resultante
alrededor del pivote es:
 + Bp_ + MogLo sen
U = Mo L2o  (2.7)
36 Sistemas Dis retos

Notar que (2.7) es no lineal debido al sen. Sele ionando en (2.7) omo
variables de estado X1 = , X2 = _ y omo salida Y = X1 se obtiene:
X_ 1 = X2
X_ 2 =
g
senX1
Bp
X2 +
1 U
Lo Mo Lo2 Mo L2o
Y = X1 (2.8)
uya representa ion ompa ta (e ua ion (2.1) on v = w = 0) resulta:
X_ = f; Y = X1 = h
donde:
    " #
X f X 2
X = X1 ; f = f 1 = 1 2U (2.9)
2 x2 +
g senX B
2 2 Lo 1 p
Mo Lo Mo Lo
Notar en (2.9) que n = 2, m = 1, r = 1. Empleando (2.2), los estados de
equilibrio se obtienen de:
X_ 1 = X 2 = 0
X_ 2 =
g
senX 1
Bp 
X +
1 U = 0
Lo Mo L2o 2 Mo L2o
y = X1 X 1 (2.10)
uya solu ion, on U = 0, es: X2 = 0 y X1 = 2k; k = 0; 1; : : : Por
onsiguiente, los estados de equilibrio son (0[2℄; 0) para la gura 2.3(a) y
([3℄; 0) para la gura 2.3(b). Empleando (2.4), la linealiza ion de (2.9)
alrededor del estado de equilibrio (X1 ; X2 ; U ) = (0; 0; 0) resulta:
x_ = Ax + Bu; y = Cx + Du
donde: " # " #
A =
f1 f1
X1 X2 = 0 1
f2 f2 g Bp
X1 X2 (0;0) Lo M o L2o
" #
B =
 f1 
U = 0
f2 1
U 0 Mo L2o
h i
C = h h
X1 X2 (0;0)

= 1 0
 
h
D = U 0
= [0℄ (2.11)
2.2 Con epto de Estado y Variables de Estado 37

La fun ion de transferen ia del pro eso se puede determinar de:


Y (s)
U (s)
= C (sI A) 1 B
" # 1" #
s
= [1 0℄ g B 2 + s 1 0
p 1
L o MLo o M L2
o o

= MoL2s2 + B1ps + MogLo (2.12)


o
La e ua ion ara tersti a se determina de (2.6):
det(sI A) = Mo L2o s2 + Bp s + Mo gLo = 0 (2.13)
que resulta siendo el denominador de la fun ion de transferen ia dada en
(2.12). Con los valores dados de Mo, Lo y Bp, las dos ra es de (2.13)
resultan: s1;2 = 0:7482  2:6038i, lo ual nos indi a que el estado de
equilibrio (0; 0; 0) es estable.
Cuando el pendulo se en uentra en la posi ion mostrada en la gura
2.3(b), enton es  =  + , sen( + ) = sen, _ = _ y  =  . Por
onsiguiente, la e ua ion que des ribe la dinami a del pendulo no lineal es:
U = Mo L2o  + Bp _ Mo gLo sen (2.14)
Con el pro edimiento empleado para la situa ion mostrada en la gura
2.3(a), fa ilmente podemos determinar que:
" #
A=
0 1
g Bp
Lo Mo L2o

y su e ua ion ara tersti a resulta:


det(sI A) = Mo L2o  + Bp _ Mo gLo sen
la ual posee dos ra es: s1 = 3:5587 y s2 = 2:6024. El eigenvalor positivo
nos indi a que el punto de equilibrio (; 0) es inestable.
La e ua ion de estado x_ = Ax + Bu para el pro eso pendulo, puede
determinarse apli ando en (2.7) el riterio de linealiza ion sen = , ha-
iendo u = U , y sele ionando omo variables de estado x1 =  y x2 = ._
Sin embargo, la forma general de linealiza ion requiere de la apli a ion de
las matri es ja obianas dadas en (2.4).
38 Sistemas Dis retos

2.3 Fundamentos de Sistemas Dis retos


2.3.1 Muestreo y Re onstru ion
La gura 2.4 muestra un lazo de ontrol que in luye una omputadora digital
equipada on los dispositivos de adquisi ion de datos ne esarios. La se~nal
ontrolada y, luego de ser sensada, pasa por un muestreador, generandose
un tren de impulsos y separados uno del otro en T segundos (el tiempo
de muestreo). Luego, el tren de impulsos es digitalizado por medio del
dispositivo A=D, lo que resulta en la se~nal yd, la ual ya puede ser pro esada
por la omputadora on el n de generar el algoritmo de ontrol.
La se~nal de ontrol digitalizada ud sufre el pro eso inverso: pasa por un
dispositivo D=A y luego por un muestreador para generar el tren de impulsos
u . Mediante un dispositivo de reten ion de orden ero, que se des ribe mas
adelante, la se~nal de ontrol es re onstruida, lo que resulta en una se~nal de
ontrol ontinua u apaz de a tuar sobre el a tuador-pro eso ontinuo.
Notar que la se~nal de referen ia digitalizada rd se genera internamente.
Si la referen ia fuera una se~nal externa, enton es debe ser pro esada omo
la se~nal y. En lo que sigue, asumiremos que el tiempo de muestreo T es el
mismo para todos los muestreadores y que di hos muestreadores operan sin-
roni amente; es de ir, que el retardo entre la opera ion de un muestreador
on respe to a otro es despre iable. Es importante anotar que los onver-
tidores de se~nal, muestreadores y dispositivos de reten ion, son parte de la
interfaz (tarjeta de adquisi ion de datos, por ejemplo) de la omputadora
digital on su mundo ir undante (el pro eso-a tuador y los dispositivos de
medi ion).
Un tren de impulsos, por ejemplo la se~nal u , puede modelarse omo:
1
X
u (t) = u(kT )Æ(t
 kT ) (2.15)
k=0

donde T es el tiempo de muestreo de u(t), k es el tiempo dis reto (t = kT ),


y Æ(t kT ) es la fun ion impulso unitario o delta de Dira que se de ne
omo: 
Æ(t kT ) = 10 si t = kT
si t 6= kT
Empleando la ono ida identidad L[Æ(t kT )℄ = e kT s , la transformada de
2.3 Fundamentos de Sistemas Dis retos 39

COMPUTADORA DIGITAL

rd ud u* u
D RETENCION’
DE CONTROL
ALGORITMO

ACTUADOR PROCESO
A T

D FILTRAJE
y MEDICION
yd A y* T

Figura 2.4: Lazo de ontrol on una omputadora omo ontrolador.


Lapla e de u resulta:
1
X 1
X
u (s) = L[ u(kT )Æ(t kT )℄ = u(kT )L[Æ(t kT )℄
k=0 k=0
1
X
= u(kT )e kT s = u(esT ) (2.16)
k=0

La fre uen ia de muestreo se determina de la rela ion:


! =
2 (2.17)
s
T
El tren de impulsos u (t) se puede representar alternativamente mediante
su serie de Fourier: 1
u (t) =
1 X u(t)ej! t (2.18) s
T k= 1
uya transformada de Lapla e ahora resulta (ver referen ias [4℄, [3℄):
1 1
X
u (s) = u(s + i!s) (2.19)
T k= 1

La se~nal u(s) posee dos propiedades importantes. La primera es su ara ter


periodi o, que puede demostrarse reemplazando en la e ua ion (2.16) la
40 Sistemas Dis retos

variable lapla iana s por s + j!s,  = 0; 1; 2; : : :, omo sigue:


1
X 1
X
u (s + j!s ) = u(kT )e kT (s+j!s ) = u(kT )e kT s e kT j!s
 =0  =0
= u (esT ) (2.20)
donde hemos usado el he ho de que !sT = 2. La segunda propiedad
es omo sigue: si u(s) posee un polo en s = s1, enton es u(s) debe poseer
polos en s = s1 + j!s,  = 0; 1; 2; : : : Esta propiedad puede demostrarse
expandiendo la sumatoria en la e ua ion (2.19):
1 X1 1
u (s) =
 u(s + i! ) = [u(s) + u(s + j! ) + u(s + 2j! )
s s s
T k= 1 T
+    + u(s j!s) + u(s 2j!s) +   ℄
Si u(s) posee un polo en s = s1, enton es ada termino de la expansion
ontribuye on un polo en s = s1 + j!s.
La gura 2.5 muestra la respuesta en fre uen ia de las se~nales u(t) y
u (t), asumiendo que u(t) es de banda limitada. Del gra o de ju (ej! )j
podemos extraer la siguiente on lusion referente al teorema fundamental
del muestreo:
Para que la se~nal ontinua original u(t) pueda ser re onstruida om-
pletamente a partir de sus muestras, la fre uen ia de muestreo tiene que
sele ionarse de modo tal que:

!s  2!max T  ! (2.21)
max

La gura 2.6 muestra en detalle el pro eso de muestreo y re onstru ion


de la se~nal u empleando un dispositivo de reten ion de orden ero, el ual re-
onstruye la se~nal mediante aproxima iones re tangulares. Tener en uenta
que u es una se~nal generi a. Podemos detrerminar la fun ion de transferen-
ia gr0(s) de la reten ion omo sigue. El area del pulso re tangular de base
(k +1)T kT es u(kT )[(t kT ) (kT )℄, donde (:) es la fun ion es alon
unitario que se de ne omo:

(t kT ) = 10 si t  kT
si t < kT
2.3 Fundamentos de Sistemas Dis retos 41

u(t) u(j ω)

t ωmax ωmax ω

u*(t) jω
u*(e )

ωs ωs
2 2
t ωs ωmax ωmax ωs ω

Figura 2.5: Respuesta en fre uen ia de las se~nales u(t) y u (t) para ilustrar
el teorema del muestreo.
El area total de la se~nal u a la salida de la reten ion es:
1
X
u(t) = u(kT )[(t kT ) (kT )℄
k=0

Empleando la ono ida transforma ion L[(t kT )℄ = e s , la transforma-


kT s

da de Lapla e de u(t) resulta:


X1 1 1
u(s) = u(kT )e kT s [1 e T s ℄ = u (s) [1 e T s ℄
k=0
s s
Por onsiguiente, la fun ion de transferen ia de la reten ion de orden ero
viene a ser:
u(s) 1 e sT
u (s)
= G r 0 ( s ) = s
(2.22)
Este ultimo resultado sera usado posteriormente.
Dis retiza ion Dire ta
Es bastante util dis retizar dire tamente expresiones que ontengan inte-
grales y derivadas. La aproxima ion re tangular al ula el area debajo de
una ierta urva e(t) mediante la suma de re tangulos de la forma T e(iT T )
(T es el tiempo de muestreo), tal omo se ilustra a ontinua ion. Por onsi-
guiente, terminos que ontengan integra ion pueden dis retizarse empleando
42 Sistemas Dis retos
_
u(s) u*(s) 1 e- sT u(s)
T s
’ DE ORDEN CERO
RETENCION _
u (t) u*(t) u (t)

u(2T)

u(3T)
u(T)
u(0)
t 0 T 2T 3T 4T 0 T 2T 3T 4T

Figura 2.6: Pro eso de muestreo y re onstru ion.


aproxima ion re tangular omo sigue:
Z t
u(t) = e( )d
0
k
X k 1
X
u(kT )  T e(iT T ); u(kT T)  T e(iT T)
i=0 i=0
u(kT ) u(kT T)= T e(kT T ); u(k) u(k 1) = T e(k 1) (2.23)
En la ultima expresion hemos obviado en el argumento su dependen ia on
el tiempo de muestreo T , pues se sobreentiende que todos los terminos se dis-
retizan empleando el mismo tiempo de muestreo. Terminos que ontengan
derivadas pueden dis retizarse empleando diferen ias por atraso:
de(t)
dt
= e_(t)  e(kT ) = e(kT ) e(kT T )
T T
de_(t) 2
dt
= e(t)   eT(2kT ) = e(kT ) T2e(kT T ) = e_(t) eT_(t T )
... (2.24)
Si la dis retiza ion de la derivada se realiza por adelanto, enton es las dife-
ren ias son de la forma:
x(kT + T ) x(kT ); x(k + 1) x(k)
Ejemplo 2.3
Dis retizar el modelo no lineal del pro eso pendulo des rito en el ejemplo 2.2
y gra ar diez segundos de su respuesta a un torque tipo es alon unitario.
2.3 Fundamentos de Sistemas Dis retos 43

Asumir los siguientes valores: Lo = 1.6350 m, Mo = 0.5 Kg, Bp = 1.3366


N-m/rad/s, g = 9.81 m/s2 y T = 0.01 s.
Solu ion: Dis retizando por adelanto las e ua iones dadas en (2.8) y ob-
viando la es ritura del tiempo de muestreo T en los argumentos, obtenemos:
X1 (k + 1) = X1 (k) + T X2 (k)
 
X2 (k + 1) = X2 (k) + T
g
senX1 (k)
Bp
x (k ) +
1 U (k)
Lo Mo L2o 2 Mo L2o
y(k) = x1 (k)
El siguiente programa en odigo MATLAB determina la respuesta que se
muestra en la gura 2.7. Observar que ada muestra k equivale a T s.
% ejem2_3.m RESPUESTA DEL PENDULO NO LINEAL A UN ESCALON
lear all
Lo = 1.6350; Mo = 0.5; Bp =1.3366; g = 9.81; T = 0.01;
X1(1) = 0; X2(1) = 0;
for k = 1:1000 % CADA MUESTRA k EQUIVALE A T SEGUNDOS
U(k) = 1; % ESCALON DE ENTRADA
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*( -(g/Lo)*sin(X1(k)) - (Bp/(Mo*Lo^2))*X2(k) ...
+ (1/(Mo*Lo^2))*U(k) );
Y(k) = X1(k);
end
plot(Y); grid
ylabel('Posi ion (rad)')
xlabel('Tiempo dis reto k')
print -deps -f fig2_7
Ejemplo 2.4
Dis retizar el siguiente ontrolador ideal PID:
 
u(t) = K e(t) +
1 Z t
e(t)dt + TD
de(t)
(2.25)
TI 0 dt
donde K es la ganan ia propor ional, TI es el tiempo de integra ion y TD
es el tiempo derivativo. En un primer aso emplear integra ion re tangular
y luego usar integra ion trapezoidal.
Solu ion: Empleando las rela iones (2.23) y (2.24) en (2.25) se obtiene:
( k )
T X
u(k) = K e(k) +
TI i=0
e(i 1) + TTD [e(k) e(k 1)℄
44 Sistemas Dis retos

0.2

0.18

0.16

0.14
Posición (rad)

0.12

0.1

0.08

0.06

0.04

0.02

0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo discreto k

Figura 2.7: Respuesta del pendulo no lineal al es alon.


( " #
k
T X
u(k 1) = K e(k 1) + e(i 1) e(k 1)
TI i=0

TD
+ T
[e(k 1) e(k 2)℄
Restando las expresiones anteriores y despejando u(k) obtenemos:
u(k) = u(k 1) + q0 e(k) + q1 e(k 1) + q2 e(k 2) (2.26)
donde:
T T T T
q0 = K (1 + D ); q1 = K (1 + 2 D ); q2 = K D
T T TI T
Si la integra ion emplea el metodo trapezoidal (aproxima ion de segmen-
tos de area mediante trapezoides), enton es:
( )
k  
u(k) = K e(k) +
1 X
T
e(i 1) + e(i) TD
+ T [e(k) e(k 1)℄
TI i=0 2
( " k k #
T X X
u(k 1) = K e(k 1) + e(i 1) e(k 1) + e(i) e(k)
2TI i=0 i=0
2.3 Fundamentos de Sistemas Dis retos 45

TD
+ T
[e(k 1) e(k 2)℄
Restando las expresiones anteriores y despejando u(k) obtenemos una ex-
presion similar a (2.26), donde:
T T T T T
q0 = K (1 + D + ); q1 = K (1 + 2 D ); q2 = K D
T 2T I T 2T T I

2.3.2 La Transformada Z
Es util introdu ir la siguiente rela ion:
z = eT s = eT (+j!) = eT  [ os!T + jsen!T ℄ (2.27)
Reemplazando en la e ua ion (2.16) la se~nal u por una variable generi a g,
llegamos a la siguiente de ni ion de la transformada Z :
X1
g(z ) = Z [g(kT )℄ = g(kT )z k = g(0)+ g(T )z 1 + g(2T )z 2 +    (2.28)
k=0
La serie en (2.28) onverge si jg(kT )j se restringe a valores nitos y si jzj > 1.
Las sumatorias siguientes son bastante utiles para resolver problemas
rela ionados on la transformada Z :
NX1
ak =
1 aN ; jaj < 1
k=0
1 a
1
= 11a;
X
ak jaj < 1
k=0
1
X a
kak = (1 a)2
; jaj < 1
k=0
N2
X aN1 aN2 1
ak = 1 a
; jaj < 1
k=N1
1 N1
= 1a a ; jaj < 1
X
ak (2.29)
k=N1
A manera de ejemplo, la transformada Z del impulso unitario Æ(kT ), sa-
biendo que Æ(0T ) = 1, resulta:
1
X
Z [Æ(kT )℄ = Æ(kT )z k = z 0 = 1
k=0
46 Sistemas Dis retos

mientras que la transformada Z del es alon (kT )=1 empleando la segunda


de las sumatorias dadas en (2.29) resulta:
X1 1 = z
Z [(kT )℄ = z k =
k=0
1 z 1 z 1

la ual es valida para jz 1j < 1 (o jzj > 1), pues la serie debe ser onver-
gente. La tabla 2.1 ilustra la transformada Z de algunas se uen ias notables,
mientras que la tabla 2.2 presenta la rela ion existente entre la transformada
Z y la transformada de Lapla e.
A ontinua ion se formulan algunas propiedades de la transformada Z :
(1) Linealidad:
Z [ag1 (kT ) + bg2 (kT )℄ = aZ [g1 (kT )℄ + bZ [g2 (kT )℄
(2) Desplazamiento a la dere ha:
Z [g(kT dT )℄ = z d g(z ); d  0
(3) Desplazamiento a la izquierda:Pd 1
Z [g(kT + dT )℄ = z d [g(z )  =0 g (T )z ℄; d  0


(4) Amortiguamiento:
Z [g(kT )e akT ℄ = g(zeaT )
(5) Multipli a ion por una variable:
Z [kg(kT )℄ = z dgdz(z)
(6) Multipli a ion por una exponen ial:
Z [ak g(kT )℄ = g( az )
(7) Teorema del valor ini ial:
limk!0 x(kT ) = limz!1 x(z)
(8) Teorema del valor nal:
limk!1 g(kT ) = limz!1 z z 1 g(z) = limz!1(1 z 1 )g(z)
Por ejemplo, sabiendo que Z [ os!k℄ es ono ido, la transformada Z de
ak os!k puede ser determinada empleando la propiedad de multipli a ion
por una exponen ial, omo sigue:
 
z (z os!) z (z a os!)
Z [a os!k℄ = 2
k =
z 2z os! + 1 z=z=a z 2za os! + a2
2
2.3 Fundamentos de Sistemas Dis retos 47

Tabla 2.1: Transformada Z de algunas se uen ias.


No g(t) g(z )
(1) Æ(k) 1
(2) Æ(k d)) z d
(3) (k) z
z 1
(4) (k d)
d z +1
z 1
(5) k(k) z
(z 1)2
(6) ak (k) z
z a
(7) ak 1 (k 1) 1
z a
(8) kak (k) az
(z a)2
(9) (k)sen!k z sin!
z 2 2z os!+1
(10) (k) os!k z (z os!)
z 2 2z os!+1
(11) (k)ak sen!k za sen!
z 2 2za os!+a2
(12) (k)ak os!k z (z a os!)
z 2 2za os!+a2
(13) k(k 1)(d(k1)! m+2) ak d+1 (1z z +11)
d
d
48 Sistemas Dis retos

Tabla 2.2: Transformada de Lapla e versus transformada Z.

No g(t) g(s) g(kT ) g(z )


(1) Æ(t) 1 Æ(k) 1
(2) (t) 1 (k) z
s z 1
(3) t 1 k Tz
s2 (z 1)2
(4) e at 1 (e aT )k z
s+a z e aT
(5) te at 1 kT (e aT )k T ze aT
(s+a)2 (z e aT )2
2 T 2 ze aT (z +e aT )
(6) t2 e at
(s+a)3 (kT )2 (e aT )k (z e aT )3
z (1 e aT )
(7) 1 e at a
s(s+a) 1 (e aT )k (z 1)(z e aT )
z (e aT e bT )
(8) e at e bt b a
(s+a)(s+b) (e aT )k (e bT )k (z e aT )(z e bT )
(9) sen!t !
s2 +!2 sen!kT zsen!T
z 2 2z os!T +1
(10) os!t s os!kT z (z os!T )
s2 +!2 z 2 2z os!T +1
(11) e at sen!t !
(s+a)2 +!2 (e aT )k sen!kT ze aT sen!T
z 2 2ze aT os!T +e 2aT
(12) e at os!t s+a (e aT )k os!kT z (z e aT os!T )
(s+a)2 +!2 z 2 2ze aT os!T +e 2aT
2.3 Fundamentos de Sistemas Dis retos 49

La forma general para obtener Z [g(s)℄ es mediante el metodo de los


residuos (derivado de la integral de onvolu ion). Si se tiene:
q(s)
g(s) =
p(s)
donde el grado del polinomio p(s) es mayor que el de q(s), y ademas si
suponemos que todas las ra es de q(s) poseen parte real negativa, enton es
g(z ) se obtiene de:
P  
(s ai) g(s)z
X
g(z ) =
i=1
z eT s s=ai
Q   
X 1 dmj 1 g(s)z
+ (mj 1)! dsmj 1 (s bj ) z eT s s=bj
m j (2.30)
j =1

donde P es el numero de polos ai no repetidos de G(s) y Q es el numero de


polos bj que se repiten on multipli idad mj .
Ejemplo 2.5
Determinar g(z) sabiendo que:
g(s) = 2
1
s (s + 1)
Para este aso P = 1, a1 = 1, Q = 1, b1 = 0, m1 = 2. Luego:
Solu ion:
 
g(z ) = (s + 1) 2
1 z
+
s (s + 1) (z eT s ) s= 1
1  d s2 1 z

= z
+ z (z 1 T )
(2 1)! ds s (s + 1) (z e ) s=0 z e
2 T s T (z 1)2
2.3.3 La Transformada Z Inversa
En el dominio ontinuo, la transformada de Lapla e g(s) = L[g(t)℄ posee
una inversa L 1[g(s)℄ = g(t) que es uni a. En ontraste, la transforma ion
Z [g(t)℄ = g(z ) posee una inversa Z 1 [g(z )℄ = g(t) que no es uni a debido a
que la se~nal dis reta no esta de nida entre muestras. En el dominio dis reto,
sin embargo, la transforma ion g(z) = Z [g(kT )℄ posee una uni a inversa
Z 1 [g(z )℄ = g(kT ).
50 Sistemas Dis retos

Una forma de determinar g(kT ) es dividir el numerador de g(z) entre su


denominador. Otra forma es expandir g(z) en fra iones par iales y obtener
la transformada Z 1 de ada uno de los terminos resultantes. Un metodo
generalizado para determinar la inversa de g(z) onsiste en fa torizar g(z)
en fa tores de primer orden; luego, usar la siguiente formula de inversion:
P
X
g(kT ) = [(z ai )g(z )z k 1 ℄z=ai
i=1
Q  
X 1 dmj 1 1
+ (mj 1)! dzmj 1 [(z bj ) g(z)z z=bj (2.31)
m j k
j =1
donde P es el numero de polos ai no repetidos de G(z) y Q es el numero
de polos bj que se repiten on multipli idad mj . Por ejemplo, determinar
g(kT ) de:
z
g (z ) =
(z 2)(z 3)(z 4)(z 1)2 (z 5)3
Para este aso: P = 3, a1=2, a2 =3, a3 =4, Q=2, b1 =1, b2=5, m1=2 y m2=3.
Por onsiguiente:
g(kT ) = [(z a1 )g(z )z k 1 ℄z=a1
+ [(z a2)g(z)zk 1 ℄z=a2 + [(z a3)g(z)zk 1 ℄z=a3
m1 1
+ (m 1 1)! dzd m1 1 [(z b1 )m1 g(z)zk 1
1 z =b1
 1 
+ (m2 1 1)! dzd m2 1 [(z b2 )m2 g(z)zk 1
m 2
z =b2
Ejemplo 2.6
Determinar g(kT ) para:
z z
(a) : g(z ) =
(z 1)(z 2) ; ( b) : g(z ) =
(z 1)2
Solu ion: Para el primer aso: P = 2, a1 = 1, a2 = 2, Q = 0. Por tanto:
 k   k 
z z
g(k) = + = 1 + 2k
z 1 z=1 z 1 z=2
Para el segundo aso: P = 0, Q = 1, b1 = 1, m1 = 1. Luego:
     
g(k) =
1 d 2 z 1 d k
1! dz (z 1) (z 1)2 z = dz (z ) = k
k
z =1 z =1
2.3 Fundamentos de Sistemas Dis retos 51

2.3.4 Fun ion de Transferen ia de Pulso


Cono iendo la fun ion de transferen ia G(s) = y(s)=u(s) de un sistema, la
orrespondiente fun ion de transferen ia de pulso se determina de la rela ion:
   
y(z ) 1 e sT 1 G(s)
u(z )
= G(z) = Z [Gr0 G(s)℄ = Z s
G(s) = (1 z )Z
s
(2.32)
Para el aso multivariable, la matriz de transferen ia de pulso G(z) se
determina empleando la rela ion (2.32) para ada elemento de la matriz de
transferen ia G(s). Para derivar la fun ion de transferen ia de pulso para el
aso de pro esos en as ada o formando lazos errados, debemos pro eder
on autela, porque no siempre es posible en ontrar una rela ion de la forma
y(z ) = G(z )u(z ). Los siguientes ejemplos ilustran los asos tratados.
Ejemplo 2.7
Dado el tiempo de muestreo T , determinar la fun ion de transferen ia de
pulso para el pro eso:
K Ts
G(s) = e ; t
Tt = dT; d = 1; 2; 3; : : :
s+a
Solu ion: Empleando la rela ion (2.32) y la tabla 2.2 obtenemos:
  1
K
G(z ) = Z [Gr0 G(s)℄ = (1 z 1 )Z
s(s + a)
(esT ) d = 1 +b1az z z d
1 1
K
a1 = e aT ; b1 = (1 eaT )
a
Ejemplo 2.8
Determinar la salida muestreada para los asos ilustrados en las guras
2.8(a)-(f).
Solu ion: En la gura (a) se tiene: y(s) = G2 (s)x (s) y x(s) = G1 (s)u(s),
donde x(s) es una se~nal auxiliar. Muestreando x(s) omo sigue:
[x(s)℄ = x (s) = [G1 (s)u(s)℄ = G1 (s)u (s)
Reemplazando ahora x (s) en y(s), y luego muestreando y(s) obtenemos
una expresion en el dominio dis reto, a saber: y (s) = G2 (s)G1 (s)u (s).
Esta ultima rela ion es equivalente a:
y(z ) = G2 (z )G1 (z )u(z )
52 Sistemas Dis retos

T T
G 1 (s) G 2 (s)
u(s) u*(s) x(s) x*(s) y(s)
(a)
T y(s)
G 1 (s) G 2 (s)
u(s) u*(s)
(b)
u(s) T
G 1 (s) G 2 (s)
x(s) x*(s) y(s)
(c)
T -Ts
1-e
D(z) G p (s)
u(s) u*(s) s y(s)

(d) G(s)
u(s) T y(s) u(s) y(s)
x(s)
G(s) G(s)
+ x*(s) +
- - T
H(s) H(s)
y*(s)
(e) (f)

Figura 2.8: Sistemas dis retos a lazo abierto y a lazo errado.


En la gura (b) se tiene: y(s) = G2 (s)G1 (s)u (s). Muestreando y obte-
nemos:
y (s) = [G2 (s)G1 (s)u (s)℄ = [G2 G1 (s)℄ u (s)
Por onsiguiente:
y(z ) = [G2 G1 (s)℄(z )u(z )
En la gura ( ) se tiene: y(s) = G2(s)x (s) y x(s) = G1 (s)u(s). Pro e-
diendo omo en los asos anteriores se obtiene:
y(z ) = G2 (z )[G1 u℄(z )

En la gura (d) tenemos: y(s) = G(s)D(z)u (s). Muestreando y(s)


obtenemos:
y(z ) = G(z )D(z )u(z )
2.3 Fundamentos de Sistemas Dis retos 53

Para la gura (e) se tiene: y(s) = G(s)x (s) y x(s) = u(s) H (s)y(s).
Reemplazando y(s) en x(s), muestreando y despejando x(s) se obtiene:
u (s)
x (s) =
1 + [GH ℄(z)
Reemplazando x(s) en y(s) = G(s)x (s) resulta:
G(z )
y (z ) =
1 + [GH ℄(z) U (z)
Para la gura (f) tenemos y(s) = G(s)u(s) G(s)H (s)y (s). Muestre-
ando y despejando y (s) se obtiene:
y(z ) =
[GH ℄(z) u(z)
1 + [GH ℄(z)
2.3.5 El Espa io de Estado Dis reto
En la se ion 2.2 vimos que la dinami a linealizada de un pro eso (sin la
presen ia de disturbios) puede ser representada en el espa io de estado por
la e ua ion (2.3):
x_ = Ax + Bu; y = Cx + Du (2.33)
La solu ion de la e ua ion de estado anterior, dado un estado ini ial x(t0 ),
es:
Z t
x(t) = eA(t t0 ) x(t0) ) + eAt e A Bu( )d
t0
Z t
= (t t0 )x(t0) + (t  )Bu( )d (2.34)
t0
donde:
1
X A (t t0 )
(t t0 ) = L 1 [(sI A) 1 ℄ = eA(t t0 ) =
 =0
!
es la matriz de transi ion. Para demostrar que efe tivamente (2.34) es una
solu ion de la e ua ion de estado (2.33), basta derivar la expresion (2.34)
on respe to al tiempo, para as obtener x_ = Ax + Bu.
54 Sistemas Dis retos

La representa ion de la e ua ion de estado en el dominio lapla iano toma


la forma:
sx(s) x(t0 ) = Ax(s) + Bu(s)
x(s) = (sI A) 1 x(t0 ) + (sI A) 1 Bu(s)
y(s) = Cx(s) + Du(s) (2.35)
Ejemplo 2.9
Dado u = 3e , determinar la respuesta de un pro eso des rito por las
t
siguientes e ua iones de estado y de salida:
x_1 = 7x1 + x2 + 2u; x_2 = 12x1 u
y = 3x1 4x2 2u
Condi iones ini iales: x1 (0) = 6, x2(0) = 1. Gra ar la respuesta y(t)
y ompararla on las respuestas obtenidas mediante dis retiza ion para los
tiempos de muestreo de 0.1 s y 0.04 s.
Solu ion: Segun la tabla 2.2: L[3e t ℄ = 3=(s + 1). Apli ando la e ua ion
(2.35) obtenemos:

A= 7 1 ; B =  2 
12 0 1
 

C= 3 4 ;

D = [ 2℄; x(0) = 1 6

x(s) = s 12 + 7 1  1  6  +  s + 7 1  1  2  u(s)
s

1  
12 s   1 
= s2 + 71s + 12 s12 s +1 7 1
6 + 2
1 s+1
3
" #
6s2 +s 2
= (s+1)( s+3)(s+4)
s2 +77s 14
(s+1)(s+3)(s+4)
"
  6s2 +s 2 #  3 
y(s) = Cx(s) + Du(s) = 4 3 (s+1)( s+3)(s+4) 2 s+1
s2 +77s 14
(s+1)(s+3)(s+4)
s2 305s + 50
= (s +221)( 6
s + 3)(s + 4) s + 1
= 297
s+1
=6
+ 767=2 + 918=3
s+3 s+4
y(t) =
297 e t + 767 e 3t + 918 e 4t ; t  0
6 2 3
2.3 Fundamentos de Sistemas Dis retos 55

Las respuestas mostradas en la gura 2.9 se realizaron on el programa


ejem2 9.m. Para T  0:04 s, las respuestas y(t) e y(kT ) pra ti amente
oin iden. Conforme T aumenta, la diferen ia entre y(t) e y(kT ) es mas
notoria, lo ual nos indi a que los sistemas muestreados dependen de T .
% ejem2_9.m COMPARACION DE RESPUESTAS A UNA ENTRADA ARBITRARIA u(t)
A = [-7 1
-12 0℄; B = [2;-1℄; C = [3 -4℄; D = [-2℄;
T1 = 0.1; % TIEMPO DE MUESTREO EN SEGUNDOS
[G,H,C,D℄ = 2dm(A,B,C ,D ,T1,'zoh'); % CONTINUA A DISCRETA
x = [-6;1℄; % CONDICION INICIAL
for k = 1:100 % CADA MUESTRA k EQUIVALE A T SEGUNDOS
u(k) = 3*exp(-k*T1); % ENTRADA
y1(k) = C*x + D*u(k);
x = G*x + H*u(k);
end
T2 = 0.04; % TIEMPO DE MUESTREO EN SEGUNDOS
[G,H,C,D℄ = 2dm(A,B,C ,D ,T2,'zoh'); % CONTINUA A DISCRETA
x = [-6;1℄; % CONDICION INICIAL
for k = 1:250 % CADA MUESTRA k EQUIVALE A T SEGUNDOS
u(k) = 3*exp(-3*k*T2); % ENTRADA
y2(k) = C*x + D*u(k);
x = G*x + H*u(k);
end
% SOLUCION y(t)
t = 0:0.1:10;
y = 297*exp(-t)/6 - 767*exp(-3*t)/2 + 918*exp(-4*t)/3;

% GRAFICOS
t=linspa e(0,10,101); t1=linspa e(0,10,100);
t2=linspa e(0,10,250);
plot(t,y,t1,y1,'--',t2,y2,'-.'); grid
ylabel('Respuesta y(t)')
xlabel('Tiempo en segundos')
print -deps -f fig2_9

Solu ion de la E ua ion de Estado Dis reta


Dis retizando la e ua ion (2.33) para un tiempo dis reto k = t=T y asu-
miendo que entre muestras la se~nal de ontrol u es onstante, enton es para
la se~nal de entrada u(t) = u(kT ), kT  (k + 1)T y para un estado ini ial
56 Sistemas Dis retos

10

−10
y

−20
Salida

−30

−40

−50
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 2.9: Respuestas y(t) para el ejemplo 2.9. Curva solida: y(t); en
trazos: y(kT1 ), T1 = 0:04 s; urva punto y raya: y(kT2 ), T2 = 0:1 s.
x(kT ) = u(kT ), kT  (k + 1)T , la e ua ion de estado se onvierte en:
Z t
x(t) = (t kT )x(t0) + u(kT ) (t  )Bd
t0
Si solo interesa la solu ion para t = (k + 1)T y empleando el ambio de
variables que sigue  = (k + 1)T  , d = d , obtenemos las siguientes
e ua iones dis retas de estado y de salida:
x(k + 1) = Gx(k) + Hu(k); y(k) = Cx(k) + Du(k) (2.36)
donde: Z T 
G = (T ) =
; H= eAT ()d B (2.37)
0
Notar que (2.36) es una e ua ion ve torial de diferen ias que puede ser
resuelta re ursivamente, omo sigue:
x(1) = Gx(0) + Hu(0)
x(2) = Gx(1) + Hu(1) = G2 x(0) + GHu(0) + Hu(1)
2.3 Fundamentos de Sistemas Dis retos 57

...
k
X
x(k) = Gk x(0) + G 1 Hu(k  ) (2.38)
 =1
donde Gk es la denominada matriz de transi ion dis reta. Una segunda alter-
nativa de solu ion de (2.36) se da en el dominio de z. Apli ando la propiedad
de desplazamiento ha ia la izquierda, podemos formular que Z [x(k)℄ = x(z)
y Z [x(k + 1)℄ = z[x(z) x(0)℄. Por tanto, de (2.36) se obtiene:
z [x(z ) x(0)℄ = Gx(z ) + Hu(z )
Despejando:
x(z ) = (zI G) 1 zx(0) + (zI G) 1 Hu(z ) (2.39)
y empleando la e ua ion de salida resulta:
y(z ) = C (zI G) 1 zx(0) + [C (zI G) 1 H + D℄u(z ) (2.40)
Comparando las e ua iones (2.38) y (2.39) veri amos que:
Gk = Z 1 [(zI G) 1 z ℄ (2.41)
La matriz de transferen ia de pulso se determina ha iendo x(0) = 0 en
(2.40):
y(z ) = Gp (z )u(z ) = [C (zI G) 1 H + D℄u(z ) (2.42)
mientras que la e ua ion ara tersti a del sistema se obtiene de:
det(zI G) = 0 (2.43)
la ual nos informa a er a de la estabilidad del sistema. Re ordar que un
sistema ontinuo es estable uando todos sus eigenvalores poseen parte real
negativa. Por onsiguiente, la zona de estabilidad para sistemas ontinuos
es el semiplano izquierdo del plano s. Desde que:
z = esT = e(+j!)T = eT ej!T = jz j\z
y omo jzj  1 uando   0 para ualquier \z, enton es la zona de esta-
bilidad en el plano z resulta un r ulo de radio unidad:
Un sistema dis reto es estable si las ra es de su e ua ion ara tersti a,
los eigenvalores, se en uentran dentro del r ulo unitario (en el dominio de
z ). En otro aso, el sistema no es estable.
58 Sistemas Dis retos

Formas Canoni as en el Espa io de Estado Dis reto


La forma general de la fun ion de transferen ia de pulso para un pro eso es:
y(z ) b0 + b1 z 1 +    + bn z n b0 z n + b1 z n 1 +    + bn
Gp (z ) = = = zn + a zn 1 +    + a
u(z ) 1 + a1 z 1 +    + an z n 1 n
(2.44)
y su orrespondiente e ua ion de diferen ias toma la forma:
y(k +n)+a1 y(k +n 1)+  +any(k) = b0 u(k +n)+b1u(k +n 1)+  +bnu(k)
(2.45)
Conforme a la sele ion de las variables de estado, un pro eso posee diversas
representa iones en el espa io de estado. Las formas anoni as mas nota-
bles, on rela ion a la fun ion de transferen ia de pulso dada en (2.44), se
des riben a ontinua ion.
Primera Forma Canoni a Controlable:
2 32 3 2 3
0 1 0  0 x1 (k ) 0
6
6 0 0 1  0 76
76 x2 (k ) 7 6
7 6 0 7
7
x(k + 1) = 6
6
.. .. .. .. 76
76
.. 7 6
7+6
.. 7
7 u(k )
6 . . . . 76 . 7 6 . 7
4 0 0 0  1 54 xn 1 (k ) 5 4 0 5
an an 1 an 2  a1 xn (k ) 1
(2.46)
 
y (k ) = bn an b0 bn 1 an 1 b0  b1 a1 b0 x(k ) + b0 u(k ) (2.47)

Segunda Forma Canoni a Controlable:


2 32 3 2 3
0 1 0  0 x1 (k ) 1
6
6 0 0 1  0 76
76 x2 (k ) 7 6
7 6 2 7
7
x(k + 1) = 6
6
.. .. .. .. 76
76
.. 7 6
7+6
.. 7
7 u(k )
6 . . . . 76 . 7 6 . 7
4 0 0 0  1 54 xn 1 (k ) 5 4 n 1 5
an an 1 an 2  a1 xn (k ) n
(2.48)
 
y (k ) = 1 0  0 x(k ) + 0 u(k ) (2.49)

donde: 0 = b0, 1 = b1 a1 b0 , 2 = b2 a1 b1 a2 0 , et . Generalizando:


n = bn a1 b1n    an 1 1 an 1 1
2.3 Fundamentos de Sistemas Dis retos 59

Ter era Forma Canoni a Controlable:


2 32 3 2 3
a1 a2  an 1 an x1 (k ) 1
6
6 1 0  0 0 76
76 x2 (k ) 7 6
7 6 0 7
7
x(k + 1) = 6
6 0 1  0 0 76
76
..
.
7 6
7+6
..
.
7
7 u(k ) (2.50)
6 .. .. .. .. 76 7 6 7
4 . . . . 54 xn 1 (k ) 5 4 0 5
0 0  1 0 xn (k ) 0
 
y (k ) = b1 a1 b0 b2 a2 b0  bn an b0 x(k ) + b0 u(k ) (2.51)

Primera Forma Canoni a Observable:


2 32 3 2 3
0 0  0 0 an x1 (k ) bn an b0
6
6 1 0  0 0 an 1 76
76 x2 (k ) 7 6
7 6 bn 1 an 1 b0 7
7
x(k + 1) = 6
6
.. .. .. .. .. 76
76
.. 7 6
7+6
.. 7
7 u(k )
6 . . . . . 76 . 7 6 . 7
4 0 0  1 0 a2 54 xn 1 (k ) 5 4 b2 a2 b0 5
0 0  0 1 a1 xn (k ) b1 a1 b0
 
(2.52)
y (k ) = 0 0  0 1 x(k ) + b0 u(k ) (2.53)

Segunda forma anoni a observable:


2 32 3 2 3
a1 1 0  0 0 x1 (k ) b1 a1 b0
6
6 a2 0 1  0 0 76
76 x2 (k ) 7 6
7 6 b2 a2 b0 7
7
x(k + 1) = 6
6
.. .. .. .. .. 76
76
.. 7 6
7+6
.. 7
7 u(k )
6 . . . . . 76 . 7 6 . 7
4 an 1 0 0  0 1 54 xn 1 (k ) 5 4 bn 1 an 1 b0 5
an 0 0  0 0 xn (k ) bn an b0
 
(2.54)
y (k ) = 1 0  0 0    x(k ) + b0 u(k ) (2.55)

Forma Canoni a Diagonal (eigenvalores no repetidos)


2 3
x1 (k + 1) 2 32 3 2 3
6 x2 (k + 1) 7 p1 0  0 x1 (k ) 1
6
6 ..
7
7
6 0 p2  0 76 x2 (k ) 7 6 1 7
=6
76 7 6 7
6 . 7 6 .. .. .. 76 .. 7+6 .. 7 u(k ) (2.56)
6 7 4 . . . 54 . 5 4 . 5
4 xn 1 (k + 1) 5
xn (k + 1)
0 0  pn xn (k ) 1
 
y (k ) = 1 2  n x(k ) + b0 u(k ) (2.57)
60 Sistemas Dis retos

donde los pi son los eigenvalores no repetidos de Gp(z) = y(z)=u(z), y:


 
y (z ) Xn
i y(z )
u(z )
= b0 +
z p
; i = zlim
!p u(z ) (z p i ) (2.58)
i=1 i i

Forma Canoni a de Jordan (eigenvalores repetidos).- En la subse ion 1.2.3


vimos que si la matriz de estado A de orden n de un pro eso on fun ion de
transferen ia de pulso G(z) = y(z)=u(z) posee r eigenve tores linealmente
independientes (es de ir, el rango de A es r), enton es la forma de Jordan es
una matriz J que posee n r unos sobre su diagonal, on todos los demas
elementos iguales a ero. Por itar un ejemplo, si A, de orden n = 8, ontiene
un eigenvalor p1 de multipli idad 3, otro eigenvalor p2 de multipli idad 2,
otros tres eigenvalores distintos, y su rango es 6, enton es la forma de Jordan
presenta 8 6 = 2 unos sobre la diagonal. Es de ir:
p1 0 0 0 0 0 0 0 x1 (k) 03
2 32 3 2
6 0 p1 1 0 0 0 0 0 7 6 x2 (k ) 7 6 0 7
6 76 7 6 7
6 0 0 p1 0 0 0 0 0 7 6 x3 (k ) 7 6 1 7
6 76 7 6 7
6 0 0 0 p2 1 0 0 0 7 6 x4 (k ) 7 6 0 7
x(k + 1) = 6 0 0 0 0 p 0 0 0 7 6 x (k) 7 + 6 1 7
6 7 6 7 6
7 u(k )
6 2 76 5 7 6 7
6 0 0 0 0 0 p6 0 0 7 6 x6 (k ) 7 6 1 7
6 76 7 6 7
4 0 0 0 0 0 0 p
7 0 5 4 x7 (k) 5 4 1 5
0 0 0 0 0 0 0 p8 x8 (k) 1
  (2.59)
y(k) = 1 2 3 4 5 6 7 8 9 x(k) + b0 u(k) (2.60)
y(z ) 1 2 3 4 5 X8
u(z )
= b0 + + + +
(z p1)3 (z p1)2 z p1 (z p2)2 z p2 i=6 z pi + + i

(2.61)
Ejemplo 2.10
La fun ion de transferen ia de pulso de un pro eso se modela omo:
P6
y(z ) =0 bi z i
= i
u(z ) 1 + P6i=1 ai z i
donde b0 = 1, b1 = 2:8, b2 = 0:65, b3 = 6:8, b4 = 4:25, b5 = 1:3,
b6 = 1:2, a1 = 1:3, a2 = 1:69, a3 = 0:345, a4 = 0:49, a5 = 0:02 y
a6 = 0:04. Determinar la estabilidad del pro eso. Determinar la e ua ion
2.3 Fundamentos de Sistemas Dis retos 61

de estado y la e ua ion de salida para la segunda forma anoni a ontrolable


y para la primera forma anoni a observable. Demuestre que la matriz de
estado de ambas formas anoni as poseen los mismos eigenvalores y que
ambas representa iones generan la misma fun ion de transferen ia de pulso.
Solu ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_10.m FORMAS CANONICAS
lear all
b0=1; b1=-2.8; b2=-0.65; b3=6.8; b4=-4.25; b5=-1.3; b6=1.2;
a1=1.3; a2=-1.69; a3=-0.345; a4=0.49; a5=0.02; a6=-0.04;
num = [b0 b1 b2 b3 b4 b5 b6℄;
rnum = roots(num); % RAICES DEL POLINOMIO DEL NUMERADOR
% rnum: -1.5, 2, 1, 1, 0.8, -0.5
den =[1 a1 a2 a3 a4 a5 a6℄;
rden = roots(den); % RAICES DEL POLINOMIO DEL DENOMINADOR
% roots: 0.5, 0.5, 0.5, -0.4, -0.4, -2
% EL PROCESO ES INESTABLE DEBIDO A LAS RAICES -0.4, -0.2 Y -2

% SEGUNDA FORMA CANONICA CONTROLABLE:


% x(k+1) = G *x(k) + H *u(k); y(k) = C *x(k) + D *u(k)
beta0 =b0; %
beta1 = b1-a1*beta0;
beta2 = b2-a1*beta1-a2*beta0;
beta3 = b3-a1*beta2-a2*beta1-a3*beta0;
beta4 = b4-a1*beta3-a2*beta2-a3*beta1-a4*beta0;
beta5 = b5-a1*beta4-a2*beta3-a3*beta2-a4*beta1-a5*beta0;
beta6 = b6-a1*beta5-a2*beta4-a3*beta3-a4*beta2-a5*beta1-a6*beta0;
G = [0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
-a6 -a5 -a4 -a3 -a2 -a1℄;
H = [beta1
beta2
beta3
beta4
beta5
beta6℄;
C = [1 0 0 0 0 0℄; D =[beta0℄;
% PRIMERA FORMA CANONICA OBSERVABLE:
% x(k+1) = Go*x(k) + Ho*u(k); y = Co*x(k) + Do*u(k)
Go = [0 0 0 0 0 -a6
62 Sistemas Dis retos

1 0 0 0 0 -a5
0 1 0 0 0 -a4
0 0 1 0 0 -a3
0 0 0 1 0 -a2
0 0 0 0 1 -a1℄;
Ho = [b6-a6*b0
b5-a5*b0
b4-a4*b0
b3-a3*b0
b2-a2*b0
b1-a1*b0℄;
Co = [0 0 0 0 0 1℄; Do=[b0℄;
[num ,den ℄ = ss2tf(G ,H ,C ,D );
[numo,deno℄ = ss2tf(Go,Ho,Co,Do);
% SE COMPRUEBA QUE: num=num =numo, den=den =deno, eig(G )=eig(Go)

Ejemplo 2.11
Cono idas las matri es G, H , C y D (ver programa ejem2 11.m), determine
la e ua ion de estado y la e ua ion de salida de su forma anoni a de Jordan.
Demuestre que la matriz de estado de Jordan y la matriz de estado G poseen
los mismos eigenvalores y que ambas representa iones generan la misma
fun ion de transferen ia de pulso.
Solu ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_11.m FORMAS CANONICAS DE JORDAN
lear all
% x(k+1) = G*x(k) + H*u(k); y(k) = C*x(k) + D*u(k);
G = [0 1 0 3
0 -1 1 1
0 0 0 1
0 0 -1 -2℄;
H = [1;0;-4;0℄;
C = [1 0 0 0℄; D = [-2℄;
[num,den℄ = ss2tf(G,H,C,D);
eigG = eig(G); % eigG = EIGENVALORES DE G: -1, -1, -1, 0
rangG = rank(G); % rankA = 3 => G POSEE 3 VECTORES PROPIOS
% LINEALMENTE INDEPENDIENTES => 4-3=1 (UN 1 SOBRE LA DIAGONAL)
[ ,p,k℄ = residue(num,den); % EXPANSION EN FRACCIONES PARCIALES
% = [-8.0000 -8.0000 0.0000 9.0000℄';
% p = [-1.0000 -1.0000 -1.0000 0℄;
% k = -2;
1= (1); 2= (2); 3= (3); 4= (4);
2.3 Fundamentos de Sistemas Dis retos 63

p1=p(1); p2=p(2); p2=p(3); p2=p(4);


% x(k+1) = Gj*x(k) + Hj*u(k); y = Cj*x(k) + Dj*u(k)
Gj = [p1 0 0 0
0 p1 1 0
0 0 p1 0
0 0 0 p2℄;
Hj = [0;1;1;1℄;
Cj = [ 1 2 3 4℄; Dj = [k℄;
[numj,denj℄ = ss2tf(Gj,Hj,Cj,Dj);
eigGj = eig(Gj); % EIGENVALORES DE Gj: -1, -1, -1, 0
% SE COMPRUEBA QUE: num=numj, den=denj, eigG=eigGj

Pro esos Dis retos on Tiempo Muerto


En el dominio ontinuo, la transformada de Lapla e del tiempo muerto es
e T s . Si Tt = dT , d = 1; 2; : : : y dado que eT s = z , enton es en el dominio
t

dis reto el tiempo muerto toma la forma z d . Este tiempo muerto puede
existir en la entrada, en la salida o entre las variables de estado del pro eso,
tal omo se ilustra a ontinua ion:
x(k + 1) = Ax(k dx ) + Bu(k du )
y(k + dy ) = Cx(k)
donde los tiempos muertos dk , du y dy toman valores enteros positivos.
Si la rela ion d = Tt =T no fuera un entero (o tambien si lo fuera), resulta
util emplear la aproxima ion de Pade para el tiempo muerto:
1
e T s = 1 sTt + (sTt )2
t
1 (sTt )3 +    = num(s)
!2 !3 den(s)
Con una aproxima ion de ter er orden, podemos a omodar retardos de fase
de hasta 200o (3.5 rad) [11℄, lo ual es su iente para apturar el efe to del
tiempo muerto en mu has apli a iones. Tal aproxima ion tiene la forma:
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts  =
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Ejemplo 2.12
Comparar la respuesta a un es alon del pro eso:
y(s) 10 e 5:8s
=
u(s) 2s + 1
64 Sistemas Dis retos

on respe to a la respuesta originada por el pro eso uando el tiempo muerto


se aproxima por una rela ion de Pade de ter er orden. Luego determinar la
e ua ion de estado aproximada del pro eso.
Solu ion: El programa ejpades.m en SIMULINK ( gura 2.10) resuelve el
problema planteado y los resultados se ilustran en la gura 2.11. Para
realizar la simula ion usando el programa ejpades.m, eje utar previamente
el programa ejpade.m, el ual tambien determina la e ua ion de estado y
las fun iones de transferen ia aproximadas del pro eso, tanto en el dominio
ontinuo omo en el dominio dis reto.
% ejpade.m PROCESO CON TIEMPO MUERTO D
lear all
Tt=5.8; % TIEMPO MUERTO
% APROXIMACION DE TERCER ORDEN DEL TIEMPO MUERTO D:
numD=[-Tt^3/120 Tt^2/10 -Tt/2 1℄;
denD=[Tt^3/120 Tt^2/10 Tt/2 1℄;
% PROCESO PARCIAL
nump=[0 10℄; denp=[2 1℄;
% PROCESO APROXIMADO
num= onv(numD,nump);
den= onv(denD,denp);
[A,B,C,D℄=tf2ss(num,den);
% PROCESO DISCRETO APROXIMADO
T=0.5;
[numd,dend℄= 2dm(num,den,T,'zoh');
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
% GRAFICOS
load yd; load yda;
t=linspa e(0,11,size(yd,1));
plot(t,yd,t,yda,'--'), grid
xlabel('Tiempo en segundos')
ylabel('Respuestas al es alon')
print -deps -f ejpade
print -deps -s ejpades

2.3.6 Controlabilidad y Observabilidad


Con epto de Controlabilidad
Un pro eso dinami o lineal se di e que es ontrolable, si es que existe un
ve tor u(k) realizable y apaz de trasladar el estado del pro eso desde un
estado ini ial x(0) ha ia ualquier estado nal x(N ) en un tiempo nito N .
2.3 Fundamentos de Sistemas Dis retos 65

10 yd_
Mux
2s+1
u Proceso parcial Tiempo yd Graph
muerto yd Mux
yda
10 −Tt^3/120s3+Tt^2/10.s 2−Tt/2s+1 yda_
yda
2s+1 Tt^3/120.s3+Tt^2/10.s 2+Tt/2.s+1
Proc. parcial Aproximación del tiempo muerto

Figura 2.10: Compara ion de las respuestas a un es alon del pro eso y de
su modelo aproximado mediante una rela ion Pade de ter er orden (ejemplo
2.12).
12

10

8
Respuestas al escalóon

−2
0 2 4 6 8 10 12
Tiempo en segundos

Figura 2.11: Compara ion de las respuestas a un es alon del pro eso ( urva
solida) y de su modelo aproximado ( urva en trazos) mediante una rela ion
Pade de ter er orden (ejemplo 2.12).
66 Sistemas Dis retos

Despejando u(k) de la e ua ion (2.38) para k = N se obtiene:


u(N ) = M 1 [x(N ) GN x(0)℄
M = [H GH : : : GN 1 H ℄
donde det(M ) 6= 0. M es ono ida omo la matriz de ontrolabilidad, la ual
puede ontener olumnas o las linealmente dependientes. Por onsiguiente,
para que un pro eso sea ompletamente ontrolable, lo que quiere de ir, para
que su matriz de ontrolabilidad solo posea las o olumnas independientes,
se debe umplir que:
rango(M ) = rango([H GH : : : GN 1 H ℄) = n (2.62)
donde n es el orden del pro eso. Para N < n no existe solu ion para u, y
para N > n la solu ion no es uni a.
La determina ion de la ontrolabilidad ompleta en el espa io de estado
ontinuo es similar. Basta reemplazar en M , A por G y B por H .
Con epto de Observabilidad
Un pro eso lineal dinami o on salida y(k) se denomina observable si algun
estado x(k) puede ser obtenido a partir de un numero nito de salidas
y(k); y(k 1); : : : ; y(k n). Consideremos la siguiente e ua ion de salida:
y(k) = Cx(k)
Empleando la e ua ion de estado x(k + 1) = Gx(k); +Hu(k), podemos
dedu ir que:
y(k) = Cx(k)
y(k + 1) = CGx(k) + CHu(k)
y(k + 2) = CG2 x(k) + CGHu(k) + CHu(k + 1)
...
y(k + n) = CGn 1 x(k) + [0; CH; CGH; : : : ; CGn 2 H ℄Un (2.63)
donde (asumiendo que los ve tores de entrada son ompletamente ono idos)
Un = [u(k + n 1) : : : u(k + 1) u(k)℄T
2.3 Fundamentos de Sistemas Dis retos 67

La e ua ion (2.63) toma la forma:


Yn = Nx(k) + SUn (2.64)
donde:
Yn = [y(k) y(k + 1) : : : y(k + n 1)℄T
N = [C CG : : : CGn 1 ℄T = [C T GT C T : : : (GT )n 1 C T ℄
2
0 0 0 0 0 3
6 0 0 0 0 CH 77
S = 6 6 .. . . ... 75
4 . .
0 CH CGH : : : CGn 2H
Despejando, el ve tor in ognita se obtiene de:
x(k) = N 1 [Yn SUn ℄ (2.65)
siempre que det(N ) 6= 0. Luego, para que el pro eso dinami o sea observa-
ble, la matriz de observabilidad N debe umplir:
rango[N ℄ = n (2.66)
La determina ion de la observabilidad ompleta en el espa io de estado
ontinuo es similar. Basta reemplazar A por G en la expresion de N .
Ejemplo 2.13
Determine si los pro esos sistema hidrauli o y pendulo des ritos en los ejem-
plos 2.1 y 2.2 son ompletamente ontrolables y observables.
Solu ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_13.m CONTROLABILIDAD Y OBSERVABILIDAD
lear all
% SISTEMA HIDRAULICO
Area = 9; gamma = 0.4; rho = 1.23; g = 9.81;
Q0e = 3; % FLUJO DE ENTRADA EN EQUILIBRIO
H1e = Q0e^2/(gamma*rho*g); % NIVEL DE EQUILIBRIO
H2e = H1e;
a11 = -gamma*sqrt(rho*g)/(2*Area*sqrt(H1e)); a21=-a11; a22=a11;
A = [a11 0
a21 a22℄; % n = 2
68 Sistemas Dis retos

B = [1
0℄;
C = [0 1℄; D = [0℄;
M = [B A*B℄; % MATRIZ DE CONTRABILIDAD
rangM = rank(M);% rangM = 2 = n => COMPLETAMENTE CONTROLABLE
N = [C' A'*C'℄; % MATRIZ DE OBSERVABILIDAD
rangN = rank(N);% rangN = 1 < 2 => NO ES COMPLETAMENTE OBSERVABLE

% PROCESO PENDULO
Bp = 1.3366; Lo = 1.635; Mo = 0.5; g = 9.81;
AP = [0 1
-g/Lo^2 -Bp/(Mo*Lo^2)℄; % n = 2
BP = [0
1/(Mo*Lo^2)℄; CP = [1 0℄; DP = [0℄;
MP = [BP AP*BP℄; % MATRIZ DE CONTRABILIDAD
rangMP = rank(MP); % rangMP = 2 = n => COMPLETAMENTE CONTROLABLE
NP = [CP' AP'*CP'℄;% MATRIZ DE OBSERVABILIDAD
rangNP = rank(NP); % rangNP = 2 = n => COMPLETAMENTE OBSERVABLE
Cap
tulo 3

Modelado de Pro esos

Este aptulo presenta la deriva ion de modelos dinami os de pro esos ontinuos
on su orrespondiente linealiza ion y dis retiza ion. Tambien se explora la
respuesta de los pro esos a entradas tpi as y se determina las ara tersti as de
ontrolabilidad y observabilidad de los mismos, empleando omo herramienta de
al ulo la omputadora. Las tres primeras se iones se dedi an a los pro esos
uyos sistemas de ontrol avanzado van a ser implementados en tiempo real.
Tales pro esos son: el pendulo invertido, la grua-puente y el servomotor de
orriente ontinua sujeto a argas no lineales. En su se ion problemas resueltos
se presenta la modela ion de diversos pro esos, uyos sistemas de ontrol seran
dise~nados en los aptulos siguientes. La ultima se ion propone la deriva ion
de modelos dinami os de otros pro esos. Todos los ar hivos orrespondientes a
los ejer i ios y problemas desarrollados en este aptulo se pueden des argar del
sitio: http:// ee.uni.edu.pe/728681F.

3.1 Modelo del Pro eso Pendulo Invertido


El pro eso pendulo invertido onsiste de un pendulo montado sobre un arro
que se desplaza en forma horizontal. Este arro esta impulsado por un
servomotor D.C. a traves de un sistema de poleas, tal omo se muestra en la
gura 3.1. Para mayor laridad, el pro eso pendulo invertido se ha separado
en dos subsistemas: el subsistema onformado por el arro y el pendulo, que
se trata en la subse ion 3.1.1, y el subsistema onformado por el motor y
el sistema de poleas, que se desarrolla en la subse ion 3.1.2.
70 Modelado de Pro esos

+ Fuerza de
u control y’
-
Servomotor
D.C. y
θ Pendulo

z F

Carro

Figura 3.1: Pro eso pendulo invertido.


3.1.1 Modelo del Subsistema Carro-Pendulo
El subsistema arro-pendulo se ilustra en la gura 3.2 y esta onformado por
un arro y una varilla. De la gura 3.2 podemos observar que los entros de
gravedad de la varilla y de la esfera son:
y y’
z

11
00
00
11
00
11
l v /2 00
11

me g
θ
mvg lv
le
z’
0
z
P
F

Figura 3.2: Subsistema arro-pendulo.


ze = z + lesen  (3.1)
l
zv = z + v sen  (3.2)
2
3.1 Modelo del Pro eso Pendulo Invertido 71

Para modelar el sistema me ani o empleamos la segunda ley de Newton


para los movimientos lineal y rota ional. Para el movimiento lineal, di ha
ley estable e que para un sistema de N part ulas:
N
X d2 XM
mi 2 ~ri = F~j (3.3)
i=1
dt j =1

donde mi es la masa de la i-esima part ula, ~ri es la posi ion del entro de
masa de la i-esima part ula y F~j es la j-esima fuerza apli ada al sistema de
part ulas. Apli ando la e ua ion (3.3) a nuestro sistema (en la dire ion z)
obtenemos:
d2 d2 d2
m 2 z + me 2 ze + mv 2 zv = F (3.4)
dt dt dt
Luego, sustituyendo ze (e ua ion (3.1)) y zv (e ua ion (3.2)) en la e ua ion
(3.4) obtenemos:
d2 d2 d2 l
m 2 z + me 2 (z + le sen ) + mv 2 (z + v sen ) = F (3.5)
dt dt dt 2
y desarrollando las derivadas resulta:
(m + me + mv )z (me le + mv l2v )(sen )+ _2(mele + mv l2v )( os ) = F (3.6)
Para ompletar el modelo, utilizamos la segunda ley de Newton apli ada al
movimiento rotatorio alrededor del punto P del arro. Esta ley estable e que
para un sistema de N part ulas en movimiento rota ional respe to a un sis-
tema de referen ia iner ial, sometidas a M torques externos perpendi ulares
al plano de giro, se umple que:
N
X d2 XM
Ji 2 i = j (3.7)
i=1
dt j =1

donde j es el j-esimo torque externo, Ji es el momento de iner ia de la


i-esima part ula respe to al punto P y i es el angulo re orrido por la i-
esima part ula alrededor del punto P. Para apli ar esta ley al movimiento
rotatorio de la varilla alrededor del punto P utilizamos la ter era ley de
Newton, la ual nos permite remplazar el efe to de la a elera ion del sistema
de referen ia Z 0 Y 0 por una fuerza miz apli ada en el entro de gravedad de
72 Modelado de Pro esos

las part ulas i de di ho sistema, pero en dire ion opuesta a la a elera ion.
Empleando la e ua ion (3.7) en la gura 3.2 obtenemos:
(Je +Jv ) = meg(sen)le +mv g(sen ) l2v mez( os )le mv z( os ) l2v (3.8)
y ordenando:
(mele + mv l2v )g(sen ) (mele + mv l2v )z ( os ) = (Je + Jv ) (3.9)
donde:
l2
Je = me le2 ; Jv = mv v (3.10)
3
3.1.2 Modelo del Subsistema Motor-Polea
El subsistema motor-polea esta representado en la gura 3.3. El modelo del
sistema ele tri o se en uentra apli ando la ley de voltajes de Kir hho a
la parte ele tri a de di ha gura. Ademas, debido a que la indu tan ia en
servomotores D.C. de magneto permanente es peque~na, podemos despre iar
su efe to en el modelo. As obtenemos:
Ra θm
+
u Va Vb Jo rp
-
La Jm F
Bm Bo

Figura 3.3: Subsistema motor-polea.


Ra ia + Vb = KA u = Va (3.11)
El voltaje ontraele tromotriz esta representado por:
Vb = Kb _m (3.12)
Apli ando la segunda ley de Newton para el movimiento rotatorio en el
sistema me ani o del servomotor, obtenemos:
Tm = Jeq m + Beq _m + n F rp (3.13)
3.1 Modelo del Pro eso Pendulo Invertido 73

donde:
Jeq = Jm + n2 (Jo + Jp ) (3.14)
Beq = Bm + n2 Bo (3.15)
El torque produ ido en el eje del servomotor viene dado por la e ua ion:
Tm = Km ia (3.16)
Sustituyendo la e ua ion (3.16) en (3.13) y despejando ia se obtiene:
J B nr
ia = eq m + eq _m + p F (3.17)
Km Km Km
Luego, substituyendo las e ua iones (3.17) y (3.12) en (3.11) y despe-
jando F obtenemos:
 
Km KA Jeq  Beq Km Kb _
F = Ra n rp
u 
n rp m
+ 
n rp Ra n rp m
(3.18)
Para transformar el desplazamiento angular del servomotor en el desplaza-
miento horizontal del arro en fun ion del radio de la polea y del fa tor de
redu ion del servomotor, empleamos:
z
m = (3.19)
nr p

Substituyendo la ultima rela ion en (3.18), obtenemos la e ua ion general


del subsistema servomotor, omo sigue:
 
Km KA Jeq Beq Km Kb
F = Ra n rp
u
n2 rp2
z +
n rp Ra n2 rp2
2 2 z_ (3.20)
Las e ua iones (3.6), (3.9) y (3.20) representan el modelo matemati o del
pro eso pendulo invertido ontrolado por la orriente de armadura. Tales
e ua iones pueden ser es ritas en forma ompa ta:
M1 z M2 (sen )_ 2 + M2 ( os ) F = 0 (3.21)
M2 g(sen ) M2 z( os ) J1  = 0 (3.22)
F = Kx KA u J2 z Bx z_ (3.23)
74 Modelado de Pro esos

donde:
lv
M1 = m + me + mv ; M2 = mele + mv (3.24)
2
J
J1 = Je + Jv ; J2 = 2eq2 (3.25)
n rp

Km B KK
Kx = ; Bx = 2eq2 + 2b 2 m (3.26)
Ra nrp n rp n rp Ra

3.1.3 Representa ion en el Espa io de Estado


Las e ua iones obtenidas pueden ser representadas en el espa io de estado
mediante la siguiente asigna ion de variables de estado:
x1 =  (3.27)
x2 = _ (3.28)
x3 = z (3.29)
x4 = z_ (3.30)
Es ribiendo di has e ua iones en el espa io de estado, obtenemos:
2 3
2
x_ 1
3 x2
6 M2 (sin x1 )( os x1 )x22 Bx ( os x1 )x4 (M1 +J2 )g(sin x1 )+Kx ( os x1 )KA u 7
6
6 x_ 2 7
7 =
6
6 (M2 ( os2 x1 ) (M1 +J2 )J1 )=M2 7
7
4 x_ 3 5 6
4 x4 7
5
x_ 4 M22 g(sin x1 )( os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 ( os2 x1 ) (M1 +J2 )J1
(3.31)
y puesto que en nuestro sistema tenemos omo salidas disponibles el despla-
zamiento angular de la varilla y el desplazamiento del arro, la e ua ion de
salida toma la forma siguiente:
y = Cx (3.32)
donde:  
1 0 0 0
C= 0 0 1 0 (3.33)
3.1 Modelo del Pro eso Pendulo Invertido 75

3.1.4 Obten ion del Modelo Lineal


Para poder analizar la e ua ion matri ial (3.31) empleando te ni as de on-
trol lineal, es ne esario obtener un modelo lineal del pro eso. Suponiendo
que las variables de estado se desvan levemente on respe to a una ondi-
ion de opera ion (un estado de equilibrio, por ejemplo), la aproxima ion
lineal se puede obtener mediante la expansion en series de Taylor, despre-
iando los terminos de orden superior. Consideremos que nuestro pro eso
sea representado por la siguiente expresion:
x_ = f(x; u) (3.34)
x_ =  x1 x2 x3 x4 T
f =  f1 f2 f3 f4 T =  x_ 1 x_ 2 x_ 3 x_ 4 T
en donde u es la se~nal de ontrol, x_ es el ve tor de estados y f es una fun ion
ve torial de variable ve torial. La expansion en serie de Taylor alrededor del
punto de opera ion (x; u) resulta:
 
f (x; u) f (x; u)
x_ = f (x; u) + (x x) + ( u u) +
x u
1  f (x; u) (x x)2 + 2  2 f (x; u) (x x)(u u) +  2 f (x; u) (u u)2 +   
 2

2! x2 xu u2


(3.35)
Si la varia ion de las variable residuales (x x ) y (u u) es peque~na, enton es
se pueden despre iar los terminos de orden superior. En el aso que nos
o upa, el punto de opera ion (o estado de equilibrio) se ubi a alrededor del
origen: x = [0; 0; 0; 0℄T = 0 y u = 0, enton es la e ua ion (3.34) se puede
es ribir omo: f (0; 0) f (0; 0)
x_ = f (0; 0) + x+ u (3.36)
x u
Dado que f (x; u) es una fun ion de variable ve torial, su derivada par ial
on respe to a x y u viene a representar la opera ion ja obiana (ver ejemplos
2.1 y 2.2). Enton es, la e ua ion (3.35) se onvierte en:
2 3
f1 (0;0) f1 (0;0) f1 (0;0) f1 (0;0) 2 f (0;0)
1 3
x1 x2 x3 x4 u
6
6 f2 (0;0) f2 (0;0) f2 (0;0) f2 (0;0) 7
7 6 f2 (0;0) 7
x_ = f (0; 0) + 6
6
x1
f3 (0;0)
x2
f3 (0;0)
x3
f3 (0;0)
x4
f3 (0;0)
7x
7 + 6
6 f3u
(0;0)
7
7u
4 x1 x2 x3 x4 5 4 u 5
f4 (0;0) f4 (0;0) f4 (0;0) f4 (0;0) f4 (0;0)
x1 x2 x3 x4 u
(3.37)
76 Modelado de Pro esos

Luego, apli ando la ultima expresion a la e ua ion (3.31), obtenemos el


siguiente modelo lineal para el sistema de pendulo invertido:
x_ = Ax + Bu (3.38)
donde: 2 3
0 1 0 0
6 (M1 +J2 )M2 g
6 (M1 +J2 )J1 M 2 0 0 (M1 +J2 )J12 M 2 7
B Mx 7
A=6 6
02
2
0 0 1
2 7
7 (3.39)
4 5
(M1 +J2 )J1 M22 0 0 (M1 +J2 )J1 M22
M2 g J1 B x

2
0 3
6 K M2 K
x A7
B=6 (M1 +J2 )J1 M22 7 (3.40)
6
4 0 7
5
J1 Kx KA
(M1 +J2 )J1 M22

3.1.5 El Modelo en el Espa io de Estado Dis reto


La obten ion del modelo del pro eso en el espa io de estado dis reto ya ha
sido explorada en la subse ion 2.3.5. En resumen, las e ua iones de estado
en tiempo ontinuo del pro eso estan dadas por:
x_ (t) = Ax(t) + Bu(t) (3.41)
y(t) = Cx(t) + Du(t) (3.42)
La solu ion de tales e ua iones es:
Z t
x(t) = (t t0 )x(t0 ) + (t  )Bu( )d (3.43)
t0
donde t0 es el tiempo ini ial, y:
X1 Ak (t t )k
(t t0 ) = eA(t t0 ) = 0 (3.44)
k=0
k !
El modelo en tiempo dis reto esta dado por:
x(kT + T ) = Gx(kT ) + Hu(kT ) (3.45)
donde T es el tiempo de muestreo. Las matri es G y H se obtienen de:
G = (T ) (3.46)
3.2 Modelo del Pro eso Grua-Puente 77
Z T 
H= ()(d) B (3.47)
0
La e ua ion de salida en tiempo dis reto viene a ser:
y(kT ) = Cx(kT ) + Du(kT ) (3.48)
en donde C y D son matri es onstantes que no dependen del perodo de
muestreo T ; por onsiguiente, son las mismas que para el aso ontinuo.
3.2 Modelo del Pro eso Gr
ua-Puente
El modelado del pro eso grua-puente es similar al aso del pendulo inver-
tido. La uni a variante es que en este aso el pendulo debe apuntar ha ia
abajo, tal omo se muestra en la gura 3.4. Al igual que en el aso del
pendulo invertido, para mayor fa ilidad, se ha subdividido el pro eso en dos
subsistemas: arro-varilla y motor-polea.
+ Fuerza de
u control
-
Servomotor
D.C. y

z F

Carro

θ
’ puente
Grua
y’

Figura 3.4: Pro eso grua-puente.

3.2.1 Modelo del Subsistema Carro-Varilla


El subsistema arro-varilla esta representado en la gura 3.5. De di ha gura
podemos observar que los entros de gravedad de la varilla y de la esfera
son:
ze = z le sen  (3.49)
78 Modelado de Pro esos

y y’
z

P z’
0
F z
lv
θ
2
le
11
00
00
11
00 m v g
11 lv

me g

Figura 3.5: Subsistema arro-varilla de la grua-puente.


lv
zv = z
2 sen  (3.50)
Apli ando la ley de Newton para el movimiento lineal dada por la e ua ion
(3.3) en la dire ion z, obtenemos:
d2 d2 d2
m 2 z + me 2 ze + mv 2 zv = F (3.51)
dt dt dt
Luego, sustituyendo ze y zv en fun ion de z:
d2 d2 d2 l
m 2 z + me 2 (z le sen ) + mv 2 (z v sen ) = F (3.52)
dt dt dt 2
y desarrollando las derivadas, tenemos:
(m +me+mv )z +(mele +mv l2v )(sen )_2 (mele +mv l2v )( os ) = F (3.53)
Ahora, apli ando en la gura 3.5 la segunda ley de Newton para el movimien-
to rotatorio dada por la e ua ion (3.7) alrededor del punto P:
(Je + Jv ) = mez( os )le + mv z( os ) l2v meg(sen)le mv g(sen ) l2v
(3.54)
3.2 Modelo del Pro eso Grua-Puente 79

y reordenando, obtenemos:
(mele + mv l2v )z( os ) (mele + mv l2v )g(sen ) = (Je + Jv ) (3.55)
donde:
l2
Je = me le2 ; Jv = mv v
3
3.2.2 Modelo del Subsistema Motor-Polea
Este subsistema es el mismo que se desarrollo para el pendulo invertido en
la subse ion 3.1.2, e ua ion (3.20):
 
Km KA Jeq Beq Km Kb
F= u z + z_
Ra n rp n2 r 2
p n2 r2 Ra n2 r2
p p
Las e ua iones (3.53), (3.55) y (3.20) representan el modelo matemati o
del pro eso grua-puente ontrolado por la orriente de armadura. Tales
e ua iones pueden ser es ritas en forma ompa ta omo sigue:
M1 z + M2 (sen )_ 2 M2 ( os ) F = 0 (3.56)
M2 g(sen ) + M2 z( os ) J1  = 0 (3.57)
F = Kx KA u J2 z Bxz_ (3.58)
donde: l
M1 = m + me + mv ; M2 = me le + mv v
2
Jeq
J1 = Je + Jv ; J2 = 2 2
nr p
Km B
Kx =
Ra nrp
; Bx = 2eq2
n rp
+ nK2rbK2Rma
p

3.2.3 Representa ion en el Espa io de Estado


Las e ua iones arriba obtenidas se representan en el espa io de estados me-
diante la siguiente asigna ion de variables:
x1 =  (3.59)
x2 = _ (3.60)
x3 = z (3.61)
x4 = z_ (3.62)
80 Modelado de Pro esos

Es ribiendo las e ua iones en el espa io de estado:


2 3
2
x_ 1
3 x2
6 M2 (sin x1 )( os x1 )x22 Bx ( os x1 )x4 (M1 +J2 )g(sin x1 )+Kx ( os x1 )KA u 7
6
6 x_ 2 7
7 =
6
6 ( M2 ( os2 x1 )+(M1 +J2 )J1 )=M2 7
7
4 x_ 3 5 6
4 x4 7
5
x_ 4 M22 g(sin x1 )( os x1 ) J1 M2 (sin x1 )x22 J1 Bx x4 +J1 Kx KA u
M22 ( os2 x1 )+(M1 +J2 )J1
(3.63)
y puesto que tenemos omo salidas disponibles el desplazamiento angular de
la varilla y el desplazamiento del arro, tendremos enton es omo e ua ion
de salida la siguiente expresion:
y = Cx (3.64)
donde:  
C = 10 00 01 00 (3.65)
3.2.4 Obten ion del Modelo Lineal
Para obtener el modelo lineal del sistema grua-puente, empleamos la e ua ion
(3.36) desarrollada en la subse ion 3.1.4, omo sigue:
x_ = Ax + Bu (3.66)
donde: 2 3
0 1 0 0
(M1 +J2 )M2 g
6 (M1 +J2 )J1 M 2 0 0 (M1 +J2 )J12 M 2 7
6 B M 7 x

A=6 6
02
2
0 0 1
2 7
7 (3.67)
4 5
(M1 +J2 )J1 M22 0 0 (M1 +J2 )J1 M22
M2 g J1 B x

y 2
0 3
6 K M2 K 7x A
B=6 (M1 +J2 )J1 M22 7 (3.68)
6
4 0 7
5
J1 Kx KA
(M1 +J2 )J1 M22

3.2.5 El Modelo en el Espa io de Estado Dis reto


Para obtener el modelo en tiempo dis reto podemos usar las expresiones de
las e ua iones (3.46) y (3.47) ya dis utidas anteriormente.
3.2 Modelo del Pro eso Grua-Puente 81

3.2.6 Resumen de Variables y Parametros


La tabla 3.1 muestra las variables y parametros para los pro esos pendulo
invertido y grua-puente. Los valores de los parametros se obtuvieron de las
hojas de espe i a iones y por medi ion.
3.2.7 Identi a ion de la Zona Muerta del Servomotor
Al analizar la urva velo idad vs. voltaje de entrada del servomotor ( gu-
ras 3.6 y 3.7) se puede observar una zona muerta originada por la fri ion
estati a . Tal fri ion iguala al torque ne esario para omenzar a mover el
servomotor; es de ir, debido a la presen ia de la fri ion estati a, el servo-
motor permane e en reposo siempre que no re iba un nivel de voltaje que
supere un determinado umbral.
entrada vs salida
800

600

400

200
salida

−200

−400

−600

−800
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
entrada

Figura 3.6: Respuesta del servomotor sin ompensar (voltaje vs. velo idad
angular).
Observar en la gura 3.7 que la zona muerta de velo idad nula se presenta
para valores de voltaje entre  0.1 volt. Tal zona muerta es una no linealidad
que puede introdu ir efe tos no deseados en el ontrol, por lo que debe ser
ompensada mediante software, omo sigue (ver gura 3.8):
82 Modelado de Pro esos

Tabla 3.1: Variables y parametros valorados para los pro esos pendulo in-
vertido y grua-puente.
Smbolo Des rip ion Valor/Formula
 posi ion angular de la varilla
F fuerza apli ada al arro
m posi ion angular del motor
z posi ion del arro
lv longitud de la varilla 0.767 m
le distan ia entre P y la esfera
ze omponente horizontal
zv omponente horizontal
g gravedad 9.8 N
me masa de la esfera no usado
mv masa de la varilla 0.063095 kg
m masa del arro 0.92 kg
mp masa de la polea 0.2 kg
KA ganan ia del ampli ador 14.9
Ra resisten ia del motor 7.38 ohm
La indu tan ia del motor se despre io
Kb onstante ontraele tromotriz 31.035210 3 V/rad
Km onstante de torque del motor 31.07110 3 N-m/A
Jm iner ia del eje primario del motor 1.959610 6 kg-m2
Bm fri ion vis osa del eje primario 1.834210 3 N-m/rad/s
Jo iner ia del eje se undario se despre io
Bo fri ion vis osa del eje se undario se despre io
n fa tor de redu ion de velo idad 1/19.741
rp radio de la polea 0.0648 m
Jp iner ia de la polea mp rp2 =2
Jeq momento de iner ia equivalente Jm + n2 (Jo + Jp )
Beq fri ion vis osa equivalente Bm + n2 Bo
Je momento de iner ia de la esfera mele2
Jv momento de iner ia de la varilla mv lv2 =3
3.2 Modelo del Pro eso Grua-Puente 83

entrada vs salida
150

100

50
salida

−50

−100

−150
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
entrada

Figura 3.7: Vista ampliada de la gura 3.6.

entrada vs salida
800

600

400

200
salida

−200

−400

−600

−800
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
entrada u

Figura 3.8: Respuesta del servomotor on zona muerta ompensada.


84 Modelado de Pro esos

si SE\~NAL_DE_CONTROL < 0
enton es VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL - 0.1
si SE\~NAL_DE_CONTROL > 0
enton es VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL + 0.1
si SE\~NAL_DE_CONTROL = 0
enton es VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL

3.3 Modelo del Servomotor D.C. No Lineal


El servomotor D.C. (\Dire t Current") on arga no lineal es un pro eso
de una entrada y una salida que omprende un subsistema ele tri o y un
subsistema me ani o. El subsistema ele tri o esta ompuesto por un gene-
rador PWM (\Pulse Width Modulation"), que opera onjuntamente on un
ampli ador de poten ia) y por un servomotor D.C. ontrolado por voltaje
de armadura. El subsistema me ani o presenta un engranaje redu tor de
velo idad y una varilla metali a a oplada al eje del servomotor, a manera
de un brazo roboti o de un grado de libertad. En el extremo de la varilla se
pueden a oplar argas esferi as adi ionales de masa Mo y radio Ro.
La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La
tabla 3.2 des ribe las variables y los valores de los parametros.
I MO
T N1 RO
11
00
+ + 00
11
00
11
LO
u Kact eb Jm 00
11 m
- - 00
11
00
11
0000
1111 00
11 q
TM 0000
1111
0000ω m
1111 00
11
00
11
TL ω
R L 00
11
bm q 00
11
m 00
11
00
11
00
11 JL
00
11
N 2 = n N1 00
11
00
11 1111
0000
00
11 0000
1111
N2 00
11 0000
1111
bL

Figura 3.9: Pro eso: servomotor on arga no lineal.

3.3.1 El Subsistema Me ani o


La e ua ion del subsistema me ani o se puede obtener apli ando la segunda
ley de Newton en el punto donde se a opla el eje del servomotor on la
3.3 Modelo del Servomotor D.C. No Lineal 85

Tabla 3.2: Parametros y variables del servomotor on arga no lineal.


Smbolo Des rip ion Valor/Formula
u tensi'on de entrada al pro eso
Ka t ganan ia del ampli ador 14.9
Va tension de armadura Va = Ka t u
R resisten ia de armadura 7.38 ohm
L indu tan ia de armadura 4.6410 2 H
I orriente de armadura
K onstante del torque motor 31.07110 3 N-m/A
T torque motor T = KI
TM torque de iner ia motori a
TN torque: fri iones no lineales
TL torque iner ial de la arga
TE torque del peso de la varilla/esfera
Jm iner ia del motor 1.906210 6 kg-m2
JL iner ia de la arga 3.510 7 kg-m2
bm oef. de fri ion del motor 1.833810 6 N-m/rad/s
bL oef. de fri ion de la arga 10 5 N-m/rad/s
Mo masa de la esfera 0, 0.01, 0.02, 0.045 kg
m masa de la varilla 0.06377 kg
L0 longitud de la varilla 0.776 m
R0 radio de la esfera 0.02 m
eb fuerza ontra-ele tromotriz eb = Ewm
E onstante de fuerza ele tromotriz 31.035210 3 V/rad/s
n rela ion de engranajes 19.741
g a elera ion de la gravedad 9.81 m/s2
w velo idad angular de la arga
wm velo idad angular del eje wm = nw
qm posi i'on angular del eje
q posi ion angular de la arga qm = nq
86 Modelado de Pro esos

varilla metali a ( gura 3.9). El torque resultante nT que debe entregar el


servomotor para ven er todos los torques que se le oponen es:
nT = nTM + TE + TL + TN (3.69)
donde:
TM = Jm w_ m + bm wm = nJm w_ + nbm w (3.70)
2 1
TL = (Mo L2o + Mo Ro2 + mL2o + JL )w_ + bL w (3.71)
5 3
m
TE = gLo (Mo + )sen q (3.72)
2
Reemplazando las e ua iones (3.70), (3.71) y (3.72) en la e ua ion (3.69) se
obtiene:
nTm = M w_ + Bw + Nsen q + TN (3.73)
donde:
2 1
M = Jeff + ML2o + MRo2 + mL2o ) (3.74)
5 3
m
N = gLo (M + ) (3.75)
2
Jeff= n2Jm + JL (3.76)
B = n2 bm + bL (3.77)
3.3.2 El Subsistema Ele tri o
La tension de armadura Va que permite ontrolar la velo idad del motor
viene expresada por:
Va = IR + LI_ + eb (3.78)
donde eb es la tension ontraele tromotriz y es igual a:
eb = Ewm (3.79)
y la tension de armadura Va es:
Va = uKa t (3.80)
3.3 Modelo del Servomotor D.C. No Lineal 87

3.3.3 Conversion de Energa Ele tri a en Me ani a


La e ua ion de onversion en energa ele tri a en me ani a es:
T = KI (3.81)
donde K es la onstante del par motriz. Igualando las e ua iones (3.78) y
(3.80) (notar que wm = nw) obtenemos:
K Enw R
I_ = a t u I (3.82)
L L L
Empleando las e ua iones (3.81) y (3.82) en (3.73) y despejando w_ obtene-
mos: N B 1 T + nKI
w_ = senq w (3.83)
M M M N M
Las e ua iones (3.82) y (3.83) des riben el modelo no lineal del pro eso y
pueden tomar la siguiente representa ion:
x_ = F (x) + G(x)u; y = H (x) (3.84)
Eligiendo omo variables de estado: x1 = q (posi ion angular), x2 = x_ 1 =
q_ = w (velo idad angular) y x3 = I (intensidad de orriente), podemos
obtener:
x_ 1 = x2
N
x_ 2 = ( )senx1
B
x2
1 TN + nK x3
M M M M
nE R Ka t
x_ 3 = x x + u (3.85)
L 2 L 3 L
donde la salida es la posi ion x1 . Por onsiguiente:
2 3
x2
F (x) = ( M )senx1 M x2
N B 1 + nK
M TN M x3
4 5
nE x Rx
L 2 L 3
2 3
0
G(x) = 4 0 5 ; H (x) = x1 (3.86)
Ka t
L
Las matri es dadas en (8.38) representan el modelo matemati o del pro eso
onsiderando arga no lineal. La gura 3.10 muestra el diagrama de simu-
la ion del pro eso (ar hivo servsim.m) y la gura 3.11 muestra la respuesta
88 Modelado de Pro esos

del pro eso a un es alon para los asos on L 6= 0 y L = 0. Di has respues-


tas resultan muy similares debido a que la indu tan ia L es muy peque~na
y para nes pra ti os puede despre iarse, on lo ual el orden del pro eso
no lineal queda redu ido a uno de segundo. Para simular el pro eso usando
servsim.m se debe eje utar primero el ar hivo de datos servpar.m.
cc
gan1 fricción de
Coulomb
Kact + n*K − 1 w 1 q
− +
R − Ms+B s
gan5
sum1subsistema sum2 subsistema Integrador gráfico
eléctrico mecánico
u n*E
gan2 N MATLAB
Function
gan3 seno

Figura 3.10: Diagrama de bloques del pro eso no lineal.

1.4

1.2
Posición q (rad); entrada u (voltios)

0.8

0.6

u
0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 3.11: Respuesta del pro eso no lineal a un es alon.


3.3 Modelo del Servomotor D.C. No Lineal 89

Considerando L=0, la orriente de armadura resulta:


Ka t nE
I= u w (3.87)
R R
y la e ua ion (8.38) pasa a ser:
" #
x2
F (x) = N

B 2 KE
+ nMR

1
M senx1 M x2 M TN
 
G(x) = 0 ; H (x) = x1 (3.88)
nKKa t u
RM

3.3.4 Modelo y Compensa ion de no Linealidades


El torque TN se origina por la fri ion estati a TF y por la fri ion de
Coulomb TC . TF es el torque ne esario a ven er para que el servomotor
omien e a moverse. Cuando el servomotor ya esta en movimiento, apare e
el torque de fri ion de Coulomb TC oponiendose a di ho movimiento. Tales
torques pueden modelarse omo:
TF = CF sign(u); TC = CC sign(w) (3.89)
donde la fun ion sign(:) toma el valor +1 uando el argumento es positivo
y 1 uando es negativo. Para el servomotor empleado se ha determinado
experimentalmente [2℄ que CF  CC = 0:15.
Nuestro problema es enton es ompensar (eliminar) el torque TN de la
e ua ion (3.88). Para ello de nimos:
R
u=v+ T ; (3.90)
nKKa t N
Reemplazando la e ua ion (3.90) en (3.88) obtenemos una e ua ion om-
pensada de la forma:
 2 KE 
N B
x_ 2 =
M
senx1
M
+ nMR x2 +
nKKa t
RM
v (3.91)
Asumiendo en (3.90) que TN = TC = CC sign(w), lo ual es ierto uando
el sistema ya esta en movimiento, el termino no lineal resulta:
RCC
sign(w) = 0:12sign(w) (3.92)
nKKa t
90 Modelado de Pro esos

La e ua ion 3.92 indi a que en la implementa ion del software del sistema
de ontrol debemos ompensar la se~nal de ontrol u en  0.12 volt. Expe-
rimentalmente, un valor de 0.2 ha generado buenos resultados.
Por otra parte, debido a que valores grandes de la se~nal de ontrol u
pueden saturar al servomotor, es que se requiere un limitador de la tension
de ontrol u. Este limitador puede tambien implementarse en el software
de ontrol. Se ha determinado experimentalmente que para no entrar en la
zona de satura ion del servomotor, la se~nal de ontrol ompensada no debe
sobrepasar el umbral de  1.4 voltios.
3.3.5 Linealiza ion y Dis retiza ion del Pro eso
Asumiendo que la se~nal de ontrol u esta debidamente ompensada de no
linealidades y despre iando la indu tan ia L del servomotor, enton es, para
desvia iones peque~nas alrededor del origen se umple que senx1  x1 . Apli-
ando tal aproxima ion en la e ua ion (3.88) obtenemos una e ua ion de
estado lineal de la forma x_ = A x + B u y una e ua ion de salida y = C x,
donde:
 
A =
0 1
N ( B + Kn2 E )

M 
M MR
B =
0 ; C =  1 0  (3.93)
KnK a t
MR
A tal resultado tambien se puede llegar si apli aramos la te ni a del ja o-
biano. La fun ion de transferen ia Gp(s) del pro eso puede determinarse
mediante la rela ion:
y(s)
Gp (s) =
u(s)
= C [sI A ℄ 1B (3.94)
La fun ion de transferen ia de pulso Gp(z) se determina omo sigue:
 
y(z ) 1 Gp (s)
Gp (z ) = = (1 z )Z s (3.95)
u(z )
donde Z [:℄ es el operador transformada z. Di ha fun ion de transferen ia
depende del tiempo de muestreo T y posee la siguiente estru tura:
y(z ) b1 z + b2 b1 z 1 + b2 z 2
Gp (z ) = = = (3.96)
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2
3.4 Problemas Resueltos 91

Su orrespondiente e ua ion de diferen ias es:


y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2) (3.97)
Dado que un mismo pro eso puede tener multiples representa iones de esta-
do, a partir de la e ua ion (3.96) podemos determinar diversas representa-
iones de estado de la forma:
x(k + 1) = Gx(k) + Hu(k) (3.98)
y(kT ) = Cx(kT ) (3.99)
donde G, H y C son las matri es de estado, de ontrol y de salida, respe tiva-
mente, on dimensiones apropiadas. La representa ion anoni a ontrolable
del pro eso (primera forma, ver la subse ion 2.3.5), resulta:

G = 0a 1  ; H =  0  ; C =  b2 a2 b0 b1 a1b0  ; D = [0℄
2 a1 1
(3.100)
Tener en uenta que para nuestro pro eso b0 = 0. Si sele ionamos omo
variables de estado x1 = y(k), x2(k) = y(k + 1) b1 u(k), obtendremos la
segunda forma anoni a ontrolable (subse ion 2.3.5):

G = 0a 1  ; H =  b1  ; C =  1 0  ; D = [0℄
2 a1 b2 a1 b1
(3.101)
La fun ion de transferen ia de pulso del pro eso tambien se al ula de:
y (z ) b z 1 + b2 z 2
Gp (z ) = = C (zI G) 1 H = 1 (3.102)
u(z ) 1 + a1z 1 + a2 z 2
3.4 Problemas Resueltos
Los pro esos pendulo invertido, grua-puente y servomotor on arga no lineal
des ritos en las se iones anteriores, seran usados en las apli a iones en
tiempo real. Los pro esos que a ontinua ion se des riben seran empleados
para validar los diferentes algoritmos de ontrol, los uales se tratan on
detalle en los aptulos siguientes. Para ada pro eso en estudio se pide:
 Determinar si el pro eso es ompletamente ontrolable y/o ompleta-
mente observable.
92 Modelado de Pro esos

 Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
omo en el dominio dis reto.
 Sele ionar un tiempo de muestreo y determinar el modelo del pro eso
en el espa io de estado dis reto. Tener en uenta que el tiempo de
muestreo sele ionado no ne esariamente sera usado uando el pro eso
sea ontrolado digitalmente. Veremos que la ele ion del tiempo de
muestreo es a onvenien ia del algoritmo empleado.
 Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las se~nales de entrada son del tipo es alon.
La solu ion a ada problema se presenta en ar hivos m ( on extension m),
los uales pueden ser eje utados en el ambiente de trabajo de MATLAB.
Las respuestas al es alon se muestran en las guras orrespondientes.
Problema 3.1
La gura 3.12 muestra el diagrama de uerpo libre del sistema de suspen-
sion de la rueda de un bus (normalmente un bus posee uatro de tales
sistemas), donde m1 = 2500 kg es la masa que soporta el sistema de sus-
pension, m2 = 320 kg es la masa del sistema de suspension, k1 = 80000
N/m es la onstante del resorte de suspension, k2 = 500000 N/m es la ons-
tante del resorte del aro mas la rueda, b1 = 350 N-s/m es la onstante de
amortiguamiento de la suspension y b2 = 15020 N-s/m es la onstante de
amortiguamiento del aro mas la rueda. Este modelo se en uentra en el sitio
www.engin.umi h.edu/group/ tm/index.html.
Un buen sistema de suspension debe tratar de eliminar en el tiempo
mas orto posible las os ila iones produ idas por protuberan ias, desniveles
y hue os en la pista. Teniendo en uenta que la distan ia x2 w (la de-
forma ion de la rueda) es despre iable, enton es podemos usar la distan ia
x1 x2 omo la salida de nuestro pro eso, dado que la distan ia x1 w es
dif il de medir. El disturbio w puede modelarse omo un es alon. Di ho
disturbio puede ser provo ado, por ejemplo, uando el bus esta saliendo de
un desnivel pronun iado de orta longitud. Las e ua iones del movimiento
que gobiernan el sistema de suspension son:
m1 x1 = b1 (x_ 1 x_ 2 ) k1 (x1 x2 ) + u
m2 x2 = b1 (x_ 1 x_ 2 ) + k1 (x1 x2 ) + b2 (w_ x_ 2 ) + k2 (w x2 )
3.4 Problemas Resueltos 93

Masa de 1/4
x1 m1
del bus

k1 u b1

x2 Masa de la m2
suspension

k2 b2
w

Figura 3.12: Sistema de suspension de la rueda de un bus.


Se puede demostrar que las e ua iones de estado y de salida del pro eso son:
3 2 3
2
x_ 1 0 1 0 0 2 x1 3 2 0 3 2 0 3
7 6 a21 0 a23 1
6 1 7 = 6 x_1 7
6 x b1 7 6 6 7 6 a21 7
4 y_ 1 5 46 b2 0 a
m1 7
33 1 5 y1
7 6
4
7
5 + 6
4
m1
0
7 u+6
5 4 5w
b2 7
m2 m2
y_2 1 1
m2 0 a43 0 m1 + m2
k2 y2 k2
m2
2 3
x1  
y=

0 0 1 0  64
6 x_1 7
7 + 0 0  u
y1 5 w
y2
donde:
y1 = x1 x2
Z      
y2 =
k1 k1
+ y
k2 1 1
(w x2 ) + m1 + m2 u dt
m1 m2 1 m 2
 
b1 b2 b1 b1 b1 b2 k1
a21 = ; a23 = + +
m1 m2 m1 m1 m2 m2 m1
   
b1 b1 b2 k1 k1 k2
a33 = + + ; a43 = m1 + m2 + m2
m1 m2 m2
% P3_1P3.m SOLUCION AL PROBLEMA 3.1
lear all
94 Modelado de Pro esos

% PARAMETROS DEL PROCESO


m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
% MODELO LINEAL
A = [0 1 0 0
-b1*b2/(m1*m2) 0 a23 -b1/m1
b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2℄;
C = [0 0 1 0℄; D = [0 0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = -23.9758-35.1869i; eigA(2) = -23.9758 +35.1869i;
% eigA(3) = -0.1098 - 5.2504i; eigA(4) = -0.1098 + 5.2504i;
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG(1) = 0.7386 + 0.2712i; eigG(2) = 0.7386 - 0.2712i;
% eigG(3) = 0.9975 + 0.0524i; eigG(4) = 0.9975 - 0.0524i;

% G =
% 0.9995 0.0100 -0.0010 0.0000
% -0.1306 0.9995 -0.1834 -0.0024
% 0.4271 0.0022 0.5513 0.0077
% 11.5437 0.0643 -14.1982 0.9221
% H =
% 0.0000 0.0005
% 0.0000 0.1306
% 0.0000 -0.4271
% 0.0000 -11.5437
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(221)
plot(t,Y(:,1)); grid
xlabel('Tiempo en segundos')
3.4 Problemas Resueltos 95

ylabel('y(t) para u=1, w=0')


subplot(223)
plot(t,Y(:,2)); grid
xlabel('Tiempo en segundos')
ylabel('y(t) para u=0, w=1')
subplot(222)
plot(tt,YY(:,1)); grid
xlabel('Tiempo en segundos')
ylabel('y(k) para u=1, w=0')
subplot(224)
plot(tt,YY(:,2)); grid
xlabel('Tiempo en segundos')
ylabel('y(k) para u=0, w=1')
print -deps -f P3_1P3

−5 −5
x 10 x 10
2.5 2.5
y(k) para u=1, w=0
y(t) para u=1, w=0

2 2

1.5 1.5

1 1

0.5 0.5

0 0
0 50 100 150 0 50 100 150
Tiempo en segundos Tiempo en segundos

1 1
y(k) para u=0, w=1
y(t) para u=0, w=1

0.5 0.5

0 0

−0.5 −0.5

−1 −1
0 50 100 150 0 50 100 150
Tiempo en segundos Tiempo en segundos

Figura 3.13: Respuestas al es alon para el sistema de suspension.


96 Modelado de Pro esos

Problema 3.2
La dinami a de un avion puede ser des rita por varios onjuntos a oplados de
e ua iones diferen iales no lineales. Sin embargo, bajo iertas suposi iones,
tales e ua iones pueden ser desa opladas y linealizadas para obtener dos
onjuntos: las e ua iones longitudinales y las e ua iones laterales. El ontrol
de la in lina ion  del avion mostrado en la gura 3.14 es un problema
longitudinal.
Empuje
x

θ
Impulso α

γ
e
x’
Arrastre

δe
z
Peso
z’

Figura 3.14: Avion omer ial en pleno vuelo.


Asumiendo que el avion esta en su velo idad de ru ero (altura y ve-
lo idad onstantes), enton es la resisten ia de arrastre y la fuerza impulsora
se an elan mientras que el empuje de eleva ion se iguala on el peso (ver
gura 3.14). Con tales onsidera iones, se puede asumir que las e ua iones
longitudinales del movimiento del avion (los datos orresponden a un avion
omer ial Boeing) son:
_ = 0:313 + 56:7q + 0:232Æe
q_ = 0:0139 0:426q + 0:0203Æe
_ = 56:7q
donde es el angulo de ataque, q es la rela ion de in lina ion,  es el angulo
de in lina ion y Æe es el angulo del de e tor de eleva ion. La fun ion de
transferen ia del pro eso es:
(s) 1:151s + 0:1774
=
Æe (s) s + 0:739ss + 0:921s
3
3.4 Problemas Resueltos 97

mientras que sus e ua iones de estado y de salida son:


2 3 2
_ 0:313 56:7 0 3 2 3 2 0:232 3
4 q_ 5 = 4 0:0139 0:426 0 5 4 q 5 + 4 0:0203 5 Æe
_ 0 56:7 0  0
2 3
 
= 0 0 1 4 q 5

El modelo des rito esta en www.engin.umi h.edu/group/ tm/index.html.
% P3_2P4.m SOLUCION AL PROBLEMA 3.2
lear all
% MODELO DEL AVION (DINAMICA LONGITUDINAL)
A = [-0.313 56.7 0
-0.0139 -0.426 0
0 56.7 0℄;
B = [0.232;0.0203;0℄;
C = [0 0 1℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = 1; eigA(2) = -0.3695 + 0.8860i;
% eigA(3) = 0.9963 - 0.0088i;
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG(1) = 0; eigG(2) = 0.9963 + 0.0088i;
% eigG(3) = 0.9963 - 0.0088i;

% G =
% 0.9968 0.5649 0
% -0.0001 0.9957 0
% 0.0000 0.5658 1.0000
% H =
% 0.0024
% 0.0002
% 0.0001
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
98 Modelado de Pro esos

tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('y(t) ontinua')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis reta')
print -deps -f P3_2P4

6
y(t) continua

0
0 5 10 15 20 25 30
Tiempo en segundos

4
y(k) discreta

0
0 5 10 15 20 25
Tiempo en segundos

Figura 3.15: Respuestas al es alon para el angulo de in lina ion del avion
omer ial en vuelo.
Problema 3.3
La bola mostrada en la gura 3.16 puede rodar a lo largo de la barra on
un grado de libertad. Una leva one ta la barra on un engranaje que esta
a ionado por un servomotor. Se desea dise~nar un sistema de ontrol que
pueda mantener la bola sobre la barra. Asumir que la bola rueda libre de
fri ion. Los parametros del pro eso son: masa de la bola M = 0.11 kg,
radio de la bola R = 0.015 m, distan ia del extremo de la leva al entro del
engranaje d = 0.03 m, a elera ion de la gravedad g = 9.8 m/s2, longitud de
3.4 Problemas Resueltos 99

la barra L= 1.0 m e iner ia de la barra J = 9.9910 6 kg-m2 . Las variables


del pro eso son: posi ion de la barra r, oordenada angular de la barra
y posi ion angular del engranaje . Este modelo se en uentra en el sitio
www.engin.umi h.edu/group/ tm/index.html.

r
L BARRA
ESFERA
LEVA
α
θ
ENGRANAJE
d

Figura 3.16: Bola balan eandose sobre una barra.


La e ua ion dinami a que des ribe el pro eso es:
 
J
0= R2
+ M rMgsen Mr _ 2
Cuando es peque~no, sen  . Luego:
 
J
0= R2
+ M rMg Mr _ 2
Por tanto, la e ua ion que rela iona on  puede aproximarse mediante la
siguiente rela ion lineal:
d
= 
L
La fun ion de transferen ia del pro eso resulta:
r(s) 1
(s)
= L MgdJ + M  s2
R2
y la e ua ion de estado del pro eso viene a ser:
  
r_ = 0 1
  "
r + 0 #
 Mgd  
r 0 0 r_ L 2 +M
J
R
100 Modelado de Pro esos

Sin embargo, usaremos uatro estados, pues en lugar de ontrolar la posi ion
a traves de , lo haremos a traves de , lo que en esen ia signi a que
queremos ontrolar el torque de la barra. Las e ua iones de estado y de
salida para esta situa ion son:
2 3 2 0 1 0 0 32 r 3 2 0 3
r_
6 r 7 6
7=6
0 0 L Mgd+M  0 77 66 r_ 77 66 0 77
6
4 _ 5 6 4 0 0
2J
+
5 5 4 0 5
74 u
0 1
R

 0 0 0 0 _ 1
2 3
r
y=
 6
1 0 0 0  64 r_ 7
7
5
_
El modelo des rito esta en www.engin.umi h.edu/group/ tm/index.html.
% P3_3P5.m SOLUCION AL PROBLRMA 3.3
lear all
% MODELO DE LA BOLA SOBRE LA BARRA
M=0.11; R=0.015; d=0.03; g=9.8; L=1; J=9.99e-6;
A = [0 1 0 0
0 0 M*g/(L*J/R^2+L*M) 0
0 0 0 1
0 0 0 0℄;
B = [0;0;0;1℄;
C = [1 0 0 0℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = 0; eigA(2) = 0; eigA(3) = 0; eigA(4) = 0;

% CONVERSION AL ESPACIO DISCRETO


T = 0.1; % tiempo de muestreo
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG(1) = 1; eigG(2) = 1; eigG(3) = 1; eigG(4) = 1;

% G =
% 1.0000 0.1000 0.0010 0.0000
% 0 1.0000 0.0209 0.0010
3.4 Problemas Resueltos 101

% 0 0 1.0000 0.1000
% 0 0 0 1.0000
% H =
% 0.0000
% 0.0000
% 0.0050
% 0.1000

% RESPUESTAS AL ESCALON
TT=0:0.1:3;
[Y,X℄ = step(A,B,C,D,1,TT);
[YY,XX℄ = dstep(G,H,C,D,1,31);
subplot(211)
plot(TT,Y); grid
xlabel('Tiempo en segundos')
ylabel('y(t) ontinua')
subplot(212)
plot(TT,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis reta')
print -deps -f P3_3P5

0.8

0.6
y(t) continua

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

0.8

0.6
y(k) discreta

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

Figura 3.17: Respuestas al es alon de la posi ion de la bola sobre la barra.


102 Modelado de Pro esos

Problema 3.4
La gura 3.18 muestra un horno de laboratorio para ontrolar temperaturas
on pre ision. El modelo de este pro eso se en uentra en la referen ia [15℄.
Asumiendo que existe buena mez la de aire aliente, el alor entregado al
horno se modela omo:
d V2  o
(i o ) = Q Qe; Q = ; Qe = i
dt R r
donde i es la temperatura interior en K o en C, o es la temperatura
o
exterior en K o en oC, Q es el ujo de alefa ion en J/s o watt, Qe es
el ujo de perdida en J/s o watt, es la apa idad termi a en J/K, r es la
resisten ia termi a en K/watt, R es la resisten ia ele tri a en ohm y V es el
voltaje de alefa ion. Notar que podemos usar K o o C, pues las opera iones
derivada o diferen ia eliminan el valor 273 de: K = 273 + oC.
1111111111111111111111
0000000000000000000000
0000000000000000000000
1111111111111111111111
00
11
00 10
11 00
11 Calor perdido
00 Q o
11
00
11 00
11
Calentador electrico
+
00
11 0
1
000
111 00
11
00 111
11 000 Calor entregado
11111111
00000000 00
11
00
11
00
11 000
111 00
11
00
11
Vc
000
111
00 111
11
Qc Temperatura
00 exterior
11
00
11 0001010 Temperatura
00
11 Θo
_
00
11
00
11 0
1 interior Θi 00
11
00
11
00
11
0000000000000000000000
1111111111111111111111 00
11
0000000000000000000000
1111111111111111111111
Figura 3.18: Horno de laboratorio.
Si o se onsidera onstante, la dinami a del horno se des ribe omo:
di 1 1 1 V2
+
dt r
i = o +
r R
y uando i al anza su estado esta ionario  i:
 i =  o + Rr V 2
La tabla 3.3 ontiene datos experimentales de la ada de temperatura uan-
do se apaga el horno. La tabla 3.4 tabula el voltaje de alentamiento versus
la temperatura interior en estado estable. Para ambas tablas la temperatura
exterior es de 30 o C .
3.4 Problemas Resueltos 103

Tabla 3.3: Datos de ada de temperatura.


Tiempo Temperatura (o C)
14:23:10 120.0
14:31:00 108.0
14:39:30 92.0
14:48:35 80.5
15:05:00 63.0
15:34:00 40.5

Tabla 3.4: Temperaturas del horno eno estado estable.


Tiempo Temperatura ( C)
9.8 34.1
20.0 50.5
29.5 74.0
40.0 110.0

La urva exponen ial 120e t= obtenida on los datos de la tabla 3.3 permite
al ular su onstante de tiempo  = r = 3000 s. La urva uadrati a
obtenida on los datos de la tabla 3.4 permite obtener r=R = 5  10 2 . Por
onsiguiente, la dinami a del horno resulta:
di 1 i + 1 0 + 1 V 2 = f (i; o; V )
dt
= 3000 3000 60000
Para efe tos de linealiza ion podemos de nir las siguientes variables:
i = i   i; o = o  o; v = V V
Enton es, la e ua ion linealizada empleando el ja obiano para el punto de
opera ion  i = 50 oC ,  e = 30 oC , V = 20 volt, resulta:
     
di
dt
= fi i +
f
 +
f
v
 o  o o V V
 i
di 1 i + 1 o + 1 v
= 3000
dt 3000 1500
104 Modelado de Pro esos

% P3_4P6.m SOLUCION AL PROBLEMA 3.4


lear all
% ECUACION DE ESTADO CONTINUA:
% dTeta(t)/dt = A*Teta(t) + B*v (t) + E*Teta_o
A = [-1/3000℄;
B = [1/3000℄; E = [1/1500℄;
C = [1℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 1 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 1 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA = A = -1/3000; % POR SER PROCESO DE PRIMER ORDEN
% CONVERSION AL ESPACIO DISCRETO
T = 10; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
[G,F,C,D℄ = 2dm(A,E,C,D,T,'zoh');
% ECUACION DE ESTADO DISCRETA:
% Teta(k+1) = G*Teta(k) + H*v (k) + F*Teta_o
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG = G = 0.9967; % POR SER PROCESO DE PRIMER ORDEN
% G = 0.9967; H = 0.0067; F = 0.0333;
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
subplot(212)
ylabel('y(t) ontinua')
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis reta')
print -deps -f P3_4P6

Problema 3.5
La gura 3.20 muestra un monorriel de dos arros. El modelo de este pro eso
se en uentra en la referen ia [15℄. Sean M1 la masa del arro de maquinas y
B1 sus fri iones debido al aire y al rodamiento. La fuerza lineal equivalente
para mover al pro eso se designa omo u(t). Los dos arros poseen masas
M2 y M3 respe tivamente, y estan sujetos a fri iones B2 y B3 . Los arros
se a oplan uno al otro on dispositivos no rgidos (resortes) que poseen
3.4 Problemas Resueltos 105

1.5
y(t) continua

0.5

0
0 2000 4000 6000 8000 10000 12000 14000 16000
Tiempo en segundos

1.5
y(k) discreta

0.5

0
0 2000 4000 6000 8000 10000 12000
Tiempo en segundos

Figura 3.19: Respuesta al es alon de la temperatura interior del horno de


laboratorio.
onstantes K23 y K12 , y dispositivos amortiguadores de onstantes B23 y
B12 .Las oordenadas de posi ion se designan omo x1 , x2 y x3. Se puede
demostrar que la e ua ion de estado del sistema on vi = x_ i; i = 1; 2; 3 es:
x_ = Ax + Bu(t)
donde:
2
0 1 0 0 0 0 3
6 K12 B1 +B12 K12 B12 0 0 77
6 M1 M1 M1 M1
A=6
6
0 0 0 1 0 0 777
6 K12
6 M2 B12 K12 +K23 B2 +B23 +B12 K23 B23 7
M2 M2 M2 M2 M2
6
4 0 0 0 0 0 1 75
0 0 K23 B23 K23 B3 +B23
M3 M3 M3 M3
x = [x1 v1 x2 v2 x3 v3 ℄T
B = [0 1 0 0 0 0℄T
106 Modelado de Pro esos

1
0
0
1 x1
0
1 x2
0
1
0
1
x3

0
1
0
1
B 23 B 12
0
1
0
1
2do. CARRO 1er. CARRO MAQUINA

0
1 M3 M2 M1
0
1 0000000
1111111
K 23 1111111
0000000
K 12 1111111
0000000
000000000000000000000000000000000000
11
0
11111111111111111111111111111111111
0000000
1111111
B3
0000000
1111111
B2
0000000
1111111
B1

Figura 3.20: Pro eso monorriel de dos arros mas un arro de maquinas.

Si ubi amos ta ometros en una rueda de ada arro, enton es la e ua ion


de salida toma la forma:
2 3 2
y1 0 0 0 0 03
4 y2 5 = 4 0 0 0 0 0 5 x
y3 0 0 0 0 0
yi = i vi ; i = 1; 2; 3
donde i es la onstante ta ometri a. Asumir los siguientes valores para
los parametros: M2 = M3 = 2M1 = 2600 kg, K23 = K23 = 100000 N/m,
B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.
% P3_5P7.m SOLUCION AL PROBLEMA 3.5
lear all
% MODELO DEL MONORRIEL
M2=2600; M3=M2; M1=1300; K23=100000; K12=K23; alfa=1;
B23=500; B12=B23; B2=10000; B3=B2; B1=5000;
A = [0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B = [0;1;0;0;0;0℄;
C = [0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄; D = [0;0;0℄;
3.4 Problemas Resueltos 107

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO


rAB = rank( trb(A,B)); % rAB = 6 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 5 => NO ES COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA =
% -2.2710 +11.5757i
% -2.2710 -11.5757i
% -2.0560 + 6.9947i
% -2.0560 - 6.9947i
% 0.0000
% -3.8462
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
rGC = rank(obsv(G,C)); % rGC = 6 => COMPLETAMENTE OBSERVABLE
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG =
% 0.3200 + 0.7298i
% 0.3200 - 0.7298i
% 0.6230 + 0.5242i
% 0.6230 - 0.5242i
% 1.0000
% 0.6807
% RESPUESTAS AL ESCALON
TT=0:0.1:3;
[Y,X℄ = step(A,B,C,D,1,TT);
[YY,XX℄ = dstep(G,H,C,D,1,31);
subplot(211)
plot(TT,Y); grid
xlabel('Tiempo en segundos')
ylabel('Salidas ontinuas')
subplot(212)
plot(TT,YY); grid
xlabel('Tiempo en segundos')
ylabel('Salidas dis retas')
print -deps -f P3_5P7

Problema 3.6
La gura 3.22(a) muestra el diagrama de bloques simpli ado del pro eso
as ensor, uyo modelo se en uentra en la referen ia [15℄. El problema a re-
solver es posi ionar el as ensor ade uadamente. El voltaje de armadura v(t)
lo suministra un ampli ador de poten ia on satura ion ( gura 3.22(b)),
108 Modelado de Pro esos

0.1

continuas
0.08

0.06

Salidas 0.04

0.02

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

0.1
discretas

0.08

0.06

0.04
Salidas

0.02

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

Figura 3.21: Respuestas al es alon de las velo idades del monorriel.


el ual no debe ex eder los  200 volt. Esto signi a una velo idad x1 en
estado estable de:
 
x1 =
0 :001
(200) = 1 m=s
s + 0:2 s=0
Observar en la gura 3.22(d) que la velo idad y posi ion del elevador se
miden separadamente. Entre pisos, el ampli ador de poten ia se en uen-
tra en estado de satura ion, generando  200 volt, dependiendo de si el
as ensor esta subiendo o bajando. Cuando el as ensor se aproxima al piso
donde debe parar, la opera ion del ampli ador pasa a la zona lineal. En
esta situa ion debe a tuar un ontrolador para posi ionar suavemente al as-
ensor empleando las medi iones de velo idad y posi ion del as ensor. Tales
medi iones, as omo tambien la medi ion del voltaje de armadura en la zona
de satura ion, estan disponibles para ada piso. La gura 3.22(d) muestra el
sistema de ontrol digital del as ensor. Las e ua iones de estado y de salida
del as ensor son:
2 3 2
x_ 1 0:2 0 0 0 3 2 x1 3 2 10 3 3
6 x_ 2 7 6 1 0 0 0 77 66 x2 77 + 66 0 77
4 x_ 3 5 = 4 2
6 7 6
0 2 0 5 4 x3 5 4 0 5
x_ 4 5 0 0 5 x4 0
3.4 Problemas Resueltos 109

y= 0 1 0 0 x
% P3_6P8.m SOLUCION AL PROBLEMA 3.6
lear all
% MODELO DEL ASCENSOR
A = [-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5℄;
B = [1e-3;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 2 => NO ES COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA =
% -5.0000
% 0
% -2.0000
% -0.2000
% CONVERSION AL ESPACIO DISCRETO
T = 0.2; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
rGC = rank(obsv(G,C)); % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG =
% 0.3679
% 1.0000
% 0.6703
% 0.9608

% G =
% 0.9608 0 0 0
% 0.1961 1.0000 0 0
% 0.3227 0 0.6703 0
% 0.6176 0 0 0.3679

% H = 1.0e-003 *
% 0.1961
% 0.0197
% 0.0347
% 0.0725
% RESPUESTAS AL ESCALON
110 Modelado de Pro esos

Voltaje de Voltaje de Velocidad del Posicion del


entrada armadura ascensor ascensor
v 0.001 1
u u v s + 0.2 x1 s x
2
Amplificador Motor actuador
de potencia mas tambor
con saturacion
2
x3 s + 2
5 Sensor de velocidad
x4 s + 5
Sensor de posicion (a)

v x1
200 0.005
3000
1

u t
-200 5 10 15

(b) (c)

Posicion del
x4 ascensor
u D/A con u v Actuador
mas x
memoria sensores 2
x4
Computador Amplificador
digital
x3 Voltaje de sensor de
armadura velocidad
v
A/D

sensor de posicion x3

(d)

Figura 3.22: Pro eso as ensor.


3.4 Problemas Resueltos 111

[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('Salidas ontinuas')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('Salidas dis retas')
print -deps -f P3_6P8

0.15
Salidas continuas

0.1

0.05

0
0 5 10 15 20 25 30
Tiempo en segundos

0.2
Salidas discretas

0.15

0.1

0.05

0
0 5 10 15 20 25 30 35 40 45
Tiempo en segundos

Figura 3.23: Respuestas al es alon de la posi ion del as ensor.

Problema 3.7
En la gura 3.24(a) se desea redu ir la humedad h del material a granel de la
tolva. La banda transportadora que se desplaza a una velo idad onstante
de v = 1 m/s, introdu e el material a un horno de se ado. El sensor de
humedad dete ta hr a una distan ia d = 10 m del horno y propor iona la
se~nal de voltaje vr . El horno puede modelarse omo un pro eso de primer
112 Modelado de Pro esos

orden. La gura 3.24(b) muestra la F.T. del pro eso. El modelo del pro eso
en estudio se en uentra en la referen ia [10℄.
Tolva Controlador
Referencia
Sensor
Horno

d
v

v Deposito
(b)

u hs hr vr
1 10
e - d/v
s+1 s + 0.5
Horno Tiempo muerto Sensor

Figura 3.24: Sistema redu tor de humedad.


% P3_7P10.m SOLUCION AL PROBLEMA 3.7
lear all

% MODELO DEL REDUCTOR DE HUMEDAD


% (num(s)/den(s))*exp(-d/v);
d=10; v=1; Tm = d/v; % TIEMPO MUERTO
[numd,dend℄ = pade(Tm,3); % APROXIMACION DE ORDEN 3
% APROXIMO exp(-Tm*s) EMPLEANDO UNA F.T. DE ORDEN 3
num = onv([0 0 10℄,numd); den = onv(dend,[1 1.5 0.5℄);
[A,B,C,D℄ = tf2ss(num,den);
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 5 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 5 => COMPLETAMENTE OBSERVABLE
% EIGENVALORES
eigA = eig(A);
% eigA:
% -1.0000; -0.3678+0.3509i; -0.3678-0.3509i; -0.5000; -0.4644
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
% G =
% 0.7510 -0.2604 -0.1435 -0.0421 -0.0052
3.4 Problemas Resueltos 113

% 0.0872 0.9865 -0.0075 -0.0022 -0.0003


% 0.0046 0.0995 0.9997 -0.0001 0.0000
% 0.0002 0.0050 0.1000 1.0000 0.0000
% 0.0000 0.0002 0.0050 0.1000 1.0000

% H =
% 0.0872
% 0.0046
% 0.0002
% 0.0000
% 0.0000
% EIGENVALORES:
eigG = eig(G);
% eigG =
% 0.9048; 0.9633+0.0338i; 0.9633-0.0338i; 0.9512; 0.9546

% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('Humedad ontinua')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('Humedad')
print -deps -f P3_7P10

Problema 3.8
Los parametros valorados del pro eso mostrado en la gura 3.26 son: mo-
mento de iner ia del rotor J = 0.01 kg-m2 =s2 , onstante ele tromotriz
Ke = Kt = 0.01 N-m/A, resisten ia R = 12 ohm, resisten ia de armadura
RA  R, ondensador C = 0.5 F, indu tan ia de armadura L = 0.5 H,
onstante torsional K! = 1.8 N-m/rad.
Las e ua iones que gobiernan la dinami a del pro eso ele trome ani o
mostrado en la gura 3.26 se des riben a ontinua ion. Subpro eso ele tri o:
1 v
IR = (v v ); C C = I IM ; L M = v e
dI
C R C
R dt dt
114 Modelado de Pro esos

20

continua
15

10

Humedad 5

−5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

20
Humedad discreta

15

10

−5
0 5 10 15 20 25
Tiempo en segundos

Figura 3.25: Respuestas al es alon de la humedad on tiempo muerto.


Motor:
= KtIM ; T e = Ke !1
Resorte torsional mas la iner ia J :
dT d!2
dt
= K! (!1 !2 ); J
dt
=T
Sele ionando omo variables de estado y x3 = !2, yx1 = vC , x2 = IM
omo salida y = x3, la representa ion de estado del pro eso resulta:
x_ = Ax + Bu; y = Cx
2 1 1 0 3
RC C
A = 4 LK K+K K 0 LK K+KK K 5
! e !

0 0
! t e ! t e
K t
J
2 1 3
RC
0 5; C =  0 0 1 
B=4
0
El modelo del pro eso en estudio se en uentra en la referen ia [10℄.
3.4 Problemas Resueltos 115

IR R L IM
+ Kω
+
v C e
-
-
T ω2
J
ω1

Figura 3.26: Sistema ele trome ani o.


% P3_8P11.m SOLUCION AL PROBLEMA 3.8
lear all
% MODELO DEL SISTEMA ELECTROMECANICO
J=0.01; Kt=0.01; Ke=Kt; R=12; RA=0; C=0.5; L=0.5; Kw=1.8;
A = [-1/(R*C) -1/C 0
Kw/(L*Kw+Kt*Ke) 0 0
0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
% CONTRLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA =
% 0
% -0.0833 + 1.9982i
% -0.0833 - 1.9982i
% G =
% 0.9638 -0.1970 0
% 0.1970 0.9802 0
% 0.0099 0.0993 1.0000
% H =
% 0.0164
% 0.0017
% 0.0001
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
rGC = rank(obsv(G,C)); % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG =
% 1.0000
116 Modelado de Pro esos

% 0.9720 + 0.1968i
% 0.9720 - 0.1968i
% G =
% 0.9638 -0.1970 0
% 0.1970 0.9802 0
% 0.0099 0.0993 1.0000
% H =
% 0.0164
% 0.0017
% 0.0001
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y)
xlabel('Tiempo en segundos')
ylabel('Voltaje en C ( ontinuo)')
grid
subplot(212)
plot(tt,YY)
xlabel('Tiempo en segundos')
ylabel('Voltaje en C (dis reto)')
grid
print -deps -f P3_8P11

3.5 Problemas Propuestos


Para ada pro eso en estudio se pide:
 Determinar el modelo matemati o que des riba la dinami a del pro eso
(si no lo tuviera).
 Determinar si el pro eso es ompletamente ontrolable y/o ompleta-
mente observable.
 Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
omo en el dominio dis reto.
 Sele ionar un tiempo de muestreo y determinar el modelo del pro eso
en el espa io de estado dis reto. Tener en uenta que el tiempo de
muestreo sele ionado, no ne esariamente sera usado uando el pro eso
3.5 Problemas Propuestos 117

Voltaje en C (continuo)
4

0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

5
Voltaje en C (discreto)

0
0 10 20 30 40 50 60
Tiempo en segundos

Figura 3.27: Respuestas al es alon del voltaje en el ondensador.


sea ontrolado digitalmente. Veremos que la ele ion del tiempo de
muestreo es a onvenien ia del algoritmo empleado.
 Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las se~nales de entrada (se~nales de referen ia o se~nales disturbio)
son del tipo es alon.
Problema 3.9
Las e ua iones del modelo linealizado para ontrolar la posi ion angular del
a~non ubi ado en la la torreta de un tanque mediante un a tuador hidrauli o
son las siguientes (ver gura 3.28):
_ = !
!_ = p + d
Km K
p_ =
m p q + m ! + dp
J J
q_ = Kv Lv q Kv Kp Jp + Kv u + dq ; Lv = 1
donde  es el angulo de la torreta, ! es la velo idad angular de la torreta, p
es la a elera ion angular produ ida por el a tuador hidrauli o, q es el des-
plazamiento de la servovalvula, Km = [8.46106 , 1.96106 ℄ (el primer valor
118 Modelado de Pro esos

orresponde al angulo de desplazamiento horizontal de la torreta, mientras


que el segundo valor, al angulo de eleva ion) es la ganan ia del servomotor,
J = [7900, 2070 lbf-ft-s2℄ es la iner ia de la torreta,
m = [45.9, 17.3 rad/s℄
es la fre uen ia natural del motor, Kv = [94.3, 94.3℄ es la ganan ia de la
servo valvula, y Kp = [6.3310 6 , 3.8610 5 ℄ es el oe iente de presion
diferen ial. Las antidades d , dp y dq representan disturbios que tambien
in luyen los efe tos debido a las no linealidades que no fueron tomadas en
uenta en el modelo linealizado. Es util saber que 1 lbf-ft-s2 = 1.355 kg-m2 .
El modelo de este pro eso de en uentra en la referen ia [17℄.

Torreta del tanque

Angulo de
θ ’
elevacion


Azimut: angulo de
posicionamiento horizontal

Figura 3.28: Vistas lateral y horizontal de la torreta de un tanque.

Problema 3.10

Una olumna de destila ion es un pro eso omplejo que requiere una gran
antidad de variables (mas de 100) para des ribir su omportamiento en
forma muy aproximada. Sin embargo, ha iendo las simpli a iones del aso
(tales omo redu ion del numero de variables y linealiza ion de los puntos
de opera ion) se puede llegar a un modelo redu ido que pueda ser empleado
para el ontrol del pro eso. Ese es el aso de una olumna de extra ion
3.5 Problemas Propuestos 119

para la separa ion del isopropanol de una mez la on ontenido de agua,


empleando gly ol omo un extra tante (ver gura 3.29).
Extractante

(glycol)

Agua
T T1
Mezcla de 1
0 S: flujo lateral
0 1
1 de vapor
agua e iso-
propanol z
1 Propanol
Glycol T
T 2
1
0
0 2
1
z2
u 1 : vapor de
calentamiento
Producto (glycol) Concentraciones Temperaturas

Figura 3.29: Columna de destila ion on los per les de on entra ion y de
temperatura.
Las e ua iones de estado y de salida que gobiernan el pro eso en uestion
son las siguientes:
x = Ax + Bu + F d; y = Cx
donde:
2
Q1 3      
6 V1 7  u 1  x 1  T 1
x=6 4 z1 5 ;
7 u = S ; d = F F A ; y = T2
A
z2
2 3 2 3
a11 0 0 0 b11 0
6 a21 a22 0 0 7 6 0 0 77
A=6 4 0 a32 0 0
7;
5 B = 6
4 0 b32 5
0 a42 ) 0 0 0 b42 )
2 3
0 0  
6 0 0 7 0 0 13 0
F =6 4 f31 f32 5 ;
7 C= 0 0 0
24
0 f42
120 Modelado de Pro esos

on a11 = 30:3, a21 = 0:12  10 3 , a22 = 6:02, a32 = 3:77, a42 = 2:8,
b11 = 6:15  105 , b32 = 3:04, b42 = 0:052, f31 = 62:2, f32 = 5:76, f42 = 5:12,
13 = 7:3 y 24 = 25. Las variables poseen el siguiente signi ado (ver
gura 3.29): Q1 es el ujo de alor produ ido por el aldero de vapor, V1
es el ujo de vapor produ ido por el aldero de vapor, u1es el vapor de
alefa ion, S es el ujo de vapor lateral, z1 es la posi ion del ambio
de interfase entre el agua y el isopropanol, z2 es la posi ion del ambio de
interfase entre el agua y el gly ol, T1 y T2 son los ambios de temperatura
en z1 y z2 , FA es el ujo de la mez la de agua mas isopropanol, y xF A1
es la omposi ion de la mez la de agua mas isopropanol. Notar que todas
las variables son residuales; es de ir, representan los ambios on respe to al
estado de equilibrio. El modelo de este pro eso de en uentra en la referen ia
[17℄.
Problema 3.11
La gura 3.30 muestra el pro eso servomotor on arga no lineal des rito en
la se ion 3.2. Notar ahora que el eje de salida del me anismo de redu ion
esta sujeto a la arga no lineal mediante una junta exible que puede ser
modelada omo un resorte rota ional de onstante K! =0.5 N/m/s. Consi-
derar dos asos: (a) uando la indu tan ia de armadura es despre iable, y
(b) uando no lo es.
Mo
R θm Ro
+ Ν1
Lo
u Va eb
m
- Kω
Jm
L Bm θ
Ν2 BL JL

Figura 3.30: Servomotor unido a la arga no lineal mediante un a oplamiento


exible.
Problema 3.12
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito en
la se ion 3.3, en donde la arga no lineal posee ahora dos grados de libertad.
3.5 Problemas Propuestos 121

La union de la arga on el eje del servomotor no es exible. Asumir que


Lo = 2L1 =3. Considerar dos asos: (a) uando la indu tan ia de armadura
es despre iable, y (b) uando no lo es.
Mo Ro
L1 τ
m1

Union
R θm no
+ Ν1 flexible
Lo θ
u Va eb
m
-
Jm
L Bm θ
Ν2 BL JL

Figura 3.31: Servomotor on arga no lineal de dos grados de libertad. El


a oplamiento de la arga al eje del motor no es exible.

Problema 3.13
La gura 3.32 muestra el pro eso pendulo doble no lineal. Las e ua iones
que des riben la dinami a del pro eso pendulo simple fueron dedu idas en la
se ion 3.1. Para dedu ir el modelo matemati o del pro eso pendulo doble
onviene emplear las e ua iones de Lagrange de la me ani a lasi a. El
a oplamiento entre los dos pendulos no es exible. Los dos pendulos poseen
la misma longitud y la masa esferi a es de 0.02 kg.
Problema 3.14
La gura 3.33 muestra el pro eso doble grua-puente no lineal. Las e ua iones
que des riben la dinami a del pro eso grua-puente fueron dedu idas en la
se ion 3.2. Para dedu ir el modelo matemati o del pro eso doble grua-
puente onviene emplear las e ua iones de Lagrange de la me ani a lasi a.
El a oplamiento entre las dos se iones de la varilla no es exible. Las dos
varillas poseen la misma longitud y la masa esferi a adi ional es de 0.02 kg.
122 Modelado de Pro esos

+ Fuerza de
u control
- τ
Servomotor
D.C. y
θ
z F

Carro

Figura 3.32: Pro eso pendulo doble no lineal.

+ Fuerza de
u control
-
Servomotor
D.C. y

z F

Carro

θ
z
Doble
y’ ’ puente
τ grua

Figura 3.33: Pro eso doble grua-puente.


Cap
tulo 4


Control Optimo

Este aptulo desarrolla un pro edimiento para dise~nar sistemas de ontrol optimo
esta ionarios y no esta ionarios, usando una ley de ontrol optima uadrati a
que emplea las se~nales del pro eso medidas dire tamente o estimadas mediante
un observador optimo. Las on gura iones usadas para el dise~no son el regu-
lador optimo propor ional y el regulador optimo propor ional integral. La ultima
on gura ion a~nade un integrador al ontrolador on el proposito de redu ir el
error en estado estable. El pro edimiento de dise~no desarrollado, puede ser
apli ado tanto a sistemas univariables omo a sistemas multivariables.
Dos apli a iones validan el pro edimiento de dise~no desarrollado: ontrol
optimo de los pro esos pendulo invertido y grua puente. La penultima se ion,
problemas resueltos, esta dedi ada al dise~no de sistemas de ontrol optimo
esta ionarios para diferentes pro esos. La ultima se ion propone problemas de
dise~no a resolver. Todos los ar hivos orrespondientes a los ejer i ios, proble-
mas, dise~nos, simula iones y software desarrollados se pueden des argar del sitio
http:// ee.uni.edu.pe/728681F.

4.1 Introdu ion


El ontrol optimo trata de determinar el \mejor" sistema de ontrol emplean-
do una te ni a optima de dise~no. Esta te ni a asume la formula ion de una
fun ion matemati a denominada la fun ion de osto, tambien ono ida omo
fun ion de rendimiento, ndi e de rendimiento o ndi e de fun ionamiento,
entre otras denomina iones. El pro edimiento de dise~no del sistema de on-
trol optimo trata de en ontrar un extremo (un mnimo o un maximo, dado el
aso) de una fun ion de osto on el proposito de determinar los parametros
124 
Control Optimo

optimos de una ley de ontrol; de all el termino optimo. En la mayora de


los asos, sin embargo, la busqueda de la fun ion de osto involu ra pro e-
dimientos de error y orre ion; esto signi a que no siempre podemos estar
seguros a er a de la forma exa ta que debera poseer la fun ion de osto.
Para sistemas de ontrol dis retos, la fun ion de osto generalmente
posee la forma siguiente:
N
X
J = L(x(k); r(k); u(k)) (4.1)
k=0

donde k es el tiempo dis reto, N es el tiempo dis reto nal, x(k) es el ve tor
de estado, r(k) es el ve tor de referen ia (entrada al sistema de ontrol) y
u(k) es el ve tor de ontrol optimo. Esta ley de ontrol (denominada tambien
fuerza o se~nal de ontrol) onstituye la entrada al pro eso a ontrolar.
Para apli a iones pra ti as, el ve tor de ontrol u debe estar siempre
a otado. Por ejemplo,
jui (k)j Ui (4.2)
donde ada elemento Ui es una onstante determinada (el subndi e denota
la omponente i del ve tor u). Para el aso de ontrol a otado on mnimo
gasto de energa, se puede formular:
u2i (k) Mi (4.3)
en donde ada elemento Mi es una onstante dada. En ualquier aso, el
ve tor de ontrol u debe satisfa er iertas restri iones para poder ser un
ve tor de ontrol admisible.
En este aptulo se desarrolla el pro edimiento de dise~no de un sistema
de ontrol optimo uadrati o dis reto, denominado as porque emplea una
fun ion de osto uadrati a de dominio dis reto. El resultado del dise~no
propor iona una matriz de ganan ia que multipli ada por el ve tor de es-
tado (real o estimado) del pro eso, resulta en una ley de ontrol optima
uadrati a. El ve tor de estado estimado se determina usando un obser-
vador optimo.
Para demostrar la validez del pro edimiento de dise~no, se presentan dos
apli a iones: dise~no del sistema de ontrol optimo uadrati o para el pro eso
pendulo invertido y para el pro eso grua-puente.

4.2 Control Optimo Cuadrati o No Esta ionario 125

4.2 
Control Optimo Cuadrati o No Esta ionario
El problema del ontrol optimo uadrati o dis reto no esta ionario onsiste
en en ontrar una ade uada ley de ontrol optima que sea apaz de trasladar
la dinami a del pro eso desde un estado ini ial x(0) ha ia un estado nal
deseado x(N ). La fuerza de ontrol optima u(k) se determina a partir de
la minimiza ion de una fun ion de osto uadrati a dis reta. Esta fuerza de
ontrol apli ada al pro eso a ontrolar, provo a que di ho pro eso responda
en forma optima (o lo mas er ano al optimo). El ontrol optimo uadrati o
dis reto se basa en la siguiente fun ion de osto:
1
J = xT (N )Sx(N ) +
1 NX1 xT (k)Qx(k) + uT (k)Ru(k) (4.4)
2 2 k=0
donde x(k) es el ve tor de estado de dimension n y u(k) es el ve tor de
ontrol de dimension r. Mientras que la matriz hermitiana semide nida
positiva S (de dimension n  n) pondera la importan ia del estado nal
x(N ), la matriz hermitiana semide nida positiva Q (de dimension n  n)
pondera la importan ia del ve tor de estado x(k), y la matriz hermitiana
de nida positiva R (de dimension r  r) pondera la importan ia de la se~nal
de ontrol u(k). La de ni ion de matri es se trato en la subse ion 1.2.4. La
ley del ontrol optima a usar emplea la realimenta ion del ve tor de estado
x(k) en su formula ion y posee la forma siguiente:
u(k) = K (k)x(k) (4.5)
donde K (k) (de dimension rn) es la matriz de ganan ia del ontrolador, de-
nominada tambien matriz de realimenta ion de estados. Cuando la dinami a
del sistema de ontrol es nita, K (k) es una matriz variante en el tiempo;
pero uando di ha dinami a al anza su estado esta ionario (es de ir, uando
N ! 1), enton es K (k) se onvierte en una matriz onstante K . En esta
ultima situa ion, estaremos frente al denominado ontrol optimo en estado
esta ionario, y es el que usaremos en nuestras apli a iones. Una ondi ion
ne esaria para poder apli ar el ontrol por realimenta ion de estados es que
el pro eso sea ompletamente ontrolable. Por onsiguiente, sera ne esario
veri ar di ha ondi ion en el pro eso antes de ini iar el pro edimiento de
dise~no.
La realimenta ion de estados requiere ademas que todos los estados sean
disponibles y medibles. Si en el sistema a ontrolar existieran estados que
126 
Control Optimo

no pudieran ser medidos dire tamente, sera ne esario estimarlos. Esta esti-
ma ion puede ser realizada empleando la te ni a de observa ion de estados
que sera tratada en la se ion 4.6. El requerimiento en esta parte es que el
pro eso sea ompletamente observable.
La solu ion al problema de ontrol optimo uadrati o puede obtenerse
empleando varios enfoques, tales omo el metodo de minimiza ion usando
multipli adores de Lagrange o mediante el prin ipio de optimalidad [3℄,[4℄.
Asumamos que el pro eso puede ser modelado mediante la siguiente e ua ion
de estado dis reta:
x(k + 1) = Gx(k) + Hu(k); x(0) = (4.6)
donde G es la matriz de estado de dimension n  n, H es la matriz de ontrol
de dimension n  r y x(0) es una ondi ion ini ial del ve tor de estado.
El pro eso debe ser de estado ompletamente ontrolable; es de ir, que
en un tiempo nito, sus estados puedan ser transferidos desde un estado
ini ial arbitrario a ualquier otro estado deseado. La ondi ion ne esaria y
su iente para la ompleta ontrolabilidad del pro eso es que la matriz de
ontrolabilidad M dada por la siguiente expresion (subse ion 2.3.6):
 
M = H GH    Gn 1 H (4.7)
posea rango ompleto; es de ir, el rango de M debe ser igual al orden n del
pro eso.
La solu ion al problema del ontrol optimo uadrati o no esta ionario
esta dada por la siguiente matriz de ganan ia del ontrolador:
K (k) = [R + H T P (k + 1)H ℄ 1 H T P (k + 1)G (4.8)
donde P (k+1) es una matriz hermitiana de nida positiva de dimension nn.
Di ha matriz es solu ion de la siguiente e ua ion matri ial de Ri ati:
P (k) = Q + GT P (k +1)G GT P (k +1)H [R + H T P (k +1)H ℄ 1 H T P (k +1)G
(4.9)
La matriz P (K ) de la e ua ion (4.9) puede determinarse re ursivamente
partiendo de la siguiente ondi ion terminal para k = N :
P (N ) = S (4.10)
hasta llegar a la ondi ion ini ial P (0) para k = 0. El pro edimiento es
omo sigue: reemplazando P (N ) en la e ua ion (4.8), podemos obtener

4.3 Control Optimo Cuadrati o Esta ionario 127

K (N 1) (matriz de ganan ia en el tiempo k = N 1). Del mismo modo,


on P (N 1) podemos obtener K (N 2), y asi su esivamente hasta llegar a
obtener K (0). Las matri es de ganan ia K (k) (para k = N 1; N 2; : : : ; 0)
as determinadas, se pueden usar ahora para al ular la ley de ontrol dada
por la e ua ion (4.5). Por otra parte, se puede demostrar que el valor mnimo
de la fun ion de osto se determina de:
1
Jmin = xT (0)P (0)x(0) (4.11)
2
4.3 
Control Optimo Cuadrati o Esta ionario
En la se ion anterior vimos que uando la dinami a del sistema de ontrol
evolu iona en un tiempo N nito, la ganan ia de realimenta ion de estados
K (k) es una matriz variante en el tiempo. Sin embargo, uando la dinami a
del sistema de ontrol evolu iona hasta un tiempo N in nito, la solu ion del
ontrol optimo uadrati o pasa a ser una solu ion de estado esta ionario.
En este aso, la ganan ia K (k) se onvierte en una matriz onstante K .
Para N in nito, el termino xT (N )Sx(N ) de la e ua ion (4.4) desapare e
debido a que x(1) = 0. Por onsiguiente, la fun ion de osto para el estado
esta ionario toma la forma:
1X 1  
J= xT (k)Qx(k) + uT (k)Ru(k) (4.12)
2 k=0
Por otra parte, en el estado esta ionario la matriz P (k) resulta una matriz
onstante P . De este modo la e ua ion de Ri ati en estado esta ionario
toma la forma:
P = Q + GT P G GT P H [R + H T P H ℄ 1 H T P G (4.13)
mientras que la matriz de ganan ia K resulta:
K = [R + H T P H ℄ 1 H T P G (4.14)
u(k) = Kx(k) (4.15)
y la fun ion de osto mnima viene a ser:
1
Jmin = xT (0)P x(0) (4.16)
2
128 
Control Optimo

Una forma de obtener la matriz P de la e ua ion matri ial (4.13), es em-


pleando la e ua ion de Ri ati en estado no esta ionario dada en la e ua ion
(4.9), pero invirtiendo la dire ion del tiempo:
P (k + 1) = Q + GT P (k)G GT P (k)H [R + H T P (k)H ℄ 1 H T P (k)G (4.17)
La e ua ion (4.17) permite determinar una matriz P de magnitud onver-
gente usando al ulo re ursivo omo sigue. Asumiendo ini ialmente para
k = 0 que P (0) = 0, podemos obtener P (1); luego usar P (1) para obte-
ner P (2), y asi su esivamente, hasta llegar a un tiempo dis reto k para el
ual P (k) = P (k + 1) = P (k + 2) =   . Con la matriz P as determinada,
podemos al ular ahora la ganan ia K usando la e ua ion (4.14), para luego
obtener la ley de ontrol dada por la e ua ion (4.15). El diagrama de blo-
ques del ontrol optimo de estado esta ionario se representa en la gura 4.1,
en donde se asume que todos los estados se en uentran disponibles. Para
opera ion satisfa toria del sistema de lazo errado mostrada en di ha gura,
todas las ra es de su e ua ion ara tersti a:
det[zI G + HK ℄ = 0 (4.18)
deben posi ionarse dentro del r ulo unitario. Tales ra es se denominan
tambien valores propios, ra es ara tersti as, eigenvalores o modos de fun-
ionamiento.
u (k) x (k)
H I z -1

-K

Figura 4.1: Sistema de ontrol optimo a lazo errado.

4.4 
El Regulador Optimo Propor ional
El regulador es un sistema de ontrol realimentado, en donde la salida on-
trolada sigue a una se~nal de referen ia r(k) = (k) onstante, donde (k)

4.4 El Regulador Optimo Propor ional 129

es la fun ion es alon. Restringiremos nuestro tratamiento a sistemas uni-


variables. Previamente debemos re al ar que la naturaleza propor ional del
regulador en uestion, obliga a que se aplique on uidado a sistemas que
no poseen un omportamiento integral. Este es el punto en dis usion.
La gura 4.2 muestra el esquema de un regulador para la variable de
estado x2 del ve tor de estado x, empleando una ley de ontrol de reali-
menta ion de estados de la forma u = Kx.
x (k)
r(k) + u(k) y(k) = x 2 (k)
k2 x (k+1) = G x (k) + Hu(k) .. C
+ .
- -
- - k1

k3
..
.
kn

Figura 4.2: Esquema del regulador optimo propor ional.


Para una salida arbitraria, por ejemplo x2 :
u(k) = k1 x1 (k) k3 x3 (k)    kn xn (k) + k2 r(k) k2 x2 (k)
= Kx(k) + k2 r(k) (4.19)
Reemplazando u(k) en la e ua ion de estado del pro eso:
x(k + 1) = Gx(k) + Hu(k) = (G HK )x(k) + Hk2 r(k) (4.20)
Empleando la transformada Z en (4.20), la fun ion de transferen ia de pulso
on r(z) = R (z) resulta:
z
y(z ) = C (zI G + HK ) 1 Hk2 R(z ); (z ) =
(4.21)
1 z
Apli ando la propiedad del valor nal (subse ion 2.3.2) a y(z) obtenemos:
lim y(k) = lim z 1 y(z) = C (I G + HK ) 1Hk2 R
k!1 z !1 z
(4.22)
130 
Control Optimo

La ondi ion para que y = R es que C (I G + HK ) 1Hk1 = 1, que no


siempre se umple. Por ello, es ne esario afe tar a la se~nal de referen ia por
una ganan ia g de modo que:
gC (I G + HK ) 1 Hk2 R = 1 (4.23)
Este pro edimiento sera validado on los ejemplos 4.1 y 4.2.
4.5 Sele ion de las Matri es de Pondera i
on
La fun ion de osto para determinar la ganan ia K del ontrolador optimo
esta ionario esta dada en la e ua ion (4.12):
1 X1  
J= xT (k)Qx(k) + uT (k)Ru(k)
2 k=0
donde observamos que la matriz hermitiana R pondera la se~nal de on-
trol u(k) mientras que la matriz hermitiana Q pondera el ve tor de estado
x(k). En la subse ion 1.1.2 vimos que una matriz es hermitiana uando
su onjugada transpuesta (o su transpuesta onjugada) resulta en la misma
matriz. Por tanto, es valido que (R)T = (RT ) = R y (Q)T = (QT ) = Q.
Cuando las matri es R y Q son reales, enton es ambas deben ser simetri as
y se veri a que RT = R y QT = Q. Asimismo, en la subse ion 1.2.4
se dijo que una matriz uadrada R es de nida positiva si las ra es de su
e ua ion ara tersti a jzI Rj = 0 son todas positivas, mientras que una
matriz uadrada Q es semide nida positiva si las ra es de su e ua ion ar-
a tersti a jzI Qj = 0 son positivas o nulas (sin embargo, no todas las
ra es deben ser nulas).
La matriz R, por onvenien ia, puede tomar la forma de una matriz real
diagonal: 2 3
r1 0 : : : 0
6
6 0 r2
... 77
R=6 .
6
. . . 775
4 ..
0 ::: rp
donde los elementos r1, r2,. . .,rp deben ser todos positivos para que R sea
una matriz simetri a de nida positiva. Para sistemas on una sola se~nal de
entrada, R resulta un es alar de valor positivo.
4.5 Sele ion de las Matri es de Pondera ion 131

La matriz Q puede tomar tambien una forma diagonal:


2 3
q1 0 : : : 0
6
6 0 q2
... 77
Q=6 6 .. . . . 775
4 .
0 ::: qn
donde los elementos qi pueden ser positivos y algunos de ellos nulos para
que Q sea una matriz simetri a semide nida positiva.
Cada elemento qi o ada elemento ri dara un peso orrespondiente a ada
variable de estado xi o a ada se~nal de ontrol ui, respe tivamente. El rite-
rio para es oger los pesos esta en rela ion on la importan ia que le demos
a ada variable o se~nal en uestion. Para el aso del observador de estados,
las matri es de pondera ion Re y Qe deben ser elegidas de tal forma que
la respuesta del observador sea dos o tres ve es mas rapida (regla pra ti a)
en ompara ion on la respuesta del pro eso. Es de ir, la salida y(k) del
pro eso (ver gura 4.6) debe al anzar su estado esta ionario despues que la
salida y^(k) del observador ya la haya al anzado. Generalmente para que esto
o urra, los elementos de Re deben ser bastante menores que los elementos
de Qe. Debemos tener en uenta que un mayor peso en una de las variables
o asiona una mejor respuesta on rela ion a tal variable, pero disminuye el
desempe~no de las demas. Es enton es ne esario balan ear en forma ade-
uada los pesos, de manera tal que obtengamos un desempe~no general del
sistema, que se a erque en lo posible al optimo y que evidentemente, umpla
las espe i a iones de dise~no.
Ejemplo 4.1
El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque
su movimiento rotatorio, mediante a oples ade uados en su eje, puede on-
vertirse fa ilmente en movimiento de trasla ion. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir-
uito de armadura del motor a oplado a una arga. Los parametros del
motor fueron determinados experimentalmente, resultando: momento de
iner ia del rotor J = 0.01 kg-m2 =s2, oe iente de fri ion b = 0.1 N-s/m,
onstante ele tromotriz K = Ke = Kt = 0.01 N-m/A, resisten ia de armadu-
ra R = 1 ohm e indu tan ia de armadura L = 0.5 H.
Cabe anotar que el motor de este ejemplo no es el servomotor que estamos
usando para implementar los sistemas de ontrol de los pro esos des ritos en
132 
Control Optimo

R L
+ T
+
.
V e=Kθ J
- - .

I b

Figura 4.3: Pro eso motor D.C.


el aptulo 3. La \diferen ia" entre un motor y un servomotor es subjetiva.
Generalmente se aso ia a los servomotores on sistemas de ontrol donde la
poten ia involu rada es peque~na. Sin embargo, existen mu has ex ep iones.
Suponiendo que el rotor del motor y su eje son uerpos rgidos, la dinami a
que des ribe al pro eso motor D.C. es:
J  + b_ = KI
dI
L + RI = V K _
dt
donde V es la fuente de voltaje de entrada,  es la posi ion angular del eje, I
es la orriente de armadura, T = KtI es el torque motori o y e = Ke_ es la
fuerza ontraele tromotriz. Dise~nar el ontrolador optimo esta ionario que
estabili e la velo idad angular del eje del motor a 1 rad/s on las espe i -
a iones siguientes: tiempo de estabiliza ion menor que 2 s, error en estado
estable menor al 1 % y sobreimpulso de la salida menor al 5 %.
Solu ion: Empleando la transformada de Lapla e, la fun ion de transfe-
ren ia del motor uando la salida es la posi ion, resulta:
 K
=
V s[(Js + b)(Ls + R) + K 2 ℄
la ual posee omportamiento integral. Cuando la salida es la velo idad, la
fun ion de transferen ia es:
_ K
=
V (Js + b)(Ls + R) + K 2
en la que podemos observar que no posee omportamiento integral. Eligien-
do x1 = _ y x2 = I , las e ua iones de estado y de salida resultan:
   K  x   0 
x_ 1 = b
1 +
x_ 2
J
K
J
R x 2 1 V
L L L
4.5 Sele ion de las Matri es de Pondera ion 133
 
y = x1 =

1 0 x1 + DV ; D = [0℄
x2
El programa ejem4 1.m resuelve el problema planteado y los resultados se
muestran en la gura 4.4.
% ejem4_1.m SOLUCION DEL EJEMPLO 4.1
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J
-K/L -R/L℄;
B = [0;1/L℄;
C = [1 0℄; D = [0℄;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B℄; N = [C ' A'*C '℄;
% rank(M)=rank(N)=n=2 => . y .o.
[yRpta,xr℄ = step(A,B,C ,D ); % RESPUESTA AL ESCALON
T = 0.05; % SELECCIONADO CON LA INFORMACION ANTERIOR
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Q = [100 0;0 1℄; R = [0.1℄; % MATRICES DE PONDERACION
[K,P,E℄ = dlqr(G,H,Q,R); k1 = K(1); % GANANCIA OPTIMA K
g = 1/(C*inv(eye(2)-G+H*K)*H*k1); % CORRECCION DE r(k)
x = [0;0℄; N = 60; % CONDICION INICIAL
for k=1:N
r=1*g;
V(k) = -K*x + k1*r;
x = G*x + H*V(k);
y(k) = x(1);
end
% GRAFICOS
r = linspa e(0,T*N,size(yRpta,1));
subplot(3,1,1)
plot(r,yRpta); ylabel('yRpta (rad/s)'); grid;
t = linspa e(0,T*N,N);
subplot(3,1,2)
plot(t,y); ylabel('y (rad/s)'); grid;
subplot(3,1,3)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_1
% CALCULO RECURSIVO DE LA MATRIZ Pr Y CALCULO DE Kr
T = 15; Pr = zeros(2,2);
for i=1:T
Pr = Q + G'*Pr*G - G'*Pr*H*inv(R+H'*Pr*H)*H'*Pr*G;
134 
Control Optimo

end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr

0.1
yRpta (rad/s)

0.05

0
0 0.5 1 1.5 2 2.5 3

1.5
y (rad/s)

0.5

0
0 0.5 1 1.5 2 2.5 3

40
V (voltios)

20

0
0 0.5 1 1.5 2 2.5 3
Tiempo (s)

Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un es alon
de 1 rad/s. La velo idad angular ontrolada es y; la se~nal de ontrol es V .
Ejemplo 4.2
Determine el ontrolador optimo uadrati o esta ionario que estabili e la
posi ion angular del eje del motor (des rito en el ejemplo 4.1) a 1 rad, on
las espe i a iones siguientes: tiempo de estabiliza ion menor que 2 s, error
en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %.
Solu ion: Eligiendo x1 = _, x2 = I y x3 = , las e ua iones de estado y de
salida resultan:
2 3 2 K 0 32 x 3 2 0 3
x_ 1 b
J J 1
4 x_ 2 5 = 4 K R 0 54 x 5 +4 1 5V
L L 2 L
x_ 3 1 0 0 x3 0
2 3
  x1
y = x3 = 0 0 1 4 x2 5 + DV ; D = [0℄
x3
4.5 Sele ion de las Matri es de Pondera ion 135

El programa ejem4 2.m resuelve el problema planteado y los resultados se


muestran en la gura 4.5.
% ejem4_2.m SOLUCION DEL EJEMPLO 4.2
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J 0
-K/L -R/L 0
1 0 0℄;
B = [0;1/L;0℄;
C = [0 0 1℄; D = [0℄;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B A^2*B℄; N = [C ' A'*C ' A'^2*C '℄;
% rank(M) = rank(N) = n = 3 => . y .o.
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Q = [0.1 0 0;0 0.1 0;0 0 300℄; R = [0.1℄;
% MATRICES DE PONDERACION
[K,P,E℄ = dlqr(G,H,Q,R); k3 = K(3); % GANANCIA OPTIMA K
g = 1/(C*inv(eye(3)-G+H*K)*H*k3); % CORRECCION DE r(k)
% COMO g = 1 NO SE REQUIERE FACTOR DE CORRECCION
x = [0;0;0℄; N = 60; % CONDICION INICIAL
for k=1:N
r=1;
V(k) = -K*x + k3*r;
x = G*x + H*V(k);
y(k) = x(3);
end
% GRAFICOS
t = linspa e(0,T*N,N);
subplot(2,1,1)
plot(t,y); ylabel('y (rad)'); grid;
subplot(2,1,2)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_2
% CALCULO RECURSIVO DE LA MATRIZ Pr Y CALCULO DE Kr
T = 20; Pr = zeros(3,3);
for i=1:T
Pr = Q + G'*Pr*G - G'*Pr*H*inv(R+H'*Pr*H)*H'*Pr*G;
end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr
136 
Control Optimo

1.5

y (rad)
0.5

0
0 0.5 1 1.5 2 2.5 3

60

40
V (voltios)

20

−20
0 0.5 1 1.5 2 2.5 3
Tiempo (s)

Figura 4.5: Salida ontrolada y (posi ion angular) y se~nal de ontrol V para
el motor D.C.
4.6 Dise~ 
no del Observador Optimo Cuadrati o
En mu hos asos pra ti os, solo unas uantas variables del ve tor de estado
x(k) del pro eso son sus eptibles de ser medidas en forma dire ta. En tales
situa iones ne esitamos estimar di ho ve tor de estado; es de ir, requerimos
hallar un ve tor de estado estimado x^ (k). Esto puede lograrse mediante el
empleo de un observador dis reto de estados. El dise~no de di ho observador
impli a determinar su matriz de ganan ia Ke, que puede ser al ulada a
partir de la minimiza ion de una fun ion de osto uadrati a. El diagrama
de bloques del observador de estados se representa en la gura 4.6, donde
podemos notar que el observador emplea las medi iones de la salida y(k) y
de la se~nal de ontrol u(k).
De la gura 4.6 podemos formular:
x(k + 1) = Gx(k) + Hu(k) (4.24)
y(k) = Cx(k) (4.25)
mientras que la e ua ion del observador toma la forma:
x^ (k + 1) = Gx^ (k) + H fu(k) + Ke [y(k) C x^ (k)℄g (4.26)

4.6 Dise~no del Observador Optimo Cuadrati o 137

u(k) + x (k) y (k)


H I z -1 C
+
G

Ke
+
+ x^ (k) - +
H I z -1 C
+
+
G

Figura 4.6: Diagrama de bloques del observador de estados


donde x^ (k) es el ve tor de estado estimado de dimension n, y^ (k) representa
el ve tor de salida estimado de dimension m, Ke es la matriz de ganan ia
de realimenta ion del observador on dimension n  m y C es la matriz de
salida de dimension m  n. Reemplazando la e ua ion (4.25) en (4.26) y
restando la e ua ion resultante de (4.24), podemos obtener la e ua ion del
error del observador:
e(k + 1) = [G Ke C ℄e(k); e(k) = x(k) x^ (k) (4.27)
mientras que su e ua ion ara tersti a toma la forma:
det[zI G + Ke C ℄ = 0 (4.28)
en donde la matriz Ke debe ser es ogida apropiadamente para que el error
tienda a ero on una velo idad ade uada. Cabe men ionar tambien que las
ra es de di ha e ua ion ara tersti a deben posi ionarse dentro del r ulo
unitario para opera ion satisfa toria del observador.
El observador que nos o upa requiere que el pro eso sea ompletamente
observable; es de ir, que ualquier estado ini ial pueda determinarse a partir
de la observa ion de los ve tores de salida y de ontrol, en un numero nito
de perodos de muestreo. Ya es ono ido que el riterio para observabilidad
ompleta requiere onstruir la siguiente matriz de observabilidad:
N = [ C T GT C T    (GT )n 1 C T ℄ (4.29)
138 
Control Optimo

La ondi ion ne esaria y su iente para que el sistema sea ompletamente


observable es que la matriz N posea rango n (rango ompleto). Es de ir, el
rango de N debe ser igual al orden del pro eso.
Para al ular la matriz Ke podemos pro eder en la misma forma en que
lo hi imos on la matriz de ganan ia K del ontrolador; es de ir, podemos
utilizar las e ua iones que des riben al sistema de ontrol optimo, onvenien-
temente modi adas, para que nos permitan al ular Ke. El pro edimiento
es omo sigue. Dado que el determinante de una matriz y el de su transpues-
ta son iguales, podemos modi ar la forma de la e ua ion (4.28) omo sigue:
det[zI G + Ke C ℄ = det[(zI G + Ke C )T ℄ = det[zI GT + C T KeT ℄ (4.30)
Comparando la e ua ion ara tersti a del ontrolador de estados (4.18) on
la e ua ion (4.30), podemos dedu ir que se tienen que ha er las siguientes
modi a iones:
G ! GT ; H ! CT ; K ! KeT (4.31)
Empleando tales modi a iones en las estru turas de la e ua ion de estado
del pro eso x(k +1) = Gx(k)+Hu(k), de su e ua ion de salida y(k) = Cx(k)
y de su ley de ontrol u(k) = Kx(k), obtendremos la siguiente e ua ion
de estado:
(k + 1) = GT (k) + C T (k) (4.32)
on una ley de ontrol que posee la forma siguiente:
(k) = KeT (k) (4.33)
Empleando las e ua iones (4.32) y (4.33) en la fun ion de osto siguiente:
1X 1  
J= T (k)Qe (k) + T (k)Re (k) (4.34)
2 k=0
enton es la orrespondiente e ua ion de Ri ati toma la forma:
Pe = Qe + GPe GT GPe C T [Re + CPe C T ℄ 1 CPeGT (4.35)
y la matriz de ganan ia Ke viene dada por:
Ke = [Re + CPeC T ℄ 1 CPeGT (4.36)

4.7 El Regulador Optimo Propor ional Integral 139

Para determinar Pe a partir de la e ua ion (4.35), empleamos el mismo


pro edimiento que para determinar P (se ion 4.3). Es de ir, para al ular
Pe , utilizaremos la siguiente e ua ion re ursiva:
Pe (k + 1) = Qe + GPe (k)GT GPe (k)C T [Re + CPe (k)C T ℄ 1 CPe(k)GT
(4.37)
Ejemplo 4.3
Dise~nar un observador optimo para el pro eso motor D.C. del ejemplo 4.2
asumiendo que se requiere observar los estados x1, x2 y x3.
Solu ion: Ver programa ejem4 3.m. En la gura 4.3 se muestra la evolu-
ion de los valores de algunos elementos de Pe hasta al anzar el estado de
equilibrio.
% ejem4_3.m OBSERVADOR OPTIMO PARA EL MOTOR D.C.
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J 0
-K/L -R/L 0
1 0 0℄;
B = [0;1/L;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Pe =zeros(3,3); % ondi ion ini ial
Qe = [1 0 0;0 1 0;0 0 1℄; Re = [1℄; % TODOS CON IGUAL PESO
for k=1:40
Pe = Qe + G*Pe*G' - G*Pe*C'*inv(Re + C*Pe*C')*C*Pe*G';
pe11(k) = Pe(1,1); pe21(k) = Pe(2,1); pe31(k) = Pe(3,1);
end
t = linspa e(0,length(pe11),length(pe11)); % EJE DE TIEMPOS
plot(t,pe11,t,pe21,'--',t,pe31,'-.');
xlabel('Muestras k');
ylabel('Algunos elementos de Pe'); grid
print -deps -f ejem4_3
Ke = inv(Re + C*Pe*C')*C*Pe*G'; % GANANCIA DEL OBSERVADOR

4.7 
El Regulador Optimo Propor ional Integral
Generalmente es ne esario a~nadir a ion integral, al regulador propor ional
visto en la se ion anterior, debido a que errores de estado permanente
140 
Control Optimo

1.8

1.6

1.4
Algunos elementos de Pe

1.2

0.8

0.6

0.4

0.2

0
0 5 10 15 20 25 30 35 40
Muestras k

Figura 4.7: Algunos elementos de Pe: Pe(1; 1) ( urva solida), Pe(2; 1) ( urva
en trazos) y Pe(3; 1) ( urva on puntos y rayas).

pueden apare er si los parametros del pro eso o su estru tura (su e ua ion
de estado) no han sido estimados on su iente exa titud. Para pro esos
que no poseen propiedades integradoras, la in lusion de a ion integral en el
sistema de ontrol permite obtener un error esta ionario nulo. La gura 4.8
ilustra un regulador optimo (propuesto en [3℄) para sistemas univariables,
que in luye di ha a ion integral en el sistema de ontrol: un integrador on
se~nal de salida v(k) y una ganan ia integral KI aso iada. Siendo la se~nal de
r(k) v(k) u (k) x (k) y (k)
KI H I z-1 C
+ + +
- - +
I z-1 G

Figura 4.8: El regulador propor ional integral.


referen ia r(k) un es alon unitario, de la gura 4.8 podemos dedu ir que las

4.7 El Regulador Optimo Propor ional Integral 141

e ua iones de estado y de salida del pro eso son:


x(k + 1) = Gx(k) + Hu(k) (4.38)
y(k) = Cx(k) (4.39)
La se~nal de ontrol u(k) viene dada por:
u(k) = Kx(k) + KI v(k) (4.40)
donde la matriz de ganan ia del ontrolador es:
 
K = K1 K2    Kn (4.41)
La e ua ion para el integrador resulta:
v(k) = v(k 1) + r(k) y(k) (4.42)
de donde se obtiene:
v(k + 1) = v(k) + r(k + 1) y(k + 1)
= v(k) + r(k + 1) C [Gx(k) + Hu(k)℄
= (1 CHKI )v(k) + ( CG + CHK )x(k) + r(k + 1)(4.43)
Empleando las e ua iones (4.38) y (4.40) obtenemos:
x(k + 1) = Gx(k) + H [ Kx(k) + KI v(k)℄
= (G HK )x(k) + HKI v(k) (4.44)
y de las e ua iones (4.43) y (4.44) y (4.39) dedu imos:
      
x(k + 1) = G HK HKI x(k) + 0 r(k + 1)
v(k + 1) CG + CHK 1 CHKI v(k) 1
  (4.45)
  x(k )
y(k) = C 0 v(k) (4.46)
En el estado de equilibrio (para k ! 1), los valores de x(k), u(k) y v(k)
toman valores esta ionarios x(1), u(1) y v(1). As la e ua ion (4.45) se
onvierte en:
      
x(1) = G HK HKI x(1) + 0 (4.47)
v(1) CG + CHK 1 CHKI v(1) r
142 
Control Optimo

Si de nimos:
x(k) x(1) = xe (k) (4.48)
v(k) v(1) = ve (k) (4.49)
y restamos ahora la e ua ion (4.47) de (4.45), y luego usando las rela iones
(4.48) y (4.49) obtendremos:
    
xe (k + 1) = G HK HKI xe (k)
ve (k + 1) CG + CHK 1 CHKI ve (k)
      
G 0
= CG I ve(k) + CHx ( k ) H   xe (k )
ve (k) (4.50)
e K KI

La e ua ion (4.50) puede ser es rita omo:


 (k + 1) = G~ (k) + Hw ~ (k) (4.51)
w(k) = K ~ (k ) (4.52)
donde:  
x
 (k) = v (k)e (k ) (4.53)
e
 
~G(k) = G 0 (4.54)
CG I
 
H~ (k) = H
CH (4.55)
K~ (k) = K
 
KI (4.56)
Observar que la in lusion de un integrador en el sistema de ontrol aumenta
en uno el orden del sistema; es de ir, si n es el orden del sistema original, el
nuevo orden del sistema on un integrador es (n + 1). En otras palabras, el
ve tor de estado x(k) del sistema original posee dimension n, mientras que
el ve tor de estado (k) del regulador propor ional integral posee dimension
(n + 1).
Teniendo en mente las rela iones anteriores, podemos de nir la siguiente
fun ion de osto:
1 1 h i
J=
X
~ (k) + w2 (k)R~
 (k)T Q (4.57)
2 k=0

4.7 El Regulador Optimo Propor ional Integral 143

Debemos enton es al ular una matriz K~ ade uada de forma tal que mini-
mi e la fun ion de osto dada en la e ua ion (4.57). Empleando el mismo
pro edimiento usado en la se ion 4.3, es posible formular la e ua ion de
Ri ati y la e ua ion de ganan ia del ontrolador K~ para el regulador, omo
sigue:
P~ = Q~ + G~ T P~ G~ G~ T P~ H~ [R~ + H~ T P~ H~ ℄ 1 H~ T P~ G~ (4.58)
K~ = [R~ + H~ T P~ H~ ℄ 1 H~ T P~ G~ (4.59)
La sele ion del tiempo de muestreo se trata en la subse ion 4.9.6.
Ejemplo 4.4
Dise~nar el regulador propor ional integral optimo esta ionario que sea apaz
de estabilizar la velo idad angular del eje del motor (des rito en el ejemplo
4.1) a 1 rad/s, on las espe i a iones siguientes: tiempo de estabiliza ion
menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la
salida menor al 5 %.
Solu ion: El programa ejem4 4.m resuelve el problema y sus resultados se
muestran en la gura 4.9.
% ejem4_4.m SOLUCION DEL EJEMPLO 4.4
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J
-K/L -R/L℄; % orden n=3
B = [0;1/L℄;
C = [1 0℄; D = [0℄;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B℄; N = [C ' A'*C '℄; % rank(M) = rank(N) = n = 2
% LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Gtilde = [G zeros(2,1)
-C*G eye(1,1)℄; % DEBE SER DE ORDEN n+1=4
Htilde = [H
-C*H℄;
Q = [1 0 0;0 0.1 0;0 0 2℄; R = [0.01℄; % MATRICES DE PONDERACION
[Ktil,Ptil,E℄ = dlqr(Gtilde,Htilde,Q,R); % Ktil: GANANCIA OPTIMA
K = [Ktil(1) Ktil(2)℄; KI = -Ktil(3);
x = [0;0℄; yi=0; v=0; % CONDICIONES INICIALES
N = 60; r=1;
% RESPUESTA AL ESCALON r=1
144 
Control Optimo

for k=1:N
v = v + r - yi;
V(k) = -K*x + KI*v;
x = G*x + H*V(k);
y(k) = x(1); yi = y(k);
end
% GRAFICOS
t = linspa e(0,T*N,N);
subplot(2,1,1)
plot(t,y); ylabel('y (rad/s)'); grid;
subplot(2,1,2)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_4
% CALCULO RECURSIVO DE LA MATRIZ Ptilde Y CALCULO DE Ktilde
T = 15; Ptilde = zeros(3,3);
for i=1:T
Ptilde = Q + Gtilde'*Ptilde*Gtilde - Gtilde'*Ptilde*Htilde*...
inv(R+Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
end
Ktilde = inv(R + Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
% SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde

1.5

1
y (rad/s)

0.5

0
0 0.5 1 1.5 2 2.5 3

25

20
V (voltios)

15

10

5
0 0.5 1 1.5 2 2.5 3
Tiempo (s)

Figura 4.9: Salida ontrolada y y se~nal de ontrol V para el ejemplo 4.4.


4.8 Pro edimiento de Dise~no e Implementa ion 145

4.8 Pro edimiento de Dise~


no e Implementa ion
El pro edimiento de dise~no e implementa ion en tiempo real de un sistema
de ontrol optimo uadrati o omprende los pasos siguientes:
1) Formular el problema (determinar espe i a iones de dise~no).
2) Determinar el modelo matemati o del pro eso a ontrolar (se iones
3.1 y 3.2) y determinar si es ompletamente ontrolable y ompleta-
mente observable (se ion 2.3.6).
3) Cal ular la matriz de ganan ia optima K~ de ontrol (se ion 4.7).
4) Cal ular la matriz de ganan ia optima Ke del observador (se ion 4.3).
5) Simular el sistema de ontrol optimo uadrati o.
6) Implementar el hardware del sistema (subse ion 4.9.6).
7) Implementar el software del sistema (subse ion 4.9.7).
8) Realizar pruebas de fun ionamiento (obtener resultados experimen-
tales satisfa torios).
4.9 
Control Optimo Cuadrati o del Pendulo In-
vertido
En esta se ion nos o uparemos del dise~no del ontrol optimo uadrati o del
pro eso pendulo invertido empleando el pro edimiento de dise~no des rito en
la se ion 4.8.
4.9.1 Formula ion del Problema
Dado el pro eso pendulo invertido, onformado por una varilla montada en
un arro impulsado por un servomotor D.C. ontrolado por voltaje de ar-
madura, se desea dise~nar un servo ontrolador que sea apaz de mantener
el pendulo invertido en posi ion verti al (tanto omo sea posible), y al mis-
mo tiempo, mantener el arro en una posi ion referen ial. En el problema
planteado, el pendulo se mueve en el mismo plano que la traye toria del
arro. El sistema de ontrol sera dise~nado empleando la te ni a de ontrol
146 
Control Optimo

optimo uadrati o y la on gura ion de un servosistema. La entrada al pro-


eso (la se~nal de ontrol) es el voltaje de armadura del servomotor D.C. y las
salidas del servosistema son la posi ion angular del pendulo y la traye toria
horizontal del arro. Se desea un tiempo de estabiliza ion de la posi ion del
arro de aproximadamente 6 segundos on el menor sobreimpulso posible.
Cabe anotar que para al anzar las espe i a iones de dise~no planteadas,
se requiere sele ionar ade uadamente las matri es de pondera ion, omo
veremos mas adelante.
4.9.2 El Modelo del Pro eso a Controlar
La determina ion del modelo matemati o del pro eso pendulo invertido fue
tratado on amplitud en la se ion 3.1. Para una fre uen ia de muestreo
de 200 Hz y asumiendo reten ion de memoria de orden ero, la e ua ion
de estado dis reta del pro eso y su e ua ion de salida se determinan omo
sigue:
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C = [0 0 1 0℄; % SALIDA: POSICION DEL CARRO

4.9 Control Optimo Cuadrati o del Pendulo Invertido 147

Ts = 1/200; % TIEMPO DE MUESTREO


[G,H℄ = 2d(A,B,Ts);

2 3 2 3
1:0002 0:0050 0 0:0002 0:0004
6 0:0995 1:0002 0 0:0963 7 6 0:1497 7
G=6 7; H=6 7
4 0:0000 0:0000 1:0000 0:0049 5 4 0:0002 5
0:0019 0:0000 0 0:9508 0:0765
 
C= 0 0 1 0

4.9.3 Cal ulo de la Matriz de Ganan ia del Controlador


En la se ion 4.7 vimos que la estru tura del servosistema a emplear en el
dise~no del ontrolador optimo se des ribe mediante las e ua iones (4.51) y
(4.52), a saber:
~ (k) + Hw
 (k + 1) = G ~ (k); w(k) = K ~ (k)
donde:
   
G~ (k) = G 0 ; H~ (k) = H ; K~ (k) =  K KI 
CG I CH
Adi ionalmente debemos averiguar si el pro eso es ompletamente ontro-
lable formando la matriz de ontrolabilidad M y averiguando su rango, que
debe ser 5. El al ulo se realiza omo sigue:
G1 = [G zeros(4,1)
-C *G 1℄;
H1 = [H;-C *H℄;
% MATRIZ DE CONTROLABILIDAD
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM = 5 => COMPLETAMENTE CONTROLABLE

2 3 2 3
1:0002 0:0050 0 0:0002 0 0:0004
6
6 0:0995 1:0002 0 0:0963 0 7
7
6
6 0:1497 7
7
G~ = 6
6 0:0000 0:0000 1:0000 0:0049 0 7;
7
~ =6
H 6 0:0002 7
7
4 0:0019 0:0000 0 0:9508 0 5 4 0:0765 5
0:0000 0:0000 1:0000 0:0049 1:0000 0:0002
148 
Control Optimo

Para determinar la matriz de ganan ia K~ del ontrolador de realimenta ion


de a uerdo a lo estable ido en la se ion 4.7, sele ionamos antes las matri es
de pondera ion R~ y Q~ omo sigue:
2
200 0 0 0 0 3
6 0 0 0 0 0 77
R~ = [100℄; Q~ = 6
6
6 0 0 100 0 0 77
4 0 0 0 0 0 5
0 0 0 0 0:01
En la matriz Q~ observamos que se esta dando mayor peso al angulo del
pendulo (200). La posi ion del arro re ibe un peso de 100 mientras que
al integrador se le asigna 0.01. Con el proposito de evitar la satura ion del
ampli ador, tenemos que redu ir la amplitud de la se~nal de entrada (o de
ontrol) a di ho ampli ador, pues de otro modo se originaran efe tos no
lineales indeseados en el sistema. Para tal proposito, R~ toma el valor de 100,
dando as mayor enfasis a la se~nal de ontrol en el pro eso de optimiza ion.
Para al ular la matriz K~ debemos resolver la e ua ion de Ri ati (4.58)
pero en su forma re ursiva:
P~ (k + 1) = Q~ + G~ T P~ (k)G~ G~ T P~ (k)H~ [R~ + H~ T P~ (k)H~ ℄ 1 H~ T P~ (k)G~ (4.60)
El programa siguiente (en odigo MATLAB) al ula el valor esta ionario de
la matriz solu ion P~ (k), donde P~ (0) es una ondi ion ini ial arbitraria:
P = zeros(5,5);
for i = 1:1000
P = Q + G1'*P*G1 - G1'*P*H1*inv(R + H1'*P*H1)*H1'*P*G1
end
donde G1  G~ , H21  H~ , P  P~ , Q  Q~ y R  R~ . As obtenemos:3
1:3774 0:3112 0:9019 0:5082 0:0035
6
6 0:3112 0:0727 0:2107 0:1197 0:0008 7
7
P~ = 105  6
6 0:9019 0:2107 0:9352 0:3735 0:0041 7
7
4 0:5082 0:1197 0:3735 0:2000 0:0015 5
0:0035 0:0008 0:0041 0:0015 0:0000

Cono ida la matriz P~ , podemos ahora al ular la matriz K~ empleando la


e ua ion (4.59). As se obtiene::
K~ = [R~ + H~ T P~ H~ ℄ 1 H~ T P~ G~ = [K KI ℄
donde:
K = [ 7:7295 1:7311 2:9357 2:6291℄; KI = [ 0:0097℄

4.9 Control Optimo Cuadrati o del Pendulo Invertido 149

4.9.4 Cal ulo la Matriz de Ganan ia del Observador


Previo al al ulo la matriz de ganan ia del observador, debemos determinar
si el pro eso es ompletamente observable. Para ello formamos la matriz de
observabilidad empleando la e ua ion (4.29) on n = 4, omo sigue:
C = 1 0 0 0
0 0 1 0℄;
N = [C' G'*C' G'^2*C' G'^3*C' G'^4*C'℄;
rnN = rank(N); % debe ser rnN = 4

Para al ular la matriz de ganan ia Ke del observador optimo (se ion 4.3),
debemos sele ionar previamente las matri es de pondera ion Re y Qe:
2
 
1 0 0 0 3
Re = 10 10 0 ; Qe = 66 0 1000 0 0 77
4 0 0 0:9 0 5
0 0 0 1000
Podemos observar que en la matriz Re se da un peso de 10 a la medi ion
de la posi ion del arro, pues es mas exa ta que la medi ion del angulo,
debido a que el sensor usado para medir di ho angulo posee un error de
uantiza ion mayor. En la matriz Qe se asigna un peso de 1000, el mayor en
Qe, tanto a la velo idad angular de la varilla omo a la velo idad del arro,
porque estas son las variables que no son posibles de medir dire tamente y
ne esitamos que tengan una mayor in uen ia en el pro eso de estima ion.
Notar tambien que la posi ion del arro posee un peso de 0.9, algo menor
omparado on el peso de 1 atribudo al angulo de la varilla, dado que el
sensor de posi ion del arro es mas exa to que el sensor de posi ion de la
varilla.
Para al ular la matriz de ganan ia del observador Ke al ulamos pre-
viamente la matriz Pe a partir de la e ua ion (4.37):
Pe (k + 1) = Qe + GPe (k)GT GPe (k)C T [Re + CPe (k)C T ℄ 1 CPe(k)GT
El programa siguiente (en odigo MATLAB) al ula el valor esta ionario de
la matriz solu ion Pe (el valor ini ial de Pe es arbitrario):
for i = 1:40
Pe = Qe + G*Pe*G'-G*Pe*C'*inv(Re+C*Pe*C^(T))*C*Pe*G'
end
150 
Control Optimo

donde P e = Pe, Qe = Qe. De esta manera obtenemos:


2 3
0:0021 0:0640 0:0003 0:0136
6 0:0640 9:7336 0:0397 2:2269 7
Pe = 103  6 7
4 0:0003 0:0397 0:0047 0:0753 5
0:0136 2:2269 0:0753 6:3346

Luego, la matriz de ganan ia Ke se al ula on la e ua ion (4.36):


Ke = [Re + CPeC T ℄ 1 CPeGT
lo que resulta en: 2 3 T
0:7802 0:0185
6 20:9413 2:8240 7
Ke =  6 7
4 0:0752 0:3450 5
3:7683 4:7913


4.9.5 Simula ion del Sistema de Control Optimo
Con los datos determinados, podemos entrar ahora a la fase de simula ion
del sistema de ontrol optimo uadrati o, antes de ini iar su implementa ion
en tiempo real. El siguiente programa disopt2.m, ademas de efe tuar todos
los al ulos anteriores, realiza la simula ion del sistema ontrolado emple-
ando una ley de ontrol optima y on observa ion optima de estados. Es
interesante anotar que el modelo del pro eso empleado en la simula ion es
el modelo no lineal (3.31) dis retizado dire tamente. Tambien hemos a~nadi-
do senten ias para simular el efe to de satura ion del ampli ador. Como
se~nal de referen ia se emplea un es alon de valor 1.5 m. Los resultados de
la simula ion se pueden observar en las guras 4.10, 4.11 y 4.12.
% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO
lear all
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);

4.9 Control Optimo Cuadrati o del Pendulo Invertido 151

Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C = [0 0 1 0℄; % POSICION DEL CARRO
Ts = 1/200; % TIEMPO DE MUESTREO
[G,H℄ = 2d(A,B,Ts);
G1 = [G zeros(4,1)
-C *G 1℄;
H1 = [H;-C *H℄;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [200 0 0 0 0
0 0 0 0 0
0 0 100 0 0
0 0 0 0 0
0 0 0 0 0.01℄; R = [100℄;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP℄ = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4)℄; KI = - KK(5);
% CALCULO DE LA GANANCIA DE UN OBSERVADOR
C = [1 0 0 0
0 0 1 0℄; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1 0 0 0
0 1000 0 0
0 0 0.9 0
0 0 0 1000℄; Re = [1 0;0 10℄;
Pe = zeros(4,4);
152 
Control Optimo

for i=1:40
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe℄ = dlqr(G',C',Qe,Re); KKe=KKeT';% Pe=PPe, Ke=KKe
% SIMULACION DEL SISTEMA DE CONTROL OPTIMO
% CONDICIONES INICIALES
x1=0; x2=0; x3=0; x4=0; x5=0;
xe = [0;0;0;0℄; r=1.5;
v=0; N = 4000; % TIEMPO EN SEGUNDOS: Ts*N
for k=1:N
u = -K*xe + KI*v;
if(u > 1.4), u = 1.4; % PARA NO SATURAR EL SERVOMOTOR
elseif(u < -1.4), u = -1.4;
end
xe = G*xe + u*H + Ke*([x1;x3℄ - C*xe);
% PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE
den = -M2^2* os(x1)^2+(M1+J2)*J1;
x1 = x1 + Ts*x2;
x2 = x2 + ...
Ts*(-M2^2*sin(x1)* os(x1)*x2^2+M2*Bx* os(x1)*x4 ...
+M2*(M1+J2)*g*sin(x1)-M2*Kx* os(x1)*KA*u)/den;
x3 = x3 + Ts*x4;
x4 = x4 + ...
Ts*(M2^2*g*sin(x1)* os(x1)+J1*M2*sin(x1)*(x2)^2 ...
-J1*Bx*x4+J1*Kx*KA*u)/den;
v = v + r - x3;
y1(k)=x1; y2(k)=x3; U(k) =u;
end
% GRAFICOS
t = linspa e(0,Ts*N,N);
figure(1)
plot(t,y2(1:N)); grid
ylabel('Posi ion del arro')
xlabel('Tiempo (s)')
print -deps -f spoz
figure(2)
plot(t,y1(1:N)); grid
ylabel('Posi ion angular del pendulo')
xlabel('Tiempo (s)')
print -deps -f spoa
figure(3)
plot(t,U); grid

4.9 Control Optimo Cuadrati o del Pendulo Invertido 153

ylabel('Se~nal de ontrol u')


xlabel('Tiempo (s)')
print -deps -f spou

1.6

1.4

1.2

1
Posición del carro

0.8

0.6

0.4

0.2

−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.10: Simula ion del sistema pendulo invertido: posi ion del arro.

4.9.6 El Hardware del Sistema de Control


La gura 4.13 muestra los omponentes fsi os (el hardware) del sistema de
ontrol. Tales omponentes son: el pro eso a ontrolar (pendulo invertido
o grua-puente), los sensores de posi ion, el ampli ador de poten ia, la tar-
jeta de adquisi ion de datos Lab-PC+, y una omputadora personal on
mi ropro esador Pentium. El pro eso pendulo invertido (o grua-puente) se
muestra esquematizado en la gura 4.14 y omprende:
 Un servomotor D.C. Pittman de iman permanente de aproximada-
mente 350 rpm, que posee redu ion de velo idad interna y odi ador
opti o in orporado, uya opera ion expli aremos mas adelante.
 Dos poleas de radio igual a 6.48 m, una de las uales esta unida al
eje del motor y la otra, al otro extremo de un arril.
 Un arril de metal por donde se desliza el arro porta-pendulo.
154 
Control Optimo

0.15

0.1
Posición angular del péndulo

0.05

−0.05

−0.1
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.11: Simula ion del sistema pendulo invertido: posi ion angular del
pendulo.
0.7

0.6

0.5

0.4
Señal de control u

0.3

0.2

0.1

−0.1

−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.12: Simula ion del sistema pendulo invertido: se~nal de ontrol.

4.9 Control Optimo Cuadrati o del Pendulo Invertido 155

COMPUTADORA
PERSONAL

TARJETA LAB-PC+

AMPLIFI- PROCESO:
SALIDAS DAC0 ’
PENDULO
CADOR
ANALOGICAS DAC1 INVERTIDO /
PWM GRUA PUENTE

PA0 16 bits
.. SENSOR EN
PA .
PA7 EL MOTOR
COMPUERTAS MUX
16 bits
DIGITALES PB0
.. SENSOR EN
PB . LA VARILLA
DE ENTRADA
PB7
Y SALIDA SALIDAS
PC0
..
PC .
PC6
PC7
Fs
CONTADOR / OUTB0
TEMPORIZADOR

Figura 4.13: Implementa ion del sistema de ontrol.


156 
Control Optimo

SERVOMOTOR PENDULO

POLEA

CARRO

CARRIL

Figura 4.14: Sistema pendulo invertido.


 Un arro de metal on uatro ruedas de bron e, el ual posee una junta
movil (para sujetar una varilla metali a por uno de sus extremos) y
un odi ador opti o in orporado (ver gura 4.15). El peso total del
arro es de 920 gr. El esquema del arro se muestra en la gura 4.16.
 Una varilla metali a de 70 m de largo y de 64 gr que ha e la fun ion
de pendulo.
Codificador optico

Polea
Alimentacion

. . .

Servomotor D.C .

Reductor de
velocidad

Figura 4.15: Servomotor on odi ador opti o y polea.

Los Sensores de Posi ion


El sistema de ontrol posee dos sensores de posi ion, uno de los uales se en-
arga de medir la posi ion angular del motor y el otro se en arga de medir la

4.9 Control Optimo Cuadrati o del Pendulo Invertido 157


Pendulo

Codificador

optico

Ruedas

Figura 4.16: Esquema del arro.


posi ion angular de la varilla. Cada sensor onsiste de un odi ador opti o
rotatorio, ompuesto de un dis o metali o on un numero determinado de
ranuras igualmente espa iadas y ubi adas en el permetro del dis o, y un
emisor-sensor opti o que genera un haz de luz perpendi ular al dis o (ver
gura 5.13).
Canal A
Canal B
Fuente de luz
Transistor
o’ ptico

Eje del servomotor

Disco con
mascara

Figura 4.17: Codi ador opti o.


El pro eso de sensado es el siguiente. Al girar el dis o a la misma ve-
lo idad del servomotor (o a la misma velo idad de la varilla), las ranuras
158 
Control Optimo

permiten el paso de luz a traves del dis o. Di ho haz a tiva el transistor


opti o del emisor-sensor, generando un pulso de orriente que se onstituye
as en la entrada a un ontador de pulsos. El numero de ranuras que posee el
sensor de la varilla es 256, mientras que el sensor del servomotor posee 512
ranuras. Hay que tomar en uenta ademas que el odi ador in orporado
en el motor es solidario al eje primario; es de ir, para obtener el angulo de
giro en el eje de salida, se tiene que apli ar un fa tor de redu ion uyo valor
numeri o se da en la se ion 3.2.6.
El odi ador opti o da omo salida un tren de pulsos on una fre uen ia
propor ional a la velo idad angular del dis o y otro tren de pulsos desfasado
en +90 o 90 grados respe to al primero, de a uerdo al sentido de giro
del dis o. Estos dos trenes de pulsos pasan luego a un de odi ador de
uadratura LS7083 que genera las se~nales Clo k Up o Clo k Down, segun
sea positivo o negativo el sentido de giro del dis o (ver gura 5.14). Las
se~nales Clo k Up y Clo k Down alimentan a un ontador Up/Down de 16
bits ompuesto por 4 ontadores 74LS193 de 4 bits one tados en as ada.
Los dos odi adores opti os poseen la ir uitera des rita anteriormente,
de modo tal que para ada sensor tenemos una salida de 16 bits que se
alma ena en un registro.
La sele ion entre una u otra salida binaria se realiza por medio de la
habilita ion de un registro, o mediante una se~nal proveniente de la omputa-
dora personal (ver gura 4.13). En on lusion, la uenta alma enada en los
ontadores es una fun ion lineal propor ional a la posi ion angular del eje
del dis o. Para obtener la posi ion angular a partir del numero de pulsos
NP dados por los ontadores, podemos usar la siguiente rela ion:
 Para la varilla, posi ion angular de la varilla: (2=256)  NP .
 Para el motor, posi ion angular del eje del motor: (2=512)  NP
(antes de la redu ion).

El Ampli ador de Poten ia


Un ampli ador de poten ia basado en la modula ion PWM ("Pulse Width
Modulation") alimenta al servomotor D.C. Este ampli ador esta ompuesto
por un modulador PWM de baja poten ia (el LM3524), una logi a digital
de disparo y un onmutador ampli ador tipo H implementado on uatro
Mosfets. Tambien existe ir uitera adi ional para generar la tension de
disparo en ada onmutador Mosfet.

4.9 Control Optimo Cuadrati o del Pendulo Invertido 159

Clock UP
74HC Clock Down
4 bits
193
Puerto
digital 8 bits
PA Canal A
74HC
4 bits
193 LS7083
Canal B

74HC
4 bits
193
Puerto R L
digital 8 bits
PB 74HC
4 bits
193

Figura 4.18: Sensado de la posi ion.


La Tarjeta de Adquisi ion de Datos Lab-PC+
La tarjeta de adquisi ion de datos Lab-PC+ de National Instruments es la
interfaz empleada para el envo de la se~nal de ontrol y para la adquisi ion
de datos. La inter onexion de la tarjeta de adquisi ion de datos on el
ampli ador y los sensores se realiza en la forma siguiente:
 Puerto A: re ibe los 8 bits menos signi ativos del sensor.
 Puerto B: re ibe los 8 bits mas signi ativos del sensor.
 Puerto C:
{ bit 1: Libre (puede ser usado para enviar datos adi ionales desde
la omputadora)
{ bit 2: sele iona entre el sensor de la varilla o el del motor.
{ bit 3: reini ia (\reset") los ontadores.
{ bit 7: re ibe la se~nal de reloj de la fre uen ia de muestreo Fs
generada por OUTB0.
{ bits 0,4,5 y 6: no usados.
 DAC0: enva la se~nal de ontrol.
 OUTB0: enva la se~nal de reloj de muestreo.
160 
Control Optimo

Sele ion de la Fre uen ia de Muestreo


Para el fun ionamiento orre to del sistema de ontrol optimo dis reto se
requiere la sele ion ade uada de la fre uen ia (o perodo) de muestreo. Tal
sele ion debe tomar en onsidera ion la respuesta deseada del sistema de
lazo errado y el tiempo que pueda tomar el programa para ha er todos
los al ulos ne esarios por ada lazo de ontrol (y para ada perodo de
muestreo). Los programas implementados tuvieron una dura ion promedio
por bu le de 430 s, lo que permite pro esar el sistema on fre uen ias de
muestreo de hasta 2,3 KHz.
Como regla pra ti a, podemos es oger un perodo de muestreo que sea
10 ve es menor que la dura ion de un i lo de os ila ion senoidal amor-
tiguada de la se~nal de salida del sistema en lazo errado (para el aso de
respuesta subamortiguada). Para el aso de respuesta sobreamortiguada,
podemos es oger un perodo de muestreo 10 ve es menor que el tiempo de
levantamiento; es de ir, el tiempo trans urrido hasta que o urra el primer
ru e entre la se~nal de referen ia y la se~nal de respuesta del sistema. Si
asumimos ini ialmente que las respuestas a obtener deben poseer un tiempo
de levantamiento de un segundo, apli ando esta regla pra ti a, tendremos
que es oger un perodo de muestreo menor que 0,1 segundos; es de ir, una
fre uen ia mayor de 10 Hz. Tomando en uenta todas estas onsidera iones
se es ogio una fre uen ia de muestreo de Fs = 200 Hz, o lo que es lo mismo,
un perodo de muestreo de 5 ms.
4.9.7 Implementa ion del Software de Control
La implementa ion del algoritmo de ontrol se realiza en dos fases. En
la primera, se al ulan fuera de lnea (\o -line") la matriz de ganan ia de
realimenta ion de estados K y la matriz de ganan ia del observador Ke (em-
pleando por ejemplo, MATLAB). Tales matri es se guardan en un ar hivo
para que luego puedan ser usadas por el programa (es rito en odigo C) que
va a ontrolar el pro eso. Todos los datos generados pueden ser alma enados
en ar hivos para su posterior le tura, analisis y pro esamiento (por ejemplo,
para generar gra os).
El Ar hivo de Interfaz
Para fa ilitar el uso de la tarjeta de adquisi ion de datos se rearon los
ar hivos FUNC PEN.H y FUNC PEN.CPP, los uales utilizan la librera de

4.9 Control Optimo Cuadrati o del Pendulo Invertido 161

fun iones NI-DAQ [25℄, as omo tambien fun iones de le tura y es ritura
de puertos. El ar hivo FUNC PEN.H onsta de las siguientes fun iones:
 Con gurarHardware: ini ializa la tarjeta Lab-PC+, on gura los puer-
tos y espe i a la fre uen ia del lo k de muestreo.
 EnviarVoltaje: restringe y enva voltajes al DAC0 del Lab-PC+.
 LeerSensor: adquiere datos de los puertos A y B de 8 bits ada uno
y olo a un 0 o un 1 en el segundo bit del puerto C, on el n de
sele ionar la le tura del sensor de la varilla o la del sensor del motor.
 NivelClo k: lee el bit 7 del puerto C y re ibe el lo k de muestreo de
OUTB0.
 ResetContadores: olo a un 1 o un 0 en el bit 3 del puerto C, on el
n de borrar el ontenido de los ontadores de los sensores.
El Programa de Control
El programa de ontrol se denomina PENDOI4.CPP. En el ambiente de tra-
bajo de Borland C/C++, los ar hivos FUNC PEN.H, FUNC PEN.CPP y
PENDOI4.CPP forman en onjunto el proye to PENDOI4.PRJ. El progra-
ma PENDOI4.CPP omprende las partes siguientes:
1. Ini ializa ion
(a) Ini ializa ion de la tarjeta de adquisi ion de datos.
(b) Ini ializa ion de variables.
( ) Estable imiento de la posi ion ero del arro y de la varilla.
2. Bu le del algoritmo de ontrol
(a) Dete ion del an o de subida del lo k.
(b) Medi ion de las salidas.
( ) Observa ion de estados.
(d) Cal ulo y apli a ion de la se~nal de ontrol.
3. Alma enamiento de las respuestas.
El diagrama de ujo del programa se muestra en la gura 4.19. Los
programas implementados tuvieron una dura ion promedio por bu le de
430 s. A ontinua ion omentamos brevemente ada uno de los puntos
anteriores.
162 
Control Optimo

INICIO

INMICIALIZA:
- TARJETA DE ADQUISICION DE DATOS
- VARIABLES

BORRA CONTADORES

ESTABLECIMIENTO DE LA POSICION
CERO DEL CARRO Y LA VARILLA

NO
TIEMPO < TIEMPO LIMITE FIN

SI

DETECTA
FLANCO DE SUBIDA NO
DEL PULSO DE RELOJ

SI

MIDE SALIDAS
ESTIMA ESTADOS
~
CALCULA SENAL DE CONTROL
~
COMPENSA SENAL DE CONTROL
~
ENVIA SENAL DE CONTROL
ACTUALIZA VARIABLES
ARCHIVA DATOS

Figura 4.19: Diagrama de ujo del programa de ontrol.



4.9 Control Optimo Cuadrati o del Pendulo Invertido 163

Ini ializa ion de la Tarjeta de Adquisi ion de Datos


El hardware de la tarjeta Lab-PC+ se on gura on la fun ion para ini-
ializa ion Con gurarHardware(Fs), en donde se espe i a la fre uen ia de
muestreo Fs que debe generar.
Ini ializa ion de Variables
Se ini ializan todas las variables a utilizar en el programa y se argan las
matri es que previamente fueron al uladas.
Estable imiento de la Posi ion Cero del Carro y de la Varilla
Se pide al usuario olo ar la varilla y el arro en la posi ion ero. En el
aso de la varilla, esta debe olo arse en posi ion verti al y ha ia arriba
(pendulo invertido) o ha ia abajo (grua-puente). Con esto se onsigue que
el programa identi que la posi ion de 0 grados del pendulo y de 0 metros del
arro. Realizada esta a ion, el programa pide luego olo ar el pendulo o el
arro en las posi iones ini iales deseadas, para inmediatamente omenzar el
ontrol.
Dete ion del Flan o de Subida del Clo k
Dete ta el an o de subida del lo k mediante la fun ion NivelClo k, lo que
nos indi a el omienzo de un nuevo perodo de muestreo.
Medi ion de las Salidas
Para obtener la posi ion angular a partir del numero de pulsos dados por
los ontadores, podemos usar la siguiente rela ion:
 Para la varilla, posi ion angular de la varilla: (2=256)  NP .
 Para el motor, posi ion angular del eje del motor: (2=512)  NP
(antes de la redu ion).
Para la le tura de los sensores tenemos que tomar en uenta la satura ion
de los ontadores, los uales pueden guardar un valor maximo de 65535.
En el aso de la varilla, onsideraremos omo positivo los valores que
resulten de un re orrido horario, y negativo los que resulten de un re orrido
antihorario. Para este aso, los ontadores no llegano a saturarse, pues a
lo sumo la varilla podra tener un re orrido de 360 , lo que orresponde
164 
Control Optimo

a un in remento de 256 puntos, valor bastante lejos del valor maximo del
ontador. El problema a resolver aqu es omo re ono er si nos en ontramos
ante un re orrido positivo o negativo justo uando el ontador omienza a
de rementar (partiendo de 0). Para resolver esta situa ion, onsideraremos
que estamos ante un valor negativo si el ontenido de los ontadores es
mayor que 32768 (la mitad del valor maximo que pueden ontener). Por
ejemplo, si obtenemos en el ontador un valor de 65534, y omo este es mayor
que 32768, enton es representa una posi ion negativa; su equivalente es:
(65536 65534) = 2. Luego, para obtener la posi ion angular ha emos:
2  2=256 rad. La rutina que realiza esta le tura esta dada por:
/*lee angulo Varilla*/
ontVa=LeerSensor(VARILLA);
ontVa=( ontVa>32768)?-1*(65536- ontVa): ontVa;
*y0= ontVa*(2.*PI/256.);

en donde ontVa es la variable que guarda el valor del ontador e y0 guarda


la posi ion angular en radianes.
La le tura de la posi ion del arro es un aso diferente, porque a una
determinada distan ia de re orrido, los ontadores se saturan. Para salvar
este in onveniente lo que se ha e es sumar los in rementos o restar los de re-
mentos que se obtienen entre la le tura a tual y la le tura anterior de los
ontadores. Pero ademas, previamente debemos de dis ernir si el valor ledo
del ontador se trata de un in remento o un de remento. La siguiente rutina
en odigo C toma en uenta las onsidera iones anteriores:
/*lee posi ion del arro*/
ontC_a t=LeerSensor(MOTOR);
if( ontC_a t< ontC_ant)
{
if(( ontC_ant- ontC_a t)>32768)
*y1=y1_ant+(65536- ontC_ant+ ontC_a t)*2.*PI/512.*Nm*rp;
else
*y1=y1_ant-( ontC_ant- ontC_a t)*2.*PI/512.*Nm*rp;
}
else
{
if(( ontC_a t- ontC_ant)>32768)
*y1=y1_ant-(65536- ontC_a t+ ontC_ant)*2.*PI/512.*Nm*rp;
else
*y1=y1_ant+( ontC_a t- ontC_ant)*2.*PI/512.*Nm*rp;
}
ontC_ant= ontC_a t;
y1_ant=*y1;

4.9 Control Optimo Cuadrati o del Pendulo Invertido 165

en donde ontC_a t es el valor a tual del ontador, ontC_ant es el valor


anterior del ontador, y1 es la variable que guarda la posi ion a tual del
arro en metros e y1_ant es el valor anterior de y1.
Observador de Estados de Orden Completo
La e ua ion que debemos implementar para el observador de estados de
orden ompleto esta dada por la e ua ion (4.31):
x~ (k + 1) = Gx~ (k) + Hu(k) + Ke [y(k) C x~ (k)℄
o por la e ua ion (luego de fa torizar el ve tor estimado x~ (k)):
x~ (k + 1) = (G Ke C )~x(k) + Hu(k) + Ke y(k)
Para ahorrar al ulos inne esarios en el programa, podemos olo ar el
valor de (G KeC ) en una sola variable que pueda ser al ulada fuera de
lnea (\o -line"), para ser luego guardada en un ar hivo, y antes de ini iar
la rutina de ontrol, leerla desde el programa en C. En di ho programa
utilizaremos la siguiente nota ion para las variables:
Xe[ ℄ = x~(k); Y ant[ ℄ = y(k 1); G KeC [ ℄[ ℄ = G Ke C
H[ ℄ = H; Ke[ ℄[ ℄ = Ke ; u = u(k)
La rutina en lenguaje C que implementa la e ua ion del observador es:
/* al ula G_KeC*Xe */
for(i=0;i<=3;i++)
{ S=0.;
for(p=0;p<=3;p++)
S=G_KeC[i℄[p℄*Xe[p℄+S;
G_KeCX[i℄=S;
}
/* al ula KeYant*/
for(i=0;i<=3;i++)
{ S=0.;
for(p=0;p<=1;p++)
S=Ke[i℄[p℄*Yant[p℄+S;
KeYant[i℄=S;
}
/* al ula Xe(K+1)[i℄*/
for(i=0;i<=3;i++)
Xe[i℄=G_KeCX[i℄+H[i℄*u+KeYant[i℄;
Yant[0℄=X0;
Yant[1℄=X2;
166 
Control Optimo

Cal ulo de la Se~nal de Control


Para el al ulo de la se~nal de ontrol utilizaremos las e ua iones (4.40) y
(4.42), a saber:
u(k) = Kx(k) + KI v(k)
v(k) = v(k 1) + r(k) y(k)
En el programa en odigo C utilizamos la siguiente nota ion:
Xe[ ℄ = x(k); K[ ℄ = K; KI = KI ; Xe[2℄ = y(k)
V = v(k); V ant = v(k 1); r = r(k); u = u(k)
Las e ua iones (4.40) y (4.42) se representan en el programa en C por:
V=V_ant+r-Xe[2℄; V_ant=V;
u=KI*V-K[0℄*Xe[0℄-K[1℄*Xe[1℄-K[2℄*Xe[2℄-K[3℄*Xe[3℄;
y la rutina en lenguaje C para la ompensa ion de la zona muerta en el
motor esta dada por:
if(u <0) v=-DeadZone;
if(u >0) v=+DeadZone;
if(u==0) v=0.;
Para apli ar la se~nal de ontrol emplearemos:
Enviarvoltaje(u+v+offset);

Alma enamiento de las Respuestas


Las respuestas hasta aqu obtenidas se guardan ada una en una matriz;
luego ada matriz es alma enada en un ar hivo para su posterior le tura,
analisis y pro esamiento.
Listado de los Programas Fuente
/*FUNC_PEN.H Fun iones para manejar la tarjeta de adquisi ion
de datos Lab-PC+ en onjunto on la interfaz del sistema del
pendulo invertido*/
#if !defined (__FUNC_PEN_H)
#define __FUNC_PEN_H
void ConfigurarHardware (float);
/* onfigurar hardware y estable er la fre uen ia del lo k de

4.9 Control Optimo Cuadrati o del Pendulo Invertido 167

la tarjeta de interfaz*/
void EnviarVoltaje (float);
/*env\'{\i}a voltaje al DAC de la tarjeta*/
unsigned int LeerSensor(int);
/*lee sensor=0 ontadores del lado izquierdo
lee sensor=1 ontadores del lado dere ho */
int NivelClo k ();
/*devuelve el nivel del lo k 0 o 1 */
void ResetContadores();
/*resetea los ontadores que estan one tados a los sensores*/
#endif

/*FUNC_PEN.CPP Trabaja en onjunto on FUNC_PEN.H */


#in lude "fun _pen.h"
#in lude "nidaq.h"
#in lude <dos.h>
#define DAC0 0x264
#define PORTA 0x270
#define PORTB 0x271
#define PORTC 0x272
void ConfigurarHardware (float fre )
{
int periodoTimer, devi eCode;
periodoTimer = (int)(2000000/fre );

USE_LAB();
/*esta fun ion ayuda a mantener el tama~no de la apli a ion en DOS
ante un mayor re imiento debido a la in lusion de por iones de
la libreria NI-DAQ que no son ne esarias para el dispositivo de
adquisi ion que se esta utilizando */

Init_DA_Brds(1,&devi eCode);
/*ini ializa el hardware y el software de la libreria NI-DAQ
devi eNumber = 1
devi eNumberCode devuelve el tipo del dispositivo ini ializado */

ICTR_Setup(1,0,3,periodoTimer,1);
/*devi eNumber = 1
tr = 0 => lo k de muestreo timer0
MODE = 3 => sele iona onda uadrada on duty y le de 50 %
COUNT = periodoTimer => periodo de la onda
binB d = 1 => sele iona el ontador binario de 16-bits */
168 
Control Optimo

outportb(0x273, 0x9A);
/*''setea'' el DIGITAL CONTROL REGISTER (273H) y onfigura los
ports omo:
PA:INPUT
PB:INPUT
PC0 ... 3:OUTPUT
PC4 ... 7:INPUT */
}

void EnviarVoltaje (float v)


{
unsigned salidaDigital;

/*restringe el voltaje de entrada al driver */


if(v<0.) v = 0.8;
if(v>3.7) v = 3.7;

salidaDigital = (unsigned) (409.6*v+0.5);


outport(DAC0,salidaDigital);//ESCRIBE salidaDigital EN DAC0
}
unsigned int LeerSensor(int sensor)
{
unsigned har byteH,byteL;

if(sensor) outportb(PORTC,inportb(PORTC)&251);
//PC2 = 0 sele iona ontador dere ho
else
outportb(PORTC,inportb(PORTC)|4);
//PC2 = 1 sele iona ontador izquierdo
byteL = inportb(PORTA);//Lee PORT A
byteH = inportb(PORTB);//Lee PORT B
return (256*byteH+byteL);
}

int NivelClo k()


{
unsigned har bytePoll;
bytePoll = inportb (PORTC); //lee PORTC
return (bytePoll>127);//valida solo PC7 ( lk de la tarjeta-OUTB0)
//(pooling)
}

void ResetContadores()

4.9 Control Optimo Cuadrati o del Pendulo Invertido 169

{
outportb(PORTC,inportb(PORTC)|8);
for(int i=0;i<10000;i++);
outportb(PORTC,inportb(PORTC)&(255-8));
}

/*PENDOI4.CPP Programa prin ipal: pendulo invertido on estima ion


de estados de orden ompleto. El programa arga los datos del
ar hivo pendoi.dat*/
#in lude <assert.h>
#in lude <stdio.h>
#in lude <stdlib.h>
#in lude < onio.h>
#in lude <math.h>
#in lude <time.h>
#in lude "fun _pen.h"

#define PI M_PI
#define IZQ 0
#define DER 1
#define VARILLA IZQ
#define MOTOR DER
#define A_RADIANES 2.*PI/512.

#define Nm 1/19.741
#define rp 0.0648
#define Fs 200.
#define Ts (1./Fs)
#define tsimul 60.
#define DeadZone 0.1
#define offset 2.29 //2.36
#define SP 1.5

float G_KeC[4℄[4℄,H[4℄;
float K[4℄,KI,Ke[4℄[2℄;
float r=0.;

float Xe[4℄={0,0,0,0},Xe_a[4℄={0,0,0,0};
float y0,y1;
float u=0.;

void ini ializaMatri es()


{
170 
Control Optimo

har ruta[℄="C:\\user\\leonardo\\datos\\pendoi.dat";
int i,j;
FILE *pfi hero;

pfi hero=fopen(ruta,"rt");
if (pfi hero == NULL) printf("No se puede abrir\n");
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 3;j++)
fs anf(pfi hero,"%f",&G_KeC[i℄[j℄);
}
for(i = 0;i <= 3;i++)
fs anf(pfi hero,"%f",&H[i℄);
for(i = 0;i <= 3;i++)
fs anf(pfi hero,"%f",&K[i℄);
fs anf(pfi hero,"%f",&KI);

for(i = 0;i <= 3;i++)


{
for(j = 0;j <= 1;j++)
fs anf(pfi hero,"%f",&Ke[i℄[j℄);
}
f lose(pfi hero);

Xe[0℄ = 0.; Xe[1℄ = 0.; Xe[2℄ = 0.; Xe[3℄ = 0.;

lrs r();
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 3;j++)
printf("%f ",G_KeC[i℄[j℄);
printf("%f\n",G_KeC[i℄[3℄);
}
for(i = 0;i <= 3;i++)
printf("%f\n",H[i℄);
for(i = 0;i <= 3;i++)
printf("%f\t",K[i℄);
printf("\n%f",KI);
printf("\n");
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 1;j++)
printf("%f\t",Ke[i℄[j℄);

4.9 Control Optimo Cuadrati o del Pendulo Invertido 171

printf("\n");
}
}

void MideSalidas(float *y0,float *y1)


{
stati float y1_ant = 0.;
stati unsigned ontC_ant = 0;
unsigned ontVa, ontC_a t;
int ontVa1;

/*lee angulo Varilla*/


ontVa = LeerSensor(VARILLA);
ontVa1 = ( ontVa>32768) ? -1*(65536- ontVa): ontVa;
*y0 = ontVa1*(2.*PI/256.); //angulo de la varilla en radianes

/*lee posi ion del arro*/


ontC_a t = LeerSensor(MOTOR);
if( ontC_a t < ontC_ant)
{
if(( ontC_ant- ontC_a t) > 32768)
*y1 = y1_ant+(65536- ontC_ant+ ontC_a t)*A_RADIANES*Nm*rp;
else
*y1 = y1_ant-( ontC_ant- ontC_a t)*A_RADIANES*Nm*rp;
}
else
{
if(( ontC_a t- ontC_ant) > 32768)
*y1 = y1_ant-(65536- ontC_a t+ ontC_ant)*A_RADIANES*Nm*rp;
else
*y1 = y1_ant+( ontC_a t- ontC_ant)*A_RADIANES*Nm*rp;
}
ontC_ant= ontC_a t;
y1_ant=*y1;
}

void EstimaEstados(float X0,float X2)


/*re ibe X0 y X2 y en uentra Xe[℄*/
{
/*X1~(k) = Xe_a t[0℄ X1~(k-1) = Xe_ant[0℄
X2~(k) = Xe_a t[1℄ X2~(k-1) = Xe_ant[1℄
X3~(k) = Xe_a t[2℄ X3~(k-1) = Xe_ant[2℄
X4~(k) = Xe_a t[3℄ X4~(k-1) = Xe_ant[3℄*/
172 
Control Optimo

stati float Yant[℄={0.,0.};


float G_KeCX[4℄, KeYant[4℄, S = 0.;
int i, j, p;

/* al ula G_KeC*X */
for(i = 0;i <= 3;i++)
{ S = 0.;
for(p = 0;p <= 3;p++)
S = G_KeC[i℄[p℄*Xe[p℄+S;
G_KeCX[i℄ = S;
}

/* al ula KeYant*/
for(i = 0;i <= 3;i++)
{ S=0.;
for(p = 0;p <= 1;p++)
S = Ke[i℄[p℄*Yant[p℄+S;
KeYant[i℄ = S;
}

/* al ula Xe(K+1)[i℄*/
for(i = 0;i <= 3;i++)
Xe[i℄ = G_KeCX[i℄+H[i℄*u+KeYant[i℄;

Yant[0℄ = X0;
Yant[1℄ = X2;
}

/* ompensa fri ion estati a y de oulomb*/


onst float Wth = .1;
onst float V FE = .2,V FC = .15;
float CompensaFri ion(float u,float vel)
{
float volt = 0.;
if(fabs(vel) <= Wth)
{/* ompensa fri ion estati a*/
if(u < 0.) volt = -V FE;
if(u > 0.) volt = V FE;
}
else
{ /* ompensa fri ion de oulomb*/
if (u <0.) volt = -V FC;
if (u >0.) volt = V FC;

4.9 Control Optimo Cuadrati o del Pendulo Invertido 173

}
return (u+volt);
}

void main()
{
ini ializaMatri es();

float vel, yant, ya t;


har te la;
unsigned har k_ant, k_a t;
int n, k;
float t;
int ;
float V,V_ant = 0.;
float u_1 = 0., u_2 = 0., u_3 = 0., u_4 = 0., v = 0.;

n=(int) tsimul/Ts;

har tiempo[℄ =" :\\user\\leonardo\\datos\\pendnio.t" ;


har theta_[℄ =" :\\user\\leonardo\\datos\\pendnio.th";
har v_vara[℄ =" :\\user\\leonardo\\datos\\pendnio.vv";
har z_ arro[℄ =" :\\user\\leonardo\\datos\\pendnio.z" ;
har v_ arro[℄ =" :\\user\\leonardo\\datos\\pendnio.v ";
har sal_var[℄ =" :\\user\\leonardo\\datos\\pendnio.y0";
har sal_ ar[℄ =" :\\user\\leonardo\\datos\\pendnio.y1";
har U_[℄ =" :\\user\\leonardo\\datos\\pendnio.u";
float *u_, *x1_, *x2_, *x3_, *x4_;/**/float *y_0_, *y_1_;
FILE *pfi hero;
assert(NULL! = (u_ =(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x1_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x2_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x3_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x4_=(float*) allo (n+1,sizeof(float))));

assert(NULL! = (y_0_=(float*) allo (n+1,sizeof(float))));


assert(NULL! = (y_1_=(float*) allo (n+1,sizeof(float))));

if((te la=get h()) == 27) goto FIN;


ConfigurarHardware(Fs);
EnviarVoltaje(offset);

lrs r();
174 
Control Optimo

printf("1) Ubi ar el arro en el entro del arril\n4) Ubi ar la va-


rilla en posi ion verti al y mantenerla asi hasta presionar F1\n");
while(((te la = get h()) != 59) && (te la != 27)) ;
if(te la == 27) goto FIN;

ResetContadores();

printf("\n\nColo ar la varilla en la posi ion ini ial deseada\n


Presionar F2 para omenzar el ontrol\n");
do
{
while(!kbhit())
{
MideSalidas(&y0,&y1);
gotoxy(5,10); printf("varilla en radianes: %f",y0);
gotoxy(5,11); printf("varilla en grados : %f",y0*180./PI);
}
}
while(((te la = get h()) != 60)&&(te la != 27));
if(te la == 27) goto FIN;

t = 0.; u = 0.; r = 0.;


for(k = 0;k <= n;)
{
if(kbhit())
{
if((te la = get h()) == 27) break;
if(te la == 59) r = 1.5;
}

k_ant = k_a t;
k_a t = NivelClo k();

if(( k_ant == 0) && ( k_a t == 1))


{

yant=y1;
MideSalidas(&y0,&y1);
ya t=y1;
if(y1 > 1.74) break;
if(y1 < -0.08) break;
gotoxy(5,13);printf("Tiempo: %f", t);
gotoxy(5,15); printf("varilla en grados : %f",y0*180./PI);

4.9 Control Optimo Cuadrati o del Pendulo Invertido 175

gotoxy(5,17);printf(" arro en metros : %f",y1);

EstimaEstados(y0,y1);

/*En uentra Control*/ /*u(k+1)*/


V = V_ant+r-Xe[2℄; V_ant = V;//a ion integral
u = KI*V-K[0℄*Xe[0℄-K[1℄*Xe[1℄-K[2℄*Xe[2℄-K[3℄*Xe[3℄;

/*satura ion*/
if(u < -1.4) u = -1.4;
if(u > 1.4) u = 1.4;

vel = (ya t-yant)/Ts/rp;//Xe_a t[3℄/rp;


/*Compensa zona muerta*/
if(u < 0) v = -DeadZone;
if(u > 0) v = +DeadZone;
if(u == 0)v = 0.;

EnviarVoltaje(u+v+offset);

/*guarda datos en arrays*/


u_[k℄ = u;
x1_[k℄ = Xe[0℄; x2_[k℄ = Xe[1℄;
x3_[k℄ = Xe[2℄; x4_[k℄ = Xe[3℄;
y_0_[k℄ = y0; y_1_[k℄ = y1;

k++;t += Ts;
}
}
FIN:
EnviarVoltaje(offset);

/*guarda tiempo*/
pfi hero = fopen(tiempo,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",tiempo);
else
{
for(k = 0;k<n+1;k++)
{
t = k*Ts;
= fwrite(&t,sizeof(float),1,pfi hero);
}
f lose(pfi hero);
176 
Control Optimo

printf("\nelementos es ritos en %s:%d\n",tiempo, );


}
/*guarda angulo varilla*/
pfi hero = fopen(theta_,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",theta_);
else
{
=fwrite(x1_,sizeof(x1_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",theta_, );
}
/*guarda velo idad angular varilla*/
pfi hero = fopen(v_vara,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",v_vara);
else
{
=fwrite(x2_,sizeof(x2_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",v_vara, );
}
/*guarda posi ion del arro*/
pfi hero=fopen(z_ arro,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",z_ arro);
else
{
=fwrite(x3_,sizeof(x3_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",z_ arro, );
}
/*guarda velo idad del arro*/
pfi hero=fopen(v_ arro,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",v_ arro);
else
{
=fwrite(x4_,sizeof(x4_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",v_ arro, );
}
/*guarda y0 angulo de la varilla*/
pfi hero=fopen(sal_var,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",sal_var);
else
{

4.9 Control Optimo Cuadrati o del Pendulo Invertido 177

=fwrite(y_0_,sizeof(y_0_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",sal_var, );
}
/*guarda y1 posi ion del arro*/
pfi hero = fopen(sal_ ar,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",sal_ ar);
else
{
=fwrite(y_1_,sizeof(y_1_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",sal_ ar, );
}
/*guarda y1 posi ion del arro*/
pfi hero = fopen(U_,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",U_);
else
{
=fwrite(u_,sizeof(u_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",U_, );
}

get h();
}

4.9.8 Resultados Experimentales


Los resultados experimentales se obtuvieron on una se~nal de referen ia
es alon de 1.5 m para la posi ion del arro. Los resultados del ontrol
optimo uadrati o del sistema de pendulo invertido on observador de orden
ompleto se muestran en las guras: 4.20, 4.21 y 4.22.
En los resultados experimentales se observa que la posi ion del arro, que
es la se~nal de realimenta ion del servosistema, sigue a la se~nal de referen ia
en menos de 6 segundos y on sobreamortiguamiento mnimo, tal omo
estaba propuesto en las espe i a iones de dise~no del sistema de ontrol. La
posi ion angular del pendulo logra estabilizarse alrededor de ero; es de ir,
se llega a posi ionar en forma verti al.
Observar en la respuesta esta ionaria, tanto en la posi ion del arro
omo en la posi ion angular del pendulo, la presen ia de una os ila ion
esta ionaria ( i lo lmite) que podra redu irse usando sensores mas pre isos
178 
Control Optimo

posición del carro (medición directa)


2

1.5

1
posición (m)

0.5

−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.20: Control optimo del pendulo invertido: posi ion del arro.
ángulo del péndulo (medición directa)
0.5

0.4

0.3

0.2

0.1
ángulo (rad)

−0.1

−0.2

−0.3

−0.4

−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.21: Control optimo del pendulo invertido: posi ion angular del
pendulo.

4.10 Control Optimo Cuadrati o de la Grua-Puente 179

entrada
1.5

0.5
entrada (v)

−0.5

−1

−1.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.22: Control optimo del pendulo invertido: se~nal de ontrol.


( on un tama~no de paso de dete ion menor).
El algoritmo de ontrol lineal empleado requiere que las variables no
salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, el
sistema de ontrol dise~nado responde en forma ade uada para desvia iones
de la posi ion de la varilla de hasta  20o , lo que esta bastante fuera de la
zona lineal impuesta por el modelo.

4.10 
Control Optimo Cuadrati o de la Gr
ua-Puente
En esta se ion nos o upamos del dise~no del ontrol optimo uadrati o del
pro eso grua-puente empleando el pro edimiento de dise~no presentado en la
se ion 4.8.
4.10.1 Formula ion del Problema
Dado el sistema grua-puente, onformado por una varilla que uelga libre-
mente de un arro impulsado por un servomotor D.C. ontrolado por su
voltaje de armadura, se desea dise~nar un servo ontrolador que sea apaz
de trasladar al arro a una posi ion determinada, de forma tal que la os-
180 
Control Optimo

ila ion en la varilla sea mnima. El problema en onsidera ion es de dos


dimensiones, dado que la varilla se balan ea en el mismo plano que la traye -
toria del arro. El dise~no del sistema de ontrol esta basado en la teora de
ontrol optimo uadrati o. La entrada al pro eso (la se~nal de ontrol) es
el voltaje de armadura del servomotor D.C. y las salidas del servosistema
son la posi ion angular del pendulo y la traye toria horizontal del arro. Se
desea un tiempo de estabiliza ion de la posi ion del arro de aproximada-
mente 6 segundos on el menor sobreimpulso posible. Cabe anotar que para
al anzar las espe i a iones de dise~no planteadas, se requiere sele ionar
ade uadamente las matri es de pondera ion.
4.10.2 Simula ion del Sistema Controlado
La determina ion del modelo matemati o del pro eso grua-puente se trato
on amplitud en la se ion 3.2. Para una fre uen ia de muestreo de 200 Hz
y asumiendo reten ion de memoria de orden ero, y siguiendo el pro edi-
miento desarrollado en las subse iones 4.9.2, 4.9.3, 4.9.4 y 4.9.5, el siguiente
programa disopt3.m determina el modelo lineal dis reto, al ula las matri-
es de ganan ia del ontrolador optimo y del observador optimo, y simula
el sistema de ontrol para la grua puente. Cabe re al ar que la simula ion
emplea el modelo no lineal de la planta. Los resultados se muestran a on-
tinua ion del programa y los resultados gra os se ilustran en las guras
4.23, 4.24 y 4.25.
% disopt3.m SISTEMA DE CONTROL OPTIMO PARA LA GRUA-PUENTE
lear all
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = -(M1+J2)*M2*g/d; a24 = -Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO

4.10 Control Optimo Cuadrati o de la Grua-Puente 181

A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C = [0 0 1 0℄; % POSICION DEL CARRO
Ts = 1/200; % TIEMPO DE MUESTREO
[G,H℄ = 2d(A,B,Ts);
G1 = [G zeros(4,1)
-C *G 1℄;
H1 = [H;-C *H℄;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [500 0 0 0 0
0 0 0 0 0
0 0 200 0 0
0 0 0 0 0
0 0 0 0 0.1℄; R = [1℄;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP℄ = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4)℄; KI = - KK(5);
% CALCULO DE LA GANANCIA DEL OBSERVADOR
C = [1 0 0 0
0 0 1 0℄; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1000 0 0 0
0 1500 0 0
0 0 100 0
0 0 0 1500℄; Re = [1 0;0 1℄;
Pe = zeros(4,4);
for i=1:200
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe℄ = dlqr(G',C',Qe,Re); KKe=KKeT'; % Pe=PPe, Ke=KKe
% CONDICIONES INICIALES PARA LA SIMULACION
182 
Control Optimo

x1=0; x2=0; x3=0; x4=0; x5=0;


xe = [0;0;0;0℄; r=1.5;
v=0; N = 4000; % tiempo en segundos: Ts*N
for k=1:N
u = -K*xe + KI*v;
u = -K*xe + KI*v;
if(u > 1.4), u = 1.4; % para no saturar el amplifi .
elseif(u < -1.4), u = -1.4;
end
xe = G*xe + u*H + Ke*([x1;x3℄ - C*xe);
% PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE
den = -M2^2* os(x1)^2+(M1+J2)*J1;
x1 = x1 + Ts*x2;
x2 = x2 + ...
Ts*(-M2^2*sin(x1)* os(x1)*x2^2 -M2*Bx* os(x1)*x4 ...
-M2*(M1+J2)*g*sin(x1)+M2*Kx* os(x1)*KA*u)/den;
x3 = x3 + Ts*x4;
x4 = x4 + ...
Ts*(-M2^2*g*sin(x1)* os(x1)-J1*M2*sin(x1)*(x2)^2 ...
-J1*Bx*x4 + J1*Kx*KA*u)/den;
v = v + r - x3;
y1(k)=x1; y2(k)=x3; U(k) =u;
end
% GRAFICOS
t = linspa e(0,Ts*N,N);
figure(1)
plot(t,y2(1:N)); grid
ylabel('Posi ion del arro')
xlabel('Tiempo (s)')
print -deps -f sgoz
figure(2)
plot(t,y1(1:N)); grid
ylabel('Posi ion angular de la grua-puente')
xlabel('Tiempo (s)')
print -deps -f sgoa
figure(3)
plot(t,U); grid
ylabel('Se~nal de ontrol u')
xlabel('Tiempo (s)')
print -deps -f sgou

4.10 Control Optimo Cuadrati o de la Grua-Puente 183

2 3 2 3
0:9998 0:0050 0 0:0002 0:0004
6 0:0972 0:9998 0 0:0941 7 6 0:1462 7
G=6 7; H =6 7
4 0:0000 0:0000 1:0000 0:0049 5 4 0:0002 5
0:0019 0:0000 0 0:9508 0:0765
 
C= 0 0 1 0
2 3 2 3
1:0002 0:0050 0 0:0002 0 0:0004
6
6 0:0995 1:0002 0 0:0963 0 7
7
6
6 0:1497 7
7
G~ = 6
6 0:0000 0:0000 1:0000 0:0049 0 7;
7
~ =6
H 6 0:0002 7
7
4 0:0019 0:0000 0 0:9508 0 5 4 0:0765 5
0:0000 0:0000 1:0000 0:0049 1:0000 0:0002
2 3
1:9636 0:2257 3:3116 0:4202 0:0300
6
6 0:2257 0:1481 0:7068 0:2891 0:0030 7
7
P~ = 104  6
6 3:3116 0:7068 8:5186 1:4030 0:0745 7
7
4 0:4202 0:2891 1:4030 0:5668 0:0061 5
0:0300 0:0030 0:0745 0:0061 0:0013

~ = K

K KI
 
K= 8:2596 4:3465 37:9206 10:3665℄; KI = 0:2907
2 3
1:0102 0:0055
6 2:1836 1:1280 7
Ke = 6 7
4 0:0005 0:9936 5
0:0982 0:6519

4.10.3 El Hardware y el Software del Sistema de Control


La implementa ion del hardware, as omo el dise~no del software del sistema
de ontrol, fueron tratadas en las subse iones 4.9.6 y 4.9.7, respe tivamente.
Cabe anotar que el hardware del sistema y la estru tura del software es
omun, tanto para el pendulo invertido omo para la grua-puente. Basta
ambiar de signo en algunas senten ias del ar hivo PENDOI4.CPP (des rito
en la subse ion 4.9.7) para rear el software de ontrol del pro eso grua-
puente.
184 
Control Optimo

1.8

1.6

1.4

1.2
Posición del carro

0.8

0.6

0.4

0.2

0
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.23: Simula ion del sistema grua-puente: posi ion del arro.
0.5

0.4

0.3
Posición angular de la grúa puente

0.2

0.1

−0.1

−0.2

−0.3

−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.24: Simula ion del sistema grua-puente: posi ion angular de la
varilla.

4.10 Control Optimo Cuadrati o de la Grua-Puente 185

1.4

1.2

Señal de control u 1

0.8

0.6

0.4

0.2

−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.25: Simula ion del sistema grua-puente: se~nal de ontrol.


posición del carro (medición directa)
2

1.5

1
posición (m)

0.5

−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.26: Control optimo de la grua-puente: posi ion del arro.


186 
Control Optimo

ángulo de la varilla (medición directa)

0.6

0.4

0.2
ángulo (rad)

−0.2

−0.4

−0.6

0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.27: Control optimo de la grua-puente: posi ion angular del


pendulo.
entrada
1.5

0.5
entrada (v)

−0.5

−1

−1.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.28: Control optimo de la grua-puente: se~nal de ontrol.


4.11 Problemas Resueltos 187

4.10.4 Resultados experimentales


Los resultados experimentales que se muestran a ontinua ion se obtuvieron
on una se~nal de referen ia es alon de 1.5 m para la posi ion del arro.
Los resultados del ontrol optimo uadrati o del sistema grua-puente on
observador de orden ompleto se muestran en las guras: 4.26, 4.27 y 4.28.
Como en el aso del pendulo invertido, en los resultados experimentales
se observa que la posi ion del arro, que es la se~nal de realimenta ion del
servosistema, sigue a la se~nal de referen ia en menos de 6 s y on sobreamor-
tiguamiento moderado, tal omo estaba propuesto en las espe i a iones de
dise~no del sistema de ontrol. La posi ion angular del pendulo logra esta-
bilizarse alrededor de ero; es de ir, se llega a posi ionar en forma verti al
ha ia abajo.
Igualmente, el algoritmo de ontrol lineal empleado requiere que las va-
riables no salgan de la zona lineal impuesta por el modelo lineal. Sin em-
bargo, se omprobo que el sistema de ontrol dise~nado responde en forma
ade uada para una desvia ion de la posi ion de la varilla de  20 grados,
que es bastante fuera de la zona lineal impuesta por el modelo.
4.11 Problemas Resueltos
En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los
problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB.
Problema 4.1
El problema 3.1 presenta las e ua iones que gobiernan la dinami a del sis-
tema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol optimo uadrati o esta ionario para lograr el objetivo de ontrol si-
guiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de alrededor de 20 segundos, las
os ila iones originadas por un disturbio es alon de 10 m (provo ada por
imperfe iones en la pista), pra ti amente deben desapare er. La sele ion
del tiempo de muestreo es a onvenien ia del dise~no.
% p3opt2.m SOLUCION DEL PROBLEMA 4.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
188 
Control Optimo

a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
% MODELO LINEAL: dx/dt = A*x + B*u + E*d; y = C*x + D*u
A = [0 1 0 0
-b1*b2/(m1*m2) 0 a23 -b1/m1
b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0;1/m1;0;(1/m1+1/m2)℄;
E = [0;b1*b2/(m1*m2);-b2/m2;-k2/m2℄;
C = [0 0 1 0℄; D = [0℄;
% CONVERSION AL ESPACIO DE ESTADO DISCRETO
T=0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
[G,F,C,D℄ = 2dm(A,E,C,D,T,'zoh');
% Contro Optimo del sistema
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1℄;
R = [1℄;
% ECUACION DE RICCATI
P = diag(0,3); % MATRIZ DE CEROS DE ORDEN 4
for i = 1:40
P = Q + G'*P*G - G'*P*H*inv(R+H'*P*H)*H'*P*G;
end
% CALCULO DE LA MATRIZ DE GANANCIA K
K = inv(R+H'*P*H)*H'*P*G;
% SIMULACION DEL SISTEMA CONTROLADO
N = 200; x=[0;0;0;0℄; w=0.01;
for k=1:N
U=-K*x;
x = G*x + H*U + F*w;
y(k)=x(3); u(k)=U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi ion y (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
4.11 Problemas Resueltos 189

xlabel('Tiempo en segundos')
ylabel('Control u (N)')
print -deps -f p3opt2

−3
x 10
5
Posición y (m)

−5

−10
0 20 40 60 80 100 120 140 160
Tiempo en segundos
−4
x 10
1

0.8
Control u (N)

0.6

0.4

0.2

0
0 20 40 60 80 100 120 140 160
Tiempo en segundos

Figura 4.29: Salida ontrolada y = x1 x2 y fuerza de ontrol u orrespon-


dientes al problema 4.1.

Problema 4.2
El problema 3.2 presenta las e ua iones que gobiernan la dinami a longitudi-
nal de un avion omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion  del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol es dise~nar un
autopiloto que manipulando el angulo Æe del de e tor de eleva ion, ontrole
el angulo de in lina ion del avion.
Se pide dise~nar un sistema de ontrol optimo uadrati o esta ionario que
genere una fuerza de ontrol, de modo que la salida del pro eso (el angulo
de in lina ion ) presente un sobreimpulso menor al 10 % y un tiempo de
190 
Control Optimo

estabiliza ion menor que 3 s, on error en estado estable nulo. La sele ion
del tiempo de muestreo es a onvenien ia del dise~no.
% p4opt2 SOLUCION DEL PROBLEMA 4.2
lear all

% ECUACION DE ESTADO DEL PROCESO


A=[-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0℄;
B=[0.232;0.0203;0℄;
C=[0 0 1℄; D=[0℄;
% PROCESO DISCRETO
T=0.1; % TIEMPO DE MUESTREO
[num1, den1℄=ss2tf(A,B,C,D);
[G,H℄= 2d(A,B,T);
[Bz,Az℄=ss2tf(G,H,C,D);

% CONTROL OPTIMO ESTACIONARIO CON ACCION INTEGRAL


G1 = [G zeros(3,1);-C*G 1℄;
H1 = [H;-C*H℄;

% INGRESO DE PESOS
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1 ℄;
R = [1℄;
% EQUACION DE RICCATI
P = diag(0,3);
for i = 1:40
P = Q + G1'*P*G1 - G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end

% CALCULO DE LA GANACIA K DEL CONTROLADOR


KK = inv(R+H1'*P*H1)*H1'*P*G1;
K = [KK(1) KK(2) KK(3)℄;
KI = -KK(4);

% SIMULACION
N = 100; x=[0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=0.1; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
4.11 Problemas Resueltos 191

Y = C*x;
y(k) = Y; u(k) = U;
end

% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('In lina ion (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Angulo del defle tor (rad)')
print -deps -f p4opt2

0.15
Inclinación (rad)

0.1

0.05

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

0.2
Angulo del deflector (rad)

0.15

0.1

0.05

−0.05
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 4.30: A ngulo de in lina ion  ontrolada y angulo del de e tor (se~nal
de ontrol) orrespondientes al problema 4.2.
192 
Control Optimo

Problema 4.3
En el problema 3.3 se des ribe el pro eso de la bola rodando a lo largo
de una barra, on un grado de libertad, tal omo se muestra en la gura
3.16. Una leva one ta la barra on un engranaje que esta a ionado por
un servomotor. Se desea dise~nar un sistema de ontrol optimo que pueda
posi ionar la bola en menos de 5 s a 0.5 m de un extremo de la barra que
mide 1 m de longitud. Las os ila iones de la bola deben estar restringidas
sobre la barra y el voltaje de ontrol no debe sobrepasar los  40 volt. La
sele ion del tiempo de muestreo es a onvenien ia del dise~no.
% p5opt2.m SOLUCION DEL PROBLEMA 4.3
lose all
% DETERMINACION DE LA ECUACION DE ESTADO
M=0.11; R=0.015; g=9.8; L=1; J=9.99*1e-6; d=0.03;
A=[0 1 0 0
0 0 (M*g*d)/(L*(J/R^2 + M)) 0
0 0 0 1
0 0 0 0℄;
B=[0;0;0;1℄;
C=[1 0 0 0℄; D=[0℄;
% PROCESO DISCRETO
T=0.1; % Tiempo de muestreo
[num1, den1℄=ss2tf(A,B,C,D);
[G,H℄= 2d(A,B,T);
% DETERMINAR SI EL PROCESO TIENE INTEGRADORES,
% ES DECIR, SI TIENE EIGENVALORES EN z=0:
% eigG = eig(G); % NO TIENE EIGENVALORES EN z=0;
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(4,1);-C*G 1℄;
H1 = [H;-C*H℄;
% ANALIZAMOS SI LA PLANTA ES CONTROLABLE
M=[H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM=rank(M); % rM=4 SISTEMA ES CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1e5℄;
R = [10℄;%100
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
K = [KK(1) KK(2) KK(3) KK(4)℄;
4.11 Problemas Resueltos 193

KI = -KK(5);
% SIMULACION
N = 100; x=[0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=0.5; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p5opt2

Problema 4.4
La gura 3.20 muestra un monorriel de dos arros des rito en el problema
3.5. El problema a resolver es el ontrol de velo idad del arro de maquinas
mediante un sistema de ontrol optimo uadrati o. Para garantizar a los
pasajeros un viaje onfortable, los ambios de velo idad deben realizarse
on un tiempo de estabiliza ion menor que 10 segundos y on mnimo so-
breimpulso. El error en estado estable debe ser nulo. Simule una se~nal
de referen ia que ambie la velo idad de 30 a 10 m/s y demuestre que se
umplen las espe i a iones de dise~no. La sele ion del tiempo de muestreo
es a onvenien ia del dise~no.
% p7opt2 SOLUCION DEL PROBLEMA 4.4
lose all
% PARAMETROS DEL PROCESO:
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO DEL PROCESO
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
194 
Control Optimo

0.6

Posición (m)
0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

40
Voltaje de control

20

−20

−40
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 4.31: Posi ion de la bola y el voltaje de ontrol para el problema 4.3.

0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄;
D=[0;0;0℄;
[num ,den ℄=ss2tf(A,B,C,D);
% MODELO LINEAL DISCRETO
T = 0.2; % perodo de muestreo
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(6,1);-C(1,:)*G 1℄;
H1 = [H;-C(1,:)*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
4.11 Problemas Resueltos 195

0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 100℄;
R = [10℄;
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3) KK(4) KK(5) KK(6)℄;
KI = -KK(7);
% SIMULACION
N = 500; x=[0;0;0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=20 + 10*sign(sin(0.02*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Velo idad (m/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Fuerza de ontrol (N)')
print -deps -f p7opt2

Problema 4.5

La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. El


problema a resolver es posi ionar suavemente el as ensor en un piso deter-
minado, lo que signi a sobreimpulso nulo (para que no se pase de piso) y
tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (el
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango de
 200 volt. Dise~nar un sistema de ontrol optimo uadrati o esta ionario
de posi ion que umpla las espe i a iones pedidas. La sele ion del tiempo
de muestreo es a onvenien ia del dise~no.
196 
Control Optimo

30

25

Velocidad (m/s)
20

15

10

5
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

600
Fuerza de control (N)

400

200

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 4.32: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 4.4.

% p8opt2.m SOLUCION DEL PROBLEMA 4.5


lear all
% MODELO CONTINUO DE LA PLANTA
A=[-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5℄;
B=[10e-3; 0; 0; 0℄; C=[0 1 0 0 ℄; D=[0℄;
% MODELO LINEAL DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
G1 = [G zeros(4,1);-C*G 1℄;
H1 = [H;-C*H℄;
% INGRESO DE PESOS
Q = [1 0 0 0 0
0 100 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 3℄;
R = [0.01℄;
% ECUACION DE RICCATI
4.11 Problemas Resueltos 197

P = diag(0,4);
for i = 1:40
P = Q + G1'*P*G1 - G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
% CALCULO DE LA MATRIZ DE GANANCIA KK
KK = inv(R+H1'*P*H1)*H1'*P*G1;
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3) KK(4)℄;
KI = -KK(5);
% KK = dlqr(G1,H1,Q,R);
% CALCULO DE LA MATRIZ DE OBSERVABILIDAD
No = [C' G'*C' (G')^2*C' (G')^3*C'℄;
rankNo = rank(No); % sistema no es observable
% SIMULACION
N = 200; x=[0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=3*sign(sin(0.02*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
if(U > 200)
U = 200;
elseif(U < -200)
U = -200;
end
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Posi ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p8opt2

Problema 4.6
La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
198 
Control Optimo

Posición (m)
0

−2

−4
0 5 10 15 20 25 30 35 40
Tiempo en segundos

100
Voltaje de control

−100

−200
0 5 10 15 20 25 30 35 40
Tiempo en segundos

Figura 4.33: Posi ion del as ensor y la fuerza de ontrol orrespondientes al


problema 4.5.
ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se derivo en el ejemplo 2.1. Dise~nar un ontrolador
optimo uadrati o esta ionario on las espe i a iones siguientes: tiempo
de estabiliza ion menor que 20 s, sobreimpulso menor al 5 % y error nulo en
estado 3estable. El ujo de entrada (la se~nal de ontrol) no debe sobrepasar
los 3 m /s. La sele ion del tiempo de muestreo es a onvenien ia del dise~no.
% p9opt2.m SOLUCION DEL PROBLEMA 4.6
lear all
% DEERMINACION DE LAS MATRICES DE LA ECUACION DE ESTADO
gam=0.4; rho=1.23; g=9.81; A=9; Qo=3;
H1eq = Qo^2/(gam^2*rho*g);
a11 = -((gam*((rho*g)^1/2))/(2*A*((H1eq)^1/2)));
A=[a11 0
-a11 a11℄;
B=[1; 0℄;
C=[0 1℄; D=[0℄;
% DISCRETIZACION DEL SISTEMA
T = 0.2;
[G,H℄= 2d(A,B,T);
% VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL
% eigG=eig(G); % NO TIENE POLOS EN z=0;
4.11 Problemas Resueltos 199

% ADICIONANDO ACCION INTEGRAL


G1 = [G zeros(2,1);-C*G 1℄; H1 = [H;-C*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0
0 1 0
0 0 0.02℄;
R = [2℄;
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2)℄;
KI = -KK(3);
% SIMULACION
N = 200; x=[0;0℄; v=0; Y=0;
for k=1:N
r(k)=3; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
if(U > 5)
U = 5;
elseif(U < 0)
U = 0;
end
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Nivel (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Flujo de ontrol (m^3/s)')
print -deps -f p9opt2

Problema 4.7
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Dise~nar un sistema de ontrol optimo uadrati o esta ionario
200 
Control Optimo

Nivel (m)
2

0
0 5 10 15 20 25 30 35 40
Tiempo en segundos

1.5
Flujo de control (m^3/s)

0.5

0
0 5 10 15 20 25 30 35 40
Tiempo en segundos

Figura 4.34: Nivel ontrolado H2 y el ujo de ontrol para el problema 4.6.


para ontrolar la velo idad angular del eje del motor mediante el voltaje de
entrada que puede variar entre  100 volt.
% p11opt2.m SOLUCION DEL PROBLEMA 4.7
lear all
% PARAMETROS GENERALES
nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS
% PARAMETROS DEL SISTEMA:
J = 0.01; % MOMENTO DE INERCIA DEL MOTOR (kgm2/s2)
Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A)
R = 12; % RESISTENCIA (Ohmios)
C = 0.5; % CONDENSADOR (uF)
L = 0.5; % INDUCTANCIA DE LA ARMADURA (H)
Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad)
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0;...
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.05; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
4.11 Problemas Resueltos 201

[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);

% VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL


% rai es = eig(G); % NO TIENE POLOS z=0;

% ADICIONANDO ACCION INTEGRAL


G1 = [G zeros(3,1);-C*G 1℄;
H1 = [H;-C*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 0.1℄;
R = [0.1℄;

% CONTROL OPTIMO DEL SISTEMA


% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3)℄;
KI = -KK(4);

% SIMULACION
N = 600; x=[0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=5*sign(sin(0.008*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
% if(U > 24)
% U = 24;
% elseif(U < -24)
% U = -24;
% end
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
202 
Control Optimo

ylabel('Velo idad (rad/s)')


xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p11opt2

10
Velocidad (rad/s)

−5

−10
0 5 10 15 20 25 30
Tiempo en segundos

40

20
Voltaje de control

−20

−40

−60
0 5 10 15 20 25 30
Tiempo en segundos

Figura 4.35: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 4.7.

4.12 Problemas Propuestos


Problema 4.8

Demostrar que el valor mnimo de la fun ion de osto des rita en la e ua ion
4.11):
NX1 
1
J = x (N )Sx(N ) +
T 1 xT (k)Qx(k) + uT (k)Ru(k)

2 2 k=0
4.12 Problemas Propuestos 203

esta dada por la expresion:


1
Jmin = xT (0)P (0)x(0)
2
donde los argumentos nulos representan el tiempo dis reto nulo ini ial.
Problema 4.9
Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol optimo esta ionario para ontrolar el
angulo de eleva ion  on las espe i a iones siguientes: tiempo de
estabiliza ion menor de 2 s, sobreimpulso y error en estado esta ionario
nulos. Los disturbios tipo es alon pueden a tuar simultaneamente o
no y pueden ser positivos o negativos. Para ada aso, el sistema de
ontrol optimo debe ser apaz de minimizar sus efe tos. La sele ion
del tiempo de muestreo es a onvenien ia del dise~no.
(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 4.10
El pro eso olumna de destila ion se des ribe en el problema 3.10 y se mues-
tra en la gura 3.29. Dise~nar un sistema de ontrol optimo multivaria-
ble esta ionario para ontrolar las temperaturas residuales T1 = 13 z1
y T2 = 24 z2 on las espe i a iones siguientes: error en estado esta-
ionario nulo, sobreimpulso menor al 5 % y tiempo de estabiliza ion menor
que 0.1 horas. Considerar disturbios unitarios a tuando sobre el pro eso
multivariable. La sele ion del tiempo de muestreo es a onvenien ia del
dise~no.
Problema 4.11
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la dinami a
del sistema son materia del problema 3.12. Dise~nar un sistema de ontrol
optimo esta ionario para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso.
204 
Control Optimo

Problema 4.12
La gura 3.32 muestra el pro eso pendulo doble no lineal, el ual es una
extension del pendulo simple des rito en la se ion 3.1. El a oplamien-
to entre los dos pendulos de igual longitud no es exible. Las e ua iones
que des riben la dinami a del sistema son materia del problema propuesto
3.13. Dise~nar un sistema de ontrol optimo no esta ionario para ontrolar
simultaneamente las posi iones  y  on mnimo tiempo de estabiliza ion
y mnimo sobreimpulso, de modo tal que el pendulo doble permanez a en
posi ion verti al.
Problema 4.13
La gura 3.33 muestra el pro eso doble grua-puente no lineal, el ual es una
extension del pro eso grua-puente es rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Considerar que la arga esferi a es de 0.02 kg. Dise~nar un sistema de ontrol
optimo esta ionario para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso, de modo tal que
la grua-puente doble permanez a en posi ion verti al uando el arro realiza
un re orrido predeterminado..
Problema 4.14
En la se ion anterior se dise~naron sistemas de ontrol optimo esta ionario
para varios pro esos. Ahora abordaremos el dise~no de sistemas de ontrol
optimo no esta ionarios.
Dise~nar un sistema de ontrol optimo no esta ionario; es de ir, determi-
nar la ley de ontrol u(k) que minimi e la siguiente fun ion de osto:
1
J = [xT (N )Sx +
1 NX1[xT (k)Qx + uT (N )Ru℄
2 2 k=0
para una ondi ion ini ial x(0) = arbitraria y para un valor de N para
el ual la o las salidas ontroladas umplan las espe i a iones de dise~no.
Sele ionar apropiadamente el tiempo de muestreo y las matri es de pon-
dera ion. Gra ar la o las salidas ontroladas y las orrespondientes se~nales
de ontrol. Cal ular tambien el valor mnimo de la fun ion de osto. Re-
alizar los al ulos requeridos anteriormente para ada uno de los pro esos
tratados en los problemas 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 y 4.7.
Cap
tulo 5

Control Adaptivo

En este aptulo se desarrolla un pro edimiento para dise~nar un sistema de on-


trol adaptivo on autosintoniza ion, on la apa idad de ontrolar pro esos no
lineales univariables (de una entrada y una salida) operando en la presen ia
de argas no lineales. Tales pro esos pueden ser representados por e ua iones
diferen iales no lineales, donde pre isamente los terminos no lineales ompli an
los aspe tos analti os de modelado del pro eso y de dise~no del ontrolador.
Sin embargo, basado en el orrespondiente modelo lineal del pro eso, podemos
estru turar un sistema de ontrol adaptivo on autosintoniza ion ombinan-
do algoritmos lineales de ontrol on pro edimiento para estimar en linea los
parametros y los estados del pro eso.
En la antepenultima se ion de este aptulo se presenta una apli a ion
para demostrar la validez del pro edimiento de dise~no: ontrol de posi ion de
un servomotor D.C. expuesto a argas no lineales. La penultima se ion, pro-
blemas resueltos, esta dedi ada al dise~no de sistemas de ontrol adaptivo on
autosintoniza ion para diferentes pro esos. La ultima se ion propone proble-
mas de dise~no. Todos los ar hivos orrespondientes a los ejer i ios, problemas,
dise~nos, simula iones y software desarrollados se pueden des argar del sitio:
http:/ ee.uni.edu.pe/728681F.

5.1 Introdu ion


Los sistemas de ontrol adaptivo ajustan su omportamiento a las am-
biantes propiedades del pro eso ontrolado y de las se~nales que intera tuan
sobre di ho pro eso. Por el ontrario, los sistemas de ontrol jos se a-
ra terizan por la presen ia de una ley de ontrol invariable on el tiempo.
206 Control Adaptivo

La investiga ion sobre ontroladores adaptivos se ha entrado en dos grupos


prin ipales: ontroladores adaptivos on un modelo referen ial y ontro-
ladores on autosintoniza ion. En este aptulo se emplea la on gura ion
de un sistema de ontrol adaptivo on autosintoniza ion mostrado en la -
gura 5.1. Tal sistema ombina en su dise~no un metodo de estima ion de
parametros (el de los mnimos uadrados re ursivo mejorado), una te ni a
de estima ion de estados (el ltro de Kalman), una representa ion lineal
del modelo del pro eso, y una ley de ontrol (el ontrolador propor ional-
integral optimo uadrati o on realimenta ion de estados). El objetivo del
ontrol es determinar una fuerza de ontrol apaz de minimizar la diferen ia
entre la salida del pro eso y la se~nal de referen ia.
^x ^
ESTIMADOR θ ESTIMADOR DE
DE ESTADOS PARAMETROS

U ESTIMACION MODELO
DE U LINEAL

+
Y CONTROLADOR CON + PROCESO Y
+ AUTOSINTONIZACION u U NO LINEAL
-
DISTURBIOS

Figura 5.1: Con gura ion del sistema de ontrol on autosintoniza ion.
El sistema de ontrol on autosintoniza ion mostrado en la gura 5.1
opera omo sigue: luego de ada tiempo de muestreo, el ve tor estimado
de parametros ^ se a tualiza empleando los datos propor ionados por la
entrada U del pro eso y por la salida Y del mismo. Luego, los elementos
de ^ se usan para re uperar el modelo lineal del pro eso, lo ual permite
estimar el ve tor de estado del modelo del pro eso x^ (empleando un ltro
de Kalman) y el valor de equilibrio U de la ley de ontrol a tual U . Tales
resultados se usan luego para omputar la ley de ontrol residual u y para
a tualizar la ley de ontrol a tual U a partir de la rela ion U = U + u.
Este aptulo esta organizado omo sigue. La se ion 5.2 trata on el
problema de modelar pro esos no lineales usando modelos lineales. Pro-
edimientos para estimar en lnea (\on-line") los parametros y estados del
5.2 Modelando Pro esos No Lineales 207

modelo del pro eso se desarrollan en la se ion 5.3, mientras que el algo-
ritmo del ontrolador on autosintoniza ion se deriva en la se ion 5.4. La
se ion 5.5 presenta el pro edimiento para dise~nar un sistema de ontrol on
autosintoniza ion. Una apli a ion se propor iona en la se ion 5.6: ontrol
de posi ion de un servomotor sujeto a argas no lineales.

5.2 Modelando Pro esos No Lineales


Consideremos el siguiente pro eso dinami o ontinuo:
X_ = f (X; U (t); v(X; t); t) (5.1)
donde X (de orden n) y U (t) (de orden uno) son el ve tor de estado y la
ley de ontrol, respe tivamente. La fun ion no lineal f (:) puede tambien
ontener disturbios v(:) en los estados. De la e ua ion (5.1), es posible
obtener el modelo lineal siguiente:
X_ (t) = [A + A℄X(t) + [B + B ℄U (t) + v(X; t)
Y (t) = [C + C ℄X + w(X; t) (5.2)
donde A es la matriz de estado de dimension n  n, B es la matriz de ontrol
de dimension n  1, C es la matriz de salida de dimension 1  n, y A, B
y C son las orrespondientes in ertidumbres a otadas on dimensiones
apropiadas. Ademas, v(X; t) es un ve tor no lineal de disturbios de orden
n a tuando sobre los estados, w(X; t) es un disturbio no lineal de orden
uno a tuando en la salida, e Y (t) es la salida del pro eso de orden uno.
El pro eso nominal no perturbado (o pro eso on ertidumbre) se obtiene
jando en ero todas las in ertidumbres y todos los disturbios en la e ua ion
(5.1). Muestreando di ho modelo nominal, podemos obtener la siguiente
representa ion:
X(k + 1) = GX(k) + HU (k); Y (k) = CX(k) (5.3)
donde k es el tiempo dis reto y las matri es G y H poseen las mismas
dimensiones que las matri es A y B , respe tivamente. La orrespondiente
e ua ion polinomial residual toma la forma:
A(z 1)y(z) = B(z 1)u(z) (5.4)
208 Control Adaptivo

donde z es el operador de desplazamiento, on:


A(z 1) = 1 + a1z 1 + : : : + anz n
B(z 1) = b1 z 1 + : : : + bnz n (5.5)
Empleando ahora las rela iones residuales: y = Y Y , x = X X y
u = U U en las e ua iones (5.3) y (5.4) obtenemos:
x(k + 1) = Gx(k) + Hu(k); y(k) = Cx(k) (5.6)
A(z 1 )Y (k) = B(z 1)U (k) + C (5.7)
donde la onstante C se determina de:
C = (1 + a1 + : : : + an)Y (b1 + : : : + bn)U (5.8)
5.3 Pro edimientos de Estima ion
Esta se ion presenta los pro edimientos para estimar (o identi ar) en lnea
los parametros y los estados del modelo del pro eso.
5.3.1 El Metodo de los Mnimos Cuadrados Re ursivo
Para estimar los parametros del modelo del pro eso usaremos las se~nales
a tuales U (k) e Y (k) en lugar de sus desvia iones u(k) e y(k). Para ello, la
des rip ion en el espa io de estado dada por la e ua ion (5.7) tiene que ser
reordenada para tomar la forma siguiente:
Y (k) = T (k)^(k) (5.9)
donde el ve tor de informa ion (o de medi ion) ontiene los valores pre-
sentes y pasados de la entrada U y de la salida Y omo sigue:
T (k ) = [Y (k 1) : : : Y (k n) U (k 1) : : : U (k n) 1℄ (5.10)
y el ve tor ^ ontiene los parametros a ser estimados, a saber:
^(k) = [ a^1 (k) : : : a^n (k) ^b1 (k) : : : ^bn (k) C^℄T (5.11)
Notar que en la e ua ion (5.9), el orden del ve tor de informa ion y el orden
del ve tor de parametros es 2n+1; es de ir, di hos ve tores han in rementado
5.3 Pro edimientos de Estima ion 209

su orden en uno. La e ua ion (5.7) on z = 1 (propiedad del valor nal)


representa la ondi ion de estado estable, es de ir:
A(1)Y = B(1)U + C (5.12)
El algoritmo basi o de los mnimos uadrados re ursivo puede implementarse
en la forma siguiente:
1) Obtener el ve tor de parametros ini ial ^(0) usando los valores de los
parametros del modelo del pro eso (e ua ion (5.5)).
2) Obtener el valor ini ial del parametro C (0) empleando la e ua ion
(5.8), onsiderando U = 0 e Y igual a la se~nal de referen ia.
3) La matriz de ovarianza ini ial P puede tener la forma P = I , donde
I es la matriz identidad y  1.
4) Tomar nuevas medi iones de Y (k) y de U (K ) en el pro eso, para
obtener una nueva e ua ion de la forma dada en (5.9).
5) Computar el error de estima ion (ver e ua iones (5.10) y (5.11)):
e(k) = Y (k) T (k)^(k)
6) Sabiendo que P (k) = [ T (k) (k)℄ 1 , omputar: i(k) = P (k) (k).
7) Computar:
j (k) = T (k)i(k); (k) = i(k)=[ + j (k)℄
^(k + 1) = ^(k) + (k)e(k); P (k + 1) = [I (k) T (k)℄P (k)=
7) A tualizar: P (k + 1) = P (k) y ^(k + 1) = ^(k)
Ejemplo 5.1
Estimar los parametros del pro eso servomotor D.C. on arga no lineal
des rito en la se ion 3.3, empleando el metodo de los mnimos uadrados
re ursivo. Emplee el modelo lineal de segundo orden del pro eso y omo
se~nal ex itadora use un es alon de magnitud 0.4. Gra que la respuesta del
pro eso.
Solu ion: El programa ejem5 1.m estima los parametros para el pro eso
pedido. La gura 5.2 gra a la respuesta Y del pro eso a un es alon U = 0.4.
Las guras 5.3 y 5.4 muestran los parametros estimados. Podemos observar
que ada parametro estimado onverge a un valor que es aproximadamente
el valor del orrespondiente parametro del modelo dis reto.
210 Control Adaptivo

% ejem5_1.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO


% DE LOS MINIMOS CUADRADOS RECURSIVO
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.0; % 0.01, 0.02, 0.045;
K = 31.071e-3; n = 19.741; L = 4.64e-3;

B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M℄; % ( : CONTINUO)
B = [0;n*K*Ka t/(R*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES Y OTROS PARAMETROS
alfa=1000; Pi = alfa*eye(5); % MATRIZ P INICIAL
theta_p = [-a1 -a2 b1 b2℄'; % PARAMETROS DEL PROCESO
thetai = [0 0 0 0 0℄'; % PARAMETROS INICIALES
lambda = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;
% PROCEDIMIENTO DE IDENTIFICACION
Mm = 1000;
for r = 1:Mm
k = r + 2;
U(k) = 0.4;
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)℄';
Y(k) = psi_p'*theta_p; % MODELO LINEAL DEL PROCESO
psi = [psi_p;1℄; % VECTOR DE DATOS
e = Y(k)-psi'*thetai; % ERROR DE ESTIMACION
i = Pi*psi;
j = psi'*i;
gamma = i/(lambda + j);
5.3 Pro edimientos de Estima ion 211

theta = thetai+gamma*e; % VECTOR DE PARAMETROS


ae1(r) = -theta(1); % PARAMETRO a1 ESTIMADO
ae2(r) = -theta(2); % PARAMETRO a2 ESTIMADO
be1(r) = theta(3); % PARAMETRO b1 ESTIMADO
be2(r) = theta(4); % PARAMETRO b2 ESTIMADO
P = (eye(5) - gamma*psi')*Pi/lambda;
% ACTUALIZACION
thetai = theta;
Pi = P;
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm)); grid
ylabel('SE~NAL EXCITATRIZ U')
xlabel('MUESTRAS DISCRETAS k = 0.01 s')
subplot(2,1,2)
plot(q,Y(1:Mm)); grid
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
print -deps -f ejem5_1a
figure(2)
plot(q,ae1,q,ae2,'-.'); grid
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s) ')
ylabel('PARAMETROS ESTIMADOS')
print -deps -f ejem5_1b
figure(3)
plot(q,be1,q,be2,'-.'); grid
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
ylabel('PARAMETROS ESTIMADOS')
print -deps -f ejem5_1

5.3.2 Mnimos Cuadrados Re ursivo Mejorado


El algoritmo basi o de los mnimos uadrados re ursivo se en uentra bas-
tante difundido. Sin embargo, di ho algoritmo puede presentar problemas
poten iales de ara ter numeri o que podran afe tar el dise~no nal del on-
trolador on autosintoniza ion. Por tal motivo, en este aptulo se emplea
el metodo de los mnimos uadrados re ursivo mejorado propuesto en [5℄, el
ual puede implementarse en la forma siguiente:
212 Control Adaptivo

0.4

SEÑAL EXCITATRIZ U
0.3

0.2

0.1

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS DISCRETAS k = 0.01 s
RESPUESTA Y DEL PROCESO

2.5

1.5

0.5

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.2: Respuesta del modelo lineal del pro eso a un es alon de magnitud
U = 0.4.

0.5
PARAMETROS ESTIMADOS

−0.5

−1

−1.5

−2
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.3: Parametros estimados a^1(k) ( urva solida) y a^2(k).


5.3 Pro edimientos de Estima ion 213

0.045

0.04

PARAMETROS ESTIMADOS 0.035

0.03

0.025

0.02

0.015

0.01

0.005

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.4: Parametros estimados ^b1(k) ( urva solida) y ^b2(k).

1) Obtener el ve tor de parametros ini ial ^(0) usando los valores de los
parametros del modelo del pro eso dadas en la e ua ion (5.4).
2) Obtener el valor ini ial del parametro C (0) empleando la e ua ion
(5.8), onsiderando U = 0 e Y igual a la se~nal de referen ia.
3) La matriz de ovarianza ini ial P puede tener la forma P = I , donde
I es la matriz identidad y  1.
4) Tomar nuevas medi iones de Y (k) y de U (K ) en el pro eso, para
obtener una nueva e ua ion de la forma dada en (5.9).
5) Computar: (k) = max(1; k (k)k); n = =(k)
6) Determinar la matriz N (k) apli ando fa toriza ion Cholesky en:
N (k)N (k)T = P (k)

7) Determinar la matriz diagonal de es alamiento S (k) on elementos sjj .


Tal matriz minimiza el numero ondi ional del produ to S (k)N (k)
siempre que sjj = 1=njj , donde ada njj se obtiene tomando el valor
absoluto de la suma de los elementos de la la j de N (k).
214 Control Adaptivo

8) Computar:
PS (k) = S (k)P (k)S (k)
nS = [S (k )℄
1 n
r(k) = 1 + nS T (k )P (k 1)
S nS (k )
" s #
(k) = 1
1 r(k) r2(k) 4kPS (k 1) nS (k)k2
2 tr PS (k 1)
en (k) = Y (k)=(k) nT (k) ^(k 1)
j (k) = [ nS
T (k + 1)P (k )
S nS (k + 1) + (k )℄
^(k + 1) = ^(k) + S 1 (k)PS (k) nS (k)en (k + 1)=j (k)
HnS (k +1) = PS (k) nS (k +1)  [ nS T (k +1)P (k )
S nS (k +1)+ (k )℄
1
PS (k + 1) = [I HnS (k + 1) nS T (k + 1)℄P (k )=(k )
S
 
max eig(PS )
tt = abs
min eig(P )S
9) Implementar el riterio para parar la estima ion y para en ontrar la
nueva matriz de es alamiento Nnew omo sigue: sabiendo que tt es
el numero ondi ionante de PS , si tt   ( ota inferior), parar la
estima ion; en otro aso, si tt   ( ota superior), determinar Nnew (k)
(a partir de la rela ion PS = Nnew Nnew
T ), al ular los elementos n
new
(valor absoluto de la suma de los elementos de las las de Nnew (k)),
jj

determinar la matriz diagonal Snew on elementos snew = 1=nnew ,


y al ular la matriz Pnew = Snew PS Snew . Finalmente, a tualizar:
jj jj

P = Pnew .
S
S

Ejemplo 5.2
Estimar los parametros del pro eso servomotor D.C. on arga no lineal
des rito en la se ion 3.3, empleando el metodo de los mnimos uadrados
re ursivo mejorado. Emplee el modelo no lineal de segundo orden del pro-
eso y omo se~nal ex itadora use un es alon de magnitud 0.4. Gra que la
respuesta del pro eso.
Solu ion: El programa ejem5 2.m estima los parametros para el pro eso
pedido. La gura 5.5 gra a la respuesta Y del pro eso a un es alon U
= 0.4. Las guras 5.6 y 5.7 muestran los parametros estimados. Podemos
observar que ada parametro estimado onverge a un valor onstante.
5.3 Pro edimientos de Estima ion 215

% ejem5_2.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO


% DE LOS MINIMOS CUADRADOS RECURSIVO MEJORADO
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Lo = 0.776;
K = 31.071e-3; n = 19.741; L = 4.64e-2;
Mo = 0.0; % peso variable: 0 gr, 10 gr, 20 gr y 45 gr

B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M℄; % ( : CONTINUO)
B = [0;n*K*Ka t/(R*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES (ARBITRARIAS) Y OTROS PARAMETROS
alfa=1000; N = 5; Pi = alfa*eye(N); % MATRIZ P INICIAL
theta_p = [-a1 -a2 b1 b2℄'; % PARAMETROS DEL PROCESO
thetai = [-a1/3 -a2/2 3*b1 2*b2 0℄'; % PARAMETROS INICIALES
lambda = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;
x1 = 0; x2 = 0;
% PROCEDIMIENTO DE IDENTIFICACION
Mm = 1000;
for r = 1:Mm
k = r + 2;
U(k) = 0.4;
% MODELO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO DIRECTAMENTE
TN = *sign(x2);
x1=x1+T*x2;
x2=x2+T*(-(N/M)*sin(x1) - (B/M + n^2*K*E/(M*R))*x2 - TN/M ...
+ (n*K*Ka t/(R*M))*U(k) );
Y(k) = x1;
216 Control Adaptivo

% PROCEDIMIENTO DE IDENTIFICACION
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)℄';
psi = [Y(k-1) Y(k-2) U(k-1) U(k-2) 1℄';
nor = max(1,norm(psi));
psin = psi/nor;
Q = hol(Pi');
S = inv(diag(Q*ones(N,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
LF = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(k)/nor - thetai'*psin;
div = psins'*Ps*psins + LF;
theta = thetai + e*inv(S)*Ps*psins/div;
ae1(r) = -theta(1); % PARAMETRO a1 ESTIMADO
ae2(r) = -theta(2); % PARAMETRO a2 ESTIMADO
be1(r) = theta(3); % PARAMETRO b1 ESTIMADO
be2(r) = theta(4); % PARAMETRO b2 ESTIMADO
Hns = Ps*psins/div;
Ps = Ps/LF - Hns*psins'*Ps/LF;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
thetai = theta; Pi = Ps;
elseif tt >= max,
Qnew = hol(Ps');
Snew = inv(diag(Qnew*ones(N,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thetai = theta;
end
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm))
ylabel('SE~NAL EXCITATRIZ U')
grid
subplot(2,1,2)
plot(q,Y(1:Mm))
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
grid
5.3 Pro edimientos de Estima ion 217

print -deps -f ejem5_2a


figure(2)
plot(q,ae1,q,ae2)
text(250,0.55,'a2');
text(250,-0.7,'a1');
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
ylabel('PARAMETROS ESTIMADOS')
grid
print -deps -f ejem5_2b
figure(3)
plot(q,be1,q,be2)
text(250,2.5e-3,'b1');
text(250,-3e-3,'b2');
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
ylabel('PARAMETROS ESTIMADOS')
grid
print -deps -f ejem5_2

0.4
SEÑAL EXCITATRIZ U

0.3

0.2

0.1

0
0 100 200 300 400 500 600 700 800 900 1000
RESPUESTA Y DEL PROCESO

0.15

0.1

0.05

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.5: Respuesta del pro eso no lineal a un es alon de valor U = 0.4.
218 Control Adaptivo

0.6
a2

0.4

ESTIMADOS
0.2

0
PARAMETROS

−0.2

−0.4

−0.6

a1

−0.8
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.6: parametros estimados a^1 (k) y a^2 (k).

−3
x 10
14

12

10
ESTIMADOS

4
PARAMETROS

b1
2

−2
b2
−4

−6
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.7: parametros estimados ^b1(k) y ^b2 (k).


5.4 La Ley de Control 219

5.3.3 Estima ion de Estados


De la e ua ion (5.6) podemos obtener el siguiente modelo nominal pertur-
bado del pro eso:
x(k + 1) = Gx(k) + Hu(k) + v(k)
Y (k) = Cx(k) + w(k) (5.13)
El pro edimiento de estima ion des rito en la subse ion anterior nos pro-
por iona el ve tor de parametros estimado del pro eso ^(k). Usando los
elementos de di ho ve tor de parametros, podemos re onstruir las matri es
estimadas G^ (k), H^ (k) y C^ (k). El ve tor de estado estimado x^(k) puede ser
obtenido empleando un ltro de Kalman [6℄, on e ua ion de observa ion:
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)℄ (5.14)
y e ua ion de a tualiza ion de estados:
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k) (5.15)
En la e ua ion (5.14), la matriz de ganan ia Ko(k) se al ula de:
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Ro ℄ 1 (5.16)
donde Po (k) es la matriz de nida positiva, solu ion uni a de la siguiente
e ua ion matri ial dis reta aso iada de Ri ati:
Po (k + 1) = Qo + G^ ( T )(k)Po (k)G^ (k) G^ T (k)Ko (k)C^ (k)Po (k)G^ (k) (5.17)
donde Qo y Ro son matri es de ovarianza de nidas positivas orrespondien-
te a los disturbios v y w, respe tivamente.
5.4 La Ley de Control
Es bastante ono ido [6℄ que el ontrolador propor ional optimo uadrati o
es una matriz de ganan ia Kx que nos permite formular la siguiente ley de
ontrol u = Kxx(k). Di ha matriz es el resultado de la minimiza ion de
la fun ion de osto:
1
X
I= [xT (k)Qx(k) + u2(k)R℄ (5.18)
k=0
220 Control Adaptivo

sujeto a la e ua ion de restri ion:


x(k + 1) = Gx(k) + Hu(k)
donde la matriz Q = QT es semide nida positiva y la matriz R es de nida
positiva. En la subse ion 4.5 se detalla omo sele ionar estas matri es. La
ganan ia Kx se obtiene de:
Kx = (R + H T SH ) 1 H T SG (5.19)
donde S es la uni a matriz de nida-positiva solu ion de la siguiente e ua ion
matri ial dis reta aso iada de Ri ati:
0 = S GT SG + GT SHKx (5.20)
Para mejorar el rendimiento del ontrolador propor ional, es posible adi-
ionar a ion integral a di ho ontrolador. De niendo la variable z(k) omo
la integral (sumatoria) del error [Y (k) Y (k)℄:
k 1 k 1 k
[Y (i)
X X X
z (k) = Y (i)℄ = [ y(i)℄; z (k + 1) = [ y(i)℄
i=0 i=0 i=0
enton es:
z (k + 1) = z (k) y(k) = z (k) Cx(k) (5.21)
de modo que la representa ion en el espa io de estado del sistema aumentado
toma la forma siguiente:
xa (k + 1) = Ga xa (k) + H a u(k) (5.22)
y(k) = C x (k)
a a (5.23)
donde el superndi e a signi a aumentado. El ve tor xa y las matri es Aa ,
B a y C a poseen la forma:
   
x ( k )
x (k) = z (k) ; G (k) =
a a G 0
C I
 
H a = H0
; C a = [C 0℄ (5.24)
Por onsiguiente, el problema es determinar la matriz de ganan ia K a omo
resultado de la minimiza ion de la siguiente fun ion de osto:
1
X
Ia = [xa )T (k)Qa xa (k) + u2(k)R℄ (5.25)
k=0
5.5 Pro edimiento de Dise~no 221

donde la matriz Qa = [Qa ℄T es semide nida positiva. La ganan ia K a se


obtiene de:
K a = fR + [H a ℄T P a H a g 1 [H a ℄T P a Ga (5.26)
En la e ua ion (5.26), P es la uni a matriz de nida-positiva solu ion de la
a
siguiente e ua ion matri ial dis reta aso iada de Ri ati:
P a = Qa + [Ga ℄T P a Ga [Ga ℄T P a H a K a (5.27)
Por onsiguiente, la ley de ontrol del ontrolador optimo uadrati o pro-
por ional integral viene a ser:
u(k) = Ka xa (k) (5.28)
y los parametros de pondera ion de rendimiento son R y Qa .
5.5 Pro edimiento de Dise~
no
El pro edimiento para dise~nar el sistema de ontrol on autosintoniza ion
ilustrado en la gura 5.1 es omo sigue:
1) Formular el problema (de nir espe i a iones de dise~no).
2) Usando toda la informa ion disponible a er a del pro eso no lineal,
determinar sus modelos lineal y no lineal (se ion 5.2).
3) Implementar el metodo de los mnimos uadrados re ursivo mejorado
(subse ion 5.3.2) para estimar los parametros del modelo del pro eso.
4) Implementar el pro edimiento desarrollado en la subse ion 5.3.3 para
estimar los estados del modelo del pro eso.
5) Implementar la ley de ontrol residual u(k) (se ion 5.4) dada por la
e ua ion (5.28), omputar U (k) usando la e ua ion (5.8), y a tualizar
la ley de ontrol a tual empleando la rela ion U (k) = u(k) + U (k).
6) Simular el sistema de ontrol adaptivo variando las matri es de pon-
dera ion R, Qa, Ro y Qo, hasta obtener un rendimiento satisfa torio
del sistema.
7) Implementar el hardware.
8) Implementar el software de ontrol.
9) Realizar pruebas de fun ionamiento (resultados experimentales).
222 Control Adaptivo

5.6 Control Adaptivo de un Servomotor No Lineal


5.6.1 Formula ion del Problema
El servomotor D.C. on arga no lineal (dis utido ampliamente en la se ion
3.3) es un pro eso de una entrada y una salida que puede ser ontrolado por
el voltaje de armadura. La arga no lineal es una varilla metali a a oplada al
eje del servomotor, a manera de un brazo roboti o de un grado de libertad.
En el extremo de la varilla se pueden a oplar argas adi ionales. El objetivo
del ontrol es dise~nar e implementar un sistema de ontrol adaptivo on
autosintoniza ion, de modo tal que la varilla se posi ione en una referen ia
predeterminada on mnimo sobreimpulso en su respuesta, a pesar de la
presen ia de la arga no lineal y de las no linealidades inherentes del pro eso
omo son las fri iones estati a y de Coulomb, y satura ion en el ampli ador
del servomotor.
5.6.2 El Modelo del Pro eso
La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La
tabla 3.2 des ribe las variables y los valores de los parametros. Vimos en el
ejemplo 5.1 que el pro eso no lineal puede ser des rito mediante un modelo
lineal en el espa io de estado de la forma:
x_ = A x + B u; y = C x
donde:
   
A =
0 1 2E B = KnK
0 ; 
C = 1 0

N
M ( M + MR )
B Kn a t
MR
(5.29)
La fun ion de transferen ia de pulso Gp(z), para un tiempo de muestreo de
0.01 s (o lo que es lo mismo, una fre uen ia de muestreo de Fs = 100 Hz),
tiene la forma:
y(z ) b1 z + b2 b1 z 1 + b2 z 2
Gp (z ) = = = (5.30)
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2
y su orrespondiente e ua ion de diferen ias es:
y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2) (5.31)
5.6 Control Adaptivo de un Servomotor No Lineal 223

donde a1 = -1.9608, a2 = 0.9626; b1 = 0.044 y b2 = 0.045. Vimos que


partiendo de la e ua ion (5.30), un mismo pro eso puede adoptar multiples
representa iones de estado de la forma:
x(k + 1) = Gx(k) + Hu(k); y(kT ) = Cx(kT )
donde G, H y C son las matri es de estado, de ontrol y de salida respe tiva-
mente, on dimensiones apropiadas. La representa ion anoni a ontrolable
del pro eso (primera forma, e ua ion (3.100) on b0 = 0) tiene la forma:
   
G = 0 1 0
a2 a1 ; H= 1
 
C = b2 a2 b0 b1 a1 b0 ; D = [0℄ (5.32)
5.6.3 Estima ion de Parametros
Para estimar (o identi ar) los parametros del modelo del pro eso, em-
pleamos el metodo de los mnimos uadrados re ursivo mejorado desarrolla-
do en la subse ion 5.3.2. Como primer paso al ulamos el ve tor ini ial de
parametros (e ua ion (5.5):
 
(0) = a1 a2 b1 b2 C (0) T
donde el valor ini ial de C (0) (e ua ion (5.8) on U = 0 e Y igual a la se~nal
de referen ia) es:
C = (1 + a1 + a2)Y
En el ter er paso jamos la matriz de ovarianza ini ial P de orden 5:
2 3
0 0 0 0
6 0 0 0 0 7
6 7
P =6 6 0 0 0 0 7;
7 = 1000 (5.33)
4 0 0 0 0 5
0 0 0 0
Como uarto paso obtenemos nuevas medi iones de Y (k) y de U (K ) (ver
e ua ion (5.9)) y formulamos:
Y (k) = T (k)^(k)
T (k ) = [Y (k 1) Y (k 2) U (k 1) U (k 2) 1℄

^(k) = [ a^1 (k) a^2 (k) ^b1 (k) ^b2 (k) C^(k)℄T
Con los datos determinados hasta aqu, ahora podemos implementar los
otros pasos (ver ejemplo 5.2) on Cmin = 15 y Cmax = 100.
224 Control Adaptivo

5.6.4 Estima ion de Estados


El pro edimiento para la estima ion de estados se des ribe en la subse ion
5.3.3. El pro edimiento de estima ion (subse ion anterior) nos propor iona
el ve tor de parametros estimado del pro eso, a saber:
^(k) = [ a^1 (k) a^2 (k) ^b1 (k) ^b2 (k) C^(k)℄T
Usando los elementos de di ho ve tor de parametros, podemos re onstruir las
matri es estimadas G^ (k), H^ (k) y C^ (k) orrespondientes a la representa ion
anoni a ontrolable (e ua ion (5.32)):

^G(k) = 0 1  ; H^ (k) =  0 
a^2 (k) a^1 (k) 1
C^ (k) = ^b2 (k) ^b1 (k) ; D^ (k) = [0℄
 

Las e ua iones del ltro de Kalman para estimar el ve tor de estado x^ son
(ver e ua iones (5.14), (5.15) y (5.16)):
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)℄ (5.34)
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k) (5.35)
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Re ℄ 1 (5.36)
Para ada muestra dis reta, el programa de simula ion disadap.m (se ion
5.6.7) al ula las matri es Po (k) y Ko (k) empleando las matri es de ova-
rianza de los disturbios v y w, a saber, Qo = 0.01 y Ro = 0.04.
5.6.5 La Ley de Control
Para determinar el ontrolador propor ional- integral optimo uadrati o on
realimenta ion de estados (se ion 5.4), la representa ion en el espa io de
estado aumentado toma la forma siguiente (e ua ion (5.23)):
xa (k + 1) = Ga (k)xa (k) + H a (k)u(k); y(k) = C a (k)xa (k)
donde:
   
x ( k )
x (k) = z (k) ; G (k) =
a a G 0
C I
 
Ha = 0 ; H C a = [C 0℄
5.6 Control Adaptivo de un Servomotor No Lineal 225

La matriz de ontrol K a se obtiene de:


K a (k) = fR + [H a (k)℄T P a (k)H a (k)g 1 [H a (k)℄T P a (k)(k)Ga (k)
El programa disadap.m al ula las matri es K a(k), Ga (k) y H a(k) para ada
tiempo de muestreo. En el software de ontrol implementado, la matriz
P a (k) se obtiene luego de iterar la e ua i'on de Ri ati 20 ve es en ada
perodo de muestro. Los valores de R y Qa para la simula ion son:
2 3
0:05 0 0
R = 0:45; Qa = 4 0 0:01 0 5 ; (5.37)
0 0 0:01
5.6.6 La Ley de Control Residual
Para el sistema de ontrol a lazo errado podemos tomar la se~nal Y (k) igual
a la referen ia para todo k. As, podemos al ular la ley de ontrol residual
empleando la rela ion u(k) = U (k) U (k) (se ion 5.4), donde U (k) se halla
en lnea a partir de la e ua ion (5.8), omo sigue:
U (k) = [^b1 (k) + ^b2 (k)℄ 1 [1 + a^1 (k) + a^2 (k)℄Y (k) C^(k)
Finalmente, a tualizamos la ley de ontrol a tual: U (k) = u(k) + U (k).
5.6.7 Simula ion del Sistema de Control Adaptivo
El siguiente programa disadap.m resume todos los pasos des ritos anterior-
mente para simular el sistema de ontrol adaptivo. Es importante re al ar
que los algoritmos de ontrol lineal estan siendo apli ados al modelo no
lineal del pro eso, on el n de darle mayor realismo al pro eso de simu-
la ion. La simula ion in luye la estrategia para no saturar el ampli ador,
pero no in luye la ompensa ion de la no linealidad provo ada por la fri ion
de Coulomb debido a que no es ne esario ( onforme a los resultados de la
simula ion). El programa disadap.m es autoexpli ativo.
% disadap.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION
% ADAPTIVO CON AUTOSINTONIZACION
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; Ra = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.02; % 0.00, 0.01, 0.045;
226 Control Adaptivo

K = 31.071e-3; n = 19.741; L = 4.64e-3;


Lo = 0.776;
B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/Ra)/M℄; % ( : CONTINUO)
B = [0;n*K*Ka t/(Ra*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% G ,H , C , D : REPRESENTACION CANONICA CONTROLABLE
a11 = 0; a12 =1; a21 = -a2; a22 = -a1;
b11 = b1; b21 =b2-a1*b1; 11 =1; 12 = 0;
G = [a11 a12;a21 a22℄; H = [b11;b21℄;
C =[ 11 12℄; D = [0℄;
% REPRESENTACION POLINOMIAL
% A(z^(-1)) = 1 + a1*z^(-1) + a2*z^(-1);
% B(z^(-1)) = b1*z^(-1) + b2*z^(-1);
% A(z^(-1))*Y(k) = B(z^(-1))*U(k) + Ce; % CASO AUMENTADO
% en el estado esta ionario: z = 1:
% (1 + a1 + a2)*Yo = (b1 + b2)*Uo + Ce
% CONDICIONES INICIALES
Y(1) = 0; Y(2) = 0; Y(3) = 0; % SALIDA ACTUAL
y(1) = 0; y(2) = 0; % SALIDA RESIDUAL
U(1) = 0; U(2) = 0; U(3) = 0; % SE~NAL DE CONTROL ACTUAL
u(1) = 0; u(2) = 0; % SE~NAL DE CONTROL RESIDUAL
xmenos = zeros(2,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
X1 = 0; X2 = 0; % ESTADOS ACTUALES
% CONDICIONES INICIALES DE LOS PARAMETROS
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA
fre = 0.007; % FRECUENCIA DE LA SE~NAL DE REFERENCIA
Ce = (1 + a1 + a2)*Ref; % VALOR INICIAL DE Ce
thi = [-a1 -a2 b1 b2 Ce℄'; % VECTOR INICIAL DE PARAMETROS
alfa=1000; Pi = alfa*eye(5); % MATRIZ DE COVARIANZA INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
max = 100; min = 10; % UMBRALES DE ESTIMACION
5.6 Control Adaptivo de un Servomotor No Lineal 227

% PARAMETROS DE OPTIMIZACION
Qo = 0.01; Ro = 0.04; % PARA EL FILTRO DE KALMAN
R = 0.45; Qa = [0.05 0 0;0 0.1 0;0 0 1℄; % PARA LA GANANCIA Ka
% ******** LAZO DEL SISTEMA DE CONTROL ADAPTIVO *********
Mm = 2000;
for r = 1:Mm
t = r + 2;
% SE~NAL DE REFERENCIA
Yo(t)= Ref*sign(sin(fre *(t-2)));
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t-1) Y(t-2) U(t-1) U(t-2) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*Nn' = Pi'
S = inv(diag(Nn*ones(5,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t)/rho - thi'*psin;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(5,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2);
be1 = th(3); be2 = th(4); Ce = th(5);
ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -a1;
GE = [ae11 ae12;ae21 ae22℄;
be11 = 0; be21 = 1; HE = [be11;be21℄;
e11 =be2; e12 = be1; CE = [ e11 e12℄; DE = [0℄;
% SALIDA RESIDUAL (DESVIACION)
y(t) = Y(t) - Yo(t);
228 Control Adaptivo

% CALCULO DE LA GANANCIA Ko DEL ESTIMADOR DE KALMAN


Ko = dlqe(GE,HE,CE,Qo,Ro);
xmas = xmenos + Ko*(y(t) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR OPTIMO
Ga = [GE zeros(2,1);-CE 1℄;
Ha = [HE;0℄;
Ca = [CE 0℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t);
% CALCULO DE Uo (VALOR D.C. DE U(t))
AE = 1 + ae1 + ae2; BE = be1 + be2;
Uin = inv(BE)*(AE*Yo(t) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t) = u(t) + Uin;
% LIMITANDO LA SE~NAL U(t) PARA EVITAR SATURACION
if(U(t) > 1.4)
U(t) = 1.4;
elseif(U(t) <-1.4)
U(t) = -1.4;
end
% MODELO NO LINEAL DE SEGUNDO ORDEN (DISCRETIZCION DIRECTA)
TN = *sign(X2);
X1 = X1 + T*X2;
X2 = X2 + T*(-(N/M)*sin(X1) - (B/M + n^2*K*E/(M*R))*X2 ...
- TN/M + (n*K*Ka t/(R*M))*U(t) );
Y(t+1) = X1;
end
% ***************** FIN DEL LAZO DE CONTROL **************
% GRAFICOS
ejex = linspa e(0,Mm*T,Mm);
subplot(2,1,1)
plot(ejex,Yo(1:Mm),ejex,Y(1:Mm)); grid
ylabel('Posi ion Y (rad)')
subplot(2,1,2)
plot(ejex,U(1:Mm)); grid
ylabel('Se~nal de ontrol U (voltios)')
xlabel('Tiempo en segundos')
print -f -deps sims a % CREA sims a.eps
5.6 Control Adaptivo de un Servomotor No Lineal 229

Posición Y (rad)
1

−1

−2
0 2 4 6 8 10 12 14 16 18 20

2
Señal de control U (voltios)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 5.8: Resultado de la simula ion del sistema de ontrol adaptivo para
ontrolar la posi ion angular del servomotor D.C. sujeto a argas no lineales.

5.6.8 Implementa ion del Hardware


El sistema de ontrol de posi ion onsta de un servomotor D.C. on me a-
nismo de redu ion, una varilla a oplada al eje del servomotor (la arga no
lineal) perpendi ular al eje de giro del servomotor, una etapa de poten ia (el
ampli ador PWM) y un sensor de posi ion onformado por un odi ador
opti o (a oplado al eje del motor), un de odi ador de uadratura y un on-
tador de 16 bits. El hardware tambien in luye una PC Pentium y una tarjeta
de adquisi ion de datos Lab-PC+. A la arga no lineal (la varilla metali a)
se le pueden a oplar argas adi ionales. El esquema de implementa ion se
ilustra en la gura 5.9 mientras que el pro eso (el servomotor on arga no
lineal) se ilustra en la gura 5.10.
El A tuador
El a tuador esta onformado por el servomotor D.C. (de ampo magneti o
permanente y es obillas onmutadas), un generador PWM y una etapa de
poten ia. Debido a que el motor no responde inmediatamente a una tension
de entrada; es de ir, le toma un peque~no tiempo para llegar a la maxima
230 Control Adaptivo

COMPUTADORA
PERSONAL

TARJETA LAB-PC+ ETAPA DE POTENCIA

SALIDAS DAC0 Generador Amplificador


PWM de potencia
ANALOGICAS DAC1

Sensor (encoder)
PA0
..
PA .
PA7
COMPUERTAS MUX
DIGITALES PB0
..
PB . 16 bits SERVO-
DE ENTRADA MOTOR
PB7
Y SALIDA Decodificador DC
PC1 de cuadratura
.. y contador
PC . UP / DOWN
PC7 Varilla
PC0
Fs
CONTADOR / OUTB0 Carga
Adicional
TEMPORIZADOR

Figura 5.9: Esquema de implementa ion del sistema de ontrol de posi ion.
5.6 Control Adaptivo de un Servomotor No Lineal 231

Codificador optico

Reductor de
velocidad
Alimentacion

1
0
. . . 0
1
0
1
0
1
0
1
0
1
Servomotor DC 0
1

Eje de salida
Varilla
Adaptador de carga

1
0
0
1
Carga 0
1
adicional

Figura 5.10: Pro eso servomotor D.C. on arga no lineal y odi ador
opti o in orporado.

velo idad, es ne esario usar un sistema que nos permita variar la velo idad
del servomotor (entre un m'inimo y un maximo) as omo tambien el sentido
de su rota ion. Di ho sistema omprende un generador PWM LM3524 y un
ir uito de poten ia (ver gura 5.11). Tal sistema nos permite variar la
velo idad de a uerdo al an ho de pulso de la se~nal PWM. El ir uito PWM
LM3524 genera se~nales moduladas por an ho de pulso de 15.4 KHz, las
uales son luego ampli adas por el ir uito de poten ia, generandose una
tension de alimenta ion uyos lmites son  25 volt. El ir uito de poten ia
esta onformado por un sistema de disparo y dos pares de onmutadores A
y B, tal omo se muestra en la gura 5.12.
El sistema de disparo permite la onmuta ion de ada par onmutador
(A o B), de forma tal que no se produz an orto ir uitos durante la on-
muta ion. Cuando el sistema de disparo ierra el onmutador A y abre el B,
el sentido de la orriente sigue la lnea punteada, indu iendo de esta forma
una tension +V en el servomotor. Ahora, si el sistema de disparo abre el
232 Control Adaptivo

Ca Ra Amplificador Rc
de potencia

Viene de la Salida A
PWM Al servo-
salida A0 Salida B motor DC
de la LAB-PC+
Generador
PWM

Cp Rp

Figura 5.11: Etapa de poten ia.

Vcc

A1 B1
~ SISTEMA
SENAL PWM SERVO-
DE MOTOR

DISPARO DC
B2
A2
Par conmutador A = A1 + A2
Par conmutador B = B1 + B2

Figura 5.12: Esquema general del sistema de disparo y de onmuta ion.

onmutador A y ierra el B, el sentido de la orriente sigue la lnea segmen-


tada, indu iendo as una tension -V en el servomotor. Esto signi a que el
motor re ibe en sus bornes una tension de onda uadrada, uyo valor vara
entre  V , on un onsumo de orriente que depende de los onmutadores
onformados por transistores MOSFET.
5.6 Control Adaptivo de un Servomotor No Lineal 233

El Sensor de Posi ion


El sensor de posi ion esta onformado por un odi ador opti o rotatorio (in-
terno al motor), un de odi ador de uadratura y un ontador UP/DOWN.
El odi ador opti o rotatorio onsiste en:
 Una fuente de luz que puede ser un LED infrarrojo o laser.
 Un dis o opa o ranurado a oplado al eje del motor, que se mueve entre
una fuente de luz permanente habilitada y un dete tor. A medida que
gira el rotor, el paso de luz ha ia el dete tor es habilitado o inhabilitado
por un patr'on de areas os uras y transparentes impreso en el dis o,
produ iendo una se~nal digital que puede ser fa ilmente interpretada
por el ontrolador de movimiento del sistema.
 Un sensor de luz; usualmente es un fototransistor o un fotodiodo.
 Un onformador de pulsos que onvierte la se~nal sinusoidal proveniente
de la salida del fotodete tor en se~nal de onda uadrada.
El esquema basi o del odi ador opti o se muestra en la gura 5.13. El
Canal A
Canal B
Fuente de luz
Transistor
’optico

Eje del servomotor

Disco con
mascara

Figura 5.13: Estru tura de un odi ador opti o rotatorio.

odi ador usado en esta implementa ion, omo en la mayora de los asos,
in luye dos pistas de mar as o ranuras en uadratura ( anales A y B), ada
una aso iada a una fuente de luz y un fotodede tor independientes. Los
anales A y B produ en dos ondas uadradas desfasadas 900 entre s que
se utilizan para determinar la dire ion del movimiento. Por ejemplo, si
el anal B adelanta al anal A, el eje esta girando en sentido antihorario,
234 Control Adaptivo

y vi eversa. Si no se utiliza dete ion de uadratura, la vibra ion puede


ausar el envo de pulsos errati os al ontador, in luso si la maquina esta
detenida. El odi ador usado tiene una resolu ion de 512 ppr (pulsos por
revolu ion). El de odi ador de uadratura es el CI LS7083 que a tiva
la uenta as endente o des endente del ontador UP/DOWN de 16 bits,
dependiendo del sentido de giro del motor, aptado por el desfasaje entre
los trenes de pulsos de los anales A y B. El ontador UP/DOWN esta
onformado 4 CI 74HC193; dos de ellos entregan un grupo de 8 bits de
datos (bus A) a la tarjeta LAB-PC+; de manera analoga otro grupo igual
de bits onforman el bus B (ver gura 5.14).
Clock UP
74HC Clock Down
4 bits
193
Puerto
digital 8 bits
PA Canal A
74HC
4 bits
193 LS7083
Canal B

74HC
4 bits
193
Puerto R L
digital 8 bits
PB 74HC
4 bits
193

Figura 5.14: De odi ador de uadratura y ontador UP/DOWN.

La Interfaz Lab-PC+
La interfaz entre el mi ro omputador, la planta, el a tuador y el sensor es
la tarjeta de adquisi ion de datos Lab-PC+. Los terminales usados para el
ontrol son:
1. Una salida analogi a (DAC0). La se~nal de ontrol se enva usando el
terminal DAC0 al CI LM3524 (generador PWM) on una resolu ion
de 12 bits para generar la se~nal analogi a.
5.6 Control Adaptivo de un Servomotor No Lineal 235

2. Dos puertos digitales de entrada (PA y PB) de 8 bits. Tales puertos


re iben los datos provenientes del ontador UP/DOWN.
3. El terminal OUTB0, que se utiliza omo salida de una se~nal de reloj
para el fun ionamiento del sistema de ontrol.
4. El terminal PC0 (bit 0 del puerto C), que se utiliza omo entrada de
la se~nal de reloj Fs proveniente de OUTB0.
La se~nal de reloj OUTB0 se genera a partir de una base de tiempos de 2
MHz que a tiva la salida del ontador/temporizador 8253. Los puertos de
entrada/salida provienen de la PPI (Interfaz Paralela Programable) 8255.
5.6.9 Implementa ion del Software de Control
Considera iones Generales
El software de ontrol debe implementar las e ua iones del sistema en tiem-
po real, in luyendo la solu ion de las e ua iones de Ri ati para al ular
las ganan ias del ontrolador y del observador. Ya que la simula ion del
sistema no in luye estos tipos de al ulo, es ne esario expli ar su intamente
las e ua iones involu radas en el sistema de ontrol adaptivo a ser imple-
mentado en tiempo real. El modelo lineal ontinuo del pro eso se obtiene
de la e ua ion (5.29):
nK K nK K
M  + (B + a t )_ + N = a t 
R R
 + 3:626 + _ + 17:4604 = 89:09
La e ua ion de diferen ias del pro eso es (ver e ua ion (5.31)):
k + a1 k 1 + a2 k 2 = b1 vk 1 + b2 vk 2
donde (k) = y(k) y v(k) = u(k) (v es la se~nal de ontrol que requiere
ompensa ion). La e ua ion anoni a ontrolable a emplear en el algoritmo
de ontrol se da en la e ua ion (5.32):
xk = GXk 1 + Huk 1 ; yk = CXk
on x = Xk y u(k) = uk .
La ley de ontrol es: uk = K aXka on (ver e ua ion (5.26)):
K a = (R + (H a )T P a H a ) 1 (H a )T P a Ga
236 Control Adaptivo

donde la matriz P a (k) = Pka se obtiene de (ver e ua ion (5.27)):


Pka+1 = Q + (Ga )T Pka Ga + (Ga )T Pka H a (R + (H a )T Pka H a ) 1 (H a )T Pka G
Para un perodo de muestreo, empezando on Pka igual a la matriz nula,
iteramos 20 ve es la e ua ion anterior, lo que da omo resultado una nueva
matriz Pka. En el siguiente perodo de muestreo, la matvariz resultante Pka
se usa omo matriz ini ial para resolver nuevamente la e ua ion de Ri ati,
resultando luego de 20 itera iones en una matriz Pka+1. Se ha observado que
P a al anza un valor esta ionario luego de 4 o 5 perodos de muestreo (lo
ual es equivalente a 80 o 100 itera iones). Esta forma de al ulo ahorra
tiempo de omputa ion. Los parametros de optimiza ion empleados para
el ontrolador optimo son R = 0.05 y Qa = 0:1 I3 , donde I3 es la matriz
identidad de orden 3.
La matriz de ganan ia Ko del ltro de Kalman se puede obtener apli-
ando dualidad al problema de ontrol. Es de ir, ha iendo los reemplazos
siguientes:
Ga ! GT ; H a ! C T ; Qa ! Qo ; R ! Ro ; P a ! Po
en las formulas de K a y Pka+1 del ontrolador optimo. De esta forma re-
solvemos la e ua ion de Ri ati para Po ( omo en el aso del ontrolador)
para luego poder al ular Ko . Los parametros de optimiza ion usados para
el observador optimo ( ltro de Kalman) son: Qo =0.01 y Ro=0.04, mientras
que para el algoritmo de estima ion son: P = 1000I5 (matriz de ovarianza
ini ial, e ua ion (5.33)), Cmin = 15, y Cmax = 100.
Computa ionalmente, el software de ontrol requiere de mu hos al ulos.
Por ejemplo, para el pro eso de estima ion de parametros se deben realizar
dos des omposi iones de Cholesky para matri es de orden 5 empleando el
metodo de Ja obi (ver referen ia [16℄, pagina 365), se deben al ular todos
los valores propios y ordenarlos en una matriz simetri a. Felizmente no
es ne esario efe tuar inversion de matri es porque el pro eso ontrolado es
univariable y la opera iones on matri es generalmente fueron entre matri es
simetri as.
Ademas de la ompensa ion de la no linealidad produ ida por la fri ion
de Coulomb (a~nadiendo  0.2 voltios a la se~nal de ontrol, dependiendo si
la velo idad angular es positiva o negativa), se onsidera tambien el efe to
de satura ion del servomotor uando la se~nal de ontrol sobrepasa los 2.3 
1.4 voltios, donde los 2.3 voltios orresponden al valor que hay que agregar
(valor \o set") para que la velo idad ini ial sea ero. Este valor o set es
propio del servomotor empleado.
5.6 Control Adaptivo de un Servomotor No Lineal 237

Los Programas Fuente


Los programas ne esarios para la implementa ion en tiempo real del sistema
de ontrol adaptivo dise~nado se estru turan en tres ar hivos de odigo fuente,
los uales son:
1. Ar hivo R1LLIB.H, que es un ar hivo de de lara iones de fun iones
de nidas en el ar hivo R1LLIB.CPP. Estas fun iones permiten fa ilitar
el manejo de la tarjeta de adquisi ion de datos Lab-PC+.
2. Ar hivo R1LLIB.CPP, que tambien es un ar hivo de de ni iones de
fun iones de laradas en R1LLIB.H para fa ilitar el manejo de la tarjeta
de adquisi ion de datos Lab-PC+. Este ar hivo emplea la librera de
fun iones NI-DAQ [25℄ y llama a la fun ion Con gurarHardware para,
pre isamente, on gurar el hardware empleado.
3. Ar hivo CON122.CPP: Constituye el software de ontrol.
Ensamblaje del Software de Control
El software de ontrol emplea en su eje u ion la siguiente se uen ia:
1. Ini ializa_Sistema();
2. Mide_Variables(&y,&r,&vel,t);
3. Estima_Parametros(Th,y,u);
4. En uentra_Control(r,&u);
5. u=Apli a_Control(u,vel);
La ompila ion de ar hivos para ha erlos eje utables se realiza en Bor-
land C/CPP mediante un proye to que involu re todos los ar hivos, en nues-
tro aso, los ar hivos R1LLIB.H, R1LLIB.CPP y CON122.CPP.
Una pre au ion a onsiderar es la de espe i ar que la ompila ion se
eje ute on el modelo de memoria \Large". Otra pre au ion es asegurarse
que al ini io y al nal de la eje u ion de los programas, el servomotor debe
estar parado, lo que se logra enviando la se~nal o set de 2.3 voltios.
Los Programas Fuente Comentados
/*R1LLIB.H
*Ar hivo de de lara ion de fun iones definidas en R1LLIB.CPP
*Estas fun iones permiten fa ilitar el manejo de la tarjeta
*de adquisi ion de datos Lab-PC+: Digital Input (16 bits),
238 Control Adaptivo

*Analog Output, Timer Generator, Polling. Usa fun iones de


*le to/es ritura de registros (inportb, outport).
*/
#if !defined (__R1LLIB_H_PRY)
#define __R1LLIB_H_PRY
//Configurando la tarjeta Lab-PC+ (Digital Input, Polling,
//Analog Output, Timer)
void ConfigurarHardware(unsigned,unsigned,unsigned,unsigned,int);
//Salida de Voltage por R1LAOPort
void EnviarVoltage(float);
//Leer Posi ion (16 bits leidos por R1LLSBPort y R1LMSBPort)
unsigned int LeerPosi ion();
//Leer Nivel del lo k (polling). Devuelve 0 o 1
int NivelClo k ();

/*R1LLIB.CPP
*Ar hivo de de lara ion de fun iones definidas en R1LLIB.H
*Estas fun iones permiten fa ilitar el manejo de la tarjeta
*de adquisi ion de datos Lab-PC+: Digital Input (16 bits),
*Analog Output, Timer Generator, Polling. Usa fun iones de
*le to/es ritura de registros (inportb, outport).
*/
#in lude "r1llib.h"
#in lude "nidaq.h"
#in lude <dos.h>
stati unsigned R1LLSBPort; // dire ion del LSB (bit menos
//signifi ativo) del puerto digital de entrada PA0-7
stati unsigned R1LMSBPort; // dire ion del MSB (bit mas
//signifi ativo del puerto digital de entrada PB0-7
stati unsigned R1LPollPort; // dire ion del puerto digital
//de polling PC0-7. Esto es, la entrada al timer de la se~nal
//de muestreo en forma de una su esion de pulsos en el bit
//indi ado en la des rip ion del bus (PC0)
stati unsigned R1LAOPort; // dire ion de la salida
//anal'ogi a (DAC0)
stati int R1LFS ; // fre uen ia de muestreo (Hertz)
/* Ini ializando la tarjeta de adquisi ion de datos */
void ConfigurarHardware (unsigned pollPort, unsigned lPort,
unsigned hPort, unsigned salPort, int fre )
{
int uentaTimer, devi eCode;
uentaTimer = (int)(2000000/fre );
R1LPollPort = pollPort;
5.6 Control Adaptivo de un Servomotor No Lineal 239

R1LLSBPort = lPort;
R1LMSBPort = hPort;
R1LAOPort = salPort;
R1LFS = fre ;
USE_LAB();
Init_DA_Brds(1,&devi eCode);
ICTR_Setup(1,0,3, uentaTimer,1); // lo k de muestreo = timer0
DIG_Prt_Config(1,(int)(pollPort - 0x270),0,0);
DIG_Prt_Config(1,(int)(lPort-0x270),0,0);
DIG_Prt_Config(1,(int)(hPort-0x270),0,0);
}
/*Enviando al puerto de salida el voltaje espe ifi ado */
void EnviarVoltage (float u)
{
unsigned salidaDigital;
salidaDigital = (unsigned) (409.5*u-0.5);
outport(R1LAOPort,salidaDigital);
}
/*Dete tando el numero de posi iones registrados en los
ontadores */
unsigned int LeerPosi ion()
{
unsigned har o t1,o t2;
o t1 = inportb(R1LLSBPort);
o t2 = inportb(R1LMSBPort);
return (255*o t2+o t1);
}
/*Dete tando verdadero o falso en forma alternativa, de
a uerdo a la fre uen ia indi ada en ConfigurarHardware */
int NivelClo k ()
{
unsigned har bytePoll;
bytePoll = inportb (R1LPollPort);
return (bytePoll&1);
}

/*************** CON122.CPP Software de Control **************/


#in lude "r1llib.h"
#in lude <stdio.h>
#in lude <math.h>
#in lude <assert.h>
#in lude <allo .h>
#in lude < onio.h>
240 Control Adaptivo

onst float ESCALA= 2.*M_PI/(512.*19.7);


/*ESCALA ontiene la es ala rad/pulsos */
onst float LOW_r = 1.*M_PI/2.; /* valor LOW de la referen ia */
onst float HIGH_r= 1.*M_PI/3.; /* valor HIGH de la referen ia */
/*De lara ion de las fun iones GORDAS */
void Ini ializa_Sistema();
void Mide_Variables(float *yk, float *r, float *vel, float t);
void Estima_Parametros(float *Theta, float Yk, float Uk);
void En uentra_Control(float r, float *u);
float Apli a_Control(float u, float ykp);
/*De lara ion de las miles de variables globales existentes */
float a1, a2, b1, b2, U0, C ;
/* oefi ientes de la e ua ion de diferen ias; valor medio del
ontrol y valor medio de la salida */
float Td; /* per'iodo de muestreo */
float t, tsimul; /* tiempo de simula ion a tual y total */
float Fs; /* fre uen ia de muestreo */
int p0, pk; /* posi ion en pulsos, anterior y a tual */
/*IDENTIFICACI'ON */
float Thk[5℄, Th[5℄;
/*ve tores de estima ion de parametros, auxiliar y definitivo */
float ym1, ym2, um1, um2, ek, div, rt; /* 'ultimos dos valores
de la posi ion y del ontrol, el error a tual, el valor
auxiliar div y el par'ametro r(k) */
float Pk[5℄[5℄,Nk[5℄[5℄,Sk[5℄,Psk[5℄[5℄,Psn[5℄[5℄,Psaux[5℄[5℄;
/*matriz P, su des omposi ion usando Cholesky, N y matri es
S(k), Ps(k), Psn(k) y una matriz auxiliar */
float Phi[5℄, Phin[5℄, Phins[5℄, Ro;
/*ve tores Psi(k), Psin(k), PsinS(k) y parametro rho */
float Cmax, Cmin, Co, LF;
/*valores Cmax, Cmin, P, lambda(k) y numero ondi ion de C */
float al ulaC(); /* max(eig(Psk))/min(eig(Psk)) */
/*Control Optimo y Observador Optimo */
float y, x[2℄, z, TOL, rr, u;
/*valores de la salida, del estado, del integrador; toleran ia
*para Ri ati; a tualiza i\'on de los estados y de la se~nal de
* ontrol; todos los valores son relativos */
float Q[3℄[3℄, R, Ge[3℄[3℄, He[3℄, Ce[3℄, K[3℄;
*/matri es Q, R, G^a, H^a, C^a y K del ontrolador 'optimo */
float Qb[2℄[2℄, Rb, G[2℄[2℄, H[2℄, C[2℄, Kb[2℄;
/*matri es Qb, Rb, G, H, C y Kb del algoritmo del observador
optimo */
float P[3℄[3℄, Pb[2℄[2℄, Maux1[3℄[3℄, Maux2[3℄[3℄, Maux3[3℄[3℄;
5.6 Control Adaptivo de un Servomotor No Lineal 241

/*Matri es de Ri ati del ontrolador y del observador, y


auxiliares de al ulo */
float Vaux1[3℄, Vaux2[3℄, Vaux3[3℄, Vaux4[3℄, Raux1;
/*ve tores auxil. para al ular matriz solu i\'on de Ri ati */
/*Apli a ion del Control */
float V FC, V FE, Wth, Ofst;
/*valores de tension equivalente a la fri ion de Coulomb y a
la fri ion est\'ati a; valor del umbral de velo idad angular y
valor del offset, en la apli a ion de la se~nal de ontrol */
***** FUNCIONES ****
********************************************************/
float Apli a_Control(float u, float ykp)
{
float v;
if(fabs(ykp)<=Wth)
{
if(u<0.) v = -V FE;
if(u>0.) v = V FE;
}
else
{
if(u<0.) v = -V FC;
if(u>0.) v = V FC;
}
if(u+v<-1.5) u= -1.5;
else if(u+v>1.4) u= 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}
/*Ini ializando parametros y variables globales (P, Pb, G,
Gb, H, Hb, a1, a2, b1, b2, ...). Usa Ini ializaHardware */
void Ini ializa_Sistema()
{
/*Con Varilla
a1=-1.9614; a2= .9631;
b1= .0044; b2= .0043;
Sin Varilla */
a1=-1.6246; a2= .6246;
b1= .0479; b2= .0410;
/*ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V FE= .2; V FC= .15;
Wth = .1; Ofst= 2.3;
Fs= 100.0; U0 = 0.;
242 Control Adaptivo

Td= 1./Fs; C = 0.;


t = 0.; tsimul= 100.;
G[0℄[0℄ = 0.; G[0℄[1℄= 1.; H[0℄ = 0.; C[0℄ = b2;
G[1℄[0℄ =-a2; G[1℄[1℄=-a1; H[1℄ = 1.; C[1℄ = b1;
Ge[0℄[0℄= 0.;Ge[0℄[1℄= 1.; Ge[0℄[2℄=0.; He[0℄= 0.; Ce[0℄= b2;
Ge[1℄[0℄=-a2;Ge[1℄[1℄=-a1; Ge[1℄[2℄=0.; He[1℄= 1.; Ce[1℄= b1;
Ge[2℄[0℄=-b2;Ge[2℄[1℄=-b1; Ge[2℄[2℄=1.; He[2℄= 0.; Ce[2℄= 0.;
P[0℄[0℄= 0.;P[0℄[1℄= 0.;P[0℄[2℄= 0.;
P[1℄[0℄= 0.;P[1℄[1℄= 0.;P[1℄[2℄= 0.;
P[2℄[0℄= 0.;P[2℄[1℄= 0.;P[2℄[2℄= 0.;
Q[0℄[0℄= .1;Q[0℄[1℄= 0.;Q[0℄[2℄= 0.;
Q[1℄[0℄= 0.;Q[1℄[1℄= .1;Q[1℄[2℄= 0.;
Q[2℄[0℄= 0.;Q[2℄[1℄= 0.;Q[2℄[2℄= .1;
R =.05;
Pb[0℄[0℄=0.;Pb[0℄[1℄=0.;Qb[0℄[0℄=.01;Qb[0℄[1℄=0.;
Pb[1℄[0℄=0.;Pb[1℄[1℄=0.;Qb[1℄[0℄=0.;Qb[1℄[1℄=.01;
Rb =.04;
y=0.; x[0℄=0.; x[1℄= 0.; z=0.; y=0.; u=0.; TOL= 1.e-3;
Cmax= 100.;
Cmin= 15.;
ym1 = ym2 = um1 = um2 = 0.;
Thk[0℄ = Th[0℄ = -a1; Pk[0℄[0℄ = 1000.;
Thk[1℄ = Th[1℄ = -a2; Pk[1℄[1℄ = 1000.;
Thk[2℄ = Th[2℄ = b1; Pk[2℄[2℄ = 1000.;
Thk[3℄ = Th[3℄ = b2; Pk[3℄[3℄ = 1000.;
Thk[4℄ = Th[4℄ = C ; Pk[4℄[4℄ = 1000.;
Pk[0℄[1℄ = Pk[0℄[2℄ = Pk[0℄[3℄ = Pk[0℄[4℄ = 0.;
Pk[1℄[0℄ = Pk[1℄[2℄ = Pk[1℄[3℄ = Pk[1℄[4℄ = 0.;
Pk[2℄[0℄ = Pk[2℄[1℄ = Pk[2℄[3℄ = Pk[2℄[4℄ = 0.;
Pk[3℄[0℄ = Pk[3℄[1℄ = Pk[3℄[2℄ = Pk[3℄[4℄ = 0.;
Pk[4℄[0℄ = Pk[4℄[1℄ = Pk[4℄[2℄ = Pk[4℄[3℄ = 0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi ion();
}
/*Midiendo posi ion, velo idad y referen ia. Estimando
estado a tual empleando observador optimo uadrati o */
void Mide_Variables(float *yk, float *r, float *vel, float t)
{
int i, j, k, n=2, niter;
double delta;
/*En primer lugar, la onsigna: r= r(t)*/
if(t<20. || (40.<=t && t<60.) || (80.<=t && t<100.)) *r= LOW_r;
5.6 Control Adaptivo de un Servomotor No Lineal 243

else *r= HIGH_r;


/*Ahora leo la posi i\'on */
pk= LeerPosi ion();
*yk = ym1 + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0= pk;
/*Y la salida */
y= *yk - *r;
/*Y la velo idad angular */
*vel= (5.*(*yk-ym1)+ *vel)/(1.+5.*Td);
/*Y vamos on el Observador: Primero, Ri ati */
delta= TOL+1.;
niter= 0;
while(delta>TOL && 20>niter++)
{
/*P(k).Ct y C.P(k) */
for(i=0; i<n; i++)
for(Vaux1[i℄=Vaux2[i℄=0.,j=0; j<n; j++){
Vaux1[i℄ += Pb[i℄[j℄*C[j℄;
Vaux2[i℄ += C[j℄*Pb[j℄[i℄;
}
/*Raux1= Rb + C.P(k).Ct */
for(Raux1= Rb, i=0; i<n; i++)
Raux1 += C[i℄*Vaux1[i℄;
/*G.P(k).Ct y C.P(k).Gt */
for(i=0; i<n; i++){
Vaux3[i℄= Vaux4[i℄= 0.;
for(j=0; j<n; j++){
Vaux3[i℄ += G[i℄[j℄*Vaux1[j℄;
Vaux4[i℄ += Vaux2[j℄*G[i℄[j℄;
}
}
/*3er. Termino */
for(i=0; i<n; i++)
for(j=0; j<n; j++)
Maux1[i℄[j℄= Vaux3[i℄*Vaux4[j℄/Raux1;
/*G.P(k) */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux2[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux2[i℄[j℄ += G[i℄[k℄*Pb[k℄[j℄;
}
/*2o. Termino> G.P(k).Gt */
244 Control Adaptivo

for(i=0; i<n; i++)


for(j=0; j<n; j++){
Maux3[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux3[i℄[j℄ += Maux2[i℄[k℄*G[j℄[k℄;
}
/*Y Total */
delta= 0.;
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Raux1= Qb[i℄[j℄+Maux3[i℄[j℄-Maux1[i℄[j℄;
if(fabs(Pb[i℄[j℄-Raux1)>delta) delta= fabs(Pb[i℄[j℄-Raux1);
Pb[i℄[j℄= Raux1;
}
}/* Fin de en ontrar la de Ri ati */
/*En ontramos ahora la de Observa ion */
/*C.P */
for(Vaux1[i=0℄=0.; i<n; Vaux1[++i℄= 0.)
for(j=0; j<n; j++)
Vaux1[i℄ += C[j℄*Pb[j℄[i℄;
/*R+C.P.Ct */
for(Raux1= Rb, i=0; i<n; i++)
Raux1 += Vaux1[i℄*C[i℄;
/*Y Final, en ontramos K= C.P.Gt/(Rb+C.P.Ct) */
for(Kb[i=0℄=0.; i<n; Kb[++i℄=0.){
for(j=0; j<n; j++)
Kb[i℄ += Vaux1[j℄*G[i℄[j℄;
Kb[i℄ /= Raux1;
}
/*Y ahora a tualizamos los estados */
rr= y - C[0℄*x[0℄ - C[1℄*x[1℄;
x[0℄= x[0℄ + Kb[0℄*rr;
x[1℄= x[1℄ + Kb[1℄*rr;
z = z - y /*C[0℄*x[0℄ - C[1℄*x[1℄*/;
}
/*Dado el estimado de la salida, la salida y la referen ia
*a tuales, y partiendo de los parametros estimados hasta
*enton es, la siguiente fun ion estima uales son los
*parametros a tuales del sistema. Utiliza al ulaC */
void Estima_Parametros(float *Theta, float Yk, float Uk)
{
int i, j, k;
float val, val1;
5.6 Control Adaptivo de un Servomotor No Lineal 245

Phi[0℄= ym1; Phi[1℄= ym2; Phi[2℄= um1; Phi[3℄= um2; Phi[4℄= 1.;
for(Ro=i=0; i<5; i++) Ro += Phi[i℄*Phi[i℄;
if(Ro>1.) Ro= sqrt(Ro);
else Ro= 1.;
for(i=0; i<5; i++)
{
Phin[i℄= Phi[i℄/Ro;
for(j=0; j<5; j++)
Nk[i℄[j℄= Pk[i℄[j℄;
}
/*Ahora ha emos Cholesky */
for(j=0; j<5; j++)
{
for(i=0, val=0.; i<j; i++) val += Nk[j℄[i℄*Nk[j℄[i℄;
Nk[j℄[j℄= sqrt(Nk[j℄[j℄-val);
for(i=j+1; i<5; i++)
{
for(k=0, val=0.; k<j; k++) val += Nk[i℄[k℄*Nk[j℄[k℄;
Nk[i℄[j℄= (Nk[i℄[j℄-val)/Nk[j℄[j℄;
} }
/*Y ahora en ontramos la Sk*/
Sk[0℄= 1./ Nk[0℄[0℄;
Sk[1℄= 1./(Nk[1℄[0℄+Nk[1℄[1℄);
Sk[2℄= 1./(Nk[2℄[0℄+Nk[2℄[1℄+Nk[2℄[2℄);
Sk[3℄= 1./(Nk[3℄[0℄+Nk[3℄[1℄+Nk[3℄[2℄+Nk[3℄[3℄);
Sk[4℄= 1./(Nk[4℄[0℄+Nk[4℄[1℄+Nk[4℄[2℄+Nk[4℄[3℄+Nk[4℄[4℄);
/*Y ahora la Psk y la Phins*/
for(i=0; i<5; i++)
{
Phins[i℄= Phin[i℄/Sk[i℄;
for(j=0; j<5; j++)
Psk[i℄[j℄= Sk[i℄*Pk[i℄[j℄*Sk[j℄;
}
/*Y ahora la 'Rt' y la 'LF' y el 'ek' y el 'div'*/
for(i=0, rt= 1., val1= LF= ek= 0.; i<5; i++)
{
for(j=0, val=0.; j<5; j++)
val += Psk[i℄[j℄*Phins[j℄;
rt += val*Phins[i℄; /* OJO QUE EN LA SIMULACION PONE "+=" */
val1+= Psk[i℄[i℄;
LF += val*val;
ek += Thk[i℄*Phin[i℄;
}
246 Control Adaptivo

LF = 1-.5*(rt-sqrt(rt*rt-4.*LF/val1));
ek = Yk/Ro - ek;
div= LF + rt - 1.;
/*Ahora Th y Theta y algo de Psk */
for(i=0; i<5; i++)
{
for(j=0, val= 0.; j<5; j++)
{
val += Psk[i℄[j℄*Phins[j℄;
Psn[i℄[j℄= Psk[i℄[j℄; /* Esto es de Psk */
}
Theta[i℄ = Th[i℄ = Thk[i℄ + val*ek/Sk[i℄/div/* en la simul*/;
}
/*Y la 'Psk' (tambi'en se puede ha er O(n2) en vez de O(n3)) */
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
for(k=0, val= val1= 0.; k<5; k++)
{
val += Psn[i℄[k℄*Phins[k℄;
val1+= Phins[k℄*Psn[k℄[j℄;
}
Psaux[i℄[j℄= Psk[i℄[j℄= Psk[i℄[j℄/LF - val*val1/div/LF;
} }
/*Ahora al ulamos la C */
Co= al ulaC();
/*Y renovamos las variables */
if( Co<= Cmin )
for(i=0; i<5; i++)
{
Thk[i℄= Th[i℄;
for(j=0; j<5; j++)
Pk[i℄[j℄= Psk[i℄[j℄;
}
else if(Co>= Cmax)
{
for(i=0; i<5; i++)
for(j=0; j<5; j++)
Nk[i℄[j℄= Psk[i℄[j℄;
/*Ahora ha emos el Cholesky */
for(j=0; j<5; j++)
{
5.6 Control Adaptivo de un Servomotor No Lineal 247

for(i=0, val=0.; i<j; i++) val += Nk[j℄[i℄*Nk[j℄[i℄;


Nk[j℄[j℄= sqrt(Nk[j℄[j℄-val);
for(i=j+1; i<5; i++)
{
for(k=0, val=0.; k<j; k++) val += Nk[i℄[k℄*Nk[j℄[k℄;
Nk[i℄[j℄= (Nk[i℄[j℄-val)/Nk[j℄[j℄;
}
}
/*Y ahora en ontramos la Sk*/
Sk[0℄= 1./ Nk[0℄[0℄;
Sk[1℄= 1./(Nk[1℄[0℄+Nk[1℄[1℄);
Sk[2℄= 1./(Nk[2℄[0℄+Nk[2℄[1℄+Nk[2℄[2℄);
Sk[3℄= 1./(Nk[3℄[0℄+Nk[3℄[1℄+Nk[3℄[2℄+Nk[3℄[3℄);
Sk[4℄= 1./(Nk[4℄[0℄+Nk[4℄[1℄+Nk[4℄[2℄+Nk[4℄[3℄+Nk[4℄[4℄);
/*Y ahora la Psn y la Pk y la Thk*/
for(i=0; i<5; i++)
{
Thk[i℄= Th[i℄;
for(j=0; j<5; j++)
Pk[i℄[j℄= Psn[i℄[j℄= Sk[i℄*Psk[i℄[j℄*Sk[j℄;
}
}
/* */
ym2= ym1; ym1= Yk; um2= um1; um1= Uk;
a1= -Theta[0℄; a2= -Theta[1℄; b1= Theta[2℄; b2= Theta[3℄;
C = Theta[4℄;

G[0℄[0℄ = 0.; G[0℄[1℄= 1.; H[0℄ = 0.; C[0℄ = b2;


G[1℄[0℄ =-a2; G[1℄[1℄=-a1; H[1℄ = 1.; C[1℄ = b1;
Ge[0℄[0℄= 0.;Ge[0℄[1℄= 1.; Ge[0℄[2℄=0.; He[0℄= 0.; Ce[0℄= b2;
Ge[1℄[0℄=-a2;Ge[1℄[1℄=-a1; Ge[1℄[2℄=0.; He[1℄= 1.; Ce[1℄= b1;
Ge[2℄[0℄=-b2;Ge[2℄[1℄=-b1; Ge[2℄[2℄=1.; He[2℄= 0.; Ce[2℄= 0.;
}
/*Cal ulando el numero ondi ion de la matriz de ovarianza
de la estima ion. Esto es: abs(max(eig(Psk))/min(eig(Psk))) */
float al ulaC()
{
#define ROTATE(A, i, j, k, l)
{g=A[i℄[j℄;h=A[k℄[l℄;A[i℄[j℄=g-s*(h+g*tau); A[k℄[l℄= h+s*(g-h*tau);}
double D[5℄;
int n=5, nrot, j, iq, ip, i, k;
double tresh, theta, tau, t, sm, s, h, g, , b[5℄, z[5℄, val;
int end=0;
248 Control Adaptivo

/*Este es el Algoritmo de Ja obi


Ini ializamos V a la Identidad, y b y D a la diagonal de A */
for(i=0; i<n; i++)
{
b[i℄= D[i℄= Psaux[i℄[i℄;
z[i℄= 0.;
}
nrot= 0;
for(i=0; i<50 && !end; i++)
{
/*para ver si ya hemos a abado */
sm= 0.;
for(ip=0; ip<n-1; ip++)
for(iq= ip+1; iq<n; iq++)
sm += fabs(Psaux[ip℄[iq℄);
if(sm== 0.)
{
end= 1;
ontinue;
}
/*en los primeros tres pasos*/
if(i<4) tresh= .2*sm/(n*n);
else tresh= 0.;
/*e itera iones duras, ahora */
for(ip=0; ip<n-1; ip++)
{
for(iq= ip+1; iq<n; iq++)
{
g= 100.*fabs(Psaux[ip℄[iq℄);
/*Pasados uatro items, saltar la rota ion si es peque~na */
if(i>4 && (fabs(D[ip℄) +g == fabs(D[ip℄))
&& (fabs(D[iq℄) +g == fabs(D[iq℄)))
Psaux[ip℄[iq℄= 0.;
else if(fabs(Psaux[ip℄[iq℄)>tresh)
{
h= D[iq℄-D[ip℄;
if(fabs(h)+g==fabs(h))
t= Psaux[ip℄[iq℄/h;
else
{
theta= .5*h/Psaux[ip℄[iq℄;
t= 1./(fabs(theta)+sqrt(1.+theta*theta));
5.6 Control Adaptivo de un Servomotor No Lineal 249

if(theta<0.) t= -t;
}
= 1./sqrt(1+t*t); s= t* ;
tau= s/(1.+ ); h= t*Psaux[ip℄[iq℄;
z[ip℄ -= h; z[iq℄ += h;
D[ip℄ -= h; D[iq℄ += h;
Psaux[ip℄[iq℄ = 0.;

for(j= 0 ; j<ip; j++)


ROTATE(Psaux, j, ip, j, iq);
for(j= ip+1; j<iq; j++)
ROTATE(Psaux, ip, j, j, iq);
for(j= iq+1; j<n ; j++)
ROTATE(Psaux, ip, j, iq, j);
nrot++;
} } }
for(ip=0; ip<n; ip++)
{
b[ip℄ += z[ip℄;
D[ip℄ = b[ip℄;
z[ip℄ = 0.;
} }
if(!end)
{
puts("Demasiadas itera iones en Ja obi\n");
return 1.;
}
/*Vamos a ordenar los VEPS y los VAPS */
for(i= 0; i<n; i++)
{
val= D[k=i℄;
for(j=i+1; j<n; j++)
if(D[j℄>= val) val= D[k=j℄;
if( k!=i )
{
D[k℄= D[i℄;
D[i℄= val;
} }
return fabs(D[0℄/D[4℄);
}
/*La siguiente fun i\'on emplea el error del sistema y la nueva
estima ion de los parametros */
void En uentra_Control(float r, float *U)
250 Control Adaptivo

{
int i, j, k, n=3, niter;
double delta;

delta= TOL+1.;
niter= 0;
while(delta>TOL && 20>niter++)
{
/*P(k).H y H'P(k) */
for(i=0; i<n; i++)
for(Vaux1[i℄=Vaux2[i℄=0.,j=0; j<n; j++){
Vaux1[i℄ += P[i℄[j℄*He[j℄;
Vaux2[i℄ += He[j℄*P[j℄[i℄;
}
/*Raux1= R + H'P(k).H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += He[i℄*Vaux1[i℄;
/*G'P(k).H y H'P(k).G */
for(i=0; i<n; i++){
Vaux3[i℄= Vaux4[i℄= 0.;
for(j=0; j<n; j++){
Vaux3[i℄ += Ge[j℄[i℄*Vaux1[j℄;
Vaux4[i℄ += Vaux2[j℄*Ge[j℄[i℄;
}
/*3er. Termino */
for(i=0; i<n; i++)
for(j=0; j<n; j++)
Maux1[i℄[j℄= Vaux3[i℄*Vaux4[j℄/Raux1;
/*G'P(k) */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux2[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux2[i℄[j℄ += Ge[k℄[i℄*P[k℄[j℄;
}
/*2o. Termino> G'P(k).G */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux3[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux3[i℄[j℄ += Maux2[i℄[k℄*Ge[k℄[j℄;
}
/*Y Total */
5.6 Control Adaptivo de un Servomotor No Lineal 251

delta= 0.;
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Raux1= Q[i℄[j℄+Maux3[i℄[j℄-Maux1[i℄[j℄;
if(fabs(P[i℄[j℄-Raux1)>delta) delta= fabs(P[i℄[j℄-Raux1);
P[i℄[j℄= Raux1; }
}/* Fin de en ontrar la de Ri ati */
/*En ontramos ahora la de ontrol */
/*H'P */
for(Vaux1[i=0℄=0.; i<n; Vaux1[++i℄= 0.)
for(j=0; j<n; j++)
Vaux1[i℄ += He[j℄*P[j℄[i℄;
/*R+H'P.H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += Vaux1[i℄*He[i℄;
/*Y Final, en ontramos K= H'P.G/(R+H'P.H) */
for(K[i=0℄=0.; i<n; K[++i℄=0.){
for(j=0; j<n; j++)
K[i℄ += Vaux1[j℄*Ge[j℄[i℄;
K[i℄ /= Raux1;
}
/*en ontrando el ontrol y el nuevo estado del Observador*/
u= -(K[0℄*x[0℄ + K[1℄*x[1℄ + K[2℄*z);
Raux1= G[0℄[0℄*x[0℄ + G[0℄[1℄*x[1℄ + H[0℄*u;
x[1℄ = G[1℄[0℄*x[0℄ + G[1℄[1℄*x[1℄ + H[1℄*u;
x[0℄ = Raux1;
/*ahora en ontramos el valor ABSOLUTO */
*U = u + ((1.+a1+a2)*r-C )/(b1+b2);
}
/*Fun i\'on prin ipal del programa */
void main()
{
int ant=0, a t=0, k, n;
FILE *out;
float *yv, *uv, *rv, vel, y, u, r;
Ini ializa_Sistema();
lrs r();
assert(tsimul<120);
t= tsimul/Td;
n= (int)t;
assert(NULL!=(uv= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(yv= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(rv= (float *) allo (n/5,sizeof(float))));
252 Control Adaptivo

t= u= vel= y= 0.;
for(k=0; k<n;)
{
a t=NivelClo k();
if ((ant==0)&&(a t==1))
{
Mide_Variables(&y, &r, &vel, t);
Estima_Parametros(Th, y, u);
En uentra_Control(r, &u);
u= Apli a_Control(u, vel);
if(!(k%5))
{
yv[k/5℄= y; rv[k/5℄= r; uv[k/5℄= u;
}
k++;
t += Td; gotoxy(5,5); printf("%f",t);
if(kbhit()) if(get h()==27) break;
}
ant=a t;
}
EnviarVoltage(Ofst);
out=fopen(" 2.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f\n",
i*5*Td, rv[i℄, yv[i℄, uv[i℄, rv[i℄-yv[i℄);
f lose(out);
}

5.6.10 Resultados Experimentales


Los resultados experimentales mostrados en las guras 5.15 y 5.16 demues-
tran la validez del pro edimiento de dise~no sugerido. Di hos resultados se
obtuvieron para una se~nal de referen ia es alon ambiante de =3 a =2.
Dos asos extremos fueron tomados en onsidera ion: el ontrol on ausen-
ia de arga ( gura 5.15) y el ontrol on arga no lineal ( gura 5.16). En
ambos asos, el ontrolador adaptivo es apaz de ontrolar la posi ion del
eje del servomotor a pesar de la presen ia simultanea de la arga no lineal
y de las no linealidades inherentes (las fri iones estati a y de Coulomb, y
la satura ion del servomotor).
Los experimentos se realizaron on los siguientes parametros de opti-
miza ion. Para el estimador de estado se sele iono Qo = 0:01 y Ro = 0:04
(e ua iones (5.16) y (5.17)) y para la ley de ontrol optima se eligio R = 0:05
5.7 Problemas Resueltos 253

y Qa = 0:1I3 (e ua ion (5.27)), donde I3 es la matriz identidad de dimen-


sion tres. El tiempo de muestreo, su ientemente grande omo para poder
efe tuar todo el omputo requerido por muestra, fue de Ts=0.01 s.
2
Posición (radianes)

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

1.5
Señal de control (voltios)

0.5

−0.5

−1
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 5.15: Control adaptivo de la posi ion del servomotor. Primer aso:
servomotor no a iona arga alguna.

5.7 Problemas Resueltos


En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los
problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB. En ada problema, la sele ion del tiempo
de muestreo es a onvenien ia del dise~no.
Problema 5.1
El problema 3.1 presenta las e ua iones que gobiernan la dinami a del sis-
tema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol adaptivo on autosintoniza ion para lograr el objetivo de ontrol si-
guiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de 20 segundos, las os ila iones
254 Control Adaptivo

2.5

Posición (radianes)
2

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

1.5
Señal de control (voltios)

0.5

−0.5

−1
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 5.16: Control adaptivo de la posi ion del servomotor. Segundo aso:
servomotor a iona la arga no lineal.

originadas por un disturbio es alon de 10 m (provo adas por imperfe iones


en la pista), pra ti amente deben desapare er.
Solu ion: Ver programa p3adap1.m. Este es un problema de re hazo a
los disturbios. Es interesante anotar que el ara ter adaptivo del sistema de
ontrol dise~nado, permite que las espe i a iones de re hazo del disturbio se
mantengan a pesar de que vare la masa del bus. Supongamos que la masa
del bus sin pasajeros es m1 = 2500 kg y lleno ambia a 3500 kg. Eje ute el
programa p3adap1.m on este nuevo dato y vera que el objetivo de ontrol
pra ti amente se sigue umpliendo.
% p3adap1.m SOLUCION DEL PROBLEMA 5.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
% MODELO LINEAL
A = [0 1 0 0
-b1*b2/(m1*m2) 0 a23 -b1/m1
5.7 Problemas Resueltos 255

b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2℄;
C = [0 0 1 0℄; D = [0 0℄;
% CONVERSION AL ESPACIO DISCRETO
T=0.5; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh'); % ESPACIO DE ESTADO
% FT CUANDO ACTUA LA SE~NAL CONTROL u Y EL DISTURBIO w ES NULO
[num,den℄=ss2tf(G,H,C,D,1);
a1 = den(2); a2 = den(3); a3 = den(4); a4 = den(5);
b1 = num(2); b2 = num(3); b3 = num(4); b4 = num(5);
% F.T. uando a t'ua disturbio w y ontrol u es nulo
[numd,dend℄=ss2tf(G,H,C,D,2); % dend = den
j1=numd(2); j2=numd(3); j3=numd(4); j4=numd(5);
% F.T. del pro eso: y = (num/den)*u + (numd/den)*w
% PARAMETROS PARA OPTIMIZAR LA GANANCIA F DEL FILTRO DE KALMAN
Xi = 1; Sigma = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1;
Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA
nn = 4; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN=13; % NUMERO DE PARAMETROS A ESTIMAR
Ce = (1 + a1 + a2+ a3+a4)*Ref;
thi =[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; Y(3) = 0; Y(4)=0; Y(5) =0; % SALIDA
U(1)= 0; U(2) = 0; U(3) = 0; U(4)=0; U(5)=0; % CONTROL
w(1)= 0; w(2) = 0; w(3) = 0; w(4)=0; w(5)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
MM = 200;
% LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********************
for t=1:MM;
t1=t+1;
% SE~NAL DEL DISTURBIO
w(t1+4) = 0.01;%*sign(sin(0.03*t1));
% SE~NAL DE REFERENCIA
W(t1+4) = 0;
% MODELO LINEAL DEL PROCESO CON DISTURBIO
Y(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) ...
256 Control Adaptivo

U(t1+3) U(t1+2) U(t1+1) U(t1) ...


w(t1+3) w(t1+2) w(t1+1) w(t1)℄*...
[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4℄';
y(t1+4) = Y(t1+4) - W(t1+4); % salida residual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) U(t1+3) ...
U(t1+2) U(t1+1) U(t1) ...
w(t1+3) w(t1+2) w(t1+1) w(t1) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi');
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 -(rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t1+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION DE ESTADO
ae1=-th(1); ae2=-th(2); ae3=-th(3); ae4=-th(4);
be1=th(5); be2=th(6); be3=th(7); be4=th(8);
je1=th(9); je2=th(10); je3=th(11); je4=th(12);
Ce=th(13);
nume = [0 be1 be2 be3 be4℄;
dene = [1 ae1 ae2 ae3 ae4℄;
[GE,HE,CE,DE℄ = tf2ss(nume,dene);
numde = [1 je1 je2 je3 je4℄;
[GE,FE,CE,DE℄ = tf2ss(numde,dene);

% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN


5.7 Problemas Resueltos 257

F = dlqe(GE,FE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t1+4) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR


Ga = [GE zeros(nn,r);-CE eye(r,r)℄; % e (22) y e . (23)
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t1+4) = - Ka*[xmas;z℄;% -Kw*w(t1+4);
% ACTUALIZACION DE ESTADOS
xmenos = GE*xmas + HE*u(t1+4);
AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4;
Uin = inv(BE)*(AE*W(t1+4) - Ce);
% CALCULO DE LA SE~NAL ACTUAL DE CONTROL U
U(t1+4) = u(t1+4) + Uin;
end % ********** FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,W(6:MM+5),ejex,Y(6:MM+5)); grid
ylabel('Salida y = x1-x2 (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2), grid
plot(ejex,U(6:MM+5)); grid
xlabel('Tiempo en segundos')
ylabel('Fuerza de ontrol (N)')
print -deps -f p3adap1

Problema 5.2
El problema 3.2 des ribe las e ua iones que gobiernan la dinami a longitudi-
nal de un avion omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion  del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol enton es es
dise~nar un autopiloto que manipulando el angulo Æe del de e tor de ele-
va ion, ontrole el angulo de in lina ion del avion.
Se pide dise~nar un sistema de ontrol adaptivo que genere una fuerza
de ontrol, de modo que la salida del pro eso (el angulo de in lina ion )
presente un sobreimpulso menor al 10 % y un tiempo de estabiliza ion menor
que 10 s, on un error en estado estable nulo. Por ejemplo, si la entrada de
258 Control Adaptivo

0.01
Salida y = x1−x2 (m)
0.005

−0.005

−0.01
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

−20
Fuerza de control (N)

−40

−60

−80
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 5.17: Salida y = x1 x2 y la fuerza de ontrol dise~nada, orrespon-


dientes al problema 5.1.
referen ia es  0.2 rad, enton es el angulo de in lina ion no debe ex eder el
valor de  0.22 rad, y luego de 10 segundos, permane er en  0.2 rad.
% p4adap1.m SOLUCION DEL PROBLEMA 5.2
lear all

% PARAMETROS DEL PROCESO


nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Sigma = 10; Xi = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke; r+nn=4
R = 400; Qa = [0 0 0 0;0 0 0 0;0 0 0.001 0;0 0 0 0.001℄;

% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO


A = [-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0℄;
B = [0.232;0.0203;0℄;
5.7 Problemas Resueltos 259

C = [0 0 1℄; D = [0℄;
T = 0.1; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);

% CONDICIONES INICIALES
Ref = 0.2; % MAGNITUD DE LA SE~NAL DE REFERENCIA
Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 b1 b2 b3 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0; Y(2)=0; Y(3)=0; y(1)=0; y(2)=0; y(3)=0; % SALIDA
U(1)=0; U(2)=0; U(3)=0; u(1)=0; u(2)=0; u(3)=0; % CONTROL
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL

% LAZO DEL SISTEMA DE CONTROL *****************************


MM = 2000;
for t = 1:MM
% SE~NAL DE REFERENCIA
v1(t+3)=0.2*sign(sin(0.005*t));
% pro eso
Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 b1 b2 b3℄';
y(t+3) = Y(t+3) - v1(t+3); % SALIDA RESIDUAL (DESVIACION)
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+3)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
260 Control Adaptivo

tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
nume = [0 be1 be2 be3℄;
dene = [1 ae1 ae2 ae3℄;
[GE,HE,CE,DE℄ = tf2ss(nume,dene);
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z℄; % e . (27)
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3); %
% CALCULO DEL VALOR DE EQUILIBRIO U
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*v1(t+3) - Ce);
% CALCULO DE LA SE~NAL ACTUAL DE CONTROL U(K)
U(t+3) = u(t+3) + Uin;
end % *********************************

% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,v1(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('In lina ion (rad)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
5.7 Problemas Resueltos 261

xlabel('Tiempo en seg')
ylabel('Angulo del defle tor (rad)')
print -deps -f p4adap1

0.4
Inclinación (rad)

0.2

−0.2

−0.4
0 20 40 60 80 100 120 140 160 180 200

1
Angulo del deflector (rad)

0.5

−0.5

−1
0 20 40 60 80 100 120 140 160 180 200
Tiempo en seg

Figura 5.18: A ngulo de in lina ion  y se~nal de ontrol (angulo del de e tor)
orrespondientes al problema 5.2.
Problema 5.3
La gura 3.20 muestra un monorriel de dos arros des rito en el proble-
ma 3.5. El problema a resolver es el ontrol de velo idad del arro de
maquinas mediante un sistema de ontrol adaptivo on autosintoniza ion.
Para garantizar a los pasajeros un viaje onfortable, los ambios de velo i-
dad deben realizarse on un tiempo de estabiliza ion menor que 15 s y on
mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule una
se~nal de referen ia que ambie la velo idad de 30 a 20 m/s y demuestre
que se umplen las espe i a iones de dise~no. Luego enfrente el problema
de seguimiento. Mostrar que la velo idad de la maquina puede seguir una
traye toria predeterminada de velo idades. El programa p7adap1b.m trata
el aso de referen ia arbitraria. Revise tal programa si desea ver detalles al
respe to.
262 Control Adaptivo

% p7adap1a.m SOLUCION DEL PROBLEMA 5.3


lear all
% PARAMETROS GENERALES
nn = 6; r=1; % nn: orden del pro eso; r: NUMERO DE SALIDAS
NN = 13; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 2; Sigma = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% PARAMETROS DEL PROCESO
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄;
D=[0;0;0℄;
[num ,den ℄=ss2tf(A,B,C,D);
% MODELO LINEAL DISCRETO
T = 0.5; % periodo de muestreo0.2
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
a4=den(5); a5=den(6); a6=den(7);
b1 = num(2); b2 = num(3); b3=num(4);
b4=num(5); b5=num(6); b6=num(7);
% CONDICIONES INICIALES
Ref = 30; % MAGNITUD DE LA SE~NAL DE REFERENCIA
Ce = (1+a1+a2+a3+a4+a5+a6)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0; Y(2)=0; Y(3)=0; Y(4)=0; Y(5)=0; Y(6)=0;
y(1)=0; y(2)=0; y(3)=0; y(4)=0; y(5)=0; y(6)=0; % salida
5.7 Problemas Resueltos 263

U(1)=0; U(2)=0; U(3)=0; U(4)=0; U(5)=0; U(6)=0;


u(1)=0; u(2)=0; u(3)=0; u(4)=0; u(5)=0; u(6)= 0; % ontrol
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL *******************
MM = 600;
for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+6)= 25 + 5*sign(sin(0.02*t));
% MODELO LINEAL DEL PROCESO
Y(t+6) = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6℄';
y(t+6) = Y(t+6) - Yo(t+6); % salida residual (desvia ion)
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+6)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1=-th(1); ae2=-th(2); ae3=-th(3);
ae4=-th(4); ae5=-th(5); ae6=-th(6);
264 Control Adaptivo

be1=th(7); be2=th(8); be3=th(9);


be4=th(10); be5=th(11); be6=th(12); Ce=th(13);
ae11=0; ae12=1; ae13=0; ae14=0; ae15=0; ae16=0;
ae21=0; ae22=0; ae23=1; ae24=0; ae25=0; ae26=0;
ae31=0; ae32=0; ae33=0; ae34=1; ae35=0; ae36=0;
ae41=0; ae42=0; ae43=0; ae44=0; ae45=1; ae46=0;
ae51=0; ae52=0; ae53=0; ae54=0; ae55=0; ae56=1;
ae61=-ae6; ae62=-ae5; ae63=-ae4;
ae64=-ae3; ae65=-ae2; ae66=-ae1;

GE = [ae11 ae12 ae13 ae14 ae15 ae16


ae21 ae22 ae23 ae24 ae25 ae26
ae31 ae32 ae33 ae34 ae35 ae36
ae41 ae42 ae43 ae44 ae45 ae46
ae51 ae52 ae53 ae54 ae55 ae56
ae61 ae62 ae63 ae64 ae65 ae66℄;

be11=0; be21=0; be31=0; be41=0; be51=0; be61=1;


HE=[be11;be21;be31;be41;be51;be61℄;
e11 =be6; e12=be5; e13=be4;
e14=be3; e15=be2; e16=be1;
CE = [ e11 e12 e13 e14 e15 e16℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+6) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+6) = - Ka*[xmas;z℄; % e . (27)
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+6); % e . (15)
AE = 1 + ae1 + ae2 + ae3 + ae4 + ae5 + ae6;
BE = be1 + be2 + be3 + be4 + be5 + be6;
Uin = inv(BE)*(AE*Yo(t+6) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(k)
U(t+6) = u(t+6) + Uin;
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
5.7 Problemas Resueltos 265

subplot(2,1,1)
plot(ejex,Yo(7:MM+6),ejex,Y(7:MM+6)), grid
ylabel('Y1: Velo idad (m/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(7:MM+6)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol u')
print -deps -f p7adap1a

40
Y1: Velocidad (m/s)

30

20

10

0
0 50 100 150 200 250 300
Tiempo en segundos

30
Voltaje de control u

20

10

−10
0 50 100 150 200 250 300
Tiempo en segundos

Figura 5.19: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 5.3.
Problema 5.4
La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. El
problema a resolver es posi ionar suavemente el as ensor en un piso deter-
minado, lo que signi a sobreimpulso nulo (para que no se pase de piso) y
tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (el
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango
de  200 voltios. Dise~nar un sistema de ontrol de posi ion adaptivo on
autosintoniza ion que umpla las espe i a iones pedidas.
% p8adap1.m SOLUCION DEL PROBLEMA 5.4
266 Control Adaptivo

40

Y1: Velocidad (m/s)


30

20

10

0
0 50 100 150 200 250 300
Tiempo en segundos

30
Voltaje de control u

20

10

−10
0 50 100 150 200 250 300
Tiempo en segundos

Figura 5.20: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 5.3. La referen ia es arbitraria.

lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: orden del pro eso; r: NUMERO DE SALIDAS
NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 400;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B = [0.001;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
T = 0.8; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
5.7 Problemas Resueltos 267

Ce = (1 + a1 + a2 + a3 + a4)*Ref; % Uo = 0 (arbitrario)
thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0;Y(2)=0;Y(3)=0;Y(4)=0; y(1)=0;y(2)=0;y(3)=0;y(4)=0;
U(1)=0;U(2)=0;U(3)=0;U(4)=0; u(1)=0;u(2)=0;u(3)=0;u(4)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INCIO DEL LAZO DE CONTROL **********************************
MM = 1000;
for t = 1:MM
% SE~NAL DE REFERENCIA
g(t+4)=6 + 4*sign(sin(0.01*t));
% MODELO LINEAL DEL PROCESO
Y(t+4)=[Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t)℄*[-a1 -a2 -a3 -a4 b1 b2 b3 b4℄';
y(t+4) = Y(t+4) - g(t+4); % salida residual (desvia ion)
% ESTIMACION DE PARAMETROS (METODO MCRM)%
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
268 Control Adaptivo

% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE


ae1 =-th(1); ae2 =-th(2); ae3=-th(3); ae4 =-th(4);
be1 = th(5); be2 = th(6); be3= th(7); be4 = th(8); Ce=th(9);
ae11 = 0; ae12 = 1; ae13 = 0; ae14 = 0;
ae21 = 0; ae22 = 0; ae23 = 1; ae24 = 0;
ae31 = 0; ae32 = 0; ae33 = 0; ae34 = 1;
ae41 =-ae4; ae42 = -ae3; ae43 = -ae2; ae44 = -ae1;
GE = [ae11 ae12 ae13 ae14;ae21 ae22 ae23 ae24;...
ae31 ae32 ae33 ae34;ae41 ae42 ae43 ae44℄;
be11=0; be21=0; be31=0; be41=1; HE=[be11;be21;be31;be41℄;
e11=be4; e12=be3; e13=be2; e14=be1;
CE=[ e11 e12 e13 e14℄; DE=[0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+4) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+4);
AE= 1 + ae1 + ae2 + ae3 + ae4; BE= be1 + be2 + be3 + be4;
Uin = inv(BE)*(AE*g(t+4) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+4) = u(t+4) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+4) > 200)
U(t+4) = 200;
elseif(U(t+4) <-200)
U(t+4) = -200;
else
U(t+4) = U(t+4);
end
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,g(4:MM+3),ejex,Y(4:MM+3)), grid
ylabel('Posi ion')
5.7 Problemas Resueltos 269

xlabel('Tiempo en segundos')
subplot(2,1,2), grid
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p8adap1

10

8
Posición (m)

0
0 100 200 300 400 500 600 700 800
Tiempo en segundos

200
Voltaje de control

100

−100

−200
0 100 200 300 400 500 600 700 800
Tiempo en segundos

Figura 5.21: Posi ion del as ensor y la fuerza de ontrol (problema 5.4).
Problema 5.5
La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Dise~nar un ontrolador
adaptivo on autosintoniza ion que umpla los siguientes requerimientos:
tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al 5 % y
error en estado estable nulo. Estas ondi iones de dise~no deben mantenerse
uando se ambie la referen ia (por ejemplo de 3 a 1 m). Adem as, el ujo
de entrada (la se~nal de ontrol) no debe sobrepasar los 3 m3/s.
% p9adap1.m SOLUCION DEL PROBLEMA 5.5
lear all
% PARAMETROS GENERALES
270 Control Adaptivo

nn = 2; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDAS


NN = 5; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15 % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 100; Sigma = 0.01;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 0.1*eye(r+nn,r+nn);
% PARAMETROS DEL PROCESO NO LINEAL
gamma=0.4; gg=9.81; rho=1.23; A=9; Qo=3;
H=Qo^2/(gamma^2*rho*gg);
Z=(gamma*sqrt(rho*gg))/(2*A*sqrt(H));
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-Z 0;Z -Z℄;
B = [1;0℄;
C = [1 0℄; D = [0℄;
T = 0.8; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% G ,H , C , D : REPRESENTACION CANONICA CONTROLABLE
a11 = 0; a12 =1; a21 = -a2; a22 = -a1;
b11 = 0; b21 = 1; 11 =b2; 12 = b1;
G = [a11 a12;a21 a22℄; H = [b11;b21℄;
C =[ 11 12℄; D = [0℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
Ce = (1 + a1 + a2)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 b1 b2 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; y(1) = 0; y(2) = 0; % salida
U(1 )= 0; U(2) = 0; u(1) = 0; u(2) = 0; % ontrol
H1(1) =0; H1(2)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL **********************************
MM = 200;
for t = 1:MM
% SE~NAL DE REFERENCIA
g(t+2)=2-1*sign(sin(0.08*t));
% MODELO LINEAL DEL PROCESO
5.7 Problemas Resueltos 271

y(t+2) = [y(t+1) y(t) u(t+1) u(t)℄*[-a1 -a2 b1 b2℄';


Y(t+2) = y(t+2) + g(t+2); % salida a tual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+1) Y(t) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb=1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+2)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1=-th(1); ae2=-th(2); be1=th(3); be2=th(4); Ce=th(NN);
ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -ae1;
GE = [ae11 ae12;ae21 ae22℄;
be11 = 0; be21 = 1; HE = [be11;be21℄;
e11 =be2; e12 = be1; CE = [ e11 e12℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+2) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
272 Control Adaptivo

u(t+2) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+2);
% CALCULO DE Uo (VALOR D.C. DE U)
% AE(z^(-1)) = 1 + ae1*z^(-1) + ae2*z^(-1);
% BE(z^(-1)) = be1*z^(-1) + be2*z^(-1);
% AE(z^(-1))*Y(k) = BE(z^(-1))*U(k) + Ce; Ce = th(N), N=5
% En estado esta ionario: z=1, Y(k) = Yo(k) (Referen ia)
% enton es: U(z=1) = inv(B(z=1)*[A(z=1)*Ref - e℄
AE = 1 + ae1 + ae2; BE = be1 + be2;
Uin = inv(BE)*(AE*g(t+2) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+2) = u(t+2) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+2) > 3)
U(t+2) = 3;
elseif(U(t+2) <-3)
U(t+2) = -3;
end
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,g(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('Nivel en metros')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en segundos')
ylabel('Flujo de ontrol (m/s)')
print -deps -f p9adap1

Problema 5.6
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Dise~nar un sistema de ontrol adaptivo on autosintoniza ion
para ontrolar la velo idad angular del eje del motor mediante el voltaje
de entrada que puede variar entre  100 voltios. La se~nal de referen ia es
arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6
lear all
% PARAMETROS GENERALES
5.7 Problemas Resueltos 273

Nivel en metros
2.5

1.5

1
0 20 40 60 80 100 120 140 160
Tiempo en segundos

4
Flujo de control (m/s)

−2

−4
0 20 40 60 80 100 120 140 160
Tiempo en segundos

Figura 5.22: Nivel ontrolado H2 y el ujo de ontrol para el problema 5.5.

nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS


NN = 7; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% PARAMETROS DEL PROCESO:
J = 0.01; % MOMENTO DE INERCIA DEL MOTORM (kgm2/s2)
Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A)
R = 12; % RESISTENCIA (Ohmios)
C = 0.5; % CONDENSADOR (uF)
L = 0.5; % INDUCTANCIA DE LA ARMADURA (H)
Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad)
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0;...
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.2; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO DEL PROCESO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 10;
274 Control Adaptivo

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke


R = 0.1*eye(r,r); Qa = 0.001*eye(r+nn,r+nn);
% G ,H , C , D : REPRESENTACION CANONICA CONTROLABLE
a11 =0; a12 =1; a13 =0; a21 =0; a22 =0 ;
a23 =1; a31 = -a3; a32 = -a2; a33 =-a3;
b11 = 0; b21 = 0; b31 = 1;
11 =b3; 12 = b2; 13 = b1;
G = [a11 a12 a13;a21 a22 a23;a31 a32 a33℄;
H = [b11;b21;b31℄;
C =[ 11 12 13℄; D = [0℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 b1 b2 b3 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; Y(3) = 0; y(1)=0; y(2)=0; y(3)=0;
U(1 )= 0; U(2) = 0; U(3) = 0; u(1)=0; u(2)=0; u(3)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL **********************************
MM = 400;
for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+3)= 0.4 + 3*(sin(0.02*t))+0.01*t;
% MODELO LINEAL DEL PROCESO
Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 b1 b2 b3℄';
y(t+3) = Y(t+3) - Yo(t+3); % SALIDA RESIDUAL (DESVIACION)
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+3)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
5.7 Problemas Resueltos 275

Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
ae11 = 0; ae12 =1; ae13 = 0; ae21 = 0; ae22 = 0;
ae23 = 1; ae31 =-ae3; ae32 = -ae2; ae33 = -ae1;
GE = [ae11 ae12 ae13;ae21 ae22 ae23;ae31 ae32 ae33℄;
be11 = 0; be21 = 0; be31 = 1; HE = [be11;be21;be31℄;
e11 =be3; e12 = be2; e13 = be1;
CE = [ e11 e12 e13℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos);
z = z -CE*xmas;
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3);
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*Yo(t+3) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+3) = u(t+3) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+3) > 100)
U(t+3) = 100;
elseif(U(t+3) <-100)
U(t+3) = -100;
end
276 Control Adaptivo

end % FIN DEL LAZO DE CONTROL **********************


% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)); grid
ylabel('Velo idad (rad/s)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)); grid
xlabel('Tiempo en seg')
ylabel('Voltaje de ontrol')
print -deps -f p11adap1

8
Velocidad (rad/s)

−2
0 10 20 30 40 50 60 70 80

40
Voltaje de control

20

−20

−40
0 10 20 30 40 50 60 70 80
Tiempo en seg

Figura 5.23: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 5.6.
Problema 5.7
En el problema 3.3 se des ribe el pro eso de la bola rodando a lo largo de
una barra on un grado de libertad, tal omo se muestra en la gura 3.16.
Una leva one ta la barra on un engranaje a ionado por un servomotor.
Se desea dise~nar un sistema de ontrol adaptivo que pueda posi ionar la
bola a 0.5 m de un extremo de la barra de 1 m de longitud. Evidentemente,
la os ila ion de la bola debe estar restringida sobre la barra. El voltaje de
ontrol no debe sobrepasar los  40 voltios.
5.7 Problemas Resueltos 277

% p5adap1.m SOLUCION DEL PROBLEMA 5.7


lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDAS
NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 1; Sigma = 0.001;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1;
Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;...
0 0 0 1 0;0 0 0 0 1℄;
% PARAMETROS DEL PROCESO
M=0.11; % masa de la bola(kg)
R=0.015; % radio de la bola(m)
d=0.03; % distan ia de la leva al engranaje(m)
g=9.8 ; % a elera ion de la gravedad (m/s2)
L=1.0; % longitud de la barra(m)
J=9.99e-6; % iner ia de la barra(kgm2)T=0.7,Sigma=0.001
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [0 1 0 0;0 0 M*g*d/(L*(J/R^2+M)) 0;0 0 0 1;0 0 0 0℄;
B = [0;0;0;1℄;
C = [1 0 0 0℄; D = [0℄;
T = 0.7; % PERIODO DE MUESTREO T=0.12
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
Ce = (1 + a1 + a2 + a3 +a4)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0; Y(2)=0; Y(3)=0; Y(4)=0;
y(1)=0; y(2)=0; y(3)=0; y(4)=0;
U(1)=0; U(2)=0; U(3)=0; U(4)=0;
u(1)=0; u(2)=0; u(3)=0; u(4)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL **********************************
MM = 300;
278 Control Adaptivo

for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+4)= 0.5;%sign(sin(0.005*t));
% MODELO LINEAL DEL PROCESO
Y(t+4) = [Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+3) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 -a4 b1 b2 b3 b4℄';
y(t+4) = Y(t+4) - Yo(t+4); % salida residual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+3) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3); ae4 = -th(4);
be1 = th(5); be2 = th(6); be3 = th(7); be4 = th(8); Ce = th(9);
dene = [1 ae1 ae2 ae3 ae4℄;
nume = [0 be1 be2 be3 be4℄;
[GE,HE,CE,DE℄ = tf2ss(nume,dene);
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION
5.8 Problemas Propuestos 279

z = z -CE*xmas; % ACCION INTEGRAL


% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+4) = - Ka*[xmas;z℄; % e . (27)
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+4); % e . (15)
AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4;
Uin = inv(BE)*(AE*Yo(t+4) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+4) = u(t+4) + Uin;
end
end % FIN DEL LAZO DE CONTROL *************************
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('Posi ion (m)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en seg')
ylabel('Voltaje de ontrol')
print -deps -f p5adap1

5.8 Problemas Propuestos


Problema 5.8

En el pro eso de la gura 3.24(a) se desea redu ir la humedad h del material


a granel de la tolva (ver problema 3.7). La banda transportadora, que se
desplaza a una velo idad onstante de v= 1 m/s, introdu e el material a un
horno de se ado. El sensor de humedad dete ta hr a una distan ia d = 10 m
del horno y propor iona la se~nal de voltaje vr . El horno puede ser modelado
omo un pro eso de primer orden. La gura 3.24(b) muestra la F.T del
pro eso. Dise~nar un sistema de ontrol adaptivo on autosintoniza ion on el
proposito de estabilizar la humedad del material en la banda transportadora,
a pesar de que el tiempo muerto T = v=d vara entre 9 y 11 s. Para propositos
280 Control Adaptivo

0.8

Posición (m)
0.6

0.4

0.2

0
0 50 100 150 200 250

10

5
Voltaje de control

−5

−10

−15
0 50 100 150 200 250
Tiempo en seg

Figura 5.24: Posi ion de la bola y el voltaje de ontrol para el problema 5.7.
del modelado del pro eso, el tiempo muerto puede ser des rito mediante la
aproxima ion de Pade de ter er orden (ver ejemplo ??):
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts  =
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Espe i a iones de dise~no: tiempo de estabiliza ion menor que 40 s, error
en estado esta ionario nulo y por entaje de sobreimpulso menor al 5 %.
Problema 5.9
Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque ( gura 3.28), empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol adaptivo on autosintoniza ion para
ontrolar el angulo de eleva ion  on las espe i a iones siguientes:
tiempo de estabiliza ion menor que 5 s, mnimo sobreimpulso en la
respuesta y error de estado esta ionario nulo. Los disturbios tipo es-
alon pueden a tuar simultaneamente o no, y pueden ser positivos o
negativos. Para ada aso, el sistema de ontrol dise~nado debe ser
apaz de minimizar sus efe tos.
5.8 Problemas Propuestos 281

(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 5.10
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito en
la se ion 3.3, en donde la arga no lineal posee ahora dos grados de libertad
on Lo = 2L1=3 y Mo =0.02 kg. La union de la arga on el eje del servomotor
no es exible. Las e ua iones que des riben la dinami a del sistema son
materia del problema 3.12. Dise~nar un sistema de ontrol adaptivo on
autosintoniza ion para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso en la respuesta.
Problema 5.11
La gura 3.32 muestra el pro eso pendulo doble no lineal que es una exten-
sion del pendulo simple des rito en la se ion 3.1. El a oplamiento entre los
dos pendulos de igual longitud no es exible. Las e ua iones que des riben la
dinami a del sistema son materia del problema propuesto 3.13. Considerar
que la arga esferi a es de 0.02 kg. Dise~nar un sistema de ontrol adaptivo
on autosintoniza ion para ontrolar simultaneamente las posi iones  y 
on mnimo tiempo de estabiliza ion y mnimo sobreimpulso en la salida, de
modo tal que el pendulo doble permanez a en posi ion verti al.
Problema 5.12
La gura 3.33 muestra el pro eso doble grua puente no lineal que es una ex-
tension del pro eso grua-puente des rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Para poder deter-
minar un modelo no lineal dinami o para este pro eso, onviene emplear las
e ua iones de Lagrange de la me ani a lasi a (ver problema 3.14). Conside-
rar que la arga esferi a es de 0.02 kg. Dise~nar un sistema de ontrol adaptivo
on autosintoniza ion para ontrolar simultaneamente las posi iones  y 
on mnimo tiempo de estabiliza ion y mnimo sobreimpulso, de modo tal
que la doble grua-puente permanez a en posi ion verti al uando el arro
realiza un re orrido predeterminado.
Problema 5.13
La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una
velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si
282 Control Adaptivo

se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_ (t) + bv(t) = u(t); v_ =
dt
Dise~nar un sistema de ontrol adaptivo on autosintoniza ion para ontro-
lar la velo idad del movil on mnimo tiempo de estabiliza ion y mnimo
sobreimpulso en la salida. La se~nal de referen ia puede ser arbitraria (pro-
blema de seguimiento).
Problema 5.14
El motor D.C. es un a tuador muy popular en los sistemas de ontrol, ya
que su movimiento rotatorio, mediante a oples ade uados en su eje, puede
onvertirse fa ilmente en movimiento de trasla ion omo por ejemplo, en
fajas transportadoras y en brazos manipuladores. La gura 4.3 muestra el
ir uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1. Dise~nar dos sistemas de ontrol adaptivo on
autosintoniza ion. El primero para estabilizar la velo idad angular del eje
del motor on las espe i a iones siguientes: tiempo de estabiliza ion menor
que 4 s, error en estado estable menor al 1 % y sobreimpulso en la salida
menor al 5 %. El segundo sistema de ontrol adaptivo a dise~nar debe es-
tabilizar la posi ion del eje del motor on las mismas espe i a iones de
dise~no.
Cap
tulo 6

Control Predi tivo

En este aptulo se desarrolla un pro edimiento para dise~nar un sistema de on-


trol predi tivo basado en modelos. El algoritmo de ontrol predi tivo empleado
es el denominado ontrol matri ial dinami o, el ual puede ser tambien del tipo
es alar. Para validar el pro edimiento de dise~no propuesto, se presenta una
apli a ion: ontrol predi tivo de la posi ion angular de un servomotor sujeto a
argas no lineales variables.
La penultima se ion, problemas resueltos, trata el dise~no de sistemas de
ontrol predi tivo para diferentes pro esos empleando leyes de ontrol es alar
y matri ial. Todos los ar hivos orrespondientes a los ejer i ios, problemas,
dise~nos, simula iones y software desarrollados se pueden des argar del sitio:
http:// ee.uni.edu.pe/728681F.

6.1 Control Predi tivo Basado en Modelos


El Control Predi tivo Basado en Modelos [7℄, [8℄ es una metodologa de on-
trol que usa el modelo del pro eso para al ular y optimizar las predi iones
de las a iones de ontrol y de la salida ontrolada. Esta metodologa se ha
desarrollado alrededor de iertos prin ipios, dos de los uales son:
 Empleo de un modelo del pro eso para pronosti ar su salida a ontrolar
en instantes de tiempo futuro.
 Cal ulo de una a ion de ontrol optima basada en la minimiza ion
de fun iones de osto, posiblemente in luyendo restri iones en las
variables del pro eso.
284 Control Predi tivo

Los diferentes miembros de la familia del Control Predi tivo Basado en


Modelos di eren prin ipalmente en el modelo usado para representar el pro-
eso on sus perturba iones, y en las fun iones de osto a ser minimizadas
( on o sin restri iones). En lo que sigue del aptulo, se desarrollan los
prin ipios del Control Predi tivo Basado en Modelos para su apli a ion
en sistemas univariables. De la gama de algoritmos de ontrol predi tivo
existentes, nos o upamos en parti ular del denominado Control Matri ial
Dinami o (\Dynami Matrix Control"). Para validar el pro edimiento de
dise~no propuesto, se presenta y dis ute una apli a ion: ontrol predi tivo de
la posi ion angular de un servomotor sujeto a argas no lineales variables.
Es importante resaltar que el ontrol predi tivo es de naturaleza abierta
y uenta on mu has ontribu iones, tanto en lo a ademi o omo tambien en
el mundo industrial. Mu has apli a iones del ontrol predi tivo son usadas
hoy en todos los ampos de la a tividad industrial. El buen rendimiento de
tales apli a iones es muy apre iada; por ello, a tualmente existe un re iente
interes en esta metodologa, si bien el trabajo pionero se ini io alrededor de
ha e dos de adas.
6.2 Prin ipios del Control Predi tivo Basado en
Modelos
El ontrol predi tivo pronosti a la salida de la planta en un es enario de
tiempo de dura ion N2 (el horizonte de tiempo N2). Tal predi ion depende
de las salidas y entradas pasadas, pero tambien del es enario del ontrol
futuro. La obten ion del modelo que re eje lo mas elmente posible la
evolu ion dinami a de la planta, es la llave del exito en las apli a iones.
La nota ion usada para derivar los prin ipios del ontrol predi tivo es la
siguiente:
 t, representa el tiempo dis reto (t = 0, 1, 2, . ..).
 u(t), denota la entrada al pro eso y onstituye la variable manipulada
o se~nal de ontrol.
 y(t), es la salida del pro eso y onstituye la la variable ontrolada.
 w(t), representa la traye toria deseada (\set point").
 r(t), denota la traye toria de referen ia.
6.2 Prin ipios del Control Predi tivo Basado en Modelos 285

 u(t + k=t), denota los valores futuros de la entrada en el tiempo t + k


postulados en el tiempo t, o simplemente, dado t.
 y(t + k=t), denota los valores futuros de la salida basado en las medi-
iones disponibles en el tiempo t:
fy(t); y(t 1); : : : ; u(t 1); u(t 2); : : :g
y en los valores futuros de la entrada postulados en el tiempo t:
fu(t=t); u(t + 1=t); : : :g
Con rela ion a la gura 6.1, el prin ipio del ontrol predi tivo se ara -
teriza por la siguiente estrategia:
Politica de control pasada Politica de control futura
1

2
Trayectoria de
referencia
Trayectoria
deseada 1

2
Tiempo
Salida pasada Muerto
del proceso

Pasado 1 2 Futuro N2
Momento presente t

Figura 6.1: Estrategia del ontrol predi tivo.

 En ada tiempo t, la salida del pro eso y(t + k) se pronosti a sobre


un horizonte k = 1 : : : N2. Los valores pronosti ados se denotan o-
mo y(t + k=t) y a N2 se le denomina el horizonte de predi ion. La
predi ion se realiza mediante el modelo del pro eso, el ual se asume
que esta disponible. El pronosti o en uestion depende de las en-
tradas y salidas pasadas, pero tambien del es enario del ontrol futuro
u(t + k=t), k = 0; : : : ; N2 1; es de ir, de las a iones de ontrol que
se intentan apli ar a partir del tiempo t.
286 Control Predi tivo

 Una traye toria de referen ia r(t + k=t), k = 1; : : : ; N2 , que se ini ia


en r(t=t) = y(t) y se de ne sobre el horizonte de predi ion. Esta
traye toria des ribe la forma de guiar la salida del pro eso desde su
valor a tual y(t) hasta la traye toria deseada w(t).
 El ve tor de ontrol u(t + k=t), k = 0; : : : ; N2 1, se al ula para
minimizar una fun ion de osto espe  a que depende del error del
ontrol predi tivo r(t + k=t) y(t + k=t), k = 1; : : : ; N2 .
 Al pro eso real solo se le apli a el primer elemento del ve tor de ontrol
optimo al ulado u(t + k=t), k = 0; : : : ; N2 1, mientras que se dejan
de lado los demas elementos de di ho ve tor. En el proximo instante de
muestreo, todas las se uen ias temporales se desplazan para dar abida
a las nuevas medi iones de la salida y(t +1) y a las del ve tor de ontrol
u(t + k + 1=t + 1), uyo primer elemento es generalmente diferente al
primer elemento del ve tor u(t + k=t), previamente al ulado. Este
prin ipio se denomina estrategia del \horizonte retroa tivo".
La estrategia del ontrol predi tivo omprende: el pro eso de predi ion
a traves de un modelo del pro eso, la espe i a ion de una traye toria de
referen ia, la estru tura ion de la futura ley de ontrol, la de ni ion de la
fun ion de osto (y sus restri iones) y el al ulo del es enario de ontrol
optimo. Tal estrategia puede ser visualizada en el diagrama de bloques
mostrado en la gura 6.2.
Entradas y
salidas Salidas + Trayectoria de
pasadas predecidas referencia
MODELO -
Entradas
futuras
OPTIMIZADOR

Funcion
’ de costo restricciones

Figura 6.2: Estrategia del Control Predi tivo Basado en Modelos


6.3 El Modelo del Pro eso 287

6.3 El Modelo del Pro eso


El pro eso de una entrada y una salida, probablemente no lineal, puede
modelarse omo:
y(t) = x(t) + n(t) (6.1)
tal omo se ilustra en la gura 6.3, donde y(t) es la salida medible del
pro eso, u(t) es la entrada al pro eso (la se~nal de ontrol), x(t) es la salida
del modelo y n(t) es el disturbio en el pro eso.
n
u x y
MODELO

Figura 6.3: Modelo del pro eso bajo perturba iones.

El Disturbio n(t)
La se~nal de disturbio n(t) in luye todos los efe tos no deseados en la salida
y(t). Esta se~nal representa el efe to onjunto de todos los disturbios sobre el
pro eso, otras entradas no medibles, ruido de medi ion, errores de modelado,
in ertidumbres, et . El disturbio n(t), que es de ara ter esto asti o, puede
ser modelado mediante un ltro oloreado de la forma:
n(t) C (z 1 )
=
e(t) D(z 1 )
(6.2)
donde z 1 es el operador de desplazamiento, e(t) es un ruido blan o no
orrela ionado on media ero, y los polinomios son de la forma:
C (z 1 ) = 1 + 1 z 1 +    + n z n


(6.3)
1 1
D(z ) = 1 + d1 z +    + dn z n d (6.4)
d

El ltro de disturbio debe dise~narse: para eliminar disturbios en el estado


estable ( uando z = 1), omo ltro sele tivo (para eliminar una determinada
fre uen ia) y para in rementar la robustez del sistema en la presen ia de
errores de medi ion. Estru turas tpi as de los polinomios del ltro pueden
ser:
C (z 1 ) = 1 + z 1 ; D(z 1 ) = (1 + dz 1 )(1 z 1 )
288 Control Predi tivo

La Salida x(t) del Modelo


La se~nal x(t) representa el efe to del pro eso en la salida y(t) debido a la
entrada u(t). De nuevo, x(t) no es una se~nal medible. En general, la rela ion
entre u(t) y x(t) puede representarse mediante un modelo dinami o generi o
de la forma:
x(t) = f (x(t 1); x(t 2); : : : ; u(t 1); u(t 2); : : :) (6.5)
donde f (:) es una fun ion que puede estru turarse de diversas formas. Es
de ir, f (:) puede ser una e ua ion de diferen ias, una red neuronal o una
aja negra on parametros a ser estimados.
El Modelo CARIMA
El modelo CARIMA, del ingles \Controlled Autoregressive Integrated Mov-
ing Average", es un modelo lineal basi o y bastante extendido en su apli-
a ion y es pre isamente el que emplearemos. El modelo CARIMA del
pro eso puede ser representado por:
C (z 1 )
A(z 1 )y(t) = B (z 1 )u(t) + e(t) (6.6)
D(z 1 )
donde:
A(z 1 ) = 1 + a1 z 1 + ::: + an z n
a
a
(6.7)
B (z 1 ) = b1 z 1 + ::: + bn z n
b
b (6.8)
El origen del termino CARIMA se debe a que la e ua ion de diferen ias
del modelo del pro eso presenta tres omponentes, a saber, la omponente
salida autoregresiva:
y(k) = a1 y(k 1) a2 y(k 2) ::: an y(k na ) a

el omponente promedio temporal de ontrol:


+ b0u(k 1) + b1u(k 2) + ::: + bn u(k nb 1)
b

y el omponente promedio temporal integrado del error e(t):


+ e(k) + 1 e(k 1) + 21e(kz 12) + ::: + n e(k n )

6.3 El Modelo del Pro eso 289

Por ejemplo, para un pro eso de segundo orden sin presen ia de perturba-
iones; es de ir, on C (z 1) = 0, la representa ion CARIMA toma la forma:
B (z 1 ) b1 z 1 + b2 z 2
y(t) = x(t) = ( ) =
A(z 1 )
u t
1 + a1 z 1 + a2 z 2 u(t) (6.9)
la ual ondu e a la e ua ion de diferen ias:
y(t) = a1 y(t 1) a2 y(t 2) + b1 u(t 1) + b2 u(t 2) (6.10)
El modelo lineal CARIMA mas generalizado es de la forma:
B (z 1 ) C (z 1 )
A(z 1 )y(t) = u ( t ) + e(t) (6.11)
F (z 1 ) D(z 1 )
Notar en (6.11) que la salida y(t) del modelo tambien umple que (ver
e ua ion (6.1):
y(t) = x(t) + n(t)
donde: uy = AFB y ne = AD C . La representa i on predi tiva de la ultima
expresion es:
y(t + k=t) = x(t + k=t) + n(t + k=t) (6.12)
Ejemplo 6.1
El modelo lineal de orden 2 del servomotor D.C. sujeto a argas no lineales
des rito en la se ion 3.3 es:
q_ = w
 
N B n2 KE nK K
w_ = q + w + a t u
M M MR RM
Asumiendo que el ruido de medi ion n(t) en la posi ion del eje del servomotor
(la salida del pro eso) es oloreado:
n(t) =
1
1 z 1 e(t)
determine su modelo CARIMA.
Solu ion: La fun ion de transferen ia de pulso del pro eso posee la forma:
q (z ) b1 z + b2 b1 z 1 + b2 z 2 B (z 1 )
= = =
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 )
290 Control Predi tivo

y a~nadiendo el ruido de medi ion obtenemos:


B (z 1 ) B (z 1 ) 1 e(t)
q (z ) = u ( z ) + n ( t ) = u(z ) +
A(z )1 A(z )1 1 z1
donde e(t) es ruido blan o gaussiano on media nula. La e ua ion de dife-
ren ias del pro eso ruidoso viene a ser:
q(t) = (1 a1 )q(t 1) + (a1 a2 )q(t 2) + a2 q(t 3)+
b1 u(t 1) + (b2 b1 )u(t 2) b2 u(t 3) + e(t) + a1 e(t 1) + a2 e(t 2)
En el siguiente ejemplo analizaremos la se~nal n(t) resultante.
6.4 El Modelo del Predi tor
El predi tor y(t + k=t) de la se~nal de salida y el predi tor n(t + k=t) de
la se~nal de perturba ion pueden ser modelados empleando representa iones
serie y serie/paralelo omo se detalla a ontinua ion.
6.4.1 Predi ion de y (t + k=t)
Para prede ir y(t + k=t) existen dos posibles esquemas de implementa ion,
los uales se muestran en la gura 6.4 para un modelo de segundo orden.
x(t+k-1/t) y(t+k-1/t)
x(t+k-2/t) y(t+k-2/t) MODELO
MODELO x(t+k/t) SERIE / x(t+k/t)
u(t+k-1/t) PARALELO u(t+k-1/t) PARALELO
u(t+k-2/t) u(t+k-2/t)

Figura 6.4: Representa ion de los modelos paralelo y serie/paralelo.

El Modelo Paralelo
El modelo paralelo, llamado algunas ve es modelo independiente, puede ser
usado para pro esos estables y es el que se implementa por defe to. En este
6.4 El Modelo del Predi tor 291

modelo la salida y(t) se realimenta a s misma. Su expresion es:


B (z 1 ) 1 e(t) = x(t) + n(t)
y(t) = u(t) + (6.13)
A(z ) 1 1 z1
la ual se obtiene de la e ua ion1 (6.6)) on C (z 1 ) = 1, D(z 1) = (1 z 1 ),
n(t) = 1 1z 1 e(t), e y(t) = BA((zz 1 )) u(t). Por onsiguiente, para ualquier t:
x(t) = (1 A(z 1 ))x(t) + B (z 1 )u(t)
= a1x(t 1)    an x(t na) a
+b1u(t 1) +    + bn u(t nb)
b (6.14)
siendo su expresion generi a predi tiva:
x(t + k=t) = a1 x(t + k 1=t)    an y(t + k na =t)
a

+b1 u(t + k 1=t) +    + bn u(t + k nb=t) (6.15)


b

El Modelo Serie/Paralelo
El modelo serie/paralelo puede ser empleado para pro esos 1estables o ines-
tables. En este aso, el modelo del disturbio n(t) = DC ((qq 1)) e(t) se es oge
diferente al del modelo paralelo. El modelo serie/paralelo se obtiene rees ri-
biendo el modelo paralelo omo sigue:
A(z 1 )
A(z 1 )y(t) = B (z 1 )u(t) +
1 z 1 e(t) (6.16)
que es la e ua ion (6.6) uando C (z 1) = A(z 1 ) y D(z 1) = 1 z 1. La
salida y(t) toma enton es la forma:
A(z 1 )
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t) +
1 z 1 e(t) = y(t) + n(t) (6.17)
donde y(t) se obtiene de la rela ion:
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t)
y(t) = a1 y(t 1)    an y(t na ) a
+b1u(t 1) +    + bn u(t nb)
b (6.18)
Por onsiguiente, la expresion predi tiva del modelo serie/paralelo es:
y(t + k=t) = a1 y(t + k 1=t)    an y(t + k na =t)
a
+b1 u(t + k 1=t) +    + bn u(t + k nb=t) (6.19)
b
292 Control Predi tivo

La diferen ia del modelo serie/paralelo on respe to al modelo paralelo puede


dedu irse de la gura 6.5.
u y u y
PROCESO PROCESO

+
+
- MODELO -
x MODELO y
SERIE / x
u PARALELO x u PARALELO

Figura 6.5: Implementa ion de los modelos paralelo y serie/paralelo.

6.4.2 Predi ion de n(t + k=t)


Para ualquier tiempo t, se puede al ular x(t) usando los datos disponibles
del modelo:
[x(t 1) : : : x(t na) u(t 1) : : : u(t nb)℄
Luego, usando las medi iones y(t) (por ende y(t + k=t)), podemos al ular
la perturba ion n(t) mediante la rela ion:
n(t) = x(t) y(t) (6.20)
Como ya se tienen disponibles los valores previos n(t 1); n(t 2); : : :, ello
nos permite omputar:
D(z 1 )
e(t) = n(t)
C (z 1 )
e(t) = 1 e(t 1) 2 e(t 2)    + n(t)+ d1 n(t 1)+ d2 n(t 2)+    (6.21)
donde e(t) es un ruido blan o no orrela ionado on media nula. Esto sig-
ni a que la mejor predi ion de e(t) es:
e(t + k=t) = 0; k = 1; : : : ; N2 (6.22)
Por extension, la mejor predi ion del disturbio se obtiene de:
C (z 1 )
n(t + k=t) = e(t + k=t); k = 1; : : : ; N2
D(z 1 )
= d1n(t + k 1=t) d2n(t + k 2=t) + e(t + k=t)   
+ 1e(t + k 1=t) + 2 e(t + k 2=t) +    (6.23)
6.4 El Modelo del Predi tor 293

El al ulo re ursivo toma en uenta que para ualquier k, e(t + k=t) = 0.
Por onsiguiente, para:
k = 1; n(t + 1=t) = d1 n(t=t) d2 n(t 1=t)   
k = 2; n(t + 2=t) = d1 n(t + 1=t) d2 n(t=t)   
...
k = N2 ; n(t + N2 =t) = d1 n(t + N2 1=t) d2 n(t + N2 2=t)   
Ejemplo 6.2
Comparar las respuestas a una sinusoide del pro eso servomotor D.C. no
lineal del ejemplo 6.1, uando la salida y no es ruidosa y uando lo es. El
tiempo de muestreo es T = 0.01 s. Considerar ruido blan o gaussiano.
Solu ion: Empleando el resultado del ejemplo 6.1, la solu ion a este pro-
blema se detalla en el programa ejem6 2.m. Los resultados se muestran en
las guras 6.6, 6.7 y 6.8. Observar en la ultima gura que el ruido e(t)
empleado posee media ero y una fun ion de distribu ion gaussiana.
% ejem6_2.m SOLUCION EJEMPLO 6.2
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Lo = 0.776;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % 0, 0.01, 0.02
K = 31.071e-3; n = 19.741; L = 4.64e-2;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
B = [0;n*K*Ka t/(R*M)℄; C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES NULAS
q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;
y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0;
% RESPUESTAS DEL PROCESO
294 Control Predi tivo

MM = 1000;
for t=3:MM+2
u(t) = sin(0.006*t); % SINUSOIDE DE ENTRADA
q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);
e(t+1) = 0.1*randn; % GENERA RUIDO BLANCO GAUSSIANO
% DE MEDIA NULA Y VARIANZA 0.1
y(t+1) = (1-a1)*y(t) + (a1-a2)*y(t-1) + a2*y(t-2) ...
+ b1*u(t) + (b2-b1)*u(t-1) - b2*u(t-2) ...
+ e(t+1) + a1*e(t) + a2*e(t-1);
end
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
figure(1)
subplot(2,1,1)
plot(ejex,q(3:MM+2)); grid
ylabel('Posi ion en rad'); xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM+2)); grid
ylabel('Entrada (voltios)')
xlabel('Tiempo en segundos')
print -f -deps ejem6_2a
figure(2)
subplot(2,1,1)
plot(ejex,y(3:MM+2)); grid
ylabel('Posi ion ruidosa (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM+2)); grid
ylabel('Entrada (voltios)')
xlabel('Tiempo en segundos')
print -f -deps ejem6_2b
figure(3)
subplot(2,1,1)
plot(ejex,e(3:MM+2)); grid
ylabel('Ruido gaussiano e(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
hist(e)
ylabel('Distribu ion de e(t)')
xlabel('<------ e(t) ------>')
print -f -deps ejem6_2
6.4 El Modelo del Predi tor 295

Posición en rad
2

−2

−4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

1
Entrada (voltios)

0.5

−0.5

−1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 6.6: Respuesta no ruidosa del pro eso a una sinusoide.

4
Posición ruidosa (rad)

−2

−4

−6
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

1
Entrada (voltios)

0.5

−0.5

−1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 6.7: Respuesta ruidosa del pro eso a una sinusoide.


296 Control Predi tivo

0.4

Ruido gausiano e(t) (rad)


0.2

−0.2

−0.4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

300
Distribución de e(t)

200

100

0
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
<−−−−−− e(t) −−−−−−>

Figura 6.8: Ruido blan o e(t) on media ero y distribu ion gaussiana.

6.5 El Controlador Predi tivo


6.5.1 Objetivo del Controlador
El objetivo del ontrolador predi tivo es determinar el ve tor de ontrol
u(t + k=t); k = 0; : : : ; N2
1, que minimi e la siguiente fun ion de osto:
N2
X u 1
NX
J= [r(t + k=t) y(t + k=t)℄2 +  [u(t + k=t)℄2 (6.24)
k=N1 k=0
donde :
u(t + k=t) = u(t + k=t) u(t + k 1=t) (6.25)
on u(t + k=t) = 0 para k  Nu. La traye toria de referen ia esta repre-
sentada por la e ua ion:
r(t + k=t) = r(t + k 1=t) + (1 )w(t + k=t) (6.26)
evaluada para k = 1; : : : ; N2, on r(t=t) = y(t).
Los parametros de dise~no son:
 N1: horizonte de predi ion mnimo.
6.5 El Controlador Predi tivo 297

 N2: horizonte de predi ion maximo; por defe to podemos onsiderar


N2 = N1 + 1; : : : ; N1 + 10.
 Nu : horizonte de ontrol; por defe to onsiderar Nu = 1.
 N1; : : : ; N2 : horizonte de oin iden ia; por defe to onsiderar N1 (tiem-
po muerto).
 : parametro de pondera ion; por defe to onsiderar ero.
 : parametro de ltraje; por defe to onsiderar ero.
Si la traye toria deseada w(t) se programa previamente, enton es los valores
futuros w(t + k) se pueden emplear para determinar w(t + k=t). Es de ir,
w(t + k=t) = w(t + k) para k = 1; : : : ; N2 . Si no deseamos una estrategia
de ontrol predi tivo en avan e, el valor a tual w(t) se puede usar omo un
valor de predi ion w(t + k=t) = w(t) para k = 1; : : : ; N2 .
Es importante observar ademas que:
1. La traye toria de referen ia dada en (6.26) onstituye un ltro de
primer orden para w(t). Este ltro se puede representar mediante
la siguiente fun ion de transferen ia:
r(z ) 1 = z(1 )
=
w(z ) 1 z 1 z
(6.27)
2. El ltro para w(t) se puede implementar fuera del lazo de ontrol, no
afe tando de esta manera a la estabilidad del sistema, pero s on-
tribuyendo al re hazo del ruido.
La gura 6.9 ilustra el objetivo del ontrol predi tivo basado en modelos.
6.5.2 Respuesta Libre y Respuesta Forzada
Con eptualmente, la respuesta futura y(t + k=t) puede ser onsiderada omo
el resultado a umulativo de dos efe tos:
y(t + k=t) = ylibre(t + k=t) + yforz (t + k=t) (6.28)
donde el subndi e forz indi a forzada. La respuesta libre ylibre(t + k=t)
apare e omo onse uen ia de los fa tores siguientes:
 El efe to debido a las se~nales de ontrol pasadas u(t 1); u(t 2); : : :
298 Control Predi tivo

1
0 N u =4
u 0
1
1
0 1
0
0
1 0
1 0
1 0
1
1
0 01
1 0 11
0 01 0
01
1 0
01
1 0
00
11
00 1
0
1
11 0
0
1
0
1 0 1
1 0 0
1
0
1
00
11 y(t+k/t)
00
1100
11 u(t+k/t)
00
11
o o o o
o o o o
o o o o o o o o o o o o o o o o
o o o o o
o o o
r=w y
N 1=2 N 2 =8
PASADO Tiempo actual t FUTURO

Figura 6.9: Objetivo del ontrol predi tivo basado en modelos.

 El efe to debido a un es enario de ontrol futuro. Por defe to se tiene


u(t=t) = u(t 1); u(t +1=t) = u(t 1); u(t +2=t) = u(t 1); : : :; esto
es, u(t=t) = u(t + 1=t) = : : : = u(t + Nu 1=t) = 0
 El efe to debido a las perturba iones futuras del ruido n(t + k=t).
La omponente forzada yforz (t + k=t) apare e debido al resultado de
dos efe tos. El primero, ausado por la a ion del ontrol futuro; es de-
ir, ausado por las se~nales u(t=t), u(t + 1=t), : : : , u(t + Nu 1=t).
El segundo efe to se debe a las respuestas del pro eso a una se uen ia de
entradas es alon, omo sigue:
 Un es alon on amplitud u(t=t) apli ado al pro eso en el tiempo
t, resulta en una ontribu ion gk u(t=t) en la salida del pro eso en
el tiempo t + k. Es de ir, k tiempos de muestreo mas tarde ( gura
6.10(a)).
 Un es alon on amplitud u(t +1=t) apli ado al pro eso en el tiempo
t + 1, resulta en una ontribu ion gk u(t + 1=t) para la salida del
pro eso en el tiempo t + k 1. Es de ir, k 1 tiempos de muestreo
mas tarde ( gura 6.10(b)).
 et .
6.5 El Controlador Predi tivo 299

∆u(t/t) Entrada escalon

g ∆u(t/t)
k

Respuesta

al escalon

k Muestras Tiempo
t t+k
(a)

∆u(t+1/t) Entrada escalon

g ∆u(t+1/t)
k

Respuesta

al escalon

(k-1) Muestras Tiempo

t t+k
(b)

Figura 6.10: El efe to de las entradas tipo es alon en la salida forzada.

Por onsiguiente, el efe to a umulativo de todos los es alones es:

yforz (t + k=t) = gk u(t=t)+ gk 1 u(t +1=t)+    + gk u(t + Nu 1=t)Nu +1


(6.29)
donde los parametros g1; : : : ; gN2 son los oe ientes de la respuesta del
sistema al es alon unitario. Es de ir, la respuesta de la salida del sistema a
los ambios tipo es alon unitario en la entrada.
Para un sistema lineal, la respuesta al es alon unitario no depende del
punto de opera ion. Este punto es jo y puede ser al ulado fuera de lnea
(\o -line") usando el modelo del sistema.
Para un sistema no lineal, omo en el aso de una red neuronal, la
respuesta al es alon unitario es diferente para ada punto de opera ion.
Esta respuesta tiene que ser al ulada en ada tiempo de muestreo (\on-
line"), apli ando en ada instante de muestreo un ambio es alon ( ti io) a
la entrada a tual del pro eso y al ulando su efe to en la salida respe tiva.
300 Control Predi tivo

De la e ua ion (6.29) se puede obtener la siguiente expresion para la


omponente forzada:
Yforz = GU (6.30)
donde:
 
Yforz = yforz (t + N1 =t) yforz (t + N1 + 1=t)    yforz (t + N2 =t) T
2 3
gN1 gN1 1 ::: :::
6 gN +1 gN1 ::: ::: 7
G=6 1
4 ::: ::: ::: :::
7
5
gN2 gN2 1 : : : gN2 Nu +1
 T
U= u(t=t) u(t + 1=t)    u(t + Nu 1=t)
y empleando la e ua ion (6.28), podemos es ribir:
Y=Y  + GU (6.31)
donde:
Y = [y(t + N1 =t) : : : y(t + N2 =t)℄T ; U = [u(t=t) : : : u(t + Nu 1=t)℄T
 = [ylibre (t + N1 =t) : : : ylibre(t + N2 =t)℄T ; R = [r(t + N1 =t) : : : r(t + N2 =t)℄T
Y
Ejemplo 6.3
Determinar la respuesta libre y los oe ientes gk de la respuesta al es alon
para el pro eso servomotor D.C. des rito en el ejemplo 6.1.
Solu ion: La e ua ion de diferen ias del pro eso es:
y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2)
Cuando la entrada es u(k) = 1 para todo k  0, enton es y(k) = g(k) para
todo k  0. Luego, los oe ientes g(k) se determinan de:
g(k) = a1 g(k 1) a2 g(k 2) + b1 u(k 1) + b2 u(k 2)
As podemos obtener que g(0) = 0, g(1) = b1 , g(2) = a1b1 + b1 + b2 , y:
g(k) = a1 g(k 1) a2 g(k 2) + b1 + b2 ; k3
La ondi ion para respuesta libre es que:
u(t=t) = u(t + 1=t) =    = u(t + N2 =t) = u(t 1)
Apli ando tal ondi ion en la e ua ion de diferen ias del pro eso, determi-
namos la respuesta libre ylibre omo sigue:
ylibre(t + 1) = a1 ylibre(t) a2 ylibre (t 1) + (b1 + b2 )u(t 1)
6.5 El Controlador Predi tivo 301

6.5.3 La Ley de Control


Con la nota ion anterior, la fun ion de osto (e ua ion (6.24)) resulta:
(R Y)T (R Y)+UT U = [(R Y ) GU℄T [(R Y ) GU℄+UT U (6.32)
la ual es una forma uadrati a en U, uya minimiza ion por diferen ia ion
resulta en la siguiente solu ion optima:
U = (GT G + I ) 1 GT (R Y) (6.33)
Es importante indi ar que:
 Solamente el primer elemento u(t=t) de U es ne esario para om-
putar la entrada de ontrol a tual u(t) = u(t 1)+u(t=t). El mismo
pro edimiento se repite para la nueva medi ion y(t + 1) en el proximo
instante de tiempo t + 1. Este pro edimiento se denomina el prin ipio
del \horizonte retroa tivo".
 La matriz [GT G + I ℄ a ser invertida tiene dimension Nu  Nu. Para el
aso por defe to, es de ir, para Nu = 1, se obtiene una ley de ontrol
es alar ( on muy buenos resultados en mu hos asos pra ti os) de la
forma:
PN2
u(t) = k=N1 gk [rP (t + k=t) ylibre(t + k=t)℄
N2 g 2 +  (6.34)
k=N1 k

 Otra aproxima ion para la estru tura ion del es enario de ontrol on-
siste en el empleo de fun iones base de la forma:
X
u(t + k=t) = i Bi (6.35)
i
La optimiza ion de la se~nal de ontrol u(t + k=t) es ahora on respe to
a los parametros i.
El ontrol predi tivo muestra diferentes propiedades dependiendo de la
sele ion de N1 , N2 y Nu. Por ejemplo:
 Si N1 = n, N2 = 2n 1, Nu = n y  = 0, la salida enton es al anza la
referen ia despues de n muestras y se mantiene en este estado, propor-
ionando una vigorosa a ion de ontrol. Este aso es muy apropiada
para apli a iones que requieran alto rendimiento, omo en la roboti a.
302 Control Predi tivo

 Si es ogemos N1 = Nu = 1, N2 = 1 y  = 0, obtendremos una


respuesta transitoria de la variable ontrolada, ara terizada por un
tiempo de subida rapido y un tiempo de estabiliza ion lento. Este
he ho es relevante en el ontrol de pro esos industriales.
La Ley de Control on Restri iones
El problema de ontrol presentado en la subse ion anterior fue formulado
bajo ondi iones de ontrol sin restri iones; es de ir, onsiderando que todas
las se~nales poseen rango ilimitado. Sin embargo, esto no es realista. En la
pra ti a, todos los pro esos estan sujetos a restri iones. Por ejemplo, en el
aso de un servosistema no lineal, si la se~nal de ontrol u(t) es demasiado
grande, enton es el ampli ador del voltaje de armadura se puede saturar
produ iendose su deterioro.
En presen ia de restri iones no es posible la solu ion analti a del pro-
blema de minimiza ion, debiendo re urrirse a dos posibles solu iones. La
primera solu ion es tratar a todas las variables omo si no tuvieran restri -
iones. Posteriormente, onforme a rangos previamente espe i ados (las
restri iones), pro eder mediante software, on el orte o la limita ion de
las magnitudes de las variables on restri iones. La otra solu ion requiere
el empleo de te ni as numeri as, tales omo la programa ion uadrati a.
Nosotros no trataremos esta alternativa.
Ejemplo 6.4
Determinar la matriz dinami a de ontrol para el pro eso del ejemplo 6.1
empleando los datos siguientes: N1 = 7, N2 = 12, Nu = 6.
% ejem6_4.m SOLUCION DEL EJEMPLO 6.4
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.02
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE TERCER ORDEN
6.6 Pro edimiento de Dise~no 303

% A = [0 1 0;-N/M -B/M n*K/M;0 -n*E/L -RR/L℄;


% B = [0;0;Ka t/L℄;
% C = [1 0 0℄; D = [0℄;
% MODELO LINEAL CONTINUO DE SEGUNDO ORDEN DEL PROCESO
A = [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B = [0;n*K*Ka t/(RR*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % periodo de muestreo
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
N1 = 6; N2 =12; Nu =7; % HORIZONTE DE CONTROL
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:12
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
% LUEGO, LA MATRIZ G TIENE LA FORMA:
G = [g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5) 0
g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5)
g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4)
g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3)
g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2)
g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1)
g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5) g(N2-Nu+1)℄;

6.6 Pro edimiento de Dise~


no
El pro edimiento para dise~nar un sistema de ontrol predi tivo basado en
modelos, empleando la matriz dinami a de ontrol es:
1) Formular el problema (de nir las espe i a iones de dise~no).
2) Determinar el modelo CARIMA del pro eso (subse ion 6.3).
3) Cal ular la respuesta libre del pro eso (subse ion 6.5.2).
4) Cal ular la respuesta del pro eso al es alon (subse ion 6.5.2).
5) Determinar la ley de ontrol (subse ion 6.5.3).
6) Simular el sistema de ontrol predi tivo, in luyendo las restri iones.
304 Control Predi tivo

7) Implementar el hardware.
8) Implementar el software de ontrol.
9) Realizar pruebas de fun ionamiento (resultados experimentales).
6.7 Control de Posi ion de un Servomotor
6.7.1 Formula ion del Problema
El servomotor D.C. on arga no lineal (dis utido ampliamente en la se ion
3.3) es un pro eso de una entrada y una salida que puede ser ontrolado por
el voltaje de armadura. La arga no lineal es una varilla metali a a oplada al
eje del servomotor, a manera de un brazo roboti o de un grado de libertad.
En el extremo de la varilla se pueden a oplar argas adi ionales. El objetivo
de ontrol es dise~nar e implementar un sistema de ontrol predi tivo basado
en modelos, empleando una ley de ontrol es alar dinami a, de modo tal que
la varilla se posi ione en una referen ia predeterminada. El sobreimpulso
de la respuesta debe ser mnimo, no obstante la presen ia de la arga no
lineal y de las no linealidades del pro eso omo son las fri iones estati a y
de Coulomb, y la satura ion en el ampli ador del servomotor.
Modelo del Pro eso
La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La tabla
3.2 des ribe las variables y los valores de sus parametros. Asumiendo que la
se~nal de ontrol u esta ompensada por las no linealidades y despre iando
la indu tan ia L del servomotor, el pro eso no lineal puede ser des rito
mediante el siguiente modelo lineal (subse ion 3.3.5):
x_ = A x + B u; y = C x
   
A =
0 1 2E ; B = KnK
0 ; 
C = 1 0

N
M ( M + MR )
B Kn
MR
a t

2
M = Jeff + ML2o + MRo2 + mL2o );
1 N = gLo (M + )
m
5 3 2
2
Jeff = n Jm + JL ; 2
B = n bm + bL
La fun ion de transferen ia Gp(s) del pro eso puede determinarse de:
y(s)
Gp (s) =
u(s)
= C [sI A ℄ 1B
6.7 Control de Posi ion de un Servomotor 305

mientras que la fun ion de transferen ia de pulso Gp(z) se determina de:


 
y(z ) 1 Gp (s)
Gp (z ) = = (1 z )Z s
u(z )
donde Z [:℄ es la opera ion transformada Z . Di ha fun ion de transferen ia
depende del tiempo de muestreo T y posee la estru tura siguiente:
y(z ) b1 z + b2 b1 z 1 + b2 z 2 B (z 1 )
Gp (z ) = = = =
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 )
que onstituye el modelo CARIMA del pro eso, on
A(z 1 ) = 1 + a1 z 1 + a2 z 2 ; B (z 1 ) = b1 z 1 + b2 z 2
Su orrespondiente e ua ion de diferen ias es:
y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2)
Con Mo = 0 (varilla sin arga adi ional), los parametros poseen los valores
siguientes: a1=-1.9614 , a2 =0.9614 , b1 =0.0044 y b2 =0.0043 .
6.7.2 Respuesta Libre del Pro eso
La expresion para determinar la respuesta libre del pro eso en uestion se de-
termino en el ejemplo 6.3. El siguiente programa determina re ursivamente
la traye toria deseada W (t), la traye toria de referen ia r(t) y la respuesta
libre ylibre. Por simpli idad, emplearemos la nota ion: yf = ylibre.
% CONDICIONES Y PARAMETROS INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; % yf: RESPUESTA LIBRE
r(1) =0; r(2) =0; r(3)=0; % r : REFERENCIA
alf = 0.01; fre = 0.0063; GW = 1;
MM = 1000; n1=1; n2=20;
% REFERENCIA, SALIDA LIBRE Y RESPUESTAS AL ESCALON
for t = 3:MM+2
for k = n1:n2
W(t+k) = GW*sign(sin(fre *(t))); % TRAYECTORIA DESEADA
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = - a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end
end
306 Control Predi tivo

6.7.3 Respuesta del Pro eso al Es alon


La expresion para determinar los oe ientes de la respuesta al es alon del
pro eso en uestion, se determino en el ejemplo 6.3. En odigo MATLAB el
al ulo se efe tua omo sigue:
N1 = 6; N2 = 12; % HORIZONTE DE CONTROL
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end

6.7.4 La Ley de Control


La ley de ontrol a emplear es del tipo es alar (Nu = 1) on N1 = 1 y
N2 = 12. La forma de la ley de ontrol es:
PN2
u = k=N1 g(k)[Pr(Nt2+ k=t2 ) ylibre(t + k=t)℄
k=N1 g (k ) + 

6.7.5 Simula ion del Sistema de Control Predi tivo


Primera Simula ion
El programa dispred1.m simula el sistema de ontrol predi tivo empleando la
ley de ontrol des rita en la subse ion 6.7.4 y un modelo lineal de segundo
orden del pro eso. La arga no lineal a posi ionar es maxima. Se esta
empleando restri ion en la fuerza de ontrol para evitar la satura ion del
ampli ador de poten ia. El resultado de esta simula ion se muestra en la
gura 6.11.
% dispred1.m PRIMERA SIMULACION DEL SISTEMA DE CONTROL PREDICTIVO
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.020
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
6.7 Control de Posi ion de un Servomotor 307

N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B = [0;n*K*Ka t/(RR*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% HORIZONTES
N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
% CONDICIONES INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0;
u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0;
q(1) =0; q(2) =0; q(3) =0;
alf = 0.01; lambda = 0.; fre = 0.0063; GW = 1;
MM = 2000;
% LAZO DE CONTROL
for t = 2:MM+2
for k = 1:N2
W(t+k) = GW*sign(sin(fre *(t)));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end % yf: RESPUESTA LIBRE
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ...
g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ...
g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ...
g(9)*(r(t+9)-yf(t+9))+ g(10)*(r(t+10)-yf(t+10)) + ...
g(11)*(r(t+11)-yf(t+11))+ g(12)*(r(t+12)-yf(t+12)))/...
(g(1)^2 + g(2)^2 + g(3)^2+ g(4)^2 + g(5)^2 + ...
g(6)^2 + g(7)^2 + g(8)^2+ g(9)^2 + g(10)^2 + ...
g(11)^2 + g(12)^2 + lambda);
u(t) = u(t-1) + du(t); % LEY DE CONTROL ACTUAL
% LIMITANDO LA FUERZA DE CONTROL
308 Control Predi tivo

fu = 1.4;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
% PROCESO LINEAL
q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);
end
% GRAFICOS
ejex = (3:MM); ejex = ejex*T;
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,q(3:MM)); grid
ylabel('Posi ion q(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Control u(t) (voltios)')
xlabel('Tiempo en segundos')
print -f -deps dispred1

2
Posición q(t) (rad)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

2
Control u(t) (voltios)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 6.11: Primera simula ion del sistema de ontrol predi tivo. La arga
no lineal es maxima.
6.7 Control de Posi ion de un Servomotor 309

Segunda Simula ion


El programa dispred3.m tambien simula el sistema de ontrol predi tivo
empleando la ley de ontrol des rita en la subse ion 6.7.4 y un modelo
no lineal de segundo orden del pro eso. La arga no lineal a posi ionar es
maxima. En esta simula ion se emplea restri ion en la fuerza de ontrol
dise~nada para no saturar el ampli ador de poten ia. Tambien se emplea
ompensa ion para minimizar el efe to de la fuerza de fri ion de Coulomb
en la se~nal de ontrol y restri ion del tipo y(t) = r(t) (la salida iguala a
la referen ia). El resultado de esta simula ion se muestra en la gura 6.12.
Notar que la fuerza de ontrol generada no sobrepasa el rango de  1:4 volts,
por lo que su implementa ion no va a saturar al ampli ador de poten ia a
emplear. Esta es la on gura ion que se va a implementar.
% dispred3.m
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.020
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B = [0;n*K*Ka t/(RR*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% HORIZONTES
N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
310 Control Predi tivo

% CONDICIONES INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0;
u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0;
q(1) =0; q(2) =0; q(3) =0;
alf = 0.01; lambda = 0.; fre = 0.0063; GW = 1;
MM = 2000;
% BUCLE DE CONTROL *********************************
for t = 2:MM+2
% REFERENCIAS, SALIDA LIBRE Y RESPUESTAS AL ESCALON
for k = 1:N2
W(t+k) = GW*sign(sin(fre *(t)));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) =-a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end % yf: RESPUESTA LIBRE
% RESTRICCION A LA SALIDA
q(t) = r(t);
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ...
g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ...
g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ...
g(9)*(r(t+9)-yf(t+9))+g(10)*(r(t+10)-yf(t+10)) + ...
g(11)*(r(t+11)-yf(t+11))+g(12)*(r(t+12)-yf(t+12)))/...
(g(1)^2 + g(2)^2 + g(3)^2+g(4)^2 + g(5)^2 + ...
g(6)^2 + g(7)^2 + g(8)^2+g(9)^2 + g(10)^2 + ...
g(11)^2 + g(12)^2 + lambda);
u(t) = u(t-1) + du(t); % ley de ontrol a tual
% COMPENSANDO LA FRICCION DE COULOMB
TN = *sign(w(t)); % TORQUE DE FRICCION DE COULOMB
if(w(t) > 0)
u(t) = u(t) + (RR/(n*K*Ka t))*TN;
elseif(w(t) < 0)
u(t) = u(t) - (RR/(n*K*Ka t))*TN;
end
% LIMITANDO LA FUERZA DE CONTROL
fu = 1.4;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
% MODELO NO LINEAL DISCRETIZADO DEL PROCESO DE SEGUNDO ORDEN
q(t+1) = q(t) + T*w(t);
6.7 Control de Posi ion de un Servomotor 311

w(t+1) = w(t) + T*( - (N/M)*sin(q(t)) ...


- (B/M + n^2*K*E/(M*RR))*w(t) ...
- (1/M)*TN + (n*K*Ka t/(M*RR))*u(t) );
end
% GRAFICOS
ejex = (3:MM); ejex = ejex*T;
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,q(3:MM)); grid
ylabel('Posi ion q(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Control u(t) (voltios)')
xlabel('Tiempo en segundos')
print -f -deps dispred3

1
Posición q(t) (rad)

0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

2
Control u(t) (voltios)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 6.12: Segunda simula ion del sistema de ontrol predi tivo. La arga
no lineal es maxima.

6.7.6 Implementa ion del Hardware


El hardware empleado en la implementa ion en tiempo real del sistema de
ontrol predi tivo es similar al empleado para la implementa ion en tiempo
312 Control Predi tivo

real de los sistemas de ontrol adaptivo, robusto y no lineal. Di ho hardware


se des ribe en detalle en la subse ion 5.6.8.
6.7.7 El Software de Control
El software usado para la implementa ion del algoritmo de ontrol de posi-
ion emplea el lenguaje C y se eje uta en una PC Pentium. Los progra-
mas ne esarios para el ontrol se estru turan en tres ar hivos es ritos en C:
R1LLIB.H, R1LLIB.CPP y PREDI4.CPP. El ar hivo PREDI4.CPP es el
que ontiene el algoritmo de ontrol.
La realiza ion de ar hivos eje utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la rea ion
de un proye to denominado PREDI4.PRJ, en el ual intervienen los ar hivos
men ionados en el parrafo anterior.
Diagrama de Flujo del Software de Control
El diagrama de ujo del software de ontrol se muestra en la gura 6.13.
Notar que tal diagrama omprende los pasos siguientes, para:
1. Ini ializar la tarjeta de adquisi ion de datos Lab P C + y las variables
utilizadas en el programa.
2. Dete tar el an o de subida del pulso de reloj ( lo k) y leer el primer
dato de la posi ion (posi ion ini ial) para ini iar el algoritmo de on-
trol.
3. Comprobar que la variable k sea menor que el numero de puntos n. La
variable n junto on la fre uen ia de muestreo determinan el tiempo
de dura ion del experimento.
4. Dete tar el an o de subida del pulso de reloj para ini iar un perodo
de adquisi ion de datos y de ontrol. Leer la posi ion y y apli ar las
restri iones; luego estimar la velo idad a partir de la posi ion.
5. Cal ular la se~nal de ontrol u, ompensar las fri iones estati a y de
Coulomb (se~nal v), apli ar restri iones a la se~nal de ontrol, y luego
enviar la se~nal u = u + v+o set por el DAC0 de la tarjeta Lab-PC+
al generador PWM. El valor del o set es 2.3 volt.
6. A tualizar las variables y repetir el lazo de ontrol hasta que k = n.
6.7 Control de Posi ion de un Servomotor 313

INICIO

INICIALIZACION DE VARIABLES
INICIALIZACION DE LA TARJETA LabPC+

DETECTAR FLANCO
DE SUBIDA

LEER POSICION INICIAL P0

NO
k MENOR QUE n FIN

SI

DETECTAR FLANCO
DE SUBIDA NO
SI

LEER POSICION Pk
CALCULAR POSICION Y VELOCIDAD
APLICAR RESTRICCIONES EN Pk

~ DE CONTROL
GENERAR SENAL
GENERAR SALIDA COMPENSADA
~
RESTRINGIR LA SENAL DE CONTROL
~
ENVIAR LA SENAL COMPENSADA
ACTUALIZAR VARIABLES

Figura 6.13: Diagrama de ujo del algoritmo de ontrol.


314 Control Predi tivo

El Programa Prin ipal


El programa prin ipal (programa PREDI4.CPP) realiza lo siguiente:
1. De lara ion de los ar hivos de abe era: r1llib.h (librera de fun iones),
stdio.h (E/S estandar), math.h (manejo de fun iones matemati as),
asserth.h (de lara ion de ma ros de depura ion), allo .h (asigna ion
dinami a de memoria) y onio.h (fun iones de onsola y puertos E/S)
2. De lara ion de las onstantes globales.
3. De ni ion de las fun iones propias del programa: Ini ializa Sistema,
Mide V ariables y Apli a Control
4. De lara ion de las variables globales.
5. De ni ion de la fun ion prin ipal main.
Las Fun iones Propias del Software de Control
A ontinua ion se des riben las fun iones propias del software de ontrol.
 Ini ializa Sistema: permite la ini ializa ion de los parametros y va-
riables globales. Luego, ini ializa la tarjeta de adquisi ion de datos
Lab-PC+ por medio de la fun ion ConfigurarHardware. Enseguida
enva la tension de o set al puerto de salida analogi a por medio de la
fun ion EnviarV oltage (si ), para asegurar la posi ion ini ial de re-
poso del motor (posi ion verti al) y nalmente, lee la posi ion ini ial
p0 del motor.
 Mide V ariables: espe i a la se~nal de referen ia onsiderada. Luego
mide la posi ion a tual del motor (posi ion de la varilla) y la velo idad
(en fun ion de la posi ion), a tualiza los estados de las variables y, w,
r y e, y apli a restri iones a la salida.
 Apli a Control: ompensa las fri iones estati a y de Coulomb y apli-
a restri iones a la se~nal de entrada u. Luego, enva un voltaje equi-
valente a la suma de la se~nal de ontrol u ( on restri ion), mas la
se~nal de ompensa ion v, mas la se~nal del o set (2.3 volt).
La fun ion prin ipal main posee una estru tura ade uada para:
6.7 Control de Posi ion de un Servomotor 315

 La de lara ion y de ni ion de variables lo ales.


 El llamado a la fun ion Ini ializa Sistema.
 El llamado a la ma ro de depura ion.
 La asigna ion de memoria dinami a que permita alma enar los datos
para las variables: u, w, y y r en el pro eso de eje u ion del proye to.
 Eje utar el lazo de ontrol del programa desde k = 0 hasta k = n,
donde n es un entero que indi a el maximo numero de muestras usado
en la eje u ion del proye to. Dentro del lazo de ontrol se de ne la
eje u ion de la fun ion Mide V ariables en ada an o de subida del
pulso de reloj. Luego se genera la se~nal de ontrol u y se enva a la
salida del DAC0 la tension ordenada por la fun ion Apli a Control.
Los valores para y, w, u y r se guardan en memoria. Posteriormente
se in rementan k y t, se visualizan en pantalla los valores instantaneos
de t, y, w, u y e, y se a tualiza el pulso de reloj siempre que k  n.
 Al nalizar el tiempo de eje u ion, enviar un voltaje de o set ne esario
para detener el motor en su posi ion de reposo.
 La obten ion de gra os basados en datos alma enados durante el
tiempo de eje u ion, abriendo el ar hivo de salida PREDI4.OUT.
Los Programas Fuente
La traye toria deseada w onsiderada en este programa, onsiste en in o
niveles de 20 segundos de dura ion por nivel. Esos niveles, en orden de
eje u ion, son: 30o (=6), 45o (=4), 60o (=3), 37:5o (5=24) y 30o (=6).
/* PREDI4.CPP *********** programa prin ipal *********/
#in lude "r1llib.h"
#in lude <stdio.h>
#in lude <math.h>
#in lude<assert.h>
#in lude <allo .h>
#in lude < onio.h>
onst float ESCALA = 2.*M_PI/(512.*19.7);
onst float niv1 = 1.*M_PI/6.;
onst float niv2 = 5.*M_PI/24.;
onst float niv3 = 1.*M_PI/4.;
onst float niv4 = 1.*M_PI/3.;
316 Control Predi tivo

/* De lara ion de las fun iones propias del programa */


void Ini ializa_Sistema();
void Mide_Variables(float *yk, float *w, float *r, float *vel,
float t);
float Apli a_Control(float u, float ykp);

/* De lara ion de las variables globales */


float a1, a2, b1, b2, g0, landa, alfa, N;
float y, yant, r, w, rant, es;
float T, t, tsimul;
float Fs;
int p0, pk;
float V FC, V FE, Wth, Ofst;
float eant, eantant, e;
float uant, uantant;

/********************** FUNCIONES ***************/


float Apli a_Control(float u, float ykp)
{
float v;
if(fabs(ykp)<=Wth)
{
if(u<0.) v = -V FE;
if(u>0.) v = V FE;
}
else
{
if(u<0.) v = -V FC;
if(u>0.) v = V FC;
}
if(u + v < -1.5) u = -1.5;
else if(u + v > 1.4) u = 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}

void Ini ializa_Sistema()


{
/* Con Varilla*/
a1 = -1.9614; a2 = .9631;
b1 = .0044; b2 = .0043;
/* Sin Varilla */
6.7 Control de Posi ion de un Servomotor 317

//a1 = -1.6246; a2 = .6246;


//b1 = .0479; b2 = .0410;
/* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V FE = .2; V FC = .15;
Wth = .1; Ofst = 2.3;
Fs = 100.; T = 1./Fs;
tsimul= 100.;
/* PARAMETROS DEL SISTEMA DE CONTROL PREDICTIVO*/
q0 = 114.9425;
landa = 0.942; alfa = 0.01;
/* INICIALIZACION DE LAS VARIABLES */
yant = 0.; y = 0.;
eant = 0.; eantant = 0.;
rant = 0.; e = 0.;
uant = 0.; uantant = 0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi ion();
}
void Mide_Variables
(float *y, float *w, float *r, float *vel, float t)
{
/* Definiendo el setpoint: w= w(t)*/
if((0. <= t && t < 20.) || (80. <= t && t <= 100.)) *w = niv1;
else if(20. <= t && t < 40.) *w = niv3;
else if(40. <= t && t < 60.) *w = niv4;
else if(60. <= t && t < 80.)
*w=niv2;
/* definiendo la referen ia: r=r(t) */
*r = alfa*rant + (1-alfa)*(*w);
/* Ahora leo la posi i\'on */
pk = LeerPosi ion();
*y = yant + ((float)(abs(pk-p0) > 8000 ? 0:pk-p0))*ESCALA;
p0 = pk;
/* A tualizamos los estados */
yant =* y; rant =* r; eantant = eant; eant = e;
/* Restri iones en la salida */
if(*y < 0.0) *y = 0.0;
else if(*y > 1.0*(*r)) *y = 1.0*(*r);
/* Y el error */
e = *r - *y;
/* El error de seguimiento */
es = *w - *y;
318 Control Predi tivo

/* Y la velo idad angular */


*vel = (5.*(*y - yant) + *vel)/(1. + 5.*T);
}
void main()
{
int ant = 0, a t = 0, k, n;
FILE *out;
float *yb, *ub, *wb, *rb, vel, y, u, w, r;
float yant;
Ini ializa_Sistema();
lrs r();
assert(tsimul < 120);
N = tsimul/T;
n = (int)N;
t = vel = 0.;
assert(NULL!=(ub= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(yb= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(wb= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(rb= (float *) allo (n/5,sizeof(float))));
for(k = 0; k < n;)
{
a t = NivelClo k();
if ((ant == 0)&&(a t == 1))
{
Mide_Variables(&y, &w, &r, &vel, t);
/* Se~nal de Control */
//u = q0*(b1*uant + b2*uantant + e + a1*eant + a2*eantant);
u=(landa+q0*b1*(1-landa))*uant+q0*(1-landa)
*(b2*uantant + e + a1*eant + a2*eantant);
uantant = uant; uant=u;
u = Apli a_Control(u, vel);
if(!(k%5))
{
yb[k/5℄ = y*180./M_PI; wb[k/5℄ = w*180./M_PI;
rb[k/5℄ = r*180./M_PI; ub[k/5℄ = u;
}
k++;
t+=T;
gotoxy(15,5); printf("*****************************************");
gotoxy(18,7); printf("Control Predi tivo de un Servomotor D.C.");
gotoxy(15,9); printf("*****************************************");
gotoxy(21,11);printf("tiempo: t=%+5.3f",t);
gotoxy(21,13);printf("setpoint: w=%+5.3f",w*180./M_PI);
6.7 Control de Posi ion de un Servomotor 319

gotoxy(21,15);printf("se~nal de refer.: r=%+5.3f",r*180./M_PI);


gotoxy(21,17);printf("se~nal de ontrol: u=%+5.3f",u);
gotoxy(21,19);printf("posi ion angular: y=%+5.3f",y*180./M_PI);
gotoxy(21,21);printf("error de posi ion: e=%+5.3f",e*180./M_PI);
gotoxy(21,23);printf("error seguimiento: es=%+5.3f",es*180./M_PI);
gotoxy(15,25);printf("*****************************************");
if(kbhit()) if(get h() == 27) break;
}
ant = a t;
}
EnviarVoltage(Ofst);
out=fopen("predi4.out","wt");
for (int i = 0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f %10f\n",
i*5*T, wb[i℄, rb[i℄, yb[i℄, ub[i℄, wb[i℄-yb[i℄);
delete wb, rb, yb, ub;
f lose(out);
}

/* R1LLIB.H ****************************************************
* Ar hivo de de lara iones de fun iones definidas en R1LLIB.CPP
* Estas fun iones permiten fa ilitar el manejo de la tarjeta de
* Adquisi ion Lab-PC+: Digital input (16 bits), Analog Output,
* Timer generator, Polling. Tambien usa fun iones de le to/
* es ritura de registros (inportb, outport).
*/

#if !defined (__R1LLIB_H_PRY)


#define __R1LLIB_H_PRY

// Configura ion de Lab-PC+ (digital in, polling, analog out, timer)


void ConfigurarHardware (unsigned, unsigned, unsigned, unsigned,int);

// Salida de Voltage por R1LAOPort


void EnviarVoltage(float);

// Leer Posi ion (16 bits leidos por R1LLSBPort y R1LMSBPort)


unsigned int LeerPosi ion();

// Leer Nivel del lo k (polling). Devuelve 0 o 1


int NivelClo k ();
#endif
320 Control Predi tivo

/* R1LLIB.CPP **************************************************
* Ar hivo de defini iones de fun iones de laradas en R1LLIB.H
* Estas fun iones permiten fa ilitar el manejo de la tarjeta de
* Adquisi ion Lab-PC+: Digital input (16 bits), Analog Output,
* Timer generator, Polling. Tambien emplea fun iones de
* le to/es ritura de registros (inportb, outport).
*/

#in lude "r1llib.h"


#in lude "nidaq.h" // Libreria de Programas
#in lude <dos.h>
//
stati unsigned R1LLSBPort; // dire ion puerto dig. de entrada
stati unsigned R1LMSBPort; // dire ion puerto dig. de ontrol
stati unsigned R1LPollPort; // dire ion puerto dig. de polling
stati unsigned R1LAOPort; // dire ion de la salida analogi a
stati int R1LFS; // fre uen ia de muestreo en Hertz
//
void ConfigurarHardware (unsigned pollPort, unsigned lPort,
unsigned hPort, unsigned salPort, int fre )
{
int uentaTimer, devi eCode;
uentaTimer = (int)(2000000/fre );
R1LPollPort = pollPort;
R1LLSBPort = lPort;
R1LMSBPort = hPort;
R1LAOPort = salPort;
R1LFS = fre ;
USE_LAB();
Init_DA_Brds(1,&devi eCode);
ICTR_Setup(1,0,3, uentaTimer,1); // lo k de muestreo = timer0
DIG_Prt_Config(1,(int)(pollPort - 0x270),0,0);
DIG_Prt_Config(1,(int)(lPort-0x270),0,0);
DIG_Prt_Config(1,(int)(hPort-0x270),0,0);
}

void EnviarVoltage (float u)


{
unsigned salidaDigital;
salidaDigital = (unsigned) (409.5*u-0.5);
outport(R1LAOPort,salidaDigital);
6.7 Control de Posi ion de un Servomotor 321

unsigned int LeerPosi ion()


{
unsigned har o t1,o t2;
o t1 = inportb(R1LLSBPort);
o t2 = inportb(R1LMSBPort);
return (255*o t2+o t1);
}

int NivelClo k ()
{
unsigned har bytePoll;
bytePoll = inportb (R1LPollPort);
return (bytePoll&1);
}

6.7.8 Resultados Experimentales


En esta subse ion se presentan los resultados experimentales del sistema
de ontrol para posi ionar el angulo de salida del servomotor D.C., sujeto
a argas no lineales, empleando restri iones tanto en la fuerza de ontrol
omo en la salida. Para los asos presentados, la traye toria deseada es
una urva dis ontinua es alonada. Las respuestas ontroladas (en lneas de
trazo) se muestran en las guras 6.14, 6.15, 6.16 y 6.17
De a uerdo a la se ion 3.3, la iner ia total de la arga no lineal es:
1 2
JT = JL + mL2o + Mo L2o + Mo Ro2 = J + Mo Ro2
2
3 5 5
donde J es la iner ia total originada por la varilla (sin arga adi ional). Los
otros parametros se detallan en la tabla 3.2. Podemos notar que variando
la arga adi ional (la esfera de radio Ro y masa Mo ), variamos tambien la
arga total. Esto es lo que haremos en las experien ias. Para todos los asos,
se ha onsiderado un fa tor de ltraje = 0:01.
La gura 6.14 muestra el aso sin arga adi ional; es de ir, on una arga
iner ial total JT = J . La gura 6.15 orresponde a la respuesta ontrolada
uando se in rementa la iner ia de la arga no lineal en 42 % (es de ir,
uando JT = 1:42J ), mientras que las guras 6.16 y 6.17 muestran las urvas
de respuesta ontrolada para los asos uando JT = 1:84J y JT = 2:98J ,
respe tivamente. En todos los asos se umplen las espe i a iones de dise~no
(ver la subse ion 6.7.1).
322 Control Predi tivo

Rpta. a escalones variantes para una carga J


70

60
− −:y

− :w
50
Posición (grados)

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.14: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = J kg-m2 .
Rpta. a escalones variantes para 1.42J
70

60
− −:y

− :w
50
Posición (grados)

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.15: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:42J kg-m2.
6.7 Control de Posi ion de un Servomotor 323

Rpta. a escalones variantes para 1.84J


70

60
− −:y

− :w
50
Posición (grados)

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.16: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:84J kg-m2 .
Rpta. a escalones variantes para 2.98J
70

60
− −:y

− :w
50
u(t):voltios

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.17: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 2:98J kg-m2 .
324 Control Predi tivo

6.8 Problemas Resueltos


En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los
problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB. La sele ion del tiempo de muestreo para
ada problema es a onvenien ia del dise~no.
Problema 6.1
El problema 3.2 presenta las e ua iones que gobiernan la dinami a longitudi-
nal de un avion omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion  del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol es enton es
dise~nar un autopiloto que manipulando el angulo Æe del de e tor de ele-
va ion, ontrole el angulo de in lina ion del avion. Dise~nar un sistema de
ontrol predi tivo que genere una fuerza de ontrol es alar, de modo que
la salida del pro eso (el angulo de in lina ion ) presente un sobreimpulso
menor al 5 %, un tiempo de estabiliza ion menor que 10 s y error en estado
estable nulo. Asumir 1 rad de entrada de referen ia.
Solu ion: Ver el programa p4pred1.m.
% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION
% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR
lear all
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO
num =[0 1.151 0.1774℄;
den =[1 0.739 0.921 0℄;
A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0℄;
B=[0.232; 0.0203; 0℄; C=[0 0 1℄; D=[0℄;
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO DISCRETO
tm=1.25; % TIEMPO DE MUESTREO
[numd,dend℄= 2dm(num ,den ,tm,'zoh');
[G,H℄= 2d(A,B,tm);
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;
6.8 Problemas Resueltos 325

end
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda=0; MM = 500;
% LAZO DE CONTROL
for t=4:MM+3;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1) - yf(t+1)) + g(6)*(r(t+6) - yf(t+6)) + ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ...
g(5)*(r(t+5) - yf(t+5)) + g(10)*(r(t+10) - yf(t+10)) )/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% MODELO DEL PROCESO EN SU FORMA CARIMA
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa e(0,MM*tm,MM-3);
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel('y: In lina ion (rad) ')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
xlabel('TIEMPO : SEG')
ylabel('u: Angulo del defle tor (rad)')
print -deps -f p4pred1

Problema 6.2
Para el pro eso del problema 6.2, dise~nar un sistema de ontrol predi tivo
que genere una matriz dinami a de ontrol, de modo tal que el angulo de
in lina ion del avion siga una traye toria arbitraria, pero predeterminada.
326 Control Predi tivo

y: Inclinación (rad)
1

−1

−2
0 100 200 300 400 500 600 700

2
u: Angulo del deflector (rad)

−1

−2
0 100 200 300 400 500 600 700
TIEMPO : SEG

Figura 6.18: A ngulo de in lina ion  y se~nal de ontrol (angulo del de e tor)
orrespondientes al problema 6.1.
Solu ion: Ver el programa p4pred2.m.
% p4pred2.m SOLUCION DEL PROBLEMA 6.2: CONTROL DE LA INCLINACION
% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIAL
lear all
% FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTA
num =[0 1.151 0.1774℄;
den =[1 0.739 0.921 0℄;
A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0℄;
B=[0.232; 0.0203; 0℄; C=[0 0 1℄; D=[0℄;
% FUNCION DE TRANSFERENCIA DISCRETA DE LA PLANTA
tm=2.2; % TIEMPO DE MUESTREO
[numd,dend℄= 2dm(num ,den ,tm,'zoh');
[G,H℄= 2d(A,B,tm);
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =5;
6.8 Problemas Resueltos 327

% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;
end
% MATRIZ GANANCIA DE RESPUESTA AL ESCALON
GG=[g(1) 0 0 0 0
g(2) g(1) 0 0 0
g(3) g(2) g(1) 0 0
g(4) g(3) g(2) g(1) 0
g(5) g(4) g(3) g(2) g(1)
g(6) g(5) g(4) g(3) g(2)
g(7) g(6) g(5) g(4) g(3)
g(8) g(7) g(6) g(5) g(4)
g(9) g(8) g(7) g(6) g(5)
g(10) g(9) g(8) g(7) g(6)℄;
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0.98; MM = 500; du(1)=0;
I=eye(5,5); % MATRIZ IDENTIDAD
% LAZO DE CONTROL
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= sin(0.05*t)+0.005*t;
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% MATRIZ R DE SE~NALES r
R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) r(t+6)...
r(t+7) r(t+8) r(t+9) r(t+10)℄';
% MATRIZ DE RESPUESTA LIBRE YF
YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) yf(t+6)...
yf(t+7) yf(t+8) yf(t+9) yf(t+10)℄';
% LEY DE CONTROL
U=inv(GG'*GG+lambda*I)*GG'*(R-YF);
du=U(1);
u(t) = u(t-1) + du;
% PROCESO
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
328 Control Predi tivo

+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL BUCLE DE CONTROL
% GRAFICOS
ejex=(4:MM); ejex=ejex*tm;
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)), grid
ylabel('y: In lina ion (rad) ')
subplot(2,1,2)
plot(ejex,u(4:MM)), grid
xlabel('TIEMPO : SEG')
ylabel('u: Angulo del defle tor (rad)')
print -deps -f p4pred2

3
y: Inclinación (rad)

−1
0 200 400 600 800 1000 1200

0.3
u: Angulo del deflector (rad)

0.2

0.1

−0.1

−0.2
0 200 400 600 800 1000 1200
TIEMPO : SEG

Figura 6.19: A ngulo de in lina ion  y se~nal de ontrol (angulo del de e tor)
orrespondientes al problema 6.2.
Problema 6.3
La gura 3.20 muestra el pro eso monorriel de dos arros des rito en el
problema 3.5. El problema a resolver es el ontrol de velo idad del arro de
6.8 Problemas Resueltos 329

maquinas mediante un sistema de ontrol predi tivo on fuerza de ontrol


es alar. Para garantizar a los pasajeros un viaje onfortable, los ambios de
velo idad deben realizarse on un tiempo de estabiliza ion menor que 10 s y
on mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule
una se~nal de referen ia que ambie la velo idad de 30 a 20 m/s y demuestre
que se umplen las espe i a iones de dise~no. Luego enfrente el problema
de seguimiento. Mostrar que la velo idad de la maquina puede seguir una
determinada traye toria predeterminada de velo idades.
Solu ion: Ver el programa p7pred1a.m. El programa p7pred1b.m trata el
aso de referen ia arbitraria. Revise ese programa si desea ver detalles al
respe to.
% p7pred1a.m SOLUCION DEL PROBLEMA 6_3: CONTROL DE VELOCIDAD
% DEL MONORRIEL DE DOS CARROS USANDO CONTROL PREDICTIVO
% CON FUERZA DE CONTROL ESCALAR Y REFERENCIA ESCALON.

% PARA REFERENCIA ARBITRARIA VER PROGRAMA p7pred1b.m


lear all

% DATOS DEL PROCESO


M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO DEL PROCESO
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄;
D=[0;0;0℄;
[num ,den ℄=ss2tf(A,B,C,D);
% MODELO DEL PROCESO EN TIEMPO DISCRETO
tm=0.3; % TIEMPO DE MUESTREO
[G,H℄= 2d(A,B,tm);
[numd,dend℄=ss2tf(G,H,C,D,1);
a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5);
a5=dend(6); a6=dend(7);
330 Control Predi tivo

b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);


b5=numd(6); b6=numd(7);

% HORIZONTES
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1)=b1; g(2)=-a1*b1+b1+b2;
g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3;
g(4)=-a1*g(3)-a2*g(2)-a3*g(1)+b1+b2+b3+b4;
g(5)=-a1*g(4)-a2*g(3)-a3*g(2)-a4*g(1)+b1+b2+b3+b4+b5;
g(6)=-a1*g(5)-a2*g(4)-a3*g(3)-a4*g(2)-a5*g(1)+b1+b2+b3+b4+b5+b6;
for k=7:N2
g(k)=-a1*g(k-1)-a2*g(k-2)-a3*g(k-1)-a4*g(k-1)-a5*g(k-2)...
-a6*g(k-1) + b1 + b2 + b3 + b4 + b5 + b6;
end
% CONDICIONES INICIALES
for k=1:7
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0; MM=500;

% LAZO DE CONTROL
for t=7:MM+6;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= 25 + 5*sign(sin(0.01*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)...
-a4*yf(t+k-4)-a5*yf(t+k-5)-a6*yf(t+k-6)+(b1+b2+b3+b4+b5+b6)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+...
g(2)*(r(t+2)-yf(t+2))+g(7)*(r(t+7)-yf(t+7))+ ...
g(3)*(r(t+3)-yf(t+3))+g(8)*(r(t+8)-yf(t+8))+ ...
g(4)*(r(t+4)-yf(t+4))+g(9)*(r(t+9)-yf(t+9))+ ...
g(5)*(r(t+5)-yf(t+5))+g(10)*(r(t+10)-yf(t+10)))/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% PROCESO
y(t+1)= -a1*y(t) -a2*y(t-1) -a3*y(t-2) -a4*y(t-3)...
-a5*y(t-4) -a6*y(t-5)...
+b1*u(t) +b2*u(t-1) +b3*u(t-2) +b4*u(t-3)...
6.8 Problemas Resueltos 331

+b5*u(t-4)+b6*u(t-5);
end
% GRAFICOS
ejex=linspa e(0,MM*tm,MM-6);
subplot(2,1,1)
plot(ejex,W(7:MM),ejex,y(7:MM)); grid
ylabel('Y1: Velo idad (m/s)')
subplot(2,1,2)
plot(ejex,u(7:MM)); grid
xlabel('Tiempo (segundos)')
ylabel('Control u (volt)')
print -deps -f p7pred1a

40
Y1: Velocidad (m/s)

30

20

10

0
0 50 100 150

150
Control u (volt)

100

50

−50
0 50 100 150
Tiempo (segundos)

Figura 6.20: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.3.
Problema 6.4
Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema de
ontrol predi tivo on fuerza de ontrol matri ial.
Solu ion: El programa p7pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.22. El programa p7pred2b.m trata el
aso de referen ia arbitraria y su resultado se ilustra en la gura 6.23.
332 Control Predi tivo

20

Velocidad (m/s)
15

10

0
0 50 100 150 200 250 300

60
Control u (volt)

40

20

−20
0 50 100 150 200 250 300
Tiempo (Segundos)

Figura 6.21: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.3. La referen ia es arbitraria.
Problema 6.5
La gura 3.22 muestra el pro eso as ensor que fue tratado en el problema
3.6. El problema a resolver es posi ionar suavemente el as ensor en un piso
determinado, lo que signi a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (un
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango
de  200 volt. Dise~nar un sistema de ontrol de posi ion predi tivo on
fuerza de ontrol es alar que umpla las espe i a iones pedidas. Con el
objeto de umplir tales espe i a iones, tambien se puede usar restri ion
a la salida; es de ir, para ada tiempo de muestreo, ha er que la posi ion
ontrolada iguale la se~nal de referen ia. Es interesante anotar, que di ha
restri ion origina en la simula ion una respuesta que sigue perfe tamente a
la referen ia. Logi amente, los resultados de la implementa ion en tiempo
real on tal restri ion, no son tan perfe tos omo lo son en la simula ion,
tal omo su ede en el aso del ontrol predi tivo del servomotor on arga
no lineal (subse ion 6.7.8).
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION
% DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA
% DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA
lear all
6.8 Problemas Resueltos 333

40

Y1: Velocidad (m/s)


30

20

10

0
0 50 100 150

100

50
u: control

−50
0 50 100 150
Tiempo (segundos)

Figura 6.22: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.4.

% ECUACION DE ESTADO
A=[-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5℄;
B=[0.001;0;0;0℄; C=[0 1 0 0℄; D=[0℄;
% PROCESO EN TIEMPO DISCRETO
tm=1;
[G,H℄= 2d(A,B,tm);
[numd,dend℄=ss2tf(G,H,C,D);
a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5);
b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
g(4) = - a1*g(3) - a2*g(2)-a3*g(1) + b1+b2+b3+b4;
for k=5:N2
g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4;
end
334 Control Predi tivo

20

Velocidad v1 (m/s)
15

10

0
0 100 200 300 400 500 600 700 800 900 1000

15
u: Fuerza de control

10

−5
0 100 200 300 400 500 600 700 800 900 1000
Tiempo (Segundos)

Figura 6.23: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.4. La referen ia es arbitraria.

% CONDICIONES INICIALES
for k=1:5
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0.00;
MM=300;
% LAZO DE CONTROL
for t =5:MM+4;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)=-3*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)...
+ (b1 + b2 + b3 + b4)*u(t-1);
end
% RESTRICCION A LA SALIDA
y(t) = W(t);
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
6.8 Problemas Resueltos 335

g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ...


g(5)*(r(t+5) - yf(t+5)) +g(10)*(r(t+10)- yf(t+10)))/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% EVITANDO LA SATURACION DEL AMPLIFICADOR
if(u(t) > 200)
u(t) = 200;
elseif(u(t) < -200)
u(t) = 200;
end
% PROCESO
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)-a4*y(t-3)...
+b1*u(t)+b2*u(t-1)+b3*u(t-2)+b4*u(t-3);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa e(0,MM*tm,MM-4);
subplot(2,1,1)
plot(ejex,W(5:MM),ejex,y(5:MM)); grid
ylabel('POSICION (m)')
xlabel('TIEMPO EN SEGUNDOS')
subplot(2,1,2)
plot(ejex,u(5:MM)); grid
xlabel('TIEMPO EN SEGUNDOS')
ylabel('VOLTAJE DE CONTROL')
print -deps -f p8pred1

Problema 6.6
Resuelva nuevamente el problema 6.5, pero esta vez usando un sistema de
ontrol predi tivo on fuerza de ontrol matri ial.
Solu ion: El programa p8pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.25.
Problema 6.7
La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se -
ion horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol
es ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se derivo en el ejemplo 2.1. Dise~nar un ontrolador
predi tivo del tipo es alar on los requerimientos siguientes: tiempo de es-
tabiliza ion menor que 15 s, sobreimpulso menor al 10 % y error en estado
336 Control Predi tivo

POSICION (m)
2

−2

−4
0 50 100 150 200 250 300
TIEMPO EN SEGUNDOS

200
VOLTAJE DE CONTROL

100

−100

−200
0 50 100 150 200 250 300
TIEMPO EN SEGUNDOS

Figura 6.24: Posi ion del as ensor y la fuerza de ontrol (problema 6.5).
4
POSICION (m)

−2

−4
0 100 200 300 400 500 600

200
VOLTAJE DE CONTROL

100

−100
0 100 200 300 400 500 600
TIEMPO EN SEGUNDOS

Figura 6.25: Posi ion del as ensor y la fuerza de ontrol orrespondientes al


problema 6.6.
6.8 Problemas Resueltos 337

estable nulo. Estas ondi iones de dise~no deben mantenerse uando se am-
bie la referen ia (por ejemplo de 3 a 2 m). Ademas, el ujo de entrada (la
se~nal de ontrol) no debe sobrepasar los 3 m3 /s.
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3;
H =Q^2/(gamma^2*rho*g);
Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H));
% ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO
A = [-Z 0;Z -Z℄; B =[1 ; 0℄;
C =[0 1℄; D =[0℄;
T = 0.9; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[numd,dend℄=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
% RESPUESTA AL ESCALON
g1 = b1;
g2 = -a1* b1 + b1 + b2;
g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2;
g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2;
g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2;
g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2;
% HORIZONTES DE CONTROL
N1 = 1; N2 =10; Nu =1; % ontrol es alar
% CONDICIONES INICIALES
for k=1:3
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0; MM = 500;
% LAZO DE CONTROL
for t =3:MM+2
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = 1.5 + 0.5*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...
338 Control Predi tivo

g2*(r(t+2) -
yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...
g3*(r(t+3) -
yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
g4*(r(t+4) -
yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
g5*(r(t+5) -
yf(t+5)) + g10*(r(t+10)-yf(t+10)))/...
(g1^2 +
g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ...
g7^2 + g8^2 + g9^2 + g10^2 + lambda);
u(t) = u(t-1) + du(t);
% PROCESO LINEALIZADO (ECUACION RESIDUAL)
y(t+1)=-a1*y(t)-a2*y(t-1)+b1*du(t)+b2*du(t-1);
% SALIDA ACTUAL (NIVEL H2)
Y(t+1) = y(t+1)+W(t+1);
% LIMITANDO EL FLUJO DE CONTROL
fu = 3.0;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
end % FIN DEL LAZO DE CONTROL **************
% GRAFICOS
ejex = linspa e(0,MM*T,MM-2);
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,Y(3:MM)); grid
ylabel('NIvel H2 (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Flujo de ontrol (m^3/s)')
xlabel('Tiempo en segundos')
print -deps -f p9pred1

Problema 6.8
Resuelva nuevamente el problema 6.7, pero esta vez usando un sistema de
ontrol predi tivo on fuerza de ontrol matri ial.
Solu ion: El programa p9pred2.m resuelve el problema planteado y su
resultado se muestra en la gura 6.27.
Problema 6.9
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Se pide dise~nar un sistema de ontrol predi tivo on fuerza de
6.8 Problemas Resueltos 339

2.5

NIvel H2 (m)
1.5

0.5

0
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

3
Flujo de control (m^3/s)

−1

−2
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

Figura 6.26: Nivel ontrolado H2 y el ujo de ontrol para el problema 6.7.

2.5

2
NIvel H2 (m)

1.5

0.5

0
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

2
Flujo de control (m^3/s)

−1
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

Figura 6.27: Nivel ontrolado H2 y el ujo de ontrol para el problema 6.8.


340 Control Predi tivo

ontrol es alar, para ontrolar la velo idad angular del eje del motor me-
diante el voltaje de entrada que puede variar entre  100 volt. El tiempo de
estabiliza ion de la se~nal ontrolada (la velo idad) debe ser menor que 6 s
y di ha respuesta debe presentar un sobrepi o maximo de 5 %, on error en
estado estable nulo.
% p11pred1.m SOLUCION DEL PROBLEMA 6_9
% CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
J = 0.01; Ke = 0.01; Kt = 0.01;
R = 12; C = 0.5; L = 0.5; Kw = 1.8;
% MODELO DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke)
0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.1; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[numd,dend℄=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3); a3=dend(4);
b1 = numd(2); b2 = numd(3); b3=numd(4);
% RESPUESTA AL ESCALON
g1 = b1; g2 =-a1*b1+b1+b2;
g3=-a1*g2-a2*g1+b1+b2+b3;
g4 =-a1*g3- a2*g2-a3*g1+b1+b2+b3;
g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3;
g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3;
g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3;
g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3;
g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3;
g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3;
% HORIZONTES DE CONTROL
N1 = 1; N2 = 10; Nu = 1;
% CONDICIONES INICIALES
for k = 1:4
yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0;
end
du(1) = 0;
alf = 0.85; lambda = 0;
% LAZO DE CONTROL
6.8 Problemas Resueltos 341

MM=1000;
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= 4*sign(sin(0.01*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% LEY DE CONTROL
du(t) = ( g1*(r(t+1) - yf(t+1)) + g6*(r(t+6) - yf(t+6)) + ...
g2*(r(t+2) - yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...
g3*(r(t+3) - yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
g4*(r(t+4) - yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
g5*(r(t+5) - yf(t+5)) + g10*(r(t+10) - yf(t+10)) )/...
(g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ...
g7^2 + g8^2 + g9^2 + g10^2 + lambda);
u(t) = u(t-1) + du(t);
if(u(t) > 100)
u(t)=100;
elseif(u(t) < -100)
u(t) = - 100;
end
% PROCESO
y(t+1) = -a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa e(0,MM*T,MM-3);
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel('Velo idad (rad/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p11pred1

Problema 6.10
Resuelva nuevamente el problema 6.9, pero esta vez usando un sistema de
ontrol predi tivo on fuerza de ontrol matri ial. La traye toria deseada
debe ser una urva arbitraria (problema de seguimiento).
342 Control Predi tivo

Velocidad (rad/s)
0

−5
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

100
Voltaje de control

50

−50

−100
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 6.28: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 6.9.
Solu ion: El programa p11pred2.m resuelve el problema planteado y su
resultado se muestra en la gura 6.29.
6.9 Problemas Propuestos
Problema 6.11
En el pro eso de la gura 3.24(a) (ver problema 3.7) se desea redu ir la
humedad h del material a granel de la tolva. La banda transportadora,
que se desplaza a una velo idad v = 1 m/s onstante, introdu e el material
a un horno de se ado. El sensor de humedad dete ta hr a una distan ia
d = 10 m del horno y propor iona la se~nal de voltaje vr . El horno puede
modelarse omo un pro eso de primer orden. La gura 3.24(b) muestra
la F.T del pro eso. Dise~nar dos sistemas de ontrol predi tivo basado en
modelos, uno on fuerza de ontrol es alar y otro on fuerza de ontrol
matri ial (la sele ion de los valores de los horizontes es a onvenien ia del
problema planteado). El objetivo de ontrol es estabilizar la humedad del
material en la banda transportadora. Con nes de modelado del pro eso,
el tiempo muerto puede ser des rito empleando la aproxima ion de Pade de
6.9 Problemas Propuestos 343

15

Velocidad (rad/s)
10

−5
0 20 40 60 80 100 120 140 160 180 200
Tiempo en segundos

2
Voltaje de control

−1

−2
0 20 40 60 80 100 120 140 160 180 200
Tiempo en segundos

Figura 6.29: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 6.10.
ter er orden (ver ejemplo 2.12):
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts  =
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Las espe i a iones de dise~no para ambos sistemas de ontrol son: tiempo de
estabiliza ion menor que 40 s, error en estado esta ionario nulo y por entaje
de sobreimpulso menor al 5 %. La sele ion del tiempo de muestreo y de los
horizontes de ontrol es a onvenien ia del dise~no.
Problema 6.12
Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para on-
trolar el angulo de eleva ion  on las espe i a iones siguientes: tiem-
po de estabiliza ion menor que 5 s, mnimo sobreimpulso y error en
estado esta ionario nulo, empleando fuerza de ontrol es alar. Los
344 Control Predi tivo

disturbios tipo es alon pueden a tuar simultaneamente y pueden ser


positivos o negativos. El sistema de ontrol dise~nado debe ser apaz
de minimizar sus efe tos.
(b) Lo mismo que (a) pero empleando fuerza de ontrol matri ial. La
sele ion de los horizontes de ontrol es a onvenien ia del problema
planteado.
( ) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
(d) Lo mismo que ( ), pero empleando fuerza de ontrol matri ial. En
todos los asos la sele ion del tiempo de muestreo y los horizontes de
ontrol es a onvenien ia del dise~no.
Problema 6.13
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la dinami a del
sistema son materia del problema 3.12.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para on-
trolar simultaneamente las posi iones  y  on mnimo tiempo de
estabiliza ion y mnimo sobreimpulso, empleando una fuerza de on-
trol es alar.
(b) Lo mismo que (a) pero empleando una fuerza de ontrol matri ial. La
sele ion de los horizontes de ontrol y del tiempo de muestreo es a
onvenien ia del problema planteado.
Problema 6.14
La gura 3.32 muestra el pro eso pendulo doble no lineal, el ual es una
extension del pendulo simple des rito en la se ion 3.1. El a oplamiento
entre los dos pendulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.13.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para on-
trolar simultaneamente las posi iones  y  on mnimo tiempo de
estabiliza ion y mnimo sobreimpulso, empleando para ello una fuerza
de ontrol es alar, de modo tal que el pendulo doble permanez a en
posi ion verti al. Considerar que la arga esferi a es de 0.02 kg.
6.9 Problemas Propuestos 345

(b) Lo mismo que (a) pero empleando una fuerza de ontrol matri ial.
La sele ion de los horizontes de ontrol y del tiempo de muestreo es
a onvenien ia del problema planteado.
Problema 6.15
La gura 3.33 muestra el pro eso doble grua puente no lineal, el ual es una
extension del pro eso grua puente es rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Considerar que la arga esferi a es de 0.02 kg.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para on-
trolar simultaneamente las posi iones  y  on mnimo tiempo de
estabiliza ion y mnimo sobreimpulso empleando para ello una fuerza
de ontrol es alar, de modo tal que la grua-puente doble permanez a
en posi ion verti al.
(b) Lo mismo que (a) pero empleando para ello una fuerza de ontrol
matri ial. La sele ion de los horizontes de ontrol y del tiempo de
muestreo es a onvenien ia del problema planteado.
Problema 6.16
La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una
velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si
se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_ (t) + bv(t) = u(t); v_ =
dt
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para on-
trolar la velo idad del movil on mnimo tiempo de estabiliza ion y
mnimo sobreimpulso. La se~nal de referen ia puede ser arbitraria (pro-
blema de seguimiento) y la fuerza de ontrol a dise~nar es es alar.
(b) Lo mismo que (a), pero empleando fuerza de ontrol matri ial. La
sele ion los valores de los horizontes y el tiempo de muestreo son a
onvenien ia del problema planteado.
346 Control Predi tivo

Problema 6.17
El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque
su movimiento rotatorio, mediante a oples ade uados en su eje, puede on-
vertirse fa ilmente en movimiento de trasla ion. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir-
uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1.
(a) Dise~nar dos sistemas de ontrol predi tivo basado en modelos. El
primero, para estabilizar la velo idad angular del eje del motor on
las espe i a iones siguientes: tiempo de estabiliza ion menor que 4 s,
error en estado estable menor al 1 % y sobreimpulso a la salida menor
al 5 %, y el segundo para estabilizar la posi ion del eje del motor on
las mismas espe i a iones de dise~no.
(b) Repetir (a) pero en este aso empleando una fuerza de ontrol matri-
ial. La sele ion de los horizontes de ontrol y del tiempo de muestreo
es a onvenien ia del problema planteado.
Cap
tulo 7

Control Robusto

En este aptulo se desarrollan dos pro edimientos para dise~nar sistemas de


ontrol robusto. El primero emplea la estru tura de un sistema de ontrol on
modelo interno y se apli a a pro esos univariables que presentan omportamien-
to estable. El segundo pro edimiento usa la estru tura lasi a de un sistema
de ontrol realimentado, pero su ontrolador se dise~na mediante el prin ipio de
ontrol on modelo interno y se apli a a pro esos univariables inestables.
El sistema de ontrol robusto debe ser apaz de minimizar asintoti amente
el error entre la salida y una traye toria de referen ia, no obstante la presen ia
de disturbios y de in ertidumbres en el modelado. Para tal efe to, el sistema de
ontrol debe satisfa er los requerimientos de estabilidad y rendimiento robustos.
En la antepenultima se ion de este aptulo se presenta la apli a ion: ontrol
de la posi ion de un servomotor D.C. sujeto a argas no lineales. La penultima
se ion, problemas resueltos, esta dedi ada al dise~no de sistemas de ontrol
robusto para diferentes pro esos. Todos los ar hivos orrespondientes a los
ejer i ios, problemas, dise~nos, simula iones y software desarrollados se pueden
des argar del sitio: http:// ee.uni.edu.pe/728681F.

7.1 Estru tura del Control on Modelo Interno


La gura 7.1 muestra el diagrama de bloques de un sistema de ontrol dis-
reto onven ional, donde el bloque es el ontrolador, el bloque hr0(s) es la
reten ion (o memoria) de orden ero, el bloque p(s) es el pro eso a ontrolar,
el bloque (s) es un ltro pasa bajo, y r, u, d, y e y son las se~nales de
referen ia, de ontrol (la variable manipulada), de disturbio, de salida del
pro eso (la variable ontrolada), y de salida ltrada, respe tivamente. La
348 Control Robusto

r
- m
6
- (z )
u
- hr0 (s) - p(s) -? md
-y
y   y
(s) 
T

Figura 7.1: Sistema de ontrol dis reto onven ional.

nota ion empleada responde a los fundamentos tratados en el aptulo 2.


Por ejemplo, si la se~nal ontinua y (t) pasa por un muestreador on perodo
de muestreo T , enton es a la salida del muestreador se obtiene una se uen ia
de impulsos y  que satisfa e la rela ion:
1
X
y (t) = y (kT )Æ(t

kT ) (7.1)
k=0
La transformada de Lapla e de y (t) es enton es:
1
X
L[y (t)℄ = y (e ) = y (kT )e skT


 sT
(7.2)
k=0
Si alternativamente representamos la se~nal y (t) por su serie de Fourier:
1 X1
y (t) = y (kT )eik! t s
(7.3)
T k= 1
donde !s = 2=T es la fre uen ia de muestreo, enton es:
1
1 X
L[y (t)℄ = y (esT ) =
y (s + ik!s ) (7.4)
T k= 1
Notar que hemos usado la rela ion basi a z = esT . Tambien es util re ordar
que la transformada Z de y (t) se puede expresar omo:
Z [y (kT )℄ = y (z ) (7.5)
7.1 Estru tura del Control on Modelo Interno 349

Una fun ion ra ional y periodi a posee la propiedad de que sus valores para
fre uen ias mayores que =T se pueden determinar a partir de aquellos va-
lores orrespondiente al intervalo 0  w  =T . Ademas, si y (z) es
periodi a, tambien es hermitiana; es de ir:
y (ei!T )H = y (e i!T ) = y (ei(! !)T )H ; =T < w < 2=T (7.6)
s

Considere ahora el diagrama de bloques mostrado en la gura 7.2 orres-


pondiente a la estru tura de un sistema CMI (Control on Modelo Interno),
la que omparada on la estru tura onven ional, presenta grandes venta-
jas que vamos a dis utir mas adelante. Las rela iones entre el ontrolador
lasi o (z) y el ontrolador q(z) (el ontrolador CMI) se obtienen de la
gura 7.2B o de su forma alternativa la gura 7.2C. Estas rela iones son:
q
= (7.7)
1 p~ q

q = (7.8)
1 + p~
donde p es el bloque pro eso y p~ es el bloque modelo del pro eso. Observar
en la gura 7.2B que el ontrolador tiene omo entradas la referen ia r y
la se~nal medible y, y omo salida la se~nal de ontrol u.
La gura 7.3 muestra la estru tura dis reta CMI, en donde el sistema
de ontrol in luye q(z), p~(s) y (s). Observar en di ha gura que el amino
paralelo que forma el modelo del pro eso es para sustraer el efe to de la
variable manipulada u de la salida del pro eso y. Si asumimos que el modelo
es una representa ion perfe ta del pro eso, enton es la se~nal realimentada
es igual a la in uen ia de los disturbios y no es afe tada por la a ion de
la variable manipulada. En esta situa ion, el sistema se omporta omo
uno de lazo abierto y los problemas usuales de estabilidad aso iados on la
realimenta ion desapare en.
Sin demostra ion se presenta el on epto de estabilidad interna para el
sistema CMI de la gura 7.3A.
Estabilidad Interna: Asumiendo que el modelo es perfe to, es de ir que
p(s) = p~(s), enton es el sistema CMI de la gura 7.3A es internamente es-
table s y solo si la planta p(s) y el ontrolador q(z ) son estables.

El ontrolador CMI juega el rol de un ontrolador anti ipativo y puede


ser dise~nado omo tal, pero on la apa idad adi ional de poder an elar
350 Control Robusto

r
- m - q
u
- p -?
d
m -
y
6
- p~ -? m
A

m m m

d
r
- - - q - p -? -
6 6
p~ 

m m m
q
d
r
- - - u
- p -? -y

m

6 6
p~  - p~ -?

Figura 7.2: Representa iones alternativas del Control on Modelo Interno.


7.1 Estru tura del Control on Modelo Interno 351

la in uen ia de los disturbios no medibles, debido a que en la estru tura


CMI, la se~nal de realimenta ion lleva onsigo la in uen ia de los disturbios.
Cuando la se~nal realimentada de la estru tura CMI se ompara on la se~nal
de referen ia, se genera una se~nal de error que el sistema de ontrol debe
minimizar.
Si el modelo no imita perfe tamente la dinami a del pro eso, enton es
la se~nal de realimenta ion se ve in uida, tanto por los disturbios no medi-
bles, omo por el efe to de di ho error de modelado, lo que provo a una
realimenta ion real de di hos efe tos que podran ondu ir al sistema a pro-
bables problemas de estabilidad. Este he ho es el que fuerza al dise~nador a
desintonizar el ontrolador anti ipativo ideal on el n de lograr \robustez".
No interesando la te ni a que se emplee, los ontroladores siempre se
dise~nan basados en la informa ion del omportamiento dinami o del pro e-
so y de los disturbios que a tuan sobre el mismo. La exa titud de di ha
informa ion vara, pero no llega a ser perfe ta. Por ello es deseable que el
ontrolador sea insensible a esta lase de errores de modela ion (in ertidum-
bres en el modelo); es de ir, que el ontrolador sea \robusto".
Del aptulo 2 sabemos que el bloque de reten ion (o de memoria) de
orden ero tiene la forma:
hr0 (s) =
1 e sT = 1 z 1 ; z = esT (7.9)
s s

Por otra parte, el bloque (s) representa un ltro que sirve para ortar las
omponentes de alta fre uen ia de las se~nales ontinuas antes del muestreo,
uando sea ne esario. Su fun ion de transferen ia debe ser estable; es de ir,
las ra es de su e ua ion ara tersti a deben poseer parte real negativa. Las
rela iones siguientes son validas para la estru tura CMI:
r(z ) = Z [r(s)℄ (7.10)
d(z ) = Z [d(s)℄ (7.11)
d (z ) = Z [ (s)d(s)℄ (7.12)
y(z ) = Z [y(s)℄ (7.13)
e(z ) = Z [y(s) r(s)℄ (7.14)
y (z ) = Z [ (s)y(s)℄ (7.15)
p~ (z ) = Z [hr0 (s)~p(s) (s)℄ (7.16)
p (z ) = Z [hr0 (s)p(s) (s)℄ (7.17)
352 Control Robusto

r
- m
6
- q (z )
u
- hr0(s) - p(s) - ?d
m y
-
?

- p~ (z ) m
-  
T
(s)

m m
A
d
r
- - u
- hr0(s) - -? y
-

m
q (z ) p(s)
6
- p~(s) -?
 (s) 
T
B

r
- m - u
- -? m
d
-

m
q (z ) p(s)
6 y
- p~(s)
y~
-?

Figura 7.3: Estru tura CMI. A: Estru tura muestreada. B: Estru tura equi-
valente a A pero no implementable. C: Estru tura dis reta.
7.2 Formula ion del Problema CMI 353

p~(z )= Z [hr0(s)~p(s)℄ (7.18)


p(z ) = Z [hr0(s)p(s)℄ (7.19)
Notar que la estru tura de la gura 7.3B presenta una on gura ion equiva-
lente a la estru tura mostrada en la 7.3A. La gura 7.3C ilustra el sistema
CMI ompletamente dis reto.

7.2 Formula i
on del Problema CMI
Para dise~nar el ontrolador dis reto q(z) debemos tener disponibles el mo-
delo del pro eso (que puede ser ontinuo o dis reto), los rangos de in er-
tidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.
7.2.1 El Modelo del Pro eso
Los metodos de identi a ion mas populares generan modelos de fun iones
de transferen ia de pulso. Tales fun iones son su ientes para dise~nar el
sistema de ontrol, pero no permiten el analisis del omportamiento del sis-
tema entre puntos de muestreo, lo que puede ser signi ativamente peor que
el omportamiento en los mismos puntos. Como las in ertidumbres del mo-
delo se des riben en forma natural en el tiempo ontinuo, resulta enton es
onveniente tener el modelo ontinuo del pro eso que puede asumirse lineal e
invariante on el tiempo y on presen ia de tiempos muertos. Es importante
en esta parte men ionar la ara tersti a ausal de los sistemas.
Sistema Causal y Estri tamente Causal: Un sistema g(z ) es propio o
ausal si limz!1g(z ) es nito. Un sistema propio es estri tamente propio
si limz!1g(z ) = 0, y es semipropio si limz!1g(z ) > 0. Todos los sistemas
que no son propios se denominan impropios o no ausales.

7.2.2 Des rip ion de In ertidumbres del Modelo


Hagamos que p(s) = p(j!) pertenez a a una familia de pro esos II de nida
por:
II = fp : jp(j!) p~(j!)j  `a (!)g (7.20)
en donde `a (!) es la in ertidumbre aditiva del pro eso; es de ir, que la
in ertidumbre o error de modela ion del pro eso a tual p(j!) se ubique en
354 Control Robusto

una region ir ular a otada de radio ono ido `a(!), o de modo equivalente:
p(j!) = p~(j!) + `a (j!) (7.21)
j`a (j!)j  `a (!); 8 p  II (7.22)
La ota de la in ertidumbre multipli ativa `m(!) del pro eso se de ne omo:
`m (!) = `a (!)=jp~(j!)j (7.23)
De las guras 7.3A o 7.3B podemos obtener on p = p~:
y(s) r(s) = e(s) = hr0 (s)~p(s)q(esT )r (esT ) r(s); r(s) = hr0 (s)r (esT )
(7.24)
y luego:
y(s) e(s)
hr0 (s)r (e )
 sT = p~(s)q(esT ) , ~r (s) = 1 ~r (s); r (s) =
~ r(s)
(7.25)
donde ~r es la fun ion de sensitividad y ~r es la fun ion de sensitividad
omplementaria.
Ejemplo 7.1
Determinar las expresiones de p(s) y p~(s) para el pro eso servomotor D.C.
on arga no lineal variable des rito en la se ion 3.3 e ilustrado en la gura
3.9. La uni a in ertidumbre del pro eso a tener en uenta es la arga adi-
ional one tada a un extremo de la varilla (una esfera de radio Ro y masa
Mo ), la ual puede variar entre 0 y 0.045 kg. En base a la respuesta al
es alon, ya sea del pro eso o de su modelo nominal, sele ione un tiempo
de muestreo ade uado y determine la fun ion de transferen ia de pulso p~(z)
del modelo nominal del pro eso.
Solu ion: El programa ejem7 1.m determina p(s) y p~(s) para el pro eso en
estudio. El resultado es el siguiente:
p(s) = 2
Kp
= 30:4696
s + ap s + bp s2 + 1:2707s + 14:4007

p~(s) = 2
Kn
= 91:4375
s + an s + bn s + 3:8133s + 17:9220
2
Observando las respuestas al es alon en la gura 7.4, podemos on luir que
un tiempo de muestreo de T = 0.05 s es su iente para poder apturar la
7.2 Formula ion del Problema CMI 355

urva de transi ion produ ida por la respuesta del pro eso al es alon. La
fun ion de transferen ia de pulso del modelo nominal del pro eso resulta:
b z + b2
p~(z ) = 2 1 = 0:1070z + 0:1004
z + a1 z + a2 z 2 1:7858z + 0:8264
% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; % Mo = 0,0.01,0.02,0.045;
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bp = [0;n*K*Ka t/(R*M)℄;
Cp = [1 0℄; Dp = [0℄;
[nump,denp℄=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL)
Mo=0.0;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
An = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bn = [0;n*K*Ka t/(R*M)℄;
Cn = [1 0℄; Dn = [0℄;
[numn,denn℄ = ss2tf(An,Bn,Cn,Dn);
% numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn)
Kn = numn(3); an = denn(2); bn = denn(3);
% [Kp ap bp℄ = [30.4696 1.2707 14.4007℄
% [Kn an bn℄ = [91.4375 3.8133 17.9220℄
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.05;
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2)
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
356 Control Robusto

% [a1 b1 a2 b2℄ = [-1.7858 0.1070 0.8264 0.1004℄


% GRAFICOS
subplot(2,1,1)
step(nump,denp)
xlabel('Tiempo en segundos')
ylabel('Respuesta del pro eso')
grid
subplot(2,1,2)
step(numn,denn)
ylabel('Respuesta del modelo')
xlabel('Tiempo en segundos')
grid
print -f -deps ejem7_1

4
Respuesta del proceso

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

8
Respuesta del modelo

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

Figura 7.4: Respuestas a la se~nal es alon del pro eso y de su modelo nominal.

7.3 Control Robusto para Pro esos Estables


El pro edimiento de dise~no que se des ribe a ontinua ion es el mismo de-
sarrollado en [9℄ y se puede apli ar a pro esos estables de una entrada y
una salida. El sistema de ontrol robusto ilustrado en la gura 7.3 debe ser
internamente estable. Esto se logra si la planta p(s) y el ontrolador q(z)
son estables, asumiendo que el modelo del pro eso es perfe to (~p(s) = p(s)).
7.3 Control Robusto para Pro esos Estables 357

El pro edimiento de dise~no onsta de dos pasos. En el primero, deno-


minado rendimiento nominal, se sele iona un ontrolador q~(z) que permita
obtener respuestas satisfa torias del sistema a entradas de interes, sin tener
en onsidera ion restri iones e in ertidumbres en el modelo. En el segun-
do paso, denominado estabilidad y rendimiento robustos, se sele iona un
ontrolador de la forma q(z) = q~(z)f (z), donde f (z) es un ltro pasa bajo
introdu ido para lograr estabilidad y rendimiento robustos.
7.3.1 Rendimiento Nominal
Sistemas del Tipo m
La propiedad asintoti a de la respuesta a lazo errado del sistema de ontrol
robusto puede ser estable ida mediante el on epto de tipo del sistema. Un
sistema del tipo m, donde m es un entero no negativo, es aquel uya salida
sigue perfe tamente las entradas r(s) y d(s) (ver gura 7.3) uando t ! 1,
siempre que tal sistema posea todos sus polos en el semiplano izquierdo del
plano-s, ex epto m o menos polos en s = 0. Si el sistema a lazo errado es
estable, las ondi iones ne esarias y su ientes para que el sistema sea del
tipo m, on m > 0, son:
d n
lim
z !1 dz n
(1 p~(z)q(z)) = 0; 0n<m (7.26)
d n
lim
s!0 dsn
(1 (s)) = 0; 0n<m (7.27)
Dise~no del Pre ltro (s)
El objetivo prin ipal del pre ltro (s) es ortar las omponentes de alta
fre uen ia para evitar la superposi ion de fre uen ias. Los ya ono idos
ltros de Butterworth y Bessel satisfa en la e ua ion (7.27) para m = 1.
Para m > 1 se puede emplear una simple modi a ion. Es ribamos:
(s) = 1 (s) m (s) (7.28)
on:
sm 1 +    + 1 s + 1
m (s) = m 1 (7.29)
(s + 1)m 1
en donde 1(s) es un pre ltro apropiado para m=1. Enton es, para un 
espe  o, podemos usar (7.27) para al ular los oe ientes 1 ; : : : ; m 1 .
358 Control Robusto

Cualitativamente m (s) adi iona algunas propiedades en ! = 0, sin afe tar


signi ativamente el omportamiento de 1(s) en las fre uen ias altas. Para
ello se re omienda usar un  grande. Un ltro de segundo orden on m = 2
(entrada rampa) posee la forma:
!02
1 (s) = 2
s + 2!0 s + !02
La solu ion de la e ua ion (7.27) determina que 1 =  + 2=!0 . Para un
valor de  su ientemente grande, el pre ltro m(s) no afe ta signi ativa-
mente el omportamiento de (s) en las altas fre uen ias.

Controlador Optimo de Norma Cuadrati a H2 : q~H (z )
El ontrolador optimo de norma uadrati a q~H (z) se dise~na resolviendo el
siguiente problema de minimiza ion de norma uadrati a H2 :
min k e(z) k2 = q~min
q~H (z ) (z)
H
k (1 p~(z)~qH (z))v(z) k2 (7.30)
sujeto a la restri ion que q~H (z) sea estable y ausal. La minimiza ion de
la norma anterior resulta en el siguiente ontrolador:
q~H (z ) = z (pM (z )vM (z )) 1 fz 1 pA1 (z )vM (z )g (7.31)
donde el operador f:g denota que luego de una expansion en fra iones
par iales del operando, solo seran retenidos los terminos que sean estri ta-
mente propios y estables; es de ir, aquellos terminos que posean polos que
se ubiquen dentro del r ulo unitario (in luso en z = 1). Notar tambien
que el pro eso estable p~(z) ha sido fa torizado en una parte pasa todo p~A(z)
y otra parte de mnima fase p~M (z), omo sigue:
p~(z ) = p~A (z )~pM (z ) (7.32)
donde:
p~A(z ) = z N hj=1
(1 (jH ) 1 )(z j ) (7.33)
(1 j )(z (jH ) 1 )
y j ; j = 1; : : : ; h son los eros de p~(z) que estan fuera del r ulo unitario.
El entero positivo N se sele iona de modo tal que p~M (z) sea semipropio; es
de ir, que el numerador y el denominador de p~M (z) posean el mismo grado,
lo que es equivalente a de ir que zN p~(z) sea semipropio.
7.3 Control Robusto para Pro esos Estables 359

La entrada v(z) tambien se fa toriza en forma similar:


v(z ) = vA (z )vM (z ) (7.34)
on:
vA (z ) = z N hj =1
v v
(1 (vjH ) 1)(z vj ) (7.35)
(1 vj )(z (vjH ) 1 )
donde vj ; j = 1; : : : ; hv son los eros de v(z) que estan fuera del r ulo
unitario y el entero positivo Nv se sele iona de modo tal que zN v(z) sea v

semipropio. Notar que q~H (z) debe ser estable y ausal. Sin embargo, debido
a su ara ter dis reto, este ontrolador puede presentar problemas de om-
portamiento en las intermuestras (entre puntos de muestreo) ausadas por
los polos de q~H (z) er anos al punto ( 1; 0). Por onsiguiente, es ne esario
realizar una modi a ion del ontrolador q~H (z).
La tabla 7.1 muestra la expresion del ontrolador q~H (z) para algunas
entradas tpi as.
Tabla 7.1: Controlador q~H (z) para algunas entradas tpi as.

v(s) v (z ) Controlador q~H (z)


1 z (~pM (z)) 1
s z 1

1 z= (~pM (z)) 1 (~pA(e T= )) 1


s+1 z e T =

1 z (1 eT = ) (~pM (z)) 1 (1 p~A1 (e T = )e T = )z+(~pA1 (e T = ) 1)e T =


s(s+1) (z 1)(z e T = ) (1 e T = )z

1
s2
Tz
(z 1)2 (~pM (z)) 1 (N +
+1)z z N

donde:
, dzd (~pA1(z)z N )jz=1
1
= Phj=1 (1 ( )(1) (  ) 1 )
H
j j
H
j j
360 Control Robusto

Ejemplo 7.2
Determinar el ontrolador optimo uadrati o q~H (z) para el pro eso p(z) del
ejemplo 7.1, asumiendo que la entrada v(s) es un es alon.
Solu ion: Del ejemplo 7.1 ono emos p~(z ) para T = 0.05 s:
b z + b2
p~(z ) = 2 1
z + a1 z + a2
Ademas, se debe umplir que p~(z) = p~A(z)~pM (z), de modo tal que zN p~(z)
sea semipropio y por onsiguiente, N = 1. El ero b2 =b1 = -0.9874 de p~(z)
se ubi a dentro del r ulo unitario; enton es j = 0 y:
p~(z ) z (b1 z + b2 )
p~A(z ) = z 1 ; p~M (z ) = =
p~A (z ) z + a1 z + a2
2
Empleando ahora la tabla 7.1 para v(z) = z z 1 obtenemos:
z 2 + a1 z + a2
q~H (z ) = (~pM (z )) 1 =
z (b1 z + b2 )
Dise~no del Controlador CMI q~(z )
Deseamos obtener el ontrolador CMI q~(z) postulando:
q~(z ) = q~H (z )~q (z )B (z ) (7.36)
donde q~ (z) an ela todos los polos de q~H (z) que posean parte real negativa
y los sustituye on polos en el origen on el proposito de que el sistema tienda
a ontrolarse on mnimo tiempo de estabiliza ion. B (z) se sele iona para
preservar el tipo m del sistema.
Sean i ; i = 1; : : : ; , los polos de q~H (z) on parte real negativa. Enton es
podemos es ribir:
z i
q~ (z ) = z  i=1 (7.37)
1 ki
X1
m
B (z ) = bi z j (7.38)
i=0
donde m es el tipo del sistema y los oe ientes bi; i = 0; : : : ; m 1, se sele -
ionan de modo tal que q~(z) satisfaga la e ua ion (7.26). Por onstru ion,
7.3 Control Robusto para Pro esos Estables 361

q~H (z ) tambien umple on la e ua ion (7.26). Por onsiguiente, q~(z ) debe


satisfa er la e ua ion (7.26) s y solo si:
dn
lim
z !1 dz n
(1 q~ (z)B (z)) = 0; n = 0; 1; : : : ; m 1 (7.39)
Para los asos espe iales m = 1 y m = 2 se puede obtener:
B (z ) = 1; m=1 (7.40)
X1
m
B (z ) = bi z i = b0 + b1z 1; m = 2 (7.41)
i=0

X i
b0 = 1 b1 ; b1 = (7.42)
i=1
1 i
Ejemplo 7.3
Determinar el ontrolador CMI q~(z) sabiendo que el pro eso p(z) del ejemplo
7.1 es del tipo m = 1. Tener en uenta que la entrada v(s) es un es alon.
Solu ion: Sabemos que q~(z ) = q~H (z )~q (z ). Para m = 1, B (z ) = 1. Los
polos de q~H (z) son z = 0 y z = b2=b1 = -0.9874. Enton es,  = 1 (un polo
on parte real negativa que hay que sustituir on un polo en el origen), i =1
y i = 1 = b2=b1 , de modo que:
q~ (z ) = z   z
 1 j
= z 1 z1 1
j =1 kj k1
Luego: 2
q~(z ) = q~H (z )~q (z) = z (b+ +a1bz +)z2a2
1 2
7.3.2 El Filtro Dis reto CMI
El ontrolador dise~nado q~(z) debe ahora ser aumentado on un ltro pasa
bajo f (z) de modo tal que q(z) = q~(z)f (z). La estru tura y los parametros
del ltro se determinan para que se al an e un ompromiso optimo entre
rendimiento y robustez. La forma mas simple de f (z) es:
f (z ) =
(1 )z (7.43)
z
362 Control Robusto

El ltro f (z) debe preservar las propiedades asintoti as del sistema de lazo
errado; es de ir, la e ua ion (7.26). Por onsiguiente, para que el sistema
sea del tipo m, el ltro f (z) debe satisfa er:

dn
dz n (1 f (z )) = 0; 0n<m (7.44)
z =1
Para un sistema del tipo m = 1, el ltro de la e ua ion (7.43) umple
el requerimiento anterior: f (1) = 1. Sin embargo, para m  2 se debe
postular:
f (z ) = ( 0 + 1 z 1 +    + w z w )
(1 )z (7.45)
z
donde los oe ientes 0 ; : : : ; w se sele ionan de modo tal que satisfagan
la e ua ion (7.44). Para m = 2 y w  2 se ha determinado que:
k =
6k
(1 )(w + 1)(2w + 1) ; k = 1; : : : ; w (7.46)
7.3.3 Estabilidad Robusta
Dise~no del Filtro
La ondi ion de estabilidad robusta se estable e en terminos del ontrolador
CMI q(z) = q~(z)f (z). Asumiendo que todos los pro esos p(s) en la familia
II son estables, que q(z ) es estable y que (z ) esta rela ionado on q(z )
por la e ua ion (7.7), enton es los sistemas en las guras 7.2A y 7.3A son
robustamente estables, si y solo si:
jf (ej!T )j < jp~(ej!T )~q(ej!T )`m (!)j 1 ; 0  !  T : (7.47)
donde `m(!) representa la ota de la in ertidumbre multipli ativa. Para un
buen rendimiento del sistema, las in ertidumbres tienen que ser a otadas.
Una simple espe i a ion de rendimiento requiere que el sistema de lazo
errado sea del tipo m = 1; es de ir, que f (1) = p~(1)~q(1) = (0) = 1.
Como orolario de la e ua ion (7.47), podemos a rmar que si la in er-
tidumbre multipli ativa `(!) es ontinua, enton es existe un ltro f (z) para
el ual el sistema a bu le errado sea del tipo m = 1, as omo tambien robus-
tamente estable para la familia de pro esos II . Esto, siempre que `m(0) < 1,
donde `m (0) es el error multipli ativo en estado estable del sistema ontinuo.
Una forma simple de dise~nar el ltro CMI es emplear un ltro f (z) on
la estru tura dada en la e ua ion (7.45) y luego variar el parametro de
7.3 Control Robusto para Pro esos Estables 363

modo tal que se satisfaga la e ua ion (7.47). Esta e ua ion pone una ota
inferior  a . Di ha ota tambien se puede obtener del gra o de Bode
de:
(jp~(ej!T q~(eiwT )j`m (!)) 1 (7.48)
Si esta antidad nun a es menor que 1, enton es  = 0. Si se obtuvieran
valores menores que 1,  puede ser determinada a partir del gra o de
Bode de f (z). Este gra o resulta pra ti amente similar al obtenido on el
ltro de primer orden dado en la e ua ion (7.43), siempre que el numero de
oe ientes w en la e ua ion (7.45) sea su ientemente grande. Por ejemplo,
si (jp~(ej!T q~(eiwT )j`m (!)) 1 de re e en la forma que lo ha e un sistema de
primer orden, hasta al anzar un valor de 0:7 en ! = !`, enton es:
 = e T w
` (7.49)
Efe to del Muestreo
Un in remento de la onstante de tiempo del ltro redu e el an ho de
banda del sistema nominal. Grandes valores del tiempo de muestreo T
tambien redu en el an ho de banda debido a que si es ribimos la e ua ion
(7.47) omo:
jp~(j!)~q(ej!T )f (ej!T )j < jp(j!)j`a (!) (7.50)
podemos observar que el an ho de banda del termino de la izquierda puede
ser redu ido in rementando en f (z) o dejando f (z) = 1 y aumentando T .
7.3.4 Rendimiento Robusto
Para rendimiento robusto, el ontrolador tiene que ser dise~nado para que:
M (w) , jq^(j!)j`a (!) + j1 p~(j!)^q (j!)jW (!) < 1; 0  !  =T (7.51)
q^(j!) = q~(ej!T )f (ej!T )Z [hr0 (s) (s)℄
donde se ha introdu ido una fun ion de peso W (!) sobre la ual se dis ute
a ontinua ion. La sele ion de W (w) depende de los requerimientos de
rendimiento impuestos por el dise~nador. Es razonable usar la fun ion de
sensitividad ideal (s) = p~(s)~q(s) omo una gua para la busqueda de W (!):
W (!) 1  j1 p~(j!)~q (j!)j (7.52)
364 Control Robusto

Para que la ondi ion anterior resulte una fun ion propia (requerimiento que
tambien es ne esario para ualquier W (w)), se deben umplir las ondi iones
siguientes para m  1:
W (1) 1  1; W (0) 1  0 (7.53)
Ejemplo 7.4
Determinar una fun ion de peso ade uada para el pro eso servomotor D.C.
sujeto a argas no lineales (ver ejemplos 7.1, 7.2 y 7.3).
Solu ion: Podemos sele ionar la siguiente fun ion de peso:

W (s) 1 = 0:4
0:5s + 1 ; s = j!
0:1s + 1
que umple las ondi iones estable idas en la e ua ion (7.53). Sin embargo,
se re omienda emplear la forma general dada en la e ua ion (7.52), debido a
que nos permite ambiar la magnitud de la fun ion de peso usando un fa tor
multipli ativo, siempre que no se sobrepase la ondi ion dada en (7.52).
Esta forma de variar la fun ion de peso propor iona mayor exibilidad en
el pro eso de veri a ion del rendimiento robusto, tal omo veremos mas
adelante.
Dise~no del Filtro
La forma mas simple de dise~nar el ltro f (z) es espe i ar su estru tura dada
en la e ua ion (7.45) y luego tratar de satisfa er la e ua ion (7.51) varian-
do el parametro . In rementando , el primer termino de M (w) de re e
mientras que el segundo termino re e. Por onsiguiente, dependiendo de `a
y W , podra no existir un valor de para que la e ua ion (7.45) sea satis-
fe ha. Asumiendo que q~(z) y f (z) se sele ionan de modo tal que el sistema
resulte del tipo m = 1 (para el ual se umple que p~(z)~q(z)f (z)jz=1 = 1) o
mayor, y que `m (0) < 1, enton es, siempre es posible onseguir rendimiento
robusto para ! = 0 y para ualquier peso W (!).
El parametro debe ser sintonizado para que se satisfagan las ondi-
iones dadas en las e ua iones (7.47) y (7.51). Desde que es posible imponer
la ota inferior  de , enton es, para determinar di ho parametro, debe-
mos resolver el siguiente problema de optimiza ion:
min max M (!) , (T )
  1 0!=T
(7.54)
7.3 Control Robusto para Pro esos Estables 365

donde se ha introdu ido el argumento T en para indi ar que el valor


optimo de la fun ion objeto depende del tiempo de muestreo T .
Ejemplo 7.5
Dise~nar el ltro f (z) para el pro eso servomotor D.C. usando los resultados
de los ejemplos 7.1 al 7.4. Veri ar que se umplan las ondi iones de estabil-
idad y rendimiento robustos. Asumir: `m(!)  j`m (ei! )j y `a (!)  j`a (!)j.
Solu ion: Como el sistema es del tipo m = 1, enton es: f (z ) = (1z )z .
Para determinar la estabilidad robusta del pro eso, empleamos la e ua ion
(7.51) on diferentes valores de , tal omo lo al ula el programa ejem7 5.m.
Podemos omprobar que la estabilidad robusta para el aso que nos o upa,
se preserva para ualquier valor de entre 0 y 1. El mismo programa deter-
mina el rendimiento robusto del pro eso. En el gra o de magnitudes de la
gura 7.5, podemos observar que para = 0.9 se umplen las ondi iones
de estabilidad y rendimiento robustos. Este valor de es la solu ion al
problema de optimiza ion planteado en la e ua ion (7.54). Notar que en la
veri a ion del rendimiento robusto estamos empleando un fa tor de 0.5 en
la fun ion de peso W (s).
% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; % Mo=0,0.01,0.02,0.045;
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bp = [0;n*K*Ka t/(R*M)℄;
Cp = [1 0℄; Dp = [0℄;
[nump,denp℄=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% PROCESO DISCRETO pz(z)
T = 0.05;
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
366 Control Robusto

% numdp(s)/dendp(s) = pnz(z) = (bp1*z + bp2)/(z^2 + ap1*z + ap2)


ap1 = dendp(2); ap2 = dendp(3);
bp1 = numdp(2); bp2 = numdp(3);
% MODELO NOMINAL pn(s)
Mo=0.00;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
An = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bn = [0;n*K*Ka t/(R*M)℄;
Cn = [1 0℄; Dn = [0℄;
[numn,denn℄ = ss2tf(An,Bn,Cn,Dn);
% numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn)
Kn = numn(3); an = denn(2); bn = denn(3);
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.05;
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2)
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
% CHEQUEANDO ESTABILIDAD ROBUSTA
alfa = 0.955;
for w = 0:pi/T
s=i*w; z=exp(s);
pnz = (b1*z+b2)/(z^2+a1*z+a2);
pz = (bp1*z+bp2)/(z^2+ap1*z+ap2);
laz = pz - pnz;
lmz = laz/pnz;
qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2); % qt <> q~
mag_dB(w+1) = 20*log10(1/(abs(pnz*qt*lmz)));
f = (1-alfa)*z/(z-alfa);
magf_dB(w+1) = 20*log10(abs(f));
% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1)
end
% CHEQUEANDO RENDIMIENTO ROBUSTO
for w = 0:pi/T
s=i*w; z=exp(s);
pn = Kn/(s^2 + an*s + bn);
p = Kp/(s^2 + ap*s + bp);
la = p - pn;
lm = la/pn;
qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2); % qt <> q~
f = (1-alfa)*z/(z-alfa);
q = qt*f;
7.3 Control Robusto para Pro esos Estables 367

W = 0.5/abs(1-pn*qt);
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
% PARA RENDIMIENTO ROBUSTO: M_dB < 0
end
% GRAFICOS
ejew = linspa e(0,pi/T,pi/T);
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--')
ylabel('Magnitudes en dB')
title(' (a)')
xlabel('Fre uen ia angular (rad/s)')
grid
subplot(122)
semilogx(ejew,M_dB(1:pi/T))
ylabel('Magnitud de M en dB')
title(' (b)')
xlabel('Fre uen ia angular (rad/s)')
grid
print -f -deps ejem7_5
print -s -deps ejem7_6a

(a) (b)
40 2

30 0

−2
20

−4
Magnitud de M en dB

10
Magnitudes en dB

−6
0
−8

−10
−10

−20
−12

−30 −14

−40 0 1 2
−16 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.5: (a) Magnitudes de jp~q~`j 1 y jf (z)j (en trazos) para veri ar la
estabilidad. (b) Magnitud de M para veri ar el rendimiento robusto.
368 Control Robusto

Sele ion del Tiempo de Muestreo


Cuando el tiempo de muestreo es su ientemente peque~no, enton es el sis-
tema dis reto tiende a omportarse omo uno ontinuo, in rementandose de
esta manera el rendimiento nominal del sistema. Sin embargo, el osto om-
puta ional es mayor y la apari ion de una alta fre uen ia de muestreo del
orden de 1=T puede ha er que disminuya el rendimiento robusto. Por onsi-
guiente, tiempos de muestreo su ientemente grandes pueden ser a eptables
para onseguir estabilidad robusta y rendimiento robusto. Sin embargo, si
el tiempo de muestreo fuera muy grande, podra ser imposible satisfa er los
requerimientos para lograr un rendimiento robusto.
Como regla, =T se puede sele ionar mas grande que el an ho de banda
sobre el ual se desea un buen rendimiento. Otra forma de sele ionar
T es deteminar la respuesta al es alon del pro eso para poder sele ionar
un tiempo T su ientemente peque~no, que nos permita muestrear y luego
re uperar sin di ultad la urva de respuesta resultante.
Si para un ierto tiempo de muestreo T  se en uentra que (T  ) < 1,
enton es podemos seguir in rementando el tiempo de muestreo. Por otra
parte, si para un determinado T  resulta que (T  ) > 1, signi a enton es
que las in ertidumbres asumidas en el modelo del pro eso y en la estru tura
del ontrolador deben ser reajustadas.
Ejemplo 7.6
Simular el sistema de ontrol robusto dise~nado en los ejemplos 7.1 al 7.5.
Solu ion: Ver el diagrama de dise~no en la gura 7.6 (ar hivo ejem7 6a.m)
y los resultados de la simula ion en la gura 7.7. Los gra os se realizan
on el programa ejem7 6b.m.

7.4 Control Robusto para Pro esos Inestables


Para ontrolar pro esos on omportamiento inestable se tiene que emplear
la estru tura lasi a ilustrada en la gura 7.1. Asumiendo que el modelo
del pro eso es perfe to, es de ir, que p(s) = p~(s), y ademas que p(s) y p~(z)
posean  polos inestables 1; : : : ; k , la estabilidad interna del sistema de la
gura 7.1 (donde = q(1 p q) 1) queda garantizada, siempre que q(z) sea
estable y que (1 p (z)q(z) posea eros en 1; : : : ; k .
7.4 Control Robusto para Pro esos Inestables 369

Mux
+ z2+a1.z+a2 (1−alfa)z Kp
− (b1+b2)z2 z−alfa u s2+ap.s+bp q Gráfico
Sum1 Mux
Controlador q~(z) Filtro Proceso p(s)
u_ej7_6 q_ej7_6
control Kn posición
referencia s2+an.s+bn
.
Modelo nominal pn(s) − + Sum2

Figura 7.6: Diagrama de bloques para la simula ion del sistema de ontrol
robusto dise~nado.
1

0.8
Posición en rad

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

0.3
Control en voltios

0.2

0.1

0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.7: Resultado de la simula ion del sistema de ontrol robusto


dise~nado en los ejemplos 7.1 al 7.5.
370 Control Robusto

7.4.1 Rendimiento Nominal


El pro edimiento de dise~no del ontrolador robusto para pro esos inestables,
es el mismo que para pro esos estables. Primero se dise~na el ontrolador q~H y
luego se le modi a de modo tal que permita evitar el problema debido a las
os ila iones que se pueden originar entre muestras. En esta forma obtenemos
el ontrolador q~ = q~H q~ B (z). Este ultimo ontrolador se modi a on un
ltro f (z) para poder garantizar estabilidad y rendimiento robustos. El
ontrolador resultante posee la forma: q(z) = q~(z)f (z).
El Controlador Optimo H2
Asumamos que p(z) = p~(z) posee  polos 1; : : : ; k ubi ados fuera del CU
( r ulo unitario) y un polo de multi ipli idad `. De namos:
bp(z ) = j=1
(1 (jH ) 1 )(z j ) (7.55)
(1 j )(z (jH ) 1 )
y fa tori emos la planta en una por ion pasa todo pA(z) y otra por ion
semipropia de mnima fase pM (z) (ver la subse ion 7.3.1):
p~(z ) = p~A (z )~pM (z ) (7.56)
De manera analoga fa tori emos la entrada v(z):
v(z ) = vA (z )vM (z ) (7.57)
Asumamos ahora sin perdida de generalidad, que los polos inestables de v(z)
ubi ados fuera del CU son los primeros 1 polos j del pro eso, y de namos:
1 (1 (jH ) 1 )(z j )
bv (z ) = j =1
 (7.58)
(1 j )(z (jH ) 1 )
Asumamos ademas que v(z) posee al menos ` polos en z=1. Enton es el
ontrolador optimo H2 (z) viene dado por:
q~H (z ) = zbp (z )(pM (z )bv (z )vM (z )) 1 f(zbp (z )pA (z )) 1 bv (z )vM (z )g (7.59)
donde el operador f:g denota que luego de una expansion en fra iones par-
iales del operando, solo seran retenidos los terminos que sean estri tamente
propios, ex eptuando aquellos orrespondiente a los polos de pA(z) 1 .
Notar que para pro esos estables: bp = bv = 1. Si todos los polos
inestables del pro eso p(s) se ubi an en el origen, se puede usar la tabla 7.1.
7.4 Control Robusto para Pro esos Inestables 371

Dise~no del Controlador CMI q~(z )


El ontrolador CMI tiene la forma:
q~(z ) = q~H (z )~q (z )B (z ) (7.60)
donde q~ (z) an ela todos los polos i, i = 1; : : : ;  de q~H (z) que posean
parte real negativa, y los sustituye on polos en el origen. De esta forma,
el sistema tiende a ontrolarse on mnimo tiempo de estabiliza ion. El
ontrolador q~ (z) se formula omo:
q~ (z ) = z  1 ki  z (7.61)
i=1
i

Sean i, i = 1; : : : ; , las ra es inestables (in luyendo z=1) on multi-


pli idad mi orrespondientes al mnimo denominador omun de p(z) y v(z)
Tener en uenta que v(z) y p(z) poseen la misma antidad de polos en z = 1.
Los requerimientos para garantizar el tipo del sistema y la estabilidad inter-
na pueden ser uni ados mediante la rela ion siguiente:
 k 
d
dz k
(1 q~ (z)B (z)) = 0; k = 0; : : : ; mi 1; i = 1; : : : ;  (7.62)
z =i

Se puede formular ademas:


X1
M
B (z ) = bj z j (7.63)
j =0


X
M = mi (7.64)
i=1
y omputar los oe ientes bj , j = 0; : : : ; M 1 de (7.63). Notar que (7.62)
da lugar a M e ua iones lineales on M in ognitas b0; b1 ; : : : ; bM 1 ; di ha
e ua ion es equivalente a:
 k 
d
(1 q~ ( 1 )B ( 1 )) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; :
dk =i 1
(7.65)
372 Control Robusto

7.4.2 El Filtro Dis reto CMI


La estru tura mas simple del ltro es:
f1 (z ) =
(1 )z
(7.66)
z
En general, el ltro f (z) debe satisfa er los requerimientos siguientes:
1. Seguimiento asintoti o a entradas externas al sistema (referen ias y/o
disturbios). Es de ir, (1 p(z)q(z)f (z))v(z) debe ser estable.
2. Estabilidad interna. En esta situa ion, q~(z)f (z) y (1 p~(z)~q(z)f (z))
deben ser estables.
Dado que q~(z) umple los requerimientos anteriores para f (z) = 1, en-
ton es:
 k 
d
dz k
(1 f (z )) = 0; k = 0; : : : ; mi 1; i = 1; : : : ;  (7.67)
z =i
donde i y mi ya fueron de nidos anteriormente. Notar que uando k = 0,
f (z ) = 1 para z = 1 ; : : : ;  . En otro aso, el ltro se es oge de:
f (z ) = (z )f1 (z ) (7.68)
donde: X!
(z ) = j z j (7.69)
j =0
Los oe ientes 0 ; : : : ; ! se sele ionan de modo tal que para un determi-
nado , se umpla la e ua ion (7.67), generandose M e ua iones lineales on
M in ognitas. Observar que para  = 1, se tiene 1 = 1, m1 = 1 y (z ) = 1.
Si M = 2, onviene sele ionar !  2 para evitar la solu ion trivial.
7.4.3 Estabilidad y Rendimiento Robustos
Los requerimientos a satisfa er para garantizar estabilidad y rendimiento
robustos son los mismos que rigen para pro esos estables. Tales requisitos
fueron desarrollados en las subse iones 7.3.3 y 7.3.4. Resumiendo, para
garantizar estabilidad robusta se debe umplir:
jf (ej!T )j < jp~(ej!T )~q(ej!T )`m (!)j 1 ; 0  !  T : (7.70)
7.5 Pro edimiento de Dise~no 373

Para garantizar rendimiento robusto se tiene que umplir:


jq^j`a + j1 p~q^jW  1; 0  !  =T (7.71)
donde:
q^(s) = q~(esT )f (esT )Z [hr0 (s)℄ (7.72)
El dise~no del pre ltro (s) se trato en la subse ion 7.3.1
7.5 Pro edimiento de Dise~
no
El pro edimiento para dise~nar un sistema de ontrol robusto dis reto on
estru tura CMI es omo sigue:
1) Formular el problema (de nir espe i a iones de dise~no).
2) Usando toda la informa ion disponible a er a del pro eso no lineal,
determinar el modelo de la planta on sus in ertidumbres y de nir los
tipos de las entradas (subse ion 7.2).
3) Sele ionar la fre uen ia de muestreo (subse ion 7.3.4), analizando
las respuestas al es alon del pro eso y del modelo nominal del mismo.
4) Dise~nar el ontrolador optimo uadrati o q~H (z). Para pro esos esta-
bles ver la subse ion 7.3.1 (en esta subse ion tambien se en uentra el
pro edimiento para dise~nar el pre ltro (s)). Para pro esos inestables
ver la subse ion 7.4.1.
5) Dise~nar el ontrolador CMI: q~(z). Para pro esos estables ver la sub-
se ion 7.3.1. Para pro esos inestables ver la subse ion 7.4.1.
6) Dise~nar la fun ion de peso W (subse ion 7.3.4, para ambos asos).
7) Dise~nar el ltro dis reto CMI . Para pro esos estables, ver la subse -
ion 7.3.2, omprobar que se umplan los requerimientos de estabilidad
robusta y rendimiento robusto (subse iones 7.3.3 y 7.3.4). Para pro-
esos inestables, ver subse ion 7.4.2, omprobar que se umplan los
requerimientos de estabilidad robusta y rendimiento robusto (subse -
ion 7.4.3).
8) Simular el sistema de ontrol robusto.
9) Implementar el hardware del sistema de ontrol.
374 Control Robusto

10) Implementar el software de ontrol.


11) Realizar pruebas de fun ionamiento (resultados experimentales).
7.6 Control Robusto de un Servomotor No Lineal
Siguiendo el pro edimiento formulado, esta se ion presenta el dise~no de un
sistema de ontrol robusto para ontrolar la posi ion de un servomotor D.C.,
sujeto a argas no lineales.
7.6.1 Formula ion del Problema
El servomotor D.C. on arga no lineal mostrado en la gura 3.9 y des rito en
la se ion 3.3, es un pro eso de una entrada y una salida. Este servomotor
posee un engranaje redu tor de velo idad y puede ser ontrolado por el
voltaje de armadura. La arga no lineal es una varilla metali a a oplada
perpendi ularmente al eje del servomotor (a manera de un brazo roboti o de
un grado de libertad). En el extremo libre de di ha varilla se pueden a oplar
argas adi ionales. De esta manera la arga no lineal se ha e variable.
El objetivo de ontrol es dise~nar e implementar un sistema de ontrol
robusto empleando una ley de ontrol CMI (Control de Modelo Interno),
de modo tal que la varilla se posi ione en una referen ia predeterminada.
El sobreimpulso de la respuesta debe ser mnimo no obstante la presen ia
de la arga no lineal variable y de las no linealidades del pro eso omo son
las fri iones (estati a y de Coulomb) y la satura ion en el ampli ador del
servomotor.
7.6.2 Dise~no del Sistema de Control Robusto
Los pasos (2) al (7) del pro edimiento de dise~no fueron ubiertos en los
ejemplos 7.1 al 7.5.
7.6.3 Simula ion del Sistema de Control Robusto
La simula ion realizada en el ejemplo 7.6 onsidero una planta p(s) lineal.
En la siguiente simula ion, la planta a onsiderar es su modelo no lineal, on
el a~nadido de dos bloques de satura ion (para evitar saturar el ampli ador
de poten ia) mas una se~nal de realimenta ion que es propor ional al torque
no lineal produ ido por la arga no lineal. No se esta onsiderando el efe to
7.6 Control Robusto de un Servomotor No Lineal 375

de la fri ion de Coulomb, que tambien es un omponente no lineal, debido


a que tal efe to sera ompensado mediante software, omo veremos mas
adelante. El diagrama de simula ion, programa disrob1.m, se muestra en
la gura 7.8, mientras que el resultado de la simula ion se puede ver en la
gura 7.9. Para efe tuar la simula ion on el programa disrob1.m, se debe
eje utar previamente el programa disrob2.m.

+ z2+a1.z+a2 (1−alfa)z u Mux


− (b1+b2)z2 z−alfa
S1 Saturación 1 Graph
Controlador q~(z) Filtro
Mux

Kn
Referencia s2+an.s+bn
u_disrob Saturación 2
Modelo nominal pn(s) − + S2
Control

Kact + n*K 1 w 1 q
− +
R Ms+B s
gan5 −
S3 Subsistema Subsistema Integrador
eléctrico S4 mecánico q_disrob
n*E
MATLAB Salida
gan2 N Function
gan3 Seno

Figura 7.8: Diagrama de bloques para la simula ion del sistema de ontrol
robusto dise~nado, onsiderando el modelo no lineal del pro eso.

7.6.4 Implementa ion del Hardware


El hardware empleado en la implementa ion en tiempo real del sistema de
ontrol robusto es similar al empleado para la implementa ion en tiempo real
de los sistemas de ontrol adaptivo, predi tivo y no lineal. Di ho hardware
se des ribe en detalle en la subse ion 5.6.8.
376 Control Robusto

Posición en rad
0.5

0
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

0.25

0.2
Control en voltios

0.15

0.1

0.05

0
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 7.9: Resultado de la simula ion del sistema de ontrol robusto em-
pleando el modelo no lineal del pro eso.

7.6.5 Implementa ion del Software


El software de ontrol empleado en la implementa ion en tiempo real del
sistema de ontrol robusto posee la misma estru tura que el software de
ontrol empleado para la implementa ion en tiempo real de los sistemas de
ontrol predi tivo y no lineal. La estru tura de di ho software se des ribe en
detalle en la subse ion 6.7.7. El diagrama de ujo del software de ontrol
se muestra en la gura 6.13.
El software usado para la implementa ion del algoritmo de ontrol de
posi ion emplea el lenguaje C y se eje uta en una PC Pentium. Los progra-
mas ne esarios para el ontrol se estru turan en tres ar hivos: R1LLIB.H,
R1LLIB.CPP y ROB.CPP. El ar hivo ROB.CPP es el que ontiene el algo-
ritmo de ontrol.
La realiza ion de ar hivos eje utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la rea ion
de un proye to denominado ROB.PRJ, en donde intervienen los ar hivos
men ionados en el parrafo anterior. A ontinua ion se presenta el listado del
programa ROB.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPP
fueron presentados en la subse ion 6.7.7.
7.6 Control Robusto de un Servomotor No Lineal 377

/* ROB.CPP Programa del sistema de ontrol robusto para pro eso


on arga maxima y referen ia de 45 grados. Ver espe ifi a iones
de dise~no en la subse ion resultados experimentales */

#in lude "r1llib.h"


#in lude <stdio.h>
#in lude <math.h>
#in lude <assert.h>
#in lude <allo .h>
#in lude < onio.h>
onst float ESCALA= 2.*M_PI/(512.*19.7);

/* De lara ion de las fun iones propias del programa */


void Ini ializa_Sistema();
void Mide_Variables
(float *x1k, float *xn1, float *r, float *vel, float t);
float Apli a_Control(float u, float ykp);

/* De lara ion de las variables globales */


float a1, a2, b1, b2, alfa, N;
float x1, xn1, yant, r, w; //x2;
float x1p, xn1p, xn1pp;
float T;
float t, tsimul;
float Fs;
int p0, pk;
float V FC, Ofst;
float ep, epp, e;
float up, upp;

/***************** FUNCIONES ************/


float Apli a_Control(float u, float ykp)
{
float v;
if(u<0.) v = -V FC;
else if(u>0.) v = V FC;
if(u+v<-1.4) u= -1.4;
else if(u+v>1.4) u= 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}
void Ini ializa_Sistema()
{
378 Control Robusto

/* Con Varilla*/
a1=-1.7858; a2= .8264;
b1= .1070; b2= .1004;
/* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V FC= .15;
Ofst= 2.3;
Fs= 20.; T= 1./Fs;
tsimul= 100.;
alfa=0.955;

/* Ini ializa ion de variables */


x1p=0.;
xn1p=0.; xn1pp=0.;
ep=0.; epp=0.;
up=0.; upp=0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi ion();
} void Mide_Variables(
float *x1, float *xn1, float *r, float *vel, float t)
{
/* referen ia: r= r(t)*/
*r = M_PI/4;
/* Ahora leo la posi ion */
pk = LeerPosi ion();
*x1 = x1p + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0 = pk;

/* Modelo nominal */
*xn1 = - a1*xn1p - a2*xn1pp + b1*up + b2*upp;

/* A tualizamos los estados */


x1p=*x1;
xn1p=*xn1; xn1pp=xn1p;
epp=ep; ep=e;

/* error */
e = *r - (*x1-*xn1);
w =(e+a1*ep+a2*epp)/(b1+b2);

/* velo idad angular */


*vel= (5.*(*x1-x1p)+ *vel)/(1.+5.*T);
}
7.6 Control Robusto de un Servomotor No Lineal 379

void main()
{
int ant = 0, a t = 0, k, n;
FILE *out;
float *x1b, *xn1b;
float *ub, *rb, *wb, u, r, w;
float vel;
float x1p, xn1p;
Ini ializa_Sistema();
lrs r();
assert(tsimul<120);
N= tsimul/T;
n= (int)N;
t= vel= 0.;
assert(NULL!=(ub = (float *) allo (n/5,sizeof(float))));
assert(NULL!=(x1b = (float *) allo (n/5,sizeof(float))));
assert(NULL!=(xn1b= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(rb = (float *) allo (n/5,sizeof(float))));
assert(NULL!=(wb = (float *) allo (n/5,sizeof(float))));
for(k = 0; k<n;)
{
a t = NivelClo k();
if ((ant==0)&&(a t==1))
{
Mide_Variables(&x1, &xn1, &r, &vel, t);
u=alfa*up+(1-alfa)*(w);
upp=up; up=u;
u= Apli a_Control(u, vel);
if(!(k%5))
{
x1b[k/5℄ = x1*180./M_PI; rb[k/5℄=r*180./M_PI;
wb[k/5℄ = w*180./M_PI; ub[k/5℄=u;
}
k++;
t += T;
gotoxy(15,5); printf("****************************************");
gotoxy(18,7); printf("Control robusto del servomotor no lineal");
gotoxy(15,9); printf("****************************************");
gotoxy(21,11);printf("tiempo : t=%+5.3f",t);
gotoxy(21,13);printf("referen ia : r=%+5.3f",r*180./M_PI);
gotoxy(21,15);printf(" ontrol : u=%+5.3f",u);
gotoxy(21,17);printf("posi ion : x1=%+5.3f", x1*180./M_PI);
gotoxy(21,19);printf("posi . nominal : xn1=%+5.3f",x1*180./M_PI);
380 Control Robusto

gotoxy(21,19);printf("error de posi .: e=%+5.3f",e*180./M_PI);


gotoxy(15,21);printf("****************************************");
if(kbhit()) if(get h()==27) break;
}
ant=a t;
}
EnviarVoltage(Ofst);
out=fopen("rob.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f\n",
i*5*T, rb[i℄, x1b[i℄, ub[i℄, rb[i℄-(x1b[i℄-xn1b[i℄));
delete rb, x1b, xn1b, ub;
f lose(out);
}

7.6.6 Resultados Experimentales


La iner ia de la arga no lineal puede variar desde J = 0.007047 kg-m2
( orrespondiente a la varilla sin arga adi ional), hasta un valor maximo de
2.98J ( orrespondiente a la varilla on una arga esferi a de magnitud Mo
= 0.045 kg). Para mayores detalles a er a de la arga no lineal variable, ver
la subse ion 6.7.8.
El sistema de ontrol robusto debe ser apaz de estabilizar la posi ion
de la arga no lineal para varia iones de su iner ia omprendidas entre J
y 2.98J . La gura 7.10 muestra el resultado experimental del ontrol de
posi ion robusto para una referen ia de 45o en presen ia de arga maxima.
Podemos observar que la respuesta del sistema muestra sobreimpulso nulo,
un tiempo estabiliza ion menor que 4 s y error en estado estable nulo.
7.7 Problemas Resueltos
En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los
problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB.
Problema 7.1
El problema 3.2 presenta las e ua iones que gobiernan la dinami a longi-
tudinal de un avion omer ial volando a velo idad de ru ero (altura y ve-
lo idad onstantes). El ontrol del angulo de in lina ion  del avion (ver
7.7 Problemas Resueltos 381

50

(grados)
40

30

Posición
20

10

0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

0.2
Señal de control (voltios)

0.15

0.1

0.05

0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

Figura 7.10: Resultado experimental del sistema de ontrol de posi ion ro-
busto del servomotor D.C. sujeto a una arga no lineal maxima.

gura 3.14) es un problema longitudinal a resolver. El objetivo de ontrol es


enton es dise~nar un autopiloto que manipulando el angulo Æe del de e tor
de eleva ion, ontrole el angulo de in lina ion del avion. Se pide dise~nar
un sistema de ontrol robusto on modelo interno que genere una fuerza de
ontrol tal que la salida del pro eso (el angulo de in lina ion ) presente un
sobreimpulso menor al 10 % y un tiempo de estabiliza ion menor que 4 s, on
un error en estado estable nulo. Tomar 0.2 rad omo entrada de referen ia.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
dise~nado debe ser del tipo m = 1. La sele ion del tiempo de muestreo es a
onvenien ia del dise~no. Asumir: `m (!)  j`m(ei! )j y `a(!)  j`a (ei! )j.
Solu ion: Los rangos de varia ion de los parametros se muestran en el
programa p4rob1.m, al igual que el pro edimiento en detalle para dise~nar
el ontrolador robusto uando la entrada v es un es alon. La gura 7.12
(ar hivo p4rob1s.m) es el diagrama de bloques empleado en la simula ion
del sistema dise~nado y requiere que previamente se eje ute el programa
p4rob1.m. Los resultados de la simula ion se muestran en la gura 7.13
(obtenida on el ar hivo p4rob1r.m). El sistema dise~nado umple los reque-
rimientos de estabilidad y rendimiento robustos, tal omo se apre ia en la
gura 7.11.
382 Control Robusto

% p4rob1.m SOLUCION AL PROBLEMA 7.1


lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO:
% theta/deltae=(1.151s+0.1774)/(s^2+0.739s^2+0.921s) -->dato
% theta/deltae=(a*s+b)/(s^3+ *s^2+d*s): ESTRUCTURA DE LA FT
% SE DESEA ROBUSTEZ EN TODOS LOS PARAMETROS:
an=1; bn=0.1; n=0.7; dn=0.9; % PARA EL PROCESO NOMINAL
numn=[0 0 an bn℄; denn=[1 n dn 0℄;
% pn=(an*s+bn)/(s^3+ n*s^2+dn*s)
ap=1.2; bp=0.2; p=0.8; dp=0.95; % PARA EL PROCESO
nump = [0 0 ap bp℄; denp=[1 p dp 0℄;
% p= (ap*s+bp)/(s^3+ p*s^2+dp*s)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.3;
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(z)/dend(z) = pnz(z) = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3)
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% PROCESO DISCRETO
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z) = pz(z) = (bp1*z^2+bp2*z+bp3)/...
% (z^3+ap1*z^2+ap2*z+ap3)
ap1=dendp(2); ap2=dendp(3); ap3=dendp(4);
bp1=numdp(2); bp2=numdp(3); bp3=numdp(4);
% DETERMINACION DE pnz(z)=pA(z)*pM(z):
% roots(numd): 0.9704 y -0.9416
% COMO pnz NO POSEE CEROS FUERA DEL CU, Y COMO z^N*pnz
% DEBE SER SEMIPROPIO, N=1; LUEGO pA=z^(-1) Y
% pM=pnz/pA=z*(b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3)

% CALCULO DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON:


% vA=1; vM=z/(z-1)
% CALCULO DE qtilde_H=z(pM*vM)^(-1){z^(-1)pA^(-1)vM}*:
% z(pM*vM)^(-1)=(z-1)pM^(-1)
% {z^(-1)pA^(-1)vM}*={z/(z-1)}*={1+1/(z-1)}*=1/(z-1)
% qtilde_H=pM^(-1)=(z^3+a1*z^2+a2*z+a3)/(b1*z^3+b2*z^2+b3*z)
% CALCULO DE qtilde_:
% (b1*z^2+b2*z+b3)=(z-0.9704)(z+0.9416); DEBEMOS CANCELAR z=-0.9416
% Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.9416, rho=1; LUEGO
% qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1)
k1=-0.9416;
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z) PARA m=1:
% B(z)=1; qtilde=qtilde_H*qtilde_=
7.7 Problemas Resueltos 383

% (z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^3+b2*z^2+b3*z)*z*(1-k1))

% CALCULO DEL FILTRO PARA m=1: f(z)=(1-alfa)*z/(z-alfa);

% FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))


% CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0

% CHEQUEANDO ESTABILIDAD ROBUSTA


alfa = 0.33; % CUMPLE CONDICIONES DE ESTABILIDAD Y RENDIMIENTO
% ROBUSTOS PERO REQUIERE DE UNA ENTRADA U MUY GRANDE; POR ELLO
% PARA EL DISE~NO FINAL EL PARAMETRO SE FIJA EN: alfa=0.5
for w = 0:pi/T % pi/T =
s=i*w; z=exp(s);
pnz = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3);
pz = (bp1*z^2+bp2*z+bp3)/(z^3+ap1*z^2+ap2*z+ap3);
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1));
mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz)));
f = (1-alfa)*z/(z-alfa);
magf_dB(w+1) = 20*log10(abs(f));
% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1)
end
% CHEQUEANDO RENDIMIENTO ROBUSTO
for w = 0:pi/T % pi/T =
s=i*w; z=exp(s);
pn=(an*s+bn)/(s^3+ n*s^2+dn*s);
p= (ap*s+bp)/(s^3+ p*s^2+dp*s);
la = p - pn;
lm = la/pn;
qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.1; W = G/abs(1-pn*qtilde);
% PARA RENDIMIENTO ROBUSTO: M_dB < 1
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
end
% GRAFICOS
ejew = linspa e(0,pi/T,pi/T);
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--')
ylabel('Magnitudes en dB')
title(' (a)')
384 Control Robusto

xlabel('Fre uen ia angular (rad/s)')


grid
subplot(122)
semilogx(ejew,M_dB(1:pi/T))
ylabel('Magnitud de M en dB')
title(' (b)')
xlabel('Fre uen ia angular (rad/s)')
grid
print -f -deps p4rob1f
print -s -deps p4rob1s

(a) (b)
40 5

30 0
Magnitud de M en dB
Magnitudes en dB

20 −5

10 −10

0 −15

−10 0 1 2
−20 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.11: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.1.
Problema 7.2
El pro eso redu tor de humedad des rito en el problema 3.7 se muestra
en la gura 3.24(a). El objetivo de ontrol es redu ir la humedad h del
material a granel de la tolva. La banda transportadora, que se desplaza
a una velo idad v= 1 m/s onstante, introdu e el material a un horno de
se ado. El sensor de humedad dete ta hr a una distan ia d = 10 m del
horno y propor iona la se~nal de voltaje vr . El horno puede modelarse omo
7.7 Problemas Resueltos 385

+ (1−alfa)z u ap.s+bp
− Mux
z−alfa s3+cp.s2+dp.s
S1 Graph
Filtro Proceso p(s)
Referencia Mux
an.s+bn
z4+(a1−k1)z 3+(a2−a1*k1)z
. 2+(a3−a2*k1)z−a3*k1 s3+cn.s 2+dn.s
(1−k1)*b1z4+(1−k1)*b2z3+(1−k1)*b3z2 Modelo nominal pn(s) − + S2

Controlador q~ y_p4rob1
u_p4rob1
Control u Salida y

Figura 7.12: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno (problema 7.1).

0.25

0.2
Inclinación (rad)

0.15

0.1

0.05

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

1.5
Deflector (rad)

0.5

−0.5
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.13: A ngulo de in lina ion (salida ontrolada) y angulo del de e tor
de eleva ion (se~nal de ontrol) para el problema 7.1.
386 Control Robusto

un pro eso de primer orden. La gura 3.24(b) muestra la F.T del pro eso.
Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar
la humedad del material en la banda transportadora. El uni o parametro
in ierto a onsiderar es el tiempo muerto v=d. Asuma omo valor nominal
Tn = 9 s y omo tiempo muerto del pro eso Tp = 11 s. Las espe i a iones
de dise~no son: tiempo de estabiliza ion menor que 40 s, error en estado
esta ionario nulo y por entaje de sobreimpulso menor al 5 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema dise~nado debe
ser del tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia
del dise~no. Asumir: `m (!)  j`m(ei! )j y `a(!)  j`a (!)j.
Solu ion: El programa p10rob1.m detalla el pro edimiento para dise~nar el
ontrolador robusto uando la entrada v es un es alon. La gura 7.15 (ar hi-
vo p10rob1s.m) es el diagrama de bloques empleado en la simula ion del sis-
tema dise~nado y requiere previamente que se eje ute el programa p10rob1.m.
El resultado de la simula ion se muestra en la gura 7.16 (obtenida on el
ar hivo p10rob1r.m). El sistema dise~nado umple los requerimientos de es-
tabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.16.
% p10rob1.m SOLUCION AL PROBLEMA 7.2
lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO
% vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT
K=10; a=1.5; b=0.5;
% DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO:
Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO)
numn=[0 0 K℄; denn=[1 a b℄;
% pn=K*exp(-Tn*s)/(s^2+a*s+b)
nump=[0 0 K℄; denp=[1 a b℄;
% p=K*exp(-Tp*s)/(s^2+a*s+b)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2)
a1=dend(2); a2=dend(3);
b1=numd(2); b2=numd(3);
% numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z)
% pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2)
% = (b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% PROCESO DISCRETO pz(z)
% T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2)
7.7 Problemas Resueltos 387

ap1=dendp(2); ap2=dendp(3);
bp1=numdp(2); bp2=numdp(3);
% numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z)
% pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2)
% = (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22)

% DETERMINACION DE pnz(z)=pA(z)*pM(z):
% roots(numD): -0.1353
% COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO
% z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=19; LUEGO pA=z^(-N) Y
% pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON:
% SE SABE POR EJERCICIOS ANTERIORES QUE vA=1; vM=z/(z-1)

% CALCULO DE qtilde_H=(pM(z))^(-1):
% SEGUN TABLA, qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19)
% CALCULO DE qtilde_:
% (b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0.1353
% Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.1353, rho=1, Y
% qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1)
k1=-0.1353;
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1):
% PARA QUE EL SISTEMA SEA DEL TIPO m=1, B(z)=1, ENTONCES:
% qtilde=qtilde_H*qtilde_=
% (z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1))
% CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa);
% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
% CONDICIONES: W^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0

% CHEQUEANDO ESTABILIDAD ROBUSTA


alfa = 0.95;
for w = 0:pi/T % pi/T =
s=i*w; z=exp(s);
pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s);
p= K*exp(-Tp*s)/(s^2+a*s^2+b*s);
pnz = (b1*z+b2)/(z^(Tn/T)*(z^2+a1*z+a2));
pz = (bp1*z+bp2)/(z^(Tp/T)*(z^2+ap1*z+ap2));
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/...
(z*(b1*z^20+b2*z^19)*(1-k1));
mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz)));
f = (1-alfa)*z/(z-alfa);
388 Control Robusto

magf_dB(w+1) = 20*log10(abs(f));
% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1)
end

% CHEQUEANDO RENDIMIENTO ROBUSTO


for w = 0:pi/T
s=i*w; z=exp(s);
pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s);
p= K*exp(-Tp*s)/(s^2+a*s^2+b*s);
la = p - pn;
lm = la/pn;
qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/...
(z*(b1*z^20+b2*z^19)*(1-k1));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.9; W = G/abs(1-pn*qtilde);
% PARA RENDIMIENTO ROBUSTO: M_dB < 1
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
end

% GRAFICOS
ejew = linspa e(0,pi/T,pi/T);
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--'); grid
ylabel('Magnitudes en dB')
title(' (a)')
xlabel('Fre uen ia angular (rad/s)')
subplot(122)
semilogx(ejew,M_dB(1:pi/T)); grid
ylabel('Magnitud de M en dB')
title(' (b)')
xlabel('Fre uen ia angular (rad/s)')
print -f -deps p10rob1f
print -s -deps p10rob1s

Problema 7.3
La gura 3.20 muestra un monorriel de dos arros des rito en el problema
3.5. El problema a resolver es el ontrol de velo idad del arro de maquinas
mediante un sistema de ontrol robusto empleando modelo interno. Para
garantizar a los pasajeros un viaje onfortable, los ambios de velo idad
deben realizarse on un tiempo de estabiliza ion menor que 6 segundos y
7.7 Problemas Resueltos 389

(a) (b)
15 2

10
0
5

0 −2

Magnitud de M en dB
Magnitudes en dB

−5
−4

−10

−6
−15

−20 −8

−25
−10
−30

−35 0 1
−12 0 1
10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.14: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.2.

+ (1−alfa)z u K
− Mux
z−alfa s2+as+b
S1 Tp Graph
Filtro Proceso p(s)
Referencia Mux
K y_p10rob
z20
+a1.z 19+a2.z 18. z−k1 s2+as+b
Salida y
b1.z 20
+b2.z 19 (1−k1)z Modelo nominal pn(s) Tn − + S2
Controlador q~H Controllador q~_ u_p10rob
Control u

Figura 7.15: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno (problema 7.2.)
390 Control Robusto

Humedad
0.5

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

0.06

0.04
Flujo calorífico

0.02

−0.02
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 7.16: Flujo alor o (se~nal de ontrol) y humedad sensada (salida


ontrolada) para el problema 7.2.
on mnimo sobreimpulso. El error en estado estable debe ser nulo. Tener
en uenta que debido al peso de los pasajeros, podemos onsiderar un rango
de varia ion en la masa de los arros de pasajeros. Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema dise~nado debe ser del
tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del
dise~no. Asumir: `m(!)  j`m (ei! )j y `a (!)  j`a(!)j.
Solu ion: El programa p7rob1.m muestra el rango de varia ion de tales
masas y detalla el pro edimiento para dise~nar el ontrolador robusto uan-
do la entrada v es un es alon. La gura 7.18 (ar hivo p7rob1s.m) es el
diagrama de bloques empleado en la simula ion del sistema dise~nado y re-
quiere previamente que se eje ute el programa p7rob1.m. El resultado de la
simula ion se muestra en la gura 7.19 (obtenida on el ar hivo p7rob1r.m).
El sistema dise~nado umple los requerimientos de estabilidad y rendimiento
robustos, tal omo se puede apre iar en la gura 7.17.
% p7rob1.m SOLUCION AL PROBLEMA 7.3
lear all
% ROBUSTEZ EN LOS PESOS M2 Y M3 DADO QUE VARIAN CON EL PESO
% PROCESO: M2=3200; M3=3200 (CARROS CON PASAJEROS);
7.7 Problemas Resueltos 391

M1=1300; M2=3200; M3=3200; K12=100000; K23=100000;


B12=500; B23=500; B1=5000; B2=10000; B3=10000;
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[0 alfa 0 0 0 0℄; D=[0℄;
[nump,denp℄=ss2tf(A,B,C,D);
bp1=nump(2); bp2=nump(3); bp3=nump(4); bp4=nump(5);
bp5=nump(6); bp6=nump(7); ap1=denp(2); ap2=denp(3);
ap3=denp(4); ap4=denp(5); ap5=denp(6); ap6=denp(7);
% p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/...
% (s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6);
% PROCESO DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
[numz,denz℄=ss2tf(G,H,C,D);
az1 = denz(2); az2 = denz(3); az3 = denz(4);
az4 = denz(5); az5 = denz(6); az6 = denz(7);
bz1 = numz(2); bz2 = numz(3); bz3 = numz(4);
bz4 = numz(5); bz5 = numz(6); bz6 = numz(7);
% numz/denz=pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/...
% (z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6);
% MODELO NOMINAL DEL PROCESO: M2=2600; M3=2600;
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[0 alfa 0 0 0 0℄; D=[0℄;
[numn,denn℄=ss2tf(A,B,C,D);
bn1=numn(2); bn2=numn(3); bn3=numn(4); bn4=numn(5);
bn5=numn(6); bn6=numn(7); an1=denn(2); an2=denn(3);
an3=denn(4); an4=denn(5); an5=denn(6); an6=denn(7);
392 Control Robusto

% pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/...
% (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6);
% MODELO NOMINAL DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3 = den(4);
a4 = den(5); a5 = den(6); a6 = den(7);
b1 = num(2); b2 = num(3); b3 = num(4);
b4 = num(5); b5 = num(6); b6 = num(7);
% num/den=pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);

% DETERMINAION DE bp(z)
% roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL
% CU (CIRCULO UNITARIO) => bp(z)=1

% CALCULO DE pnz(z)=pA(z)*pM(z):
% z^N*pnz DEBE SE SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO:
% pM=pnz/pA=z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);

% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON:


% SE SABE POR EJEMPLOS ANTERIORES QUE: vA=1; vM=z/(z-1)

% DETERMINACION DE bv(z)
% COMO v(z) NO POSEE POLOS FUERA DEL CU, ENTONCES bv(z)=1

% CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*:
% NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1,
% qtilde_H=pM^(-1)=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)/...
% (z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6));

% CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr)):


% roots([b1 b2 b3 b4 b5 b6℄): -0.2943 + 0.5702i,
% -0.2943 - 0.5702i; 0.4916 + 0.4604i, 0.4916 - 0.4604i, 1.0000
% r=2 POLOS DE qtilde_H CON PARTE REAL NEGATIVA; k1=-0.2943;
% k2=k1 => qtilde_=z^(-2)*(z-k1)^2/(1-k1)^2
k1=-0.2943;

% CALCULO DE qtilde=qtilde_H*qtilde_*B(z):
% EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES:
% (z-piz)=(z-1) => z=piz=1, m1=1 (MULTIPLICIDAD) y B(z)=b0=1;
7.7 Problemas Resueltos 393

% qtilde=qtilde_H*qtilde_=
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/...
% (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2);
% DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);

% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))


% CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0

% CHEQUEANDO ESTABILIDAD ROBUSTA


alfa = 0.8;
for w = 0:pi/T % pi/T =
s=i*w; z=exp(s);
pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);
pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/...
(z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6);
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/...
(z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2);
mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz)));
f = (1-alfa)*z/(z-alfa);
magf_dB(w+1) = 20*log10(abs(f));
% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1)
end

% CHEQUEANDO RENDIMIENTO ROBUSTO


for w = 0:pi/T
s=i*w; z=exp(s);
pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/...
(s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6);
p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/...
(s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6);
la = p - pn;
lm = la/pn;
qtilde=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/...
(z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2);
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.72; W = G/abs(1-pn*qtilde);
% PARA RENDIMIENTO ROBUSTO: M_dB < 1
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
end
394 Control Robusto

% CALCULO DEL CONTROLADOR =q/(1-pnz*q)


% NOTAR QUE q*pnz=(z-k1)^2*(1-alfa)/(z^2*(1-k1)^2*(z-alfa))
num1=(1-alfa)*[1 -2*k1 k1^2℄; den1= ...
[(1-k1)^2 -((1-k1)^2*alfa+(1-alfa)) (1-alfa)*2*k1 -(1-alfa)*k1^2℄;
% num = onv(den,num1); den = onv(num,den1);
[num ,den ℄=series(den,num,num1,den1);
% GRAFICOS
ejew = linspa e(0,pi/T,pi/T);
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--'); grid
ylabel('Magnitudes en dB');
title(' (a)')
xlabel('Fre uen ia angular (rad/s)')
subplot(122)
semilogx(ejew,M_dB(1:pi/T)); grid
ylabel('Magnitud de M en dB');
title(' (b)')
xlabel('Fre uen ia angular (rad/s)')
print -f -deps p7rob1f
print -s -deps p7rob1s

(a) (b)
40 0

−1
30
−2

−3
20
Magnitud de M en dB
Magnitudes en dB

−4

10 −5

−6
0
−7

−8
−10
−9

−20 0 1 2
−10 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.17: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.3.
7.7 Problemas Resueltos 395

+ numc(z) u nump(s) y
Mux
r − denc(z) denp(s)
S1 Controlador c(z) Proceso Graph
p(s) Mux
u_p7rob1
y_p7rob1
Control u
. Salida y

Figura 7.18: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno del problema 7.3.

15
Velocidad (m/s)

10

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

300
250
Fuerza (N)

200
150
100

50
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.19: Velo idad del arro de maquinas y fuerza de ontrol para el
problema 7.3.
396 Control Robusto

Problema 7.4
La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. Sin
embargo, para este problema onsidere que el a tuador posee la siguiente
fun ion de transferen ia:
x1 (s)
= Ka ; 0:008  Ka  0:012
v(s) s + 0:2
El problema a resolver es posi ionar suavemente el as ensor en un piso de-
terminado, lo que signi a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza ion menor que 8 s. Para no saturar al a tuador (un
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango
de  200 volt. Dise~nar un sistema de ontrol robusto que umpla las es-
pe i a iones pedidas. Realizar el al ulo del ontrolador para una entrada
v es alon. El sistema dise~nado debe ser del tipo m = 1. La sele ion del
tiempo de muestreo es a onvenien ia del dise~no. Asumir: `m(!)  j`m (ei! )j
y `a(!)  j`a (!)j.
Solu ion: El programa p8rob1.m detalla el pro edimiento para dise~nar
el ontrolador robusto uando la entrada v es un es alon. La gura 7.21
(ar hivo p8rob1s.m) es el diagrama de bloques empleado en la simula ion
del sistema dise~nado y requiere pque reviamente se eje ute el programa de
p8rob1.m. El resultado de la simula ion se muestra en la gura 7.22 (obteni-
da on el ar hivo p8rob1r.m). El sistema dise~nado umple los requerimientos
de estabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4
lear all
% PROCESO
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B = [0.012;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
[nump,denp℄=ss2tf(A ,B ,C ,D );
bp2=nump(3); bp3=nump(4); bp4=nump(5);
ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5);
% p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
% PROCESO DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[numz,denz℄=ss2tf(G,H,C,D);
az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5);
bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);
7.7 Problemas Resueltos 397

% numz/denz=pz=(bz1*z^3+bz2*z^2+bz3*z+bz4*z)/...
% (z^4+az1*z^3+az2*z^2+az3*z+az4);
% PROCESO NOMINAL
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B = [0.008;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
[numn,denn℄=ss2tf(A ,B ,C ,D );
bn2=numn(3); bn3=numn(4); bn4=numn(5);
an1=denn(2); an2=denn(3); an3=denn(4);
% pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s);
% MODELO NOMINAL DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% num/den=pnz=(b1*z^3+b2*z^2+b3*z+b4*z)/...
% (z^4+a1*z^3+a2*z^2+a3*z+a4);
% DETERMINAION DE bp(z)
% roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL
% CIRCULO UNITARIO => bp(z)=1
% CALCULO DE pnz(z)=pA(z)*pM(z):
% z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO:
% pM=pnz/pA=z*(b1*z^3+b2*z^2+b3*z+b4*z)/...
% (z^4+a1*z^3+a2*z^2+a3*z+a4);
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON:
% SE SABE POR EJEMPLOS ANTERIORES QUE vA=1 Y vM=z/(z-1)

% DETERMINACION DE bV(z):
% COMO v(z) NO POSEE POLOS FUERA DEL CU, bv(z)=1
% CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*
% NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1:
% qtilde_H=pM^(-1)=(z^4+a1*z^3+a2*z^2+a3*z+a4)/...
% z*(b1*z^3+b2*z^2+b3*z+b4);
% CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr))
rr=roots([b1 b2 b3 b4℄); k1=rr(1);
% r=1 POLOS DE qtilde_H CON PARTE REAL NEGATIVA;
% => qtilde_=z^(-1)*(z-k1)/(1-k1)=(z-k1)/(z*(1-k1))
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z)
% EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES
% ES: (z-piz)=(z-1) => z=piz=1, MULTIPLICIDAD m1=1 Y B(z)=b0=1;
% qtilde=qtilde_H*qtilde_=
% (z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
398 Control Robusto

% (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4*z));
% DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);
% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
% CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0
%
% CHEQUEANDO ESTABILIDAD ROBUSTA
alfa = 0.7;
for w = 0:pi/T
s=i*w; z=exp(s);
pnz=(b1*z^3+b2*z^2+b3*z+b4)/(z^4+a1*z^3+a2*z^2+a3*z+a4);
pz=(bz1*z^3+bz2*z^2+bz3*z+bz4)/(z^4+az1*z^3+az2*z^2+az3*z+az4);
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4));
mag_dB(w+1) = -20*log10(abs(pnz*qtilde*lmz));
f = (1-alfa)*z/(z-alfa);
magf_dB(w+1) = 20*log10(abs(f));
% para estabilidad robusta: magf_dB(w+1) < mag_dB(w+1)
end
% CHEQUEANDO RENDIMIENTO ROBUSTO
for w = 0:pi/T
s=i*w; z=exp(s);
pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s);
p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
la = p - pn;
lm = la/pn;
qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.75; W = G/abs(1-pn*qtilde);
% PARA RENDIMIENTO ROBUSTO: M_dB < 1
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
end
% CALCULO DEL CONTROLADOR =q/(1-pnz*q)
% NOTAR QUE q*pnz=(z-k1)*(1-alfa)/(z*(1-k1)*(z-alfa))
num1=(1-alfa)*[1 -k1℄;
den1=[(1-k1) -((1-k1)*alfa+(1-alfa)) (1-alfa)*k1℄;
% num = onv(den,num1); den = onv(num,den1);
[num ,den ℄=series(den,num,num1,den1);
% GRAFICOS
ejew = linspa e(0,pi/T,pi/T);
7.8 Problemas Propuestos 399

subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--'); grid
ylabel('Magnitudes en dB'); title(' (a)')
xlabel('Fre uen ia angular (rad/s)')
subplot(122)
semilogx(ejew,M_dB(1:pi/T)); grid
ylabel('Magnitud de M en dB'); title(' (b)')
xlabel('Fre uen ia angular (rad/s)')
print -f -deps p8rob1f
print -s -deps p8rob1s

(a) (b)
15 0.5

0
10
−0.5

−1
5
Magnitud de M en dB
Magnitudes en dB

−1.5

0 −2

−2.5
−5
−3

−3.5
−10
−4

−15 0 1
−4.5 0 1
10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.20: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.4.

7.8 Problemas Propuestos


Problema 7.5
El problema 3.1 des ribe en detalle las e ua iones que gobiernan la dinami a
del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol robusto on modelo interno para lograr el objetivo de ontrol que se
formula a ontinua ion. La salida del pro eso y = x2 x1 (referen ia nula) no
400 Control Robusto

+ numc(z) u nump(s) y
Mux
r − denc(z) denp(s)
S1 Controlador c(z) Proceso Graph
p(s) Mux
u_p8rob1 y_p8rob1
. Control u Salida y

Figura 7.21: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno del problema 7.4.
3
2.5
Posición (m)

2
1.5
1

0.5
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

200

150
Voltaje de control

100

50

−50
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.22: Posi ion del as ensor y fuerza de ontrol (problema 7.4).

debe presentar sobreimpulsos mayores que 5 %. Luego de aproximadamente


20 segundos, las os ila iones originadas por un disturbio es alon de 10 m
provo ada por imperfe iones en la pista, pra ti amente deben desapare er.
El parametro in ierto del pro eso es la masa del bus, la que sin pasajeros es
de m1 = 2500 kg y lleno de pasajeros ambia a 3500 kg. Realizar el al ulo
del ontrolador para una entrada v es alon. El sistema dise~nado debe ser
del tipo m=1. Sele ionar un tiempo de muestreo onveniente.
7.8 Problemas Propuestos 401

Problema 7.6
La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Las espe i a iones de
dise~no son: tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al
5 % y error nulo en estado estable. El ujo de entrada (la se~nal de ontrol)
no debe sobrepasar los 3 m3/s. Dise~nar un ontrolador robusto on modelo
interno que logre umplir los requerimientos anteriores. Realizar el al ulo
del ontrolador para una entrada v es alon. El sistema dise~nado debe ser
del tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del
dise~no.
Problema 7.7
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Dise~nar un sistema de ontrol robusto on modelo interno para
ontrolar la velo idad angular del eje del motor mediante el voltaje de en-
trada que puede variar entre  100 volt. Realizar el al ulo del ontrolador
para una entrada v es alon. El sistema dise~nado debe ser del tipo m=1 y la
sele ion del tiempo de muestreo es a onvenien ia del dise~no. La salida on-
trolada no debe presentar sobreimpulso ni error esta ionario. El parametro
in ierto es la iner ia J de la arga que puede variar en  12 %.
Problema 7.8
El problema 3.3 des ribe el pro eso de la bola rodando a lo largo de una barra
on un grado de libertad, tal omo se muestra en la gura 3.16. Una leva
one ta la barra on un engranaje que esta a ionado por un servomotor.
Dise~nar un sistema de ontrol robusto que pueda posi ionar la bola a 0.5 m
de un extremo de la barra de 1 m de longitud. Evidentemente, la os ila ion
de la bola debe estar restringida sobre la barra. El voltaje de ontrol no debe
sobrepasar los  40 voltios y la masa de la bola puede variar en  15 %.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
dise~nado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del dise~no.
402 Control Robusto

Problema 7.9
Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol robusto on modelo interno para ontro-
lar el angulo de eleva ion  on las espe i a iones siguientes: tiem-
po de estabiliza ion menor que 8 s, mnimo sobreimpulso y error en
estado esta ionario nulo. Los disturbios tipo es alon pueden a tuar
simultaneamente o no y pueden ser positivos o negativos. Para ada
aso, el sistema de ontrol dise~nado debe ser apaz de minimizar sus
efe tos. Realizar el al ulo del ontrolador para una entrada v es alon.
El sistema dise~nado debe ser del tipo m = 1 y la sele ion del tiempo
de muestreo es a onvenien ia del dise~no. Considerar que todos los
parametros poseen in ertidumbre de  5 %.
(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 7.10
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1 =3. La union de la arga on el eje del servomotor
no es exible. Las e ua iones que des riben la dinami a del sistema fueron
requeridas en el problema 3.12. Dise~nar un sistema de ontrol robusto on
modelo interno para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso. Considerar (a
su riterio) varia iones en la arga adi ional Mo . Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema dise~nado debe ser del
tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del
dise~no. Considerar dos asos: (a) uando la indu tan ia de armadura es
despre iable, y (b) uando no lo es.
Problema 7.11
La gura 3.32 muestra el pro eso pendulo doble no lineal que es una exten-
sion del pendulo simple des rito en la se ion 3.1. El a oplamiento entre
los dos pendulos de igual longitud no es exible. Las e ua iones que des-
riben la dinami a del sistema son materia del problema propuesto 3.13.
7.8 Problemas Propuestos 403

Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar


simultaneamente las posi iones  y  on mnimo tiempo de estabiliza ion
y mnimo sobreimpulso, de modo tal que el pendulo doble permanez a en
posi ion verti al. Considerar que la arga adi ional esferi a de 0.02 kg vara
en  6 %. Realizar el al ulo del ontrolador para una entrada v es alon.
El sistema dise~nado debe ser del tipo m = 1 y la sele ion del tiempo de
muestreo es a onvenien ia del dise~no.
Problema 7.12
La gura 3.33 muestra el pro eso doble grua-puente no lineal que es una ex-
tension del pro eso grua-puente des rito en la se ion 3.2. El a oplamiento
entre los dos pendulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar
simultaneamente las posi iones  y  on mnimo tiempo de estabiliza ion y
mnimo sobreimpulso, de modo tal que la doble grua puente permanez a en
posi ion verti al uando el arro realiza un re orrido predeterminado. Con-
siderar que la arga adi ional esferi a de 0.02 kg vara en  6 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema dise~nado debe
ser del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia
del dise~no.
Problema 7.13
La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una
velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si
se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_ (t) + bv(t) = u(t); v_ =
dt
Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar la
velo idad del movil on mnimo tiempo de estabiliza ion y mnimo sobreim-
pulso. Considerar una in ertidumbre de  5 % en todos los parametros.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
dise~nado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del dise~no.
404 Control Robusto

Problema 7.14
El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque
su movimiento rotatorio, mediante a oples ade uados a su eje, puede on-
vertirse fa ilmente en movimiento de trasla ion. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir-
uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1.
(a) Dise~nar un sistema de ontrol robusto on modelo interno para esta-
bilizar la velo idad angular del eje del motor on las espe i a iones
siguientes: tiempo de estabiliza ion menor que 4 s, error en estado es-
table menor al 1 % y sobreimpulso de la salida menor al 5 %. Considere
varia iones de  7 % en los parametros b y J . Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema dise~nado debe ser
del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia
del dise~no.
(b) Dise~nar un sistema de ontrol robusto on las espe i a iones anterio-
res, pero en este aso para estabilizar la posi ion del eje del motor.
Problema 7.15
Repetir los problemas 7.1 al 7.14 uando la entrada v toma las formas:
v(s) =
1 ; v(z) = z= ;  = 100T
s + 1 z e T==tau
donde T es el tiempo de muestreo.
Problema 7.16
Repetir los problemas 7.1 al 7.14 uando la entrada v toma las formas:
1
v(s) = 2 ; v(z ) =
Tz
s (z 1)2
y el tipo del sistema es m=2. Tomar omo se~nal de referen ia una rampa
de pendiente unitaria.
Cap
tulo 8

Control No Lineal

Luego de formulado el problema de ontrol a resolver, el siguiente paso es


en ontrar un modelo que sea apaz de apturar la dinami a del pro eso en el
rango de opera ion. En realidad todos los pro esos son no lineales y mu has
ve es resulta mas onveniente trabajar dire tamente on el modelo no lineal. As
podemos dise~nar sistemas de ontrol no lineal empleando diversas te ni as tales
omo [13℄: el metodo dire to de Liapunov, ontrol deslizante, ontrol adaptivo
( aptulo 5) y linealiza ion de la realimenta ion (materia de este aptulo).
La idea fundamental del ontrol de pro esos no lineales empleando la te ni a
de linealiza ion por realimenta ion, es linealizar (hallar un modelo lineal equi-
valente) el pro eso (par ial o totalmente, si fuera posible) mediante un ambio
ade uado de oordenadas y una realimenta ion del ve tor de estado de di ho
pro eso, de modo tal que el pro eso resultante (su forma normal) nos permita
apli ar te ni as de ontrol lineal (en el aso de linealiza ion ompleta del pro-
eso), o bien, ata ar los problemas de ontrol on un grado de di ultad menor
(en el aso de linealiza ion par ial).
El pro edimiento de dise~no sugerido se apli a al ontrol no lineal de posi ion
de un servomotor D.C., sujeto a la a ion de una arga no lineal y al efe to que
produ en algunas no linealidades inherentes al pro eso, tales omo satura ion
del ampli ador y fri ion de Coulomb.
La penultima se ion, problemas resueltos, esta dedi ada al dise~no de sis-
temas de ontrol no lineal para diferentes pro esos. En la ultima se ion se pro-
ponen proplemas de dise~no. Todos los ar hivos orrespondientes a los ejer i ios,
problemas, dise~nos, simula iones y software desarrollados se pueden des argar
del sitio: http:// ee.uni.edu.pe/728681F.
406 Control No Lineal

8.1 Herramientas Matemati as


Las herramientas matemati as a dis utir orresponden a la geometra dife-
ren ial y a la topologa. Solo se tratan los puntos dire tamente involu rados
on la te ni a de linealiza ion por realimenta ion. Por esta razon es que
esas matemati as no se in luyeron omo parte del aptulo 1.
La nota ion:
f : Rn ! Rn (8.1)
indi a que a ada fun ion ve torial f le orresponde un ampo ve torial en el
espa io n-dimensional Rn. Los ampos ve toriales de interes para nosotros
son los denominados suaves. Un ampo ve torial f (x) es suave uando tal
fun ion ve torial posee in nitas derivadas par iales ontinuas.
Si h(x) es una fun ion es alar de variable ve torial suave, donde x es el
ve tor de estado, enton es su gradiente es:
2 h 3
h 6 x.. 1
rh = x =4 . 7
5 (8.2)
h
xn
El ja obiano de f (x) tiene la forma:
2 f1 f1 3
x1  xn
f 6 .. ...
rf = x =4 . 7
5 (8.3)
fn
x1  fn
xn

8.1.1 Derivadas y Cor hetes de Lie


De ni ion 8.1 Dada una fun ion es alar suave h(x) : Rn ! R y un am-
po ve torial suave f (x) : Rn ! Rn, nosotros podemos de nir una nueva
fun ion es alar Lf h = rh f denominada la derivada de Lie, o simplemente
la derivada dire ional de h a lo largo de la dire ion del ve tor f .
Su esivas derivadas de Lie pueden ser de nidas re ursivamente:
L0f h = rh f 0 = h
Lif h = Lf (Lf 1 h) = r(Lif 1 h) f;
i i = 1; 2; : : : (8.4)
Del mismo modo, si g es otro ampo ve torial, la fun ion es alar LgLf h(x)
es:
Lg Lf h(x) = r(Lf h) g (8.5)
8.1 Herramientas Matemati as 407

Ejemplo 8.1
Determinar las dos primeras derivadas de Lie de la salida y para el pro eso
siguiente:
x_ = f (x); y = h(x)
Solu ion: Las derivadas de la salida son:
h
y_ = x_ = Lx_ h = Lf h
x
 [Lf h℄
y = x_ = L2f h
x
De ni ion 8.2 Sean f y g dos ampos ve toriales en Rn. El or hete de
Lie de f y g se de ne omo un ter er ampo ve torial de la forma:
[f; g℄ = rg f rf g = adf g
Observar que al or hete de Lie se le denota tambien omo adf g, donde
ad signi a adjunta. Su esivos or hetes de Lie se pueden de nir re ursiva-
mente:
adf 0 g = g
adf g = [f; adf 1 g℄; i = 1; 2; : : :
i i

Ejemplo 8.2
Determinar [f; g℄ para el pro eso no lineal x_ = f (x) + gu, donde:
   
f= 2 x 1 + ax 2 + senx1 ; g = os(2x1 ) 0
x2 osx1

Solu ion:
  
[f; g℄ = 0 0 2 x 1 + ax 2 + senx 1

2sin(2x1 ) 0 
x2 osx1
2 + osx1 a 0 
x2 sinx1 osx1 os(2x1 )
 
a os (2 x 1 )
= osx1 os(2x1 ) 2sen(2x1 )( 2x1 + ax2 + senx1)
408 Control No Lineal

Lema 8.1 Los or hetes de Lie satisfa en las propiedades siguientes:


1. Bilinealidad:

[ 1 f1 + 2 f2; g℄ = 1[f1 ; g℄ + 2[f2 ; g℄


[f; 1 g1 + 2 g2℄ = 1[f; g1 ℄ + 2 [f; g2 ℄
2. Anti onmutatividad:
[f; g℄ = [g; f ℄
3. Identidad de Ja obi:

Lad g h = Lf Lg h Lg Lf h
f

donde f; f1 ; f2; g; g1 y g2 son ampos ve toriales, 1 y 2 son onstantes


es alares y h(x) es una fun ion diferen iable.
8.1.2 Difeomor smo y Transforma ion de Estados
El on epto de difeomor smo, que puede ser visto omo una generaliza ion
del on epto familiar de transforma ion de oordenadas, es el siguiente:
De ni ion 8.3 Una fun ion : Rn ! Rn de nida en una region
, se
denomina un difeomor smo si  y su inversa son suaves. Si
= Rn,
enton es (x) es un difeomor smo global. Si (x) se de ne en una region
nita y para un punto dado, enton es el difeomor smo es lo al.
El siguiente lema permite determinar difeomor smos lo ales.
Lema 8.2 Sea (x) una fun ion suave de nida en una region
en Rn.
Si el ja obiano r es no singular en un punto x = x
 de
, enton es (x)
de ne un difeomor smo lo al en una region de
.

Ejemplo 8.3
Determinar el difeomor smo lo al alrededor del origen para el sistema si-
guiente:    
z1 = (x) = 2x1 + 5x1 x22
z2 3senx2
8.1 Herramientas Matemati as 409

Solu ion: El ja obiano de  para x = (0; 0) es:




= 2 + 5x22 10x1 x2  =

2 0
x 0 3 osx2 x=(0;0) 0 3
que posee rango 2, indi andonos que  posee inversa porque es no singular
y onstituye un difeomor smo lo al de a uerdo al lema 8.2.
8.1.3 Transforma ion no Lineal de Estados
Un difeomor smo puede ser usado para transformar una representa ion no
lineal en otra, en terminos de un nuevo ve tor de estado. Consideremos que
el pro eso no lineal sea des rito por la siguiente representa ion en el espa io
de estado:
m
X
x_ = f (x(t)) + gj (x(t))uj (t); y(t) = h(x(t)) (8.6)
j =1
donde u(t) = [u1 (t); : : : ; um (t)℄T es el ve tor de ontrol (la variable manipu-
lada) del pro eso de orden m, x(t) = [x1 (t); : : : ; xn (t)℄T es el ve tor de estado
del pro eso de orden n, y(t) = [y1(t); : : : ; yp(t)℄T es el ve tor de salida del
pro eso (la variable ontrolada) de orden p y las fun iones f = [f1; : : : ; fn℄T ℄,
g = [g1 ; : : : ; gm ℄T ℄ y h = [h1 ; : : : ; hp ℄T orresponden a ampos ve toriales in-
nitamente diferen iables.
Asumamos la siguiente transforma i 2
on no lineal 3de estados:
1 (x1 ; : : : ; xn )
z = (x) = 4 6 ... 7
5 (8.7)
n (x1 ; : : : ; xn )
donde la fun ion de transforma ion  es invertible y tanto  omo su inversa
 1 son in nitamente diferen iables. Notar que la transforma ion dada en la
e ua ion (8.7) es un difeomor smo. Mientras que la propiedad de inversion
de  permite un retorno a los estados originales, la propiedad de diferen-
ia ion garantiza que la des rip ion del pro eso on las nuevas oordenadas
sea tambien in nitamente diferen iable, tal omo lo es el pro eso original.
Empleando la transforma ion z = (x) en la e ua ion (8.6) obtenemos:
 

z_ = x_ (t)
x
x(t)
    m
  X
= x x(t)
f (x(t)) + g (x(t))uj (t)
x x(t) j =1 j
(8.8)
410 Control No Lineal

donde x es un punto de equilibrio para el ual la matriz ja obiana es no


singular, lo que signi a que su inversa existe. Luego, podemos obtener la
siguiente representa ion no lineal para el ve tor de estado z, omo sigue:
m
X
z_ = f (z(t)) + g~j (z(t))uj (t);
~ y(t) = h~(z(t)) (8.9)
j =1
 
~f (z) = 
f ( 1 (z))
x
 

g~j (z)
= g ( 1 (z))
x j
h~(z) = h( 1 (z))
Observar que (8.9) onstituye un nuevo sistema no lineal on un ve tor de
estado z.
8.1.4 El Teorema de Frobenius
El teorema de Frobenius es una herramienta importante para el tratamiento
formal de la linealiza ion por realimenta ion de pro esos de orden n. Este
teorema propor iona las ondi iones ne esarias y su ientes para resolver
una lase espe ial de e ua iones on derivadas par iales. Antes de presentar
el teorema en uestion se requiere de las siguientes de ni iones:
De ni ion 8.4 Se di e que un onjunto linealmente independiente de am-
pos ve toriales [f1 ; : : : ; fm ℄ en Rn es ompletamente integrable, si y solo si
existen (n m) fun iones es alares h1 (x); h2 (x); : : : ; hn m (x) que satisfa en
el siguiente sistema de e ua iones diferen iales par iales:
rhi fj = 0
donde 1  i  n m, 1  j  m. En adi ion, los gradientes rhi son
tambien linealmente independientes.
La de ni ion anterior impli a la existen ia de n(m n) e ua iones diferen-
iales par iales de la forma rhifj = 0.
De ni ion 8.5 Se di e que un onjunto linealmente independiente de am-
pos ve toriales [f1 ; : : : ; fm ℄ en Rn es involutivo, si y solo si existen fun iones
es alares ijk : Rn ! Rn tales que:
m
X
[rg f rf g℄(x) = [f; g℄(x) = ijk (x)fk (x); 8 i; j
k=1
8.1 Herramientas Matemati as 411

Ya vimos que la nota ion [f; g℄ es ono ida omo el or hete de Lie. Par-
tiendo de la de ni ion anterior se puede dedu ir que:
1. Los ampos ve toriales onstantes, es de ir, si fk y gk son onstantes
para ualquier k = 1; : : : ; m, son siempre involutivos puesto que:
m
X
[f; g℄(x) = 0 = ijk (x)fk (x); 8 x; i; j
k=1
2. Un onjunto ompuesto por un solo ampo ve torial f es involutivo
porque [f; f ℄ = 0.
3. Si un onjunto de ampos ve toriales [f1; : : : ; fm ℄ es involutivo, impli a
que para todo i; j :
rango [f1 (x); : : : ; fm (x)℄ = rango [f1 (x); : : : ; fm (x); [fi ; fj ℄℄
Ahora s podemos formular el teorema de Frobenius:
Teorema 8.1 (Frobenius) Sea [f1 ; f2 ; : : : ; fm ℄ un onjunto de ampos ve -
toriales linealmente independientes. Se di e que tal onjunto es integrable si
y solo si es involutivo.
Ejemplo 8.4
Considere el onjunto de e ua iones diferen iales par iales:
h h
4x3 x =0
1 x2
h h h
x1 + (x23 3x2 ) x
x1 2
+ 2x3
x3
=0
donde sus ampos ve toriales aso iados poseen la forma:
f1 = [4x3 1 0℄T ; f2 = [ x1 (x23 3x2 ) 2x3 ℄T
Determine si tal onjunto de e ua iones diferen iales par iales es solu ionable
(o en otras palabras, si [f1 ; f2℄ es ompletamente integrable).
Solu ion: Operando, en ontramos que:
[f1 ; f2℄ = [ 12x3 3 0℄T
Dado que [f1 ; f2℄ = 3f1 + 0f2 , este onjunto de ampos ve toriales es in-
volutivo. Por onsiguiente, las e ua iones diferen iales par iales dadas son
solu ionables.
412 Control No Lineal

8.2 Grado Relativo


Dado el siguiente pro eso no lineal de una entrada y una salida:
x_ = f (x) + g(x)u; y = h(x) (8.10)
se desea obtener una rela ion dire ta entre la entrada u y la salida y. Para
ello derivamos la salida omo sigue:
h(x) h(x) h(x)
y_ = x_ = f (x) + g(x)u
x x x
= Lf h(x) + Lgh(x)u
Si Lg h(x) 6= 0, enton es se obtiene la rela ion deseada entre y y u; en aso
ontrario, debemos seguir derivando la salida remanente y_ = Lf h(x) omo
se muestra a ontinua ion:

y = L h(x)x_
x f
 
= x
Lf h(x)f (x) + Lf h(x)g(x)u
x
= L2f h(x) + Lg Lf h(x)u

Nuevamente, si Lg Lf h(x) 6= 0, enton es se tiene la rela ion deseada. En


aso ontrario, se debe seguir derivando la salida hasta que en la r-esima
derivada la entrada u aparez a en forma expl ita, omo sigue:
yr = Lrf h(x) + Lg Lrf 1 h(x)u; Lg Lrf 1 h(x) 6= 0

De ni ion 8.6 El grado relativo del pro eso univariable no lineal dado en
la e ua ion (8.10), es el numero de ve es r que hay que derivar la salida
hasta obtener:
Lg Lif h(x) = 0; i = 1; 2; : : : ; r 2 (8.11)
Lg Lrf 1 h(x) 6= 0 (8.12)
para todo x que pertenez a a una region
de Rn.
8.3 Forma Normal de Pro esos No lineales 413

8.3 Forma Normal de Pro esos No lineales


La te ni a de linealiza ion por realimenta ion requiere de una representa ion
no lineal bastante util del pro eso a ontrolar: la forma normal. La transfor-
ma ion no lineal de oordenadas que permite llevar un pro eso no lineal de
una entrada y una salida (e ua i 1
on (8.10)) a su forma normal, involu ra los
terminos h(x); Lf h(x); : : : ; Lf h(x), tal omo veremos mas adelante. Por
r
onsiguiente, tal transforma ion depende del grado relativo r del pro eso.
Empezaremos por el aso mas simple: r = n, donde n es el orden del pro eso.
La siguiente transforma ion de oordenadas:
2 3 2 3
1 (x) h(x)
6 2 (x) 7 6 Lf h(x) 7
z = (x) = 6 6 .
. 7=6
7 6
.
.
7
; y = h(x) (8.13)
4 . 5 4 n 1. 75
n (x) Lf h(x)
on x = [x1 ; x2;    ; xn℄T , umple on las ondi iones de una transforma ion
no lineal; es de ir, es un difeomor smo basado en la hipotesis de que el orden
del sistema es r = n. Por onsiguiente, di ha transforma ion puede llevar al
pro eso des rito en la e ua ion (8.10) a la forma siguiente:
1 (x)
z_1 = x_
x
= x 1 (x) [f (x) + g(x)u℄
= Lf h(x) + Lg h(x)u = Lf h(x) = 2(x)
= z2
...
n 1 (x)
z_n 1 = x_
x
n 2
= Lf h(x) [f (x) + g(x)u℄
x
= Lnf 1 h(x) + Lg Lnf 2 h(x)u = Lnf 1 h(x) = n (x)
= zn
z_n = Lnf h(x) + Lg Lnf 1 h(x)u
= Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u = b(z) + a(z)u

y = z1 (8.14)
414 Control No Lineal

Notar que en la e ua ion anterior, a(z) 6= 0 por de ni ion, ya que en este


aso r = n.
Cuando el pro eso no lineal posee rango r < n, enton es el ambio de o-
ordenadas desarrollado anteriormente ondu e a una transforma ion par ial,
en vista de que solo se pueden de nir r fun iones de la forma 1(x); : : : ; r (x)
linealmente independientes. Sin embargo, es posible agregar n r fun iones
de la forma r+1(x); r+2 (x); : : : ; n (x), de modo tal que (x) sea un difeo-
mor smo. Con ello, la forma normal del pro eso (8.10) resulta en la siguiente
representa ion en el espa io de estado:
z_1 = z2
z_2 = z3
...
z_r 1 = zr
z_r = Lrf h( 1 (z)) + Lg Lrf 1 h( 1 (z))u = b(z) + a(z)u
z_r+1 = w1 (z)
...
z_n = wn r (z)
y = z1 (8.15)
donde w1 ; w2 ; : : : ; wn r son fun iones suaves que dependen del nuevo estado
z y no de la entrada manipulada u.

8.4 Linealiza ion Exa ta y la Ley de Control


La linealiza ion exa ta se re ere a tratar on pro esos no lineales de grado
r = n. En tales pro esos es posible determinar una ade uada realimenta ion
no lineal que onduz a a una linealiza ion exa ta del pro eso original. El
pro eso puede ser univariable ( on una entrada y una salida) o multivariable
( on multiples entradas y multiples salidas). Nosotros solo nos o uparemos
del aso univariable.
Hemos visto que un ambio de oordenadas de la forma z = (x), des-
rito en la e ua ion (8.13) y apli ado al pro eso no lineal de la e ua ion
(8.10), produ e un onjunto de nuevas oordenadas (la nueva representa ion
en el espa io de estado) que poseen la forma dada en (8.14), e ua ion que
8.4 Linealiza ion Exa ta y la Ley de Control 415

volvemos a rees ribir a ontinua ion:


z_1 = z2
z_2 = z3
...
z_n 1 = zn
z_n = Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u = b(z) + a(z)u
y = z1 (8.16)
Si se de ne una se~nal de realimenta ion u (la ley de ontrol no lineal) de la
forma: 1 [ b(z) + v℄
u= (8.17)
a(z)
donde v es una nueva entrada, enton es el nuevo onjunto de e ua iones
viene a ser:
z_1 = z2
z_2 = z3
...
z_v = v
y = z1 (8.18)
que en forma ompa ta resulta en la siguiente representa ion lineal en el
espa io de estado:
z_ = Ax + Bv; y = Cx (8.19)
donde:
2
0 1 0 ::: 0 3 2
03
6 0 0 1 ::: 0 7 6 0 7
6 .. .. .. . . 6 .. 7
6 7 6 7
6
. . 7
7 6 7

A = 6 . . . . . 7 ; B = 6 . 7 ; C = 1 0 : : : 0 0 (8.20)


4 0 0 0 ::: 1 5 4 0 5
0 0 0 ::: 0 1
Observar que la nueva entrada del pro eso lineal es v. La gura 8.1 mues-
tra el pro eso de linealiza ion des rito hasta ahora. El pro eso lineal de la
e ua ion (8.19) es ompletamente ontrolable y ompletamente observable,
416 Control No Lineal

ya que sus matri es de ontrolabilidad [B AB : : : An 1B ℄ y de observabi-


lidad [C T AT C T : : : (AT )n 1 C T ℄ poseen rango n (rango ompleto). Por
otra parte, el pro eso resultante es un integrador de orden n debido a que
su fun ion de transferen ia resulta:
y(s) 1
= C [sI A℄ 1 B = n (8.21)
v(s)

 
s

v
 
- 
6
- +

6
u
- x_ = f (x) + g(x)u

z
x

b(z)  z = (x) 
a(z)
1
a(z)  ?- C
y
-

Figura 8.1: Linealiza ion por realimenta ion.

Respe to al pro eso de linealiza ion desarrollado, debemos remar ar lo


siguiente:
 El sistema de lazo errado resultante ( gura 8.1) es lineal, ompleta-
mente ontrolable y ompletamente observable. Por onsiguiente, el
problema de ontrol a resolver, ya sea de regula ion o de seguimiento
de traye torias, queda resuelto dise~nando v on ualquier te ni a de
ontrol lineal ono ida.
 En general, la realimenta ion no lineal requiere de todo el ve tor de
estado z, por lo que es ne esario que todos sus elementos sean medi-
bles. De lo ontrario, estamos obligados a estimarlos empleando un
observador no lineal, omo veremos mas adelante.
Condi iones para Linealiza ion Exa ta
La linealiza ion desarrollada anteriormente fue posible debido a la existen ia
de una fun ion de salida h(x) respe to a la ual el pro eso no lineal original
8.4 Linealiza ion Exa ta y la Ley de Control 417

tiene grado relativo r = n. Resaltemos que un pro eso no lineal univariable


omo el de la e ua ion (8.10) posee grado r = n uando la fun ion h(x),
para un entorno alrededor del punto de opera ion x, satisfa e:
Lg h(x) = Lg Lf h(x) =    = Lg Lnf 2 h(x) = 0
Lg Lnf 1 h(x) 6= 0 (8.22)
Las ondi iones para linealiza ion exa ta pueden ahora ser rigurosamente
formalizadas.
Teorema 8.2 El pro eso univariable no lineal de la e ua ion (8.10):
x_ = f (x) + g(x)u
donde f (x) y g(x) son ampos ve toriales suaves, es linealizable si y solo si
existe una region
en donde se umplen las ondi iones siguientes:
1. Los ampos ve toriales:
[g; adf g; : : : ; adnf 1 g℄
son linealmente independientes en
, lo que equivale a de ir, que el
rango de la matriz resultante [.℄ debe ser igual al orden n del pro eso.
2. El onjunto:
[g; adf g; : : : ; adnf 2 g℄
es involutivo en
.
La primera ondi ion puede ser interpretada omo una ondi i 1
on de on-
trolabilidad dado que los ampos ve toriales [g; adf g; : : : ; adf g℄ apli a-
n
dos a pro esos lineales se onvierten en la ono ida matriz de ontrolabilidad
[B; AB; : : : ; An 1B ℄. El rango de esta matriz debe ser n para que el pro eso
lineal (entendiendose que el modelo del pro eso es lineal) sea ompletamente
ontrolable (subse ion 2.3.6). Sin embargo, puede o urrir que un sistema
no lineal sea ontrolable, mientras que su modelo linealizado no lo es. Por
ello, la primera ondi ion puede onsiderarse omo una generaliza ion de la
ondi ion de ontrolabilidad.
La ondi ion involutiva es menos intuitiva. Para sistemas lineales, tal
ondi ion se satisfa e trivialmente ya que los ampos ve toriales son ons-
tantes. Pero, en general, no se puede de ir lo mismo uando se trata on
pro esos no lineales.
418 Control No Lineal

8.5 Observadores No Lineales


El estudio de la observabilidad en sistemas lineales tiene su base en la matriz
de observabilidad, que para sistemas univariables no forzados de la forma:
x_ = Ax(t); y(t) = Cx(t)
se de ne omo: 2 3
C
6 CA 7
O= 6
6 ... 7
7 (8.23)
4 5
CAn 1
El aso no lineal y no forzado que nos o upa posee la des rip ion:
x_ = f (x); y(t) = h(x) (8.24)
uya orrespondiente matriz de observabilidad generalizada es:
2 3
h(x)
 6 Lf h(x) 7
O (x) , 6 6 .
.
7
(8.25)
x 4 . 75
Lnf 1 h(x)
Es fa il demostrar que si f (x) = Ax y h(x) = Cx, las matri es de
observabilidad de las e ua iones (8.23) y (8.25) se igualan. Supongamos que
la matriz O(x) posea inversa para todo x. En tal aso, la transforma ion
de nida por: 2 3
h(x)
 6 Lf h(x) 7
z = (x) = 6 ... 775 (8.26)
x 6 4
Lnf 1 h(x)
representa un ambio de oordenadas. Empleando los resultados anteriores
y en analoga on la e ua ion (8.16); la des rip ion en el espa io de estado
para las nuevas oordenadas (notar que g = 0) es:
2 3 2 3
z_1 z2
6 z_2 7 6 z3 7
6 .. 7 6 ...
6 7 6 7
6 . 7=6 7; y = z1 (8.27)
7
6 7 6 7
4 z_n 1 5 4 zn 5
z_n Lnf h[ 1 (z)℄
8.5 Observadores No Lineales 419

que posee la forma matri ial siguiente:


z_ = Az + BLnf h( 1 (z)); y = Cz (8.28)
donde:2
0 1 0 ::: 0 3 2
03
6 0 0 1 ::: 0 7 6 0 7
A = 6 . . . ... ... 7 ; B = 6
6 .. .. .. . 77
6 7 6
6 .. 7 ; C = 1 0 : : : 0 0
 
6
7
7 6 7
(8.29)
4 0 0 0 ::: 1 5 4 0 5
0 0 0 ::: 0 1
Se puede demostrar que la matriz de observabilidad del pro eso des rito
en la e ua ion (8.28) es la matriz identidad. Por onsiguiente, tal pro eso es
ompletamente ontrolable. Conforme a las rela iones (8.24), (8.25) y (8.26)
se tiene que:

z_ = x_ = O(x)f (x)
x
= Az + BLnf h( 1 (z))
y = Cz (8.30)
El observador a dise~nar debe estimar el ve tor de estado z; es de ir, debe
determinar su estimado ^z empleando las medi iones a la entrada y a la salida
del pro eso. Ha iendo una extension de los bien ono idos observadores
lineales (subse ion 2.3.6), para el observador no lineal podemos onsiderar
la dinami a siguiente :
d^z
dt
= A^z + BLnf h( 1 (z)) + L[y C^z℄; y^ = C^x (8.31)
donde observamos que el termino L[y C^z℄ es propor ional al error entre la
salida del pro eso y y la salida del observador y^. Para obtener la expresion
del observador para los estados x(t) del pro eso no lineal, empleamos la
version estimada de la e ua ion (8.30) que nos permite despejar el ve tor de
estado estimado d^x=dt omo sigue:
d^x d^z
= O 1 (x^)
dt dt
y usando la rela ion (8.31) obtenemos:
d^x
dt
= O 1(x^)fA^z + BLnf h( 1 (z)) + L[y C^z℄g
= O 1(x^)fO(x^)f (x^) + L[y C^z℄g
= f (x^) + O 1 (x^)L[y h(x^)℄ (8.32)
420 Control No Lineal

que es la e ua ion del observador no lineal para el sistema no forzado


x_ = f (x), y = h(x), on ondi ion ini ial x^(0), siempre que O 1 (x) exista.
Notar que tambien hemos usado el he ho de que:
y^ = h(x^) = h( 1 (^z)) = C^z
Para el aso de pro esos no lineales forzados on grado relativo r = n,
y teniendo en uenta la transforma ion a ostumbrada z = (x), enton es el
sistema on las nuevas oordenadas resulta:
z_ = Az + B [Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u℄ (8.33)
Luego, por extension (ver e ua ion (8.31)), la dinami a del observador para
el sistema forzado:
x_ = f (x) + g(x)u; y = h(x)
tiene la forma:
d^z
dt
= A^z + BLnf h( 1 (^z)) + Lg Lnf 1h( 1 (^z))u + L[y C^z℄ (8.34)
que debe umplir on los requerimientos siguientes: que el pro eso posea
grado relativo r = n, que su matriz de observabilidad sea invertible y que la
entrada u sea uniformemente a otada. La e ua ion del observador para el
sistema original toma la forma siguiente:
d^x
dt
= f (x^) + g(x^)u + O 1L[y(t) h(x^)℄ (8.35)
para una ondi ion ini ial x^(0).
Cal ulo de la Matriz de Ganan ia L del Observador
Dado que el par [A; C ℄ dado en (8.29) es ompletamente observable, una
forma de obtener L es apli ar la ono ida formula del observador lineal [3℄:
2 3
n an
L = (W N T ) 1 6
4
... 7
5 (8.36)
1 a1
donde n es el orden del pro eso, y:
 1C T 
N = C T AT C T    (AT )n
8.6 Pro edimiento de Dise~no 421
2
an 1 an 2    a1 1 3
6 an 2 an 3    1 0 77
W =
6
6
6
... ... ... ... 77
6 7
4 a1 1  0 0 5
1 0  0 0
Los parametros ai, i = 1; : : : ; n, se obtienen de la e ua ion:
jsI Aj = sn + a1sn 1 +    + an 1s + an
mientras que los parametros i, i = 1; : : : ; n, se determinan a partir de las
ra es deseadas del observador i, i = 1; : : : ; n. Estas ra es onforman la
e ua ion ara tersti a del observador:
(s 1 )    (s 1 ) = sn + 1 sn 1 +    + n 1s + n
y deben tener parte real negativa para garantizar la estabilidad del obser-
vador no lineal.
8.6 Pro edimiento de Dise~
no
El pro edimiento para dise~nar el sistema de ontrol no lineal basado en la
te ni a de linealiza ion por realimenta ion es omo sigue:
1) Formular el problema (de nir espe i a iones de dise~no).
2) Determinar el modelo no lineal ontinuo del pro eso.
3) Determinar el grado relativo del modelo no lineal ontinuo del pro eso
(subse ion 8.2).
4) Comprobar que se umplen las ondi iones de linealiza ion exa ta del
modelo no lineal ontinuo del pro eso (subse ion 8.4).
5) Determinar la forma normal del pro eso no lineal (subse ion 8.3).
6) Implementar la linealiza ion por realimenta ion de estado y la ley de
ontrol no lineal (subse ion 8.4).
7) Dise~nar el observador no lineal de estados (si fuera ne esario).
8) Simular el sistema de ontrol no lineal on el proposito de prede ir un
rendimiento satisfa torio.
422 Control No Lineal

9) Implementar el hardware.
10) Implementar el software de ontrol.
11) Realizar pruebas de fun ionamiento (resultados experimentales).

8.7 Control No Lineal de un Servosistema


8.7.1 Formula ion del Problema
El servomotor D.C. on arga no lineal mostrado en la gura 3.9 y des rito en
la se ion 3.3, es un pro eso de una entrada y una salida. Este servomotor
posee un engranaje redu tor de velo idad y puede ser ontrolado por el
voltaje de armadura. La arga no lineal es una varilla metali a a oplada
perpendi ularmente al eje del servomotor, a manera de un brazo roboti o de
un grado de libertad. En el extremo libre de di ha varilla se pueden a oplar
argas adi ionales. De esta manera la arga no lineal se ha e variable.
El objetivo de ontrol es dise~nar e implementar un sistema de ontrol
no lineal basado en la te ni a de linealiza ion por realimenta ion, de modo
tal que la varilla se posi ione en una referen ia predeterminada o siga una
traye toria en el rango de 0 a 2 rad. El sobreimpulso de la respuesta
debe ser mnimo no obstante la presen ia de la arga no lineal y de las no
linealidades del pro eso, omo las fri iones estati a y de Coulomb, y la
satura ion en el ampli ador de poten ia.
Las deriva iones que siguen a ontinua ion orresponden a dos asos del
pro eso:
1. Modelo no lineal de ter er orden del pro eso uando onsideramos que
la indu tan ia de armadura L es no despre iable.
2. Modelo no lineal de segundo orden del pro eso uando se despre ia la
indu tan ia L.
8.7.2 Modelo del Pro eso
Modelo No Lineal de Ter er Orden (L 6= 0)
La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La
tabla 3.2 des ribe las variables y los valores de los parametros. Asumiendo
que la se~nal de ontrol u va a ser ompensada en software de los efe tos de la
8.7 Control No Lineal de un Servosistema 423

fri ion estati a y fri ion de Coulomb, enton es el pro eso no lineal puede
ser des rito mediante la siguiente representa ion en el espa io de estado:
x_ = f (x) + g(x)Ka t u; y = h(x) (8.37)
donde:
2 3
x2
f (x) = 4 ( M )senx1 M x2 M1 TN + nK
N B
M x3
5
nE x R x + Ka t u
2
L 2 L 3 L
03
g(x) = 4 0 5; h(x) = x1 (8.38)
1
L

Los elementos del ve tor de estado [x1 x2 x3℄T son la posi ion angular, la
velo idad angular y la orriente de armadura, respe tivamente, y Ka t u es la
tension de armadura. Notar que el modelo del pro eso no lineal es ontinuo
y diferen iable.
El termino no lineal TN debido a las fri iones estati a y de Coulomb,
puede no onsiderarse, dado que sus efe tos van a ser ompensados por
software uando el sistema de ontrol no lineal se implemente en tiempo
real.
Modelo No Lineal de Segundo Orden (L = 0)
El modelo no lineal de segundo orden del pro eso es (subse ion 3.3):
 
x2
x_ = BR+n2 KE x TN N + nKMRK u = f (x) + g(x)u
2 M senx1
a t
MR M
y = h(x) = x1 (8.39)
donde:
   
f (x) =
x2
; g(x) =
0
BR+n2 KE x TN N nKa t K
MR 2 M M senx1 MR

Al igual que en el aso anterior (L no despre iable), el termino no lineal


TN debido a las fri iones estati a y de Coulomb, puede no ser tomado en
uenta, dado que su efe to va a ser ompensado por software.
424 Control No Lineal

8.7.3 Determina ion del Grado Relativo


Grado Relativo del Pro eso No Lineal de Ter er Orden
De a uerdo a lo estable ido en la subse ion 8.2, empleamos las derivadas
de Lie en el modelo del pro eso no lineal de ter er orden omo sigue:
Lf h(x) = rh(x)f (x) = x2 (8.40)
Lg Lf h(x) = r(Lf h(x))g(x) = 0 (8.41)
N B nK
L2f h(x) = r(Lf h(x))f (x) = senx1 x2 + x (8.42)
M M M 3
nK
Lg L2f h(x) = r(L2f h(x))g(x) = 6= 0 (8.43)
ML
por onsiguiente, el rango del pro eso respe to a la salida y es r = 3. Ello
impli a que el pro eso en uestion es ompletamente linealizable.
Grado Relativo del Pro eso No Lineal de Segundo Orden
De a uerdo a lo estable ido en la subse ion 8.2, empleamos las derivadas
de Lie en el modelo del pro eso no lineal de segundo orden omo sigue:
Lf h(x) = rh(x)f (x) = x2 (8.44)
nK K
Lg Lf h(x) = r(Lf h(x))g(x) = a t 6= 0 (8.45)
MR
Por onsiguiente, el rango del pro eso respe to a la salida y es r = 2. Ello
impli a que el pro eso en uestion es ompletamente linealizable.
8.7.4 Comprobar Linealiza ion Exa ta
Linealiza ion Exa ta del Modelo Lineal de Ter er Orden
Para apli ar las ondi iones de linealiza ion estable idas en el teorema 8.2,
debemos al ular:
adf g = [f; g℄ = rg f rf g
2
0 1 0 32 0 3 2 0 3
= 4 MN osx1 MB nK M
54 0 5 = 4 nK 5
ML
0 L nE R 1 R
L L L2
ad2f g = [f; adf g℄ = r(adf g) f rf adf g
8.7 Control No Lineal de un Servosistema 425
2 32 3 2 3
0 1 0 0 nK
ML
=4 N
M osx1
B
M
nK 5 4
M
nK 5
ML =4 nKB nKR 5
M22 L ML2
0 nE
L
R
L
R
L2
n KE R2
ML +2 L3
2
0 0 nK
ML
3

[g adf g ad2f g℄ = 4 0 nK
ML
nKB nKR 5
M22 L ML2
1 R n KE R2
+
L L2 ML 2 L3
Dado que:
n2 K 2
det[g adf g ad2f g℄ =
M 3 L3
enton es tal onjunto esta onformado por ampos ve toriales linealmente
independientes. Por otra parte, el onjunto:
[g adf g℄
es involutivo porque es onstante.
Linealiza ion Exa ta del Modelo Lineal de Segundo Orden
Como en el aso anterior, para apli ar las ondi iones de linealiza ion es-
table idas en el teorema 8.2, debemos al ular:
adf g = [f; g℄ = rg f rf g
Es fa il demostrar que:
nKa t K 2
 
det[g adf g℄ =
MR
lo que signi a que tal onjunto esta onformado por ampos ve toriales
linealmente independientes.
Por otra parte, el onjunto [g adf g℄ es involutivo porque es onstante.
8.7.5 La Forma Normal
Forma Normal del Modelo No Lineal de Ter er Orden
La forma normal del pro eso en estudio puede ser obtenida mediante la
transforma ion no lineal z = (x) del estado x, omo sigue:
2 3 2 3 2 3
z1 h(x) x1
z = 4 z2 5 = (x) = 4 Lf h(x) 5 = 4 x2 5
z3 2
Lf h(x) N B nK
M sinx1 M x2 M x3
(8.46)
426 Control No Lineal

Notar en la ultima e ua ion que el nuevo estado z posee signi ado fsi o,
puesto que z1 es la posi ion del eje del servomotor, z2 es su velo idad angular
y z3 su a elera ion. El estado original x expresado en fun ion del nuevo
estado z esta dado por:
2 3 2 3
x1 z1
x=4 x2 5 =  1 (z) = 4 z2 5
x3 N+
nK senz1 + B
nK z2
M
nK z3
De a uerdo a la subse ion 8.3, las nuevas oordenadas resultan:
z_1 = z2
z_2 = z3
z_3 = L3f h( 1 (z)) + Lg L2f h( 1 (z)) (8.47)
(8.48)
donde:
L3f h(x) = r(L3f h(x)) f (x)
   
N B N B nK nK nE R
= M
osx1 x2
M M
senx1
M
x2 +
M
x3 +
M
x
L 2
x
L 3
nK K
Lg L2f h(x) = a t
ML
Luego, la forma normal del pro eso resulta:
z_1 = z2
z_2 = z3  2   
N NR n KE BR B
z_3 =
M
osz1 z2
ML
senz1
ML
+ ML z2 M
+ RL z3
+ nKML
a t K
u
y = z1 (8.49)
Forma Normal del Modelo No Lineal de Segundo Orden
El modelo no lineal de segundo orden del pro eso, sin onsiderar el termino
no lineal TN es (ver e ua ion 8.39):
h i
x_ = x2 BR+MR n2 KE x
2 MN senx + nK K u = f (x) + g(x)u
1 MR
a t

y = h(x) = x1 (8.50)
que de he ho ya se en uentra en su forma normal.
8.7 Control No Lineal de un Servosistema 427

8.7.6 La ley de Control No Lineal


Ley de Control No Lineal para el Modelo de Ter er Orden
La forma normal para linealiza ion exa ta del pro eso esta dada en la
e ua ion (8.49). Reemplazamos en di ha e ua ion la siguiente ley de ontrol:
u =
1 [v L2f h( 1 (z))℄
L L2 h( 1 (z))
g f
 
ML N NR
= nK
v + osz1 z2 +
M ML
senz1
 2    
n KE BR B R
+ ML
+ ML z2 + M + L z3 (8.51)
donde v es una entrada equivalente, obtenemos:
z_1 = z2
z_2 = z3
z_3 = v
y = z1 (8.52)
o lo que es equivalente:
z_ = Az + Bv; y = Cz
donde: 2
0 1 03 2
03  
A = 4 0 0 1 5; B = 4 0 5;C = 1 0 0
0 0 0 1
La fun ion de transferen ia del pro eso lineal equivalente se obtiene de:
y(s) 1
= C (sI A) 1 B = 3
v(s) s
O lo que es lo mismo:
d3 y(t)
dt
=v (8.53)
El pro eso de linealiza ion desarrollado se ilustra en la gura 8.2.
Ahora se debe dise~nar v de modo tal que y = z1 siga una traye toria
deseada r(t). El siguiente ontrol logra tal objetivo:
d3 r d2 (r y) d(r y)
v= K1 K2 K3 (r y) (8.54)
dt3 dt2 dt
428 Control No Lineal

v Realimentacion Proceso y
no lineal no
u = u(z,v) lineal
z x
z = φ (x )

v 1 y
Proceso lineal s3
equivalente

Figura 8.2: Linealiza ion del pro eso no lineal y su pro eso lineal equivalente.

Reemplazando (8.54) en (8.53) obtenemos la e ua ion del sistema de lazo


errado:
d3 (r y) d2 (r y ) d(r y)
K1 K2 K3 (r y) = 0
dt3 dt2 dt
donde los parametros K1, K2 y K3 determinan la dinami a del error r y. Si
se desea que y ! r uando t ! 1, enton es los eigenvalores de la e ua ion
anterior deben poseer parte real negativa. Por ejemplo, si deseamos que los
eigenvalores sean s1 = s2 = s3 = 4, enton es la e ua ion del sistema de
lazo errado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K1 = 12,
K2 = 48 y K3 = 64. La expresion de v en fun ion de la traye toria de
referen ia resulta:
d3 r d2 r dr
v= 3 + K 1 2 + K2 + K3 r Kz (8.55)
dt dt dt
donde: 2 3
  y
K = K1 K2 K3 ; z=4 y_ 5
y
Finalmente, la se~nal de ontrol u puede ser obtenida reemplazando (8.55)
en (8.51), lo que resulta en:
 
ML d3 r d2 r dr N
u = nK dt 3 + K 1 dt 2 + K2 + K3 r Kz + osz1 z2
dt M
8.7 Control No Lineal de un Servosistema 429
    
NR n2 KE BR B
+ ML
senz1 +
ML
+ ML z2 +
M
+ RL z3 (8.56)
Ley de Control No Lineal para el Modelo de Segundo Orden
La siguiente ley de ontrol:
 
MR BR + n2 KE N
u= v+ x2 + senx1 (8.57)
nKa tK MR M
linealiza ompletamente el modelo del pro eso dado en (8.50), donde v es
una nueva entrada por dise~narse. Al apli ar la se~nal de ontrol anterior, el
modelo del pro eso ompletamente linealizado queda omo:
x_ 1 = x2
x_ 2 = v
y = x1 (8.58)
Tal onjunto de e ua iones representa un doble integrador. Es de ir:
d2 y
dt2
=v
La se~nal v debe dise~narse de modo tal que y = x1 siga una traye toria de
referen ia r(t). La siguiente se~nal v:
d2 r d(r y)
v= K1 K2 (r y)
dt2 dt
logra que el sistema de lazo errado tenga la forma:
d2 (r y)
dt2
+ K1 d(r y) + K2 (r y) = 0
dt
donde K1 y K2 determinan la dinami a del error (r y). Si se desea que
y ! r uando t ! 1, enton es los eigenvalores de la e ua ion anterior deben
poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores
sean s1 = s2 = 4, enton es la e ua ion del sistema de lazo errado resulta
s2 + 8s + 16, de donde se obtiene: K1 = 8 y K2 = 16 y K3 = 64. La
expresion de v en fun ion de la traye toria de referen ia resulta enton es:
d2 r
v=
dt2
+ K1 dr
dt
+ K2 r Kx (8.59)
430 Control No Lineal

donde: 2 3
  y
K = K1 K2 ; z=4 y_ 5
y
Finalmente, la se~nal de ontrol u puede obtenerse reemplazando (8.59) en
(8.57), lo que resulta en:

MR d2 r
u =
nKa t K dt2
+ K1 dr
dt
+ K2r Kx

BR + n2 KE N
+ MR
x2 + senx1
M
(8.60)
8.7.7 Dise~no del Observador No Lineal de Estados
Observador No Lineal para el Modelo de Ter er Orden
Dado el modelo no lineal del pro eso de ter er orden:
x_ = f (x) + g(x)u; y = h(x)
su orrespondiente matriz de observabilidad puede obtenerse apli ando la
e ua ion (8.25) omo sigue:
2 3 2 3
 4 h ( x)  x 1
O(x) = L h(x) 5 = 4 x2 5
x Lx2 h(x) x N senx B x + nK x
x M 1 M 2 M 3
2 3
1 0 0
= 4 0 1 0 5 (8.61)
N B nK
M senx1 M M
Claramente vemos que:
nK
det[O(x)℄ = 6= 0
M
lo que signi a que O(x) posee inversa. Esta inversa es:
2 3
1 0 0
O 1 (x) = 4 0 1 0 5
N B M
nK osx1 nK nK
Por onsiguiente, la e ua ion del observador es:
d^x
dt
= f (x^) + g(x^)u + O 1L[y(t) h(x^)℄
y^ = h(x^) (8.62)
8.7 Control No Lineal de un Servosistema 431

Observador No Lineal para el Modelo de Segundo Orden


Como en el aso anterior, onsideremos el modelo no lineal del pro eso de
segundo orden, que posee la forma:
x_ = f (x) + g(x)u; y = h(x)
La orrespondiente matriz de observabilidad puede obtenerse apli ando la
e ua ion (8.25) omo sigue:
   
O(x) =
 h ( x )  x1
= x x2
x Lx h(x)
 
1
= 0 1 B nK 0 (8.63)
M M
La dinami a del observador queda des rita enton es por:
d^x
dt
= f (x^) + g(x^)u + O 1L[y(t) h(x^)℄
y^ = h(x^) (8.64)
Cabe anotar que en este aso el observador es util para estimar la velo i-
dad angular x2. Sin embargo, por software podemos tambien estimar x2,
sabiendo que es la derivada de x1 .
8.7.8 Simula ion del Sistema de Control No Lineal
Simula ion Empleando el Modelo No Lineal de Ter er Orden
La gura 8.3 muestra el diagrama de bloques del sistema de ontrol no lineal
a simular. Se desea que los polos del sistema realimentado linealizado sean:
p p
s1 = 40; s2 = 10 2 10j ; s2 = 10 2 + 10j
Por onsiguiente, el polinomio ara tersti o toma la forma:
(s s1)(s s2)(s s3) = s3 + K1s2 + K2 s + K3
de donde resulta:
p p
K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000
432 Control No Lineal

Sistema lineal equivalente

r Realimentacion v Realimentacion u Proceso y


lineal no lineal no
v = v(r, z ) u = u( z ,v) lineal

z z z
z = φ (x)

Figura 8.3: Sistema de ontrol no lineal.

La gura 8.4 (ar hivo disnl1.m) muestra el diagrama SIMULINK para la


simula ion del sistema. En el ambiente de trabajo de MATLAB, ada sub-
sistema de la gura 8.4 puede ser visualizado a voluntad. En el subsistema
Pro eso no lineal se ha olo ado la ondi ion ini ial x1 (0) = 1 rad. Los
resultados de la simula ion se muestran en la gura 8.5, donde podemos
observar que la se~nal ontrolada sigue exa tamente a la traye toria de refe-
ren ia (una se~nal sinusoidal), en tanto que la magnitud de la se~nal de ontrol
u no sobrepasa el lmite previamente estable ido de u < j1:4j volt. Para ini-
iar la simula ion empleando la gura 8.4, previamente se requiere eje utar
el programa de datos disnl1p.m.
% disnl1p.m PARAMETROS PARA LA SIMULACION DEL SISTEMA DE
% CONTROL NO LINEAL DE TERCER ORDEN
lear all
% PARAMETROS DEL PROCESO (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.0;
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% GANANCIA DEL SISTEMA LINEALIZADO
K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;
% GRAFICOS
load disnl1_x1; load disnl1_r; load disnl1_u;
8.7 Control No Lineal de un Servosistema 433

disnl1_u disnl1_x
u x

Mux

Señal de Proceso gráfico


Señal v Mux
control u no lineal

Referencia
r Conversión disnl1_r
de x a z referencia r

Figura 8.4: Simula ion del sistema de ontrol no lineal de orden 3.

lg = size(disnl1_x1,1); % LONGITUD DE LAS MUESTRAS


ejex = linspa e(0,20,lg);
subplot(2,1,1)
plot(ejex,disnl1_r,'-',ejex,disnl1_x1); grid
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,disnl1_u); grid
ylabel('Se~nal de ontrol (voltios)')
xlabel('Tiempo en segundos')
print -f -deps disnl1r % CREA ARCHIVO disnl1r.eps

Simula ion Usando el Pro eso de Ter er Orden on Observador


La gura 8.6 muestra el diagrama de bloques del sistema de ontrol no lineal
a simular. Notar que se ha in luido el observador no lineal. Se desea que
los polos del sistema realimentado linealizado sean:
p p
s1 = 40; s2 = 10 2 10j ; s2 = 10 2 + 10j
Por onsiguiente, el polinomio ara tersti o toma la forma:
(s s1)(s s2)(s s3) = s3 + K1s2 + K2 s + K3
434 Control No Lineal

1.5

Posición (radianes)
1

0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

1.5
Señal de control (voltios)

0.5
0
−0.5

−1
−1.5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 8.5: Resultado de la simula ion del sistema de ontrol no lineal em-
pleando un modelo no lineal de ter er orden.

Sistema lineal equivalente

r Realimentacion v Realimentacion u Proceso y


lineal no lineal no
v = v(r, z ) u = u( z ,v) lineal

z z
z = φ (x) Observador
no lineal
z

Figura 8.6: Sistema de ontrol no lineal on observador.

de donde resulta:
p p
K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000
La gura 8.7 (ar hivo disnl2.m) muestra el diagrama SIMULINK para la
simula ion. En el ambiente de trabajo de MATLAB, ada susbsistema de la
gura 8.7 puede ser visualizado a voluntad. Los resultados de la simula ion
8.7 Control No Lineal de un Servosistema 435

se muestran en la gura 8.8, donde podemos observar que la se~nal ontro-


lada sigue exa tamente a la traye toria de referen ia (una se~nal sinusoidal).
Para ini iar la simula ion empleando la gura 8.7, previamente se requiere
eje utar el programa de datos disnl2p.m, pues en este programa se en uen-
tran los valores de los parametros del sistema, as omo tambien el al ulo
de la matriz de ganan ia L.
disnl2_u
u
Mux

gráfico
Señal u Proceso Mux
Señal v no lineal
disnl2_x1
x1
Referencia disnl2_r
r Conversión Observador r
de x a z no lineal

Figura 8.7: Simula ion del sistema de ontrol no lineal de ter er orden on
observador.

% disnl2p.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL


% NO LINEAL DE TERCER ORDEN CON OBSERVADOR
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.0;
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL EQUIVALENTE DE TERCER ORDEN
436 Control No Lineal

A = [0 1 0;0 0 1;0 0 0℄;


B = [0;0;1℄;
C = [1 0 0℄; D = [0℄;
NN = [C ' A '*C ' (A ')^2*C '℄;
rangoNN = rank(NN); % es n=3 => EL PROCESO ES C.C.
% CALCULO DE LAS GANANCIAS L1, L2 y L3
p = poly(A );
a1=p(2); a2=p(3); a3=p(4);
J = [-15+10j 0 0
0 -19 0
0 0 -15-10j℄; % RAICES DESEADAS
JJ = poly(J);
aa1=JJ(2); aa2=JJ(3); aa3=JJ(4);
W = [a2 a1 1;a1 1 0;1 0 0℄;
% GANANCIA DEL OBSERVADOR NO LINEAL
LL = inv(W*N')*[aa3-a3;aa2-a2;aa1-a1℄;
L1=LL(1); L2=LL(2); L3=LL(3);
% GANANCIA DEL SISTEMA LINEALIZADO
K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;
% GRAFICOS
load disnl2_x1; load disnl2_r; load disnl2_u;
lg = size(disnl2_x1,1); % LONGITUD DE LAS MUESTRAS
ejex = linspa e(0,20,lg);
subplot(2,1,1)
plot(ejex,disnl2_r,'-',ejex,disnl2_x1)
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
grid
subplot(2,1,2)
plot(ejex,disnl2_u)
ylabel('Se~nal de ontrol (voltios)')
xlabel('Tiempo en segundos')
grid
print -f -deps disnl2r % CREA ARCHIVO disnl2r.eps

Simula ion Empleando el Pro eso de Segundo Orden


La gura 8.3 muestra diagrama de bloques del sistema de ontrol no lineal
a simular. Se desea que los polos del sistema realimentado linealizado sean
s1 = 4 y s2 = 4. Por onsiguiente, el polinomio ara tersti o toma la
forma:
(s s1)(s s2) = s2 + K1 s + K2
8.7 Control No Lineal de un Servosistema 437

Posición (radianes)
0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

3
Señal de control (voltios)

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 8.8: Resultado de la simula ion del sistema de ontrol no lineal de


ter er orden.

de donde resulta: K1 = 8 y K2 = 16.


Esta vez vamos a simular el sistema de ontrol no lineal mediante dis-
retiza ion dire ta del sistema ontinuo. La razon es que la implementa ion
en tiempo real del sistema de ontrol se va a realizar digitalmente. El pro-
grama disnl3.m realiza la simula ion del sistema y los resultados se pueden
ver en la gura 8.9. Es importante anotar que en el programa de simula ion
disnl3.m se ha in luido la ompensa ion de la fri ion no lineal de Coulomb
y la limita ion de la se~nal de ontrol para evitar saturar el ampli ador.
Con el proposito de suavizar los efe tos de las derivadas presentes en
la se~nal de ontrol u emplearemos la siguiente formula no re ursiva para la
derivada:
dr 1
= [r(k) + 3r(k 1) 3r(k 2) r(k 3)℄
dt 6
donde T es el tiempo de muestreo. Tal formula se obtiene al ulando el
promedio temporal r:
1
r = [e(k) + e(k 1) + e(k 2) + e(k 3)℄
4
438 Control No Lineal

para luego aproximar la derivada on rela ion a r, omo sigue:


dr 1 r(k) r r(k 1) r r(k 2) r r(k 3) r
= [
dt 4 1:5T
+ 0:5T + 0:5T + 1:5T ℄
% disnl3.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL
% EMPLEANDO MODELO DE SEGUNDO ORDEN DEL PROCESO
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.0; % tambien 10, 20, 45;
K = 31.071e-3; n = 19.741; L = 4.64e-1; %4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -4 y -4
pol = onv([1 4℄,[1 4℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES Y PARAMETROS INICIALES
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
x1(1) =0; x1(2)=0; x1(3)=0; x1(4)=0;
x2(1) =0; x2(2)=0; x2(3)=0; x2(4)=0;
MM=1000; T = 0.05;
% LAZO DE CONTROL
for k=4:MM
r(k) = sin(0.2*k*T); % TRAYECTORIA DE REFERENCIA
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
% SE~NAL DE CONTROL
u(k) = (M*R/(Ka t*n*K))*(ddr(k) + K1*dr(k) + K2*r(k) ...
- K2*x1(k) - K1*x2(k) ...
+ (B*R+n^2*K*E)/(M*R)*x2(k) + (N/M)*sin(x1(k)) );
TN = *sign(x2(k)); % torque de fri ion de Coulomb
% COMPENSANDO FRICCION
if(x2(k) > 0)
u(k) = u(k) + R* /(n*K*Ka t);
elseif(x2(k) < 0)
8.7 Control No Lineal de un Servosistema 439

u(k) = u(k) - R* /(n*K*Ka t);


end
% EVITANDO SATURACION DEL ACTUADOR
if(u(k) > 1.4)
u(k) = 1.4;
elseif(u(k) < -1.4)
u(k) = -1.4;
end
% PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO
x1(k+1) = x1(k) + T*x2(k);
x2(k+1) = x2(k) + T*( - (N/M)*sin(x1(k)) ...
- (B/M + n^2*K*E)/(M*R)*x2(k) ...
- (1/M)*TN + n*K*Ka t/(M*R)*u(k) );
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);
subplot(2,1,1)
plot(ejex,r(4:MM),ejex,x1(4:MM)); grid
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
ylabel('Se~nal de ontrol (voltios)')
xlabel('Tiempo en segundos')
print -f -deps disnl3 % rea disnl3.eps

8.7.9 Implementa ion del Hardware


El hardware empleado en la implementa ion en tiempo real del sistema de
ontrol no lineal es similar al empleado para la implementa ion en tiempo re-
al de los sistemas de ontrol adaptivo, predi tivo y robusto. Di ho hardware
se des ribe en detalle en la subse ion 5.6.8.
8.7.10 Implementa ion del Software
El software de ontrol empleado en la implementa ion en tiempo real del
sistema de ontrol no lineal posee la misma estru tura que el software de
ontrol empleado para la implementa ion en tiempo real de los sistemas de
ontrol predi tivo y robusto. La estru tura de di ho software se des ribe en
detalle en la subse ion 6.7.7. El diagrama de ujo del software de ontrol
se muestra en la gura 6.13.
440 Control No Lineal

Posición (radianes)
1

−1

−2
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

0.4
Señal de control (voltios)

0.2

−0.2

−0.4
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

Figura 8.9: Resultado de la simula ion del sistema de ontrol no lineal em-
pleando un modelo no lineal de segundo orden.

El software usado para la implementa ion del algoritmo de ontrol de


posi ion emplea el lenguaje C y se eje uta en una PC Pentium. Los progra-
mas ne esarios para el ontrol se estru turan en tres ar hivos: R1LLIB.H,
R1LLIB.CPP y DISNL.CPP. El ar hivo DISNL.CPP es el que ontiene el
algoritmo de ontrol.
La realiza ion de ar hivos eje utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la rea ion
de un proye to denominado DISNL.PRJ, en donde intervienen los ar hivos
men ionados en el parrafo anterior. A ontinua ion se presenta el lista-
do del programa DISNL.CPP. El listado de los programas R1LLIB.H y
R1LLIB.CPP fueron presentados en la subse ion 6.7.7.
/* DISNL.CPP Programa del sistema de ontrol no lineal de posi ion.
Ver espe ifi a iones de dise~no en la subse ion resultados
experimentales. */
#in lude "r1llib.h"
#in lude <stdio.h>
#in lude <math.h>
#in lude <assert.h>
#in lude <allo .h>
#in lude < onio.h>
8.7 Control No Lineal de un Servosistema 441

onst float ESCALA= 2.*M_PI/(512.*19.7);


/* De lara ion de las fun iones propias del programa */
void Ini ializa_Sistema();
void Mide_Variables(float *yk, float *x2k, float *r, float t);
float Apli a_Control(float u, float ykp);
/* De lara ion de las variables globales */
float y, yp, x2, x2p, r;
float rp, rpp, rppp;
float drp, drpp, drppp;
float T, k;
float t, tsimul;
float Fs;
int p0, pk;
float bL, bm, Lo, Ro, g, E, R, m, Ka t, Mo, K, n, B;
float Jeff, Jm, JL, M, N, TN, upar, K1, K2;
float V FC, V FE, Wth, Ofst;
float up;
/*************** FUNCIONES ******/
float Apli a_Control(float u)
{
float v;
float ykp
if(u<0.) v = -V FC;
else if(u>0.) v = V FC;
if(u+v<-1.5) u = -1.5;
else if(u+v>1.4) u = 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}
void Ini ializa_Sistema()
{
V FC = .15;
Ofst = 2.3;
Fs = 20.; T = 1./Fs;
tsimul= 100.;
/* Parametros del pro eso no lineal */
Lo = 0.776; Ro = 0.01; g = 9.81;
Mo = 0.0; m = 0.06377; R = 7.38;
E = 31.035e-3; Ka t = 14.9; K = 31.071e-3;
bm = 1.8338e-6; bL = 1e-5; n = 19.741;
B = (n*n)*bm+bL; Jm = 1.9062e-6;
Jeff = n*n*Jm+JL; K1 = 28.2843; K2 = 300;
M = Jeff+(1/3)*m*Lo*Lo + Mo*Lo*Lo + (2/5)*Mo*Ro*Ro;
442 Control No Lineal

N = g*Lo*(Mo + m/2);
/* Ini ializa ion de variables */
yp =0.; x2p = 0.;
rp =0.; rpp = 0.; rppp = 0.;
drp =0.; drpp = 0.; drppp = 0.;
up =0.;

ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);


EnviarVoltage(Ofst);
p0= LeerPosi ion();
}
void Mide_Variables(float *y, float *x2, float *r, float t )
{
/* En primer lugar, la referen ia: r = r(t)*/
*r = - 2*exp(-2*k*T) - 2* os(2*k*T)+2;
/* Ahora leo la posi ion */
pk = LeerPosi ion();
*y = yp + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0 = pk;

/* A tualizamos los estados */


yp =* y;
x2p =* x2;
}
void main()
{
int ant=0, a t=0, k, nd;
FILE *out;
float *yb, x2, y;
float *ub, *rb, u, r;
float yp, x2p;
float ddr, dr;
Ini ializa_Sistema();
lrs r();
assert(tsimul<120);
nd = (int)tsimul/T;
t = 0.;
assert(NULL!=(ub= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(yb= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(rb= (float *) allo (n/5,sizeof(float))));
for(k=0; k<nd;)
{
a t = NivelClo k();
8.7 Control No Lineal de un Servosistema 443

if ((ant == 0)&&(a t == 1))


{
Mide_Variables(&y, &x2, &r, t);
upar = (ddr+K1*dr+K2*r-K2*(y)-K1*x2+(B*R+n*n*K*E)/
(M*R)*x2+(N/M)*sin(y));
u = (M*R/(Ka t*n*K))*upar;
up = u;
u = Apli a_Control(u);
if(!(k%5))
{
yb[k/5℄ = y*180./M_PI; rb[k/5℄ = r*180./M_PI;
ub[k/5℄ = u;
}
k++;
t += T;
gotoxy(15,5); printf("****************************************");
gotoxy(18,7); printf("Control no lineal de un servomotor D.C.");
gotoxy(15,9); printf("****************************************");
gotoxy(21,11);printf("tiempo : t=%+5.3f",t);
gotoxy(21,13);printf("referen ia : r=%+5.3f",r*180./M_PI);
gotoxy(21,15);printf("se~nal de ontrol: u=%+5.3f",u);
gotoxy(21,17);printf("posi ion : y=%+5.3f",y*180./M_PI);
gotoxy(15,21);printf("****************************************");
if(kbhit()) if(get h()==27) break;
}
ant = a t;
}
EnviarVoltage(Ofst);
out = fopen("disnl.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f\n",
i*5*T, rb[i℄, yb[i℄, ub[i℄);
delete rb, yb, ub;
f lose(out);
}

8.7.11 Resultados Experimentales


La gura 8.10 muestra el resultado experimental obtenido on el sistema de
ontrol de posi ion no lineal. La traye toria de referen ia posee la forma:
r (t) = 3e 2t + 2sen(2t) + 2
444 Control No Lineal

Los polospdel sistema lineal equivalente se ubi aron en p1 = 10p2 10i y


p2 = 10 2 + 10i. La e ua ion ara tersti a orrespondiente a tales polos
es:
s2 + 28:2843s + 300 = 0
de donde obtenemos: K1 = 28:2843 y K2 = 300. Podemos observar en la
gura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabi-
liza ion menor que 0.4 s y error en estado estable nulo.
300
Posición (grados)

200

100

−100
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo en segundos

1.5
Señal de control (voltios)

0.5

−0.5

−1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo en segundos

Figura 8.10: Resultado experimental del sistema de ontrol de posi ion no


lineal para el servomotor D.C. a ionando una arga no lineal.

8.8 Problemas Resueltos


En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los
problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB.
Problema 8.1
El pro eso pendulo no lineal mostrado en la gura 2.3, uyo modelo se des-
ribe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gra ias a
8.8 Problemas Resueltos 445

la a ion de un torque externo U . En di ha gura Bp=1.3366 N-m/rad/s es


la fri ion vis osa rota ional en el punto pivote, Lo=1.6350 m es la longitud
de la varilla de peso despre iable, Mo=0.5 kg es la masa de la esfera y g=9.81
m/s2 es la a elera ion de la gravedad. La salida de interes es la posi ion an-
gular  del pendulo. Para la situa ion mostrada en la gura 2.3(a), dise~nar
un sistema de ontrol no lineal empleando el metodo de linealiza ion por
realimenta ion. Los eigenvalores del sistema lineal equivalente realimentado
deben estar ubi ados en 8  8i.
Solu ion: El pro eso en estudio es univariable; es de ir, una sola entrada
U a tuando sobre el pro eso y una sola salida: la posi ion angular. En la
gura 2.3(a) el torque resultante alrededor del pivote es:
 + Bp_ + MogLo sen
U = Mo L2o  (8.65)
que es una e ua ion no lineal debido al termino sen. Sele ionando omo
variables de estado X1 = , X2 = _ y omo salida Y = X1 , se obtiene:
X_ 1 = X2
X_ 2 =
g
senX1
Bp
X +
1 U
Lo Mo L2o 2 Mo L2o
Y = X1 = h
uya representa ion ompa ta resulta: X_ = f, donde:
    " #
X1 f1 X2
X= ; f= = g + M 1L2 U
Bp
X2 f2 Lo senX1 Mo L2o x2 o o

La e ua ion anterior posee una forma normal. Por onsiguiente, empleando


la siguiente ley de ontrol:
U = BX2 + MLgsenX1 + ML2 V
obtenemos X_ 2 = V . De niendo e = r X1 , donde r es una traye toria de
referen ia y sele ionando la se~nal V omo:
V = r + K1 e_ + K2 e = X_ 2
enton es la e ua ion del sistema lineal equivalente realimentado resulta:
e + K1 e_ + K2 e = 0; (s2 + K1s + K2 )e(s) = 0
446 Control No Lineal

Si las ra es del sistema realimentado son s1;2 = 8  8i, enton es:
(s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; K1 = 16; K2 = 128
La se~nal V viene a ser:
V = r + K1 r_ + K2 r K1 X1 K2 X2 ; Y = X1 = 
La ley de ontrol toma la forma siguiente:
u = BX2 + MLgsenX1 + ML2 (r + K1 r_ + K2 r) ML2 (K2 X1 + K2 X2 )
El programa p8 1.m simula el sistema de ontrol no lineal y los resultados
se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL)
lear all
% PARAMETROS DEL PROCESO
Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81;
% POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5
pol = onv([1 8+8i℄,[1 8-8i℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES INICIALES:
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0;
X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0;
MM=1000; T = 0.01;
% LAZO DE CONTROL
for k=4:MM
r(k) = 2*sin(0.8*k*T); % traye toria de referen ia
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)...
+K2*r(k)-K2*X1(k)-K1*X2(k));
% PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))...
+(1/Mo*Lo^2)*U(k));
end % fin del lazo de ontrol
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);
8.8 Problemas Resueltos 447

subplot(2,1,1)
plot(ejex,r(4:MM),ejex,X1(4:MM)); grid
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(4:MM)); grid
ylabel('Se~nal de ontrol (N)')
xlabel('Tiempo en segundos')
print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps

4
Posición (radianes)

−2

−4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

400
Señal de control (N)

200

−200

−400

−600
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 8.11: Traye toria de posi ion del pendulo (problema de seguimiento)
y se~nal de ontrol orrespondiente al problema 8.1
Problema 8.2
La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo omo se~nal de ontrol. Dise~nar
el sistema de ontrol no lineal empleando el metodo de linealiza ion por
realimenta ion. El ujo de ontrol no debe sobrepasar los 5 m3=s y el tiempo
de estabiliza ion de la salida debe ser menor que 20 s on error en estado
estable pra ti amente nulo. Sele ionar apropiados tiempo de muestreo y
eigenvalores del sistema realimentado.
448 Control No Lineal

Solu ion: En el ejemplo 2.1 se derivo el modelo no lineal del pro eso on
=0.4 (una onstante que depende de la geometra del ori io), =1.23
(la densidad del lquido) y g=9.81 m/s2 (la a elera ion de la gravedad),
resultando:
H_ = f + gU ; = h(H) = H2;
Y U = Qo
donde: f = [f1 f2℄T , g = [g1 g2 ℄T , siendo:
pg p pg p p 1;
f1 = H1 ; f2 = [ H1 H2 ℄; g1 = g2 = 0
A A A
Operando on = pg=A obtenemos:
h(H) = H2 ; Lf h(H) = r(H)f = f2

Lg Lf h(H) = r(f2 ) g = p 6= 0
2A H1
Luego, el sistema es ompletamente linealizable dado que su grado relativo
es dos. Seguimos operando:
p 
2
L2 h(H) = r(Lf h(H)) f = rf2 f
f = 2 pHH1 2
2
2 p
Lg L2f h(H) = r(L2f h(H)) g = 4A H1 H2
1
El nuevo onjunto de variables de estado resulta:
p p
z1 = 1 (H) = h(H) = H2 ; z2 = 2 (H) = Lf h(H) = H1 H2
Los estados originales en fun ion de los nuevos estados vienen a ser:
z p
H2 = 1 1 (z) = z1 ; H1 = 2 1 (z) = ( 2 + z1 )2

y la e ua ion de estado del nuevo sistema resulta:
z_1 = z2
z_2 = L2f h( 1 (z)) + Lg L2f h( 1 (z)) = b( 1 (z)) + a( 1 (z))U
donde:
 
1 2 z2 2
b( (z)) = p 1 ; a( 1 (z)) = p
2 z 1 4A z (z = + pz )
1 2 1
8.8 Problemas Resueltos 449

De niendo una se~nal equivalente V on Y = H2:


V = Y = r + K1 e_ + K2 e; e=r Y
se da lugar a la siguiente e ua ion ara tersti a del sistema linealizado re-
alimentado:
e + K1 e_ + K2 e = 0
Si las ra es deseadas del sistema son s1;2 = 0:6, enton es:
(s + 0:6)(s + 0:6) = s2 + 1:25s + 0:39; K1 = 1:25; K2 = 0:39
La se~nal V , on Y = H2 = z1 e Y_ = z_1 = z2, toma la forma nal:
V = r + K1 r_ + K2 r K2 z1 K1 z2
y la ley de ontrol resulta: U = a1 (V b). El programa p8 2p9.m simula el
sistema de ontrol no lineal. Los resultados se muestran en la gura 8.12.
% p8_2p9.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL
% PARA EL PROCESO HIDRAULICO (PROBLEMA 8_2)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
A=9; gamma=0.4; rho=1.23; g=9.81; =gamma*sqrt(rho*g)/A;
% POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -8-8i y -8+8i
pol = onv([1 0.6℄,[1 0.65℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);% K1=K2=0.6; T=0.01-0.07 Ts=20
% CONDICIONES Y PARAMETROS INICIALES
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
H1(4)=2; H2(4)=2;
MM=1000; T = 0.05;
% LAZO DE CONTROL
for k=4:MM
r(k) = 3; % TRAYECTORIA DE REFERENCIA
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
% CONVERSION DE ESTADOS
z1(k)=H2(k);
z2(k)= *(sqrt(H1(k))-sqrt(H2(k)) );
% LEY DE CONTROL
V(k) = ddr(k) + K1*dr(k) + K2*r(k) - K2*z1(k) - K1*z2(k);
450 Control No Lineal

b(k) = ( ^2/2)*( *z2(k)/sqrt(z1(k))-1 );


a(k) = ^2/( 4*A*sqrt(z1(k))*(z2(k)/ +sqrt(z1(k)) ) );
U(k) = (V(k)-b(k))/a(k);
Q=5;
if(U(k) > Q)
U(k)=Q;
elseif(U(k) < -Q)
U(k)=Q;
end
% PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO
H1(k+1) = H1(k) + T*(- *sqrt(H1(k)) + (1/A)*U(k));
H2(k+1) = H2(k) + T*( *sqrt(H1(k)) - *sqrt(H2(k)) );
end % fin del lazo de ontrol
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);
subplot(2,1,1)
plot(ejex,r(4:MM),ejex,H2(4:MM)), grid
ylabel('Nivel (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(4:MM)), grid
ylabel('Flujo de ontrol (m^3/s)')
xlabel('Tiempo en segundos')
print -f -deps p8_2p9 % rea p8_2p9.eps

Problema 8.3

Determinar si es posible una linealiza ion exa ta de los pro esos pendulo
invertido no lineal y grua-puente des ritos en las se iones 3.1 y 3.2 respe -
tivamente. Se sabe que la salida es la posi ion x3.
Solu ion: La e ua ion de estado que des ribe al pendulo no lineal es:
2 3
2
x_ 1
3 x2
6 M2 (sin x1 )( os x1 )x22 Bx ( os x1 )x4 (M1 +J2 )g(sin x1 )+Kx ( os x1 )KA u 7
6
6 x_ 2 7
7 =
6
6 (M2 ( os2 x1 ) (M1 +J2 )J1 )=M2 7
7
4 x_ 3 5 6
4 x4 7
5
x_ 4 M22 g(sin x1 )( os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 ( os2 x1 ) (M1 +J2 )J1

De la e ua ion anterior de orden n=4 es fa il dedu ir las expresiones de las


fun iones ve toriales f (x) y g(x). Un pro eso es exa tamente linealizable
8.9 Problemas Propuestos 451

3.5

Nivel (m)
2.5

2
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

5
Flujo de control (m^3/s)

−5
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

Figura 8.12: Nivel de salida y ujo de ontrol para el problema 8.2.


si su grado relativo es igual al orden del pro eso. Empleando el riterio de
grado relativo en el pro eso pendulo obtenemos:
h(x) = x4
Lf h(x) = rh(x) f = f4 (x)
Lg Lf h(x) = rf4 (x) g(x) 6= 0
Luego, el grado relativo resulta r = 2, que es menor que el orden del pro eso:
n = 4. Por onsiguiente, el pro eso pendulo invertido no es exa tamente
linealizable. Lo mismo podemos aseverar para el pro eso grua-puente.
8.9 Problemas Propuestos
Problema 8.4
La gura 3.30 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde el eje de salida del me anismo de redu ion esta
sujeto a la arga no lineal mediante una junta exible que puede ser mod-
elada omo un resorte rota ional de onstante K! =0.5 N/m/s. Dise~nar un
452 Control No Lineal

sistema de ontrol no lineal que emplee el metodo de linealiza ion por re-
alimenta ion para ontrolar la posi ion angular de la arga no lineal. Las
espe i a iones de dise~no son: error en estado esta ionario nulo y tiempo de
estable imiento menor que 1 s para una se~nal de referen ia arbitraria. Sele -
ionar el tiempo de muestreo y los eigenvalores apropiados del sistema lineal
equivalente realimentado. Considere dos asos: (a) uando la indu tan ia
de armadura es despre iable, y (b) uando no lo es
Problema 8.5
Demostrar las propiedades de bilinealidad, anti onmutatividad y de Ja obi
estable idas en el lema 8.1 y luego demostrar el teorema 8.2.
Problema 8.6
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la dinami a del
sistema son materia del problema 3.12. Determinar si el pro eso des rito
es ompletamente linealizable. Si lo es, dise~nar un sistema de ontrol no
lineal on linealiza ion de la realimenta ion para ontrolar simultaneamente
las posi iones  y  on mnimo tiempo de estabiliza ion y mnimo sobreim-
pulso. Considerar dos asos: (a) uando la indu tan ia de armadura es
despre iable, y (b) uando no lo es.
Bibliograf
a

[1℄ Omar A. Tupaya hi-Calderon, Control No Lineal de Servosistemas.


Apli a ion: Manipulador de Robot de un Grado de Libertad. Tesis
para optar el Ttulo de Ingeniero Ele troni o, Fa ultad de Ingeniera
Ele tri a y Ele troni a de la Universidad Na ional de Ingeniera, Peru,
1995-I, Captulo III.
[2℄ Alexander L. Pon e-Dioses , Control de Servo Sistemas No Lineales
Usando Redes Neuronales. Tesis para optar el Ttulo de Ingeniero Ele -
troni o, Fa ultad de Ingeniera Ele tri a y Ele troni a de la Universidad
Na ional de Ingeniera, Peru, 1996-II, Captulo VI.
[3℄ Katsuhiko Ogata, Sistemas de Control en Tiempo Dis reto. Prenti e
Hall Hispanoameri ana S.A., Mexi o, segunda edi ion, 1996
[4℄ Charles L. Phillips y H. Troy Nagle, Digital Control System Analy-
sis and Design. Prenti e Hall, Englewood Cli s, New Jersey, segunda
edi ion, 1990
[5℄ N. Rao Sripada y D. Grant Fisher, \Improved Least Squares Identi -
ation". Int. J. Control, vol. 46, no. 6, pp. 1889{1913, Di . 1987.

[6℄ M. G. Sofonov, Stability and Robustness of Multivariable Feedba k Sys-


tems. MA, London, UK: The MIT Press Cambridge, 1980.

[7℄ R. De Keyser, \A Gentle Introdu tion to Model Based Predi tive Con-
trol". In PADI2 International Conferen e on Control Engineering and
Signal Pro essing, Piura, Peru, 1998.
[8℄ Eduardo F. Cama ho y Carlos Bordons, Model Predi tive Control.
Springer-Verlag London Limited 1999.
454 BIBLIOGRAFIA

[9℄ Manfred Morari y Evanghelos Za riou, Robust Pro ess Control. PTR
Prenti e Hall, Englewood Cli s, New Jersey 07632, 1989.
[10℄ R. Canales Ruiz y R. Barrera Rivera, Analisis de Sistemas Dinami os
y Control Automati o. Editorial Limusa, Mexi o, 1977.
[11℄ A. Rojas-Moreno, Design of Self-tuning Controllers for Pro esses Hav-
ing Multiple Unknown Time-varying Delays, Ph.D. Thesis, Utah State
University, Logan, UT, 1995.
[12℄ Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag,
segunda edi ion, Germany, 1989
[13℄ Jean-Ja ques E. Slotine y Weiping Li, Applied Nonlinear Control, Pren-
ti e Hall, Englewood Cli s, New Jersey 07632, 1991.
[14℄ Alan V. Oppenheim y Alan S. Willsky, Se~nales y Sistemas Prenti e-
Hall Hispanoameri ana, S.A., Mexi o-Englewood Cli s-Londres-Sidney
y otras, 1983.
[15℄ Gene H. Hostetter, Digital Control System Design, Holt, Rinehart and
Winston, In ., New York, Chi ago, San Fran is o, Philadelphia, Mon-
treal, Toronto, London, Sydney, Tokyo, 1988.
[16℄ William H. Press, Brian P. Flannery y Saul A. Teukolosky, Numeri al
Re ipes in C, Cambridge University Press, Cambridge, 1988.
[17℄ Bernard Friedland, Control System Design. An Introdu tion to State-
Spa e Methods, M Graw-Hill, In ., New York St. Louis y otras, 1986.
[18℄ Murray R. Spiegel, Analisis Ve torial, serie de ompendios S haum,
M Graw-Hill Mexi o Panama Bogota y otras, 1973 (o edi iones mas
re ientes).
[19℄ Murray R. Spiegel, Cal ulo Superior, serie de ompendios S haum,
M Graw-Hill Mexi o Panama Bogota y otras, 1973 (o edi iones mas
re ientes).
[20℄ Donald M. Wiberg, Espa io de Estado y Sistemas Lineales, serie de
ompendios S haum, M Graw-Hill Mexi o Panama Bogota y otras,
1973 (o edi iones mas re ientes).
BIBLIOGRAFIA 455

[21℄ Frank Ayres Jr., Matri es, serie de ompendios S haum, M Graw-Hill
Mexi o Panama Bogota y otras, 1973 (o edi iones mas re ientes).
[22℄ Murray R. Spiegel, Transformada de Lapla e, serie de ompendios
S haum, M Graw-Hill Mexi o Panama Bogota y otras, 1973 (o edi-
iones mas re ientes).
[23℄ MathWorks, In ., MATLAB Referen e Guide, Prenti e Hall, Engle-
wood Cli s, New Jersey, primera edi ion, 1998.
[24℄ MathWorks, In ., SIMULINK User's Guide, Prenti e Hall, Englewood
Cli s, New Jersey, primera edi ion, 1996.
[25℄ Lab-PC+ User Manual, National Instruments Corporation, Part Num-
ber 320502B-01, edi ion de agosto de 1994.

Indi e de Materias

A tuador, 231 Control no lineal de un servosis-


Ampli ador de poten ia, 160 tema de posi ion, 424
Control predi tivo
Campo ve torial suave, 408 del servomotor no lineal, 306
Campos ve toriales disturbio del pro eso en el, 289
integrables, 412 ley de ontrol on restri io-
involutivos, 413 nes del, 304
CMI: ley de ontrol del, 303
ontrol on modelo interno, 351 modelo CARIMA del, 290
Codi ador opti o, 159 modelo del predi tor en el, 292
odi ador opti o, 235 modelo del pro eso del, 289
Control optimo modelo paralelo en el, 292
on epto, 126 modelo serie/paralelo en el, 293
predi ion del disturbio en el,
Control optimo uadrati o, 126 294
de la grua puente, 181 salida del modelo en el, 290
del pendulo invertido, 147 Control predi tivo basado en mo-
dis reto, 126 delos, 285
esta ionario, 129 prin ipios del, 286
no esta ionario, 127 Control predi tivo:respuesta forza-
Control adaptivo de un servomo- da del, 300
tor no lineal, 224 Control predi tivo:respuesta libre
Control on modelo interno del, 299
estru tura del, 351 Control robusto
estru turas alternativas del, 353 para pro esos estables, 358
in ertidumbres del modelo en para pro esos inestables, 370
el, 355 Control robusto de un servomotor
modelo del pro eso en el, 355 no lineal, 376
representa iones del, 351 Controlabilidad, 65
Control matri ial dinami o, 286 Controlador optimo H2: q~H (z), 372
INDICE DE MATERIAS 457

Controlador optimo uadrati o e ua ion de, 31, 57


propor ional, 221 espa io de, 31, 54
propor ional integral, 223 variables de, 31
Controlador optimo uadrati o H2: ve tor de, 31
q~H (z ), 360 Estima ion de estados, 221
para entradas tpi as, 361
Controlador CMI q~(z), 362, 373 Filtro de Kalman, 221
Controlador predi tivo, 298 Filtro dis reto CMI, 363, 374
fun ion de osto del, 298 Forma bilineal, 20
objetivo del, 298 Forma anoni a, 58
parametros de dise~no del, 298 ontrolable, 59
Cor hete de Lie, 409 de Jordan, 60
Cor hetes de Lie diagonal, 60
propiedades de los, 410 observable, 60
Forma anoni a de Jordan, 19
De ni ion de Matri es, 21 Forma uadrati a, 20
De ni ion de matri es, 21 Forma normal, 416
Derivada de Lie, 408 Frobenius
Determinante, 5 teorema de, 413
de una matriz, 5 Fun ion de osto, 126
propiedades, 6 uadrati a dis reta, 127
Diagonaliza ion de matri es, 19 mnima, 129
Difeomor smo, 410 Fun ion de transferen ia de pulso,
lo al, 410 51
Dis retiza ion dire ta, 41
Grua-puente, 79
E ua ion ara tersti a, 32 modelo, 79
E ua ion de Ri ati, 128, 129 Grado relativo, 414
E ua ion de salida, 31, 57
E ua ion de transferen ia, 32 Hardware del sistema de ontrol,
E ua ion del observador no lineal, 155, 314, 377, 441
422 Independen ia de ve tores, 15
Eigenvalor, 18 Interfaz Lab-PC+, 161, 236
Eigenve tor, 18
Espa io de estado dis reto, 54 Ja obiano, 15
Estabilidad interna, 351
Estabilidad Robusta, 364 Ley de ontrol optima, 127, 140
Estabilidad robusta, 374 Ley de ontrol no lineal, 417
Estado, 31 Linealiza ion de pro esos, 31
458 INDICE DE MATERIAS

Linealiza ion exa ta, 416 hermitiana, 5


ondi iones para, 419 identidad, 5
Linealiza ion por realimenta ion, inde nida, 21
407 integral de una, 14
inversa de una, 6
Mnimos uadrados re ursivo nilpotente, 5
algoritmo, 211 norma de una, 17
metodo de los, 210 normal, 5
metodo mejorado de los, 213 orden de una, 1
mejorado, algoritmo, 213 ortogonal, 5
Matri es, 3 periodi a, 5
de pondera ion, 132 rango de una, 18
diagonaliza ion de, 19 semide nida negativa, 21
iguales, 3 semide nida positiva, 21
ja obianas, 32 simetri a, 5
lema de inversion de, 7 singular, 5
multipli a ion de, 3 transpuesta, 4
que onmutan, 3 traza de una, 4
similares, 19 triangular inferior, 4
suma de, 3 triangular superior, 4
Matriz, 1 unitaria, 5
antihermitiana, 5 Modelando pro esos no lineales, 209
antisimetri a, 5 Modelo CARIMA, 290
ero, 3 Muestreo y re onstru ion, 38
uadrada, 4
de ontrol, 32 Nomen latura, 1
de disturbios, 32
de estado, 32 Observabilidad, 67
de observabilidad generaliza- Observador optimo uadrati o, 138
da, 420 Observadores no lineales, 420
de salida, 32 Opera ion on ve tores, 16
de transferen ia, 32 Opera iones on matri es, 3
de nida negativa, 21
de nida positiva, 21 Pendulo invertido, 71
derivada de una, 14 ontrol optimo del, 147
diagonal, 4 modelo, 72
eigenvalor de una, 18 Plano de fase, 31
eigenve tor de una, 18 Predi tor, 292
forma anoni a de Jordan, 19 Pre ltro
INDICE DE MATERIAS 459

dise~no del, 359 formulas notables, 48


Pro eso estable e inestable, 33 inversa, 50
Pro eso multivariable, 31 propiedades, 46
Pro eso univariable, 32
Pro esos on tiempo muerto, 64 Valor absoluto, 7
Puntos de equilibrio, 31 Variables residuales, 32
Ve tor, 2
Regulador optimo uadrati o de informa ion, 210
propor ional, 131 de parametros, 210
propor ional integral, 141 derivada de un, 14
Rendimiento nominal, 359, 372 integral de un, 14
Rendimiento robusto, 365, 375 norma de un, 16
Respuestas libres y forzadas, 299 Ve tores, 15
Reten ion de orden ero, 41 independen ia de, 15
opera ion on, 15
Sensor(es) de posi ion, 158, 235 ortonormales, 15
Servomotor DC no lineal, 86
modelo, 86
Sistema ausal y estri tamente ausal,
355
Sistema de ontrol adaptivo, 208
on autosintoniza ion, 208
Software de ontrol, 162, 237, 314,
378, 441
Solu ion de la e ua ion de estado,
54, 57
Teorema del muestreo, 40
Tipo de sistemas, 359
Tipos de matri es, 4
Transforma ion no lineal de esta-
dos, 411
Transformada de Lapla e, 26
formulas notables, 27
inversa, 26
propiedades, 27
Transformada Z, 45
de se uen ias, 47
de ni ion, 45

También podría gustarte