controlador digital para planta de amplificadores operacionales

12
Práctica No. 1: Implementación desde la consola de Arduino de un control PID digital (en diferencias hacia atrás,numérico,estandar y de velocidad) aplicado a una planta analógica. Armando Zavala BenítezjMarcos Infante Jacobo Diseño de Sistemas Mecatrónicos II j Departamento de Mecatrónica Resumen En esta práctica realizaremos el control de una planta analógica mediante controladores PID: en diferencias hacia atrás, numérico, de velocidad y tipo estandar programados en la consola Arduino TM , el programa se descargara a la tarjeta Arduino TM y este será conectado a la planta analógica; para monitorear la repuesta de la planta al controlador se conectara otro Arduino TM y mediante simulink obtendremos la respuesta del sistema. 1. Introducción Gracias a Arduino TM y su consola de programación muy parecida a lenguaje C nos ayudara a realizar y aprender una nueva forma de aplicar control a nuestros sistemas. Para ello en este caso programaremos en 4 diferentes formas al controlador PID, las cuales son: numérico, diferencias hacia atras(programacion directa), programación estandar y PID de velocidad. Todos estas formas de programar el PID en general son efectivas, salvo que algunas poseen ciertas ventajas que las otras no. Por ejemplo, en el Control de PID en la forma de velocidad no es necesaria la inicializacion cuando se conmuta de operacion manual a automatica. De este modo, si existen cambios subitos grandes(como una entrada escalón) en el punto de ajuste o en el inicio de la puesta en operacion del proceso, el sistema presenta mejores caracteristicas de respuesta que aquel en la forma posicional mostrado en la ecuación 2. Por otro lado, el controlador en programación estandar utiliza el menor numero de retrazos, al contrario de la programacion directa, con lo cual, se puede decir que trabaja en un tiempo mas aproximado al real que el segundo. 1

Upload: marcos-infante-jacobo

Post on 29-Sep-2015

19 views

Category:

Documents


4 download

DESCRIPTION

Practica en la que se pone a prueba diferentes metodos de control PID en tiempo discreto, como son: por aproximaciones numericas, en diferencias hacia atras, PID de velocidad entre otros.

