Está en la página 1de 19

BENEMRITA UNIVERSIDAD AUTNOMA

DE PUEBLA
FACULTAD DE CIENCIAS DE LA
ELECTRNICA
MAESTRA EN CIENCIAS DE LA
ELECTRNICA
OPCIN EN AUTOMATIZACIN

CATEDRATICO: DR. SERGIO VERGARA LIMON


ASIGNATURA: CONTROL DIFUSO
ALUMNA: ARACELI LUNA LEN
PRACTICA: CONTROL DIFUSO DE UN PENDULO
CURSO OTOO 2014

PUEBLA, PUE., A 16 DE DICIEMBRE DE 2014

Control Difuso

OBJETIVO GENERAL
Disear un controlador difuso para el sistema de un pndulo, implementando el
controlador en Labview. Obtener las funciones de pertenencias de la planta.

RESUMEN
Conjuntos difusos
Un conjunto difuso es una clasificacin de objetos con un grado de membresa continuo.
Como conjunto, es caracterizada por una funcin de membresa (caracterstica), la cual
asigna a cada elemento un objeto un grado de membresa dentro del rango de cero a uno
[0,1].
Sea X ={x } un conjunto clsico cuyos elementos son representados por x. Luego un
conjunto difuso A en X representa un conjunto de pares ordenados:
A=( x , A ( x ) ) , x X
Funcin de membresa
Las funciones de membresa constituyen un mtodo utilizado para la representacin de los
conjuntos difusos, de tal manera que a cada punto en el espacio se le asigna un valor o
grado de pertenencia a dicho conjunto, definiendo as al conjunto mismo. De este modo,
x en A y es limitado a valores entre 0 y 1, siendo
A (x) es el grado de membresa de
0 el ms bajo grado de membresa y 1 el ms alto. Ntese el contraste con la teora de
conjuntos clsica o discreta, en el cual A ( x )=0 o 1, donde 0 significa que x no
pertenece a A y 1 denota que x pertenece a A.

Figura 1. Funciones de membresa comnmente


utilizadas

Figura 1. Funciones de membresa comnmente utilizadas


pg. 1

Control Difuso

Variable lingstica
Si una variable puede adoptar palabras en el lenguaje natural como sus valores, ella es
llamada una variable lingstica. Esta permite realizar una descripcin en lenguaje natural a
travs de trminos matemticos.
Operaciones bsicas entre conjuntos difusos
Complemento: El complemento del conjunto difuso A es aquel cuyo valor de pertenencia
es definido como:

Unin: La unin de dos conjuntos difusos A y B (A B) es el conjunto difuso ms


pequeo que incluye todos los elementos en A, B o ambos. As la unin es un operador
lgico OR. La funcin de membresa de (A B) es:

Interseccin: La interseccin de A y B (A B) es el conjunto difuso ms grande dentro


de A y B, que indica que la interseccin es un operador lgico AND. La funcin de
membresa de (A B) es:

Sistemas de control basados en lgica difusa


La aplicacin de la lgica difusa a los sistemas de control, se puede expresar como
un control a travs de palabras que interpretan el sentido comn en lugar de nmeros o bien
sentencias en lugar de ecuaciones, con el fin de incorporar esquemas del razonamiento
humano hacia una estrategia de control automtico y aprovechar algunas veces la
experiencia del operador del sistema.
En la figura 2 se muestra la estructura de control en lazo cerrado con controlador
basado en lgica difusa.

Figura 2. Sistema de control difuso en lazo cerrado


pg. 2

Control Difuso

La figura 3 muestra una estructura tpica de un controlador basado en lgica difusa.

Figura 3. Configuracin del sistema difuso

Desarrollo del controlador difuso para un pndulo.


El problema del pndulo invertido.
Estamos interesados en el desarrollo de modelos que capturen una respuesta muy parecida
al operador humano a la hora de balancear manualmente un sistema robtico es el caso del
pndulo invertido. Dentro del estudio de los robots de piernas o extremidades, lo ms
importante ha sido el balanceo de estos, pues es la parte esencial para que no caiga el
cuerpo del robot.
Otra de las principales aplicaciones que podemos encontrar para el pndulo invertido
adems de los robots, es el posicionamiento de un satlite con respecto a la tierra, en este
caso el satlite est en movimiento y las antenas que se encuentran en la tierra no pueden
dejar que se mueva demasiado, ya que si no se saldra del rango de comunicacin entre
ellos. Existen ms aplicaciones para el pndulo invertido como lo es la estabilidad en gras,
edificios, aplicaciones didcticas, etc.

