Está en la página 1de 10

Concurso de Proyectos - INTERCON - 2010

DISEÑO Y SIMULACION DE UN CONTROL PID OPTIMIZADO


MEDIANTE ALGORITMOS DE INTELIGENCIA COMPUTACIONAL
PARA UN MANIPULADOR ROBOTICO DE 5 GRADOS DE LIBERTAD

AUTORES:
Víctor Caballero López, stine_143@hotmail.com
Miguel Fernández Zavala, mickelit007@hotmail.com
Franz Huanay Martínez, calhoun_123@hotmail.com

ASESORES:
David Achanccaray Diaz, ingmec251@hotmail.com

Escuela de Ingeniería Mecatrónica, Universidad Nacional de Ingeniería, Perú.

Resumen: El propósito de este trabajo de investigación fue Key words: robotic manipulator, fuzzy control, PID,
realizar el diseño y simulación de un control PID genetic algorithms, neuro-fuzzy control.
optimizado mediante algoritmos de inteligencia
computacional aplicado en el seguimiento de la trayectoria 1. Introducción
de un manipulador robótico de 5 grados de libertad. El
método utilizado realizó una optimización de nuestra Los trabajos desarrollados por los robots manipuladores
sintonización manual inicial de los parámetros del como un elemento más del proceso productivo consisten
controlador presente en cada grado de libertad para cada frecuentemente en tareas repetitivas, ello exige ubicarlos en
movimiento propuesto por el usuario a partir de algoritmos áreas accesibles para el manipulador, caracterizado por la
de inteligencia computacional, con la finalidad de evitar máxima extensión de sus articulaciones, lo cual podría
complicaciones en el cálculo respectivo de dichos resultar imposible a medida que el área sufra variaciones.
parámetros. Como parte de nuestro análisis se diseñaran La necesidad de obtener mayor rapidez y precisión en un
controladores difusos, neuro-difusos y el uso de algoritmos manipulador robótico bajo restricciones de área de trabajo
genéticos para sintonizar las ganancias. Este trabajo genera nos lleva a una planificación de la trayectoria de
una mejor calidad de control en manipuladores robóticos movimiento de nuestro manipulador así como también a la
así como también reduce la pérdida de tiempos que se supervisión mediante algoritmos los cuales desarrollaremos
invierten en la obtención e implementación de nuevos introduciéndonos en conceptos de inteligencia
controladores en manipuladores presentes muchos de ellos computacional a partir del cual diseñaremos de un
en procesos que requieren menos pausas y más trabajo controlador adecuado que garantice la confiabilidad y
continuo y eficiente. facilidad de implementación en un manipulador robótico
tomando en cuenta en el análisis del modelo características
como la no linealidad del movimiento propuesto, y
Palabras clave: manipulador robótico, control difuso, PID,
limitaciones presentes en un modelo real como
algoritmos genéticos, control neuro-difuso.
perturbaciones reales (variaciones de cargas, fricción, y
demás señales de ruidos externos).
Abstract: The purpose of this research was to undertake
Para la elaboración del presente proyecto se tiene como
the design and simulation of an optimized PID control
antecedentes artículos destacados realizados en los últimos
through computational intelligence algorithms applied in
años en diferentes universidades extranjeras e instituciones,
tracking the trajectory of a robotic manipulator with five
los cuales a partir de estos desarrollaremos nuestra propia
degrees of freedom. The method used made an optimization
línea de investigación.
of our initial manual tuning of the parameters of our
Finalmente presentamos las simulaciones respectivas de
controller present in each degree of freedom for each
nuestro trabajo usando el toolbox Simechanics de Simulink,
proposed movement by the user from computational
así como los cálculos respectivos utilizando el software
intelligence algorithms, in order to avoid complications in
MATLAB.
the respective calculation of these parameters. As part of
our analysis, we designed fuzzy controllers, neuro-fuzzy
and the use of genetic algorithms for tuning our gains. This
work generates a better quality of control in robotic
manipulators as well as reducing the loss of time spent on
the procurement and implementation of new drivers in
mind manipulators many processes that require fewer
breaks and more continuous and efficient work.

