Feasibility of modernizing custom material properties devices - "Instron" & "Masuda"

Our lab uses two custom devices for measuring material properties of plant wall tissues. They were originally developed using the now defunct ASYST programming language and an ISA-based Data Translation board (DT2801). The following link provides an image of the hardware. http://www.personal.psu.edu/faculty/d/m/dmd7/INSnMAS.jpg
In the right background is an interface box for the stepper motors. It utilizes an Airpax K33505 board and requires DIRECTION, STEP, and GROUND connections. Stepper control is achieved by means of providing a 0 or 5 volt input for rotation direction and a variable duty cycle square wave for step speed. We have a DT9802 module to use with new software I'm trying to develop based on my old ASYST code.
I haven't done much programming for the past 15 years and am trying to come up to speed with the MATLAB package. I've also played around with Measure Foundry and had promising initial results but the deeper I got the more frustrated I became with inexplicable interaction errors between the various "components". It seems a simple task but I've been running into difficulties with achieving the performance I enjoyed with my old hardware/software. These devices were controlled by an old 386 (?) based PC and an incredibly old Windows version - like v3.1? - but the PC just up 'n died and these things are lab workhorses and I need to resurrect them ASAP.
Eventually we'd also like to upgrade from the steppers to perhaps something like the Newport M-ILS50CC - http://search.newport.com/?x2=sku&q2=M-ILS50CC - or similar.
For now, what I'm looking for is some advice as to whether my goals should be easily achieved with MATLAB and any input on possible alternatives to the old stepper motors.
Some additional details follow which may prove useful for anyone kind enough to offer some assistance.
The device at left in the image is the "INSTRON". A piece of plant tissue is clamped where the green rectangle appears. The tissue is connected to the load cell via a clip similar to the upper clip pictured. The tissue is strained to a target load at 0.5 to 10 mm/min and then rapidly returned to zero stress and restrained to the same target load. The two resultant stress/strain curves may then be analyzed to determine wall plasticity and elasticity.
The device at right in the image is the "MASUDA". A piece of plant tissue is rapidly strained to a target stress (hopefully in a few milliseconds) and then allowed to relax for 5 minutes while stress data is acquired. The resultant stress/time curve may then be analyzed to determine wall relaxation properties.
So, are there any obvious reasons based on the above description as to why I'm experiencing difficulties other than the fact my programming skills remain attuned to the 1980's?

 Accepted Answer

I note that your tags mention low latency and USB, and I see that the DT9802 has a USB interface. I see your mention of the MASUDA stressing the sample "hopefully in a few milliseconds", which provides the clue that you may be aiming for stepper motor latencies down to millisecond or less. It would help if you could explicitly state what the performance targets are for the various components.
I see from the data sheet that the analog outputs on the DT9802 have a rate of 50 Hz. That's 20 milliseconds per cycle, which sounds to be much too long for your needs, if the stepper is to be controlled by sending voltage signals to the DT9802.
USB in general does not have latencies in the "few millisecond" range. Checking back to some investigation I did in May, I see that I wrote
I looked around the 'net a bit on the topic of USB latency, and it appears that 6-8 ms is condsidered "good" latency for USB, with 10-15 ms being common. The figures I found were from people doing MIDI or sound work; in my experience such people tend to know a lot of tricks and hacks; if 1 ms could be routinely achieved, they would probably have known.
I am thus not presently convinced that any USB based interface can give you the performance you need -- but we need the specifications.

More Answers (2)

