You are on page 1of 106

INSTITUTO TECNOLGICO Y DE ESTUDIOS

SUPERIORES DE MONTERREY

Laboratorio Integral de Control Automtico


Reporte Final
Sistema de Primer Orden
Equipo # 7
Profesor: Ulises M. Yepes
4 de Mayo de 2016

Integrantes del equipo:

Marisol Hernndez Gmez


Luis Emmanuel Snchez Flores
Ramn Alejandro Cruz lvarez
Carlos Morelos Ollivier

A01201398
A01362841
A01065008
A01064461

Resumen
El objetivo del presente documento es disear e implementar 5
diferentes tipos de controladores como son el controlador on/off, on/off con
histresis, proporcional, proporcional integral y fuzzy para sistemas de primer
y segundo orden. Se buscar el mejor controlador de cada uno y se
compararn entre ellos.
El modulo que se utiliza para los sistemas de primer orden es el MTGN100, sistema que provee un ambiente idneo para el estudio de los
diferentes sistemas de control. Bsicamente cuenta con un motor de CD
acoplado mecnicamente a un generador de CD que servir de carga para el
motor.
El mdulo que se utiliza para los sistemas de segundo orden es el
ADCR100.
La

estructura

bsica

del

documento

cuenta

con

teora,

diagramas/esquemticos del sistema general, identificacin y validacin del


modelo, diseo e implementacin de los controladores en Arduino, tuneo y
pruebas entre controladores. De esta manera ser fcil la comparacin entre
los resultados de los diferentes controladores y ayudar a la seleccin del
mejor de todos.

Contenido
Resumen ................................................................................................................ 2
1.

Introduccin ................................................................................................................................... 9

1.1.

Descripcin del proceso del motor DC ........................................................ 10

1.1.1.

Diagramas de bloques del sistema completo en lazo cerrado ..................................... 10

1.1.2.

Descripcin de cada uno de los componentes y la interaccin entre ellos. ................. 10

1.1.3.
Descripcin del esquemtico del circuito de acondicionamiento y conexiones del
sistema en lazo cerrado. ............................................................................................................... 11
1.1.4.
Seleccin y justificacin matemtica de los componentes utilizados en el circuito de
acondicionamiento. ...................................................................................................................... 11

1.2.

Identificacin del proceso ............................................................................ 12

1.2.1.

Pruebas de verificacin de linealidad ........................................................................... 13

1.2.2.

Proceso de identificacin y obtencin de funcin de transferencia ............................ 14

1.2.3.

Validacin de Modelo ................................................................................................... 16

1.3.

Diseo de controladores ............................................................................. 18

1.3.1.

Controlador ON/Off ...................................................................................................... 18

1.3.2.

Descripcin y teora de controlador On/off .................................................................. 18

1.3.3.

Implementacin controlador On/off ............................................................................ 19

1.3.4.

Pruebas de desempeo del controlador On/off ........................................................... 19

1.3.5.

Controlador ON/Off con histresis ............................................................................... 20

1.3.6.

Descripcin y teora de controlador On/off con histresis ........................................... 20

1.3.7.

Implementacin controlador On/off con histresis ..................................................... 21

1.3.8.

Sintonizacin de controlador On/off con histresis ..................................................... 22

1.3.9.

Pruebas de desempeo del controlador On/off con histresis .................................... 23

1.3.10.

Controlador PI ............................................................................................................... 24

1.3.11.

Descripcin y teora de controlador P .......................................................................... 24

1.3.12.

Implementacin controlador P ..................................................................................... 24

1.3.13.

Sintonizacin de controlador P ..................................................................................... 25

1.3.14.

Pruebas de desempeo del controlador P.................................................................... 26

1.3.15.

Controlador PI ............................................................................................................... 27

1.3.16.

Descripcin y teora de controlador PI ......................................................................... 27

1.3.17.

Implementacin controlador PI .................................................................................... 28

1.3.18.

Sintonizacin de controlador PI .................................................................................... 30


3

1.3.19.

Pruebas de desempeo del controlador PI................................................................... 35

1.3.20.

Controlador Fuzzy ......................................................................................................... 37

1.3.21.

Descripcin y teora de controlador Fuzzy .................................................................... 38

1.3.22.

Pruebas de desempeo del controlador Fuzzy ............................................................. 49

1.3.23.

Conclusiones parciales controlador Fuzzy .................................................................... 51

1.3.24.

Comparacin grfica de desempeo de los diferentes controladores ......................... 51

1.3.25.

Conclusiones parciales de diseo de controladores ..................................................... 52

1.4.

Conclusiones generales del proceso de Motor DC ..................................... 53

1.5.

Descripcin del proceso de segundo orden........................................... 53

1.5.1.

Teora general de los sistemas de segundo orden........................................................ 54

1.5.2.

Diagrama de bloques del sistema completo en lazo cerrado. ...................................... 55

1.6.

Identificacin del proceso de segundo orden .............................................. 59

1.6.1.

Contextualizacin .......................................................................................................... 59

1.6.2.

Proceso de identificacin y obtencin de funcin de transferencia ............................ 60

1.6.3.

Validacin del modelo................................................................................................... 63

1.7.

Diseo de controladores ............................................................................. 64

1.7.1.

Descripcin de la dinmica para adaptar los controladores al nuevo proceso. ........... 64

1.7.2.

Descripcin de adecuaciones hecha al controlador ON/OFF ....................................... 65

1.7.3.

Pruebas de desempeo del controlador ON/OFF......................................................... 66

1.7.4.

Descripcin de adecuaciones hecha al controlador P .................................................. 67

1.7.5.

Sintonizacin del controlador P .................................................................................... 67

1.7.6.

Descripcin de adecuaciones hecha al controlador PI ................................................. 69

1.7.7.

Sintonizacin del controlador PI ................................................................................... 69

1.7.8.

Pruebas de desempeo del controlador PI................................................................... 72

1.7.9.

Descripcin de adecuaciones hecha al controlador Fuzzy............................................ 73

1.7.10.

Pruebas de desempeo del controlador Fuzzy ............................................................. 80

1.7.11.

Evaluacin tcnica de desempeo de los diferentes controladores ............................ 81

1.8.

Interfaz de Usuario ...................................................................................... 84

1.8.1.

Justificacin de la necesidad de la interfaz ................................................................... 84

1.8.2.

Descripcin de la pantalla principal HMI ...................................................................... 85

1.9.
1.10.

Conclusiones generales del proyecto ......................................................... 85


Reflexiones personales ............................................................................ 86

Anexos .................................................................................................................. 87
4

Esquemtico del circuito de acondicionamiento y conexiones del sistema ......................... 88

Cdigo implementado en Arduino. ........................................................................ 89


Referencias ........................................................................................................ 104

ndice de figuras
Figura 1 - Diagrama de bloques del sistema en lazo cerrado...................................................... 10.
Figura 1.1 - Sistema de linealidad ................................................................................................ 14.
Figura 1.2 - Respuesta real vs funcin de transferencia elegida. ................................................ 17.
Figura 1.3 - Controlador On/off respuesta al escaln y la perturbacin ...................................... 20.
Figura 1.4 - Controlador On/off con histresis. ............................................................................ 21.
Figura 1.5 - Sintonizacin emprica controlador On/Off variando el ancho de
ventana. ....................................................................................................................................... 22.

Figura 1.6 - Controlador On/off con histresis respuesta al escaln y la


perturbacin ................................................................................................................................. 23.

Figura 1.7 - Respuesta del sistema de un controlar P con variacin Kp ..................................... 26.
Figura 1.8 - Controlador P respuesta al escaln y la perturbacin .............................................. 26.
Figura 1.9 Kp= 0.5, Ki variable .................................................................................................. 32.
Figura 1.10 - Kp= 1, Ki variable. ................................................................................................... 32.
Figura 1.11 - Kp= 1.5, Ki variable. ................................................................................................ 33.
Figura 1.12 - Ki= 1, Kp variable. ................................................................................................... 33.
Figura 1.13 - Ki= 5, Kp variable .................................................................................................... 34.
Figura 1.14 - Ki= 7, Kp variable. ................................................................................................... 34.
Figura 1.15 - Controlador PI respuesta al escaln y la perturbacin ........................................... 35.
Figura 1.16 - Estructura del Sistema fuzzy.. ................................................................................ 38.
Figura 1.17 - Funcin de membresa forma triangular. ................................................................ 41.
Figura 1.18 - Funcin de membresa forma trapezoidal .............................................................. 41.
Figura 1.19 - Funcin de membresa forma de S. ..................................................................... 42.
5

Figura 1.20 - Funcin de membresa forma singleton ................................................................. 42.


Figura 1.21 Definicin de la funcin de membresa para la seal del error (Sin
Overshoot) .................................................................................................................................. 43.

Figura 1.22 - Definicin de la funcin de membresa para la seal del error (Lenta)
..................................................................................................................................................... 43.
Figura 1.23 - Definicin de la funcin de membresa para la seal del error (Error) ................... 44.
Figura 1.24 - Definicin de la funcin de membresa para la seal del error
(Segundo Orden) ......................................................................................................................... 44.

Figura 1.25 - Definicin de la funcin de membresa para la seal de salida DeltaU


(Sin Overshoot) ............................................................................................................................ 45.

Figura 1.26 - Definicin de la funcin de membresa para la seal de salida DeltaU


(Lenta) .......................................................................................................................................... 46.

Figura 1.27 - Definicin de la funcin de membresa para la seal de salida DeltaU


(Error)........................................................................................................................................... 46.

Figura 1.28 - Definicin de la funcin de membresa para la seal de salida DeltaU


(Segundo Orden). ........................................................................................................................ 46.

Figura 1.29 - Controlador Fuzzy tipo estabilizacin rpida. ......................................................... 49.


Figura 1.30 - Controlador Fuzzy tipo estabilizacin lenta ............................................................ 49.
Figura 1.31 - Controlador Fuzzy tipo error. .................................................................................. 50.
Figura 1.32 - Controlador Fuzzy tipo segundo orden ................................................................... 50.
Figura 1.33 Respuesta de un sistema de segundo sub-amortiguado ...................................... 54.
Figura 1.34 - Diagrama de bloques para un proceso de segundo orden hecho en
Simulink. ...................................................................................................................................... 55.

Figura 1.35 - Proceso de segundo orden hecho en Simulink ...................................................... 56.


Figura 1.36 - Grfica obtenida por el mdulo ADCR100 con las ganancias
encontradas ................................................................................................................................. 58.

Figura 1.37 - Respuesta del sistema ante diferentes escalones (1V, 2V, 3V) ............................. 59.
Figura 1.38 - Respuesta de la funcin de transferencia promedio ante diferentes
escalones (1V, 2V, 3V) ................................................................................................................ 63.

Figura 1.39 - Comportamiento del controlador On/Off ................................................................. 66.


6

Figura 1.40 - Comportamiento del controlador On/Off ante seales de escaln y


perturbaciones ............................................................................................................................. 66.

Figura 1.41 - Comportamiento del controlador P con Kp variable .............................................. 68.


Figura 1.42 - Respuesta del controlador PI, Kp fijo= 1, Ki variable= 1, 2, 4 y 7 .......................... 70.
Figura 1.43 - Respuesta del controlador PI, Ki fijo= 2, Kp variable= 0, 0.5, 3 y 8.. ..................... 71.
Figura 1.44 - Respuesta del sistema sin overshoot KP= 0 y Ki= 0.5 .......................................... 71.
Figura 1.45 Respuesta del sistema con overshoot con valores ideales KP= 2 y
Ki= 1 ............................................................................................................................................. 72.

Figura 1.46 - Comportamiento controlador PI antes seales de escaln y


perturbaciones ............................................................................................................................. 72.

Figura 1.47 - Funcin de membresa del error sin overshoot. ..................................................... 76.
Figura 1.48 - Funcin de membresa del error con overshoot. .................................................... 76.
Figura 1.49 - Funcin de membresa del error con final alrededor del 10% de
referencia ..................................................................................................................................... 76.

Figura 1.50 - Funcin de membresa de la salida Delta U sin Overshoot. .................................. 77.
Figura 1.51 - Funcin de membresa de la salida Delta U con Overshoot .................................. 78.
Figura 1.52 Funcin de membresa de la salida Delta U con final alrededor
del 10% de referencia .................................................................................................................. 78.

Figura 1.53 - Respuesta subamortiguada del sistema con 20% Overshoot. .............................. 79.
Figura 1.54 - Respuesta del sistema de segundo orden sin oscilaciones ................................... 80.
Figura 1.55 - Respuesta del sistema con error de estado estacionario final
alrededor del 10% de referencia.................................................................................................. 80.

Figura 1.56 - Respuesta del sistema con error de estado estacionario final
alrededor del 10% de referencia.................................................................................................. 81.

Figura 1.57 - Interfaz HMI, pantalla principal. .............................................................................. 85.

ndice de tablas
Tabla 1 Valores de cada parmetro .......................................................................................... 16.
Tabla 2 Funciones de transferencia .......................................................................................... 16.
Tabla 3 Rangos establecidos para variables Crisp. ................................................................... 40.
Tabla 4 Definicin de variables lingsticas. ............................................................................. 41.
Tabla 5 Matriz de decisin......................................................................................................... 47.
Tabla 6 Escaln 1 Volt, valores de , ......................................................................... 61.
Tabla 7 Escaln 2 Volts, valores de , ........................................................................ 61.
Tabla 8 Escaln 3 Volts, valores de , . ....................................................................... 62.
Tabla 9 Funciones tericas obtenidas ....................................................................................... 62.
Tabla 10 Valores de Kp y Ki fijos y variables ............................................................................ 70.
Tabla 11 Rango de las variables Crisp ..................................................................................... 74.
Tabla 12 Variables y valores lingusticos. ................................................................................. 74.
Tabla 13 Matriz de decisin....................................................................................................... 79.
Tabla 14 Evaluacin tcnica de desempeo............................................................................. 83.

1. Introduccin
Un sistema de control puede definirse como un sistema que recibe
variables de entrada y cuya respuesta a estas acciones externas (variables de
entrada) se les denomina variables de salida.
Las variables de entrada se dividen en: variables de control y
perturbaciones, las primeras pueden manipularse mientras que en las
segundas no existen ningn tipo de control.
Dentro de lo que se conoce como el sistema se encuentra el concepto
sistema de control, el cual se define como un sistema que cuenta con la
presencia de una serie de elementos que permiten la manipulacin de las
variables de control de modo que las variables de salida almacenen ciertos
valores definidos.
Un sistema de control ideal debe cumplir con los siguientes puntos:
1. Garantizar la estabilidad y ser robusto frente a perturbaciones y
errores que pueda presentar el modelo.
2. Tan eficiente como le sea posible, evitando comportamientos
bruscos e irreales.
3. Fcil implementacin y cmodo de operar en tiempo real.
El control automtico ha jugado un papel indispensable en el avance de
la ciencia y la ingeniera, esto se debe a que los avances en la teora y prctica
de control automtico brindan los medios necesarios para lograr el ptimo
funcionamiento de sistemas dinmicos, mejorar la calidad y bajar los costos de
produccin. Por medio de la teora de control, la cual sus aportaciones al
desarrollo y aplicacin de control vienen desde el siglo XVIII, se puede controlar
los sistemas complejos, los requisitos de eficiencia y precisin y una de las
cosas ms crticas, reducir los costos de las mltiples aplicaciones industriales.
Por todo lo anterior es muy importante el presente documento, en el que
se pueden ver el diseo y la implementacin de diferentes controladores para
un sistema de primer orden con el fin de seleccionar el que logre satisfacer las
especificaciones de control, basndonos en mtodos analticos y de
sintonizacin.