PR-RFN-011 Página 1 de 10
Concurso de Proyectos - INTERCON - 2010

2. Materiales y métodos

2.1. Modelamiento del Manipulador

Nuestro robot de 5 grados de libertad está basado en el


manipulador Lynx6 de Lynxmotion, modelo del cual
obtendremos la cinemática directa e inversa, jacobianos y la OBS: y son datos de entrada.
dinámica.
Ver apéndice 5.1.

Y
X'

(xe,ye)


X
Fig. 1. Representación del robot
Fig. 2. Giro del primer grado de libertad.
 Cinemática Directa
Z (xe,ye)


Procedemos a calcular los parámetros D-H del manipulador l4

1
para utilizar las matrices de transformación y encontrar la (xw,yw)

posición del efector final. Estas ecuaciones son la base para


l3
r
desarrollar las simulaciones y observar la trayectoria que


3
sigue el manipulador al utilizar algoritmos en su control.


l2


2
Eslabón l1
X'

1 90° 0
Fig. 3. Giro de los 4 GDL restantes.
2 0° 0
3 0° 0  Jacobiano Lineal y Angular
4 90° 0 0 Partiendo del producto de matrices (T), hallamos el
5 0° 0 jacobiano.
Tabla 1. Parámetros DH del manipulador Lynx6

Luego de hallar los parámetros DH, se calculan las matrices


homogéneas (A) de los eslabones.
La cinemática directa la obtenemos multiplicando las 5
matrices homogéneas (T), la cual se ha simplificado y Al jacobiano lineal de nuestro robot manipulador le hemos
ordenado de la manera como se muestra a continuación. agregado el jacobiano angular con respecto a los
parámetros de orientación y , con el objetivo de poder
controlarlos también.

Los parámetros y son orientaciones a controlar.


Ahora tenemos un jacobiano de 5x5, en el cual ya no se
 Cinemática Inversa
tendrán inconvenientes para calcular el jacobiano inverso,
tan sólo se tendrán en cuenta los puntos de singularidad, en
Para hallar la cinemática inversa existen diversos métodos,
los cuales se tomará al jacobiano como una matriz
de los cuales se eligió el método geométrico, por la
identidad.
facilidad del cálculo usando los parámetros de orientación
elegidos y la posición final del efector.

PR-RFN-011 Página 2 de 10
Concurso de Proyectos - INTERCON - 2010

El jacobiano inverso se calcula de la siguiente manera:


2.2.3. Control Derivativo: El controlador derivativo
agrega un cero en el infinito para reducir o
eliminar el sobre impulso (overshoot).
Existen puntos donde no está definido el jacobiano inverso,
estos puntos son llamados de singularidad.

La función de transferencia del controlador está dada por


Para evitar este problema en las simulaciones, se asumió un la siguiente expresión:
para esos puntos de singularidad.

 Dinámica

El modelo dinámico de robot manipulador con


articulaciones rotatorias de n GDL, sin considerar la
fricción en las articulaciones está determinado por la
ecuación:
M  q  q  C  q, q  q  g  q   

Donde: M(q) es la matriz de inercias, C(q,q’) es la Fig. 5. Bloque del control PID para el voltaje de entrada.
matriz de fuerzas centrífugas y de coriolis, g(q) es el vector
de fuerzas gravitacionales y  es el vector de pares de 2.3. Función de Transferencia de Motores DC
entrada.
Ahora modificamos el PID inicial, para poder utilizar las
 Compensación de la gravedad características de los motores DC. Se crea el diagrama de
bloques dentro de nuestro lazo de control, el cual tendrá
Como paso previo al desarrollo del control se usó la como entrada Voltaje y Torque como salida, teniendo en
compensación de gravedad para comprobar que nuestras cuenta los valores límites de la entrada Voltaje.
ecuaciones de dinámica calculadas fuesen admisibles.