TRANSCRIPT

  • Prctica No. 1:Implementacin desde la consola de Arduino de un control PID digital (endiferencias hacia atrs,numrico,estandar y de velocidad) aplicado a una

    planta analgica.

    Armando Zavala BentezjMarcos Infante JacoboDiseo de Sistemas Mecatrnicos II j Departamento de Mecatrnica

    Resumen

    En esta prctica realizaremos el control de una planta analgica mediante controladores PID: en diferenciashacia atrs, numrico, de velocidad y tipo estandar programados en la consola ArduinoTM , el programa sedescargara a la tarjeta ArduinoTM y este ser conectado a la planta analgica; para monitorear la repuestade la planta al controlador se conectara otro ArduinoTM y mediante simulink obtendremos la respuesta delsistema.

    1. IntroduccinGracias a ArduinoTM y su consola de programacin muy parecida a lenguaje C nos ayudara a realizar y

    aprender una nueva forma de aplicar control a nuestros sistemas. Para ello en este caso programaremos en 4diferentes formas al controlador PID, las cuales son: numrico, diferencias hacia atras(programacion directa),programacin estandar y PID de velocidad.

    Todos estas formas de programar el PID en general son efectivas, salvo que algunas poseen ciertas ventajasque las otras no.

    Por ejemplo, en el Control de PID en la forma de velocidad no es necesaria la inicializacion cuando seconmuta de operacion manual a automatica. De este modo, si existen cambios subitos grandes(como una entradaescaln) en el punto de ajuste o en el inicio de la puesta en operacion del proceso, el sistema presenta mejorescaracteristicas de respuesta que aquel en la forma posicional mostrado en la ecuacin 2.

    Por otro lado, el controlador en programacin estandar utiliza el menor numero de retrazos, al contrario dela programacion directa, con lo cual, se puede decir que trabaja en un tiempo mas aproximado al real que elsegundo.

    1

  • 2. ObjetivoEl objetivo de esta prctica es la de conocer como se realiza la programacin de un controlador PID en un

    lenguaje de programacin, que en este caso fu mediante la consola de ArduinoTM , as como tambien conocerlas ventajas y desventajas al usar las distintas formas de programacin.

    3. Desarrollo y anlisis de resultadosLa planta a controlar es la que se muestra en la gura 1, dado que el proposito de esta practica no es

    el modelar la el sistema, a continuacion se presenta el modelo obtenido en cursos anteriores, el cual quedaexpresado en la ecuacin 1 :

    Figura 1: Planta de Amplicadores Operacionales que simula el comportamiento de un sistema dinamico.

    () = 1001482 + 02015+ 1 (1)

    De igual forma en el curso pasado se obtuvieron las ganancias del controlador en tiempo continuo quesatisfacieran el comportamiento de nuestra funcin de transferencia de la planta analgica ( 1), como se sabe elcontrolador PID en tiempo continuo tiene la siguiente forma:

    () = () +Z

    0() +

    (2)

    Las ganancias obtenidas del controlador PID en tiempo continuo son las siguientes:

    ( ) = 0525( ) = 5

    ( ) = 00048

    2

  • Figura 2: Diagrama a bloques de adquisicin con Simulink-Arduino

    Dado que los controladores digitales son en tiempo discreto, se necesitan las ganancias del controladordiscretizadas, para ello se tienen ecuaciones (3), (4 ) y (5) que relacionan las ganancias continuas con lasdiscretas. Como ya se tienen las ganancias continuas, bastar con vaciarlas en las ecuaciones y as obtener lasganancias discretas. Ademas se necesita un tiempo de muestreo el cual ser de 10 milisegundos, i.e. = 10.

    = 2

    ( ) = 05 (3)

    =

    ( ) = 005 (4)

    = ( ) = 048 (5)

    Ya que tenemos las ganancias del controlador PID en tiempo continuo y discreto pasaremos a realizar laprogramacin desde la consola de Arduino. Como se coment anteriormente para esta prctica necesitaremos 2tarjetas Arduino, una de ellas fungira el papel de controlador digital, el cual llevara programado el algoritmo delPID, mientras que la otra adquirir la referencia y la respuesta de la planta para visualizar el comportamientodel sistema. Esta adquisicin se realizara con la ayuda de Simulink. La programacin de los bloques se muestraen la Figura 2.

    3.1. PID Numerico

    Al decir PID Numerico, no solo nos referimos a que el sistema sera digital, sino que la ecuacin del PIDcontinuo se aproximara mediante metodos numericos para poder asi llevarlo a un algoritmo programable, esdecir mediante la aproximacion de la parte integral la cual se hace por una sumatoria del error y la derivativapor una diferencia de errores sobre un delta de tiempo.

    Un punto a resaltar en este metodo es que, dado que el PID que se programara es una aproximacin de laspartes continuas del controlador, sera necesario utilizar las ganancias en tiempo continuo previamente obtenidas.

    3

  • La ecuacin que se utilizar para esta programacion ser la ec. 6

    () = () +X

    =0() +

    (6)

    Las aproximaciones de las dos partes(Integral y derivativa) y la forma del control se programaron en laconsola Arduino y se muestra en la Figura 3.

    Figura 3: PID en forma Numerica

    Ahora para probar nuestro programa procedemos a conectar nuestra planta con la tarjeta Arduino y metemosuna referencia variable para vericar si nuestro controlador esta funcionando como debe y lleve a nuestro sistemaa la referncia.

    La respuesta de nuestro sistema a una trayectoria dada se muestra en la Figura 4.

    Otra forma de corroborar que nuestro controlador realmente funciona es aplicar perturbacin a nuestraplanta y observar como el controlador elimina dicha perturbacin. La respuesta a esta perturbacin la cual eneste caso es negativa se muestra en la Figura 5.

    4

  • 10 15 20 25 30 35 40 45 50 550

    0.5

    1

    1.5

    2

    2.5

    3

    3.5RESPUESTA DEL SISTEMA CONTROLADO VIA PID NUMERICO

    Tiempo [s]

    Voltaje [V]

    TRAYECTORIARESPUESTA DEL SISTEMA

    Figura 4: Respuesta del sistema a una trayecroria dada.

    5 10 15 20 25 30 350

    0.5

    1

    1.5

    2

    2.5

    3

    3.5RESPUESTA DEL SISTEMA A UNA PERTURBACIN

    Tiempo [s]

    Voltaje [v]

    PERTURBACION DE -1V

    Figura 5: Respuesta del sistema con PID numerico ante perturbaciones negativas

    5

  • 3.2. PID Diferencias hacia atras

    El PID en diferencias hacia atras resulta de la discretizacin del PID en forma posicional de la ecuacin 2,y su obtencin se muestra a continuacin.

    () =()() = +

    1 1 +(1

    1) (7)()() =

    ( + +) ( + 2)1 +21 1 (8)

    1 = 10 = + +1 = ( + 2)2 =

    () = 0() + 11() + 22() 11() (9)

    Despues de obtener la ecuacin 9, se procede a pasarlo en diferencias o retardos, donde 1() = (1)

    () = 0() + 1( 1) + 2( 2) 1( 1) (10)Ahora basandonos en la ecuacin 10, pasamos a realizar la programacin en la consola de Arduino de nuestrocontrolador PID en diferencias hacia atras, para visualizar as la respuesta de nuestro sistema. La programacinse muestra en la Figura 6 .

    Figura 6: Algoritmo del PID en diferencias hacia atras

    6

  • Para vericar la efectividad del controlador se introdujo una trayectoria variable de voltaje a la planta deamplicadores, que es la referencia a la cual deseamos llegue la planta analgica. Los resultados medidos desde

    Simulink se muestran la Figura 7.

    5 10 15 20 25 30 35 400

    0.5

    1

    1.5

    2

    2.5

    3

    3.5

    4

    RESPUESTA DEL SISTEMA A UNA REFERENCIA, CONTROLADA VIA PID EN DIFRENCIAS HACIA ATRS

    Tiempo [s]

    Voltaje [V]

    REFERENCIARESPUESTA DEL SISTEMA

    Figura 7: Respuesta del sistema con controlador en diferencias hacia atras ante respuesta escalon

    Ahora para forzar un poco mas a nuestro controlador aplicamos una perturbacin negativa y asi observar sinuestro controlador PID puede eliminarla. El resulatado se muestra en la Figura 8.

    10 15 20 25 300

    0.5

    1

    1.5

    2

    2.5

    3

    3.5RESPUESTA DE LA PLANTA ANLGICA A PERTURBACIONES NEGATIVAS

    Tiempo [s]

    Voltaje [V]

    REFERENCIARESPUESTA DEL SISTEMA

    PERTURBACION DE -1V

    Figura 8: Respuesta del sistema con controlador en diferencias hacia atras ante perturbaciones negativas

    7

  • 3.3. PID de Velocidad

    En este apartado veremos otro mtodo para aplicar un controlador PID a nuestro sistema, el cual tiene pornombre PID de velocidad. Anteriormente se explico sobre sus caracteristicas y ahora nos interesa programarlodesde la consola de Arduino para comprobar su forma de trabajar, para ello necesitamos la ecuacin que lodescribe, la cual se muestra a continuacin:

    () = () +()()1 1 (1

    1)() (11)donde

    () : Esfuezo de control (12)() : Referencia del sistema() : Salida de la planta

    Posterior a esto, es posible agrupar los terminos de la ecuacin 11 para poder programarla en forma dealgoritmo computacional, la ecuacin a programar es la numero 13, y el codigo utilizado se muestra en la

    imagen 9.

    ()(1 1) = ()(1 1) +(()())(1 1)2() 1 = ( + +) + ( + 2)1 2 +

    () = ( + +)() + ( + 2)( 1)( 2) +() +( 1)(13)

    Figura 9: Algoritmo del PID en forma de velocidad.

    8

  • Una vez programado el arduino, se procedi a realizar la pruebas pertinentes (seguimiento de trayectorias ycompensacin de perturbaciones), las cuales se muestran en las guras 10 y 11.

    5 10 15 20 25 30 35 40 450

    0.5

    1

    1.5

    2

    2.5

    3

    3.5RESPUESTA DE LA PLANTA ANALGICA , CONTROLADA VIA PID DE VELOCIDAD

    Tiempo [s]

    Voltaje [V]

    REFERENCIARESPUESTA DEL SISTEMA

    Figura 10: Respuesta del sistema con controlador PID en la forma de velocidad ante una referencia variable

    5 10 15 20 25 30 350

    0.5

    1

    1.5

    2

    2.5

    3

    3.5RESPUESTA DE LA PLANTA ANALGICA A PERTURBACIONES NEGATIVAS

    Tiempo [s]

    Voltaje [V]

    REFERENCIARESPUESTA DEL SISTEMA

    PERTURBACION DE -1V

    Figura 11: Respuesta del sistema con controlador PID en forma de velocidad ante perturbaciones negativas

    3.4. PID en la forma estandar

    En este apartado programaremos y observaremos resultados de un controlador PID programado en la formaestandar. Como ya se mencion anteriormente, la principal diferencia con los anteriores metodos, es que estehace uso del menor numero de retardos posible, que el caso de nuestro sistema son 2.

    9

  • El metodo estandar parte de lo siguiente:

    ()() =

    ( + +) ( + 2)1 +21

    11 1

    ()() = ( + +) ( + 2)

    1 +2 (14)()() =

    11 1 (15)

    () = () 1() (16)() = ( + +)() ( + 2)1() +2() (17)

    con lo que ya es posible pasar la ecuaciones 16 y 17 a la forma de retardos de muestras como se muestra acontinuacin.

    () = ()( 1) (18)() = ( + +)() ( + 2)( 1) +( 2) (19)

    El algoritmo del PID de en su forma estandar se muestra en la gura 12, y los resultados experimentales(seguimiento de trayectorias y compensacin de perturbaciones) en las guras 13 y 14.

    Figura 12: Programacin del PID tipo estandar desde la consola Arduino.

    10

  • 5 10 15 20 25 30 35 40 450

    0.5

    1

    1.5

    2

    2.5

    3

    3.5

    4

    4.5RESPUESTA DE LA PLANTA ANALGICA,CONTROLADA VIA PID TIPO ESTANDAR

    Tiempo [s]

    Voltaje [V]

    REFERENCIARESPUESTA DEL SISTEMA

    Figura 13: Respuesta del sistema con controlador en forma estadar ante una trayectoria variable.

    5 10 15 20 25 300

    0.5

    1

    1.5

    2

    2.5

    3

    3.5RESPUESTA DE LA PLANTA ANALGICA A PERTURBACIONES NEGATIVAS

    Tiempo [s]

    Voltaje [V]

    REFERENCIARESPUESTA DEL SISTEMA

    PERTURBACIN DE -1V

    Figura 14: Respuesta del sistema con controlador en forma estandar ante perturbaciones negativas.

    11

  • 4. Conclusiones generales

    AUTOR:ARMANDO ZAVALA BENITEZ

    Una prctica muy nutritiva en cuanto a conocimientos, con temas nuevos y que ayudan en la experienciade la Ingenieria de Control que venimos tratando. Observamos los diferentes tipos de programacin de PID,que si bien no se ve mucho la diferencia, si nos sirven para diferentes casos de sistemas que queremos controlar,ya que sus caracteristicas se adaptan a casos especicos. Tambien interactuamos un poco mas con la consolade Arduino y el uso de dos tarjetas de la misma. En resumen se gano experiencia en el tema de controladoresprogramados.

    AUTOR:MARCOS INFANTE JACOBOEn conclusin se logro el objetivo de controlar la planta de amplicadores operacionales en forma exper-

    imental y utilizando controladores en tiempo discreto programados haciendo uso del lenguaje de programacinque maneja la plataforma de Arduino, asi pues, podria ser programado en cualquier otro tipo de microcon-trolador o microprocesador el cual cuente con memoria y recursos sucientes para el muestreo y salida de laseal.

    Ademas, fue posible observar las diferentes maneras que hay para programar un Controlador PID Digital, yla efectividad de cada una para controlar el sistema.

    5. Observaciones

    Como se podra recordar, la planta presentaba un ltro RC junto con un transistor en la entrada del sistemapara poder convertir la salida PWM del arduino(controlador) a voltaje analogico, esta vez se sustituy dichotransistor por un seguidor de voltaje (hecho con un aplicador operacional) a la salida del ltro RC, para asieliminar el oset que generaba el transistor, que era de aproximadamente 0.7 volts y que no permitia que larespuesta controlada del sistema llegara a cero.

    Otra observacin que si bien se sobreentiende, es el uso de saturadores en los algoritmos de control, loscuales son presentados como condiciones IF{ }Else{} en los cuales se le indica al sistema que el controlador nopuede dar una seal mas all de 5 Volts (PWM de 255 en el sistema de 8 bits), y asi evitar que el sistema deinestabilice o presente eventos extraos.

    Referencias[1] OGATA: Sistemas de control en tiempo discreto 2a edicin.

    12