1.1. Descripcin del proceso del motor DC


En esta seccin del reporte se analiza el diagrama de bloques en lazo
cerrado, la funcin de cada bloque as como su relacin entre cada elemento.
Tambin se explica el esquemtico el cual incluye el filtro, la conexin a Arduino
y el seguidor de voltaje, as como se escogieron los componentes mediante un
anlisis matemtico y la funcin de cada uno de ellos.

1.1.1. Diagramas de bloques del sistema completo en lazo cerrado

Figura 1. Diagrama de bloques del sistema en lazo cerrado

1.1.2. Descripcin de cada uno de los componentes y la interaccin entre ellos.


Observando la figura 1, podemos ver que la seal r(k) es recibida por el
arduino en forma de vector con un rango de 8 bits (0 a 255) y en conjunto de
la seal y(k) podemos obtener la seal del error. La seal del error es la resta
de la seal y(k) r(k).
La seal y(k) fue acondicionada para un rango de 0 a 255 para tener
coherencia con la seal r(k) por medio del ADC del arduino.
Tambin la seal u (k) ha sido acondicionada por medio del filtro pasa
bajas con el objetivo de linealizarla, ya que a la salida del arduino tenemos una
seal de PWM de 0 a 5 Vcd y requerimos una seal analgica de 0 a5 Vcd por
esto utilizamos el filtro pasa bajas para poder obtener una seal analgica de
0 5 Vcd la cual ya puede ser recibida por la planta.

10

1.1.3. Descripcin del esquemtico del circuito de acondicionamiento y


conexiones del sistema en lazo cerrado.
El esquemtico cuenta con un Arduino Uno el cual trabaja con un
microcontrolador el cual es el encargado de procesar nuestro cdigo para
controlar el motor del mdulo MT-GN 100 en lazo cerrado.
Se cuenta con un filtro pasa bajas para que funcione como convertidor
Digital- Analgico que permita convertir la seal PWM que nos entrega la salida
3 del Arduino de 0 a 255 en un rango analgico de 0 a 5 Volts, as como tambin
con un seguidor de voltaje para disminuir el rizo entre las transiciones del PWM.
El mdulo MT-GN100 el cual permite simular diferentes condiciones de
operacin mediante su arreglo de cargas elctricas variables que producen
perturbaciones en el sistema. La medicin de la velocidad se realiza con un
encoder de amplia resolucin con 1000 PPR instrumentado para proporcionar
una seal analgica estndar de +5VCD. El actuador de potencia permite
controlar la velocidad mediante un amplificador PWM. ste lo usaremos para
probar todos controladores. El esquemtico se puede ver en la seccin de
anexos.

1.1.4. Seleccin y justificacin matemtica de los componentes utilizados en el