Fig. 6. Bloque del motor DC.

Como se muestran en las figuras 11 y 12, se pueden


modificar los parámetros de los motores de acuerdo al los
valores reales que disponemos. Se construyó el modelo de
Fig. 4. Compensación de la gravedad usando la dinámica de MATLAB.
los motores despreciando los efectos de viscosidad e inercia
del motor por ser despreciables respecto a las inercias del
robot.
2.2. Principio de control PID

El controlador PID es utilizado para mejorar la respuesta


dinámica del robot para una referencia de posición sobre el
efector final, así como también para eliminar el error en
estado estacionario de dicha posición.

2.2.1. Control Proporcional: El controlador proporcional


produce un offset en la repuesta del sistema, esto
es, regula la ganancia en estado estacionario del
sistema.

2.2.2. Control Integral: El controlador derivativo agrega Fig. 7. Bloque de los actuadores del manipulador.
un polo en el origen, para eliminar el error (offset)
en estado estacionario.

PR-RFN-011 Página 3 de 10
Concurso de Proyectos - INTERCON - 2010

Reglas difusas
R+ e control q
Motor
PID ROBOT
DC
- Motor

Fig. 8. Esquema de control PID usando la dinámica eléctrica de los


actuadores.

2.4. Algoritmos de Inteligencia Computacional Fig. 12. Reglas de control (9).

Para la defusificación se empleó el método de mandani,


2.4.1. Lógica Difusa
obteniendo la salida por el método del centroide.
El diseño del controlador difuso es una atractiva
alternativa para reemplazar los métodos convencionales de
control ya que proporciona un marco sistemático y eficaz
para hacer frente a las incertidumbres y no linealidades en
sistemas complejos; sobre todo cuando el modelo
matemático del sistema es desconocido, no es posible de
obtener, o es demasiado complicado de utilizar para fines
de control, sin embrago se necesita de una buena capacidad
de procesamiento.

Fig. 13. Salida del controlador en función de las variables de entrada.

2.4.2. Algoritmos Genéticos

Fig. 9. Bloque de control fuzzy-PD+I Los pasos que sigue el algoritmo dentro de cada
generación se detallan a continuación:
Se procedió a diseñar un controlador FlCPD+I, ya que,
es el controlador más general. Para implementar el 2.4.2.1. Reproducción
controlador se utilizó el toolbox de lógica difusa (Fuzzy Existen diferentes métodos para la selección de la
logic toolbox) de MATLAB® 7.10.0. población (nuevos valores de los parámetros) en cada
generación, pero están basados en el mismo principio
básico, estos métodos son los siguientes:

- Realizar la selección de manera aleatoria de la


población.
- Realizar la normalización universal para elegir la
Fig. 10. Diagrama de bloques del controlador (Mamdani). muestra.
- Selección por normalización geométrica.
Funciones de pertenencia - Retornar la selección para el inicio de una nueva
generación.
En este caso se empleó funciones triangulares con un
universo de discurso entre ±1: El método de selección utilizado para la sintonización de
los parámetros del PID será el de la selección aleatoria de la
población.
2.4.2.2. Crossover

Nuevos individuos son generalmente creados por la


selección entre los valores previos de una población, estos
son los llamados crossover points, que usualmente son
seleccionados de manera aleatoria.

2.4.2.3. Mutación

Los nuevos valores para entrar a una generación son


creados haciendo modificaciones de una selección anterior
Fig. 11. Funciones de pertenencia de los parámetros error, derror y individual. En el algoritmo genético la mutación es la
control respectivamente.
fuente de variabilidad y también mejora la eficiencia de la
evolución en cada generación

PR-RFN-011 Página 4 de 10
Concurso de Proyectos - INTERCON - 2010

2.4.2.4. Sintonización del Controlador PID

