Está en la página 1de 5

2&CIMK_06

IMPLEMENTACIN DE UN ALGORITMO
DE CONTROL FUZZY PARA
COMPARACIN DE TIEMPOS DE
PROCESAMIENTO DE MUESTREO
UTILIZANDO DIFERENTES
TECNOLOGAS
Magda J. M. Tavera, Max Suell Dutra, Carlos A. Cosenza, Omar Lengerke

AbstractEste artculo discute el uso de la puesta en prctica


de un algoritmo de control con lgica fuzzy para la comparacin
de tiempos de procesamiento de muestreo entre C++, Matlab y
DSPs. Los algoritmos de control con lgica fuzzy son usados para
solucionar problemas difciles de tratar con tcnicas tradicionales
de control. Como ejemplo, se puede citar un sistema de control de
velocidad de un motor serial universal, usando un dispositivo
MSP430F14x. El control de la velocidad de rotacin de motores
universales seriales es muy complicado cuando son usadas
tcnicas tradicionales de control, pues requiere de un modelo
matemtico muy complejo.
Index TermsC++, Control fuzzy, DSPs, Matlab.

I. INTRODUCCIN

STE articulo discute el uso de la puesta en prctica de un


algoritmo de control con lgica fuzzy comparado los
tiempos de procesamiento de muestreo entre C++, Matlab y
DSPs. Los algoritmos del control de la lgica fuzzy son
usados para solucionar los problemas que son difciles de
tratar con tcnicas tradicionales del control. Como ejemplo, se
puede citar un sistema de control de velocidad de un motor
serial universal, usando un dispositivo MSP430F14x. El
control de la velocidad de rotacin de motores universales
seriales es muy complicado cuando son usadas tcnicas
tradicionales del control, pues requiere de un modelo
matemtico muy complejo.

Usar lgica fuzzy elimina la necesidad de realizar modelos

Manuscrito recibido Julio 30, 2009.


M. J. M. Tavera, Universidad Federal de Rio de Janeiro, Departamento de
Ingenieria Mecanica, e-mail: mjmtavera@ufrj.br.
M. S. Dutra, Universidad Federal de Rio de Janeiro, Departamento de
Ingenieria Mecanica, e-mail: max@mecanica.coppe.ufrj.
C. A. Cosenza, Universidad Federal de Rio de Janeiro, Departamento de
Ingenieria de produccin, e-mail: cosenza@pep.ufrj.br.
O. Lengerke, Universidad Federal de Rio de Janeiro, Universidad
Autonoma de Bucaramanga, e-mail: olengerke@ufrj.br.

matemticos, permitiendo conseguir fcilmente una solucin.


La lgica fuzzy define las reglas que determinan el
comportamiento del sistema usando descripciones mediante
palabras en lugar de ecuaciones matemticas [7]. El algoritmo
consiste en tres pasos fundamentalmente: fuzzificacin,
Inferencia fuzzy y desfuzificacin, las secciones siguientes del
presente artculo discute brevemente estos tres procesos.

II. FUZZIFICACIN
La fuzzificacin es el proceso que determina el grado de
pertinencia de los valores de la entrada definidos por el
conjunto fuzzy (variables lingsticas). En el caso del control
de velocidad de rotacin de motores universales seriales, los
valores de la entrada estn definidos por:



El error absoluto en la velocidad de rotacin.


El diferencial de error de la velocidad de rotacin:
este valor es obtenido restando del valor del error
actual el error anterior.

derror = error lasterror


Los conjuntos fuzzy fueron determinados a partir de datos
experimentales obtenidos en el sistema DAISY (por las siglas,
DAtabase for the Identification of SYstems). DAISY, es una
aplicacin en Internet, que consiste principalmente en una base
de datos con un conjunto de datos (datasets) usados en la
identificacin de sistemas o anlisis de series de tiempo,
desarrollada y conservada por el departamento de Ingeniera
Elctrica de K.U. Leuven, en el grupo de investigacin SISTA
bajo la responsabilidad del profesor Bart De Moor [1]. El
sistema usa dos direcciones, la primera descargando el
conjunto de datos de la base de datos (por ejemplo, para
utilizarlos con el fin de comparar o probar algoritmos de la
identificacin) y la segunda, subiendo conjuntos de datos a la

2&CIMK_06

Para esta aplicacin son definidos cinco conjuntos fuzzy


para el error y el derror:
 NM: Medio negativo.
 NP: Pequeo negativo.
 ZE: Igual a cero.
 PP: Pequeo Positivo.
 PM: Medio Positivo.
Las funciones de pertinencia son triangulares y el mximo y
mnimo valor, del error y del derror estn dados en la tabla I.
TABLA I
VALORES MXIMOS Y MNIMOS DEL ERROR Y EL DERROR

Minimo
Mximo

ERROR

DERROR

-1.4683
1.4992

-0.515
0.545

De la tabla anterior se obtiene la configuracin de los


conjuntos fuzzy para el error fig 1 y el derror fig 2; donde el
mximo grado de pertinencia esta dado por el valor mximo de
cada una de las variables lingsticas.

0,6
0,5

GRADO DE PERTINENCIA