circuito de acondicionamiento.
La salida del PWM del Arduino Uno (se usa la salida digital #3) trabaja
a una frecuencia de 500 Hz y se quiere filtrar ese PWM con un error de al
menos 1%, 5Hz ser la frecuencia de corte al ser este el 1% de 500Hz, para
disminuir el rizo se necesita un filtro pasa bajas el cual fue construido con un
filtro de primer orden el cual fue diseado con la ecuacin 1, cabe destacar que
se propuso un capacitor de 100 uF:

1
1
=
2 2

11

(1)

5=

1
= 318
2 100 106

Aunque en el clculo sale una resistencia de 318 Ohms en la prctica


usamos una de 330 ya que es la que ms se acerca a la resistencia calculada.
Tambin se us un seguidor de voltaje con un amplificador operacional
TL084, y la salida del OPAMP se introduce en la entrada del Mdulo MTGN100, y la salida del mdulo se introduce en la entrada analgica de nuestro
Arduino, se usa la entrada A0 para hacer el respectivo proceso.

A lo largo de esta seccin se pudo observar cada uno de los bloques en


lazo cerrado, as como el esquemtico de los circuitos que se van a utilizar a
lo largo del proyecto. Con la ayuda de esto y mediante procesos matemticos
se puedo definir los componentes que se van a utilizar, adems de poder
comprender la funcin, la interaccin entre ellos y la necesidad de cada uno de
ellos.

1.2. Identificacin del proceso


Se entiende por identificacin de sistemas o del proceso, a la obtencin
de manera experimental de un modelo que pueda reproducir de manera exacta
las caractersticas dinmicas del proceso.
La identificacin del proceso tiene varias etapas entre las que destacan:
1. Obtencin de datos de entrada y salida: Registrar la respuesta de las
entradas y salidas del sistema en un intervalo de tiempo, aplicando
una seal de entrada.
2. Tratamiento

previo

de

los

datos

registrados:

Corregir

imperfecciones/errores que pudieran tener los datos registrados en


el punto anterior, antes de iniciar la identificacin del proceso, de esta
manera se facilita y mejora el proceso.
3. Eleccin de la estructura del modelo.
4. Obtencin de parmetros para el modelo: parmetros de la
estructura del modelo que mejor ajustan la respuesta del modelo.

12

5. Validacin del modelo: Determinar si el modelo satisface el grado de


exactitud y las especificaciones requeridas.

En las siguientes secciones se hacen pruebas de linealidad y la


obtencin de funcin de transferencia para poder llegar a la validacin del
modelo y continuar con el diseo de los controladores.

1.2.1. Pruebas de verificacin de linealidad


La linealidad es un proceso analtico que tiene la capacidad de indicar
como vara el nivel de exactitud obtenido en la medicin de un sistema, en otras
palabras, da una ligera idea de cmo el tamao de lo que se va a medir afecta
la exactitud del sistema deseado.
Se sabe que un sistema es lineal si satisface el principio de
superposicin el cual a su vez necesita satisfacer los principios de
proporcionalidad y de adicin. El principio de proporcionalidad consta en que
cuando la entrada de un sistema es multiplicada por un factor, la salida del
sistema tambin ser multiplicada por el mismo factor. El principio de adicin
consta en que si la entrada es el resultado de la suma de dos entradas, la salida
ser el resultado de la suma de las salidas que resultarn de las dos entradas
de manera individual. Al cumplirse estos dos principio, se sabe que un sistema
es lineal y dicho sistema representado en una grfica deber expresar el grado
de coincidencia entra la curva de calibracin y la lnea recta determinada. Para
poder determinar la linealidad en nuestro sistema, se aliment el motor con
pequeos incrementos para obtener la respuesta que arrojaba en cada punto
evaluado. El resultado se puede observar en la figura 1.1

13

Figura 1.1. Sistema de linealidad

Se puede observar como el sistema mantiene un comportamiento


proporcional entre la seal de entrada (x) y salida (y), con ciertas
singularidades al principio y al final, donde el comportamiento es no lineal. Las
singularidades presentadas al principio y al final de la grfica de nuestro
proceso vistas en la figura 1.1, se deben a que el proceso parte del reposo y
para romper el momento de inercia y hacer que el motor empiece a girar, se
requiere un voltaje mayor que el voltaje de operacin. El motor est fsicamente
diseado para operar a en un mximo de 3600 rpm aproximadamente de modo
que cuando el voltaje alcanza el valor mximo para trabajar a esta velocidad,
un voltaje adicional no incrementar el valor de salida que afecta directamente
la linealidad del proceso. Analizando la grfica y con lo dicho anteriormente se
considera que es un sistema lineal tomando en cuenta que no se debe trabajar
en las zonas no lineales.

1.2.2. Proceso de identificacin y obtencin de funcin de transferencia


Como ya se dijo, el proceso de identificacin consta en la estimacin de
modelos de sistemas dinmicos a partir de datos observados, con el propsito
de lograr una buena identificacin y poder determinar el orden del sistema se
realizaron pruebas para observar la respuesta del sistema a diferentes
escalones. Las pruebas se realizaron en Arduino y el software de Matlab,
NIDAM, esto con el fin de comparar el comportamiento del sistema.
14

Al ser un sistema de primer orden la ecuacin 2 rige la funcin de


transferencia para este sistema.

( ) =

( ) + 1

(2)

Despus se define la funcin que rige la respuesta a la salida de un


sistema de primer orden en el dominio del tiempo, ecuacin 3

() = (1 ) =

(3)

Donde:
=

()

()= Valor que tiende al infinito


= Escaln aplicado

La ecuacin 4, muestra la funcin de la respuesta a la salida de un


sistema de primer orden en el dominio del tiempo. La cual tambin
necesitaremos para definir nuestras funciones de transferencia.

() = (1 / )

(4)

Sustituyendo los valores correspondientes de cada escaln en las


ecuaciones anteriores, se pueden observar los valores obtenidos en la tabla 1

M
1v
2v

()
0.8627
1.8626

k
0.8627
0.9313
15

()
0.5453
1.1773

0.128
0.103

3v
4v
5v

2.8626
3.8624
4.8627

0.9542
0.9656
0.97254

1.809
2.4415
3.0738

0.11
0.15
0.18

Tabla 1. Valores de cada parmetro

Finalizando lo anterior se sustituyen los valores en la ecuacin de


funcin de transferencia y se obtiene la funcin de transferencia con respecto
cada voltaje. En la siguiente tabla se pueden observar las funciones de
transferencia con respecto cada voltaje.

TF con un escaln de 1v

TF con un escaln de 2v

TF con un escaln de 3v

TF con un escaln de 4v

TF con un escaln de 5v

() =

.
. +

() =

0.9313
0.103 + 1

() =

0.9542
0.11 + 1

() =

0.9656
0.15 + 1

() =

0.9725
0.18 + 1

Tabla 2. Funciones de transferencia

1.2.3. Validacin de Modelo


En el este paso se quiere sacar la funcin de transferencia que va a
representar nuestro modelo que describa al sistema real por completo.
Primero se descartan las funciones de transferencia de 1v y 5v porque
como se observ en la grfica de linealidad el mdulo del motor presenta dos
zonas en donde no es lineal y tales zonas son en valores altos y pequeos, por
lo tanto se eliminan para tener un comportamiento ms lineal del proceso.

16

Se escogi la funcin de transferencia que sali con un escaln de 4


volts porque de acuerdo a la experimentacin que realizamos fue la que se
comport de mejor manera con respecto a todos los escalones. Adicionalmente
se hicieron algunos ajustes y nos qued de la siguiente manera:
0.96
0.15 + 1

En la figura 1.2 se observa ya un comportamiento similar entre las


respuestas reales y las respuestas hechas por nuestra funcin de transferencia
y por lo que se puede observar son muy parecidas

Figura 1.2 Respuesta real vs funcin de transferencia elegida

En esta seccin fue muy importante garantizar la linealidad del sistema


y poder determinar mediante las grficas que tipo de orden era nuestro
sistema, de esta manera pudimos empezar con la seleccin de las funciones
de transferencia y a travs de ajustes empricos y pruebas de escaln de
diferentes valores seleccionamos la funcin de transferencia que mejor
describiera nuestro sistema. A esta parte se le conoce como identificacin del
proceso. Es bsico realizar una buena identificacin para empezar con el
diseo de los controladores y que la respuesta que obtengamos en cada uno
17

de ellos se apegue a nuestra funcin de transferencia determinada. Si en esta


parte se presenta algn erro, la parte del diseo de controladores ser ms
difcil. Al garantizar nuestra nica funcin de transferencia podemos empezar
la etapa del diseo e implementacin de los 5 controladores que se vern a lo
largo del reporte.

1.3. Diseo de controladores


El diseo de un controlador digital suele ser realizado por medio de las
tcnicas del anlisis y diseo discreto.
Pero tambin pueden ser diseados a travs de las tcnicas en el plano
siempre y cuando el hardware pueda operar con frecuencias altas de muestreo
comparadas con la frecuencia natural del lazo de control. Si esto no es posible
entonces no podemos aplicar las tcnicas del plano s. En el caso de que se
pueda esto y una vez que se haya obtenido el controlador continuo se
discretiza para obtener el controlador digital.
La discretizacin del controlador intenta preservar propiedades como
ganancia en continua, respuesta a frecuencias de inters, respuestas temporal.
Una vez realizada la etapa de la validacin del modelo, se puede
empezar con la etapa del diseo de los controladores, seccin que se ver a
continuacin.

1.3.1. Controlador ON/Off


El primer controlador a disear es el controlador On/Off, del cual se ve
un poco de teora, implementacin y pruebas de desempeo.
La salida del controlador ON-OFF, o de dos posiciones, solo puede
cambiar entre dos valores como si este fuera un interruptor. Este controlador
no posea la capacidad para producir un valor exacto en la variable que se
desea controlar para un valor de referencia dada, ya que el controlador produce
una continua desviacin del valor de referencia.

1.3.2. Descripcin y teora de controlador On/off

18

Este tipo de controlador es el ms bsico, mandan una seal de


activacin (on) cuando la seal de entrada es menor que el nivel de referencia
(definido previamente), y desactiva la seal de salida (off) cuando la seal de
entrada es ms grande que la seal de referencia.
La accin de este controlador es discontinua. En consecuencia ocurren
oscilaciones de la variable controlada en torno a la condicin requerida, esto
se debe a retrasos en la respuesta del sistema de control y en el proceso.
Las aplicaciones bsicas son termostatos y sistemas de aire
acondicionado

1.3.3. Implementacin controlador On/off


Como ya se dijo en las secciones 1.3.2 y 1.3.3, en un controlador On/off
se tienen solo dos posiciones fijas, de tal manera que la seal de control est
dada por la ecuacin 5.

() = {

1 () > 0
2 () < 0

(5)

Con la ecuacin anterior se procede a implementarla en Arduino


partiendo del valor actual de la seal del error. Si la seal del error es mayor a
cero, es decir que no se ha alcanzado la velocidad del motor deseada, la seal
u(k) ser igual a 255 lo que representa la velocidad mxima del motor. Por otra
parte si la seal del error es menor a cero, es decir que la velocidad del motor
ha sido superada, la seal u(k) ser igual a cero lo que representa la velocidad
mnima del motor.
As el cdigo implementado en Arduino para el controlador On/off se
encuentra en la seccin de anexos.

1.3.4. Pruebas de desempeo del controlador On/off

19

Entrada al sistema con un controlador On Off


6

U(t)

4
5
6
7
t
Respuesta al sistema con un controlador On Off

10

10

Y(t)

3
2
1
0

5
t

Figura 1.3. Controlador On/off respuesta al escaln y la perturbacin

1.3.5. Controlador ON/Off con histresis


La salida del controlador ON-OFF, o de dos posiciones, solo puede
cambiar entre dos valores como si este fuera un interruptor. Este controlador
no posea la capacidad para producir un valor exacto en la variable que se
desea controlar para un valor de referencia dada, ya que el controlador produce
una continua desviacin del valor de referencia.
Para evitar un nmero de excesivo de conmutaciones se incluye un laso
de histresis. La histresis es como una oposicin a experimentar cualquier
cambio. El segundo controlador a disear es precisamente el controlador
On/Off con histresis. Se presenta la teora, implementacin, sintonizacin y
pruebas de desempeo de este.

1.3.6. Descripcin y teora de controlador On/off con histresis


Como ya se vi, un controlador On/Off es la regulacin ms simple y se
utiliza en aplicaciones que puedan admitir una oscilacin continua entre dos
lmites. Para evitar el nmero de conmutaciones se incluye una ventana de
histresis. La histresis trabaja como una oposicin a experimentar cualquier

20

cambio. La figura 1.4 muestra un diagrama de control en lazo cerrado de un


controlador On/Off con histresis.

Figura 1.4. Controlador On/off con histresis

El tipo de respuesta de este controlador es una especie de todo o nada,


es decir, que cuando la variable regulada ha llegado hasta un valor por debajo
de la variable establecida/ referencia se va a conectar. Por el lado contrario, se
va a desconectar cuando la variable supere el lmite superior de la variable
establecida/referencia.
Algunas de las caractersticas de este tipo de controlador incluyen la
variacin cclica continua de la variable controlada, un funcionamiento ptimo
en procesos con tiempo de retardo mnimo y velocidad de reaccin lenta, tiene
un mecanismo simple de construccin.
Las ventajas que ofrece son varias, como el bajo precio de instalacin,
es la forma ms simple de un sistema de control, es de fcil instalacin y
mantenimiento y presenta una amplia demanda en proceso de poca precisin.
Por otro lado las desventajas que puede presentar son la mnima precisin y
poca calidad, por lo que no es recomendable para procesos de alto riesgo.

1.3.7. Implementacin controlador On/off con histresis


A diferencia del controlador On/off, el controlador On/of con histresis
se basa en que la seal de control no cambia a mximo o mnimo a menos que
21

el valor de la seal del error supere positivamente o negativamente la ventana


de histresis. La ecuacin 6 muestra la seal de control del controlar On/off
con histresis (tomando en cuenta que W es el valor de la ventana de
histresis).

() = {

1 () > W/2
2 () < W/2

(6)

Con la ecuacin anterior se procede a implementarla en Arduino


partiendo del valor actual de la seal del error. Si la seal del error es mayor
que el lmite superior de la ventana, la seal u(k) ser igual a 255 lo que
representa la velocidad mxima del motor. Por otra parte si la seal del error
es menor al lmite inferior de la ventana, la seal u(k) ser igual a cero lo que
representa la velocidad mnima del motor.
As el cdigo implementado en Arduino para el controlador On/off con
histresis se encuentra en la seccin de anexos.

1.3.8. Sintonizacin de controlador On/off con histresis


Para el controlador On/off con histresis, el ancho de la ventana es la
variable a controlar. Dichos valores pueden variar entre 0 - 99 duty cycle y 0 1.94 volts.

Figura 1.5. Sintonizacin emprica controlador On/Off variando el ancho de ventana

22

Se puede observar en la figura 1.5, que a pesar de los valores que se


establezcan para el ancho de la ventana, la seal de salida del nuestro sistema
no logra estabilizarse, es decir que se mantiene oscilando y por lo tanto el error
en estado estacionario tambin oscilar sin llegar a cero.
En la grfica se puede ver que mientras mayor sea el ancho de la
ventana, mayor ser el error en estado estacionario. Esto no nos conviene
porque lo que se busca al implementar un controlador es que el error en estado
estacionario sea nulo. En cuanto a la estabilidad del sistema, como ya se
mencion, es independiente del ancho de ventana por lo que sigue oscilando
de la misma manera.

1.3.9. Pruebas de desempeo del controlador On/off con histresis


Entrada al sistema con un controlador on-off con histresis con perturbacin
6

u (t)

4
2
0

0.5

0.5

1.5

2.5
3
3.5
4
t
Respuesta al sistema con un controlador on-off con histresis con perturbacin

1.5

4.5

4.5

y (t)

3
2
1
0

2.5
t

3.5

Figura 1.6. Controlador On/off con histresis respuesta al escaln y la perturbacin

Podemos concluir que en las grficas presentadas de este controlador,


la seal de salida del sistema se mantiene oscilando muy cerca de la seal de
referencia. Es importante resaltar que el duty cycle en la seal de control,
aumenta para poder mantener las revoluciones requeridas por el motor para
estar cerca de la seal de referencia.
Este controlador lo que hace es que la salida del sistema oscila mucho
y el error en estado estacionario nunca va a ser cero. Desde este punto
23

podemos concluir que no es una buena opcin para ser seleccionado como el
mejor para implementarlo en un sistema de control.

1.3.10. Controlador PI
El tercer controlador a disear es el controlador PI, cuya magnitud de la
salida del controlador es proporcional al tamao del error, entre ms grande
sea el error, ms grande ser la salida del controlador.
=
Donde e es el error y es una constante.

1.3.11. Descripcin y teora de controlador P


El controlador proporcional se basa en el producto entre la seal de error
y la constante proporcional, esto para lograr que el error en estado estacionario
sea casi nulo. En la mayora de los casos estos valores solo sern ptimos en
una determinada porcin del rango total de control. Pero tambin existe un
valor lmite en la constante proporcional a partir de la cual se produce una sobre
oscilacin donde el sistema alcanza valores superiores a los deseados.
Un controlador proporcional es un tipo de sistema de control de
retroalimentacin lineal, es ms complejo que el controlador On/Off. Este tipo
de controlador supera la inestabilidad mediante la modulacin de la salida al
dispositivo de control. En el control proporcional, la salida del controlador es
proporcional a la seal de error, lo que significa que la salida del controlador
proporcional es el producto de la multiplicacin de la seal de error y la
ganancia proporcional.

1.3.12. Implementacin controlador P


Se sabe que un controlador es proporcional, debido a que la seal de
salida del controlador es proporcional al error. La ecuacin 7 describe lo antes
mencionado.
24

() = ()

(7)

En el tiempo discreto queda de la siguiente manera:


() = ()

(8)

Es esta ltima ecuacin (8) la que se implementa en el microcontrolador


Arduino partiendo del valor actual de la seal del error. El valor de Kp se
encontr con la funcin de transferencia del proceso, escogida en la seccin
1.2.3, la ecuacin 7 y el criterio de Routh para lograr que el sistema sea estable
y que el error en estado estacionario sea finito ante seales de tipo escaln.

Si la seal de control u(k) es mayor a 255, la seal u(k) ser igual a 255
lo que representa la velocidad mxima del motor. Por otra parte si la seal de
control u(k) es menor a cero, la seal u(k) ser igual a cero lo que representa
la velocidad mnima del motor. De esta manera podemos asegurar que cuando
llegue a los lmites, no se generar un PWM diferente al que se requiere.
As el cdigo implementado en Arduino para el controlador P se
encuentra en la seccin de anexos.

1.3.13. Sintonizacin de controlador P


En el caso del controlador On/Off con histresis la variable a controlar
era la ventana. En el caso del controlar P la variable a controlar ser el valor
de Kp. Se debe de tomar en cuenta que para que el controlar Proporcional
tenga una estabilidad en lazo cerrado, el valor de Kp debe ser mayor a -1
basndonos en el criterio de Routh. Si se llegara a establecer un valor de Kp
menor a -1 el sistema presentara inestabilidad.
Con el fin de probar la estabilidad e inestabilidad del sistema los valores
propuestos para Kp fueron 2, 3, 4, 6, -3.
La Respuesta del sistema al tener estos parmetros se puede observar
en la figura 1.7.

25

Figura 1.7. Respuesta del sistema de un controlar P con variacin Kp

En la grfica se puede observar que, en comparacin con el controlador


On/Off con histresis, el controlador P disminuye el error mientras ms grande
sea el valor de KP, en este caso cuando se aplic el valor de Kp=6 comparado
con el de Kp= 2 el valor de 6 nos ayuda a disminuir el error pero sin llegar a ser
nulo.
Tambin se puede ver que la seal de salida obtenida al aplicar un valor
menor a -1, en nuestro caso Kp= -3, se vuelve inestable.

1.3.14. Pruebas de desempeo del controlador P


Entrada al sistema de un controlador P con perturbacin
6

u (t)

4
2
0

5
6
7
t
Respuesta al sistema de un controlador P con perturbacin

10

10

y (t)

2
1
0

5
t

Figura 1.8. Controlador P respuesta al escaln y la perturbacin

26

En conclusin, el controlador P no presenta un error en estado


estacionario igual a cero, por lo que desde un principio podemos saber que
este tipo de controlador no es la mejor opcin para implementarse en el control
de un sistema. El tiempo de estabilizacin es relativamente lento, ya que
deseamos que sea menor o igual a 1 segundo. Para otra aplicacin podra
funcionar pero para nuestro caso, no es la mejor opcin por es muy lento.
Tambin se pueden observar oscilaciones que despus de mucho tiempo
pueden representar un riesgo.
Finalmente tanto la seal de salida como la del controlador tienden a un
valor fijo sin importar las perturbaciones presentadas en el sistema.

1.3.15. Controlador PI
El cuarto controlador a disear es el controlador PI.

Donde Ki es la constante de proporcionalidad y, cuando la salida del


controlador y el error se expresan como porcentajes, tienen unidades de 1/s.
Al igual que los controladores anteriores, se presenta teora,
implementacin, sintonizacin terica y emprica y pruebas de desempeo.

1.3.16. Descripcin y teora de controlador PI


El controlador proporcional integral decrementa el tiempo de subida,
incrementa el sobre impulso y el tiempo de estabilizacin, y tiene efecto de
eliminar el error de estado estable. La accin de controlador PI se define
mediante la ecuacin 9.

() = () +
()
0
27

(9)

Donde Kp es la ganancia proporcional y Ti es el tiempo integral. El


tiempo integral ajusta la accin del control, por otro lado si se cambia el valor
del Kp afecta las partes integral y proporcional de la accin de controlador.
Al aplicar la transformada de Laplace a la ecuacin 9 obtenemos la
ecuacin de transferencia del controlador PI:

() = () +
()
()

1
()

1

= (1 + )

(10)

Al aplicar a la ecuacin 10 la transformada z, se obtiene la ecuacin de


recurrencia del controlador, la cual se explicar a detalle en la seccin 1.3.21

1.3.17. Implementacin controlador PI


Como ya se vio en la seccin anterior, si le aplica la transformada z a la
funcin de transferencia del controlador PI se obtiene su respectiva ecuacin
de recurrencia, el desarrollo completo para llegar a dicha ecuacin de
recurrencia es el siguiente:

()
()

= +

1 1

1+ 1

(11)

(12)

Sustituyendo la ecuacin 12 en la ecuacin 11 obtenemos la siguiente


la ecuacin

28

()

= +
2 (1 1 )
()
(1 + 1 )

Despus se despeja U(s) y se expande


( (1 + 1 ))
() = ( +
) ()
2(1 1 )
() = () + ()(

+ 1
)
(2 2 1 )

Multiplicamos todo por 2(1 1 )


2(1 1 ) () = () (2(1 1 )) + ()( ) + () 1
2() 2 () 1 = 2 () 2 () 1 + () + () 1

Aplicamos la transformada inversa de Z y obtenemos la siguiente


ecuacin
2() 2( 1) = 2 () 2 ( 1) + () + ( 1)
Despejando U(k) se obtiene:

() =

2 () 2 ( 1) + () + ( 1) + 2( 1)
2

Finalmente, agrupando en trminos de ( 1), (), ( 1) tenemos:


() = ( 1) + ()

(2 + )
2

+ ( 1)

( 2 )
2

(13)

As tenemos que la funcin de transferencia y ecuacin de recurrencia


final para un controlador PI es:
= +

29

() = ( 1) + () + ( 1)

Tomando en cuenta que T= 0.002, Kp= 1, Ki=9.9, los valores de A, B y


C son:
A= 1
B=
C=

2+
2
2
2

= 1.0099
= .9901

Si la seal de control u(k) es mayor a 255, la seal u(k) ser igual a 255
lo que representa la velocidad mxima del motor. Por otra parte si la seal de
control u(k) es menor a cero, la seal u(k) ser igual a cero lo que representa
la velocidad mnima del motor. De esta manera podemos asegurar que cuando
llegue a los lmites, no se generar un PWM diferente al que se requiere.
As el pseudo-cdigo implementado en Arduino para el controlador P se
encuentra en la seccin de anexos.

1.3.18. Sintonizacin de controlador PI


Se pueden obtener los valores de Kp y Ki de un controlador PI mediante
mtodo emprico y mtodo terico.
El mtodo terico se basa en el criterio de Routh-Hurwitz, para realizar
este anlisis se utiliza la siguiente ecuacin:

1 + ()() = 0

Los pasos a seguir son:


Escribir el polinomio de la ecuacin caracterstica en la forma
0 + 1 1 + + 1 + = 0

30

(14)

Si todos los coeficientes son positivos, se deben ordenar los coeficientes


del polinomio en renglones y columnas basndose en el siguiente arreglo:

Una vez ordenados, se buscan las variables Kp y Ki y se despejan para


obtener los valores.
Los valores de Kp y Ki obtenidos para nuestro sistema fueron:
Kp>-1.035
Ki>0

La sintonizacin emprica de este controlador se realiz de la siguiente


manera:
Se obtuvo la respuesta del sistema y(t) utilizando el controlador PI con
seis valores diferentes para los parmetros fijos: tres para Kp fijo y tres para Ki
fijo y cada parmetro fijo se combin con 5 parmetros variable de Kp y Ki.
Primero se us una Kp fija de 0.5 y se usaron las ki=1, 2, 3, 5 y 9 como
se puede observar en la figura 1.9

31

Figura 1.9. Kp= 0.5, Ki variable

Despus se us una Kp fija de 0.1 y se usaron las ki=1, 2, 3, 5 y 7 como


se puede observar en la figura 1.10

Figura 1.10. Kp= 1, Ki variable

32

Se us tambin una Kp fija de 1.5 y se usaron las ki=1, 2, 3, 5 y 7 como


se puede observar en la figura 1.11

Figura 1.11. Kp= 1.5, Ki variable

Ahora se us una Ki fija de 1 y se usaron las ki= 0.1, 0.5, 1, 2 y 5 como


se puede observar en la figura 1.12

Figura 1.12. Ki= 1, Kp variable

33

Ahora se us una Ki fija de 5 y se usaron las ki= 0.1, 0.5, 1, 2 y 3 como


se puede observar en la figura 1.13

Figura 1.13. Ki= 5, Kp variable

Ahora se us una Ki fija de 7 y se usaron las ki= 0.1, 0.5, 1, 2 y 5 como


se puede observar en la figura 1.14

Figura 1.14. Ki= 7, Kp variable

34

Se puede decir de forma general todos los valores que usamos para
ste controlador nos ofrece un error en estado estacionario igual a cero. La
nica variante es el tiempo de estabilizacin.

1.3.19. Pruebas de desempeo del controlador PI


Entrada al sistema con un control PI con perturbacin
6

u (t)

4
2
0

5
6
7
t
Respuesta al sistema con un control PI con perturbacin

10

10

y (t)

3
2
1
0

5
t

Figura 1.15. Controlador PI respuesta al escaln y la perturbacin

Mediante la grfica se puede decir que el controlador PI trabaja de la


manera adecuada ya que en poco tiempo logra estabilizar la seal tanto frente
a un escaln como ante una perturbacin. Logrando estar muy cerca de los
1500rpm de referencia para la prueba.

Es muy importante tener mucho cuidado en escoger el tipo de variable


que seleccionamos para parmetro durante la implementacin de nuestro
controlador PI porque utilizando variables de tipo flotante o de doble precisin
los clculos realizados en el algoritmo del controlador permitirn obtener
resultados ms precisos en la salida del sistema que si se utilizan variables de
tipo entero adems es importante considerar no excederse en el uso de
variables flotantes o de doble precisin por la limitacin en la memoria del
microcontrolador ya que si el archivo del programa es muy grande no se podr
cargar en el microcontrolador del Arduino.

35

Se grafic el desempeo del controlador PI de acuerdo a los diferentes valores


que dimos a Kp y Ki.
En la previas figuras se pudo observar que en todas se consigui un error
estacionario igual a cero, as como tambin no se tienen variaciones en el controlador
de modo que no se cuida la vida del actuador a largo plazo.
De acuerdo a las figuras obtenidas podemos deducir que el controlado PI en
nuestro sistema de control en lazo cerrado con un proceso de 1er orden, los efectos
de la ganancia proporcional e integral en la respuesta y(t) del sistema son los
siguientes:
1. Con valores pequeos de Kp y valores grandes de Ki, la respuesta y(t) del
sistema de control en lazo cerrado se estabiliz en el menor tiempo medido
experimentalmente.

2. Con valores grandes de Kp y valores pequeos de Ki, la respuesta y(t) del


sistema de control en lazo cerrado se estabiliz en el mayor tiempo medido
experimentalmente.

3. Para valores grandes de Kp y Ki, la respuesta y(t) del sistema de control en


lazo cerrado present oscilaciones en el arranque y el tiempo de
estabilizacin fue mayor que en el caso 1.

4. Para valores pequeos y similares de Kp y Ki, la respuesta y(t) del sistema


de control en lazo cerrado se estabiliz en un tiempo mayor, pero menor al
tiempo en el caso 2.

Finalmente podemos afirmar, que si lo que se requiere es una


estabilizacin rpida del sistema en lazo cerrado con un controlador PI, lo
valores de los parmetros de Kp sera lo ms chico posible siempre y cuando
este garantice un comportamiento estable del sistema de control (0.1), mientras
que el valor de Ki seria el mayor posible (7.0), esto claro si lo que se busca es
un tiempo de estabilizacin menor.
Parmetros del controlador PI ideales: Kp = 0.1 y Ki=7, con estos se
garantiza un error en estado estacionario igual a cero, estabilidad del sistema,
tiempo de estabilizacin inferior a 1 segundo, y su nica desventaja seria
seales rudas de control al arranque pero podemos aceptar este sacrificio al
36

arranque del controlador en pos de disminuir el tiempo de estabilizacin del


sistema.

En conclusin, es el controlador PI el que hasta el momento ha


demostrado un mejor comportamiento ante seales de tipo escaln y en la
etapa de sintonizacin. Se puede observar que en este controlador las
perturbaciones presentadas en el sistema se corrigen en menos de 1 segundo,
para que se lograra esto, la seal proveniente del actuador tuvo que ser muy
agresiva pero es aceptable porque son seales muy breves y nos garantizan
lo que estamos buscando. La estabilizacin en corto tiempo y el error en estado
estacionario igual a cero.

1.3.20. Controlador Fuzzy


El ltimo controlador a disear es el controlador Fuzzy. Dentro de la
incorporacin de lgica difusa a los sistemas de control se encuentran dos
grandes reas, el modelado o identificacin y el control directo.
Un controlador de lgica difusa determina de manera lgica que se debe
hacer para lograr de la mejor manera posible ciertos objetivos a partir de una
serie de reglas proporcionadas por un operador humano.
Si se compara con un controlador tradicional, el controlador de lgica
difusa tiene como ventajas que el modelo matemtico del proceso a controlar
no es requerido y por otra parte se obtiene un controlador no lineal sin
complicaciones matemticas.
En otras palabras el controlador difuso emula el comportamiento de un
ser humano y su diferencia con los controladores tradicionales a partir de: la
observacin del entorno, la formulacin de reglas lgicas y de los mecanismos
de toma de decisin.
La estructura bsica de un controlador difuso est constituido por 3 fases
importantes:
1. Transformacin de los valores numricos (variables crisp) en valores de
lgica difusa (variables lingsticas).
37

2. Identificacin y aplicacin de reglas


3. Conversin de valores de lgica difusa (variables lingsticas) en valores
numricos (variables crisp).

La figura 1.16, muestra el diagrama de un controlador difuso que


constituye la accin de control.

Figura 1.16. Estructura del Sistema fuzzy.

A lo largo de esta seccin se vern los conceptos bsicos de lgica


difusa que se aplican en control, como las variables Crisp y sus rangos, las
variables lingsticas, las funciones de membresa, las reglas o matriz de
decisin y la defusificacin.

1.3.21. Descripcin y teora de controlador Fuzzy


1.3.21.1.

Variables Crisp

Tambin conocidas como variables reales, son las variables/valores que


se convertirn a valores difusos en la etapa de fusificacin.
En la fusificacin se asignan grados de pertenencia a cada una de las
variables de entrada basados en los conjuntos difusos definidos. La segunda
etapa que es la de base de conocimientos e interferencia consiste en definir
las reglas lingsticas de control que realizarn la toma de decisiones y es en
la interferencia donde se relacionan los conjuntos de entrada y salida difusos
para representar las reglas que definirn el sistema. Finalmente en la etapa de
defusificacin se realiza el proceso de adaptar los valores difusos de la
38

interferencia a valores crisp, los cuales se utilizarn posteriormente en el


proceso de control.
Las variables de entrada y salida para el controlador se definen
basndonos en la explicacin anterior y en generar un sistema de control en
lazo cerrado como el diagrama de la figura 1.
-

La seal del error define la variable de entrada del controlador difuso


(diferencia entre la seal de salida y la seal de referencia).

El incremento de la seal Delta U define la variable de salida del


controlador difuso.

1.3.21.2.

Rango de cada variable Crisp

Se determina el rango de cada variable Crisp basndonos en el hecho


de que el microcontrolador Arduino genera una seal PWM por lo que se
acondiciona para un rango de 0 a 255. Teniendo conocimiento de esto, el rango
de la seal del Error ser de [-255 a 255].
En cuanto a la seal de salida (seal Delta U) se considera un periodo
de muestreo y la respuesta en lazo abierto de nuestra nica funcin de
transferencia establecida en la prctica 4. La cual se puede ver en la ecuacin
15.

() =

0.9656
0.15+1

(15)

Con una referencia de 1500 rpm equivalente a 2.5V se obtiene que


(150) (por nuestra funcin de transferencia) tenemos un voltaje de 1.5V.
Una vez obtenidos estos valores, se calcula el valor de Delta Y como se
muestra en la ecuacin 16.

= 2 (

1.5
150

) = 0.02 /

39

(16)

Teniendo Delta Y podemos obtener Delta U de la siguiente manera:

= [2, 2]
= [2(0.02), 2(0.02)]
= [0.04, 0.04]

Si pasamos nuestros rangos a valores duty cycle obtenemos:

= [2.04, 2.04]

La tabla 3 muestra los rangos finales obtenidos para cada variable Crisp.

Variable Crisp
Error
Delta U

Rango
-255 a 255
-2.04 a 2.04

Tabla 3. Rangos establecidos para variables Crisp.

1.3.21.3.

Variables Lingsticas

Se conoce como variable lingstica a las variables cuyos valores son


palabras o sentencias, en lugar de smbolos matemticos.
En la vida cotidiana se requiere describir el estado de un objeto o
fenmeno, para eso utilizamos las variables lingsticas, cuyo valor hace la
descripcin. Una variable lingstica es un trmino lingstico definido como
conjunto difuso.
Para nuestro proceso, definimos la seal de entrada con la variable
lingstica Error, la cual tendr como valores lingsticos: Negativo, Nulo y
Positivo. Por otro lado, para la variable Delta U los valores lingsticos sern:
Decremento, Cero e Incremento.

Variable Lingstica

Valor lingstico
Negativo
Nulo

Error
40

Positivo
Decremento
Cero
Incremento

Delta U

Tabla 4. Definicin de variables lingsticas.

1.3.21.4.

Funciones de membresa

Las funciones de membresa representan el grado de pertenencia de un


elemento a un subconjunto definido por una etiqueta.
Existe una gran cantidad de formas para las funciones de membresa,
siendo las ms comunes la triangular, trapezoidal, en forma de S y Singleton.
Dichas formas y rangos se muestran en las figuras 1.17, 1.18 1.19 y 1.20.

Figura 1.17. Funcin de membresa forma triangular

Figura 1.18. Funcin de membresa forma trapezoidal

41

Figura 1.19. Funcin de membresa forma de S

Figura 1.20. Funcin de membresa forma singleton.

Analizando las formas de las funciones de membresa, para nuestro


diseo se propone utilizar las primeras dos formas (trapezoidal y triangular).
Con base a los rangos obtenidos en la seccin 1.3.20 y explcitos en la tabla 4,
se propusieron los siguientes puntos a graficar.

Sin Overshoot:
o Negativo {-255, -160, 0}
o Nulo {-80, 0, 80}
o Positivo {0, 160, 160, 255}

Lenta:
o Negativo {-255, -10, 0}
o Nulo {-80, 0, 80}
o Positivo {0, 10, 255}
42

Error:
o Negativo {-255, -100, -10}
o Nulo {-80, 0, 80}
o Positivo {10, 100, 255}

2do orden:
o Negativo {-255, -255, -60, 0}
o Nulo {-80, 0, 80}
o Positivo {0, 60, 255, 255}

Los valores 255 y -255 son los lmites. Las figuras 1.21, 1.22, 1.23 y 1.24
muestran las grfica obtenidas con Matlab de las funciones de membresa.

Figura 1.21. Definicin de la funcin de membresa para la seal del error (Sin Overshoot).

Figura 1.22. Definicin de la funcin de membresa para la seal del error (Lenta).

43

Figura 1.23. Definicin de la funcin de membresa para la seal del error (Error).

Figura 1.24. Definicin de la funcin de membresa para la seal del error (Segundo Orden).

De manera similar se realiz la proposicin de parmetros para las


funciones de membresa de la seal de salida Delta U, basndonos en los
rangos establecidos en la tabla

Sin Overshoot
o Decremento {-2.04, -1.66, 0}
o Cero {-1.66, 0, 1.66}
o Incremento {0, 1.66, 1.66, 2.04}

Lenta
o Decremento {-2.04, -0.1, 0}
44

o Cero {-0.83, 0, 0.83}


o Incremento {0, 0.1, 2.04}

Error
o Decremento {-2.04, -1, 0.1}
o Cero {-0.83, 0, 0.83}
o Incremento {0.1, 1, 2.04}

2do Orden
o Decremento {-2.04, -2.04, -0.62, 0}
o Cero {-0.83, 0, 0.83}
o Incremento {0, 0.62, 2.04, 2.04}

Los valores mostrados son la conversin a dutycycle de los valores de


la seal de entrada establecidos en las funciones de membresa del error.
Las figuras 1.25, 1.26, 1.27 y 1.28 muestran las grficas obtenida con
Matlab de las funciones de membresa.

Figura 1.25. Definicin de la funcin de membresa para la seal de salida DeltaU (Sin Overshoot).

45

Figura 1.26. Definicin de la funcin de membresa para la seal de salida DeltaU (Lenta).

Figura 1.27. Definicin de la funcin de membresa para la seal de salida DeltaU (Error).

Figura 1.28. Definicin de la funcin de membresa para la seal de salida DeltaU (Segundo
Orden).

46

1.3.21.5.

Matriz de decisin

En la etapa de base de conocimientos e interferencia como ya lo


mencionamos, consiste en definir las reglas lingsticas de control que
realizarn la toma de decisiones y es en la interferencia donde se relacionan
los conjuntos de entrada y salida difusos para representar las reglas que
definirn el sistema.
Por lo que una vez realizada la fase de fusificacin se pueden evaluar
los antecedentes de las reglas, por medio de experiencia o sentido comn
sobre cmo alcanzar la velocidad de referencia de un motor elctrico, se
obtendr el grado de veracidad que tienen dichas reglas.
Si nos basamos en lo dicho anteriormente, las reglas mostradas a
continuacin se pueden resumir en la tabla 5.
o Si el error es Negativo, Delta U es igual a Decremento (Si la
velocidad de un motor es mayor al valor de referencia, el error ser
negativo y por lo tanto la seal del control tendr que disminuir).
o Si el error es Nulo, Delta U es igual a Cero (Si la velocidad de un
motor es igual al valor de referencia, el error es nulo y por lo tanto la
seal no cambia).
o Si el error es Positivo, Delta U es igual a Incremento (Si la velocidad
de un motor es menor al valor de referencia, el error ser positivo y
por lo tanto la seal del control tendr que aumentar).

Error
Negativo
Nulo
Positivo

Delta U
Decremento
Cero
Incremento
Tabla 5. Matriz de decisin.

47

1.3.21.6.

Mtodo de defusificacin

El mtodo de defusificacin es un proceso matemtico usado para


convertir un conjunto difuso en un nmero real. En otras palabras, el sistema
fuzzy obtiene una conclusin a partir de la informacin de la entrada pero en
trminos todava en difusos, dicha conclusin es obtenida por la etapa de
interferencia y finalmente la salida del sistema debe ser un nmero real
representativo de todo el conjunto obtenido. Es por esto que existen diferentes
mtodos de defusificacin y arrojan resultados distintos.
Los mtodos de defusificacin que utilizaremos en nuestro sistema son
el de centro de gravedad (COG) y promedio de pesos (WA).

o Centro de Gravedad:
=

=1
=1

A= rea de cada seccin definida por la funcin de membresa


C= Centroide de cada figura delimitada por la forma de la funcin de
membresa

o Promedio de pesos:

=1
=1

W= Peso de cada seccin definida por la funcin de membresa


C= Centroide de cada figura delimitada por la forma de la funcin de
membresa

48

1.3.22. Pruebas de desempeo del controlador Fuzzy

Entrada al sistema con un control Fuzzy de Sin Overshoot


3

u (t)

2
1
0

5
6
7
8
t
Respuesta al sistema con un control Fuzzy de Sin Overshoot

10

10

y (t)

2
1
0

5
t

Figura 1.29. Controlador Fuzzy tipo estabilizacin rpida

Entrada al sistema con un control Fuzzy con respuesta Lenta


3

u (t)

2
1
0

10
12
14
16
t
Respuesta al sistema con un control Fuzzy con respuesta Lenta

18

20

18

20

y (t)

2
1
0

10
t

12

14

16

Figura 1.30. Controlador Fuzzy tipo estabilizacin lenta

49

Entrada al sistema con un control Fuzzy con un error del 10%


3

u (t)

2
1
0

5
6
7
8
t
Respuesta al sistema con un control Fuzzy con un error del 10%

10

10

10

10

y (t)

2
1
0

5
t

Figura 1.31. Controlador Fuzzy tipo error

Entrada al sistema con un control Fuzzy de segundo orden


4

u (t)

3
2
1
0

5
6
7
t
Respuesta al sistema con un control Fuzzy de segundo orden

y (t)

3
2
1
0

5
t

Figura 1.32. Controlador Fuzzy tipo segundo orden

50

1.3.23. Conclusiones parciales controlador Fuzzy


El controlador fuzzy nos permite establecer relaciones directas para
determinados valores esperados de entrada con ganancias especficas para
cada variable fuzzy de las funciones de membresa, esto nos permite tener una
mayor precisin en el aumento o decremento del valor del actuador (PWM) de
nuestro sistema y as alcanzar el valor de referencia en menor tiempo y con un
menos oscilaciones.

1.3.24. Comparacin grfica de desempeo de los diferentes controladores


En la grfica 1.33 se puede observar el desempeo de los 5 diferentes
controladores implementados. En la grfica es muy evidente que los mejores
controladores se podra decir que son el PI y Fuzzy, esto se sabe porque
ambos garantizan que el error en estado estacionario es igual a cero. Para
poder determinar cul de los dos es mejor, se evalan las caractersticas
presentadas en cada uno.
Para el controlador PI podemos ver un comportamiento similar al de
primer orden, el tiempo que tarda en estabilizarse es menor en comparacin a
los dems controladores.
En el caso del controlador Fuzzy podemos ver un comportamiento
similar al de segundo orden, esto debido a las pequeas oscilaciones
presentadas en la etapa transitoria. El tiempo que tarda en estabilizarse es
menor a los controladores On/Off, On/Off con histresis y P pero mayor al
controlador PI.
Con lo anterior podemos determinar que el controlador PI es
definitivamente el ideal comparado con los otros controladores presentados a
lo largo del reporte.

51

1.3.25. Conclusiones parciales de diseo de controladores


Para el diseo de los controladores nos dimos cuenta que era
indispensable realizar una buena identificacin y seleccin de la funcin de
transferencia. Una vez diseados los 5 diferentes controladores, se pudo
continuar con la etapa de sintonizacin y gracias a esta seccin se pudo
evaluar el desempeo de cada uno de los controladores.
El resultado fue que el mejor controlador es el de tipo PI, debido a las
caractersticas resaltadas en la seccin 1.3.31. Hay que recordar que lo que se
est buscando es un tiempo de estabilizacin relativamente corto y que el error
en estado estacionario sea cero. Por lo que de todos los controladores es el PI
el que cumple con estas caractersticas.
Puntualizando y llegando ms a detalle en la seleccin del mejor
controlador las siguientes caractersticas son importantes y describen a la
respuesta obtenida con el controlador PI:
o Garantiza que el error en estado estacionario sea nulo ante seales
de referencia de tipo escaln.
o No presenta sobre-impulsos.
o Mantiene la estabilidad del sistema.
o A pesar de que la seal de control es agresiva al inicio y en cuando
se presentan perturbaciones, el controlador es aceptable.
o El tiempo de estabilizacin es menor respecto a los dems
controladores.
o Se dice que un controlador es robusto cuando el sistema es capaz
de desempearse de manera similar en el rango de operacin de 0
a 5V. El controlador PI diseado cumple satisfactoriamente con este
punto.
Resumiendo todos estos puntos y con las grficas presentadas a lo largo
del reporte podemos decir que el controlador PI es el nico (comparado con
los otros 4 controladores), que cumple con los requerimientos del error en
estado estacionario igual a cero, menor tiempo de estabilizacin y seales de
control no agresivas.

52

1.4. Conclusiones generales del proceso de Motor DC


A lo largo de esta seccin se realiz un anlisis que permitiera identificar
patrones y caractersticas especficas de distintas variantes de sistemas de
control, aplicados a la labor de estabilizacin de un sistema de primer orden
iniciando con la identificacin de la funcin de transferencia que describe al
proceso y obteniendo sus propiedades que nos permitieran elaborar un diseo
acorde y que cumpliese con los requerimientos deseados de comportamiento
(setting

time,

max

overshoot,

etc)

Posteriormente

tras

realizar

la

implementacin de controladores para el sistema con retroalimentacin en lazo


cerrado se procedi a analizar las respuestas a un escaln establecido por el
usuario (estandarizado a 1500 rpm) observando el comportamientos con los
distintos controladores y variando los posibles parmetros que afectan dicho
comportamiento se obtuvo una nocin de que repuesta se espera al establecer
determinados valores de parmetros como Kp o Ki. Finalmente en base a las
variantes de resultados pudiendo hacer comparativas entre las respuestas con
cada controlador , determinamos ventajas de cada uno de ellos en base a la
aplicacin a la que se llegue a orientar, as como aquel que en trminos
generales ofrece mejores caractersticas (setting time, presencia de
oscilaciones).

1.5. Descripcin del proceso de segundo orden


Como

ya

se

mencion

en

la

introduccin

del

reporte,

la

intencin/objetivo es disear e implementar los diferentes controladores


digitales para sistemas de primer y segundo orden. Una vez analizados los
controladores para sistema de primer orden, se contina con la validacin,
diseo, implementacin, sintonizacin y seleccin del mejor controlador para
sistemas de segundo orden.
Para el sistema de segundo orden la variable a controlar es el voltaje de
salida proveniente del mdulo ADCR100, con el cual se trabaja a lo largo de
esta seccin (procesos de segundo orden).
53

1.5.1. Teora general de los sistemas de segundo orden.


En ingeniera de control, un sistema de segundo orden es conocida por
tener 2 polos. La funcin de transferencia que rige este sistema se muestra en
la ecuacin xxx
2
2 + 2 + 2
Donde:
K=Ganancia
= Factor de amortiguamiento
= Frecuencia natural
Dependiendo el valor del factor de amortiguamiento, podemos tener 3
diferentes respuestas.
-

Sistema Subamortiguado (<1)

Sistema crticamente amortiguado (=1)

Sistema sobreamortiguado (>1)

Nuestro sistema cumple con la respuesta de un sistema subamortiguado, cuya grfica se puede ver representada en la figura 1.33

Figura 1.33. Respuesta de un sistema de segundo sub-amortiguado.

54

La grfica se compone bsicamente de:


o Tiempo de subida (Ts): Tiempo necesario para que la salida del
sistema alcance cierto porcentaje del valor final de referencia.
o Tiempo de pico (Tp): Momento en el que se produce la primera
sobre-oscilacin.
o Sobre oscilacin (SO): Amplitud de la primera oscilacin sobre el
valor final de la referencia.

1.5.2. Diagrama de bloques del sistema completo en lazo cerrado.


Para la construccin de un sistema general de segundo orden es
necesario basarse en un diagrama de bloques, el cual se puede ver en la figura
1.34.

Figura 1.34. Diagrama de bloques para un proceso de segundo orden hecho en Simulink.

En el diagrama se puede observar que al diagrama de bloques lo


componen dos integradores y un derivador. De esta manera, si resolvemos el
diagrama de bloques se puede obtener la ecuacin 17. La cual nos ayudar a
determinar los valores de las ganancias en la etapa de identificacin del
proceso.

55

() =

2 ++

(17)

Para poder analizar de mejor manera nuestro sistema, es necesario


representarlo como un sistema real. De esta manera podemos ver las variables
de entrada y de salida del sistema con mayor claridad.

Figura 1.35. Proceso de segundo orden hecho en Simulink.

Una vez definida la ecuacin que representa nuestro diagrama de


bloques, podemos compararla con la ecuacin que rige a un sistema de
segundo orden. Dicha ecuacin es la siguiente:
2
2 +2+ 2

(18)

Al compararla con ecuacin obtenida por los bloques tenemos que:

2 =
2 =
2 =

Para obtener los valores de las ganancias es necesario conocer los


valores de . Para lograrlo proponerlos un tiempo de estabilizacin de 17
segundos y un overshoot de 40%, esto para garantizar que el sistema de
segundo orden tenga oscilaciones. Siguiendo la ecuacin 19 para obtener ,
tenemos:
56

((

(19)

))
100

2 + ((

))
100

40
( (100))

40
+ ( (100))

= 0.2799
Una vez obtenido el valores de , podemos obtener el valor de con
la ecuacin 20.

17 =

(20)

4
(0.2799)

= 0.8405

Una vez obtenido el valores de , podemos obtener los valores de


las ganancias y finalmente la funcin de transferencia de nuestro sistema del
diagrama de bloques.
2 =
2 =
2 =

= 0.7066
= 0.6659
57

=1
2
2 + 2 + 2

0.8405
+ 0.4705 + 0.8405

Al meter los valores de las ganancias en el mdulo ADCR100


obtenemos la siguiente grfica mostrada en la figura 1.36.

Figura 1.36. Grfica obtenida por el mdulo ADCR100 con las ganancias encontradas.

Al graficar nuestra funcin de transferencia obtenida del diagrama de


bloques y al conocer la teora bsica de los sistema de segundo orden,
podemos concluir que efectivamente se asemeja a una grfica subamortiguada de un sistema de segundo orden por lo que podemos continuar
con la etapa de identificacin del proceso para elegir la mejor funcin de
transferencia para nuestro sistema, aquella que mejor lo describa.

58

1.6. Identificacin del proceso de segundo orden


1.6.1. Contextualizacin
En esta seccin se realiza la identificacin del proceso de segundo
orden. Con la finalidad de poder observar la respuesta de nuestro sistema de
segundo orden se realizan pruebas de respuesta a distintos escalones (1, 2 y
3V). La finalidad de ingresar estos escalones en el software NIDAM es para
realizar una aproximacin matemtica que puede definir el comportamiento
que tiene el sistema de segundo orden. Dichas pruebas se pueden observar
en la figura 1.37.

Figura 1.37. Respuesta del sistema ante diferentes escalones (1V, 2V, 3V)

Con lo que se observa en la grfica anterior podemos decir que la


respuesta generada en el mdulo ADCR100, se asemeja en gran medida a la
respuesta de un sistema de segundo orden. Por tal motivo podemos continuar
con el proceso de identificacin de la funcin de transferencia por el mtodo
grfico, esto nos permitir definir el modelo matemtico que mejor defina
nuestro sistema.

59

1.6.2. Proceso de identificacin y obtencin de funcin de transferencia


Ya que se obtuvo el tipo de orden que arroj nuestro sistema, se pueden
calcular de manera grfica las funciones de transferencia que rigen cada
respuesta a los escalones propuestos (1V, 2V, 3V).
Como ya lo vimos, la ecuacin 18 es la que representa un sistema de
segundo orden. Con el mtodo grfico obtenemos los valores de overshoot
(OS) y del tiempo de estabilizacin para cada respuesta y de esta manera
podemos determinar las 3 funciones de transferencia deseadas.

Escaln 1 Volt.

= 35.87%
= 15.162

( (100))

+ ( (
))
100

35.87
( ( 100 ))

35.87
+ ( ( 100 ))

= .

=
15.162 =

4
0.3102

= .

60

()

= .

La tabla 6 muestra el resumen de los valores obtenidos para los


parmetros de ,

0.3102

0.8504

0.9216

Tabla 6. Escaln 1 Volt, valores de ,

De esta manera la funcin de transferencia terica 1 queda de la


siguiente forma:

() 1 =

0.6664
2 + 0.5275 + 0.7231

Para los escalones de 2V y 3V se aplicaron las mismas ecuaciones y los


valores de los parmetros , se muestran a continuacin.
Escaln 2 Volts.

= 46.47%
= 18.046

0.2369

0.9356

0.9705

Tabla 7. Escaln 2 Volts, valores de ,

61

() 2 =

0.8495
+ 0.4432 + 0.8754

Escaln 3 Volts.

= 27.795%
= 20.064

0.1424

1.40

0.987

Tabla 8. Escaln 3 Volts, valores de ,

() 3 =

1.934
+ 0.3987 + 1.96

Las tres funciones de transferencia tericas se resumen en la tabla 9

.
()

+ . + .
0.8495

()

2 + 0.4432 + 0.8754
1.934

()

2 + 0.3987 + 1.96

Tabla 9. Funciones tericas obtenidas.

El siguiente paso es obtener una funcin de transferencia que sea


representativa del sistema, para lograrlo se tom el promedio de las tres
62

funciones de transferencia obtenidas anteriormente y se obtienen los


siguientes parmetros.

= .
= .
= .

Finalmente la funcin de transferencia promedio del proceso es:

() =

0.2677
+ 0.3987 + 0.279

1.6.3. Validacin del modelo


Por ltimo es necesario realizar la validacin de la funcin de
transferencia promedio contra la respuesta real, esto con el objetivo de
garantizar que la funcin de transferencia sea capaz de representar el
comportamiento de un sistema de segundo orden y que tenga una buena
respuesta ante seales de tipo escaln. La figura 1.38 muestra la respuesta de
la funcin de transferencia promedio ante seales de tipo escaln.

Comparacin entre el sistema real y nuestra ecuacin propuesta


4.5
4
3.5

y (t)

3
2.5
2
1.5
1
0.5
0

10

12

14

Respuesta del sistema con 1v


Respuesta del sistema con 2v
Respuesta del sistema con 3v
Respuesta de nuestra FT con 1v
Respuesta de nuestra FT con 2v
Respuesta
de
16
18nuestra FT con 3v

t (seconds)

Figura 1.38. Respuesta de la funcin de transferencia promedio ante diferentes escalones (1V, 2V,
3V)

63

Como podemos notar en la grfica de la figura 1.38, la funcin de


transferencia promedio alcanza la estabilidad casi en el mismo tiempo que la
seal real, el punto de estabilizacin es casi el mismo y la magnitud de los
sobre-impulsos tambin es muy similar.
Por lo tanto podemos decir que nuestra funcin de transferencia se
asemeja en gran medida al comportamiento real, por lo que se puede proceder
con la implementacin de los controladores y a la sintonizacin de los mismos.

Se puede concluir que una de las partes ms importantes es el realizar


los diagramas de bloques para un sistema de segundo orden, se tiene que
asegurar que cumplan con los integradores y derivadores necesarios para
poderlos implementar en el mdulo ADCR100. Se calculan los valores para las
ganancias proponiendo un overshoot y un tiempo de estabilizacin ideales para
obtener una respuesta subamortiguada. La etapa de identificacin y la
seleccin final de la funcin de transferencia depende de las grficas obtenidas
por las respuestas del sistema ante diferentes seales de tipo escaln y
finalmente despus de sacar una funcin de transferencia promedio se puede
empezar con el correcto diseo e implementacin de los controladores.

1.7. Diseo de controladores


1.7.1. Descripcin de la dinmica para adaptar los controladores al nuevo
proceso.
Para un sistema de segundo orden, se tienen que realizar algunos
cambios para que pueda funcionar de manera ptima. Para el diseo de los
controladores se ajusta el tiempo de estabilizacin. Es necesario recordar que
para un sistema de segundo orden, lo que se est controlando es el voltaje, a
diferencia de un sistema de primer orden donde lo que se controla es la
velocidad del motor.
Se parte de la funcin de transferencia del proceso para poder calcular
el nuevo tiempo de estabilizacin.
Basados en la ecuacin 20 obtenemos:

64

4
= 20.066
(0.3774)(0.5282)

Con este resultado, se propone un periodo de muestreo que sea 100


veces ms rpido que el proceso, ser este periodo el que se utilice
posteriormente para la implementacin de ciertos controladores y el periodo
que se estar utilizando en el cdigo de Arduino:

20.066
= 0.20
100

1.7.2. Descripcin de adecuaciones hecha al controlador ON/OFF


Para el controlador On/Off, no se tuvieron que realizar modificaciones
ya que su seal tiene solamente dos estados (encendido/apagado)
dependiendo del error. Recordando que su ley de control est dada por:
() > 0
() = { 1
2 () < 0
Se puede ver claramente que solo cumple con dos estados, el valor u1
y el valor de u2 dependiendo del signo del error. Se sabe que los valores de u1
y u2 son constantes.
La implementacin de controlador On/Off se realiza de la misma manera
que para un sistema de primer orden.
La figura 1.39 muestra el comportamiento del controlador.

65

Figura 1.39. Comportamiento del controlador On/Off

1.7.3. Pruebas de desempeo del controlador ON/OFF

Entrada al sistema de un controlador ON-OFF con perturbacin


5
4

u (t)

3
2
1
0
0

10
12
14
16
t
Respuesta al sistema de un controlador ON-OFF con perturbacin

18

20

18

20

y (t)

4
3
2
1
0
10
t

12

14

16

Figura 1.40. Comportamiento del controlador On/Off ante seales de escaln y perturbaciones.

66

1.7.4. Descripcin de adecuaciones hecha al controlador P


Para el controlador P, es necesario conocer el rango de variables para
Kp. De tal manera que se puede garantizar que el sistema de control en lazo
cerrado sea estable y que el error sea finito.
Sabiendo lo anterior, si utilizamos la funcin de transferencia
seleccionada para el proceso, la funcin de transferencia del controlador
proporcional y basndonos en el criterio de Routh, podemos tener el polinomio
caracterstico mostrado en la ecuacin 21

0.2677

1 + () (2 +0.3987+0.279) = 0

(21)

Siguiendo el criterio de Routh, se tiene que el rango de Kp para que el


sistema en lazo cerrado sea determinado como estable, debe ser de:
> 1

La implementacin de controlador P se realiza de la misma manera que


para un sistema de primer orden, variando nicamente los valores de Kp.

1.7.5. Sintonizacin del controlador P


Como ya se vio en la seccin 1.6, la nica variable a modificar para este
controlador es Kp y para garantizar que el sistema de control en lazo cerrado
sea estable se determin que los valores deben de estar por arriba de cero. De
lo contrario el sistema podra caer en inestabilidad.
Con el conocimiento de lo anterior podemos proponer 3 valores para Kp
que cumplan con lo dicho, la seleccin de 3 valores se debe a la experiencia
obtenida para la sintonizacin del proceso de primer orden. Los valores
seleccionados fueron: 1, 7 y 10.
La figura 1.41 muestra el comportamiento del controlador P con Kp
variable.
67

Figura 1.41. Comportamiento del controlador P con Kp variable.

Gracias a la grfica podemos observar que mientras mayor sea el valor


de Kp, menor ser el error en estado estacionario. Se debe observar tambin
que a pesar de esto, dicho error nunca llegar a ser cero.

Por medio de la sintonizacin del controlador P y observando la figura


1.41, podemos decir que mientras mayor sea el Kp, la salida del sistema tiende
a tener sobre-impulsos e incluso podemos llegar a ver que no logra
estabilizarse, es decir, sigue oscilando en el estado transitorio, como fue el
caso del valor ms alto de Kp que pusimos (10V).
Por estas observaciones podemos determinar cul es el mejor
parmetro de Kp para garantizar el mejor controlador P. El valor seleccionado
fue el de 7, esto debido a que el error presentado por este valor es el ms bajo
de los 3 valores comparados durante el proceso de sintonizacin, otro punto a
favor es que no presenta oscilaciones en su estado estacionario.
Es importante destacar que para hacer una buena seleccin del mejor
parmetro, se deben tomar en cuenta las siguientes caractersticas para
comparar:

Debe de presentar el menor error en estado estacionario.

Debe ser estable.


68

Debe cumplir con un tiempo de estabilizacin menor a los dems.

No debe de presentar oscilaciones en su estado estacionario.

1.7.6. Descripcin de adecuaciones hecha al controlador PI


Para conocer los rangos de Kp y Ki tal que garanticen estabilidad y un
error en estado estacionario nulo, se utilizar la funcin de transferencia del
proceso, la funcin de transferencia del controlador y el criterio de Routh,
teniendo el siguiente polinomio caracterstico:
+
0.2677
1+(
)( 2
)=0

+ 0.3987 + 0.279
Por lo tanto el rango para las variables Kp y Ki es:

> 1
> 1

La implementacin del controlador es igual al caso de primer orden, por


lo que se puede ver ms a detalle en el captulo 1.
Una vez obtenidos los valores de Ki y Kp podemos comenzar con la
etapa de sintonizacin para verificar el comportamiento del controlador ante
variaciones de sus variables.

1.7.7. Sintonizacin del controlador PI


La sintonizacin terica del controlador PI se realiz mediante el criterio
de Routh, visto y explicado en el Captulo 1 (seccin 1.3.18), los valores para
Kp y Ki quedan de la siguiente manera:
> 1
> 1
69

La sintonizacin emprica del controlador PI se realiza obteniendo la


respuesta del controlador con dos valores diferentes para los parmetros fijos
Kp y Ki, cada parmetro fijo se combina con 4 parmetros variables de Kp y Ki.
De esta manera la tabla 10 muestra los valores fijos y variables seleccionados
para la realizar la sintonizacin. Cabe resaltar que los valores elegidos son muy
pequeos porque al experimentar con valores ms grandes, las oscilaciones
eran mayores y llegaban a generar inestabilidad en el sistema.

Parmetro fijo

Ki/Kp variable
Ki= 1

Kp= 1

Ki= 2
Ki= 4
Ki= 7
Kp= 0

Ki= 2

Kp= 0.5
Kp= 3
Kp= 8

Tabla 10. Valores de Kp y Ki fijos y variables.

Entrada al sistema con un kp=1 y un ki=1, 2, 4 y 7


6

u (t)

4
kp=1
kp=2
kp=4
kp=7

2
0
-2

10
t
Respuesta al sistema con un kp=1 y un ki=1, 2, 4 y 7

15

y (t)

4
kp=1
kp=2
kp=4
kp=7

2
0
-2

10
t

Figura 1.42. Respuesta del controlador PI, Kp fijo= 1, Ki variable= 1, 2, 4 y 7.

70

15

Entrada al sistema con un ki=2 y un kp=0, 0.5, 3 y 8

u (t)

4
kp=0
kp=0.5
kp=3
kp=8

2
0
0

10
t
Respuesta al sistema con un ki=2 y un kp=0, 0.5, 3 y 8

15

kp=0
kp=0.5
kp=3
kp=8

2
0
0

10

15

Figura 1.43. Respuesta del controlador PI, Ki fijo= 2, Kp variable= 0, 0.5, 3 y 8.


Entrada al sistema con un kp=0 y un ki=0.5
3

u (t)

2
1
0

10
t
Respuesta al sistema con un kp=0 y un ki=0.5

15

3
2

y (t)

y (t)

1
0

10
t

Figura 1.44. Respuesta del sistema sin overshoot KP= 0 y Ki= 0.5.

71

15

Entrada al sistema con un kp=1 y un ki=2


4

u (t)

3
2
1
0
0

10
t
Respuesta al sistema con un kp=1 y un ki=2

15

y (t)

3
2
1
0
0

10

15

Figura 1.45. Respuesta del sistema con overshoot con valores ideales KP= 2 y Ki= 1.

1.7.8. Pruebas de desempeo del controlador PI

Entrada al sistema de un controlador PI con perturbacin


5
4

u (t)

3
2
1
0
0

5
6
7
t
Respuesta al sistema de un controlador PI con perturbacin

10

10

y (t)

4
3
2
1
0
5
t

Figura 1.46. Comportamiento controlador PI antes seales de escaln y perturbaciones.

Como conclusin, para un controlador PI, la accin de los parmetros


Kp y Ki es muy diferente para un sistema de segundo orden, ya que se tienen
que escoger valores menores a 1. Contrario a lo que suceda en un sistema de
primer orden.

72

En las grficas podemos ver que en todas las variaciones realizadas de


Kp y Ki se logr estabilidad en el sistema y un error en estado estacionario
igual a cero.
Si evaluamos cada variacin realizada podemos resaltar que:

Si se tienen valores grandes de Kp y Ki, la respuesta del sistema


ser ms parecido a un

sistema de primer orden y casi no

presentar oscilaciones pero el tiempo de estabilizacin ser


mayor.

Si se tienen valores pequeos de Kp y Ki, el tiempo de


estabilizacin del sistema ser mucho mayor comparado con los
otros parmetros.

Si se tienen valores pequeos de Kp y valores grandes de Ki, la


respuesta del sistema presentar ms oscilaciones pero tendr
un tiempo de estabilizacin mucho menor.

Despus de observar el comportamiento de las variaciones de los


parmetros, podemos decir que si lo que se quiere es que el sistema se
estabilice lo ms rpido posible, los valores de Kp debern de ser pequeos y
los de Ki debern de ser grandes. En nuestro caso lo que necesitamos es que
si se estabilice ms rpido por lo que los valores ideales para los parmetros
en el controlador PI son: KP= 1 Ki= 2
Con esto podemos garantizar:

Un error en estado estacionario igual a cero.

Tiempo de estabilizacin menor.

Estabilidad en el sistema.

1.7.9. Descripcin de adecuaciones hecha al controlador Fuzzy


El diseo e implementacin del controlador fuzzy para un sistema de
segundo orden fue muy similar al realizado anteriormente con el mdulo para
el sistema de primer orden, el cual se puede ver ms a detalle en el captulo 1.
Por lo que el diseo se divide nuevamente en 3 etapas: fusificacin,
evaluacin de reglas y defusificacin.
73

1.7.9.1. Rango de cada variable Crisp

Tal como en el sistema de primer orden, basndonos en el


acondicionamiento de la seal de referencia r(k) y la retroalimentacin y(k), el
rango de la seal del error es de -255 a 255.
Para poder determinar el valor , consideramos varios aspectos como
el periodo de muestreo, la velocidad del sistema de segundo orden y la
respuesta que tiene el sistema frente a un escaln de 2.5Vcd establecido para
todas las muestras. De esta manera partimos de la funcin de transferencia
elegida para que represente el sistema de segundo orden.

()

0.2677
2 + 0.3987 + 0.279

Tal como se realiz en el sistema de primer orden, el rango para es:


= [2.66, 2.66]

La tabla 11 resume los rangos de cada variable Crisp.

Variable

Rango

Error

-255 a 255

-2.66 a 2.66

Tabla 11. Rango de las variables Crisp.

1.7.9.2. Variables lingsticas

Variable lingstica

Valores lingsticos

Error

Negativo, Nulo, Positivo

Delta U

Decremento, Cero, Incremento

Tabla 12. Variables y valores lingusticos

74

1.7.9.3. Funciones de membresa

Tal como se realiz en el captulo 1, se proponen utilizar las formas


triangulares para las funciones de membresa.
Basndonos en las tablas 11 y 12, los valores propuestos para la seal
del error fueron los siguientes:

Sin Overshoot

Negativo: triangular{-255, -170, -170, -80}

Nulo: triangular {-160, 0, 0, 160}

Positivo: triangular {80, 170, 170, 255}

Con Overshoot

Negativo: triangular {-255, -160, -160, 0}

Nulo: triangular {-160, 0, 0, 160}

Positivo: triangular {0, 160, 160, 255}

final alrededor del 10% de referencia

Negativo: triagular {-255, -150, -150, -45}

Nulo: triangular {-160, 0, 0, 160}

Positivo: triangular {45, 150, 150, 255}

Las funciones de membresa para el error se pueden observar en las


figuras 1.47, 1.48 y 1.49.

75

Figura 1.47. Funcin de membresa del error sin overshoot.

Figura 1.48. Funcin de membresa del error con overshoot.

Figura 1.49. Funcin de membresa del error con final alrededor del 10% de referencia.

76

De manera similar, para la funcin de membresa de Delta U y


basndonos en las tablas 11 y 12, los valores propuestos fueron los siguientes:

Sin Overshoot

Decremento: trapezoidal {-2.66, -1.77, -1.77 , -0.83}

Cero: triangular {-1.66, 0, 0, 1.66 }

Incremento: trapezoidal {0.83, 1.77, 1.77, 2.66 }

Con Overshoot

Decremento: trapezoidal {-2.66, -1.66, -1.66, 0}

Cero: triangular {-1.66, 0, 0, 1.66}

Incremento: trapezoidal {0, 1.66, 1.66, 2.66}

final alrededor del 10% de referencia

Decremento: trapezoidal {-2.66, -1.56, -1.56, -0.47}

Cero: triangular {-1.66, 0, 0, 1.66}

Incremento: trapezoidal {0.47, 1.56, 1.56, 2.66}

La funcin de membresa para Delta U se puede observar en las


figuras 1.50, 1.51 y 1.52.

Figura 1.50. Funcin de membresa de la salida Delta U sin Overshoot

77

Figura 1.51. Funcin de membresa de la salida Delta U con Overshoot

Figura 1.52. Funcin de membresa de la salida Delta U con final alrededor del 10% de referencia

1.7.9.4. Matriz de decisin

Una vez realizada la fase de fusificacin, podemos continuar con la


etapa en la que se evalan las reglas. Las reglas mostradas a continuacin
componen la matriz de decisin de nuestro sistema.

Error

Delta U

Negativo

Decremento

78

Nulo

Cero

Positivo

Incremento

Tabla 13. Matriz de decisin.

1.7.9.5. Mtodo de defusificacin

Tomando como referencia los mtodos utilizados y los resultados


obtenidos en el captulo 1 para la etapa de defusificacin, se propone utilizar el
mtodo de Promedio de Pesos (WA), este mtodo nos garantiza fcil
implementacin y buenos resultados ya que el error en estado estacionario es
casi cero y comparado con otros mtodos, tiene un tiempo de estabilizacin
mayor.
A continuacin de muestran las grficas obtenidas con el controlador
Fuzzy.

Entrada al sistema de un controlador Fuzzy con Overshoot de ms del 20%


4

u (t)

2
0
-2

5
6
7
8
t
Respuesta al sistema de un controlador Fuzzy con Overshoot de ms del 20%

10

10

y (t)

2
0
-2

5
t

Figura 1.53. Respuesta subamortiguada del sistema con 20% Overshoot.

79

Entrada al sistema de un controlador Fuzzy sin Overshoot


3

u (t)

2
1
0
-1

5
6
7
8
t
Respuesta al sistema de un controlador Fuzzy sin Overshoot

10

10

y (t)

2
1
0
-1

5
t

Figura 1.54. Respuesta del sistema de segundo orden sin oscilaciones.

Entrada al sistema de un controlador Fuzzy con un Ess cercano al 10% de la seal de referencia
3

u (t)

2
1
0
-1

5
6
7
8
9
t
Respuesta al sistema de un controlador Fuzzy con un Ess cercano al 10% de la seal de referencia

10

y (t)

2
0
-2

5
t

10

Figura 1.55. Respuesta del sistema con error de estado estacionario final alrededor del 10% de
referencia.

1.7.10. Pruebas de desempeo del controlador Fuzzy

80

Entrada al sistema de un controlador Fuzzy con perturbacin


5
4

u (t)

3
2
1
0
0

10
12
14
t
Respuesta al sistema de un controlador PI con perturbacin

16

18

20

16

18

20

y (t)

4
3
2
1
0
10
t

12

14

Figura 1.56. Respuesta del sistema con error de estado estacionario final alrededor del 10% de
referencia.

En conclusin el controlador fuzzy garantiza un controlador ideal para la


vida del actuador, ya que la seal de salida presenta un comportamiento similar
a un sistema de primer orden y sin oscilaciones. El error presentado en estado
estacionario es nulo, cumple con ser un sistema estable con un tiempo de
estabilizacin relativamente rpido y al igual que el controlador PI, el
controlador Fuzzy tambin es robusto al presentar un comportamiento similar
ante la presencia de perturbaciones.

1.7.11. Evaluacin tcnica de desempeo de los diferentes controladores


La tabla 14 muestra la comparacin del desempeo de los diferentes
controladores presentados a lo largo de la segunda parte del reporte (sistemas
de segundo orden), con el objetivo de analizar que controlador es mejor
dependiendo para que aplicacin vaya a ser utilizado.

Controlador

Evaluacin de desempeo
Estado transitorio: es un controlador que puede daar el
periodo de vida del actuador, ya que la seal de control

On/Off
81

trabaja en la zona de saturacin. Presenta un porcentaje de


overshoot elevado.
Estado estacionario: cumple con el criterio de estabilidad,
con un tiempo de estabilizacin de xxx y el error en estado
estacionario nunca llega a ser cero.
Robustez: no cumple con ser un controlador robusto, debido
a que la forma en la que se desempea cambia dependiendo
de la referencia que se le d, los escalones aplicados o las
perturbaciones. Nunca comportndose de la misma manera.
Al no llegar el error a cero, nunca es capaz de eliminar el
error.
Costo-Beneficio: Dependiendo de la aplicacin que se le
quiera dar, es un controlador muy fcil de implementar
cuenta con una teora y diseo muy bsico. Es por esto que
para aplicaciones ms complicadas no es recomendable, ya
que su rendimiento y caractersticas son un poco deficientes,
ofreciendo pocos beneficios para el usuario.

Proporcional

Estado transitorio: es un controlador que podra afectar la


vida del actuador por las oscilaciones que presenta en el
estado transitorio. Comparado con el controlador On/Off su
porcentaje de overshoot baja considerablemente.
Estado estacionario: cumple con el criterio de estabilidad,
con un tiempo de estabilizacin de xxx y el error en estado
estacionario siempre es diferente de cero. Se puede llegar a
disminuir el error si se aumenta el valor de Kp pero esto
ocasiona que el sistema comience a oscilar en estado
estacionario.
Robustez: no cumple con ser un controlador robusto al
100%, la forma en que se desempea cambia al momento
de aplicar perturbaciones, lo que ocasiona es que aumenta
el error y el controlador le cuesta un poco de trabajo volverlo
a dejar en el valor obtenido antes de las perturbaciones.
Costo-Beneficio: Podra ser un buen controlador a
implementar, si no se utiliza para una aplicacin en la que
las oscilaciones que presenta puedan afectar en gran
medida. En caso de que sea crtico no tener oscilaciones es
mejor optar por otro controlador, tambin se debe considerar
que al momento de incluir perturbaciones no se puede
eliminar el error del sistema. Sera un poco arriesgado
implementar este controlador comparado con los
beneficios que nos podra ofrecer.

82

Proporcional
Integral

Estado transitorio: la seal de salida presenta un


comportamiento muy similar a un sistema de primer orden,
con oscilaciones que no sobrepasan la seal de referencia.
Estado estacionario: el error es casi cero, el sistema es
estable con un tiempo de estabilizacin de 15.72 segundos.
Robustez: Se puede decir que es un sistema robusto
porque a pesar de las perturbaciones, es capaz de
mantener un comportamiento similar al sistema sin
perturbaciones.
Costo-Beneficio: A pesar de que es un controlador con una
teora, diseo e implementacin ms complicados. Vale la
pena utilizarlo debido a los beneficios y caractersticas que
ofrece, garantiza estabilidad, error en estado estacionario
muy cercano a cero y casi no presenta oscilaciones que
puedan afectar la vida del actuador.

Fuzzy

Estado transitorio: la seal de salida presenta un


comportamiento similar a un sistema de primer orden y sin
oscilaciones. Esto nos garantiza un controlador ideal para la
vida del actuador.
Estado estacionario: el error es nulo, el sistema es estable
con un tiempo de estabilizacin rpido comparado al
controlador On/Off y P.
Robustez: Al igual que el controlador PI, el controlador
Fuzzy tambin es robusto al presentar un
comportamiento similar ante la presencia de
perturbaciones.
Costo-Beneficio: De todos los controladores vistos a lo largo
del reporte, es este controlador el que podra llegar a ser ms
caro y complejo de disear e implementar, si se logra un
correcto diseo e implementacin por parte del usuario,
podra llegar a ser incluso un mejor controlador que el PI
debido a que ofrece una mejor seal de salida y las ventajas
de ser robusto y presentar estabilidad beneficiando al
actuador.

Tabla 14. Evaluacin tcnica de desempeo.

83

Se puede concluir que para la etapa de diseo de controladores, al igual


que en un sistema de primer orden, en uno de segundo orden se tienen que
realizar sintonizaciones tanto tericas como experimentales para poder
obtener los mejores parmetros que se adapten a nuestro sistema. Una vez
probado y evaluado el desempeo de cada uno de los controladores, se puede
decidir que controlador es el ideal. En nuestro caso, los dos controladores que
podran ser considerados como ideales respecto a los dems son el PI y el
Fuzzy. Como ya se vio en la tabla de evaluacin de desempeo, ambos
cumplen con el criterio de estabilidad, con un error en estado estacionario casi
nulo y un comportamiento similar ante seales de tipo escaln y perturbaciones
y responden de la mejor manera ante cualquier seal de referencia, por lo que
se consider como el mejor aquel controlador que menos afectara la vida del
actuador y el que cumple con esto es el controlador Fuzzy.

1.8. Interfaz de Usuario


1.8.1. Justificacin de la necesidad de la interfaz
La necesidad de sta interfaz es para facilitar la comunicacin con la
mquina, ya que para un usuario que no est familiarizado con el programa se
le har ms fcil con la interfaz, ya que ac se introducen de manera mucho
ms sencillas sin comandos especiales. El simple hecho de ingresar
directamente la velocidad en RPM en un rango de 0 3000 as tambin como
ingresar los valores de Kp y Ki en un rango de 0 99.9, y solamente en la parte
de escoger el controlador simplemente se escoge el controlador que se quiere
simplemente. As como tambin nos facilita la visualizacin de las grficas que
nos entrega el controlador de una manera fcil y sencillo.

84

1.8.2. Descripcin de la pantalla principal HMI

Figura 1.57. Interfaz HMI, pantalla principal.

1.9. Conclusiones generales del proyecto


Recordando el objetivo general del proyecto, disear e implementar un
controlador que garantice el error en estado estacionario igual o muy cercano
a cero y que cumpla con ser estable con un tiempo de estabilizacin lo ms
bajo posible, podemos decir que al llevar acabo el diseo, implementacin y
sintonizacin de los diferentes controladores se llega a la conclusin que para
un sistema de primer orden el mejor controlador obtenido fue el PI con
parmetros ideales Kp = 0.1 y Ki=7 con estos se garantiza un error en estado
estacionario igual a cero, estabilidad del sistema, tiempo de estabilizacin
inferior a 1 segundo, y su nica desventaja seria seales rudas de control al
arranque pero podemos aceptar este sacrificio al arranque del controlador en
pos de disminuir el tiempo de estabilizacin del sistema. Se puede observar
que en este controlador las perturbaciones presentadas en el sistema se
corrigen en menos de 1 segundo, para que se lograra esto, la seal proveniente
del actuador tuvo que ser muy agresiva pero es aceptable porque son seales
muy breves y nos garantizan lo que estamos buscando. La estabilizacin en
corto tiempo y el error en estado estacionario igual a cero.
85

Para un sistema de segundo orden el mejor controlador obtenido fue el


Fuzzy garantizando el error en estado estacionario igual a cero, cumple con el
criterio de estabilidad con un tiempo de estabilizacin menor a los dems
controladores, no presenta oscilaciones y presentada seales de entrada
suaves, las cuales ayudan a que el actuador no se vea afectado. Cumple con
ser un controlador robusto, al tener un comportamiento similar sin
perturbaciones y ante seales de tipo escaln y con presencia de
perturbaciones. A pesar de ser compleja y costosa su implementacin, se
considera que vale la pena comparado con las ventajas que puede llegar a
ofrecer.

1.10. Reflexiones personales


Marisol: A lo largo del curso del curso tuve la oportunidad de reforzar
conocimientos tericos aprendidos en las materias de Control 1 y 2, al igual
que tuve la oportunidad de aprender a utilizar mejor Arduino, ya que en muchas
otras materias el uso de este microcontrolador solo era para un proyecto que
duraba un parcial y en este caso fue durante todo el curso y cada vez iba siendo
ms complejo la manera de implementar los diferentes controladores. Otra
herramienta que me sirvi mucho y de la cual me llevo gran aprendizaje es
Labview porque es un programa que nunca haba utilizado. En cuanto a las
prcticas y tareas dejadas a lo largo del curso siento que se vuelve un poco
pesado el contenido y el tiempo de entrega que tenemos. En algunas
ocasiones no tenamos tiempo de acabar o incluso en la clase no podamos
acabar y nos cerraban los laboratorios antes de que acabramos, esa fue la
parte complicada del curso.

Ramn: Como conclusin aprend que los controladores sirven para


mejorar procesos, en general para mantener un sistema estable, o al menos a
la referencia que se quiere y que adems sirven para resistir perturbaciones
externas, que en general muchas veces se tienen ya que nada es perfecto, en
general el curso me gust porque aprend cosas bastantes interesantes, en
86

especial de LabView ya que vena en blanco, adems me gust lo de


comunicar cosas a travs del puerto serial que muchas veces es til para tener
una comunicacin interfaz mquina como lo hicimos con la interfaz de LabView
y el arduino. Con sta clase refuerzo mis conocimientos de control, ya que en
las clases pasadas slo habamos teora y un poco de prctica pero en sta
prctica reforzamos todo de manera intensiva.

Luis: A lo largo de este curso, pudimos integrar los conocimientos de


diferentes reas para llevar a cabo diferentes prcticas. En nuestro desarrollo
como ingenieros ha sido fundamental realizar el desarrollo de sistemas
integradores, adems saber analizarlos e interpretar sus resultados. A mi
parecer, a lo largo de este semestre me fue posible aprender a utilizar
herramientas que no conoca, as como reforzar aquellas de las que ya tena
nociones. Es por esto que considero este curso como uno de los ms
importantes en mi carrera, as como uno de los ms enriquecedores

Carlos: Este curso es una buena forma de poner a prueba los


conocimientos tericos adquiridos durante los cursos de control y juntar lo
terico con lo prctico. Adems pude reafirmar los conocimientos que ya tena
y aprender otros nuevos. Pude observar el comportamiento de cada uno de los
controles y ver como los afectan los diferentes parmetros de cada uno de
ellos. Con el paso del semestre el curso se puso pesado ya que cada mircoles
tenamos que entregar reportes y prcticas, las cuales demandaban todo el
mircoles y parte del partes para poder realizarlas.

Anexos

87

Esquemtico del circuito de acondicionamiento y conexiones del sistema

Mdulo MT-GN100

88

Cdigo implementado en Arduino.


char comser[5];

//array to set the Rnnnn comand

double val=0.0;

//variable to compute RPM

String cont_ind ;

//string variable to print messages in serial port

int adc=A0;

//variable to set analog port

int pwm=5;

//variable to set PWM pin

int tog=2;

//variable to set toggle pin

int control=0;

//specify controller

double window=10;
double kpp=2.0;
double kppi=1.0;
double kipi=2.0;
int def = 0;

//select deffuzification method 0: weight average, 1: center of gravity

double adc_value = 0;
double adc_8bits = 0;
double error = 0.0;
double uk=0;
double val2;
double uk_ant=0;

//store previous value of u(k) for PI controller

double error_ant=0;
int t1, t2;

//store previous value of error for PI controller

//variables to measure execution time

double A, B,C;

//constants for recurrence equation of PI controller

double delta_uk=0.0;
boolean toggle = HIGH;

//increment/decrement for fuzzy cotroller.


//Toggle to measure code execution time in an oscilloscope

//Coordinates for fuzzy input variables.


/*
double a1=-255;
double b1=-255;
89

double c1=-51;
double d1=-0;
double a2=-51;
double b2=0;
double c2=0;
double d2=51;
double a3=0;
double b3=51;
double c3=255;
double d3=255;

//Coordinates for fuzzy output variables.


double a4=-3.46;
double b4=-3.46;
double c4=-0.692;
double d4=0;
double a5=-0.692;
double b5=0;
double c5=0;
double d5=0.692;
double a6=0;
double b6=0.692;
double c6=3.46;
double d6=3.46;
*/

double a1=-255;
double b1=-255;
double c1=-160;
double d1=-0;
double a2=-160;
90

double b2=0;
double c2=0;
double d2=160;
double a3=0;
double b3=160;
double c3=255;
double d3=255;

//Coordinates for fuzzy output variables.


double a4=-2.66;
double b4=-2.66;
double c4=-1.33;
double d4=0;
double a5=-1.33;
double b5=0;
double c5=0;
double d5=1.33;
double a6=0;
double b6=1.33;
double c6=2.66;
double d6=2.66;

void setup() {

pinMode(pwm, OUTPUT);
pinMode(tog, OUTPUT);
Serial.begin(9600);
}

double fuzzify (double x, double a, double b, double c, double d) //x= error input
{
91

double weight;

if ((x>a) && (x<b))


weight=(x-a)/(b-a);
else if (x>c && x<d)
weight=(d-x)/(d-c);
else if (x>=b && x<=c)
weight=1.0;
else
weight=0;

return weight;
}

double defuzzify_weightaverage(double W1, double W2, double W3) //receive Degree of Each
Membership function
{
double sum_weight;
double out;
sum_weight = W1 + W2 + W3; //sum of Degree of Membership function
out = ((W1*b4) + (W2*b5) +(W3*c6)/ (sum_weight));
return out;
}

double defuzzify_centerofgravity(double W1, double W2, double W3) //receive Degree of Each
Membership function
{
double sum_weight;
double out ;
double CG1, CG2, CG3;

CG1=(a4-d4)/2;
92

CG2=(d5-abs(a5))/2;
CG3=(d6-a6)/2;

sum_weight = W1 + W2 + W3; //sum of Degree of Membership function


out = (((W1*CG1) + (W2*CG2) + (W3*CG3)) / (sum_weight));

return out;
}

double Get_fuzzy_coordinates(char serial_command[5])


{
char numeric_value[3];
double float_value;

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


{
numeric_value[i] = serial_command[i+2];
}

float_value=atof(numeric_value);

return float_value;
}

double Get_numerical_value(char serial_command[5])


{
char numeric_value[4];
double float_value;

for(int i=0; i<4; i++)


{
93

numeric_value[i] = serial_command[i+1];
}

float_value=atof(numeric_value);

return float_value;
}

void loop() {
// put your main code here, to run repeatedly:
if(toggle == HIGH){
toggle = LOW;
}else{
toggle = HIGH;
}
digitalWrite(tog,toggle);

t1 = micros();

adc_value = analogRead(adc);

adc_8bits = map(adc_value, 0, 1023, 0, 255); //covert adc value from 10 to 8 bits

if(Serial.available()==5)
{
for(int i=0; i<5; i++){
comser[i] = Serial.read();
}

94

if(((comser[0]=='R')&&(comser[1]>='0')&&(comser[1]<='2')&&(comser[2]>='0')&&(comser[2]<='9')&
&(comser[3]>='0')&&(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9'))||((comser[0]=='R')&&
(comser[1]=='3')&&(comser[2]=='0')&&(comser[3]=='0')&&(comser[4]=='0'))) //validate format and
range
{
val=Get_numerical_value(comser); //cast a number character to its floating value

val2 = (val*255)/3000;

//compute the RPM value within the resolution range of PWM

pin
}
else if(comser[0]=='T'){

control = comser[4]-48;

if(control==0) cont_ind="open loop";


if(control==1) cont_ind="on/off";
if(control==2) cont_ind="on/off with hysteresis";
if(control==3) cont_ind="Proportional";
if(control==4) cont_ind="Proportional Integral";
if(control==5) cont_ind="Fuzzy";

Serial.println("Current Controller: " + cont_ind +"\n");

}
else
if((comser[0]=='W')&&(comser[3]>='0')&&(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

char win[2]= {comser[3], comser[4]};


window = atof (win);
}
else if((comser[0]=='P')&&((comser[1]=='+')||(comser[1]==''))&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&(comser[3]<='9')&&(comser[4]>='0')
&&(comser[4]<='9')){
95

kpp = Get_numerical_value(comser)/10;
}
else if((comser[0]=='p')&&((comser[1]=='+')||(comser[1]==''))&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&(comser[3]<='9')&&(comser[4]>='0')
&&(comser[4]<='9')){

kppi = Get_numerical_value(comser)/10;
}
else if((comser[0]=='i')&&((comser[1]=='+')||(comser[1]==''))&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&(comser[3]<='9')&&(comser[4]>='0')
&&(comser[4]<='9')){

kipi = Get_numerical_value(comser)/10;
}
else
if((comser[0]=='a')&&(comser[1]=='1')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

a1 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='b')&&(comser[1]=='1')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

b1 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='c')&&(comser[1]=='1')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

c1 = Get_fuzzy_coordinates(comser)*(-1);
}

96

else
if((comser[0]=='d')&&(comser[1]=='1')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

d1 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='a')&&(comser[1]=='2')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

a2 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='b')&&(comser[1]=='2')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

b2 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='c')&&(comser[1]=='2')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

c2 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='d')&&(comser[1]=='2')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

d2 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='a')&&(comser[1]=='3')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

a3 = Get_fuzzy_coordinates(comser);
97

}
else
if((comser[0]=='b')&&(comser[1]=='3')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

b3 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='c')&&(comser[1]=='3')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

c3 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='d')&&(comser[1]=='3')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

