Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQmx

Hello, I'm trying to control an experimental platform implementing closed loop with LabVIEW using DAQmx box-es. I have done with Matlab and the error is around 2 microns. When I have implemented the same closed loop with labVIEW, the error is araund 20 microns. i don't know if the diagram is bad or it is real-time problem. I've attached a VI, could somebody help me? I need to use labVIEW  for other similar applications. Thanck you
0 Kudos
Message 1 of 5
(3,829 Views)

Hi,

are you using a Real Time target or a Windows platform? which version of LabVIEW?

Could you send me the code you have implemented in LabVIEW for reviewing it?

Ciao,

Aitziber

0 Kudos
Message 2 of 5
(3,813 Views)
Hi Aitziber!

Supongo que  con ese nombre eres vasca asi que te escribo en castellano para explicartelo mejor. Yo he utilizado simpre Matlab pero estamos intentando implementar todo en LabVIEW. He implementado un lazo cerrado de control (o eso creo) y el error que obtengo es una década mayor que el que obtenía con matlab. Ahora bien, me dicen que el sistema que intento controlar es muy lento (sample time de matlab 0.01 y quizás no tenga necesidad de utilizar el real time,  de momento lo estoy haciendo en una plataforma de windows. No obstante, como te he comentado, el error es mucho mayor. Si controlas de labVIEW, ¿podrías ojear el código para saber si es un error de código o si por el contrario, tú crees que es cuestión del real time?

Muchas gracias
Download All
0 Kudos
Message 3 of 5
(3,805 Views)
Hola,
 
la comparacion entre LabVIEW y Matlab es complicada, y los tiempos de ejecucion entre ambos entornos puede variar en funcion de multiples factores.
El tiempo de ejecucion de cada iteracion de un bucle en LabVIEW depende del sistema operativo en el que se trabaje (Windows no puede bajar de 1 mseg mientras que los sistemas operativos de tiempo real ETS o RTX llegan a 1 microseg).
Para otro sistemas operativos puedes mirar en el siguiente enlace:
 
El tiempo tambien depende de lo que se ejecute en cada una de esas iteraciones y de como este desarrollado ese codigo.
En el caso de tu vi, seria conveniente que no usases un vi express como el de simulacion de señales porque los vi express llevan codigo adicional que puede ralentizar considerablemente la ejecucion.
Deberias buscar una alternativa con funciones de mas bajo nivel como el Basic Funtion Generator.vi, o incluso una formula directamente.
 
Ademas, Windows no es una plataforma que soporte la adquisicion Hardware Timed, tendrias que trabajar con un sistema en tiempo real (ETS o RTX) para poder usar este tipo de adquisicion.
Mi sugerencia es que trabajes en modo continuo. Si necesitas sincronizar la señal de entrada y la de salida, puedes encontrar ejemplos en modo continuo en el Find Examples de LabVIEW bajo Hardware Input and Output>DAQmx>Synchronization.
 
Para mejorar el tiempo, tambien te sugiero que saques del bucle todo lo que no es necesario que se ejecute en cada iteracion.
Es decir, si hay alguna operacion en la que solo deseamos el resultado final al acabar toda la sucesion de iteraciones, seria conveniente ponerlo fuera para que no consuma tiempo.
 
 
 
0 Kudos
Message 4 of 5
(3,796 Views)
Muchas gracias Aitziber. Voy a intentar hacer lo que tu me indicas y a ver qué pasa.  Ya te contaré en adelante.
Gracias
0 Kudos
Message 5 of 5
(3,783 Views)