Application Note 1.1: Multi-Axis Ultrasound Transducer Testing Machine

IndustryApplicationChallenges
Medical Multi-Axis Ultrasound Transducer Testing Machine
  • Highly accurate automated control of multi-axis gantry
  • Electrical noise attenuation
  • Multi-axis position recording
Download PDF of this Application Note here.

Situation

Large OEM manufacturer of medical equipment needed motion control system for testing their ultrasound equipment: specifically the transducer wand. Ultrasound transducers send and receive sound waves, converting the electrical potential into energy and back. Manufacturers test, change and categorize the focus of the ultrasound beam to image different structures based on their composition and their distance from the transducer, and then catalog that data for end users.

Problem

Each transducer is placed in a tank of saline solution that has a two-axis to five-axis gantry at either end. The ultrasound transducer is placed on the gantry at one end and a hydrophone is placed on the gantry at the other end of the tank, also immersed in the saline solution. Positioning of the transducer and the hydrophone must be very accurate to find the most intense beam strength. In addition, electrical interference from any motion control equipment had to be inimized to reduce interference with the ultrasound waves during the testing.

Solution

The manufacturer chose the SmartMotor paired with a high precision ball screw linear actuator to obtain the highest accuracy motion. The SmartMotors were networked over a serial bus to the host PC.

The SmartMotor also caused the least amount of electrical interference from low voltage signals compared to conventional motion control systems as well as other integrated servos. Because the advanced controller is integrated onto the servo drive, motor, encoder and communication buses, there is significantly less cabling between systems and maximum electrical noise attenuation. SmartMotors have been used on this ultrasound transducer testing machine since 1999.

Sample Code

'Defining Motor Addresses
'          Axis      Address
#define     x1          1
#define     x2          2
#define     yy          3
#define     zz          4
#define     uu          5
#define     vv          6

v=20000'Path Velocity
a=1000 'Path accel
x=1234 'Target position for X axis
y=2345        'Target position for Y axis
z=3456        'Target position for Z axis
GOSUB(123)    'Call subroutine to make move.

x=5000
y=2000
z=7000
u=4000
v=3000
GOSUB(234)

END

C123
          'Call this subroutine to make a coordinated move
VTS=v         'Set Vector Path Velocity
ADTS=a        'Set Vector Path Accel/Decel
PTS(x;x1;x2,y;yy;uu,z;zz;vv) 'Set Position Target sync for all axis
GS            'Go
TSWAIT        'Wait for synchronized move to complete
RETURN

C234
          'Call this subroutine to make a coordinated move
VTS=v         'Set Vector Path Velocity
ADTS=a        'Set Vector Path Accel/Decel
PTS(x;x1;x2,y;yy,z;zz) 'Set Position Target sync for all axis
PTSS(u;uu)    'Move u separately from y
PTSS(v;vv)    'Move v separately from z
GS            'Go
TSWAIT        'Wait for synchronized move to complete
RETURN