d3 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='a')&&(comser[1]=='4')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

a4 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='b')&&(comser[1]=='4')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

b4 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='c')&&(comser[1]=='4')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

98

c4 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='d')&&(comser[1]=='4')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

d4 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='a')&&(comser[1]=='5')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

a5 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='b')&&(comser[1]=='5')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

b5 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='c')&&(comser[1]=='5')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

c5 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='d')&&(comser[1]=='5')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

d5 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='a')&&(comser[1]=='6')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){
99

a6 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='b')&&(comser[1]=='6')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

b6 = Get_fuzzy_coordinates(comser)*(-1);
}
else
if((comser[0]=='c')&&(comser[1]=='6')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

c6 = Get_fuzzy_coordinates(comser);
}
else
if((comser[0]=='d')&&(comser[1]=='6')&&(comser[2]>='0')&&(comser[2]<='9')&&(comser[3]>='0')&&
(comser[3]<='9')&&(comser[4]>='0')&&(comser[4]<='9')){

d6 = Get_fuzzy_coordinates(comser);
}

else
if((comser[0]=='d')&&(comser[1]=='e')&&(comser[2]=='f')&&((comser[4]=='0')||(comser[4]=='1'))){
char defser[1];
defser[0]=comser[4];
def = atoi(defser);
}
else{
Serial.println("Format ERROR\n");
}