Tpicamente, cierta estructura modelo es elegida por el


usuario que contiene parmetros desconocidos (es decir, se
propone cierta parametrizacin). Tener el modelo de un
sistema es a menudo muy importante para el anlisis,
simulacin, prediccin, supervisin, diagnosis y diseo de
sistema de control. Las categoras datasets que estn
disponibles son: procesos industriales, elctricos/electrnicos,
mecnicos,
biomdicos,
bioqumicos,
econometra,
ambientales, clsicos y trmicos. En el presente estudio se
escogi la base de datos correspondiente a la construccin
mecnica de un brazo de un lector de CD-Player. Donde las
entradas para la obtencin de datos fueron las fuerzas de los
actuadores mecnicos mientras que las salidas se relacionan
con la exactitud que sigue el brazo. Los datos fueron medidos
en lazo cerrado y el nmero de muestras es de 2047.

CONJUNTOS FUZZY

0,4
0,3

NM
NP

ZE

PP

0,2
0,1

Fig. 1. Conjuntos fuzzy para el error.

CONJUNTOS FUZZY

GRADO DE PERTINENCIA

base de datos (permitiendo que otras personas utilicen sus


conjuntos de datos para verificar sus algoritmos, o para
reproducir o realzar sus resultados). Los datasets en la base de
datos estn conforme a una revisin previa, de modo que se
pueda garantizar cierto nivel de calidad en los datos. Es una
herramienta til cuando se desea verificar un algoritmo con un
ejemplo del mundo real, a su vez, permite una evolucin
gradual de diversos datasets en pruebas patrones y la
publicacin de comparaciones entre los diversos mtodos o
algoritmos usados. La identificacin del sistema es la
disciplina de hacer los modelos matemticos de sistemas,
comenzando por los datos experimentales, medidas y
observaciones.

0,2

NM

NP

0,1

ZE

PP

Fig. 2. Conjuntos fuzzy para el derror.

El resultado de la fuzificacin de un valor de la entrada es


un vector de cinco elementos, pues existen cinco conjuntos
fuzzy y el valor de cada miembro define el grado de
pertinencia del valor de la entrada a un conjunto fuzzy
particular (valor y). Los vectores para el error y el derror que
son los resultados de la fuzificacin se denotan como X1[ ] y
X2[ ] respectivamente mostrados en la (1).
X 1 = [ NM

X 2 = [ NM

NP

ZE

PP

NP

ZE

PP

PM ]

PM ]

(1)

III. INFERENCIA FUZZY


Las relaciones de mximos y mnimos de Zadeh [3] son
usadas debido a que la experiencia ha probado que dan
resultados precisos. El proceso consiste en:
1. Limpiar el vector de salida Y[ ].
2. Tomar el primer miembro del vector X1[ ].
3. Comparar con todos los miembros del vector X2[ ]; el
menor valor es guardado en cada una de las
comparaciones.
4. El mximo valor es encontrado entre los miembros
obtenidos en la etapa anterior.
5. El mximo valor es adicionado en el vector de salida
dependiendo de las reglas fuzzy.
6. El prximo miembro del vector X1[ ] es tomado y se
repite el proceso desde el paso 3 al 6.
Las reglas de inferencia fuzzy son mostradas en la tabla II.

2&CIMK_06

TABLA II
VALORES MXIMOS Y MNIMOS DEL ERROR Y EL DERROR
DIFERENCIAL DE ERROR

ERROR

NM

NP

ZE

PP

PM

NM

PM

PM

PM

PP

ZE

NP

PM

PM

PP

ZE

NP

ZE

PM

PP

ZE

NP

NM

PP

PP

ZE

NP

NM

NM

PM

ZE

NP

NM

NM

NM
Fig. 4. Tiempos de inferencia fuzzy en el DSP.

IV. MTODO DE DEFUZIFICACIN POR CENTROIDE


El resultado de la defuzificacin es un valor numrico que
determina un factor de PWM usado para conducir el actuador.
Es obtenido encontrando el punto del centroide de la funcin,
que es el resultado de la multiplicacin de la funcin de
pertinencia de salida con el vector de salida Y[ ] que
obtenemos de la inferencia fuzzy. La frmula general
matemtica que se utiliza para obtener el punto del centroide
est dada por la (2):
5

Defuz =

Y[ ] CM [ ]
i =1

(2)

Y[ ]
i =1

Fig. 5. Tiempos de defuzzificacin en el DSP.

Donde, Y es el vector de salida y CM son los coeficientes


de multiplicacin de la funcin de salida.
En el DSP fueron calculados tiempos para la etapa de
fuzzificacin fig 3, inferencia fuzzy fig 4 y defuzzificacin fig
5.

De donde se observa que en el DSP la mayor parte del


tiempo en el algoritmo de control, es gastada en la inferencia
fuzzy. Por su parte la defuzzificacin que se reduce a una
simple operacin matemtica registra un tiempo cero en este
proceso.
V. RESULTADOS OBTENIDOS
Para comenzar el anlisis primero se observan los resultados
que se obtienen en cada una de las tecnologas utilizadas;
observando el factor PWM obtenido en Visual DSP++ fig 6,
Matlab fig 7 y C++ fig 8.