pg. 3

Control Difuso

Sistema del pndulo invertido.

Definicin de variables
Se define la variable de salida del sistema, sobre la base de ella se estructuran las variables
de entrada, en este caso la variable de salida es la seal de control que se aplica al motor en
este caso se le ha nombrado torque y las variables de entrada sern el error y la velocidad.
Base de datos
Para el control del sistema fueron seleccionadas como entradas al controlador dos variables
que se consideran de gran importancia en el comportamiento del mismo: el error de la
posicin angular y la derivada del mismo. Se define como salida, la seal de control
aplicada al motor tal que genere un torque sobre la rueda de inercia.
El universo de discurso de las variables difusas, tanto de error, velocidad y torque son
representadas por cinco conjuntos difusos. Estos conjuntos difusos estn representados con
funciones de membresa triangulares con un 50% de traslape.
Los conjuntos difusos son divididos como se muestra:
Para el Error.
EGN: Error Grande Negativo. EPN: Error Pequeo Negativo. EN: Error Nulo. EPP: Error
Pequeo Positivo. EGP: Error Grande Positivo.
Para la velocidad.
VRN: Velocidad Rpida Negativa. VLN: Velocidad Lenta Negativa. VN: Velocidad Nula.
VLP: Velocidad Lenta Positiva. VRP: Velocidad Rpida Positiva.
Para el torque.

pg. 4

Control Difuso
TGN: Torque Grande Negativo. TPN: Torque Pequeo Negativo. TN: Torque Nulo. TPP:
Torque Pequeo Positivo. TGP: Torque Grande Positivo

La figura nos muestra los conjuntos difusos para la entrada que son la velocidad y el error y
para la salida el torque.

La siguiente figura nos muestra la particin del universo de la variable lingstica velocidad

Al igual que la anterior en esta figura se muestra la particin del universo de la variable
lingstica error.

pg. 5

Control Difuso

DEFINICION DE REGLAS DE INFERENCIA


La base de reglas que consta de veinticinco reglas difusas resultantes de la combinacin de
los dos grupos de cinco conjuntos difusos que donde cada una de las entradas del
controlador y son obtenidas de manera subjetiva por el operador que tiene conocimiento
sobre el comportamiento que debe tener la planta, mediante el siguiente procedimiento:

1.
2.
3.
4.
5.

Si E es EGN y v es VRN, entonces t es TFN


Si E es EGN y v es VLN, entonces t es TGN
Si E es EGN y v es VN, entonces t es TGN
Si E es EGN y v es VRN, entonces t es TGN

Y as sucesivamente quedndonos las siguientes base de reglas para la accin del


controlador.

VRN
VLN
VN
VLP
VRP

EGN

EPN

EN

EPP

EGP

TGN
TGN
TGN
TGN
TGN

TPN
TPN
TPN
TPN
TPN

TPP
TPP
TN
TPP
TPP

TPP
TPP
TPP
TPP
TPP

TGP
TGP
TGP
TGP
TGP

pg. 6

Control Difuso

IMPLEMENTACIN DEL SISTEMA DE CONTROL EN


LABVIEW
Con ayuda de la ecuacin de la recta se encontraron las funciones de membresa para la
variable difusa del error.

1 ,360< x <240
M EGN ( y )= 1
x1 ,240 x <120
120

Usando la misma metodologa se hallaron las funciones de membresas de los conjuntos del
universo de la variable lingstica del error.

Cdigo
egn=0;
epn=0;
en=0;
epp=0;
egp=0;
/*---------------*/
/*---------------*/
pg. 7

Control Difuso
/*Error Grande Negativo*/
if((-360<=x)&&(x<-240))
egn=1;
if((-240<=x)&&(x<-120))
egn=((-x/120)-1);
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
/*Error Pequeo Negativo*/
if((-240<=x)&&(x<-120))
epn=((x+240)/120);
if((-120<=x)&&(x<0))
epn=(-x/120);
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
/*Error Nulo*/
if((-120<=x)&&(x<0))
en=((x+120)/120);
if((0<=x)&&(x<120))
en=((-x/120)+1);
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
/*Error Pequeo Positivo*/
if((0<=x)&&(x<120))
epp=(x/120);
if((120<=x)&&(x<240))
epp=((-x/120)+2);
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
/*Error Grande Positivo*/
if((120<=x)&&(x<240))
egp=((1/120)*x-1);
if((240<=x)&&(x<=360))
egp=1;
/*---------------*/
/*---------------*/