100

error = val2-adc_8bits; //compute error

//Switch case to select corresponding controller


switch (control){
case 0:

uk = (((val2)+15)*0.992063492);

break;

case 1:
{
//on/off controller algorithm

if(error>0){uk=255;}
else if(error<0){uk=0;}
}
break;

case 2:
{
//on/off with hysteresis controller algorithm

double hyst = ((window/100)*val2);

if(error>hyst){uk=255;}
else if(error<(0-hyst)){uk=0;}
}
break;

101

case 3:
{
//P controller algorithm

double kp= kpp;

uk = kp*error;

if(uk>255){
uk=255;
}
else if(uk<0){
uk=0;
}
}
break;

case 4:
{
//PI controller algorithm

double kp= kppi;


double ki= kipi;
double T = 0.008;

A = 1;

B = (2*kp + ki*T)/2;

C = (T*ki-2*kp)/2;

102

uk = A * uk_ant + B * error + C * error_ant;

if(uk>255){
uk=255;
}
else if(uk<0){
uk=0;
}

uk_ant=uk;
error_ant=error;
}
break;

case 5:
{
//Fuzzy controller algorithm

//NEG fuzzy set percentage


double negper = fuzzify(error, a1, b1, c1, d1);
//ZERO fuzzy set percentage
double zeroper = fuzzify(error, a2, b2, c2, d2);
//POS fuzzy set percentage
double posper = fuzzify(error, a3, b3, c3, d3);

if(def==0){
delta_uk= defuzzify_weightaverage(negper, zeroper, posper);
}
else{
delta_uk= defuzzify_centerofgravity(negper, zeroper, posper);
}
103

uk= uk_ant + delta_uk;

if(uk>255){
uk=255;
}
else if(uk<0){
uk=0;
}

uk_ant= uk;
}
}