Fig. 3. Tiempos de fuzzificacin en el DSP.

Fig. 6. Factor de PWM en visual DSP++.

2&CIMK_06

Fig. 10. Comparacin de C++ vs Visual DSP++.


Fig. 7. Factor de PWM en Matlab.

En esta comparacin se observa un error en el rango de [5*10-5, 5*10-5] en los dos casos, por tanto, se realiza un
histograma para determinar cuales de las dos tecnologas es
mas semejante a los resultados respecto a Visual DSP++.

Fig. 8. Factor de PWM en C++.

Por causa de la cantidad de nmero de muestras, es


necesario hacer comparacin de resultados entre las
tecnologas, para determinar que tan exacta es una tecnologa
respecto de la otra en los resultados del factor de PWM.

Fig. 11. Histograma Matlab vs visual DSP++.

Tomando como base Visual DSP++ se comparan los


resultados respecto a Matlab fig 9 y C++ fig 10.

Fig. 12. Histograma C++ vs visual DSP++.

Fig. 9. Comparacin de Matlab vs Visual DSP++.

En la fig 11 se observa que un mayor nmero de muestras


esta entre [-0.5*10-5, 0.5*10-5], mientras en la fig 12 el mayor
nmero de muestras esta en el intervalo de valores [-1*10-5,
0]. Lo que demuestra que C++ obtiene resultados ms
similares a los de Matlab, respecto a Visual DSP++ en esta
implementacin en particular de control utilizando lgica
fuzzy.

2&CIMK_06

Despus del anlisis de resultados que en este caso es el


factor de PWM, la tabla III muestra los tiempos de muestreo
en cada una de las tecnologas utilizadas. Para este clculo se
ignoro la lnea de impresin del resultado que fue necesaria
para el anlisis anterior, porque esta sentencia toma tiempo.

[2]

[3]

[4]

DSP-Based Electromechanical Motion Control (Power Electronics and


Applications Series) By Hamid A. Toliyat, Steven G. Campbell, 2003,
360 p. CRC Press.

[5]

DSP Applications Using C and the TMS320C6x DSK By Rulph


Chassaing, Wiley-Interscience, 335 p, 2002

[6]

C Algorithms for Real-Time DSP By Paul Embree, Prentice Hall, 248


p. 1995.

[7]

Fuzzy Sets and Fuzzy Logic: Theory and Applications By George J.


Klir, Bo Yuan, Prentice Hall, 592 p, 1995.

TABLA III
COMPARACIN DE TIEMPOS DE MUESTREO
COMPARACIN CON TIEMPOS TOTALES

TECNOLOGA

NUMERO
DE
MUESTRAS

TIEMPO
TOTAL

TIEMPO EN CADA
MUESTRA

C++

2047

0.076 seg

0.0371 ms

Visual DSP++

2047

0.1036 seg

0.0506 ms

MATLAB

2047

0.5470 seg

0.2672 ms

VI. CONCLUSIONES
En la siguiente conclusin se toma un tiempo base de 1ms,
siendo un tiempo optimo de envi de datos para la
implementacin de la fuerza en los actuadotes mecnicos.


Para 1ms con C++ se pueden procesar 26 muestras


en una laptop HP Pavilion, con procesador Mobile
AMD Sempron processor 3000+ 1.58 GHz, 224
MB de RAM, con sistema operativo Microsoft
Windows XP Home Edition Verso 2002, service
pack 2.

Para 1ms con el DSP Analog Devices


VisualDSP++, Target: ADSP-21160 ADSP-2116x
Simulator; se pueden procesar 19 muestras.

Para 1ms con Matlab se pueden procesar 3


muestras en una laptop HP Pavilion con las mismas
caractersticas descritas arriba.

Con los clculos del nmero de muestras que se pueden


obtener en 1ms en las diferentes tecnologas; podemos
concluir que para el caso de un brazo robotico con tres grados
de libertad y tres actuadores mecnicos para el control,
cualquier tecnologa de las estudiadas seria apropiada.
Si en un determinado robot aumenta el nmero de grados de
libertad y consecuentemente el nmero de actuadores
mecnicos; se puede ir descartando Matlab, si en el proceso es
necesario que mas de tres actuadores mecnicos reciban
instrucciones sin pasarse del tiempo requerido de 1ms entre
cada instruccin para completar un determinado movimiento.
BIBLIOGRAFIA
[1]

De Moor B., De Gersem P., De Schutter B., Favoreel W., ``DAISY: A


database for identification of systems'', Journal A, Special Issue on
CACSD (Computer Aided Control Systems Design), vol. 38, no. 3, Sep.
1997, pp. 4-5.

Peter Van Overschee, Bart De Moor, Subspace Identification For Linear


Systems Theory - Implementation Applications. Kluwer Academic
Publishers. 1996, 272 p.
Fuzzy Sets and Fuzzy Information Granulation Theory (Key selected
papers by Lotfi A. Zadeh) By Chongfu Huang, Da Ruan. Beijing
Normal University Press, Beijing, 2000, 360 p.

También podría gustarte