19
Trabajo Práctico N° 10 IMPLEMENTACIÓN EN LabView DE UN CONTROLADOR PID Breve introducción teórica: PID = Proporcional – Integral – Derivativo Es un tipo de control analógico, un controlador que satisfaga el modo de control analógico PID se caracteriza por una salida del controlador p(t) relacionada con la señal de error e(t) mediante la expresión: dt t de K p dt t e K t e K t p D t I I P ) ( . . ) 0 ( ) ( . ) ( . ) ( 0 + + + = (1) Donde KP no tiene dimensiones, K I se da en seg -1 y K D en seg. También se utiliza en muchas ocasiones el tiempo integral T I y el derivativo T D , los cuales vienen relacionados mediante expresiones inversas de KI y KD respectivamente: I I K T 1 = y D D K T 1 = (2)

Practica pid labview

Embed Size (px)

DESCRIPTION

Curso pid labview

Citation preview

Page 1: Practica pid labview

Trabajo Práctico N° 10

IMPLEMENTACIÓN EN LabView DE UN CONTROLADOR PID

Breve introducción teórica:

PID = Proporcional – Integral – Derivativo

Es un tipo de control analógico, un controlador que satisfaga el modo de control

analógico PID se caracteriza por una salida del controlador p(t) relacionada con la

señal de error e(t) mediante la expresión:

dt

tdeKpdtteKteKtp D

t

IIP

)(..)0()(.)(.)(

0

∫ +++= (1)

Donde KP no tiene dimensiones, KI se da en seg-1 y KD en seg. También se utiliza

en muchas ocasiones el tiempo integral TI y el derivativo TD, los cuales vienen

relacionados mediante expresiones inversas de KI y KD respectivamente:

I

IK

T1

= y D

DK

T1

= (2)

Page 2: Practica pid labview

Usaremos las expresiones (3) y (4) más adelante para implementar en LabView

los modos integral y derivativo.

Vemos, del gráfico que en rigor podemos implementar 4 tipos de control:

• Proporcional

• Proporcional + integral

• Proporcional + integral + derivativo

• Proporcional + derivativo

El quinto posible (integral + derivativo) no es posible, pues carece de la

amplificación de la señal de error.

� P: acción de control proporcional, da una salida del controlador que es

proporcional al error, es decir:

u(t) = KP. e(t)

que descripta desde su función transferencia queda:

CP(s) = KP (1)

Donde KP es una ganancia proporcional ajustable. Un controlador proporcional

puede controlar cualquier planta estable, pero posee desempeño limitado y error

en régimen permanente (off-set).

� I: acción de control integral: da una salida del controlador que es proporcional

al error acumulado, lo que implica que es un modo de controlar lento.

∫=

t

I deKtu0

)()( ττ

Que en el dominio de Laplace será:

s

KsC I

I =)(

La señal de control u(t) tiene un valor diferente de cero cuando la señal de error

e(t) es cero. Por lo que se concluye que dada una referencia constante, o

perturbaciones, el error en régimen permanente es cero.

� PI: acción de control proporcional-integral, se define mediante:

∫+=

t

i

PP de

T

KteKtu

0

)()()( ττ

Lo que en el dominio de Laplace será:

Page 3: Practica pid labview

)1