analogWrite(pwm,uk);

t2 = micros();

delayMicroseconds(8000-(t2-t1)); //Sample period 8ms


}

Referencias
[1] Acadmica Cartagena. (2000). Funcin de transferencia - Sistema de primer orden. 29
de Febrero de 2016, de Dinmica y Control de procesos Sitio web:
http://www.cartagena99.com/recursos/alumnos/apuntes/7_FUNCION_DE_TRANSFE
RENCIA_PRIMER_ORDEN.pdf

[2] Arduino. (2004). What is an Arduino. 17 de Febrero de 2016, de Arduino Sitio web:
https://learn.sparkfun.com/tutorials/what-is-an-arduino
104

[3] Bigelow, K. (2000). Low pass filters. 17 de Febrero de 2016, de Sitio web:
http://www.play-hookey.com/ac_theory/filters/lo_pass_filters.html
[4] CATEDU. (2001). Controlador de accin Proporcional e Integral. 07 de Marzo de 2016, de
Centro
Aragons
de
Tecnologas
para
la
educacin
Sitio
web:
http://educativa.catedu.es/44700165/aula/archivos/repositorio//4750/4926/html/13_co
ntrolador_de_accin_proporcional_e_integral_pi.html

[5] ECE Tutorials. (2007). Continuous time LTI (Linear time invariant) systems. 23 de
Febrero de 2016, de Electronics and Control Systems Sitio web:
http://ecetutorials.com/signals-systems/continous-linear-time-invariantlti-systemswith-examples/
[6] FCEIA. (2003). Diseo de controladores Fuzzy. 29 de Marzo de 2016, de Control
Avanzado II Sitio web:
http://usuarios.fceia.unr.edu.ar/~spastel/CavII%20-%20Dise%C3%B1o%20de%20Co
ntroladores%20Fuzzy.pdf