Para obtener los parámetros del controlador PID se


emplea la siguiente configuración, la cual será iterada
utilizando la herramienta Simulink de MATLAB.

Fig. 17. Funciones de pertenencia de los parámetros error, derror y


ucontrol respectivamente.
Fig. 14. Esquema para la sintonización del controlador PID.
Reglas difusas

2.4.3. Controlador Neuro-difuso

Otra forma de usar un controlador difuso, quizás más


eficiente, es la de optimizar las reglas fuzzy mediante
algoritmos genéticos y redes neuronales, en nuestro
controlador empleará una combinación del uso de redes
neuronales y lógica difusa, para ello el algoritmo de
aprendizaje del sistema difuso se representa con una
arquitectura de redes neuronales. Para realizar la creación
de estas ANN (redes neuronales artificiales) y los sistemas
Takagi Sugeno FIS (sistema de inferencia difuso) se utiliza
el Toolbox fuzzy de Matlab, donde se entrena la red con la
data obtenida de las simulaciones previas. Fig. 18. Reglas de control (25).

2.5. Simulaciones

A partir del modelo desarrollado realizamos las respectivas


simulaciones con el bloque de control obtenido.

2.5.1. Control PID sintonizado manualmente:

Para las simulaciones se realizaron varias trayectorias, sin


embargo, mostraremos los resultados obtenidos más
resaltantes, en este caso para una trayectoria helicoidal y
sinusoidal.

Fig. 15. Sistema Takagi Sugeno Neuro-fuzzy.

Esta estructura teórica fue implementada con la ayuda del


“Anfis editor” de MATLAB 7.10.0.


Fig. 19. Diagrama general del control usando el modelo del robot en
Fig. 16. Diagrama de bloques del controlador (Sugeno). simmechanics de Simulink.

Trayectoria Helicoidal
Funciones de pertenencia básicas
La trayectoria deseada es la siguiente.
x=0.6+0.1cos(t )
y=0.1sen(t )
z=0.01*t +0.2
α=0
β=0

PR-RFN-011 Página 5 de 10
Concurso de Proyectos - INTERCON - 2010

Kp=diag ([6125, 6125, 6125, 6125, 6125])


Ki= diag([30,30,30,30,30])
Kd= diag([70,70,70,70,70])

Fig. 24. Error en el espacio de trabajo (sinusoide).

Fig. 20. Trayectorias helicoidales real y deseada.


Fig. 25. Torques de entrada en el bloque robot para trayectoria
sinusoidal.

2.5.2. Control Fuzzy-PD+I

Ahora utilizamos un sistema Fuzzy con una distribución


de ganancias de forma similar al PID, con la finalidad de
hacer más robusto el control.
Fig. 21. Error en el espacio de trabajo (helicoide).

Ganancias usadas:

GE=100, GIE=1, GCE=0.6, GU=38

Fig. 22. Torques de entrada en el bloque robot para trayectoria


helicoidal.


Trayectoria sinusoidal inscrita en un cilindro

Kp= diag([105.27,105.27,105.27,38.28,38.28])
Ki= diag([30,30,30,40,30])
Kd= diag([2.45,2.45,2.45,1.75,1.75]) Fig. 26. Bloque FLCPD+I en simulink.

Fig. 23. Trayectoria sinusoidal real y deseada.

Fig. 27. Trayectoria helicoidal real y deseada (fuzzy).

PR-RFN-011 Página 6 de 10
Concurso de Proyectos - INTERCON - 2010

Fig. 28. Error en el espacio de trabajo (fuzzy).

Fig. 32. Data obtenida de nuestro control PID (Error_q).

