LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Non-linear Fit Intervals Gives Error 20001

Hi guys--

 

I'm running a non-linear curve fit, followed by a non-linear fit intervals vi on some noisy data, and the intervals vi keeps triggering the following error message:

 

Error 20001 occured at unidentifed location.

Analysis:  There is not enough memory to perform the specified routine.

 

I have to cut the density of data points down pretty far (from 95000 to 4750) to keep this from happening.  This is taking me into new levels of LV programming.  Could anyone enlighten me on exactly what is happening here, and how to tackle a situation like this?

 

The attached folder has a full test case for the issue with several simulated waveforms.  I'm running LV 2009, if that matters.

 

Thanks all, and have a great day.

0 Kudos
Message 1 of 4
(3,140 Views)

If you open the "intervals" VI, you can see that with an input of 4750, the rightmost AxB multiplication results in an 2D matrix of size 4746x4746.

 

Do the math! With 8 bytes/DBL that translates to 180MB right there, and  ~700MB more for the next higher size and ~70GB (!!) for 95000 points.

 

Maybe in a couple of years under a 64bit OS and terabytes of RAM, but not today!

 

Since there are quite a few more big things in memory and LabVIEW require contiguous space in memory for each array, it is obvious that this will not work.

0 Kudos
Message 2 of 4
(3,124 Views)

Ah yes, I see it now.  That's the danger of those high-level VIs I suppose.

 

Thanks a bunch for pointing that out.  I'm on to plan B I suppose.

0 Kudos
Message 3 of 4
(3,105 Views)

After staring at it a little, I solved the problem as in the attached Fit Intervals Fixed.vi, which uses a version of LV's intervals vi, but with the generation of the upper and lower bounds removed.  Didn't need those anyway.

 

Wouldn't have seen that without your help.  Thanks a bunch.

0 Kudos
Message 4 of 4
(3,099 Views)