LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Cyclic Fatigue Testing

Hi All

 

I am reasonably new to LabView and have an idea in mind. I've had a play about with the while, for loops etc. but can't seem to get what I want. I will first start by describing my scenario. I have a test that is being load controlled with a single element strain gauge, and the load is being cycled as a result of air pressure (controlled by a simple electric solenoid valve).

 

So what im looking to do is develop a UI that allows the user to enter a specific cycle count, for the current cycle count to be displayed visually, and within each cycle for the air valve to be turned on until a strain gauge reading is reached, (where the strain value is input at start of test) and then turned off.

 

I have succeeded as far as for labview (Using labview's Signal Express) in getting the strain readings into labview. I will be using the USB NI-CDAQ and the relevant 120ohm strain amplifiers.

 

So my aim is to use this channel, as my strain measurement. The issue I will have is that the strain could very well alter (or at least zero shift) so the measured strain will have to be calculated dynamically (with Max and Min).

 

 

Oh, and my plan is to control the electronic solenoid valve with an arduino uno board, which I have configured to work with Labview.

 

I'm not sure how clear I have been here, so any queries feel free to ask. Any help, or ideas are greatly appreciated.

 

Thanks


Dan

0 Kudos
Message 1 of 7
(3,291 Views)

Dan,

 

You have a pretty good general idea of what you want your program to do. You need to fill in some specifics. How do you plan to communicate with the Arduino? How much do you know about the possible "alterations" or shifts in the strain? Will they be much slower than the period of a load cycle? And for the control logic of the program itself: How will you handle the strain drift? How much noise will be present and who will it be handled? /how fast does the program need to repsond to changes in input measurements and to user inputs? How will error conditions be handled? What are the safety implications? For example what happens if the program or computer crashes while the solenoid valve is open?

 

Your program will have several distinct parts: The User Interface (UI or GUI for Graphical User Interface), the hardware input/output (cDAQ, Arduino), and the process control (everything else).  A good model for program of this sort is the Producer/Consumer Design Pattern.  Templates and examples come with all recent versions of LabVIEW.

 

Lynn

0 Kudos
Message 2 of 7
(3,276 Views)

Lynn

 

Thanks for your speedy reply.

 

My intiial aim is to comunicate the arduino via USB (COM) interface.

 

In terms of the shift in strain readings, the shift from one cycle to the consequent should be small.

 

They should be alot slower than each cycle, I'm looking at a load cycle (Pressure On then off) of around 4 seconds

 

Handling the strain drift I guess comes back to my original question of having the strain measured dynamically (ie differance between min and max values)

 

Error conditions I would presume I'd have linked to the stop function, which would require a physical check before any testing resumed.

 

I havnt really thought thoroughly as to the saftey precautions (naively enough). After having had the idea brought to mind, I will have acces to a 0-10bar pressure transducer (the test should never involve exceeding 9.5bar). Thus I could wire the input from this pressure transducer, if i am not mistaken?

 

Many thanks again

Dan

0 Kudos
Message 3 of 7
(3,271 Views)

Dan,

 

Since you expect the strain shift to be small in each cycle, I suggest that you keep a running average over perhaps the last 10 cycles with the baseline data taken with the load off.  You can subtract that from the current values.  By averaging over several cycles you should avoid sudden jumps, but this may depend on the physical characteristics of your system.

 

Is your solenoid valve rated for long lifetime in terms of numbers of operations?  Some relays and solenoids (although not valves) I have used have lifetimes of about 100000 mechanical operations.  At 4 second per cycle the lifetime would be 4.6 days.

 

You could use the pressure transducer as part of a safety circuit, although you only have a 5% window between your highest normal operating pressure and the transducer limit.  You could wire the output of the transducer to a comparator. If the pressure exceeds 9.5 bar, then the comparator would open a relay which would remove power from the solenoid valve (assuming it is normally closed).

 

Real systems often turn out more complicated to use safely and properly than it would appear at first glance.

 

Lynn

0 Kudos
Message 4 of 7
(3,257 Views)

 

Lynn

 

Understood, I think the idea of keeping a running average of the previous 10 'zeroes' should work well. With that in mind, what happens for the first 10 cycles, i.e. the point at which the average of 10 values can't be computed?

 

The solenoid is capable of many million cycles, as to the exact specification, i'm unsure but can obtain tht data if necessary?

 

A comparitor will likely work well too. Would this be a physical comparitor or would you suggest doing this within labview?

 

I'm beginining to understand that this is not an simple and straight forward as initially suspected, which I guess is the main reason I came to this forum where I could discuss ideas with the likes of yourself (and others!)

 

Dan

0 Kudos
Message 5 of 7
(3,241 Views)

Dan,

 

The first ten cycles will give you some kinds of errors, the details depending on how you initialize things.  If you set the initial value to be equal to the first cycle data, the average will be weighted toward that value.  If you use zero, the average will tend to "ramp up" toward the actual data values.

 

If the solenoid is rated for a long life, then you are fine. I just wanted to caution you that many solenoid valves are not designed for that kind of life.

 

It needs to be a physical comparator. The whole idea is to protect the apparatus from a malfunctioning computer/program.  Of course, if your computer never freezes up and your program never contain bugs, then it is not required.

 

I (and others) like to see people and projects succeed.  That is why we volunteer our time to participate in the Forums.

 

Lynn

0 Kudos
Message 6 of 7
(3,220 Views)

Ok thanks Lynn, I will update you with any progress

 

Dan

0 Kudos
Message 7 of 7
(3,206 Views)