Parámetro Valor
Fig. 29. Torques de entrada en el bloque robot para un FLCPD+I.. Método de Selección Roulette Wheel
Población 40
Incremento de la velocidad
Generaciones 20
En el control cinematico, además de la trayectoria Crossover Probabilidad 60%
espacial que debe ser realizada por el robot es necesario Probabilidad de Mutación 0.10%
especificar la velocidad media del recorrido o la precisión
con que se deba alcanzar el punto de destino. Esto implica Rango de valores PID 0 - 2500
que las constantes del controlador a usar varían de acuerdo
a la velocidad usada en la trayectoria. En la siguiente Tabla 2. Parámetros del algoritmo genético.
gráfica se muestra el resultado de incrementar la velocidad
de recorrido en controladores PID y FLCPD+I: Resultados del algoritmo genético
Para las condiciones seleccionadas y para una trayectoria
helicoidal, se obtuvieron las siguientes ganancias.

Kp =

1.0e+003 *
0.8369 0 0 0 0
0 1.0776 0 0 0
0 0 1.9279 0 0
Fig. 30. Incremento de velocidad en control PID. 0 0 0 1.2886 0
0 0 0 0 0.2274

Kd =

10.0000 0 0 0 0
0 10.0000 0 0 0
0 0 10.0000 0 0
0 0 0 27.0060 0
Fig. 31. Incremento de velocidad en control FLCPD+I. 0 0 0 0 49.2273

2.5.3. Algoritmos genéticos Ki =

Ahora utilizamos los algoritmos genéticos para sintonizar 46.5521 0 0 0 0


nuestro controlador PID. Este proceso se realiza utilizando 0 14.1774 0 0 0
la data obtenida (errores) de nuestro bloque de control PID, 0 0 39.5794 0 0
el cual inicia con valores de ganancias aleatorias que 0 0 0 30.2430 0
deberán ser optimizadas. El algoritmo tratará de minimizar 0 0 0 0 29.9443
nuestra función objetivo, que en nuestro caso es el error
durante el tiempo de simulación definido.

Obtención de la data
La data con que se trabajará es el error de posición angular.

PR-RFN-011 Página 7 de 10
Concurso de Proyectos - INTERCON - 2010

Fig. 37. Trayectoria helicoidal real y deseada usando el controlador


neuro-fuzzy.
Fig. 33. Trayectoria helicoidal real y deseada (AG).

Fig. 38. Error en el espacio de trabajo (neuro-fuzzy).

Fig. 34. Error en el espacio de trabajo (AG).

Fig. 35. Torques de entrada en el bloque de control PID con Fig. 39. Torques que ingresan al bloque robot usando el Neuro-
sintonización AG. Fuzzy.

3. Resultados y discusión
Como se puede observar, al usar un controlador PID se
2.5.4. Controlador híbrido Neuro-Fuzzy emplea mayor cantidad de torque para el control de
trayectorias que cuando se emplean algoritmos
Ahora con el ANFIS editor creamos 5 sistemas fuzzy, las computacionales.
cuales entrenamos para optimizar los parámetros de estos.
Como se menciono anteriormente estos sistemas tienen 25 En investigaciones pasadas no se encontró una comparación
reglas de tipo Sugeno, cuyas funciones de pertenencia serán clara entre los distintos tipos de optimización de control
modificadas usando redes neuronales, en nuestro caso se para manipuladores, cosa que se realiza en el presente
utilizó un ANFIS híbrido. trabajo.

4. Conclusiones
-Se realizó un control con regular precisión, los valores
del error angular alcanzan unos cuantos ángulos para
razonables magnitudes de torque, por lo cual el control
realizado en el presente trabajo tiene un desempeño
aceptable.

-En las pruebas realizadas, el incremento de la velocidad


de recorrido requiere una reducción de los tiempos de
asentamiento, sin embargo, al no modificar los parámetros
del PID principalmente los Kd y Kp que están relacionados
con los tiempos de corrección del controlador, la trayectoria
Fig. 36. Bloque del Neuro-Fuzzy en Simulink.

PR-RFN-011 Página 8 de 10
Concurso de Proyectos - INTERCON - 2010