Al igual que con la variable difusa del error se encontraron las funciones de membresa
para la variable difusa de la velocidad.
pg. 8

Control Difuso

VMx
3
M VRN ( y ) =
3
,2VMx
VMx
y1
y<
VMx
3
3
1,VMx< y <

Cdigo
/*...............................................*/
/*...............................................*/
float vrn=0, vln=0, vn=0, vlp=0, vrp=0;
float Vmax=10;
/*...............................................*/
/*Velocidad Rapida Negativa*/
pg. 9

Control Difuso
if((-Vmax<=y)&&(y<((-2*Vmax)/3)))
vrn=(1);
if((((-2*Vmax)/3)<=y)&&(y<(-Vmax/3)))
vrn=(((-3*y)-(Vmax))/Vmax);
/*...............................................*/
/*Velocidad Lenta Negativa*/
if((((-2*Vmax)/3)<=y)&&(y<(-Vmax/3)))
vln=(((3*y)+(2*Vmax))/Vmax);
if(((-Vmax/3)<=y)&&(y<0))
vln=(-3*y/Vmax);
/*...............................................*/
/*Velocidad Nula*/
if(((-Vmax/3)<=y)&&(y<0))
vn=((3*y)+(Vmax))/Vmax;
if((0<=y)&&(y<(Vmax/3)))
vn=((-3*y)+(Vmax))/Vmax;
/*...............................................*/
/*Velocidad Lenta Positiva*/
if((0<=y)&&(y<Vmax/3))
vlp=(3*y)/Vmax;
if((Vmax/3<=y)&&(y<((2*Vmax)/3)))
vlp=((-3*y)+(2*Vmax))/Vmax;
/*...............................................*/
/*Velocidad Rapida Positiva*/
if((Vmax/3<=y)&&(y<(2*Vmax/3)))
vrp=((3*y)/Vmax)-1;
if((((2*Vmax)/3)<=y)&&(y<=Vmax))
vrp=1;

Para hallar
Dado el siguiente ejemplo:
REGLA #1: si x es A1 y y es B1 ENTONCES Z es C1

pg. 10

Control Difuso
Considerando que x0 y y0 son los sensores de las variables difusas x e y, y que sus valores de
verdad se representan por
(x0) y
(y0) para la regla 1, respectivamente, donde

(x0) representa la funcin de membresa para A1

1 = Min (

(x0),

(y0))

Por lo tanto, dado que nuestro sistema tiene veinticinco reglas de control tendremos
veinticinco alfas.

Cdigo
/*

*/
float alfa1, alfa2, alfa3, alfa4, alfa5, alfa6;
float alfa7, alfa8, alfa9, alfa10, alfa11, alfa12;
float alfa13, alfa14, alfa15, alfa16, alfa17;
pg. 11

Control Difuso
float alfa18, alfa19, alfa20, alfa21, alfa22, alfa23;
float alfa24, alfa25;
float CGN[5], CPN[7], CN[1], CPP[7], CGP[5];
alfa1=min(egn,
CGN[0]=alfa1;
alfa2=min(egn,
CGN[1]=alfa2;
alfa3=min(egn,
CGN[2]=alfa3;
alfa4=min(egn,
CGN[3]=alfa4;
alfa5=min(egn,
CGN[4]=alfa5;

vrn);
vln);
vn);
vlp);
vrp);

alfa6=min(epn, vrn);
CPN[0]=alfa6;
alfa7=min(epn, vln);
CPN[1]=alfa7;
alfa8=min(epn, vn);
CPN[2]=alfa8;
alfa9=min(epn, vlp);
CPN[3]=alfa9;
alfa10=min(epn, vrp);
CPN[4]=alfa10;
alfa11=min(en,
CPP[0]=alfa11;
alfa12=min(en,
CPP[1]=alfa12;
alfa13=min(en,
CN[0]=alfa13;
alfa14=min(en,
CPN[5]=alfa14;
alfa15=min(en,
CPN[6]=alfa15;

vrn);
vln);
vn);
vlp);
vrp);

alfa16=min(epp,
CPP[2]=alfa16;
alfa17=min(epp,
CPP[3]=alfa17;
alfa18=min(epp,
CPP[4]=alfa18;
alfa19=min(epp,
CPP[5]=alfa19;
alfa20=min(epp,
CPP[6]=alfa20;

vrn);
vln);
vn);
vlp);
vrp);