@ Walter Roberson:
First, thank you.
INSTRON presents a lower hurdle and is our immediate need so . . .
Bear with me while I elaborate and try to provide sufficient info for your analysis. (This may just help me get things more clear in my head as well.)
For illustration/clarification here is actual output from a typical INSTRON experiment and original hardware/software setup (scanned from a 1987 notebook!):
You'll notice the actual stress/strain curves are overlaid by 2nd order fitted curves. The other lines are derivative curves plotted for visual check/reference and are not to scale. This was a typical experiment done @ 3mm/min strain and 30 grams target stress. Note the target stress was pretty much a bulls-eye - right around 30 grams. Early data below a certain percentage of target load was not plotted to make things prettier. Referring to the x-axis, the first (leftmost) "pull" of the sample starts at ~0.55mm and ends at ~1.40mm. So, @ 3mm/min and total strain of 1.40-0.55=0.85mm we have a roughly 15 second time window while we collect data for each of the two "pulls". Actually, in my mind that seems a few seconds too long . . . hmmmmm??? Anyway, hitting the target load extremely precisely is not critical so a few ms latency should be just fine here and the ramp-up rate of stress seems quite slow - relatively speaking.
Note I was using digital output lines and interrupt calls when controlling the stepper with the old, original ISA A/D board and old ASYST code. It occurred to me over the past weekend that perhaps I could utilize the counter/timer/clock function(s) of the Data Translation USB module to control stepper speed? Gotta dig deeper into that. I seem to recall the package allowing MATLAB and the DT9802 to play nice having limited functionality though? Dunno - gotta check again. Sigh . . . so much to learn/relearn.
Additionally, I should note the stepper motor for the MASUDA is a much "coarser" and hence faster "puller" than the unit used for INSTRON. I'll have to sit down, reexamine, and discuss MASUDA with some other folks to evaluate just how critical hitting the target load precisely is and also how rapidly we wish to hit said target load. The MASUDA aims to determine stress relaxation in the sample and obviously the longer it takes to strain the tissue the less data may be garnered relating to rapidly relaxing wall elements in the sample.
For now, your comments lead me to believe I may very well wish to switch from a USB to some other device with fewer latency issues unless I can unearth some bag of tricks . . . hmmmmm.
Some way to very rapidly trigger cessation of stepper movement once a target load is achieved is pretty much the only stringent requirement of MASUDA in my mind. I can start collection of load data prior to straining the sample and throw the "junk" out in a post processing session of the acquired load (relaxation) data. Hitting that balance where I don't get nasty overshoot of target load due to speed and coarseness of the MASUDA stepper is the spot which will require keeping an eye upon.
But, as I said, the INSTRON seems easier in some ways and I really need to get that functional ASAP. The requirements for INSTRON are reasonably precise control of stepper speed independent of and simultaneous with acquisition of load data and the ability to hit with reasonable precision a specified target load followed by an immediate reversal of the stepper motor to bring the sample down to zero stress (in practice we shoot for some small percentage of target load) and immediate restraining of the sample to target load again which completes the experiment. There is a final reversal to zero stress after the second pull as well just to bring the apparatus back to a "starting position". Incidentally, one of the requirements of INSTRON is also that the instrument be calibrated prior to use so that the software in essence knows the length of the clamped sample at all times.
That's a lot of info spewed out spontaneously so I'd best stop here to see what transpires after you digest that. I do have to add this final info though - my original notes indicate we allowed for INSTRON strain rates of 0.5 to 10mm/min. Based on other information I've recovered from the physical setup this would mean the period of the square wave controlling the stepper motor would be from 40 to 800 milliseconds. That's providing my math is all correct. I wouldn't be shocked to discover it's as low as 20 or even 10 milliseconds. I'll have to actually measure the speed once the code is finalized to be sure I'm feeding the stepper control board properly. I think it looks for a rising or falling edge so that might easily knock me off by a factor of two . . .
Hey, sorry for being so wordy. I'm going to attempt to get more comfortable with MATLAB now and play with GUI's and getting user input, etc. Look forward to your reply.
Dan
Reverting to Measure Foundry for now and will revisit alternatives later. Likely will switch to a PCI A/D card to shoot this USB latency right between the eyes.

1 Comment

Looks like PCI can in theory go down as low as 7 or 8 clock cycles to transfer data. That should probably be good for something on the order of 100 mega transfers per second, I figure.

Sign in to comment.

Categories

Find more on Data Acquisition Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!