7.
El problema del péndulo invertido
7. El problema del péndulo invertido
7. El problema del péndulo invertido
7.1. Descripción del sistema
7.1.1. Introducción
U n problema clásico de estudio, frecuente en el área del control automático,
es el del péndulo invertido. El reto a superar es similar al que enfrenta un
malabarista cuando intenta ejecutar equilibrismos con una escoba.
La constitución física del sistema es simple: consta de una barra apoyada en
su extremo inferior sobre una superficie. El objetivo del control es mantener en
posición vertical esta barra, a base de aplicar fuerzas instantáneas sobre su centro
de masa. Cuando la barra está montada sobre una superficie móvil (“carro”) el
sistema se conoce como carro-péndulo, o, en inglés, cart-pole, y el control se
puede llevar a cabo dirigiendo el movimiento del carro mediante la aplicación de
cierta fuerza sobre el mismo.
Figura 1. Esquema del sistema
carro-péndulo
7.1.2. Motivación
El sistema del péndulo invertido, que es muy conocido en la teoría de control
moderna, es representativo de muchos de los problemas de control que surgen en el
mundo real, ilustrando muchas de las dificultades asociadas con dichos problemas.
Es una representación idealizada de los problemas de equilibrio inestable (en los
que la estabilidad sólo se puede conseguir mediante realimentación).
1
7.1. Descripción del sistema
La investigación desarrollada en torno a este problema ha generado una gran
cantidad de trabajos en el ámbito mundial. Se pueden encontrar desde estudios
enfocados sólo hacia la obtención del modelo matemático que describe la planta
del sistema, hasta proyectos que se enfrascan en la construcción del mismo.
Muchos de estos esfuerzos han estado orientados hacia la experimentación con
técnicas de control -tanto clásicas como modernas-, utilizándose como banco de
pruebas para la evaluación de controladores (control con estructura variable,
control de energía, control por realimentación del estado, etc.).
Este sistema mecánico presenta una serie de características que resultan
especialmente atractivas para la puesta en práctica del desarrollo teórico en control
automático. Podemos destacar como algunas de estas características interesantes
las siguientes:
➢ El modelado matemático puede obtenerse a partir de leyes físicas básicas.
➢ La dinámica puede expresarse de forma clara mediante ecuaciones
diferenciales ordinarias con sus condiciones básicas.
➢ A su vez las ecuaciones que describen la dinámica del péndulo completo
son esencialmente de naturaleza no lineal.
➢ El sistema es inherentemente inestable, partiendo del estado de reposo,
pues en condiciones estáticas el péndulo se encuentra sin los elementos
necesarios para mantener la barra verticalmente, y puede volcarse en
cualquier momento y en cualquier dirección.
➢ Además se trata de un sistema subactuado.
➢ Es un sistema SIMO.
➢ Posee un alto grado de acoplamiento entre sus variables.
El esfuerzo por controlar este sistema está también justificado por las
aplicaciones prácticas que se pueden extraer del mismo.
[Link]. Sistema subactuado
Podemos definir como sistema subactuado aquel que carece de al menos un
actuador (entrada) en uno de sus grados de libertad (salidas), es decir, un sistema
subactuado será aquel que posee un número de grados de libertad mayor que de
actuadores.
En un sistema el número de actuadores puede ser menor que el de grados de
libertad por motivos de diseño del sistema físico (falta de espacio, exceso de peso,
cuestiones de presupuesto, etc.) o por fallo de alguno de estos dispositivos.
2
7.1. Descripción del sistema
De entre los sistemas subactuados un ejemplo común y ampliamente
estudiado es el sistema del péndulo invertido basado en un carro móvil, en el que la
velocidad lineal del carro representa la entrada del sistema, y la posición angular
del péndulo y lineal del carro son las correspondientes salidas medibles del sistema.
Debido a que la aceleración del brazo no puede ser controlada directamente, el
péndulo invertido se dice que es un sistema subactuado. El péndulo no recibe
directamente ninguna señal de control, debido a que ésta se aplica sobre el carro.
Por este motivo es una plataforma muy usada para poner a prueba diferentes
estrategias de control.
7.1.3. Aplicaciones
La investigación del proyecto tiene, en principio, interés académico, aunque
son grandes las posibilidades de exportar los resultados obtenidos a aplicaciones
prácticas.
El péndulo invertido es un sistema mecánico inestable (cuando se encuentra
en posición vertical invertida), y el estudio de sus dinámicas es importante para el
análisis de otros sistemas que tienen que mantenerse próximos a un punto de
equilibrio inestable. Algunos ejemplos de estos sistemas son los siguientes:
➢ sistemas robóticos móviles con patas
➢ sistemas de navegación
➢ antenas espaciales
➢ brazo robot de los transbordadores
espaciales
➢ control de grúas
➢ El problema de control del péndulo
invertido es en la realidad muy similar al
que aparece cuando se quiere controlar el Figura 2. El control de cohetes
lanzamiento de un proyectil o incluso de mantiene similitudes con el del
péndulo invertido
un cohete.
➢ También el control del vuelo de un aeroplano mantiene ciertas analogías,
así como el de un helicóptero.
También cabe destacar la formulación de diseño y control de péndulos
invertidos dobles y rotacionales, que también están propuestos como temas de
estudio y se asemejan al problema de controlar un brazo mecánico o una
articulación.
3
7.1. Descripción del sistema
Figura 4. Péndulo
doble invertido Figura 3. Péndulo
invertido rotatorio
7.1.4. Descripción física del sistema
Como hemos visto, el péndulo invertido puede constar de un “carro”, cuyo
movimiento está restringido, ya que se puede mover en una única dimensión (se
desplaza en línea recta sobre un plano horizontal). Sobre este carro está montada
una varilla -el péndulo- de peso reducido, sujeta al mismo a través de una
articulación, de manera que sólo se permite el movimiento libre de la varilla en un
plano espacial vertical (determinado por la dirección de movimiento del carro y la
normal al suelo), siendo el eje de rotación perpendicular al desplazamiento del
carrito. El carro puede desplazarse a lo largo de un riel horizontal cuyo eje
longitudinal pertenece al plano de rotación. La longitud del riel suele ser finita1, y,
por lo tanto, la carrera del carro normalmente se encuentra acotada, lo que puede
limitar las maniobras de control2.
Figura 5. . Esquema del péndulo invertido
fabricado por Feedback
1 Sin embargo, nosotros no tendremos en cuenta la limitación de recorrido del carro que daría lugar a
una saturación en la variable correspondiente.
2 Para salvar esta limitación se ideó una modificación del sistema consistente en suplir la carrera lineal del
carro por una trayectoria circular cerrada, creando así el denominado péndulo de Furuta.
4
7.1. Descripción del sistema
Figura 6. Péndulo invertido fabricado por
Feedback
La forma de actuar sobre el sistema desde el exterior para conseguir el
objetivo de control es imprimiendo movimiento al carro, lo cual se puede conseguir
utilizando, por ejemplo, un motor y un potenciómetro acoplados a un mecanismo
que introduce la fuerza al sistema. El mismo efecto se puede conseguir utilizando
una banda unida a un motor.
Para concretar las características físicas del dispositivo considérese que el
péndulo invertido está constituido por una bola de masa m unida a un eje mediante
una barra rígida de longitud l y masa despreciable (se supone que la masa del
péndulo se concentra al final de la varilla). El eje está situado en un carro de masa
M que puede desplazarse en la dirección horizontal. Se define el ángulo de
rotación de la varilla alrededor del punto de conexión con el eje como , y la
posición del carro se representa por x.
7.1.5. Control del sistema
El sistema que pretendemos controlar posee dos posiciones de equilibrio:
➢ una primera que podríamos considerar inestable, en la que la barra forma
un ángulo = 0 con respecto a la vertical (la varilla se encuentra en la
posición vertical y con el extremo hacia arriba,
es decir, en posición invertida),
➢ y otra que podemos decir que es estable, en la
que la barra forma un ángulo =
tomando como referencia la vertical (en este
caso la varilla se halla también en la posición
vertical, pero ahora el extremo apunta hacia Figura 7. Control de un
abajo). sistema en equilibrio estable
5
7.1. Descripción del sistema
La noción de estabilidad en este último caso es intuitiva: encontrándose el
péndulo “caído” (en la posición inferior), si se perturba (se mueve) regresará de
forma natural a la posición vertical, recobrando el equilibrio por sí solo.
En cambio, hallándose en la posición invertida, al sufrir tan sólo una pequeña
perturbación -un desplazamiento con respecto a la vertical-, el péndulo, que está
sometido a la fuerza de la gravedad, tenderá inmediatamente a abandonar dicha
posición, buscando el equilibrio estable, si no se compensa la perturbación
ejerciendo una fuerza de control adecuada.
En este trabajo tratamos de controlar la posición del péndulo, para mantenerlo
en la primera de las dos posiciones de equilibrio descritas, la que es inestable, que
es aquella en la que el extremo del péndulo se encuentra en el punto de equilibrio
superior. Pretendemos balancear la varilla de forma que mantenga un ángulo
mínimo respecto al eje vertical, compensando el efecto de la fuerza de la gravedad.
Además se podría incluir un segundo objetivo o especificación en el control, que
consiste en mantener la varilla en equilibrio hasta que el carrito alcance una
determinada posición final en su carrera. En cualquier caso, es necesario diseñar
una ley de control apropiada que permita automatizar la estabilización del sistema.
En un experimento cualquiera el péndulo parte de un determinado ángulo de
inclinación con una cierta velocidad angular inicial. La dificultad del control
depende de la magnitud del ángulo y de la velocidad, siendo más difícil el control
cuanto mayores sean éstos.
Para conseguir mantener en equilibrio la varilla en torno a la posición vertical
superior nos valemos de un método indirecto con el que actuar sobre el sistema.
En el sistema carro-péndulo podemos mover el carrito en uno u otro sentido en el
riel. Es decir, se puede modificar la velocidad lineal de desplazamiento del carro.
Para ello aplicaremos una fuerza horizontal sobre éste, de forma que se corrijan las
pequeñas desviaciones posibles del ángulo que forma el péndulo respecto de la
vertical. El actuador en un sistema es un dispositivo que puede influir en el
proceso. En este caso, en el sistema carro-péndulo el actuador es el motor que
propulsa el carro.
Las señales de salida del sistema son la posición angular del péndulo y la
posición lineal del carro (la velocidad angular del péndulo y la lineal del carro
pueden ser determinadas de forma indirecta por medio de la medición de estas dos
señales de salida). En el sistema real la señal de perturbación es la fricción
ocasionada por el aire o por otra circunstancia ajena al funcionamiento normal del
sistema. En un sistema físico es necesario utilizar sensores para medir la velocidad
lineal del carro y la posición angular del péndulo, para de esta forma poder
realimentar la señal de salida medida del sistema. Asimismo también hace falta
alguna forma de actuador que controle la velocidad lineal del carro.
6
7.1. Descripción del sistema
7.1.6. Modelo matemático
7.1.6. Modelo matemático
No contamos con la oportunidad de operar sobre un prototipo físico del
péndulo invertido, por lo que la obtención de la ley de control que perseguimos y la
puesta a prueba de los resultados hallados se realizarán mediante simulaciones.
Para efectuar estas simulaciones necesitamos un modelo matemático del sistema.
La deducción de las ecuaciones que conforman el modelo del sistema carro-
péndulo es bastante simple.
Es de destacar que el modelado realizado a partir de leyes físicas puede ser el
camino menos apropiado para el caso de muchos sistemas. Normalmente, es
extremadamente difícil considerar todas las leyes físicas que intervienen y, aún
suponiendo que esto fuera posible, el modelo resultante podría ser muy complejo y,
por consiguiente, difícilmente tratable por las técnicas de diseño de sistemas de
control. Por otra parte, en la práctica, las tolerancias de los elementos, desgastes,
fuentes de ruido no consideradas, etc., hacen que el comportamiento real nunca sea
el teóricamente previsto. La alternativa a este método consiste en la identificación
experimental, en la cual se considera el sistema como una caja negra. En esta
situación se realizaría un conjunto de experimentos que proporcionarían pares de
medidas de las entradas y salidas durante la evolución del sistema hacia un punto
de estabilidad, y a partir de este conjunto de pares de medidas se trataría de
determinar el modelo del sistema.
Pero, en el caso que nos ocupa, consideraremos ausencia de fricción y de
fuerzas disipativas, masas puntuales, ..., suposiciones que nos permitirán
simplificar el proceso de modelado del sistema, siendo posible realizarlo a partir de
las leyes de Newton o la formulación de Euler-Lagrange sin grandes dificultades.
En este problema se consideran fijos la masa del vehículo (M) , la masa del
péndulo (m) y la distancia desde el punto de rotación al centro de gravedad del
péndulo (l).
L=T −V
. . . .
1 1
L= M m x 2m l x cos I m l 2 2−m g l cos −1
2 2
Introduciremos en el Lagrangiano las siguientes constantes
02=m g l
= M m
=m l
= I m l
2
resultando
7
7.1. Descripción del sistema
. .
1 . 1 .
L= x 2 x cos 2−02 cos −1
2 2
Las ecuaciones de movimiento correspondientes son derivadas utilizando las
ecuaciones de Lagrange,
. .
d ∂L ∂L
q , q − q , q =0
dt .
∂q
∂q
donde
T
q= q1, , q n
representa las variables generalizadas, una para cada uno de
los grados de libertad del sistema,
T
= 1, , n denota las fuerzas que son aplicadas externamente al
sistema. Para el caso del péndulo invertido las variables generalizadas son x y
T
, es decir, q= x , .
Aplicando la ecuación y después de agrupar los términos, se generan las
ecuaciones no lineales para el sistema:
.. ..
x cos −02 sen =0
.. .. .
2
x cos − sen =u
La dinámica del sistema se puede describir por medio de ecuaciones
diferenciales ordinarias si se somete a las ecuaciones anteriores a una linealización
parcial y normalización
x˙1 =x 2
x˙2=sen x 1 −u cos x 1
x˙3=u
donde
x1 = es la posición angular del péndulo (ángulo entre la posición vertical
superior del péndulo y el vector que apunta al centro de masa, medido en sentido
anti-horario),
x2 = ̇ es la velocidad angular del péndulo,
x3 es la velocidad del vehículo
y u es la acción de control.
8
7.1. Descripción del sistema
Podemos considerar sólo el péndulo y eliminar la tercera ecuación.
x˙1 =x 2
x˙2=sen x 1 −u cos x 1
Como puede observarse en estas ecuaciones no existe una ecuación relativa a
la posición del carro. Esto es debido a que se pretende controlar la posición
angular del péndulo, estabilizando la varilla en la posición superior, sin importar
cuál sea la posición del carro. Esto puede hacerse gracias a la suposición de que el
sistema no está saturado horizontalmente (es decir, que el riel a lo largo del cual se
puede desplazar el carro no está acotado).
Figura 8. Dibujo de un péndulo invertido
9
7.2. Condiciones iniciales
7.2. Condiciones iniciales
7.2. Condiciones iniciales
7.2.1. Rangos y precisión de las condiciones iniciales
La tarea de control será más complicada cuanto mayor sea la magnitud del
ángulo de partida del péndulo y de su velocidad angular inicial.
Cada problema estará descrito por dos escalares, el primero de los cuales
representará el ángulo de partida del péndulo (medido en radianes con respecto a la
vertical) y el segundo hará referencia a la velocidad angular inicial del mismo (medida
en radianes por segundo).
En primer lugar es preciso especificar los rangos que pueden abarcar las
posiciones y velocidades iniciales.
Nuestro afán es que la posición inicial pueda ser cualquiera, es decir, se desea
encontrar una ley de control que permita estabilizar el péndulo partiendo desde
cualquier ángulo posible. O sea, que el ángulo de partida pueda estar entre − y
, cubriendo toda la circunferencia. Pero también se deben permitir otros
ángulos mayores, aunque cualquiera de ellos sea equivalente a uno que se pueda
situar dentro del rango anterior.
Pero estudiando las particularidades de nuestro problema podemos darnos
cuenta de que no resulta conveniente elegir un rango de posiciones iniciales mayor
que el que va de − hasta . Se da la circunstancia de que, por ejemplo, un
ángulo de partida situado entre 3 y 2 no tiene por qué ser “mejor”3 que otro
2
que esté entre y 3 , porque a pesar de ser de mayor magnitud, su
2
dificultad es menor. Por ello, que el algoritmo genético trate de maximizar la
aptitud de las condiciones iniciales, siendo ésta proporcional a la magnitud del
ángulo, no resulta ser una buena política, porque así realmente no se seleccionarán
los mejores individuos.
En cambio, si nos mantenemos dentro del rango [− , ] esto no puede
ocurrir, y la dificultad siempre será proporcional al valor absoluto del ángulo. De
esta forma, el problema se convierte en un problema de maximización, de la forma
natural.
3 Hablamos de unos ángulos mejores que otros en el sentido que ya explicamos anteriormente. Un
ángulo de partida es mejor que otro si es más “extremo”, es decir, si el péndulo se encuentra más
alejado del punto de equilibrio inestable (suponiendo que ambos son resolubles por alguna ley de
control). Es decir, la aptitud de un ángulo de partida es proporcional a la dificultad que supone.
10
7.2. Condiciones iniciales
Pero como lo que se pretende es encontrar una ley de control que pueda
estabilizar el péndulo partiendo de cualquier ángulo, no sólo de los situados entre
− y , lo que se puede hacer es lo siguiente:
En principio, para que un individuo del algoritmo genético caracterizado por
una determinada posición de partida obtenga un valor de aptitud no nulo debe
ocurrir que exista alguna ley que pueda controlar el péndulo partiendo de dicho
ángulo. Pues bien, podemos exigir que sea necesario además que dicha ley pueda
controlar el péndulo partiendo de otros ángulos de mayor magnitud pero
equivalentes.
Por ejemplo, para que un problema definido por un ángulo de valor x sea
recompensado por haber sido resuelto por alguna ley de control debe ocurrir que
dicha ley haya podido controlar también el péndulo partiendo desde los ángulos
2 x , 4 x , 6 x , ... De esta forma podremos hallar leyes de control
generales.
Otra alternativa es utilizar ángulos de partida mayores, fuera del rango
[− , ] , pero si hay que asignarles un valor de aptitud no nulo (porque haya
alguna ley de control que resuelva el problema correspondiente) el valor otorgado
será función de la magnitud del ángulo equivalente situado entre − y . De
esta forma ángulos grandes y relativamente fáciles no tendrán una aptitud mayor
que otros que sean más difíciles, por el simple hecho de ser estos últimos de menor
magnitud.
Pero esta forma de proceder presenta un inconveniente, y es que la población
de condiciones iniciales tiende a presentar una gran heterogeneidad, debido a que
aparecen individuos con valores de aptitud muy elevados asociados a ángulos muy
dispares. El funcionamiento que se observa en el algoritmo coevolutivo no es
adecuado en este caso, porque no pueden distinguirse las características de los
individuos que los hacen especialmente aptos. Es decir, no se pueden identificar
los bits cuyos valores son responsables de que la adaptación de determinados
individuos sea considerable. Esto redunda en un funcionamiento deficiente de la
operación de cruce.
Probadas ambas alternativas en la práctica, nos decantamos por la primera de
ellas, por ofrecer un mejor funcionamiento, debido seguramente al hecho
mencionado.
La elección del rango de velocidades iniciales ha sido aleatorio, imponiéndose
unas cotas razonables. Probamos con distintos rangos, siendo uno de los que
mejores resultados han proporcionado el rango [−2, 2 ] (radianes por segundo).
11
7.2. Condiciones iniciales
En realidad el rango de las condiciones iniciales utilizado es la mitad del que
se acaba de defender (es la parte positiva de los respectivos rangos). Cuando se
realizan las simulaciones para probar si una ley de control resuelve una
determinada condición inicial se exige que dicha ley resuelva simultáneamente la
condición inicial simétrica respecto de la posición de equilibrio (es decir, el
péndulo en una posición angular simétrica respecto a la vertical y con la misma
dirección de movimiento, subiendo o bajando). La aplicación de condiciones
iniciales simétricas evita la asignación de una aptitud generosa a aquellas leyes que
provocan un control “asimétrico” del péndulo.
En la mayoría de las ejecuciones de la aplicación se ha utilizado un número
de cifras decimales de 3 ó 4 para representar los números reales. Con sólo 2 cifras
decimales el funcionamiento del algoritmo también es satisfactorio.
7.2.2. Estructura de datos
[Link]. Cromosomas
Un problema queda definido mediante un par de valores escalares reales, de
los cuales uno corresponde a un ángulo y el otro al valor de una velocidad angular.
Dividiremos las cadenas de bits en dos partes, cada una de las cuales representará a
uno de estos escalares.
El número de bits dedicado a cada magnitud dependerá de la precisión
requerida y de la amplitud del rango de valores que pueda tomar.
Figura 9. Estructura de datos que representan a las condiciones iniciales
12
7.2. Condiciones iniciales
[Link]. Representación
Según la fórmula vista anteriormente, el número de bits necesario para
representar con 2 cifras decimales la posición y velocidad angular iniciales es de 9
y 8 bits, respectivamente (teniendo en cuenta que el ángulo inicial puede tomar
valores dentro del rango [ 0, ] , y la velocidad angular inicial tomará valores
dentro del rango [ 0, 2 ] ). Por lo tanto, el cromosoma completo tendrá una
longitud de 17 bits. Si se exigen 3 cifras decimales el número de bits necesario
será 23 bits (12 para representar el ángulo y 11 para la velocidad angular). Si se
piden 4 cifras decimales harán falta 30 bits (15 para cada escalar). Y así
sucesivamente.
7.2.3. Operadores genéticos
Al igual que se ha definido una estructura de datos particular para representar
las condiciones iniciales también parece conveniente crear operadores genéticos
especialmente diseñados para operar sobre estas estructuras, y comparar su
funcionamiento con el de los operadores proporcionados por la biblioteca
PGAPack (los operadores clásicos).
El diseño apropiado para la operación de cruce debe tener en cuenta que los
cromosomas están divididos en dos partes con significado independiente, cada una
de las cuales representa a un valor real. Cuando los cruces tradicionales (sean de
uno o más puntos) se aplican sobre esta estructura de datos no se tiene en cuenta
esta característica.
El operador de cruce creado efectúa el cruce de uno o más puntos sobre cada
parte de los cromosomas de manera independiente. Las pruebas realizadas sólo
permiten observar un buen funcionamiento de esta operación, pero no se puede
afirmar que sea mejor que con otras implementaciones clásicas.
7.2.4. Simulaciones
Las simulaciones se basan en el modelo lineal del péndulo invertido que se
acaba de describir en un apartado anterior, que está compuesto por dos ecuaciones
diferenciales ordinarias.
Para poder certificar que en una simulación se ha obtenido éxito o fracaso se
comprueba el valor de las variables del sistema, x1 y x2, al final de la simulación, y
se deduce a partir de estos valores la posición y estado de movimiento del péndulo.
Si el péndulo se encontrara detenido en la posición de equilibrio inestable
(verticalmente y con el extremo hacia arriba) diremos que la simulación ha tenido
13
7.2. Condiciones iniciales
éxito (y en caso contrario diremos que ha fracasado). En el primer caso, la variable
x1 tendría por valor 0 ó algún múltiplo de 2 .
Se permite un margen de desplazamiento del péndulo respecto a la vertical
(de valor radianes). Contemplando este margen de error la comprobación sobre
la variable x1 que se hace para averiguar si el péndulo se encuentra estable es la
siguiente:
∣cos x 1 −1∣
También se permite una leve velocidad angular.
7.2.5. Configuración del algoritmo coevolutivo
A continuación se proporcionan los valores y se indican las opciones que
mejor comportamiento han mostrado en las ejecuciones de la aplicación realizadas
durante esta etapa:
Normalmente se utilizará como semilla para el generador de números
aleatorios un valor proporcionado por el reloj del sistema. Pero durante
esta fase de configuración cuyos resultados se están describiendo se
prefirió repetir en algunas ejecuciones los mismos valores para la semilla,
para poder comparar el efecto de determinados cambios en la
configuración de algunos parámetros concretos (es decir, para conseguir
la reproducibilidad del algoritmo).
Las dos poblaciones se inicializan aleatoriamente en la primera
generación.
Se establece el número máximo de iteraciones como un criterio de
parada, para las dos poblaciones.
Se fija un número máximo de iteraciones igual a 1000.
Algunos de los parámetros tienen efecto exclusivamente en el funcionamiento
del algoritmo genético, como los siguientes:
La probabilidad de inicializar un bit a '1' es de 0.5. De esta forma la
generación de las cadenas de bits de la población inicial es totalmente
aleatoria sin ningún tipo de sesgo.
El número de cadenas nuevas creadas cada generación será de
aproximadamente el 10% del tamaño de la población. Una proporción
mayor deriva en que las condiciones iniciales no progresan de la forma
prevista en el diseño del algoritmo (es decir, adoptando valores que se
encuentran en la frontera de lo que puede ser resuelto por las leyes de
control de la población que coevoluciona con la de condiciones iniciales).
14
7.2. Condiciones iniciales
Los individuos que se copiarán de la población antigua en la nueva serán
seleccionados de entre los mejores. De esta forma se evita una posible
involución.
Ajuste de la tasa de mutación a un valor de 0.05.
Ajuste de la tasa de cruce a un valor de 0.85.
Ajuste de la probabilidad de cruce uniforme a 0.6.
Establecimiento del método de selección: mediante torneo, sesgado con
una probabilidad de que “venzan” los mejores individuos de 0.8.
Se permiten cadenas duplicadas en la población, porque, como ya se ha
explicado, es difícil que se produzca la coincidencia entre dos
condiciones iniciales, puesto que cubren un rango continuo de valores.
Establecimiento del tipo de aptitud utilizado: aptitud pura.
Otros parámetros sólo influyen en el ámbito de la Programación Genética,
como los siguientes:
Como los árboles con los que opera la Programación Genética pueden
crecer mucho, haciéndose muy grandes, para evitar desperdiciar el tiempo
evaluando unos cuantos árboles muy grandes, se pueden poner límites al
número de nodos y/o profundidad de los individuos. Se establece como
límite de profundidad máxima para los árboles un nivel de valor 7, que
resulta suficiente.
No se impone restricción sobre el número de nodos, pero, dada la
profundidad máxima permitida, el máximo número de nodos es
27−1=127 .
El método de generación de la población inicial será mixto.
Se utiliza una rampa de valores de profundidad (en lugar de un único
valor) para especificar el tamaño de los individuos creados en la primera
generación. La rampa vendrá especificada mediante el rango de valores
2-6, de forma que se generará el mismo número de árboles con cada uno
de los tamaños dados por los números enteros de este rango (el 20 % de
los árboles se generarán con profundidad 2, el 20 % se generarán con
profundidad 3, ... y así sucesivamente).
En la producción de una nueva generación se establecen tres fases: una
de cruce, otra de reproducción y otra de mutación.
Las tasas de aplicación de las operaciones que caracterizan cada una de
las fases distinguidas son: tasa de cruce igual a 0.8, tasa de reproducción
igual a 0.15 y tasa de mutación igual a 0.05.
15
7.2. Condiciones iniciales
Para las fases de cruce y mutación métodos de selección que presentan un
buen funcionamiento son el de aptitud proporcional a la aptitud y el de
torneo. Los individuos seleccionados para reproducirlos serán los
mejores de la población.
Se decide una partícula base sobre la que se construye el nombre de los
ficheros de salida, añadiéndoles las extensiones correspondientes. La
partícula es la cadena de caracteres salida.
7.3. Resultados
7.3. Resultados
7.3.1. Monitorización y presentación de resultados
Para analizar el funcionamiento del algoritmo, o estudiar el comportamiento
de las leyes de control obtenidas mediante el mismo, en las distintas ejecuciones se
producirán una serie de ficheros de salida , que se utilizan para recolectar cierta
información.
Aparte de estos archivos, lil-gp produce varios ficheros de salida por defecto,
que se utilizan para recoger medidas sobre el tamaño o la aptitud de los árboles de
la población de leyes de control en cada generación.
[Link]. La ley encontrada en una ejecución
En cada generación el árbol de mayor aptitud será sometido a una prueba para
determinar si con él se ha encontrado una solución general del problema. Esta
prueba consiste en simular el control del péndulo mediante la ley que representa
dicho árbol, partiendo desde distintas condiciones iniciales. Éstas formarán una
sucesión que cubrirá un rango de valores lo bastante amplio y denso4 como para
garantizar el éxito de la ley con cualquier otro estado inicial del péndulo, si ésta no
tiene problemas con el rango de prueba.
4 No es posible evaluar todo el rango de condiciones iniciales, ya que éstas están constituidas por valores
reales y, por lo tanto, el rango será continuo.
16
7.3. Resultados
En la práctica se utilizan ángulos que cubren el rango que va de −10 rad a
10 rad, con saltos de una posición a la siguiente de 0.05 rad. Se supone que el
que el péndulo parta con una determinada velocidad angular inicial no puede hacer
fracasar a una ley que haya podido controlar el péndulo desde posiciones tan
extremas como las incluidas en el rango indicado. La experimentación realizada
parece corroborar lo acertado de esta forma de proceder.
El resultado de esta prueba influye en el desarrollo posterior de la ejecución,
pudiendo abortar ésta si la conclusión es que la ley de control evaluada constituye
una solución satisfactoria para el problema.
Como resultado de la ejecución se produce entonces un fichero en el que se
escribe el árbol (en formato preorden) que representa a la ley con la que se resuelve
el problema. El nombre de este fichero será [Link].
[Link]. Evolución de las poblaciones
Sobre todo en las etapas de desarrollo y configuración del algoritmo fue
importante poder seguir la evolución de las condiciones iniciales. Para ello se
calculó el valor de la media de éstas en cada generación y se fue añadiendo este
valor a un fichero que se llamó [Link]. Al final de la ejecución (o incluso
durante el transcurso de la misma) se podía representar en una gráfica la evolución
de la media de las condiciones iniciales, pudiéndose estudiar la convergencia de la
población, los saltos evolutivos que se producían, etc. Conjuntamente en esta
gráfica se representa también la desviación estándar. De esta forma se puede
obtener una idea de la variedad genética existente en la población de condiciones
iniciales.
Cada cierto número configurable de generaciones (por ejemplo 5) se pueden
volcar todos los individuos de la población de leyes de control, lo que permite
comprobar la variedad que existe en dicha población, y prevenir la convergencia
prematura.
[Link]. Control ejercido
Siguiendo la trayectoria en el espacio de estados podemos comprender el
movimiento que realiza el péndulo hasta alcanzar una posición estable. En cada
momento podemos saber cuál es su posición y velocidad. Por ello durante las
simulaciones en las que se estime conveniente se produce un fichero (llamado
trayectoria) en el que se almacenan pares de valores constituidos por la posición y
velocidad angular en cada instante. Se representará esta información situando en el
eje de abscisas la posición angular y en el de ordenadas la velocidad.
17
7.3. Resultados
Se puede observar en este tipo de gráficas que cuanto mayor es el módulo de
la velocidad angular del péndulo más separados están los puntos que componen la
gráfica (en el eje de abscisas), porque el movimiento es más rápido y el péndulo
cambia de posición (reflejada por la variable x1) más rápidamente.
También es útil representar la señal de control que genera la aplicación de una
ley para controlar el péndulo. Se representará ésta frente al tiempo, medido en
centésimas de segundo. El fichero que contiene la información a representar se
llama control .
Otra gráfica que puede resultar significativa es la que muestra la evolución de
la posición angular con respecto al tiempo (fichero de nombre posicion). En esta
gráfica se pueden observar las oscilaciones que efectúa el péndulo y el tiempo que
tarda en alcanzar la posición de estabilidad.
La última gráfica que se produce es aquella que representa la señal de control
frente a la posición.
[Link]. Examen de los ficheros de salida
[Link].1. Observaciones significativas
Los principales aspectos que se estudian en las simulaciones y que se pueden
utilizar como criterio para evaluar el funcionamiento de una determinada ley de
control son:
✔ posición de referencia en la que tiende a estabilizarse el péndulo.
✔ la dinámica, es decir, la evolución de la posición angular en régimen
transitorio. Se aprecia que el movimiento controlado del péndulo sea
suave.
✔ máximo valor de la amplitud de la primera oscilación en el progreso de
la posición angular.
✔ tiempo consumido para alcanzar la estabilidad
✔ regularidad de la posible oscilación del péndulo durante el régimen
permanente
✔ amplitud máxima de la señal de control
✔ componente de ruido de la señal de control
✔ sencillez de las expresiones
18
7.3. Resultados
[Link].1. Reglas
Para interpretar la información generada en las distintas ejecuciones se han
tenido en cuenta ciertas reglas:
➢ No se aceptan conclusiones extraídas de una única ejecución, sino que,
para que se puedan establecer resultados concluyentes, se requiere que las
circunstancias precisas que sugieran cierta tendencia se repitan en un
número suficiente de ejecuciones independientes.
➢ Para poder estudiar el comportamiento y que se puedan identificar
constantes en él se utilizan medidas estadísticas (medias, medianas,...).
Por ejemplo, se estudia la media de los valores de las condiciones
iniciales en cada generación, siguiendo su evolución a lo largo del
tiempo, para poder utilizar un parámetro sencillo que permita conocer el
gradiente de aptitud de la población. Y esta medida se complementa con
la desviación estándar, para disponer de una idea del rango de valores que
cubren las condiciones iniciales en cada generación.
19
7.3. Resultados
7.3.2. Leyes obtenidas
[Link]. Propósito
Durante la propia fase de configuración del algoritmo descrita anteriormente
se obtuvieron, de forma no intencionada, algunas leyes de control que se
comportaban de una forma más o menos aceptable en algunos casos, y realmente
satisfactoria en otros.
Pero cuando se consiguieron las mejores formulaciones fue durante la etapa
que se acometió con este propósito exclusivo. Sólo en esta fase se realizaron
centenares de ejecuciones de la aplicación, para hallar toda una suerte de
soluciones posibles para el problema objeto del proyecto.
[Link]. Las expresiones de las leyes obtenidas
Del conjunto de leyes obtenidas se han extraído las más significativas,
entendiendo por tales aquellas que presentan las mejores aptitudes, y que
normalmente coinciden con las que mejor comportamiento muestran en la tarea de
controlar el péndulo invertido. De algunas de ellas se muestra el árbol que las
representa en la población del algoritmo.
Primera ley
2.42749 x 1 x 2
x 2
cos x 1
El árbol con el que aparecía representada esta ley en la población era el
siguiente:
/
+ +
* X2 cos X2
2.41749 X1 X1
20
7.3. Resultados
Segunda ley
( ( (sin ( ( (sin (X1)) * ( X2 - (X2 - 4.04615))) + X2)) * (X2 - (X2 -
4.04615))) + X2)
Si limpiamos la expresión anterior de algunos paréntesis innecesarios y la
ordenamos un poco obtenemos:
x 2 − x 2−4.04615 sen sen x 1 · x 2− x 2 −4.04615 x 2 x 2
El árbol que la representa es el siguiente:
+
* X2
sen -
+ X2 -
* X2 X2 4.04615
- sen
X2 - X1
X2 4.04615
La expresión anterior se puede simplificar, obteniéndose la siguiente forma:
4.04615 sen4.04615 sen x 1 x 2 x 2
Tercera ley
( ( (sin (sin (X1))) + (sin ( (sin (X2)) + (sin (X1))))) + (sin ( (sin (sin (X2))) + (sin
(X1)))))
Cuarta ley
( ( (X1 - ( ( X2 * (-1.83418)) + X1)) + 4.96829) * ( (sin (X2)) + (sin (X1))))
21
7.3. Resultados
Quinta ley
( ( ( (sin ( (X1 + X1) + X2)) + X2) + (sin (X2))) * ( ( (cos (X2)) / (cos (X2))) + (cos
(X2))))
Sexta ley
( ( ( (sin (X2)) + ( (sin (X1)) + X2)) + (sin (X1))) + ( ( (sin (X2)) + ( (sin (X2)) + (sin
(sin (sin (X2)))))) + (sin (sin (sin (X1))))))
Séptima ley
( ( (exp (X2 + ((cos (-3.45587)) * (sin (X1))))) * (sin (X2))) - ( ( ( log ( fabs
( -3.67022 ) ) ) / (1.04417 / 1.74675)) * ( (cos (-3.45587)) * (sin (X1)))))
Octava ley
( ( (cos (0.65758 / 0.57360)) + ((sin (X1)) + ((sin (X2 + (sin (X1)))) + ((sin (X2)) +
(sin (X1)))))) + ( ( ( (sin (X2)) + X2) + (sin ((sin (X2)) + (sin (X1))))) + (sin (sin
(X1)))))
Novena ley
( ( (exp (X2 + ((cos (-3.45587)) * (sin (X1))))) * (sin (X2))) - ( ( ( log ( fabs
( -3.67022 ) ) ) / (1.04417 / 1.74675)) * ( (cos (-3.45587)) * (sin (X1)))))
22
7.3. Resultados
[Link]. Análisis de algunas leyes
A continuación se describe el funcionamiento de algunas de estas leyes
encontradas, seleccionadas por distintos motivos (representatividad, eficacia,
sencillez, etc.).
Para probar una determinada ley se simula el control que ejerce sobre el
péndulo, partiendo éste de distintas posiciones angulares y con una cierta velocidad
inicial.
Dentro del estudio de estas leyes se pretende compararlas entre sí, para lo cual
se reproducirá la velocidad de partida en la mayoría de las simulaciones
( ±0.5 rad/s).
La primera de las leyes analizadas es la representada mediante el siguiente
árbol:
+
sen +
x1 sen +
+ sen sen
x2 sen
x2 x1
x1
La expresión que se puede interpretar a partir de este árbol es la siguiente:
( (sin (X1)) + ( (sin ( ( X2 + (sin (X1))) + (sin (X1)))) + ( (sin (X2)) + (sin
(X1)))))
Y si simplificamos la expresión anterior obtenemos la expresión final de la
ley que se pretende analizar:
2 sin (x1) + sin (x2) + sin ( x2 + 2 sin (x1) )
23
7.3. Resultados
En primer lugar, se estudian los casos en los que el control es más sencillo (es
decir, cuando el péndulo parte de una posición angular cercana a la verticalidad e
inicialmente está subiendo).
x1(0) = = 0.39 rad
8
x2(0) = -0.5 rad/s
x1(0) = 0.5 rad
x2(0) = -0.5 rad/s
En estos casos, la velocidad angular inicial del péndulo favorece el que éste
alcance la verticalidad por el camino más corto (es decir, continúa subiendo hasta
alcanzar la posición de equilibrio). El ángulo de inclinación del péndulo es
pequeño y está subiendo, por lo que el problema es relativamente fácil.
24
7.3. Resultados
En el último caso que se ha simulado (partiendo desde un ángulo x1(0) = 0.5),
en una primera etapa la velocidad del péndulo aumenta, hasta alcanzar un valor de
aproximadamente 0.54 rad/s, momento en el que el ángulo de inclinación se ha
reducido hasta unos 0.35 rad. Estando ya lo suficientemente cerca de la
verticalidad la velocidad comienza a decrecer. De hecho, si el ángulo de partida es
este último el péndulo no experimenta aceleración al principio, como podemos ver
en la siguiente gráfica:
Si la velocidad inicial del péndulo es lo suficientemente grande (algo mayor
que la máxima alcanzada en el caso anterior) tampoco se aprecia aceleración, sino
que la fase de frenado comienza desde el principio.
En este caso la máxima amplitud de la primera oscilación es mayor que en los
que se ha mostrado con anterioridad. Es de casi 0.1 rad).
25
7.3. Resultados
Partiendo de la posición x1= 0.5 rad (y con velocidad angular inicial x2 = -0.5
rad/s) la evolución que experimenta la señal de control a lo largo del tiempo viene
dada por la gráfica siguiente:
Podemos ver que la señal de control no toma valores muy grandes (de valor
absoluto siempre menor que 1).
También podemos representar la posición del péndulo (el ángulo x1) en cada
instante:
Vemos que en 2.33 s el péndulo se encuentra ya estable5 en su posición de
equilibrio (x1 = 0 rad).
5 Tomamos como criterio para determinar el momento en el que el péndulo ha alcanzado la estabilidad
que el ángulo que forma con la verticalidad sea menor que 0.025 rad, y que no vuelva a hacerse mayor
posteriormente.
26
7.3. Resultados
Si se parte desde la misma posición (x1= 0.5 rad) pero con la barra bajando a
la misma velocidad a la que subía antes (x2 = 0.5 rad/s) la reacción del péndulo es
frenar (lo que consigue rápidamente) e invertir su dirección (subir) hasta alcanzar
la verticalidad.
La desaceleración del péndulo cuando se encuentra cerca de la verticalidad se
puede generalizar para otros valores de velocidad iniciales, diciendo que el péndulo
comienza a frenar más tarde, y la velocidad máxima alcanzada también es menor,
cuanto menor sea la velocidad angular inicial del mismo.
Por ejemplo, para una velocidad inicial de -0.2 rad/s el ángulo para el que
comienza a frenar el péndulo es de algo más de 0.3 rad, y la velocidad máxima
alcanzada es de -0.43 rad/s.
27
7.3. Resultados
Además también podemos observar que la velocidad alcanzada en esta
aceleración es mayor cuanto mayor sea el ángulo de partida.
Por ejemplo, cuando el ángulo inicial es de rad, se alcanza una velocidad
4
de -0.67 rad/s, mientras que cuando se partía de un ángulo de 0.5 rad la mayor
velocidad alcanzada era de -0.54 rad/s.
También puede comprobarse que cuanto mayor es el ángulo de partida mayor
es la magnitud inicial de la señal de control. Por ejemplo, para el último ejemplo
(ángulo inicial de rad) la señal de control u toma un valor de 1.75, y si el
4
ángulo inicial es de 3 rad toma un valor de 2.3 :
8
28
7.3. Resultados
El tiempo que invierte el péndulo en alcanzar la estabilidad es de 2.8 s, si
parte desde un ángulo de valor x1 = rad, y de 3.41 s si parte de uno de valor x1
4
= 3 .
8
Si el ángulo de partida se hace aún mayor, haciendo que el péndulo esté aún
más cerca de la horizontalidad, no podrá inicialmente acelerar, sino que incluso
perderá velocidad, hasta que supere un ángulo de aproximadamente 1.25 rad,
después de lo cual seguirá el comportamiento explicado anteriormente (aceleración
y desaceleración consecutivas).
Este comportamiento se manifestará mientras el ángulo de partida no supere
el valor 1.514 rad.
29
7.3. Resultados
El tiempo que tarda el péndulo en alcanzar la estabilidad se hace mucho
mayor en este caso, porque tiene que remontar mayor distancia en contra de la
fuerza de la gravedad:
Tarda 8 s en encontrar el equilibrio.
El control es más enérgico en este caso:
Si el péndulo no tiene que superar la fase de desaceleración observada
anteriormente (lo cual ocurre siempre que el ángulo de partida sea inferior a 3
8
rad) el tiempo que tarda en alcanzar la estabilidad es muy parecido en todos los
casos (inferior a 4 s).
30
7.3. Resultados
Cuando el péndulo tiene inicialmente una velocidad positiva (está bajando) y
parte de un ángulo menor de 0.953 rad (para la velocidad angular de 0.5 rad/s)
tiende a frenar e invertir su dirección, pero le cuesta más (tarda más en frenar).
Durante la frenada el péndulo continúa bajando, hasta que su velocidad se
anula y comienza a subir. A los 6.7 s el péndulo ya se encuentra estable.
31
7.3. Resultados
Y si el péndulo está subiendo y parte de una posición muy cercana a la
horizontalidad (ángulo x1 = ), o de un ángulo mayor, buscará la posición de
2
equilibrio inestable por el camino más largo, es decir, se estabilizará con un ángulo
x1 = 2 .
El péndulo deja de subir y comienza a descender rápidamente, recorriendo
todo el camino que lo lleva hasta la posición x1 = 2 .
La estabilidad se alcanza en 6.28 s.
32
7.3. Resultados
En cambio, si el péndulo está bajando (velocidad angular inicial positiva)
debe partir de un ángulo mayor de 0.953 rad para que la posición de equilibrio se
alcance dando la vuelta al recorrido.
33
7.3. Resultados
El péndulo continúa bajando hasta dar la vuelta completa a la circunferencia,
alcanzando el equilibrio en 6.44 s.
De todas formas, estos ángulos límite variarán si utilizamos otros valores para
la velocidad inicial. Por ejemplo, se ha comprobado que para una velocidad
angular de partida de valor -1.5 rad/s (el péndulo está subiendo inicialmente) es
necesario superar un ángulo de 2.269 rad para que el comportamiento conmute.
Para una velocidad angular de partida de 1 rad/s el ángulo que hay que superar es
de sólo 0.664 rad.
En los casos en los que el péndulo recorre el camino más largo para alcanzar
la posición de equilibrio inestable, y una vez que el péndulo comienza a bajar, se
aprecia un aumento inicial de la velocidad (favorecido por la fuerza de la
gravedad), y no comenzará a frenar hasta que haya comenzado la subida (pasando
el ángulo x1 = ).
Cuanto más baja sea la posición desde la que parte el péndulo menores serán
las velocidades alcanzadas. Partiendo de un ángulo x1 = 5 rad la velocidad
8
máxima alcanzada fue de 2.5 rad/s, mientras que si se parte de un ángulo x1 =
6 rad la velocidad máxima ha sido de 2.3 rad/s. Estos valores de velocidad
8
máxima son independientes de que el péndulo estuviera subiendo o bajando
inicialmente.
34
7.3. Resultados
Este comportamiento se observa mientras el ángulo inicial del péndulo no
supera los 2.8294 rad (ni el ángulo simétrico). Cuando esta posición de partida es
superada el péndulo buscará el equilibrio en x1=0 o en x1= 2 , según sea su
velocidad angular inicial, positiva o negativa, respectivamente.
35
7.3. Resultados
Este ángulo límite aumenta al hacerlo la velocidad angular inicial.
El comportamiento descrito para el rango [ 0, ] se aplica de forma simétrica
en el rango [ , 2 ] .
36
7.3. Resultados
37
7.3. Resultados
Se puede comprobar que el comportamiento de esta ley es simétrico respecto
a la vertical. Es decir, la ley se comporta de la misma forma cuando las
condiciones iniciales son simétricas (ángulos simétricos y velocidades iniciales
38
7.3. Resultados
opuestas).
La siguiente ley que analizaremos es la que viene dada por la expresión
( ( ( 2*(sin (X2)) ) + (sin (X1))) + (sin (sin (X1))))
Usando esta ley el péndulo alcanza la posición superior de una forma más
suave. Por ejemplo, si se encuentra subiendo con la misma velocidad considerada
en las pruebas anteriores (-0.5 rad/s) y parte de un ángulo pequeño, por ejemplo de
rad, la desaceleración tiende a la linealidad.
4
39
7.3. Resultados
Se observa también que el péndulo apenas oscila al llegar a la posición de
equilibrio, lo cual es una característica apreciable.
La señal de control también necesita ser mucho menos enérgica que la que
controlaba en la misma situación la primera ley (un 24 % de aquella).
La contrapartida de esta ley es que se llega a estabilizar el péndulo más tarde
que con la anterior ley estudiada. Por ejemplo, para esta situación se tardan 4.07 s,
mientras que con la otra ley eran suficientes 2.8 s.
40
7.3. Resultados
Conforme aumenta el ángulo de partida la “cuasi-linealidad” de la
desaceleración anterior degenera de la siguiente forma:
En este último caso la señal de control sí se hace mayor
También en este caso la diferencia en el tiempo necesario para que el péndulo
41
7.3. Resultados
alcance la posición de equilibrio utilizando una y otra ley es mayor (unos 10.22 s
con la última y apenas 3 s con la primera).
Si el péndulo inicialmente se encuentra subiendo con la misma velocidad
(-0.5 rad/s) el ángulo que forma en un principio con la vertical deberá ser mayor
que 1.31 rad para que busque el equilibrio más lejano (recorriendo el camino más
largo para llegar a la posición superior).
También se observa que el péndulo oscila menos que con otras leyes para
encontrar el equilibrio.
En este caso el control ejercido será
42
7.3. Resultados
Si el péndulo está bajando inicialmente buscará el equilibrio por el camino
más corto si el ángulo de partida es menor que 0.75 rad.
43
7.3. Resultados
En caso contrario (el ángulo inicial es mayor que 0.75 rad) buscará el
equilibrio más lejano.
Este comportamiento se observa mientras el ángulo inicial del péndulo no
supera los 2.954 rad (ni el ángulo simétrico). Cuando esta posición de partida es
superada el péndulo buscará el equilibrio en x1=0 o en x1= 2 , según sea su
velocidad angular inicial, positiva o negativa, respectivamente.
44
7.3. Resultados
45
7.3. Resultados
Analizaremos en último lugar la siguiente ley, que llama la atención por su
sencillez:
4 x1 + 5 x2
Se ha llegado a ella reduciendo el límite de profundidad permitido para los
árboles de la población de leyes de control.
No se distingue por la eficiencia en cuanto al tiempo empleado en estabilizar
el péndulo, ni por la potencia de la señal de control, ni en la suavidad del
movimiento descrito por el péndulo, pero aún así merece destacarse por la sencillez
de la expresión.
Para ángulos de partida relativamente pequeños el funcionamiento de esta ley
es igual o más eficaz que el de cualquier otra de las estudiadas. Por ejemplo,
partiendo de un ángulo x1 = el control es casi lineal.
4
El control en este caso no requiere aplicar una señal de mucha amplitud.
46
7.3. Resultados
Y el tiempo necesario para alcanzar la estabilidad es de 4.02 s.
Si inicialmente el péndulo se encuentra bajando en lugar de subiendo el
movimiento que describirá será
El tiempo necesario para controlar el péndulo es ahora sólo un poco mayor
(4.69 s).
47
7.3. Resultados
Si el péndulo se encuentra inicialmente bajando (con una velocidad de 0.5
rad/s) hasta que no se alcance un ángulo de partida de 1.222 rad la estabilidad se
consigue a través del camino más corto (es decir, el péndulo se detiene de una
forma más o menos rápida y comienza a ascender hasta alcanzar la verticalidad).
Pero si el péndulo se encuentra inicialmente subiendo la tarea es más sencilla,
y el ángulo de partida límite para que ocurra el mismo fenómeno descrito es de
1.597 rad.
48
7.3. Resultados
A partir de posiciones angulares iniciales mayores el movimiento descrito por
el péndulo para alcanzar la estabilidad es más anómalo, recorriendo la
circunferencia completa para finalmente volver a la verticalidad por el mismo
camino.
Así, si el péndulo está bajando inicialmente y su ángulo de partida supera el
valor límite indicado anteriormente (1.222 rad) el movimiento del péndulo estará
descrito por la siguiente gráfica:
El péndulo sobrepasa ampliamente el ángulo x1 = 2 rad, y vuelve atrás por
el mismo camino persiguiendo la estabilidad en el ángulo x1 = 0 rad
La señal de control aplicada en este caso es la siguiente:
49
7.3. Resultados
Como consecuencia de tener que realizar todo el recorrido que efectúa el
péndulo en su movimiento el tiempo que se tarda en alcanzar la estabilidad es
importante (13.08 s).
Este tiempo es considerable teniendo en cuenta que el ángulo de partida está
dentro del primer cuadrante.
Si el péndulo está subiendo inicialmente su comportamiento será el mismo si
el ángulo de partida supera los 1.597 rad.
50
7.3. Resultados
Si se parte desde ángulos mayores a uno dado (3.853 rad ) el péndulo oscilará
alrededor de su posición de partida, hasta pasar sobradamente el ángulo x1 = 2
rad, para dirigirse hasta la posición x1 = 0 rad.
La amplitud máxima de la señal de control se hace importante en este caso.
Presenta picos de intensidad que pueden resultar peligrosos para mantener la
integridad del sistema físico.
51
7.3. Resultados
Las oscilaciones serán más numerosas cuanto mayor sea el ángulo de partida,
haciéndose máximo el número de oscilaciones cuando el ángulo inicial ronda el
valor x1 = 3 . En torno a este ángulo el control puede hacerse inestable.
2
En la señal de control se pueden observar las ondulaciones que acompañan a
las oscilaciones de la posición.
52
7.3. Resultados
Se perderá mucho tiempo en efectuar estas oscilaciones, por lo que el tiempo
necesario para alcanzar la estabilidad es considerable (21.23 s).
A partir de un ángulo inicial de 5.46 rad no se producen oscilaciones, sino
que la estabilidad se alcanza en x1 = 2 , es decir, siguiendo el camino más corto
teniendo en cuenta cuál es la posición de partida.
53
7.3. Resultados
7.3.3. Observaciones sobre las leyes de control obtenidas
Después de haber obtenido un grupo de leyes de control que son capaces de
controlar el péndulo se ha podido descubrir una serie de características que son
comunes a todas o a casi todas ellas:
• Se puede observar en las expresiones de las leyes de control obtenidas
que las funciones matemáticas que intervienen en ellas normalmente son
impares6.
Gracias a esto el control que se ejerce es simétrico respecto al punto de
equilibrio del péndulo. Es decir, que valores opuestos de las variables de
estado dan lugar a valores opuestos de la señal de control.
Esto se debe a que cuando se hace una prueba para comprobar si una ley
de control resuelve una determinada condición inicial, también se
comprueba que sea capaz de resolver la condición inicial simétrica. Sólo
si la ley es capaz de resolver las dos situaciones se considera que obtiene
éxito, por lo que sólo las leyes que consiguen esto prosperan en la
evolución.
Considerando esta última observación podemos eliminar del conjunto de
funciones primitivas las que son pares, evitando la generación de estructuras que
no tienen visos de triunfar. Este es un ejemplo de cómo, aunque no es
estrictamente necesario, la utilización de conocimientos específicos sobre las
características del sistema puede mejorar el funcionamiento de un algoritmo
evolutivo.
• También se puede comprobar que las variables x1 y x2 no están ninguna
de ellas ausentes en las expresiones de las leyes, por lo que se supone que
se puede generalizar y decir que para que una ley sea capaz de controlar
el péndulo debe incluir las dos variables del sistema en su expresión.
Se podría penalizar o incluso abortar las leyes de control candidatas de la
población en las que falte alguna de las variables del sistema, para así
ahorrar el tiempo y los recursos que consume procesar y evaluar estas
soluciones. Pero esto no constituye una política eficiente, dado que
requiere más dedicación (un esfuerzo computacional mayor) examinar las
leyes para encontrar aquellas que no tienen posibilidades de triunfar.
Además, se estaría reduciendo la variabilidad de la población, lo que
podría conducir a una convergencia prematura.
6 Al menos las funciones que afectan a las variables del sistema, aunque no las que afectan sólo a
constantes.
54
7.3. Resultados
• La frecuencia con la que aparece la función seno afectando a las variables
del sistema en las expresiones de las leyes es un hecho destacable.
Gracias a esto el control para ángulos que son equivalentes pero que no
están en el mismo rango ( [− , ] , [ , 3 ] , etc. ) es igual (la señal de
control actúa de la misma forma).
• Debido a los problemas propios de un sistema físico, en el que concurren
factores (como la fricción) que no se han considerado en el modelo
teórico ideal del péndulo que se ha utilizado en las simulaciones, es
posible que al aplicar las leyes de control obtenidas para controlar un
péndulo invertido real no se consigan los efectos previstos. El
comportamiento del péndulo puede variar con respecto al que se pudiera
esperar teniendo en cuenta las simulaciones efectuadas). Sin embargo,
esto no desmerita el trabajo, ya que éste aporta importantes resultados
teóricos.
• Las expresiones obtenidas admiten cierta simplificación en su forma (a
través de agrupaciones de términos, que permiten reducir su número). Es
decir, existe redundancia en las expresiones.
Este fenómeno mantiene una sorprendente analogía con los “intrones”
naturales descritos en biología. Los intrones biológicos (o “ADN de desecho”) son
segmentos de ADN no codificadores (es decir, que no participan en la síntesis de
proteínas). Su razón de ser no ha podido ser explicada de manera satisfactoria por
los biólogos, pero se cree que tienen alguna función que todavía no ha sido
descubierta.
En computación evolutiva se llama intrones a las partes de un cromosoma
que no influyen directamente en el valor de aptitud del mismo. En los árboles que
representan a las leyes de control halladas existen secciones que podrían suprimirse
sin que esto afectara al valor de aptitud de dicho árbol (la expresión representada
quedaría simplificada).
Tanto los estudios teóricos a los que se ha tenido acceso como la
experimentación realizada en el proyecto parecen sugerir que la presencia de los
intrones podría favorecer la recombinación y la protección de ciertos bloques
constructores existentes en los cromosomas. La evidencia existente parece indicar
que los intrones tienen un efecto estabilizador , mejorando la capacidad de los
algoritmos evolutivos para preservar los buenos bloques constructores.
55