LabView - Ejecucion de un PID?

 
Vista:

Ejecucion de un PID?

Publicado por Ángel (164 intervenciones) el 25/10/2010 06:43:42
Bueno la duda esque el PID.vi tiene un tiempo de muestre (dt),por lo que entiendo el PID se ejecuta según el "dt". Mi aplicación tiene un dt de 5 seg.

Pregunta: Si el PID.vi se ejecuta dentro de un While con un temporizador de 100ms, el PID se ejecuta cada 5seg + 100ms, o se ejecuta cada 100ms?.

Si el vi se ejecuta cada 5 seg solo uniendo una constante al dt, puedo generar dentro del while, una rutina con una "pelicula" para permanecer X tiempo encendida/apagada una variable digital (como un PWM), " o "esta rutina seria dentro de un segundo while en paralelo?.

Gracias por sus coomentarios.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecucion de un PID?

Publicado por Sergio Valerio (168 intervenciones) el 29/10/2010 00:51:53
Hola

Bueno con el temporizador, todo depende de si es "Wait (ms)" ó "Wait Until Next... (ms)" si después de eso esperara o no los 100 ms, me intriga el por que el dt normal de tu aplicación es de 5 segundos, meparece un tiempo muy grande (a expensas de que entendiera mal) como estas controlando esto?

Y no es recomendable el uso de la estructura de secuencia para problemas secuenciales (aunque esto parezca contradictorio) su uso recomendado es de inicialización.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecucion de un PID?

Publicado por Ángel (164 intervenciones) el 29/10/2010 03:20:39
Bueno el dt lo uso de 5 seg, porque en principio este era su dt, ademas de que el ciclo de tiempo es de 5seg, así calculo la salida cada 5 seg (puede que sea un error), debido al ciclo de tiempo, no se si sea un error pero creo que no es necesario calcular la salida en tiempos menores del ciclo de tiempo, o por lo menos eso no afectaria el control debido a que mientras calcula la salida de encendido ya tiene el tiempo que se calculo 5 seg antes.

Lo e planteado así:

1.-Calculo la salida del pid (siempre y cuando lo requiera) y con ello optengo los seg. que debe permanecer encendido en SSR.
2.-Mantengo el SSR activado de la siguiente manera mediante una pelicula:

1er cuadro=> Ciclo de tiempo - salidaPID en segundos = Activar SSR
2do cuadro=>activar SSR * 1000 = tiempo de encendido (alimentando un temporizador con un wait)
3er cuadro=>desactivar SSR*1000= tiempo de apagado (mediante wait).

3.- vuelve a ejectarse la pelicula mediante un ciclo while con un temporizador de 10ms.

Trate de hacer el PWM mediante Shif registers, pero no encontre la manera de activar y desactivar la ejecución, debido a que el while siempre estaba activado mediante una constante false.

Bueno no se si lo explique bien.

Gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar