PDA

Ver la versión completa : Ayuda!! Control de nivel pid



gbaldrich
04/02/2010, 15:45
Gracias por permitirme pertenecer a esta comunidad!!, Necesito su ayuda

Estoy realizando mi proyecto de grado que consiste en controlar el nivel en un tanque por medio de un PID programado e un S7-200. El tanque debe operar en condiciones normales en un nivel de 31cm(El tanque es de 70cm).

* Variable Manipulada: Velocidad de Bomba
se puede variar entre 10 y 20 VDC.(PWM)

* Variable Controlada: Nivel (operacion normal en 31cm)

La planta la puedo manipular en lazo abierto desde el SCADA WinCC modificando la velocidad de la bomba.

Para caracterizar la planta, la lleve a su punto de operacion aplicandole 14.6V(PWM) a la bomba y esperando que se estabilizara (31cm), a partir de ahi le aplico un segundo escalon de 1VDC(adicional) (PWM) para extraer las constantes PID de la misma.

En la foto de abajo pueden ver el comportamiento del segundo escalon, como se ve es de primer orden y uso el método de 62.3% del nivel de estabilizacion para obtener el modelo.

http://s4.subirimagenes.com/otros/previo/thump_4006984escalontanque1.jpg

segun eso el modelo seria algo asi

. . . ? . . .
137s + 1

Mi problema es que no se como calcular el numerador.

Dejo esta informacion abierta para que la evaluen me corrijan y me guíen.
Muchas Gracias!!!

lluisot
04/02/2010, 22:47
Hola , no acabo de entender lo de calcular el numerador .

Por lo que veo , tu quieres mantener el nivel de un tanque controlando la velocidad de una bomba . Hablas de PWM , quieres decir que utilizas la funcion PWM de Microwin para controlar la consigna de la bomba ?

Se supone que el tanque tiene una salida no ?
Hablas de variable manipulada ( consigna motor ) , variable controlada ( nivel ), y la salida decaudal del deposito , no seria otra variable manipulada , aunque sea manualmente ?

Como mides el nivel del tanque , con una analogica en el 200 ?

Saludos

lluisot

gbaldrich
05/02/2010, 17:42
La salida del tanque es fija no la puedo manipular,

solo quiero hallar el modelo completo pero no se como

la entrada de la bomba es por una señal PWM (Modulacion por ancho de pulso) varío su ciclo útil para suministrar los voltajes de entrada en el rango necesario.

gbaldrich
05/02/2010, 17:48
Mi interes principal es hallar las constantes PID para programar el controlador en el PLC.

No se muy bien como llegar a ellas.

Lo que intentaba era hallar el modelo para luego aplicar el metodo de oscilaciones sostenidas de Zeigler Nichols Para hallar ganancia y periodo critico y listo

Puedes ayudarme?

gbaldrich
05/02/2010, 17:59
http://i46.tinypic.com/14xkt1e.jpg

Aqui esta una imagen con la teoria que apoya lo que le digo

Espero me pueda ayudar

Muchas Gracias?

lluisot
05/02/2010, 21:39
Hola , has probado con el asistente Pid de Microwin ?

Herramientas / Asistente de Operaciones / PiD

De todas maneras , si la salida de caudal es fija, creo que no te haria falta un PiD , sino escalar la consigna de la bomba reduciendola a medida que te acerques al nivel .
Lo de las constantes pid dependerian de tu proceso, que en tu caso es casi constante , se trataria de verificar cuales serian las revoluciones de la bomba para una altura concreta ,siempre la misma ,puesto que a 31 cms , la salida de caudal sera siempre la misma , por lo que para mantener el nivel no podras bajar ni subir de un valor concreto de revoluciones .
Como mides el nivel ?
Como generas o varias en el motor el PWM , con el PLC y la funcion PWM ? ,o con una entrada analogica del driver varias la consigna del motor ?

Tambien tienes en Herramientas / Panel de sintonia Pid donde en teoria podrias ver la respuesta de tu sistema

Saludos

lluisot

lluisot
05/02/2010, 21:43
http://i46.tinypic.com/14xkt1e.jpg

Aqui esta una imagen con la teoria que apoya lo que le digo

Espero me pueda ayudar

Muchas Gracias?