[7] Galindo, J. (s.f). Conjuntos y Sistemas Difusos. 29 de Marzo de 2016, de Universidad de


Malaga Sitio web: http://www.lcc.uma.es/~ppgg/FSS/FSS5.pdf
[8] Gmez, J. (2008). Fuzzy Control. 30 de Marzo de 2016, de Editorial de la Universidad
Tecnolgica Nacional Sitio web: http://www.edutecne.utn.edu.ar/fuzzy_control/UTNFCONTR.pdf
[9] Gonzlez, C. (2001). Lgica Difusa. 29 de Marzo de 2016, de Tcnicas Softcomputing
Sitio web:
http://www.esi.uclm.es/www/cglez/downloads/docencia/2011_Softcomputing/LogicaD
ifusa.pdf
[10] Kamman. (2008). Linearity Principles. 23 de Febrero de 2016, de Control Systems Sitio
web: http://homepages.wmich.edu/~kamman/ME360LinearityPrinciples.pdf
[11] Martnez, A. (2011). Identificacin experimental de sistemas. 23 de Febrero de 2016, de
Universidad de Alicante Sitio web:
http://rua.ua.es/dspace/bitstream/10045/18965/1/Identificacion%20experimental%20
de%20sistemas.pdf
[12] Mastascusa. (2005). On/Off control systems. 01 de Marzo de 2016, de Sitio web:
http://www.facstaff.bucknell.edu/mastascu/econtrolhtml/intro/intronotes/IntroNote_Ver
yBasic.html
[13] Mastascusa. (2005). Proportional control systems. 01 de Marzo de 2016, de Sitio web:
http:// www.facstaff.bucknell.edu/mastascu/eControlHTML/Intro/Intro2.html
[14] Matheonics Technology Inc. (2009). Filter Specifications. 16 de Febrero de 2016, de
Mathoenics Technology Sitio web:
http://www.matheonics.com/Tutorials/Specification.html

105

[15] National Instruments. (2003). Pulse Width Modulation. 16 de Febrero de 2016, de


National Instruments Sitio web:
http://digital.ni.com/public.nsf/allkb/294E67623752656686256DB800508989
[16] Rouse, M. (2008). Attenuation. 17 de Febrero de 2016, de TechTarget Sitio web:
http://searchnetworking.techtarget.com/definition/attenuation
[17] s.a. (2001). Introduction to PWM. 17 de Febrero de 2016, de Embedded system Sitio
web: http://www.embedded.com/electronics-blogs/beginner-scorner/4023833/Introduction-to-Pulse-Width-Modulation
[18] s.a. (2007). Transfer functions . 29 de Febrero de 2016, de Computing and
Mathematical Sciences Sitio web:
http://www.cds.caltech.edu/~murray/courses/cds101/fa04/caltech/am04_ch63nov04.pdf
[19] s.a. (2007). Voltage follower. 17 de Febrero de 2016, de Hyperphisics Sitio web:
http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/opampvar2.html
[20] s.a. (2014). Passive low pass filter. 17 de Febrero de 2016, de Electronics Tutorials Sitio
web: http://www.electronics-tutorials.ws/filter/filter_2.html
[21] s.a. (2015). Integral Action and PI control. 08 de Marzo de 2016, de Practical Process
Control Sitio web: http://controlguru.com/integral-action-and-pi-control/
[22] s.a. (2015). What is a voltage follower. 16 de Febrero de 2016, de Learning about
electronics Sitio web: http://www.learningaboutelectronics.com/Articles/Voltagefollower
[23] Salv, A. (2012). Construccin de un Controlador Digital PID para Enseanza Empleando
un Dispositivo Chipbas8. 07 de Marzo de 2016, de Asociacin de Mxico de Control
Automtico Sitio web: http://amca.mx/memorias/amca2012/articulos/0023[1].pdf

[24] UDLAP. (2006). Acciones de control. 08 de Marzo de 2016, de Universidad de las


Amricas
Puebla
Sitio
web:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lep/nunez_e_f/capitulo1.pdf
[25] UDLAP. (s.f). Lgica Difusa. 30 de Marzo de 2016, de Universidad de las Amricas
Puebla Sitio web:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lmt/ramirez_r_o/capitulo3.pdf
[26] Universidad de Oviedo. (2007). Control Fuzzy. 28 de Marzo de 2016, de Diseo de
sistemas avanzado de control Sitio web:
http://isa.uniovi.es/~hilario/dsac_archivos/pdf_dsac/Fuzzy.pdf
[27] Universidad de Piura. (s.f). Lgica Difusa y sistemas de control. 30 de Marzo de 2016,
de UDEP Sitio web:
http://www.biblioteca.udep.edu.pe/bibvirudep/tesis/pdf/1_185_184_133_1746.pdf

106

You might also like