LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to smoothing graph

Solved!
Go to solution

Hi everyone i'm new for LabVIEW

i've try to measure the temperature by using thermocouple type-E via NI DAQ-6003.

And as you see in the picture below i've float my thermocouple in room temperature

the graph not smooth enough to use for my project.

How can i do to fix this problem.

Thanks.result.png

0 Kudos
Message 1 of 16
(5,633 Views)

Firstly, I would suggest slowing down the rate a lot. I don't think the timescale that you're looking at temperature changes on is really likely to be 2ms.

 

Since you're using DAQ Assistant and posted a picture, we can't see any of your acquisition settings. Is this configured to measure and convert voltage from the correct thermocouple to temperature?

 

How long are your connections between the thermocouple and the acquisition board (6003)? The voltage output by a thermocouple is really tiny, so any electrical noise very quickly dominates the signal. Long leads tend to accentuate this problem. Changing material in the wire will lead to an offset error, but not fluctuations. Does the DAQ-6003 compensate for cold junction, or are you missing that step? 5-10 deg seems like a pretty cold room, even in C.

 

 


GCentral
0 Kudos
Message 2 of 16
(5,617 Views)

This is my config of DAQ. as shown below.Config.png

 

and the result when i reduced rate and number of sample.reducing rate n numSam.png

the length of connecting wire is about 24 cm.

 

0 Kudos
Message 3 of 16
(5,604 Views)

The USB 6003 has an absolute accuracy of 6mV typical and noise of 0.4mV RMS.

A type E thermocouple's voltage outputs between 0 and 30 deg C vary by 1.8mV.

It looks like you have 6 readings over that range, which would suggest you're measuring down to 0.3mV - this is consistent with a 16 bit adc (as in the 6003) over +-10V (20 / 2^16 = 3e-4 = 0.3mV).

 

To try and improve your measurement, you need to reduce the width of the input, and preferably amplify the signal by a large (known!) factor close to the thermocouple.

 

Measuring a change of a few degrees with a thermocouple requires detecting a change on the order of tens of microvolts. To be honest, they're a terrible sensor for trying to make accurate temperature measurements over a narrow span of temperatures.

 

If you can, I would strongly recommend a thermistor or RTD for room temperature measurements. If you can't, then do what you can with signal conditioning, amplification and averaging. Perhaps you'll get something vaguely usable, but with the 6003 and no amplification, the best you can hope for is on the order of the 0.4 mV noise, which is already +- 5 deg C with a Type E thermocouple.


GCentral
Message 4 of 16
(5,600 Views)

Thank you c butcher.

actually my project is to measure and record temperature data(via USB 6003) from soldering machine

with range  25 deg C(room temp or steady-state temp) to ~700 deg C. The soldering machine

temp can rise-up and cool-down in a few second (this mean it can rise temp up to ~700 deg C

from steady-state temp in a second and vice-versa). My problem is when the thermocouple in

steady-state(room temp) as you've seen i can't ensure temp in this state and this mean that when

i need to reference the temp in steady-state ... the data can't be use. So i need to make it accurate

but for now i still have no idea.

0 Kudos
Message 5 of 16
(5,581 Views)

Ah - I see. Well, at least that should be easily distinguishable! However, I'm still confused as to your requirements.

 

How accurately do you want to know the temperature? How quickly do you need to respond to a change? You mention a few seconds - are you meaning that you're turning the soldering machine on and off repeatedly and you need response times on the order of a second?

 

Is your goal just to determine when the thermocouple (presumably measuring iron tip temperature, or similar) is at the target temperature, so you can start soldering?

 

In any of these cases, you'll need some way to amplify the signal, probably by a factor of about 100-150x. Searching should describe some common ways to do this - this link to Analog describes some methods to measure thermocouples (it focuses on K, J and T, but the same is true for E) and of course they're trying to sell their own hardware, but that doesn't mean other companies don't make more or less exactly the same thing if you prefer to use a different manufacturer.

 

Depending on your requirements, you'll need some signal conditioning - the requirements will determine how much.


GCentral
0 Kudos
Message 6 of 16
(5,569 Views)

First: What are the requirements?

BTW: Do you need traceablility?

 

Your current setup (DAQ with 'wrong' range for TC measurements, no CJC, TC Type E) is maybe good for +-10K ... so your results look reasonable to me ...

 

Two facts on TCs:

  1. The TC reports the EMF (say voltage) it feels, that may or may not be the temperature of interest.
  2. The TC EMF is not generated at the junctions, it's the summ of the temperature differences along the TC.

 

Quick solution for one channel: Get a USB-TC01

Or search for a TC signal conditioner with CJC and (5-) 10V output

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 7 of 16
(5,566 Views)

I confuse myselft too and it have long story haha.

First, this project occurs because the soldering machine is separate from PC

and this PC just like a CPU or brain that control the soldering station.

So this mean PC can't see or can't keep(data logging) temp data from thermocouple.

my goal is to make data logging all of temperature data while soldering machine work.

(and "a few second" as you said before didn't mean i'm turning on - off soldering machine repeatedly,

 it's mean when soldering machine start to soldering work-piece, it's temp rise from room temp up to 

~700 deg C in a second (i don't know how it work but it's amazing haha)).

and ... problem is when someone(may be my manager) want to see this data log, after he or she look at the data

in steady-state rage(may be another rage) and say "Hey, what's exactly temperature in this range ?" ....and that's my problem.

0 Kudos
Message 8 of 16
(5,557 Views)
Solution
Accepted by topic author Jes'ter

Q&D solution: Read 300ms (or 1s , choose a muliple of your line frequency)  of data @ 1kSPS , calculate the mean of that data to get one datapoint.

If you manager ask for the temperature: Show the data at tell him that the uncertainty is about +- 30°C at 700°C (depending on how you mount the sensor even higher)

If he complains, ask for budget for a serious temperature measurement equipment 😄

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


Message 9 of 16
(5,542 Views)

So now we're getting a little closer to the problem, perhaps, but the answer is still going to be more or less what I wrote above.

 

You want to write LabVIEW code that will use a thermocouple to log the temperature of a soldering iron as it stays at ~700 deg C, or ~25 deg C, for 'long' periods of time. You want to know 'exactly' what temperature the tip is (or at least, the thermocouple is) at some given time, and how much the temperature is fluctuating whilst it is supposed to be 'steady'. Is that about right?

 

The difficulties you face depend on what you mean by 'exactly', to use my phrasing of what I think your situation is. If you need to know the temperature within 5 deg C, and +-5 deg C is maybe ok, then you should go ahead and average your values whilst taking into account all of the other things you need to consider with making thermocouple measurements, about wire types, CJC, etc...

 

If you want to do better than that, you really need to amplify the signal. The measurement accuracy of the 6003 won't allow a better result than +-5 deg C with an unamplified thermocouple, even if there is no other noise and/or you filter the power line fluctuations perfectly, and you have a wonderful CMMR, and so on. By multiplying the signal by a factor of say, 100, you go from trying to measure 61uV/C to measuring 6100uV/C, or 6.1mV/C. That's probably doable, and still allows for a range of 0->1600 deg C (at 10V) without offsetting the zero point. Since the thermocouple won't reach that temperature, and your maximum temperature of interest is lower, you should look for even larger amplifications if you want.

 

The link I posted earlier (the Analog page) has some comments on placement of filtering devices relative to amplification, which are worth reading, but even without filtering, and amplifying the noise along with the signal, you're really no worse off than you are at the moment.


GCentral
Message 10 of 16
(5,537 Views)