alfa21=min(egp, vrn);
CGP[0]=alfa21;
pg. 12

Control Difuso
alfa22=min(egp,
CGP[1]=alfa22;
alfa23=min(egp,
CGP[2]=alfa23;
alfa24=min(egp,
CGP[3]=alfa24;
alfa25=min(egp,
CGP[4]=alfa25;

vln);
vn);
vlp);
vrp);

Como

resultado del valor obtenido en las seales del error y la velocidad, alfa1 recomienda
una accin de control que corresponde al valor de la funcin de membresa, del mismo
modo para la alfa2, alfa3, alfa4 y alfa5, para poder solucionar el conflicto hallamos el
mximo valor de las alfas que estn involucradas en la misma accin de control:

pg. 13

Control Difuso

CODIGO
/*---------------*/
/*---------------*/
int i;
float CGNmaximo = 0;
for ( i = 0; i < 5; i++ ) /*Ciclo for*/
{
if ( CGN[i] > CGNmaximo )
{
CGNmaximo =CGN[i];
}
}
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
int j;
float CPNmaximo = 0;
for ( j = 0; j < 7; j++ ) /*Ciclo for*/
{
if ( CPN[j] > CPNmaximo )
{
CPNmaximo =CPN[j];
}
}
/*---------------*/
/*---------------*/

pg. 14

Control Difuso
/*---------------*/
/*---------------*/
int k;
float CNmaximo = 0;
for ( k = 0; k < 1; k++ ) /*Ciclo for*/
{
if ( CN[k] > CNmaximo )
{
CNmaximo =CN[k];
}
}
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
int l;
float CPPmaximo = 0;
for ( l = 0; l < 7; l++ ) /*Ciclo for*/
{
if ( CPP[l] >CPPmaximo)
{
CPPmaximo=CPP[l];
}
}
/*---------------*/
/*---------------*/
/*---------------*/
/*---------------*/
int m;
float CGPmaximo = 0;
for ( m = 0; m < 5; m++ ) /*Ciclo for*/
{
if ( CGP[m] > CGPmaximo)
{
CGPmaximo =CGP[m];
}
}
/*---------------*/
/*---------------*/

METODO DEL COA


Aplicando el mtodo de desdifusificacin del Centro del rea (COA):

pg. 15

Control Difuso

Cdigo
/*-----------------------------*/
float z1, z2, z3, z4, z5, z6, z7, z8, z9, z10;
float w=1;
/*-----------------------------*/
/*-----------------------------*/
z1=-w;
z2=((CGNmaximo+1)*w)/-3;
z3=((CPNmaximo-2)*w)/3;
z4=((CPNmaximo)*w)/-3;
z5=((CNmaximo-1)*w)/3;
z6=((CNmaximo-1)*w)/-3;
z7=((CPPmaximo)*w)/3;
z8=((CPPmaximo-2)*w)/-3;
z9=((CGPmaximo+1)*w)/3;
z10=w;
/*-----------------------------*/
/*-----------------------------*/
/*-----------------------------*/
pg. 16

Control Difuso
/*-----------------------------*/
float zCOA=((z1*CGNmaximo)+(z2*CGNmaximo)+(z3*CPNmaximo)+(z4*CPNmaximo)
+(z5*CNmaximo)+(z6*CNmaximo)+(z7*CPPmaximo)+(z8*CPPmaximo)+
(z9*CGPmaximo)+(z10*CGPmaximo))/((2*CGNmaximo)+(2*CPNmaximo)
+(2*CNmaximo)+(2*CPPmaximo)+(2*CGPmaximo));
/*-----------------------------*/

Panel frontal del control difuso de un pndulo en LABVIEW

CONCLUSIONES
El proceso de modelado del pndulo es una compleja tarea que requiere de un profundo y
minucioso anlisis de su comportamiento fsico, lo que presento muchas dificultades
durante el diseo del sistema de control.
pg. 17

Control Difuso
La correcta operacin del sistema de control difuso depende de que tan profundo sea el
anlisis del comportamiento de la planta y la descripcin mediante variables lingsticas, lo
que evitar la tarea complicada de resolver el modelo matemtico del sistema que se desea
controlar.

REFERENCIAS
Apuntes Lgica Difusa en la vida diaria. Autores: Sergio Vergara Limon. Clase: Control
Difuso. Otoo 2014.

pg. 18

También podría gustarte