Hola , me parece que en tu caso es un control P (proporcional ) .

A ver que dicen otros miembros del foro mas puestos que yo en temas de Control .

Saludos

Lluisot

Txispo
06/02/2010, 14:12
Hola,
veamos,
lo que tu buscas es la función de transferencia (F.D.T) del modelo matemático de la planta.

Para eso lo que has hecho es darle un escalón a la entrada y ver cómo se comporta en la salida.
Este tipo de sistemas se suelen modelar como una función de primer orden, o de primer orden mas tiempo muerto. en este caso, viendo la gráfica, es un primer orden de libro.

El numerador de la F.D.T. es (incremento de salida)/(Incremento de entrada),
luego si has subido 1V y el nivel se ha incrementado en 11cm, la ganancia de tu sistema será 11cm/v.
Obviamente la función no trabaja con voltios o cm de nivel directamente, sino que trabaja con voltios y cm de nivel respecto al punto de equilibrio
No obstante, observa que en realidad te has apartado bastante del punto de trabajo, por lo que quizás tu modelo no sea válido (esto es, los valores de K(ganancia) y Tao (constante de tiempo) solo son constantes en los alrededores del punto de trabajo, ya que el caudal de salida dependerá seguramente de la raíz cuadrada del nivel y eso hace que tu sistema no sea lineal.

La constante de tiempo tao está bien calculada (con tus datos me sale cerca de 137).
Una vez obtenido el modelo de la planta, para sintonizar el PID puedes utilizar métodos tales como Ciancone o "Ziegler-Nichols Lazo Abierto", aunque estos métodos te dan un valor aproximado que tendrás que retocar a mano.

La página de "Ingeniería de control moderna" de Ogata ( hay que citar a los autores ;-) )que has puesto no se corresponde con el método de Ziegler-Nichols de Lazo abierto, sino con el de lazo cerrado, que consiste en hacer oscilar a la planta y encontrar la pulsación con que lo hace (wc) y la ganancia (Kcr). No te aconsejo este método para este sistema. Justo antes que este método, te explica una variante del de Zielger-Nichols en lazo abierto, similar a otros basados en la respuesta escalón.

Por ultimo, recuerda que SIEMENS tiene unos bloques de "PID-Self Tunning" que tal vez puedan simplificar tu proyecto: el programa pone el sistema en manual, le da un escalon pequeño e identifica el sistema, proponiendo una nueva sintonía para el PID.



Saludos y suerte con ese proyecto.