real mostrará diferencias con respecto a la deseada  Jacobiano Lineal y Angular


incrementándose éstas a medida que la velocidad aumente.
Calculo del jacobiano lineal:
-El uso de algoritmo computacionales pueden disminuir
el costo computacional si son optimizadas adecuadamente,
sin embargo el controlador PID-Fuzzy que se utilizó no
estaba optimizado requiere mayor carga computacional
debido al uso de un sistema Mandani difuso y sintonización
manual.

-El algoritmo para el controlador Neuro-Fuzzy, el cual


utiliza un sistema Takagi Sugeno difuso requiere menor
costo computacional y posee pequeños errores que
dependen de la data y target empleados en su
entrenamiento.

5. Apéndices
5.1. Demostraciones
 Cinemática Directa

Calculo del jacobiano total uniendo jacobiano lineal y angular:

6. Agradecimientos
Como se observa en las ecuaciones anteriores, se han
incluido las variables y , ya que se controlarán dos
parámetros de orientación además de los que corresponden Los autores agradecen las contribuciones del asesor Msc.
a la trayectoria. David Achanccaray Diaz del presente artículo, y del tutor
del curso “Análisis y Control de Robots” Msc. Nilton
 Cinemática Inversa Anchayhua por su apoyo en la revisión de este documento.

7. Referencias
[1]“Introduction to Robotics” (2006), H. Harry Asada.
Massachussets Institute of Technology.
[2] A. Barrientos, L. F. Peñín, C. Balaguer, and R.
Aracil, Fundamentos de Robótica. McGrawHill, 1998.
[3] J. J. Craig, Introduction to Robotics: Mechanics and
Control, P. Hall, Ed., 2003.
[4] Hybrid GA Tuned RBF Based Neuro-Fuzzy
Controller for Robotic Manipulator. Sufian Ashraf Mazhari
and Surendra Kumar Member IEEE
[5] Springer Handbook of Robotics Bruno Siciliano,
Oussama Khatib
[6] Fuzzy + PID Controller for Robot Manipulator
[7] TELEOPERATED MANIPULATOR CONTROL
Ricardo Enrique Gutiérrez Carvajal
[8] Schilling, J. Robert. , Fundamentals of Robotics.
Estados Unidos: Prentice-Hall, Inc. (1990).
OBS: y son datos de entrada.

PR-RFN-011 Página 9 de 10
Concurso de Proyectos - INTERCON - 2010

ANEXOS writefis(fis1,'gen_anfis1');
disp('1');

En esta parte se muestra el código utilizado para el diseño [fis2,error2,ss2]=anfis(TD2,fis2,4000,[],[],1);


del controlador neurofuzzy y el uso de algoritmos writefis(fis2,'gen_anfis2');
genéticos. El diseño del controlador fuzzy PD+I se realizó disp('2');
trabajando con el editor FUZZY y el control PID se realizo [fis3,error3,ss3]=anfis(TD2,fis3,4000,[],[],1);
usando SIMULINK, también se realizó un script en Matlab writefis(fis3,'gen_anfis3');
para el control PID que incluye los motores, sin embargo disp('3');
éste último no lo presentamos por falta de espacio.
[fis4,error4,ss4]=anfis(TD2,fis4,4000,[],[],1);
writefis(fis4,'gen_anfis4');
A.1. Código en Matlab del controlador neurofuzzy disp('4');