1()(sT

KsCi

PPI +=

Con un control proporcional, es necesario que exista error para tener una acción

de control distinta de cero. Con acción integral, un error pequeño positivo siempre

nos dará una acción de control creciente, y si fuera negativa la señal de control

será decreciente. Este razonamiento sencillo nos muestra que el error en régimen

permanente será siempre cero. Muchos controladores industriales tienen solo

acción PI. Se puede demostrar que un control PI es adecuado para todos los

procesos donde la dinámica es esencialmente de primer orden. Lo que puede

demostrarse en forma sencilla, por ejemplo, mediante un ensayo al escalón.

� PD: acción de control proporcional-derivativa, se define mediante:

dt

tdeTKteKtu DPP

)()()( +=

Lo que en el dominio de Laplace queda:

DPpPDTSKKsC +=)(

Cuando una acción de control derivativa se agrega a un controlador proporcional,

permite obtener un controlador de alta sensibilidad, es decir que responde a la

velocidad del cambio del error y produce una corrección significativa antes de que

la magnitud del error se vuelva demasiado grande. Aunque el control derivativo no

afecta en forma directa al error en estado estacionario, añade amortiguamiento al

sistema y, por tanto, permite un valor más grande que la ganancia K, lo cual

provoca una mejora en la precisión en estado estable.

� PID: acción de control proporcional-integral-derivativa, esta acción

combinada reúne las ventajas de cada una de las tres acciones de control

individuales. La ecuación de un controlador con esta acción combinada se obtiene

mediante:

dt

tdeTKde

T

KteKtu

DP

t

I

P

P

)()()()(

0

∫ ++= ττ

Que en el dominio de Laplace quedaría:

)1