gbaldrich
06/02/2010, 20:13
No obstante, observa que en realidad te has apartado bastante del punto de trabajo, por lo que quizás tu modelo no sea válido (esto es, los valores de K(ganancia) y Tao (constante de tiempo) solo son constantes en los alrededores del punto de trabajo, ya que el caudal de salida dependerá seguramente de la raíz cuadrada del nivel y eso hace que tu sistema no sea lineal.
.

Hola amigo muchas gracias por tu aporte, tengo una preguntaacerca de este párrafo. ¿Tengo que lograr una pequeña variacion lineal alrededor del punto de operacion? ¿que quieres decir con que el K y tao solo son constantes? ¿tengo que lograr que sean constantes?

Gracias

lluisot
07/02/2010, 18:51
Hola,
veamos,
lo que tu buscas es la función de transferencia (F.D.T) del modelo matemático de la planta .....

Para eso lo que has hecho es darle un escalón a la entrada y ver cómo se comporta en la salida.
Este tipo de sistemas se suelen modelar como una función de primer orden, o de primer orden mas tiempo muerto. en este caso, viendo la gráfica, es un primer orden de libro.

El numerador de la F.D.T. es (incremento de salida)/(Incremento de entrada),
luego si has subido 1V y el nivel se ha incrementado en 11cm, la ganancia de tu sistema será 11cm/v. .....


Hola , se nota que de esto entiendes un rato , quizas podrias explicarnos algo mas sobre esto ( la fdt o calculo del modelo matematico ) .

En mi caso , se algo sobre los Pid pero cuando miro teoria sobre el tema me pierdo un poco ( 1r, 2º nivel, etc) , por lo que agradeceria alguna explicacion ,como diría , algo más pedagogica para entender y aprender a identificar los diferentes tipos de planta para proceder a su calculo .

Quizas pido demasiado .

Un saludo

Lluisot

Txispo
09/02/2010, 00:32
Hola,

Entiendo que hablamos de un sistema de tanque de agua, llenado con una bomba (variable manipulada) y con vaciado por gravedad,

En ese caso, la diferencia entre el caudal de entrada (Qe) y de salida (Qs) tiene que ser la velocidad de llenado de tu tanque, o sea:
Qe-Qs=A.dh/dt, siendo A la sección del tanque.

Pero fíjate que el caudal de salida no es constante, y tampoco es proporcional a la altura. El caudal de salida de liquido por un orificio por efecto de la gravedad viene dado mas o menos como B.sqrt(h) [sqrt(h) significa raíz cuadrada de h], y B es una constante. (Esto lo calculó un tal Bernuilli)

De modo que tienes una ecuación diferencial de primer orden NO LINEAL:

A.h'-Qe+B.sqrt(h)=0

Como no puedes aplicar Laplace "a pelo", tienes que transformar esa ecuación en otra lineal, y la forma de hacerlo es fijar un punto de operación h0, y sustituir el término no lineal por su derivada para (h=h0). Es como si aproximases una curva a su recta tangente en un punto. Si no te alejas demasiado de ese punto, el resultado es aceptable.

La idea es fijar un punto nominal de operación y trabajar no con Qe y h, sino con "incremento de Qe" e "incremento de h" respecto al punto de operación.

En el libro que has citado antes ("Ingeniería de Control Moderna" del profesor Katsuhiko Ogata, de la universidad de Minnesota), tienes un buen ejemplo en el capítulo 3-10. Mírate el ejemplo A3-19 (Pág. 125), que es similar a tu caso.


En la práctica, lo que te ocurrirá es que para diferentes puntos de operación suficientemente alejados, el mismo ensayo te dará diferentes valores de K y Tao.
Con respecto al control: en mi opinión, este caso es un PI. Recuerda que un sistema de primer orden si utilizas un control P, no lograrás quitar el error estacionario (lógico, puesto que si alcanzases la consigna, el error sería 0 y la bomba se te pararía).
Tienes que usar un algoritmo que, ante error 0, se quede donde está, en lugar de irse a 0, y eso es un control PI.

Además, el PID de siemens tiene la ventaja que, al pasar de manual a auto, él solito inicializa la accion integral a un valor tal que la variable manipulada sea inicialmente igual al valor manual, lo que evita saltos al conmutar de manual a auto.

Yo no usaría accion derivativa, puesto que el nivel medido es susceptible de verse "contaminado" por olas en la superficie, y la acción derivativa amplificaría ese "ruido" de alta frecuencia en el error, y eso no es deseable.

Y respondiendo a Lluisot, la teoría de control tiene una carga matemática bastante importante, y no es nada fácil explicarlo en unas pocas lineas. Antes de escribir esto he intentado poner en un bloc de notas algunos conceptos básicos, pero me ha salido algo completamente infumable. Asi que quizás en algún momento yo (o algun otro del foro)podamos explicarte alguna duda concreta, pero intentar resumir un compendio de teoría de control en unas pocas lineas me resulta imposible.

Saludos,
Txispo

gbaldrich
10/02/2010, 00:40
Muchas gracias por su aporte, me es de mucha utilidad. aunque pregunto. Mido el nivel con un medidor de presion diferencial (naturalmentecon elpuntodemedicion enelfondodeltanque) que no es afectado por las olas de la superficie, aun asi no es viable el PID?

Txispo
10/02/2010, 21:04
En realidad, el problema de la acción derivativa no es el método de medición, sino el ruido. Si tu medio de medida es suficientemente lento como para filtrar los ruidos, (quiero decir, si las "oscilaciones" del tanque duran menos que la constante de tiempo del aparato de medida) podrias probar a meter algo de acción derivativa para acelerar la respuesta, pero creo que un PI ya te dará un resultado aceptable.

Como vas a usar un control de SIEMENS, es relativamente sencillo "atacar" al DB de instancia del controlador y probar. Step 7 ofrece una herramienta bastante útil "Parametrizar Regulación PID", que te permite graficar las respuestas y modificar los parametros del PID online.