% gen_neurofuzzy.m [fis5,error5,ss5]=anfis(TD2,fis5,4000,[],[],1);
writefis(fis5,'gen_anfis5');
%% Controlador neurofuzzy con sintonización
disp('5');
genética
close all;clc;close all;
%% Simulación final: trayectoria seguida
global Kp Ki Kd f
sim('ControlePIDsimmechanics_gen_neurofuzzy.mdl');
%% Cálculo de las ganacias mediante algoritmos
plot3(posiciondeseada(:,1),posiciondeseada(:,2),…
genéticos
posiciondeseada(:,3),'r','LineWidth',2);
f=1;
hold on
Kp=diag([2000 2000 2000 2000 2000]);
plot3(posicionreal(:,1),posicionreal(:,2),...
Kd=diag([70 70 70 70 70]);
posicionreal(:,3),'LineWidth',2);
Ki=diag([30 30 30 30 30]);
legend('Trayectoria deseada','Trayectoria real')
% Ganancias iniciales
kp0=[2400 2400 2400 2400 2400]; A.2. Código en Matlab de la función objetivo del
kd0=[70 70 70 70 70]; algoritmo genético.
ki0=[30 30 30 30 30];
%% función objetivo a minimizar
% Rango de valores function z = algoritmo_pid(KP)
lb_kp=[200 200 200 200 200]; global Kp Kd Ki
lb_kd=[10 10 10 10 10]; kp1 = KP(1);
lb_ki=[5 5 5 5 5]; kp2 = KP(2);
up_kp=[2500 2500 2500 2500 2500]; kp3 = KP(3);
up_kd=[100 100 100 100 100]; kp4 = KP(4);
up_ki=[50 40 40 40 40]; kp5 = KP(5);
kd1 = KP(6);
lb=[lb_kp lb_kd lb_ki]; kd2 = KP(7);
up=[up_kp up_kd up_ki]; kd3 = KP(8);
options=gaoptimset('MutationFcn',... kd4 = KP(9);
@mutationadaptfeasible,'PlotFcn',@gaplotbestf,... kd5 = KP(10);
'Generations',10,'PopulationSize',24,... ki1 = KP(11);
'InitialScores',[kp0 kd0 ki0]); ki2 = KP(12);
[x,error]=ga(@algoritmo_pid,15,[],[],[],[],... ki3 = KP(13);
lb,up,[],options); ki4 = KP(14);
ki5 = KP(15);
Kp = diag(x(1:5));
Kd = diag(x(6:10)); Kp = diag([kp1 kp2 kp3 kp4 kp5]);
Ki = diag(x(11:15)); Kd = diag([kd1 kd2 kd3 kd4 kd5]);
Ki = diag([ki1 ki2 ki3 ki4 ki5]);
%% Entrenamiento de las reglas fuzzy mediante
redes neuronales %% Control PID
sim('ControlePIDsimmechanics_gen.mdl'); sim('ControlePIDsimmechanics_gen.mdl');
disp('ya corrió');
%% Función del Error
CFuzzy=readfis('anfis_5gdl_2.fis'); z = sqrt(dot(Error_q(:,1),Error_q(:,1))+...
% Creating fis' dot(Error_q(:,2),Error_q(:,2))+dot(Error_q(:,3),…
writefis(CFuzzy,'gen_anfis1'); Error_q(:,3))+dot(Error_q(:,4),Error_q(:,4))+...
fis1=readfis('gen_anfis1'); dot(Error_q(:,5),Error_q(:,5)));
writefis(CFuzzy,'gen_anfis2');
fis2=readfis('gen_anfis2');
writefis(CFuzzy,'gen_anfis3');
fis3=readfis('gen_anfis3');
writefis(CFuzzy,'gen_anfis4');
fis4=readfis('gen_anfis4');
writefis(CFuzzy,'gen_anfis5');
fis5=readfis('gen_anfis5');

% Data training
TD1=[Error_q(:,1) dError_q(:,1) tauv(:,1)];
TD2=[Error_q(:,2) dError_q(:,2) tauv(:,2)];
TD3=[Error_q(:,3) dError_q(:,3) tauv(:,3)];
TD4=[Error_q(:,4) dError_q(:,4) tauv(:,4)];
TD5=[Error_q(:,5) dError_q(:,5) tauv(:,5)];

% Training neural networks


[fis1,error1,ss1]=anfis(TD1,fis1,4000,[],[],1);

PR-RFN-011 Página 10 de 10

También podría gustarte