Servo-hydraulic Test System Control Software

Created Sep30 2010, Updated: Dec.2011, Jan.2012
Copyright (C) 2011 F.A.Conle and Univ. of Waterloo
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is available here:
"GNU Free Documentation License". ( "" )


The application of small "mini" computers for control of servo-hydraulic
systems first became popular in the late 1960s. "Servo-hydraulic" systems
control the pressure on a hydraulic ram by means of an electrically positioned
servo-control valve. The ram pressure or displacement is electronically
monitored and used as a feedback control variable to form a closed loop process.
With the invention of A/D and D/A converters, it was possible to insert fast
response computer algorithms into the feedback control loop. Although the software
presented is designed for cyclic loading of fatigue specimens, the system could be
applied in many other data acquisition or test control roles.

The present web page outlines the construction of a typical PC based software
system to monitor and control a servo-hydraulic machine. The article's prime intent
is to outline how the computerization of older analog contollers may be achieved for
an inexpensive price.

System Description

Fig. 1: Servo-Hydraulic frame and control electronics for testing
small sample metallic specimens.
(Click image to enlarge)

The computer hardware used in this case is a Microstar Labs. DAP840 A/D + D/A board. The board runs a
version of MSDOS and talks to a user's PC(user side) via the PCI bus in a common desktop
computer case. The DAP 840 also requires a break-out box and cable for attachment of
the BNC cables to the analog voltage I/O or the experiment. Also needed is a
license for development DAP software which enables the compilation of user C++ written routines.

On the PC side of the computer one single system will require a Windows 2000 or better
operating system to compile the user written software for the DAP card. Any other systems
that you have do not require the complete DAP Development software as the programs can
be copied to the other test machine computers. The other systems simply require a DAP card
and an openSUSE Linux installation. On the development system the openSUSE Linux system is
installed alongside the MS Windows system such that either one can be booted at system
startup. The Linux o/s system is used to run the actual test and save/display the data output.
At the time of writing the overall expenditure for this example system was approximately
CDN$ 2000. to $3000 including the DAP card. Typical PCside options are 21in. or better monitor
for graphics, 2 core or more CPU, 500GB disk, DVD r/w, 4Gb memory, and an inexpensive graphics card.
An ethernet switch and router(to internet) are options that allow software updates and data files,
such as load histories or stress-strain responses, to be easily transfered between test machines
and allow user test observation and control from remote locations.

Fatigue Tests:

Fatigue testing using servo-hydraulic control for force or displacement
imposition on sturctures and smaller specimens has been used in engineering
for many years. The programs described in this article are primarily intended
for use in small specimen testing, but the software could also be applied for
testing of larger components. A servo-hydraulic control system generally uses
a feedback loop to control the ram force or displacement. Test control software
alters the command or target voltage in the feedback loop and monitors the
consequent changes of load cells, strain gages, stroke LVDTs etc to make a
algorithmic decision about the next command voltage to be imposed on the feedback loop.

In a typical constant amplitude load control test for example, the computer command
voltages are incremented in small (often millivolt) steps by means of the digital to
analog (D/A) converter on the DAP card, from initial 0.0_volts to perhaps +5.0_volts.
This voltage "ramp" may then be reversed and by decrementing the D/A converter, again
in small steps, to perhaps -5.0_volts. With repetition a triangular waveform is generated.
The output from the D/A serves as the command voltage to the load (or other variable) feedback
loop, thereby creating a triangular waveform loading history on the specimen or component.
Response voltages of the command feedback and other secondary variables are monitored through
the analog to digital (A/D) on the DAP840 board and used in computer control decisions or
transmitted to the user-side PC for display or to be saved on disk.

More complicated waveforms are created by simply changing the endpoints of the voltage ramps.
Displayed in figure_2 below is a popular variable amplitude testing history created by the
Fatigue Design and Evaluation Committee of SAE. The test frequency is determined by a number
of factors such as available hydraulic oil flow, servo-valve type, load train stiffness, heat
dissipation, etc. Typically in any feedback loop there is a delay between the time of D/A
command change and A/D observed response, and consequently special programming techniques
must be used to achieve higher cycle speeds. The programs provided here typically are used
in lower speed applications, where the phase-lag between command and response is less important.

Typical service load or proving ground load history. (available here.)

Software Variants:

  1. mlog2, mlog4, mlog6 : Simple logging of A/Ds to disk file.
  2. fgen10 : Triangular, Sinusoidal, and single Ramp function generator.
  3. mblk10 : Block program generator. Repeated Ramps: (high,low,reps.)
Since all the above test control programs are similar in their organization, only
the most complex of the group, mblk10 will be described in the outline below.

Test Control Program "mblk10" :

The mblk10 program consists of the following functional programs:
(Note that you may need to remove the ".txt" suffix from the filenames) Figure 3 reflects the module arrangement in the two computers as set up for
the Univ. of Waterloo fatigue test lab.

Fig. 3: Map of typical custom operational modules in both PC and DAP.
(Click image to enlarge)

In the figure the flow of the text pipes is not strictly correct. The
DAP840 load module actually handles everything on the DAP and the pipes in
reality flow through it first, but conceptually for our understanding the
depiction above is close enough.

On the DAP840 side are two user created modules:

The PC side modules shown are also programmed in cpp:

Source Code:

Acknowledgements: This research was supported by NSERC of Canada,
the Univ. of Waterloo and the Univ. of Windsor. Many thanks to Larry Trammel
at Microstar for advice.