Sei sulla pagina 1di 9

CONTROLADOR PID MEDIANTE ALGORITMOS GENTICOS

Se tiene un PID para sintonizarlo mediante algoritmos genticos.

CONTROLADOR PID

Le damos a los constantes valores de 1

>> Kp=1

Kp =

>> Kd=1

Kd =

>> Ki=1

Ki =

1
FUNCIN DE COSTO

Ahora generamos una funcin de costo que me calcular el error cuadrtico, para obtener los
valores de Kp, Kd, Ki en lazo cerrado antes de realizar el algoritmo gentico.
LLAMO AL ERROR CUADRTICO Y ME DAR EL VALOR DEL ERROR

>> error_cuadratico([1;1;1])

hlc =

s^5 + 2 s^4 + 3 s^3 + 2 s^2 + s

---------------------------------------

s^6 + 3 s^5 + 5 s^4 + 5 s^3 + 3 s^2 + s

Continuous-time transfer function.

ans =

5.9440

VALORES Kp, Kd, Ki

>> K=rand(3,1)

K=

0.3938

0.4401

0.3507

LOS PASAMOS A LA FUNCIN Y OBSERVAMOS EL ERROR MEDIANTE 3 NMEROS ALEATORIOS.

>> error_cuadratico(K)

hlc =

0.3938 s^5 + 0.8339 s^4 + 1.185 s^3 + 0.7908 s^2 + 0.3507 s

--------------------------------------------------------------

s^6 + 2.394 s^5 + 3.834 s^4 + 3.185 s^3 + 1.791 s^2 + 0.3507 s

Continuous-time transfer function.

ans =

1.3985

Observamos como el error se reduce con esos valores de Kp, Kd, Ki


AHORA LO HACEMOS MEDIANTE ALGORITMOS GENTICOS

%poblacin incial
n=50; %individuos
nc=3; %nmero de cromosomas kp, kd, ki
pi=rand(nc,n); %poblacin inicial
ng=10; %nmero de generaciones
for cg=1:5
cg
J=zeros(1,n); %ndices de desempeo de la poblacin
for k=1:n
J(k)=error_cuadratico(pi(:,k));
end
[Jo,Ji]=sort(J);
Jo(1)
pio=pi(:,Ji); %poblacin inicial ordenada
%crea la nueva poblacin
np=zeros(nc,n); % nueva poblacin
%elitismo
np(:,1:10)=pio(:,1:10);
%mutacin
for k=1:10
np(:,10+k)=pio(:,k);
np(randi(nc):10+k)=rand; %se selecciona un cromosoma aleatorio y se modifica
end
%cruce
for k=1:30
ind1=pi(:,randi(n)); %individuo1
ind2=pi(:,randi(n)); %individuo2
np(:,20+k)=[ind1(1);ind2(2);ind2(3)];
end
end
K=pio(:,1);
Kp=K(1);
Kd=K(2);
Ki=K(3);

Definimos poblacin inicial


Definimos los individuos
Definimos los cromosomas Kp, Kd, Ki
Seleccionamos nmeros aleatorios que me den el Kp, Kd, Ki para que me de el menor
error cuadrtico.
Definimos las generaciones
Evaluamos los individuos en la funcin de costo
Encuentra los menores valores en la funcin de costo
Ordena la poblacin inicial de acuerdo al ndice de desempeo
Crea la nueva poblacin
Elitismo
Selecciona los 10 mejores individuos
Mutacin
Cambia un cromosoma de forma aleatoria en los 20 siguientes
Cruce
Sacamos de la poblacin inicial 2 individuos de forma aleatoria de los 30
Hacemos el cruce
Obtenemos los valores de Kp, Kd, Ki
Se simula de acuerdo a las generaciones que pongamos en el programa
Se observa como de acuerdo a las generaciones se obtienen mejores valores

EVALUAMOS ALGORITMO GENETICO

CON UNA GENERACION

hlc =

0.1487 s^5 + 0.6402 s^4 + 1.532 s^3 + 1.383 s^2 + 0.8917 s

-------------------------------------------------------------

s^6 + 2.149 s^5 + 3.64 s^4 + 3.532 s^3 + 2.383 s^2 + 0.8917 s

Continuous-time transfer function.

ans =

0.1471
CON CINCO GENERACIONES

hlc =

0.8879 s^5 + 1.87 s^4 + 1.903 s^3 + 1.015 s^2 + 0.03234 s

--------------------------------------------------------------

s^6 + 2.888 s^5 + 4.87 s^4 + 3.903 s^3 + 2.015 s^2 + 0.03234 s

Continuous-time transfer function.

ans =

0.5771
CON DIEZ GENERACIONES

hlc =

0.2278 s^5 + 1.078 s^4 + 1.572 s^3 + 1.344 s^2 + 0.4943 s

--------------------------------------------------------------

s^6 + 2.228 s^5 + 4.078 s^4 + 3.572 s^3 + 2.344 s^2 + 0.4943 s

Continuous-time transfer function.

ans =

0.2501
CONCLUSIONES

Se puede ampliar el uso de algoritmos genticos al estudio de sistemas MIMO, mediante


funciones de estado con lo cual se tendrn ms valores de Kp, Kd, Ki.

Para realizar algoritmos genticos es necesario crear una funcin de costo para poder
evaluar los individuos y obtener el error que me permita tener una respuesta ptima.

Se observa que al aumentar las generaciones se obtiene una mejor respuesta del
sistema ante la entrada.

Al crear la funcin error_cuadratico y compararla con el algoritmo_genetico se observa


claramente que responden de manera similar para controlar el sistema con lo cual
concluyo que depende de la aplicacin que vayamos a estudiar, pero que la ventaja del
algoritmo gentico es que escoge los mejores individuos para crear una poblacin que
minimice siempre el error con los valores mnimos.

REFERENCIAS

Available,
https://www.uaeh.edu.mx/docencia/P_Lectura/icbi/asignatura/introduccion_a_los_algoritmo
s_geneticos_con_matlab.pdf

Potrebbero piacerti anche