Implementación de reguladores en sistemas expertos
RESUMEN
El control de procesos gracias a la introducción de técnicas de inteligencia artificial está propiciando una pequeña revolución: se están presentando nuevas vías de solución a problemas tradicionales de control, causados por la carencia de conocimiento preciso del sistema que se ha de controlar. Así es como nace el control inteligente de procesos, una disciplina en la que los métodos de control se desarrollan para emular algunas características importantes del ser humano, como la adaptación, el aprendizaje, el planeamiento bajo gran incertidumbre y el trabajo con gran cantidad de datos. Gracias a la utilización de sistemas expertos en estos procesos, se pueden abordar soluciones que hasta el momento no eran tratables. Los sistemas expertos son programas que imitan el comportamiento de un humano utilizando la información que el usuario le proporciona para darle una opinión sobre cierta materia. Una de sus ventajas es su capacidad de trabajar con grandes cantidades de información, que es uno de los problemas a los que se enfrenta el ser humano; el sistema experto, gracias a su velocidad de proceso, analiza todos los datos para aportar una decisión sólida.
Palabras clave
Inteligencia artificial, regulador PID, software, sistemas expertos, control de procesos.
ABSTRACT
The introduction of artificial intelligence techniques in process control is causing a small revolution, new ways are presenting themselves of solving traditional problems of control caused by a lack of precise understanding of the system being controlled. This has produced the concept of «intelligent process control», a discipline where methods of control are developed to emulate certain important human characteristics such as adaptation, learning, planning under great uncertainty, and working with large volumes of data. Due to the use of expert systems in these processes, it has been possible to address hitherto infeasible solutions. Expert systems are programmes which imitate human behaviour using the information which the user provides in order to give a reference point on the subject matter. One of the great advantages of expert systems is their capacity to work with large quantities of information, a problem for human beings, and thanks to their processing speed, expert systems are able to analyse all the data and, based on this, formulate a solid decision.
Keywords
Artificial intelligence, PID regulator, software, expert systems, process control.
Introducción
La ingeniería del conocimiento es una de las vertientes de los modernos métodos de la inteligencia artificial, ya que algunos aspectos del conocimiento son intangibles e inexplicables. El trabajo de sus ingenieros consiste en extraer este tipo de conocimiento de los expertos humanos y codificarlo, de manera que pueda ser procesado por un sistema, es decir, la ingeniería del conocimiento es aquella disciplina que ayuda a construir aplicaciones y sistemas orientados al aprendizaje, apoyándose en metodologías instruccionales y en tecnología de computación intentando representar el conocimiento y razonamiento humanos; así nacen los sistemas expertos.
Los sistemas expertos son programas que imitan el comportamiento de un humano. Utilizan la información que el usuario le proporciona para darle una opinión sobre cierta materia. Por tanto, el sistema experto le hace preguntas hasta que pueda identificar un objeto que se relacione con sus respuestas.
Sus inicios datan a mediados de la década de 1960. Los investigadores Alan Newell y Herbert Simon desarrollaron un programa llamado General Problem Solver (GPS) (solucionador general de problemas), pero este GPS no podía resolver problemas del mundo real tales como un diagnóstico médico.
Algunos investigadores decidieron, entonces, cambiar el enfoque del problema, centrándose en dominios de conocimiento muy concreto en lugar de computarizar la inteligencia general. De esta manera, nacieron los sistemas expertos.
A partir de 1965, un equipo dirigido por Edward Feigenbaum comenzó a desarrollar sistemas expertos utilizando bases de conocimiento definidas minuciosamente. Dos años más tarde se construyó Dendral, el cual es considerado el primer sistema experto. Su misión era identificar estructuras moleculares a partir de su análisis espectrográfico.
En la década de 1970 se desarrolló Mycin para consulta y diagnóstico de infecciones de la sangre. Este sistema introdujo nuevas características: la utilización del conocimiento impreciso para razonar y la posibilidad de explicar el proceso de razonamiento.
El éxito de un sistema experto depende casi exclusivamente de la calidad de su base de conocimiento. El inconveniente es que codificar la pericia de un experto humano puede resultar largo, difícil y laborioso.
Las ventajas que presentan los sistemas expertos es que son programas que proporcionan la capacidad de trabajar con grandes cantidades de información, que es uno de los grandes problemas a los que se enfrenta el analista humano y que puede afectar negativamente a la toma de decisiones, ya que el analista depura datos que no considera relevantes, mientras que un sistema experto, debido a su gran velocidad de proceso, analiza toda la información, incluyendo la que no es útil, para aportar una decisión más sólida.
Una de sus limitaciones más acentuadas es que para actualizar el sistema experto, es necesario reprogramarlo, además de que estos programas son poco flexibles a cambios y de difícil acceso a información no estructurada.
Arquitectura básica de los sistemas expertos
Un sistema experto se puede esquematizar según la figura 1.
Por razones prácticas, se suele diferenciar claramente entre la zona del sistema basado en reglas que se ocupa de contener el conocimiento general sobre el tema en cuestión y aquella que se ocupa de contener los métodos de razonamiento para operar, de un modo efectivo e independiente, con dicho conocimiento. A la primera de estas zonas se le
denomina base de conocimiento y se ocupará de contener y organizar dicho conocimiento. A la segunda se le denominará motor de inferencia y su misión será la de realizar las operaciones necesarias con dicho conocimiento para lograr el fin requerido por el usuario.
Base de conocimiento
Es la parte del sistema experto que contiene el conocimiento sobre el dominio. Hay que obtener el conocimiento del experto y codificarlo en esta base. Una forma clásica de representar el conocimiento en un sistema experto son las reglas. Éstas representarán las unidades de razonamiento de un experto ante ciertas variables, las consecuencias que pueden tener para algunas de ellas los cambios efectuados en otras, la relación causal entre los distintos hechos, las condiciones para que se dé un suceso determinado, etcétera.
Base de hechos (memoria de trabajo)
Contiene los hechos sobre un problema que se han descubierto durante una consulta. Representan los conocimientos existentes sobre las variables generales del sistema. Serán verdades indiscutibles, relaciones aceptadas entre dichas variables, distintos valores posibles para dichas variables y demás. Durante una consulta con el sistema experto, el usuario introduce la información del problema actual en la base de hechos. El sistema la empareja con el conocimiento disponible en la base de conocimiento para deducir nuevos hechos.
Motor de inferencia
El sistema experto modela el proceso de razonamiento humano con un módulo conocido como motor de inferencia. Éste trabaja con la información contenida en la base de conocimiento y en la base de hechos para deducir nuevos hechos. Contrasta los hechos particulares de la base de hechos con el conocimiento contenido en la base de conocimiento para obtener conclusiones acerca del problema, es decir, el motor de inferencia se encargará de utilizar de un modo ordenado dichas reglas para, a partir de una situación determinada, poder responder a las preguntas de un usuario, o aconsejar la acción más oportuna ante un cambio del entorno. Su función primordial será la de aplicar las reglas que intervengan ante una situación determinada y establecer los cambios producidos por ellas en la base de conocimiento.
Subsistema de explicación
Una característica de los sistemas expertos es su capacidad para explicar su razonamiento. Usando el módulo del subsistema de explicación, un sistema experto puede proporcionar una explicación al usuario de por qué está haciendo una pregunta y cómo ha llegado a una conclusión. Este módulo proporciona beneficios tanto al diseñador del sistema como al usuario. El diseñador puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema.
Interfaz de usuario y experto
En los sistemas expertos cada vez es más necesaria la existencia de unas cómodas interfaces que permitan comunicarlos con el exterior. La principal será la interfaz de usuario, cuya existencia permitirá una mayor comodidad y facilidad de comprensión de las operaciones realizadas por parte del usuario, características sin las cuales es incomprensible la existencia de un sistema de este tipo. Otra interfaz también necesaria será la existente con el ingeniero de conocimiento (experto) para facilitar la construcción del sistema.
La interacción entre un sistema experto y un usuario se realiza en lenguaje natural. También es tremendamente interactiva y sigue el patrón de una conversación entre seres humanos.
Control del razonamiento
Como ya se ha indicado, el motor de inferencia es la parte del sistema experto que se encarga de generar nueva información a partir de la información existente y de un conjunto de reglas de producción. La forma en que se realiza la obtención de la información se denomina control del razonamiento.
El control del razonamiento se encarga de establecer los mecanismos necesarios para resolver las situaciones de conflicto utilizados al examinar las reglas. Dos son los métodos de control del razonamiento utilizados mayoritariamente:
Razonamiento hacia atrás
Se utiliza fundamentalmente cuando se quiere confirmar o conocer el valor de unas variables determinadas del sistema. En este caso, las reglas son activadas para ver si, por medio de las relaciones que ellas establecen, se consigue calcular dicho valor. El procedimiento comienza por escoger aquellas reglas cuyos consecuentes apliquen algún valor a la variable buscada. Si los antecedentes de estas reglas son desconocidos, se examinan aquellas reglas que darían resultados sobre ellos. En última instancia, el sistema podrá preguntar al usuario por el valor de una cierta variable necesaria para conocer la veracidad de alguno de esos antecedentes. La búsqueda termina cuando no se encuentran más reglas relacionadas con el problema o cuando se encuentra una solución para el mismo.
Razonamiento hacia delante
Será utilizado fundamentalmente cuando se introducen los valores que toman una serie de variables en el sistema y éste evoluciona a partir de ellos para encontrar sus conclusiones. Las reglas van siendo activadas según se cumplen sus antecedentes y van modificando la base de conocimiento al afirmar sus concluyentes. El proceso termina cuando no quedan más reglas ejecutables.
Lenguajes
Para el diseño de los sistemas expertos, aunque puede utilizarse cualquier lenguaje de programación, dadas sus especiales características se han desarrollado lenguajes específicos. Entre ellos, los de mayor difusión son:
1. Lisp: definido en 1958 por McCarthy, ha sido el lenguaje más utilizado hasta este momento. Aunque es muy versátil y potente, presenta pocas facilidades para el usuario, no tiene motor de inferencia propio ni interfaz con el usuario.
2. Prolog: aparece en 1974 gracias a los trabajos de A. Colmerauer y P. Roussel, fundamentalmente, para la demostración de teoremas. A partir de entonces, ha tenido un gran desarrollo debido a su sencillez y a la incorporación de un motor de inferencia. Presenta dificultades para combinar programación convencional con la orientada a la lógica de predicados. Esto hace que no se haya utilizado en aplicaciones grandes y mucho menos en aplicaciones de control en tiempo real.
3. Smalltalk: como principal representante de lenguaje orientado a objetos, no ha sido utilizado como cabría esperar por la potencia y calidad del lenguaje. Hay muy pocos desarrollos industriales y comerciales basados en este lenguaje.
4. C: el lenguaje C, siendo de propósito general, está convirtiéndose en el más utilizado para el desarrollo de nuevas herramientas, así como para aplicaciones de inteligencia artificial que necesitan de velocidad y grandes dimensiones de memoria. Los compiladores de este lenguaje optimizan extremadamente el código.
Sistemas expertos en el diseño de reguladores
Lo que se pretende es utilizar estos sistemas para la diagnosis y sintonía de reguladores PID (siglas de proporcionalintegral-derivativo) en procesos cambiantes o con necesidades de resintonía frecuentes.
Un ejemplo simple de su utilización en un sistema de regulación de nivel consistiría en los siguientes pasos: si la salida del sistema se encuentra situado en un determinado valor de nivel y se desease aplicar un cambio de consigna determinado, se averiguaría si existe un caso similar de una situación anterior parecida a la actual.
Una vez seleccionado el caso más parecido a la situación actual, se comprobaría que la evaluación que se hizo del funcionamiento del regulador en el pasado fue buena. Y en caso afirmativo, se aplica esta misma solución a la situación actual.
En el caso de que la evaluación que se hizo en el pasado fuese negativa, nos estaría indicando que si se mantienen los parámetros del regulador para la nueva situación, probablemente no funcionará. En consecuencia, se ha de buscar algún caso que nos permita cumplir con las especificaciones de respuesta del regulador.
El hecho de aplicar unos nuevos ajustes al regulador PID, dado un cambio de consigna determinado, hará que se esté creando un nuevo caso y se pueda guardar dentro de la base de conocimientos. Formará parte de nuestro conocimiento del proceso y del regulador, de manera que en cualquier momento se podrá hacer uso de él.
Una vez aplicados estos nuevos ajustes al regulador PID, se evaluará la respuesta del proceso según las especificaciones de respuesta que se hayan establecido.
Para la comparación se podrían usar las especificaciones y evaluaciones obtenidas de las respuestas de cada situación. Si se parte de condiciones similares, los criterios de error y de control presentarán un parecido razonable.
En el caso de que aparezca una situación no esperada, esto puede deberse a cambios en el proceso, es decir, se pueden haber alterado las variables del entorno, se pueden haber producido perturbaciones en el sistema a controlar o, simplemente, se ha efectuado una mala sintonía del regulador. En cualquier caso, se ha de realizar una resintonía del regulador.
A continuación, se ven algunos ejemplos prácticos del uso de sistemas expertos en regulación de procesos.
Obtención de los parámetros de un PID usando Medal
El objetivo de este ejemplo es describir el desarrollo de un sistema basado en el conocimiento llamado Medal, que guiará al usuario en el proceso de diseño de un controlador, obteniendo los parámetros del mismo de diferentes formas y escogiendo, finalmente, la forma óptima, ya que el diseño de sistemas de control es extremadamente complejo.
Medal es una aplicación informática e interactiva cuyo lenguaje permite un estilo de programación similar al del lenguaje C.
El sistema basado en el conocimiento está dividido en diferentes módulos, tal como se muestra en la figura 2. El primero de ellos, se ocupa de obtener el modelo del sistema. A continuación, el usuario está autorizado a introducir las especificaciones de funcionamiento, aunque no es necesario incorporarlas todas. Después, se analiza el sistema con ayuda de las herramientas de análisis disponibles, entre las que se encuentran Bode, Nyquist y el lugar de las raíces. Cuando finalice el análisis, el usuario será llevado al módulo de diseño de control. Este módulo contiene varias técnicas de diseño de controladores, por lo que es muy útil para ayudar al usuario en el diseño. Cuando se ha obtenido el controlador, se analiza el sistema de compensación con el fin de comprobar si reúne las especificaciones dadas por el usuario, de manera que, si éste no queda satisfecho, el proceso de diseño puede repetirse. Existen diferentes modelos de diseño algunos de los cuales se detallan en la figura 2.
Diseño clásico
Usando este modelo pueden diseñarse varios tipos de compensadores que estarán divididos en tres categorías: controlador PID, redes de adelanto y redes de retardo. A continuación, se da una breve descripción de cada uno de los métodos:
1. Método de Ziegler-Nichols para la compensación PID. Éste es un método de afinación del controlador PID basado en un simple análisis de estabilidad. Años de experiencia en el diseño de control de procesos indicaron que este método es, en efecto, una buena técnica. Sin embargo, no permite al usuario diseñar un controlador PID para conseguir una conducta específica.
2. Método analítico de compensación PID. El método analítico puede determinar los parámetros del PID para satisfacer las especificaciones requeridas. Basado en el teorema del valor final, la ganancia integral Ki puede ser determinada por el estado estacionario del error. Los otros dos parámetros, Kp y Kd, pueden calcularse mediante el método analítico.
3. Método geométrico de lugar de las raíces. Este método está basado en reconstruir el lugar de las raíces del sistema añadiendo polos y ceros a la planta. Basándose en las relaciones geométricas entre la situación de polos y ceros del regulador y la situación del punto deseado, se determinan los parámetros del regulador. El inconveniente de este método es que la ganancia no puede ser predeterminada.
4. Bode. La idea básica en el diseño de Bode es ajustar la función de transferencia en cadena abierta de tal manera que tenga la baja frecuencia deseable (para el error en estado estacionario) y un adecuado margen de estabilidad. El objetivo de este método es alcanzar el margen de fase deseado. La ganancia del sistema compensado será determinada mediante el diagrama de Bode del sistema en cadena abierta. El inconveniente que presenta es que la ganancia no puede ser predeterminada.
Diseño de espacio de estado
El objetivo de la colocación de polos es moverlos de la planta hacia la localización especificada usando una condición de retroalimentación que permita alcanzar la respuesta transitoria deseada. La idea es usar la retroalimentación para que el sistema se corrija a sí mismo.
Aunque la localización de polos es una técnica simple y potente, tiene ciertas limitaciones. Cuando aumenta la complejidad del sistema, es prácticamente imposible tener en cuenta todos los estados. Para alcanzar una realimentación constante, se requieren sensores ideales con ancho de banda infinito, mientras que los sensores reales lo tienen limitado. Algunas veces es posible que ciertas condiciones del sistema no sean perceptibles. En estos casos, es práctico estimar las condiciones usando la entrada y la salida del sistema. Esto se consigue con un estimador de estado llamado observador. La ganancia del controlador se encuentra asumiendo que las condiciones del sistema están disponibles y, luego, un observador es designado para estimar estas condiciones. Finalmente, se usan estas estimaciones como realimentación del sistema, alcanzando así la estabilidad en cadena cerrada.
El observador de orden completo posee el mismo orden que el sistema, con lo cual, el observador estima todas las condiciones.
Para un sistema de orden n con m salidas, se necesita un observador de orden reducido. Esto permite que el regulador sea más simple y económico. Igual que en el caso del observador de orden completo, los polos en cadena cerrada son la unión del controlador y los polos del observador de orden reducido. Estos polos en cadena cerrada pueden colocarse para conocer las especificaciones de diseño independientemente de la situación de los polos y ceros en cadena abierta.
Puede notarse que, en general, los observadores reducen el margen de estabilidad.
Estructura del sistema Medal
El usuario comienza el proceso de diseño especificando la técnica de diseño que desea utilizar. El sistema basado en el conocimiento guiará al usuario en el uso apropiado de comandos, muestra de gráficos que dan información sobre el sistema y también le proporcionará consejos y explicaciones durante el proceso de diseño.
Centrándose en el diseño clásico, se puede dividir en cuatro capas. En la capa superior se da una introducción a los módulos de conocimiento y se pide al usuario que seleccione el proceso de diseño de su controlador. En la segunda capa, se da una introducción sobre el método de diseño seleccionado incluyendo también algunas sugerencias sobre el método en cuestión. Después de que el usuario haya seleccionado el método, se dirigirá a la tercera capa, en la que se examinarán las especificaciones de diseño. Si la especificación está incompleta o no es coherente, se puede pedir al usuario que introduzca las especificaciones requeridas paso a paso. Si éstas son datos indirectos de entrada del programa de diseño, el dato requerido se calculará automáticamente. La última capa está formada por programas de diseño, mediante los cuales se determinarán los parámetros deseados del controlador.
La base de conocimiento para el diseño de espacio de estado consta de tres módulos (figura 3). En el primero de ellos, Medal comprueba el sistema real y pide al usuario que especifique la localización deseada de los polos en cadena cerrada. Basándose en estas especificaciones, Medal se dirige al módulo de colocación de polos y regresa con el nuevo sistema en cadena cerrada argumentando la respuesta del sistema. A continuación, se pregunta al usuario si está satisfecho y, si no lo está, se le pide de nuevo la localización de los polos del sistema. Cuando el usuario quede satisfecho, Medal preguntará si se desea establecer un observador, en cuyo caso podrá elegir entre el diseño de orden completo o el de orden reducido.
En el diseño óptimo, inicialmente se representa el sistema en cadena abierta y el usuario elige entre los diseños de regulador cuadrático lineal (LQR) y gausiana cuadrática lineal (LQG). El primero de ellos hace una aproximación de la ganancia óptima de realimentación K, mientras que el segundo calcula tanto K como L, que es la ganancia óptima de Kalman. Los valores Q, R y N son diferentes en estas dos aproximaciones, y en el diseño LQR el usuario tiene que introducir (Q0, R0 y N0) para calcular L y (Q, R y N) para calcular K. A continuación, los ficheros M se relacionan para calcular K y L y, final-mente, se visualizan en pantalla, de manera que la configuración del sistema en cadena cerrada será computada y mostrada en pantalla. Si el usuario lo desea, puede ver la respuesta escalón y el diagrama de Bode del sistema resultante. Si la representación en cadena cerrada no es satisfactoria, el usuario puede cambiar los parámetros iniciales y probar de nuevo.
Conclusiones del sistema Medal
Se ha descrito un sistema basado en el conocimiento que ha sido implementado con Medal en el que están representados en ficheros M los cálculos y el algoritmo de control. Se han desarrollado diferentes técnicas de diseño basándose en módulos de conocimiento. Éste ha proporcionado una integración completa de diversas funciones tales como computación numérica, inferencia basada en el conocimiento, salidas gráficas y un enlace con sistemas de programas externos, así como una mejoría de la relación hombre-máquina que ha hecho el sistema más ameno y fácil de usar. Por último, ha proporcionado ayuda y directrices en el modelado, análisis, simulación y diseño de leyes de control.
Sistema de control de un servidor usando CLIPS
CLIPS es un lenguaje de especificación de sistemas basados en el conocimiento de sintaxis similar a Lisp y original-mente pensado para reglas, aunque las versiones actuales permiten, además, definir conocimiento mediante otros formalismos. El sistema dispone de un intérprete que permite escribir comandos de manera interactiva, opciones de ejecución y depuración de programas y puede mostrar información sobre el estado actual de la memoria de trabajo y las reglas activadas en cada momento.
El motor de inferencia de CLIPS es la implementación de un algoritmo de encadenamiento hacia delante. En concreto, implementa un algoritmo denominado Rete, que mantiene en memoria una red de condiciones y acciones que hace más eficiente la comprobación de qué reglas pueden ser activadas en cada momento.
En este ejemplo se describe un controlador basado en el conocimiento, en tiempo real, que ha sido desarrollado e implementado con éxito en un sistema de control de un servomotor.
El sistema descrito mantiene la velocidad constante a la salida de un servomotor de corriente alterna ante la presencia de variaciones paramétricas desconocidas. La velocidad se mantiene constante usando un sistema experto que modifica el controlador en tiempo real.
Estructura del sistema
El sistema experto CLIPS sustituye el voltaje del periférico por una señal de referencia y comienza a controlar la salida del motor. Si la velocidad se dirige a la salida deseada, CLIPS ajustará la constante de ganancia proporcional del PID para mantener la velocidad adecuada en estado estacionario.
La entrada analógica del procesador digital de señal es la señal realimentada del motor y la salida del procesador digital es la salida del PID (figura 4).
Requisitos del sistema
En primer lugar, el sistema debe permanecer estable ante cualquier perturbación; además, la respuesta estática del sistema debe realizarse a una velocidad constante y, finalmente, el regulador no debe necesitar modificaciones mientras el sistema esté en estado transitorio.
Funcionamiento del sistema
El programa está escrito de manera que la ganancia del PID pueda ser ajustada en cualquier momento durante el funcionamiento del sistema. Estas ganancias pueden variarse a través del procesador, escribiendo posiciones de memoria compartidas entre éste y el periférico.
Además, para implementar el PID y el sumador en tiempo real, el procesador digital de señal lleva a cabo ciertos cálculos en tiempo real. El propósito es abastecer CLIPS con la información sobre el sistema. La información suministrada es la desviación estándar de la señal de error y el promedio de ésta en las 512 muestras más recientes. Se usa para determinar cuándo el sistema ha alcanzado un valor constante en estado estacionario.
Mientras el periférico ejecuta este pro-grama en tiempo real, éste suministra al sistema experto la corriente de la desviación estándar de la señal de error en un segundo intervalo y si este valor es suficientemente bajo, CLIPS considera que el sistema está en estado estacionario. A continuación, CLIPS determina la velocidad de salida del motor. Si esta velocidad no se encuentra dentro de un margen correspondiente al ±5% de la deseada, CLIPS decide cómo modificar la ganancia proporcional. Las reglas se usan para hacer que la ganancia incorpore mecanismos de lógica humana y heurística, tales como las técnicas matemáticas.
Construcción de las reglas
El primer conjunto de reglas fue diseñado para establecer los valores iniciales del sistema e interpretar la señal de referencia deseada desde el teclado. Esto per-mite al usuario cambiar la señal de referencia mientras el sistema está funcionando, en lugar de tener que reiniciarlo.
Un segundo conjunto de reglas fue construido para evaluar la señal de error y determinar si es necesaria una corrección. Conociendo la entrada del sistema (U), la constante de realimentación (K) y la señal de error (E), la salida real del motor en rpm (Wa) se calcula usando la siguiente ecuación:
Wa = (U – E) / K (1)
Una no linealidad puede deberse a una región de banda muerta y una curva con pendiente. El sistema será linealizado alrededor del final de la región de banda muerta. La ganancia deseada se ha fijado en 280 r/min/V. La ganancia real del sistema (Ga) se calcula linealizando la entrada alrededor del final de la región de banda muerta, mediante la siguiente ecuación:
Wa = (U – E) / K (2)
El error (GE) entre este valor y el valor teórico para el sistema (Gd), se calcula mediante:
GE = (Gd – Ga) / Gd (3)
Se ha fijado una tolerancia del 5%. Un error fuera de esta tolerancia activaría otro juego de reglas mediante las que se determinaría una nueva ganancia proporcional para el sistema.
Nótese que una no linealidad entre la entrada y la salida en estado estacionario puede linealizarse ajustando el comando de la señal de referencia antes de aplicarlo al sistema.
Por último, se tienen otro conjunto de reglas que sirve para modificar la ganancia proporcional basándose en el error de ganancia determinada. Se usa una simple heurística para modificar la constante Kp.
Software intermedio
Las nuevas ganancias del sistema se escriben en un fichero de datos con el software CLIPS y son convertidas al formato apropiado y colocadas en el puerto dual de memoria del procesador digital mediante un programa intermedio. El resultado de usar este modo de comunicación es una reacción más lenta del sistema.
La última versión de CLIPS ha sido obtenida al incluir la fuente de código necesaria para integrar módulos de pro-grama escribiendo en lenguaje C en el sistema experto.
Actualmente, el tiempo transcurrido entre leer la información del sistema y escribir una nueva ganancia para el mismo es escasamente de dos segundos.
Para proveer a CLIPS de modos de señales de error y variaciones estándar alrededor de las últimas 512 muestras, se ha escrito un programa intermedio para leer posiciones de memoria actuales en el puerto dual de memoria del procesador digital de señal. Estos valores se convertirán después a formato decimal y se escribirán en un fichero de datos accesible para CLIPS.
Para permitir que CLIPS establezca la entrada del sistema, se escribe un programa intermedio para leer los ficheros de datos escritos por CLIPS y escribir esos datos en el puerto de memoria dual. Este valor se usa como señal de referencia para el sistema.
Conclusiones
El método de adaptación podría ser mejorado, lo que facilitaría que CLIPS recolectase hechos en su ejecución y, basándose en estos hechos, cambiar su método de ajuste de ganancia.
Actualmente, la sintonización de controladores basados en el conocimiento puede corregir la respuesta estable debida a ciertas perturbaciones desconocidas si se cumplen las siguientes condiciones. En primer lugar, la perturbación no debe causar que la velocidad de salida cambie de manera que vaya demasiado deprisa. Además, la respuesta estable del sistema debe ser una velocidad constante. Y, por último, el sistema debe permanecer estable para todas sus perturbaciones razonables. Si se reúnen estas condiciones, el controlador garantizará una velocidad estable dentro del 5% de su valor deseado.
Bibliografía
Pang-Granthan, K. H. «Implementation of a Knowledge-Based Controller for Hibrid Systems». Proceedings of the 32nd Conference on Decision and Contro., San Antonio (Texas) diciembre 1993.
Pang, Granthan, K. H. «An Expert Adaptive Control Écheme in an Intelligent Process Control System». Proceedings of the IEEE International Symposium on the intelligent Control. Arlington (Virginia), agosto 1991.
Finocchio, R. J.; Blauch, A. J.; Lorincz, T. S.; Meth, R., y Butz, B. P. «Implementing a Real-Time Knowledge Based Controller in a Velocity Controlled, Servo Motor Control System». Proceedings 5th IEEE International Symposium on Intelligent Control 1990. Vol2. p. 811-15.
Armda, L. V. R.; Luders, R.; Amaral, W. C., y Gomide, F. A. C. «A Knowledge-Based Environment for Intelligent Design and Supervising of Control Systems». Proceedings of the 26th Southeastern Symposium on System Theory, 1994. Cat. No.94TH05991, p. 276-80.