Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

Jitter in rotating machine

Dear people,

 

I measure analog signals from a rotating machines (cylinder pressures etc.. from diesel engines). The analog signals are transformed from time domain to angle domain so that the x-axis is 0-360 deg. For that we have digital pick-up sensors which give one pulse per revolution for detecting individual cycles (0-360 deg).

 

My problem is a jitter, because our sampling frequency (20 kHz or something) does not detect the reference pick-up sensor enough fast.

 

I can use a digital start trigger for starting the data acquisition process but there is still a problem for detecting the rotating cycles precisely after the machine has been started.

 

Now my question is, that how I can get the time difference between the pick-up and analog sample clock. 

 

Or is there more clever way to solve this problem? I would like to put the analog signals precisely into the angle domain plot (0.01 deg would be ideal, 0.05 deg maybe OK). The engines are rotating 1000 RPM but can be faster too..

 

Our data-acquisition hardware is based on M-series USB-6218 OEM cards and I am using Measurement Studio 2010 for making the software.

 

Best regards,

Ilkka

0 Kudos
Message 1 of 5
(3,509 Views)

Hi!

I am afraid this task is not possible with your current hardware setup.

 

Using AIs to detect the position:

The engine rotates at 1000rpm = 16.6 Hz, so the time it takes to rotate by 0.01degrees is 1.6µs.

In order to be within this limit, you had to acquire the AI with 600kHz, which is not supported by the device.

However the 0,05deg resolution can be acquired with 120kHz. Since you want to acquire more than one channel,

this rate might not be available per channel.

 

Trigger:

I realize that after the trigger occurs it is difficult to determine the position because the engine can rotate at different speeds.

However, if you want to use the trigger there are a few things to consider:

On the USB-6218 there are 2 timebases that can be used to generate the AI sample clock: 20MHz and 100kHz. The selected timebase is then divided down to produce the AI sample clock.

When you use a trigger, it takes by default 2 ticks of the timebase before the first edge of the AI sample clock is generated. Then it takes 3 ticks to the first tick of the convert clock. So the

total delay is 5 ticks of the AI timebase before the first sample is acquired.

If you use the 100kHz timebase this means there is a delay of 5/100kHz = 0.05ms

When using the 20MHz timebase the delay is 0.25µs

Your requirement is to minimize the delay so the measurement starts within 0.01 degrees of the reference position.

The engine rotates at 1000rpm = 16.6 Hz, so the time it takes to rotate by 0.01degrees is 1.6µs

If you use the trigger, make sure you explicitly select the 20MHz clock as the AI timebase (Example howto do this see below)

 

Also see this resource

Delay Between Trigger and First Sample on M Series, X Series, and E Series Multifunction DAQ

http://digital.ni.com/public.nsf/allkb/4F5347018DBA372B862575210051EF1D?OpenDocument

 

Example:

NI-DAQmx: Using the DAQmx Trigger Start Delay Property Node

http://zone.ni.com/devzone/cda/epd/p/id/905#0requirements

 

I hope this information helped!

Greetings,

  Georg

0 Kudos
Message 2 of 5
(3,495 Views)

Hi Georg,

 

Thank you very much for your reply. I am not sure, how to explicitly select the 20MHz clock as the AI timebase. I checked the samples your referred, but I find from there only:

 

// Set up the timing

inputTask.Timing.ConfigureSampleClock("",

                                      Convert.ToDouble(rateNumeric.Value),

                                      SampleClockActiveEdge.Rising,

                                      SampleQuantityMode.ContinuousSamples,

                                      Convert.ToInt32(samplesNumeric.Value));

 

// Set up the start triggers

inputTask.Triggers.StartTrigger.ConfigureDigitalEdgeTrigger(triggerChannelComboBox.Text,

                                                            triggerEdge);

 

I am doing in that way.

 

An other question. I measure the position signal by the counter/timer. It has 80MHz clock.. if I remember right. Does it change anything?

 

So there are two tasks; one for the analog signals with the start trigger and another task for the counter task for detecting the pick-up pulses for the position measurement.

 

Best regards,

Ilkka

0 Kudos
Message 3 of 5
(3,484 Views)

Hi!

The property you need to set the timebase is called SampleClockTimebaseSource (I attached a picture of the DAQmx help).

Unfortunately I could not find any examples.

What exactly are you doing with the counter task? Are you just counting the revolutions of the shaft?

Greetings,

  Georg

 

0 Kudos
Message 4 of 5
(3,479 Views)

Thanks Georg,

 

your reply came just in time. I will go now to make some tests with real engines in a big vessel.

 

Have a nice day,

Ilkka

 

PS: If you have any recommendations for more suitable USB based hardware for us, please let me know.

0 Kudos
Message 5 of 5
(3,474 Views)