1()( sTsT

KsC D

I

pPID ++=

Page 4: Practica pid labview

No vamos a entrar en el análisis de los métodos de Oscilación, o de Respuesta en

frecuencia, o de la curva de reacción o de la respuesta al escalón (ajustes de

Ziegler and Nichols). Por no ser tema de este curso, pero nos baste con saber lo

siguiente:

• Desde una perspectiva moderna, un controlador PID es simplemente un

controlador de hasta segundo orden, conteniendo un integrador.

• Descubrimientos empíricos demuestran que la estructura del PID por lo general

tiene la suficiente flexibilidad como para alcanzar excelentes resultados en

muchas aplicaciones.

• El término básico es el término proporcional, P, que genera una actuación de

control correctivo proporcional al error.

• El término integral, I, genera una corrección proporcional a la integral del error.

Esto nos asegura que si aplicamos un esfuerzo de control suficiente, el error de

seguimiento se reduce a cero.

• El término derivativo, D, genera una acción de control proporcional al cambio de

rango del error. Esto tiende a tener un efecto estabilizante pero por lo general

genera actuaciones de control grandes.

Aplicaciones / Ejemplo

Un ejemplo muy sencillo que ilustra la funcionalidad básica de un PID es cuando

una persona entra a una ducha. Inicialmente abre la llave de agua caliente para

aumentar la temperatura hasta un valor aceptable (también llamado "Setpoint"). El

problema es que puede llegar el momento en que la temperatura del agua

sobrepase este valor así que la persona tiene que abrir un poco la llave de agua

fría para contrarrestar el calor y mantener el balance. El agua fría es ajustada

hasta llegar a la temperatura deseada. En este caso, el humano es el que está

ejerciendo el control sobre el lazo de control, y es el que toma las decisiones de

abrir o cerrar alguna de las llaves; pero no sería ideal si en lugar de nosotros,

fuera una maquina la que tomara las decisiones y mantuviera la temperatura que

deseamos?

Page 5: Practica pid labview

Esta es la razón por la cual los lazos PID fueron inventados. Para simplificar las

labores de los operadores y ejercer un mejor control sobre las operaciones.

Algunas de las aplicaciones más comunes son:

• Lazos de Temperatura (Aire acondicionado, Calentadores, Refrigeradores,

etc.)

• Lazos de Nivel (Nivel en tanques de líquidos como agua, lácteos, mezclas,

crudo, etc.)

• Lazos de Presión (para mantener una presión predeterminada en tanques,

tubos, recipientes, etc.)

• Lazos de Flujo (mantienen la cantidad de flujo dentro de una línea o tubo)

Al implementar mediante software los términos integral y derivativo hay que tener

en cuenta que para poder representar de forma discreta mediante las

instrucciones del software que se utilice los valores deben aproximarse. El término

integral se aproxima teniendo en cuenta el método numérico trapezoidal de

integración (figura 1).

De la figura 1, es posible aproximar el término integral (área sombreada) mediante

la función:

TTkeTke

dtte

n n

k

.2

))1(().()(

0 0∫ ∑

=

++= (3)

Page 6: Practica pid labview

Por otra parte, la acción derivativa puede aproximarse mediante la regla de la

diferencia finita (figura 2).

El término derivativo se aproxima, por tanto mediante la expresión:

T

TkeTke

dt

tde )).1(().()( −−= (4)

Para ver la eficiencia del control PID, en esta dirección se puede ver un video de

equilibrio de una pelota en una bandeja, con y sin PID, implementado en labview:

http://www.youtube.com/watch?v=uERF6D37E_o

DESCRIPCIÓN DE LA PRÁCTICA.

Vamos a diseñar un IV que realice el clásico algoritmo de control PID

(proporcional-integral-derivativo).

La práctica consta de 5 ejercicios. En los primeros diseñaremos los VI que realicen

por separado los modos proporcional, integral y derivativo. En el cuarto se

implementará el tiempo entre muestra y muestra de las variables involucradas en

el controlador PID, y el quinto y último utilizará los cuatro anteriores para realizar el

algoritmo con el nombre PID.

Ejercicio 1: Creación de un sub-IV para implementar el modo proporcional.

Panel frontal:

Page 7: Practica pid labview

Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 3.

En este panel colocamos dos controles y un indicador con las etiquetas “Error”,

“Kp” y “Acción proporcional”, respectivamente.

Diagrama de bloques:

Cableamos como muestra la figura, luego de definir a los elementos como de

doble precisión, con lo que llegamos a algo como lo de la figura 3.

Panel Frontal Diagrama de bloques

Figura 3

Este VI se encargará de realizar la acción proporcional.

Para ello editaremos el ícono y lo cablearemos para guardarlo como un Sub VI,

con el nombre de

Proporcional.vi

Para lo que ejecutamos los siguientes pasos, dados en forma muy resumida, dado

que y fueron vistos oportunamente.

Editamos el ícono para

dejarlo como se indica

en la figura:

A continuación definimos y

cableamos los conectores de

Page 8: Practica pid labview

entrada y de salida al VI, y procedemos a salvarlo con el nombre de

proporcional.vi.

Con lo que nos quedaría:

Page 9: Practica pid labview

Ejercicio 2: Creación de un sub-IV para implementar el modo integral.

Panel frontal:

Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 4.

En este panel colocamos tres controles, un indicador y una booleana con las

etiquetas “Error”, “Dt”, “KI” y “Acción integral”, respectivamente.

Diagrama de bloques:

Armamos el diagrama que muestra la figura 5.

Figura 4

Figura 5

Page 10: Practica pid labview

Veamos ahora el único bloque que nos puede resultar desconocido:

Functions ����Numeric ����Compound Arithmetic ����Click derecho ����Change

Mode ����Multiply.

Este bloque es un operador aritmético de varias entradas, donde la operación

seleccionada es la multiplicación.

Al crear la estructura repetitiva While, en ella aparecen estos

dos íconos. Un índice de repetición (es el cuadrado azul “i”) y

un icono rojo de finalización. El bucle repetitivo While se

ejecuta mientras el icono rojo sea evaluado a “Verdadero”.

Nosotros haremos lo siguiente: click derecho sobre el botón

rojo y seleccionamos:

• Continue if True

• Create Constant

Otros elementos que pueden resultar novedosos

son los elementos que están en los bordes de la

estructura y se llaman registros de

desplazamiento.

Su misión es la de incorporar en la iteración

siguiente los valores obtenidos en la iteración

anterior. Para que aparezcan, hay que situar el

cursor y con click del ratón sobre el borde del

bucle y mediante su botón derecho seleccionar “Add Shift Register”.

Una vez hecho esto,

editamos el ícono para

dejarlos como se indica

en la figura:

Page 11: Practica pid labview

Definición de conectores: En el panel frontal, con el ratón situado en el área del

icono y hacemos click derecho y tomamos las siguientes

opciones:

• Disconnect All Terminals

• Patterns

Seleccionamos el que tenga 4 entradas y 1 salida.

Y cableamos los terminales en

forma secuencial el conector y el

terminal del ícono del panel frontal

que se desea asignar a dicho

conector. Realizando, en particular,

las siguientes asignaciones:

Ahora lo salvamos con el nombre de Integral.vi, para usarlos luego:

Page 12: Practica pid labview

Ejercicio 3: Creación de un sub-IV para implementar el modo derivativo.

Panel frontal:

Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 6.

En este panel colocamos tres controles y un indicador con las etiquetas “Valor

anterior”, “Dt”, “Kd” y “Acción derivativa”, respectivamente.

Diagrama de bloques:

Armamos el diagrama que muestra la figura 6.

Figura 6

Editamos el ícono para que

nos quede como muestra la

figura

Hacemos la selección del ícono de

terminales como se vio en el caso anterior

y cableamos como vemos en esta figura.

Salvamos con el nombre de Derivativa.vi

Page 13: Practica pid labview

Ejercicio 4: Creación de un sub-IV para implementar el tiempo entre muestras.

Panel frontal:

Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 7.

En este panel colocamos un indicador con la etiqueta “Dt”.

Diagrama de bloques:

Armamos el diagrama que muestra la figura 7.

Figura 7

Donde el tiempo lo tomamos de la paleta:

Functions ����Timing ����Tick Count (ms).

Ahora creamos

nuestro sub VI

modificando el ícono

como lo vemos en la

figura.

Y lo cableamos de la siguiente manera

Y lo guardamos con el nombre de Tiempo.vi:

Page 14: Practica pid labview

Ejercicio 5: Creación de un sub-IV para implementar el control PID.

Panel frontal:

Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 8.

Dicho panel está formado por iconos de tres tipos: indicadores, controles y

“waveform chart”.

Figura 8

Diagrama de bloques:

Armamos el diagrama que muestra la figura 9.

Figura 9

Page 15: Practica pid labview

Los elementos que pueden resultarnos nuevos:

Functions ����Comparison ����In Range and Coerce.

Que evalúa el rango de la salida.

, , , Functions ����Select a VI ����Buscar la carpeta donde

esté guardado el VI correspondiente.

Ahora editaremos el

ícono para crear el

símbolo de nuestro VI.

Lo cablearemos:

Y lo guardaremos bajo el nombre de PID básico.vi

Page 16: Practica pid labview

Ejercicio 6: Control de lazo cerrado con PID y NI USB 6008

Vamos a trabajar con nuestra placa USB 6008. Para ello vamos a adquirir datos

de entrada, ejecutar un algoritmo de control (PID) y con ello generar una respuesta

por la salida analógica.

Para ello vamos a colocar en el panel frontal un Wave Form chart (Modern �

Graph � Wave form chart). Configuramos el valor mínimo (0) y el máximo (6) que

queremos mostrar. Con click derecho seleccionamos Y Scale y destildamos

Austoscale Y.

En la ventana de los diagramas de bloques abrimos el DAQ assistant y

seleccionamos como entrada analógica de tensión a ai0, en la configuración

mantengo el rango de -10 V a 10 V y elijo entrada referencial (RSE), y en el modo

de adquisición, una muestra a la vez:

Page 17: Practica pid labview

De la misma forma, creamos ahora nuestra salida, eligiendo el canal ao0, en la

configuración seleccionamos entrada referencial (RSE), y en el modo de

adquisición, una muestra a la vez, si es que no está definida por defecto.

Page 18: Practica pid labview

Y ahora seleccionamos el algoritmo de control, para ello vamos a usar el que

desarrollamos, para ello hacemos click derecho para desplegar el menú y

seleccionamos Select a VI . . .

Y en la pantalla que se abre seleccionamos: PID Basico.vi:

Quedándonos ahora la siguiente pantalla en el diagrama de bloques:

Page 19: Practica pid labview

Adaptar el sistema para que la entrada provista por la placa genere la salida de

corrección a través de instrumento PID Básico y muestre ambas en el indicador

gráfico.