Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reporte Control
Reporte Control
DE PUEBLA
FACULTAD DE CIENCIAS DE LA
ELECTRNICA
MAESTRA EN CIENCIAS DE LA
ELECTRNICA
OPCIN EN AUTOMATIZACIN
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.
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:
Control Difuso
pg. 3
Control Difuso
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
1.
2.
3.
4.
5.
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
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
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];
}
}
/*---------------*/
/*---------------*/
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));
/*-----------------------------*/
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