G Holroyd Final Thesis
G Holroyd Final Thesis
Holroyd, Geoffrey
The modelling and correction of ball-screw geometric, thermal and load errors on CNC machine
tools
Original Citation
Holroyd, Geoffrey (2007) The modelling and correction of ball-screw geometric, thermal and load
errors on CNC machine tools. Doctoral thesis, The University of Huddersfield.
The authors, title and full bibliographic details is credited in any copy;
A hyperlink and/or URL is included for the original metadata page; and
The content is not changed in any way.
For more information, including our policy and submission procedure, please
contact the Repository Team at: E.mailbox@hud.ac.uk.
http://eprints.hud.ac.uk/
THE MODELLING AND CORRECTION OF BALL-SCREW
GEOMETRIC, THERMAL AND LOAD ERRORS
ON CNC MACHINE TOOLS
GEOFFREY HOLROYD
In the modern global economy, there is a demand for high precision in manufacture as
competitive pressures drive businesses to seek greater productivity. This results in a demand
for a reduction in the errors associated with CNC machine tools. To this end, it is useful to
develop a greater understanding of the mechanisms which give rise to errors in machine tool
drives.
This programme of research covers the geometric, thermal and load errors commonly
encountered on CNC machine tools. Several mathematical models have been developed or
extended which enable a deeper understanding of the interaction between these errors, various
details of ballscrew design and the dynamic behaviour of ballscrew driven systems.
Some useful models based on the discrete matter or lumped mass approach have been
devised. One extends the classical eigenvalue method for finding the natural frequencies and
other dynamic characteristics of ballscrew systems to include viscous damping effects using a
generalised eigenvalue approach. This gives the damping coefficient of each predicted
vibration mode along with the estimates of the natural frequencies, enabling many of the
natural frequencies predicted by standard undamped natural frequency analyses to be
dismissed as being of little consequence to the vibratory behaviour of the system.
A development of this modelling method gives the sensitivity of the system to changes in
stiffness and damping characteristics, which is helpful at the preliminary design stage of a
ballscrew system, and is an aid in deciding the most convenient remedy to vibration problems
which may occur in service.
The second set of lumped-mass models is specially developed to take account of the
changes in the configuration of the system with time as the nut moves along the screw while
taking into account the non-linear phenomena of backlash and Coulomb friction. These can
deal with the axial, torsional and transverse degrees of freedom of the system and predict
many aspects of the dynamic behaviour of a ballscrew system which have an effect on the
errors arising from such systems. They also include features which calculate the energy
converted to heat by all the energy dissipative mechanisms in the model which can be used in
conjunction with models already developed at the University of Huddersfield to predict
thermal errors.
Further, a strategy for compensation of some of these errors has been devised.
ii
ACKNOWLEDGEMENTS
I would like to acknowledge my dept of gratitude for the support I have received during the
course of this Research Project.
I am grateful for the funding provided by the ROBCON - EPSRC project 'Robust On-line
Parameter Identification and Modelling Applied to a Precision 3-axis Machine Tool for
Control and Condition Monitoring Purposes', EPSRC Grant GR/S07827/01.
I would also like to thank the people who have acted as Director of Studies and
Supervisors throughout the Project. First Professor Derek Ford, now Emeritus Professor at
the University of Huddersfield, for his overall leadership and many helpful and useful
comments and suggestions; Dr Mike Freeman for his help and encouragement with the
mathematical analysis; Dr Simon Fletcher for his oversight of much of the practical work and
his valuable input to the thermal aspects of the work; Dr Crinela Pislaru for her help and
advice on various aspects of modelling, especially hybrid modelling, for her collaboration
over the aspects relating to measurements taken on a CNC machine then in use at
Huddersfield, and her help and advice in preparing this Thesis; Mr Steve Millwood for his
help in the early days of programming in C; Dr Veimar Castaneda for his insights into the
detailed working of the Heidenhain controller used on the Linear Guide Rig, and the technical
support staff for their support in making parts specially required for the experimental work.
Finally, I would like to thank my wife Nora and my children Chloe and Christian for their
support and patience over the years.
Geoff Holroyd
Lane Ings,
Marsden
iii
CONTENTS
ABSTRACT ii
ACKNOWLEDGEMENTS iii
CONTENTS iv
LIST OF FIGURES viii
LIST OF TABLES xii
NOMENCLATURE xiii
CHAPTER 1 INTRODUCTION 1
CHAPTER 2 - LITERATURE SURVEY 8
2.1 Basic modelling of screw mechanisms 8
2.2 Error compensation in CNC machine tools 9
2.3 Feed drives modelling 14
2.4 Analysis of vibration damping for feed drives 18
2.5 Summary 21
CHAPTER 3 - THEORETICAL BACKGROUND 26
3.1 Basic characteristics of a ballscrew 26
3.2 Errors in machine tool drives 29
3.3 Factors affecting thermal, geometric and load performance 31
3.3.1 Bearings 31
3.3.2 Ball nut 34
3.3.3 Pre-tension 35
3.4 Basic behaviour of screw 35
3.4.1 Ballscrew driving 38
3.4.2 Ballscrew driven 38
3.5 Static elastic theory 39
3.5.1 General Hertzian theory 39
3.5.2 Other elastic effects 43
3.5.3 Rolling element friction 45
3.6 Dynamic elastic theory 46
CHAPTER 4 - DYNAMIC MODEL GENERAL CONSIDERATIONS 47
4.1 Continuous matter approach wave solutions 48
4.2 Lumped mass approach matrix solutions 54
4.3 Dynamic model a generalised eigenvalue approach 57
iv
4.3.1 An eigenvalue approach undamped case 58
4.3.2 A generalised eigenvalue approach damped case 66
4.3.3 Sensitivity analysis 71
CHAPTER 5 - AXIAL AND TORSIONAL CASE FOR MOVING MASS MODEL 73
5.1 Dynamics of a ballscrew with a moving nut the axial case 75
5.2 Solution of differential equation with time-dependent coefficients 78
5.3 Extension to include torsional movement 83
5.4 Backlash 87
5.5 A refinement of the method 89
5.6 Comparison with classical theory 95
CHAPTER 6 - TRANSVERSE CASE FOR MOVING MASS MODEL 100
6.1 Modelling the transverse behaviour of the screw 100
6.2 Combining the transverse behaviour of the screw with the axial and torsional 101
6.3 Initial conditions 106
6.4 Developing the transverse motion of the ballscrew system 108
6.5 Gyroscopic effect 111
6.6 Ballscrew orbits 112
6.7 Bearing cap vibrations 113
6.8 Out-of-balance excitation 114
CHAPTER 7 - THERMAL CONSIDERATIONS 116
7.1 Modelling of screw justification of one dimensional approach 119
7.2 Thermal behaviour of bearings 125
7.3 Thermal behaviour of nut 127
7.4 Ballscrew system thermal model 127
7.5 Ballscrew cooling 129
7.5.1 Cooling using a moving fluid 130
7.5.2 Evaporative cooling 133
7.6 Comparison with measured data 134
CHAPTER 8 - EXPERIMENTAL VERIFICATION 137
8.1 Static measurements 140
8.1.1 Preliminary considerations 141
8.1.2 Measurement strategy 144
8.1.3 Measurement results 146
8.1.4 Static deflection models 148
v
8.2 Dynamic measurements nut in fixed position 151
8.2.1 Preliminary considerations 152
8.2.2 Measurement strategy 152
8.2.3 Measurement results 155
8.3 Dynamic measurements nut moving along screw 156
8.3.1 Preliminary considerations 156
8.3.2 Measurement strategy 156
8.3.3 Measurement results 157
CHAPTER 9 - ERROR REDUCTION 160
9.1 Error reduction through design 160
9.1.1 Effects on stiffness of detailed geometry 160
9.1.2 Thermal considerations 161
9.1.3 Material considerations 161
9.2 Error reduction through compensation 162
9.2.1 Compensation for dynamic effects 162
9.2.2 Compensation for thermal effects 166
CHAPTER 10 CONCLUSIONS 168
REFERENCES 172
vi
APPENDIX 7.2 Matlab model cool2.m 247
APPENDIX 7.3 The ballscrew thermal model 248
APPENDIX 7.4 Mini TK model BS_COOL1.TK 262
APPENDIX 8.1 - Static deflection theory zero pre-tension 263
APPENDIX 8.2 - Static deflection theory non-zero pre-tension 274
APPENDIX 8.3 Dynamic behaviour of a shaft under centrifugal forces 285
APPENDIX 8.4 Data extraction and results Fixed nut, all positions 288
APPENDIX 8.5 Data extraction and results Moving nut, all positions 293
APPENDIX 8.6 - Linear Guide rig Data 298
APPENDIX 9.1 - Heidenhain controller theory 308
vii
LIST OF FIGURES
Figure 2.1 The essential elements of a typical machine tool drive 16
Figure 3.1 - A double nut ballscrew 26
Figure 3.2 - An end cap ballscrew 27
Figure 3.3 - A return pipe ballscrew 28
Figure 3.4 - Thermal model of ballscrew 30
Figure 3.5 The fixed-free bearing arrangement 31
Figure 3.6 The fixed-supported bearing arrangement 32
Figure 3.7 The fixed-fixed bearing arrangement 32
Figure 3.8 The fixed-fixed screw clamping arrangement 32
Figure 3.9 A simple screw 36
Figure 3.10 Ballscrew driving mode of operation 37
Figure 3.11 Ballscrew driven mode of operation 37
Figure 3.12 Contact in ballscrew meshing action 41
Figure 4.1 - A feed drive system 47
Figure 4.2 - A ballscrew drive system - discrete matter approach 48
Figure 4.3 - A ballscrew drive system - continuous matter approach 49
Figure 4.4 - A test model made of two masses connected by a continuous matter spring 51
Figure 4.5 A model based on wave theory of two masses connected by a spring 53
Figure 4.6 - Beaver VC35 CNC milling machine 54
Figure 4.7 - Beaver Machine X or Y drive 55
Figure 4.8 - Schematic representation of the mechanical elements of the drive model 56
Figure 4.9 - Undamped mode shapes predicted by the eigenvalue method 62
Figure 4.10 - Natf_tr1.m Natural frequency and modes shapes free-free 64
Figure 4.11 - Natf_tr2.m Natural frequency and modes shapes fixed-free 65
Figure 4.12 - Natf_tr3.m Natural frequency and modes shapes supported-supported 65
Figure 4.13 - Natf_tr4.m Natural frequency and modes shapes fixed-fixed 66
Figure 4.14 - Representation of viscous damping phenomenon 67
Figure 4.15 - Model of the mechanical transmission of the CNC machine tool axis drive
considering viscous damping 69
Figure 4.16 - Damped mode shapes predicted by the
generalised eigenvalue method Cartesian 70
Figure 4.17 - Damped mode shapes predicted by the
generalised eigenvalue method polar 71
Figure 5.1 - Simple mass on a spring system 73
Figure 5.2 - A ballscrew drive system 75
viii
Figure 5.3 - A typical ballscrew in a machine tool drive 76
Figure 5.4 - Ballscrew model 76
Figure 5.5 - Ballscrew system model 85
Figure 5.6 - Ballscrew backlash 87
Figure 5.7 - First method 90
Figure 5.8 - The refined method 90
Figure 5.9 - Comparison with classical theory 95
Figure 5.10 Ballscrew torsional displacement 96
Figure 5.11 Ballscrew torsional velocity 96
Figure 5.12 - Ball nut displacement 96
Figure 5.13 - Ball nut velocity 96
Figure 5.14 Ballscrew axial displacement 97
Figure 5.15 Ballscrew axial velocity 97
Figure 5.16 Torque applied at the driven end of the ballscrew 98
Figure 5.17 Ball nut position error 98
Figure 6.1 The global reference axes 100
Figure 6.2 Six degree of freedom matrix for a beam element
representing part of the ballscrew 103
Figure 6.3 Y and z degree of freedom matrix for the beam element representing
part of the ballscrew in contact with nut
a - Terms in Izz, kn and n 104
b - Additional terms in kn 104
c - Additional terms in n 105
d - Additional terms in kn n 105
Figure 6.4 Axes rotated with ballscrew 108
Figure 6.5 Polar coordinate system 109
Figure 6.6 Gyroscopic effects 111
Figure 6.7 Modelling bearing cap 113
Figure 6.8 Trajectory of ballscrew centre under out-of-balance load 115
Figure 7.1 A comparison of one-dimensional thermal and two-dimensional
thermal models of a ballscrew, 2Dave 1D 124
Figure 7.2 A comparison of one-dimensional thermal and two-dimensional
thermal models of a ballscrew, 2Dsurf 1D, heating 124
Figure 7.3 A comparison of one-dimensional thermal and two-dimensional
thermal models of a ballscrew, 2Dsurf 1D, cooling 125
Figure 7.4 - Heat transfer elements of ballscrew system model 127
Figure 7.5 Evaporative cooling typical temperature drop 133
Figure 7.6 Energy balance in a typical ballscrew movement 135
ix
Figure 7.7 Energy dissipated in nut and bearings thermal model 135
Figure 7.8 Energy dissipated in nut and bearings dynamic model 135
Figure 7.9 - Simulated and measured error between axis positions 0 and -460 during
a heating and cooling cycle 136
Figure 8.1 Ballscrew linear guide rig with controller
and vibration monitoring equipment 137
Figure 8.2 Ring used as a target for an N.C.D.T and to carry out-of-balance weights 139
Figure 8.3 Dimensions A and B 141
Figure 8.4 Static tests, Position 1 144
Figure 8.5 Static tests, Position 2 145
Figure 8.6 Static tests, Position 3 145
Figure 8.7 Raw data, static tests, Position 1 147
Figure 8.8 Transducer output for 90 N transverse pull, static tests, Position 1 147
Figure 8.9 Fit of modelled curve to measured data, Position 1 149
Figure 8.10 Fit of modelled curve to measured data, Position 2 150
Figure 8.11 Fit of modelled curve to measured data, Position 3 150
Figure 8.12 Dimension X in the dynamic tests 153
Figure 8.13 Comparison of measured and predicted vibration levels
- Monitoring ring position 1 154
Figure 8.14 Comparison of measured and predicted vibration levels
- Monitoring ring position 2 154
Figure 8.15 Comparison of measured and predicted vibration levels
- Monitoring ring position 3 155
Figure 8.16 Comparison of measured and predicted vibration levels
Monitoring ring position 1, speed 5 158
Figure 8.17 Comparison of measured and predicted vibration levels
Monitoring ring position 2, speed 5 158
Figure 8.18 Comparison of measured and predicted vibration levels
Monitoring ring position 3, speed 3 159
Figure 9.1 Nut position error without compensation 164
Figure 9.2 Nut position error with compensation for flexibility 165
Figure 9.3 Nut position error with compensation for flexibility and controller effects 166
Figure A4.1.1 - Wave model wave amplitude (m/sec) v. time (sec) 186
Figure A4.1.2 - Wave model mass velocities (m/sec) v. time (sec) 186
Figure A4.1.3 - Wave model mass displacements (m) v. time (sec) 187
Figure A4.1.4 - Wave model relative displacement of masses (m) v. time (sec) 187
x
Figure A4.1.5 - Wave model forces (N) v. time (sec) 188
Figure A4.1.6 - Wave model energies (J) v. time (sec) 188
Figure A7.1 Heat removal rate v. coolant flow for a water cooled ballscrew 246
Figure A7.2 Heat removal rate v. coolant temperature a water cooled ballscrew 246
Figure A8.4.1 Raw data 288
Figure A8.4.2 Development of vibration response over time 288
Figure A8.4.3 Average vibration response 289
Figure A8.4.4 Effect of excitation weights 289
Figure A8.5.1 Raw data as a function of time 293
Figure A8.5.2 Position of nut in controller co-ordinates 293
Figure A8.5.3 Raw data as a function of angular position 294
Figure A8.5.4 Development of vibration response over time 294
Figure A8.5.5 Effect of excitation weights 295
Figure A9.1.1 A block diagram of the Heidenhain controller 308
Figure A9.1.2 Controller behaviour with continuous variables 321
Figure A9.1.3 Controller behaviour with a 3 msec time step in the velocity loop 322
xi
LIST OF TABLES
Table 3.1 Factors used in determining Hertzian stress and deflection 40
Table 4.1 The sensitivity of vibration behaviour to model parameters (Y-axis drive) 61
Table 4.2 Natural frequencies (Hz) predicted
by lumped-mass models and by beam theory 63
Table 7.1 Derivation of 2D thermal model data 122
Table 8.1 Static measurements Raw data 146
Table 8.2 Static measurements Results 151
Table 8.3 - Dynamic Tests 1 Speeds and Sampling times 153
Table 8.4 Fixed nut dynamic tests correlation of measured and predicted results 156
Table 8.5 Moving nut dynamic tests correlation of measured and predicted results 159
Table 9.1 Distribution of ballscrew drive flexibility 160
Table A8.4.1 - Extracted mean vibration levels - Position 1 290
Table A8.4.2 - Extracted mean vibration levels - Position 2 291
Table A8.4.3 - Extracted mean vibration levels - Position 3 292
Table A8.5.1 Raw data - Moving mass - Position 1 296
Table A8.5.2 - Raw data - Moving mass - Position 2 296
Table A8.5.3 - Raw data - Moving mass - Position 3 297
xii
NOMENCLATURE
Chapter 3
c, d semi-axes of elliptical area of contact zone m
db diameter of balls m
di inner race diameter of bearing, equation (3.1) m
di inner effective diameter (3.5.2) m
do outer race diameter of bearing, equation (3.1) m
do outer effective diameter of screw (3.5.2) m
dp pitch diameter of ball action m
fbp ball passing frequency Hz
fs,n conformity ratio - screw, nut -
f0 index for bearing friction N sec2/3/mm10/3
f1 index for bearing friction -
flb nut body axial flexibility m/N
flc contact flexibility m/N
flcb x single ball contact flexibility axial direction m/N
fls axial flexibility component of nut flange m/N
flw axial flexibility component of nut wall and screw (3.5.2) m/N
kc contact stiffness N/m
kc x axial stiffness of balls in contact N/m
ln axial length of nut m
n screw speed rpm
p screw pitch m
r effective radius of screw (3.4) m
x axial movement of nut m
y movement between remote points in bodies 1 and 2 (3.5) m
z1 number of balls in contact -
CE material factor for contact stress m/N
Dbp ball pitch circle diameter of ballscrew m
Di inner effective diameter of nut (3.5.2) m
Do outer effective diameter of nut (3.5.2) m
DPCD pitch circle diameter of nut mounting flange holes m
E Youngs modulus N/m
xiii
Ei Youngs modulus N/m
F axial force delivered by screw to nut N
Fa sum of contact forces resolved in axial direction (3.4) N
Fa axial load (3.5.3) N
Fn sum of contact forces of normal to screw helix N
Fr radial load (3.5.3) N
Ft sum of contact forces acting tangential to axis of screw N
Gn shear modulus of the nut material N/m
KD geometry factor for contact stress m
Mf total friction moment Nm
Mf0 load independent friction moment Nm
Mf1 load dependent component Nm
Nb number of balls -
Ns. number of helices = number of starts on screw -
Nt number of active turns in nut -
P contact force (3.5) N
P0, P1 load factors (3.5.3) N
R screw ratio m/rad
Rn nut ball track section radii (3.5) m
Rs screw ball track section radii (3.5) m
R1 , R1 radii of curvature of body 1 at point of Hertzian contact m
R2 , R2 radii of curvature of body 2 at point of Hertzian contact m
X0 radial factor (3.5.3) -
Y0 thrust factor (3.5.3) -
c contact angle rad
, , factors in determining Hertzian stress and deflection (Table 3.1) -
ballscrew screw helix angle or lead angle rad
angle of rotation of screw relative to nut (3.4) rad
angle used in Hertzian theory (3.5) rad
coefficient of friction between screw and nut N
operating kinematic viscosity (3.5.3) mm/sec = cS
i Poissons ratio -
xiv
, local axes (3.5) m
c contact pressure N/m
c max maximum contact pressure N/m
angle between plane containing 1 R1 in body 1 and
that containing 1 R2 in body 2 rad
s angular speed of the shaft rad/sec
torque applied to screw Nm
Chapter 4
c wave velocity (4.1) m/sec
c damping coefficient (4.3) N sec/m, N m
sec/rad
cbrg_bs torsional damping coefficient of ballscrew bearings N m sec/rad
cbrg_ms torsional damping coefficient of motor bearings N m sec/rad
cd ij damping coefficient of damper connecting mi to jth node N sec/m, N sec,
N m sec/rad
cv damping coefficient of viscous damper N sec/m
f(x,t) forcing term N, N m
fi(t) forcing term (4.2) N, N m
f(t) forcing term vector N, N m
iL ballscrew node at which nut is connected in lumped mass model -
k stiffness (4.3) N/m, N m/rad
kax axial stiffness of ballscrew N/m
kbl torsional stiffness of drive belt N m/rad
kms torsional stiffness of motor shaft N m/rad
knut axial stiffness of ballscrew nut N/m
ks ij stiffness of spring connecting mi to jth node N/m, N, N m/rad
l length of shaft (4.1) m
l element length (4.3) m
m mass kg
mbm mass of ballscrew kg
mi mass of ith element kg
mtab mass of the table and saddle kg
t time sec
xv
u motor drive ratio -
u axial motion of (4.1) m
ub amplitude of backward travelling wave m
uf amplitude of forward travelling wave m
v volume m
x axial coordinate m
xi displacement of ith node (4.2) m, rad
x displacement vector m, rad
x/ modified displacement vector kg m
x1 part of solution vector (4.3.2) m/sec, rad/sec
x& i velocity of ith node (4.2) m/sec, rad/sec
y transverse displacement m
A cross sectional area of shaft m
B1 B submatrix (4.3.2) 1/(kg sec),
1/(kg m sec), 1/(kg m sec)
B2 B submatrix (4.3.2) 1/(kg sec),
1/(kg m sec), 1/(kg m sec)
Cij elements of damping matrix C N sec/m, N sec,
N m sec/rad
C damping matrix N sec/m, N sec,
N m sec/rad
E Youngs modulus N/m
Et sum of energy in system and dissipated energy J
F force generated by spring / damper (4.3) N, N m
Fe external force N
G shear modulus N/m
I second moment of area of beam m4
I is the unity matrix -
J tilt inertia (4.3) kg m
Jbs rotational inertia of ballscrew kg m
Jm rotational inertia of drive motor kg m
Jp1 rotational inertia of driving (motor) pulley kg m
Jp2 rotational inertia of driven pulley kg m
xvi
Kij elements of stiffness matrix K N/m, N, N m/rad
K stiffness matrix N/m, N, N m/rad
Kmod modified stiffness matrix 1/(kg sec),
1/(kg m sec), 1/(kg m sec)
M inertia matrix kg, kg m
e
M consistent mass matrix kg, kg m, kg m
Mii elements of inertia matrix kg, kg m
N shape matrix -
N number of ballscrew elements in lumped mass model -
Nn number of nodes in system -
R ballscrew ratio m/rad
T axial tension N
tilt angle (4.3) rad
b, f dummy variables m
density kg/m
natural frequency rad/sec
t time interval sec
Chapter 5
ak coefficients of time in displacement time series m/seck, rad/seck
a0 initial displacement vector m, rad
a1 initial velocity vector m/sec, rad/sec
a1, a2 axial stiffness of ballscrew bearings N/m
bk coefficients of displacement time series m, rad
bl backlash m
c damping coefficient of damper, equations (5.1) and (5.3) N sec/m
c coefficient of damping of single element of ballscrew N sec/m
ck coefficients of velocity time series m/sec, rad/sec
cn damping between nut and screw N sec/m
c coefficient of torsional damping N m sec/rad
d displacement vector m, rad
d0 initial displacement vector m, rad
{d, v} state of system m, rad, m/sec, rad/sec
{d0, v0} initial state of system m, rad, m/sec, rad/sec
xvii
f fraction of distance of contact point along element length -
f1, f2 stiffness / damping distribution factors -
i node identifier -
i, j, k array/matrix element subscripts -
j subscript designating massless node -
k
index in time series -
k axial stiffness of a single element of ballscrew N/m
k stiffness of spring, equations (5.1) - (5.4) and (5.6) N/m
kn axial stiffness of nut N/m
l length of screw m
m mass kg
mi mass at node i kg, kg m
mn mass of nut kg
p pitch of screw m
p stiffness submatrix representing partition of matrix which includes
nut, load and nodes of ballscrew at either side of connecting point N/m, N, N m/rad
pred reduced stiffness matrix N/m, N, N m/rad
q, q submatrices which connect p and r N/m, N, N m/rad
r stiffness submatrix representing massless node N/m, N, N m/rad
r-1 flexibility submatrix representing massless node m/N, 1/N, rad/(N m)
s, s submatrices which connect p and t N/m, N, N m/rad
t time sec
t stiffness submatrix representing part of system where
external forces normally act N/m, N, N m/rad
v velocity vector m/sec, rad/sec
v0 initial velocity vector m/sec, rad/sec
x displacement of mass m
x displacement array m, rad
x transpose of vector x m, rad
xbs axial position of part of screw in same plane as nut centre m
xi displacement of node i m, rad
xj displacement of massless node m, rad
xn displacement of nut m
xp axial displacement of point of contact on screw m
xviii
xpn displacement of nut at point of contact m
xst steady state displacement response m
z distance of ballscrew axis below the centre of mass of load m
A screw cross-sectional area m
B1, B2 nodes where journal bearings are attached
B B -
Blf1, Blf2 backlash factors
B B -
C damping coefficient matrix of ballscrew system N sec/m, N sec,
N m sec/rad
D' modified determinant -
E Youngs modulus N/m
Ed energy dissipated J
Ein energy input J
F forcing term, equation (5.1) N
F external force N
F force array N, N m
Fi forces N, N m
Fi(t) external force applied at ith node N
Fn i contact force acting on sliding face N
F0 amplitude of harmonic forcing term N
G shear modulus of screw material N/m
J inertia of load about Y axis through centre of mass kg m
Ji rotational inertia of ith node kg m
K torsional constant of screw m4
K stiffness matrix of ballscrew system N/m, N, N m/rad
Kbs submatrix representing the ballscrew N/m, N, N m/rad
Kbs n submatrix representing the cross terms between the screw
and the nut N/m, N, N m/rad
Kdr submatrix representing the controller, drive motor
and mechanical coupling device N/m, N, N m/rad
Kdr bs submatrix representing the cross terms between
the driving mechanism and the screw N/m, N, N m/rad
Kij term of stiffness matrix N/m, N, N m/rad
Kn submatrix representing the nut and load N/m, N, N m/rad
KE kinetic energy J
xix
M mass of saddle or table kg
M mass matrix of ballscrew system kg, kg m
Nf number of degrees of freedom at each node of ballscrew -
Ns number of starts -
PE potential energy J
R ballscrew ratio m/rad
S number of spring elements in ballscrew -
T time interval or time step sec
Xi x coordinates of nodes m
Xn position of ballscrew nut m
, special matrices used to develop time series -
displacements of degrees of freedom of submatrix p m, rad
displacements of massless node m, rad
fraction of critical damping -
phase lag rad
bs angular position of part of screw in same plane as nut centre rad
p rotation of the screw at point of contact of nut on screw rad
i coefficient of friction -
i stiffness/damping distribution factors -
displacements of degrees of freedom where external forces act m, rad
n tilt displacement of saddle/table rad
phase velocity rad/sec
n undamped natural frequency rad/sec
(t) system applied torque Nm
i(t) torque on ith node Nm
torsional stiffness of a single element of ballscrew N m/rad
torsional stiffness of slideways N m/rad
Chapter 6
an amplitude of acceleration vector m/sec
acirc circular component of acceleration m/sec
f fraction of distance of contact point along element length -
xx
fl(i,j) flexibility matrix m/N, 1/N, rad/(N
m)
g acceleration due to gravity m/sec
g gravitational field vector m/sec
i node number -
ib bearing number = 1 or 2 -
jstr y, jstr z effective tilt inertia of support structure close to bearing kg m
kax ib axial or thrust stiffness of ibth bearing N/m
kn radial stiffness of nut N/m
kslide y support stiffness of saddle/table slideways in Y direction N/m
kslide z support stiffness of saddle/table slideways in Z direction N/m
kslide y tilt stiffness of saddle/table slideways in Y direction N/m
kslide z tilt stiffness of saddle/table slideways in Z direction N/m
ktilt y ib tilt or rocking stiffness of ibth bearing about Y axis N m/rad
ktilt z ib tilt or rocking stiffness of ibth bearing about Z axis N m/rad
ktr y ib transverse or radial stiffness of ibth bearing in Y direction N/m
ktr z ib transverse or radial stiffness of ibth bearing in Z direction N/m
l beam or element length m
m mass kg
mi mass at node i kg
mstr x, mstr y, mstr z effective mass of support structure close to bearing kg
pred reduced stiffness matrix N/m, N, N m/rad
ri radial distance of centre of mass of ith node from X axis m
rcirc radius of node orbit m
t time sec
vn amplitude of velocity vector m/sec
x global displacement vector m, rad
xr displacements involving Y and z degrees of freedom m, rad
y transverse displacement m
y i, z i components of displacement ri in local X and Y directions m
{zi}i deflected shape at ith of iteration of pre-tension transverse
deflection calculation m
A cross-sectional area m
xxi
Bi B out-of-balance at node i kg m
D modified determinant -
E Youngs modulus N/m
F force vector N, N m
Fa i external axial force N
Fgyr gyroscopic torque vector Nm
Fi force generated by out-of-balance mass, equation (6.38) N
G shear modulus N/m
I second moment of area m4
Jtilt tilt inertia kg m
Jtors torsional moment of inertia kg m
Jx polar moment inertia kg m
Jxx moment of inertia about X axis kg m
J0 moment of inertia about X direction through centre of mass kg m
K torsional constant m4
K stiffness matrix N/m, N, N m/rad
K+ib modified bearing stiffness matrix N/m, N m/rad
K+slide modified stiffness matrix, slideways degrees of freedom N/m, N m/rad
Kang modified bearing stiffness submatrix, angular degrees of freedom N m/rad
Klin modified bearing stiffness submatrix, linear degrees of freedom N/m
Kr stiffness submatrix involving Y and z degrees of freedom N/m, N, N m/rad
Kstr i stiffness matrix of support structure close to bearing N/m, N m/rad
Kz stiffness submatrix involving the Y, Z, y and z degrees of freedom
N/m, N, N m/rad
K1 , K2 and K3 stiffness submatrices, Figure 6.3 N/m, N, N m/rad
Mi angular momentum of node i kg m/sec
M mass matrix kg, kg m
Mr mass submatrix involving Y and z degrees of freedom kg, kg m
Mstr i effective mass matrix of support structure close to bearing kg, kg m
My i titling moment of ith node of ballscrew Nm
Mz mass submatrix involving the Y, Z, y and z degrees of freedom kg, kg m
Sdz 2 measure of the difference between two deflection shapes
in iteration m
xxii
Sz2 measure of the size of a deflection shape m
T pre-tension N
T+ tension in element upstream of node N
T- tension in element downstream of node N
M small change of angular momentum vector kg m/sec
t time interval sec
tilt angle rad
x i torsional position rad
x i, y i, z i angular position of ith node rad
x ib angular position of ballscrew in bearing rad
a direction of acceleration vector rad
n tilt stiffness of nut N/m
v direction of velocity vector rad
angular speed of screw rad/sec
torque Nm
e i external torque Nm
y, z tilt torques about Y and Z axes Nm
Chapter 7
d diameter of tube m
h heat transfer coefficient W/(m K)
hr heat transfer coefficient W/(m2 K)
itime row number of time history array -
jx node number -
jQ node at which heat is applied -
k thermal conductivity W/(m K)
l length of coolant hole m
mjx node mass kg
q nett heat flux from surface (eq 7.1) W/m
t time sec
th time of initial heating sec
tstop time at end of cooling phase sec
tcjx node thermal capacity W/K
u convective flow rate of bulk of fluid m/sec
xxiii
vper peripheral speed m/sec
vw average speed of cooling water through hole m/sec
x axial coordinate m
Ac cross-sectional area of conductivity elements m
Asi cylindrical surface area of ith element m
Asijx, surface area of inner cylindrical surface of node m
Asojx surface area of outer cylindrical surface of node m
Cp specific heat at constant pressure J/(kg K)
H heat production rate density (equ 7.6 and eq 7.7) W/kg
H heat transfer rate for the whole ballscrew (eq 7.23) W/K
L characteristic length of surface (eq 7.5) m
L length of bar m
Nu Nusselt number -
Q rate of heat supply at node jQ W
Qc heat conducted along element J
N number of nodes or thermal masses -
Re Reynolds number -
T absolute temperature of surface K
Ta representative temperature of surroundings (radiation) K
Ta ambient temperature K
Tb temperature of ballscrew K
Tw cooling water temperature K
Twi cooling water inlet temperature K
Tavjx average temperature distribution K
Thitime ix temperature time history array K
absorptivity of surface -
q heat gain or loss from cooling water J
t time interval (smaller) sec
x element length m
T temperature difference K
emissivity of surface -
thermal diffusivity m/sec
kinematic viscosity m/sec
xxiv
material density kg/m
w density of water kg/m
Stefann-Boltzmann constant = 5.67210-8 W/(m2 K4)
t time interval (larger) sec
Chapter8
di inside diameter of ballscrew m
do outside diameter of ballscrew m
do eq equivalent outside diameter of ballscrew mm
g acceleration due to gravity m/sec
i, j element or member identifiers -
k roots of characteristic equation of equation (8.A3.4) 1/m
l length of the ballscrew between bearing pack centres m
n a non-zero integer -
p pitch of ballscrew groove m
rg radius of ballscrew groove mm
s screw section number -
w weight per unit length of beam N/m
xj axial position on ballscrew m
y transverse deflections of ballscrew centre m
y(x) deflected shape of ballscrew m
yg distance from outer cylinder of screw to grooves centre of area mm
ym measured values of transverse movement m
ymax maximum transverse deflection m
A amplitude of solution of equation (8.A3.4) m
A dimension in Figure 8.3 mm
Ag cross sectional area of ballscrew groove mm
Ai constants of integration (units dependent on equation)
Aj subvectors of terms used to define deflected shape of ballscrew (various)
B dimension in Figure 8.3 mm
Bi B constants of integration (units dependent on equation)
E modulus of elasticity N/m
EI flexural rigidity of beam N m
xxv
Hij submatrices of quantities determined by geometry of ballscrew (various)
I second moment of area m4
Ki radial stiffness of bearing N/m
L length of beam along X axis m
M bending moment Nm
Mi applied moment at intermediate points on ballscrew Nm
ML applied moment at non-drive end of ballscrew Nm
M0 applied moment at drive end of ballscrew Nm
Nm number of groups of measurements in a set of readings -
Q shear force N
Qi shear load at intermediate points on ballscrew N
QL shear load at non-drive end of ballscrew N
Q0 shear load at drive end of ballscrew N
Vi subvectors of the forces vector N, N m
W total weight of ballscrew N
T pre-tension in ballscrew N
Vp volume of material in a length of screw one pitch long mm
Xi axial coordinates m
roots of characteristic equation equation (8.A3.4) 1/m
x length of element of beam m
radial errors m
angle used in derivation of equivalent outside diameter of screw rad
wave number, equations (8.A2.7) to (8.A2.52) 1/m
non-dimensional factor used in Levenburg-Marquardt method -
mass per unit length or linear density of beam kg/m
roots of characteristic equation (8.A2.5) 1/m
density kg/m
2 chi squared measure of error m
rotational speed of ballscrew rad/sec
i tilt stiffness of bearing N m/rad
Chapter 9
di inner diameter of ballscrew m
do outer diameter of ballscrew m
xxvi
flbs axial flexibility of the ballscrew m/N
flsys total system flexibility referred to the motor shaft between
the motor and the ballscrew nut rad/(N m)
lbs length of ballscrew between its supporting bearings m
kax B1, kax B2 axial stiffness of the ballscrew support bearings N/m
kdr stiffness of drive coupling N m/rad
kms stiffness of motor shaft N m/rad
kbs torsional stiffness of ballscrew N m/rad
mload mass of the nut and saddle and/or table kg
p screw pitch m
x linear position of nut m
Abs cross sectional area of ballscrew m
CE material factor for contact stress m/N
E modulus of elasticity N/m
Ei Youngs modulus N/m
Fnut axial force delivered by the ballscrew to the nut N
G shear modulus N/m
Jm motor inertia kg m
Jtot total referred inertia of the ballscrew drive system kg m
Ns number of helices = number of starts on screw -
R screw ratio m/rad
Tm torque applied to the motor rotor by its electrical fields Nm
Tm net motor output torque Nm
xbs axial deflection at the centre of the nut m
xcomp total deflection to be compensated for m
angular position of ballscrew rad
bs torsional deflection of ballscrew at centre of nut rad
i Poissons ratio -
xxvii
Chapter 1 - INTRODUCTION
In the modern global economy, there is a demand for high precision in manufacture as
competitive pressures drive businesses to seek greater productivity. The resulting high-
volume production has meant that machines have replaced manual labour in many instances.
Following the development of reliable digital electronic technology it became possible to
produce computer numerically controlled (CNC) machine tools. At the present time a great
variety of products or product parts are made on such machines. The annual world wide
demand for machine tools is of the order of 500 million [1]. Japan is one of the worlds
leading suppliers and some 84% of her total production comprise numerically controlled
machines [2].
Most manufactured products are an assembly of many parts. It is highly desirable that
these parts are made to the highest standards of accuracy [3]. Workpiece accuracy is
influenced by the environment in which a machine tool operates, the way it is used and errors
associated with the machine itself. In order to achieve the desired levels of accuracy the
errors associated with machine tools must be reduced to the lowest practicable level. Errors
in machine tools can be grouped under three main categories [4] geometric, thermal [5] and
load [6-9].
In the operation of a machine tool, one or more machine tool drives are needed to move
the tool relative to the workpiece. If the required motion is linear, the motion is generated by
a screw mechanism in which the rotational motion of a screw is transferred to linear motion of
the nut. For machines with above 3 m travel, rack and pinion drives are often employed.
Linear motors are sometimes employed for smaller machines, but screws remain the most
widely used mechanisms. In most modern machine tools, the control of the motion of its
various parts is by means of motor-driven mechanisms governed by an electronic controller.
The controller receives signals from transducers placed at suitable locations on the
machine which enable the position and speed of the different parts to be determined. It uses
this information, together with a set of instructions known as a part program, to determine
how the machine should operate to produce the desired shape in the workpiece. A typical
machine tool drive therefore consists of an electronic controller, an electric motor, a drive
mechanism and transducers or encoders which provide feedback signals to the controller [10].
Modern control systems use digital technology and so errors in the drive system can arise due
to the sampling and quantisation involved in converting analogue signals into digital form.
Errors such as interpolation and servo up-date errors can also be generated while converting
the digital output to the analogue signal used to drive the motor.
[1]
Traditionally the screw mechanisms consisted of a steel helical screw of a square profile
with a matching nut lubricated by oil or grease. Such mechanisms involved a great deal of
sliding friction. In order to reduce problems associated with friction, the ballscrew was
developed where a set of rolling elements are introduced between the screw and the nut. The
basic elements of a ballscrew are
a screw with one or more helical grooves on its outer surface,
a sleeve known as a nut which has corresponding grooves on its inner surface,
and
a set of balls which provide rolling contact between the screw and the nut.
The main considerations taken into account when designing a ballscrew are that
it should be strong enough to carry the loads imposed
it should be durable enough in terms of fatigue life and wear characteristics of
the materials involved to last for the design life
it should be rigid enough to meet the required precision
it should be dynamically stable throughout its operating envelope. In practice this
means that the system should not operate at or near sensitive natural frequencies for
long enough for troublesome vibrations to occur.
In order that the nut runs freely on the screw, there must be a small amount of clearance
between the balls and the grooves they run in. This gives rise to backlash between the nut
and the screw. In most instances the screw, nut and balls are made of an appropriate grade of
steel and can be made to a high level of accuracy, especially where ground screws are
employed. Cooling of the parts of the ballscrew can be achieved by passing a water based
coolant through hollow passage ways in the parts where the cooling is desired. Ballscrew
drives are used in a wide variety of machines with drive travels of up to about three metres.
Ballscrews are the first choice for many machine tool drives. The error associated with
ballscrews which has a direct effect on the machine performance is the pitch error associated
with the screw grooves. Others include thermal growth of the screw and elastic deformation
due to the dynamic loads imposed on the screw. An understanding of these errors is
important to improving the accuracy of machine tool drives.
Two strategies can be deployed to improve the accuracy of a machine, viz:
error avoidance this approach minimises errors through better machine design,
construction and control of the machines environment [11].
[2]
error compensation this approach seeks to compensate for errors which cannot be
eliminated. The assumption is made that many errors are repeatable and predictable.
A model of the machines behaviour can therefore be made which describes the
machine tool and which can be validated experimentally [12]. The information
received from the modelled simulations can be used along with data from the
machines transducers by the machines controller to improve the accuracy of the
manufactured parts.
Error avoidance in ballscrews is normally achieved by making the components from
suitably tough grades of steel and maximising dimensional accuracy by using grinding to
finish the surfaces most relevant to positional accuracy. Backlash can be removed by using
one of the several ways of applying preload, (see 3.1, p 22).
Commercially it is desirable to be able to achieve the desired accuracy by compensating in
the most cost-effective way. In this context it is best, where possible, to avoid using
expensive special environments such as temperature controlled rooms. Also it is better to use
pre-calibrated measurements for known errors in machine tools rather than rely on additional
measuring equipment which may prove vulnerable to coolant, swarf and other hostile
elements in the machine tool environment. Well formulated mathematical models can take a
useful role in understanding the effects which generate errors so that improvements in the
manufacturing process can be made. Advances have been made recently in the modelling of
CNC machine tool feed drives [13, 14], particularly hybrid modelling [15], though these do
not deal with details of the behaviour which might arise from movement of the nut. These
have been used as a starting point for the development of a new approach to ballscrew
modelling.
The programme of research described in this investigation will seek to develop means of
understanding the static, dynamic and thermal behaviour of a ballscrew system and to
incorporate that understanding in a set of mathematical models. The prime purpose of a
ballscrew is to move one part of a machine relative to another. This movement causes some
of the characteristics of the machine, for example, the effective stiffness of the ballscrew to
change. Therefore, a case of special concern in ballscrew systems is that of the dynamics of a
system where the characteristics change with time. This can be been addressed under two
broad headings first, axial and torsional, and second transverse.
Any torsional or axial deflection of the screw, or axial movement within the support
bearings, or axial movement in the nut has a direct impact on errors generated by the
ballscrew system. The modelling method is based on the discrete matter approach and
[3]
involves setting up a set of matrices to represent the mass, damping and stiffness of the
components of the ballscrew system. The changes in the characteristics of the system are
modelled by updating these matrices as the solution proceeds. The solution is obtained by a
series method which avoids the repeated inversion of large matrices. Comparisons are made
with classical solutions based on elastic beam theory.
The transverse case has to do mainly with the vibration of the screw. Since the bearings
and nut give radial restraints to the screw, it is to be expected that the natural frequencies of a
ballscrew system will change with the position of the nut along the screw. Whether or not
any particular natural frequency is of detriment to the performance of the machine of which
the ballscrew is part will depend on the severity of the vibration which occurs. This depends
in part on the damping involved, the magnitude of the excitation forces and the time that such
excitation is effective at frequencies close to that natural frequency. All of these points can be
addressed using the method developed in this programme of research. Problems with the
method have been identified and overcome. Non-linear phenomena such as Coulomb friction
and backlash can be accommodated.
The dynamic model has built into it a means of determining the heat generated by the
dissipative mechanisms active in a ballscrew system. The thermal model takes account of the
heat generating processes, the means of distributing the heat throughout the ballscrew system
and the means of losing heat to its surroundings. It can therefore generate predictions of the
temperature distribution throughout the ballscrew system and the resulting thermally induced
movements. Consideration is also given to the various means of cooling available for
different parts of the ballscrew system.
Use has been made of a special rig developed during the investigation to undertake various
tests of these models. Consideration has also been given to the aspects of ballscrew design
which influence error generation and what steps may be taken to minimise errors. Finally a
means of applying compensations for some of the effects identified is put forward. Taken
together, the models contribute to knowledge by enabling a deeper understanding to be gained
into
the interaction between the various details of ballscrew design,
the dynamic behaviour of a ballscrew drive and
the thermal behaviour of the systems into which the ballscrew is to be built.
The aims of this research therefore are:-
[4]
to prepare a mathematical model of a ballscrew which takes into account the
geometric, thermal and load errors commonly encountered on CNC machine tools and
to devise strategies and algorithms for the correction of these errors.
The objectives of the research can be listed as follows:-
Starting from a basic understanding of the behaviour of a ballscrew, to outline the
relevant static elastic theory, dynamic elastic theory and the theory of thermal
modelling.
To develop further the dynamic theory by examining the continuous matter approach
including wave solutions and the discrete matter (or lumped mass) approach with its
matrix solutions.
To extend the classical eigenvalue method for finding the natural frequencies and
other dynamic characteristics of ballscrew systems and to include viscous damping
effects using a generalised eigenvalue approach. This will give estimates of not only
the natural frequencies, but also the damping coefficient of each predicted vibration
mode [16]. The sensitivity of the system to changes in stiffness and damping
characteristics will also be derived.
To devise a method of modelling a ballscrew driven mechanical system with a moving
nut whose configuration changes with time.
To develop a means of compiling a mathematical model which includes non-linear
phenomena such as backlash and Coulomb friction as well as time dependent stiffness
and damping characteristics.
To apply the new approach to the axial and torsional behaviour of the screw with a
view to predicting the position error of the ballscrew nut.
To apply the new approach to the transverse behaviour with a view to predicting the
vibration characteristics of the screw.
To develop the mechanical model in such a way that the energy dissipative
mechanisms give a prediction of heat inputs for a model of the thermal behaviour.
To develop a model to predict the thermal behaviour of a ballscrew system
To consider the feasibility of cooling parts of the ballscrew system with a view to
reducing thermal errors.
To compare the simulated results of the models with data measured from the test rig
and other relevant experimental data that is in the public domain or within the
University internal reports.
[5]
To consider ways of reducing errors by changes in the design of a ballscrew.
To devise a means of correcting ballscrew errors which will improve the accuracy of a
machine tool.
The investigation has added a novel method of analysing machine tool drives which takes
into account the characteristics of the ballscrew system which change as the nut moves along
the screw. This can be especially helpful in analysing a systems susceptibility to high levels
of vibration due to the excitation of its natural frequencies. It also includes a useful extension
to eigenvalue analysis applied to machine tool drives.
The remainder of the thesis is divided into the following chapters:-
Chapter 2 is a critical review of the literature in the public domain. The results of
the review lead to the topics covered by this investigation.
In Chapter 3 the theoretical background is set out. This includes the basic
behaviour of a ballscrew, errors in machine tool drives and static elastic theory as
applied to ballscrew action. The applicable dynamic elastic theory and the
approach to thermal modelling are also introduced.
The approach to dynamic modelling is developed in Chapter 4. Continuous matter
methods including wave solutions and lumped mass methods with their matrix
solutions are discussed leading on to a generalised eigenvalue model of a machine
tool drive. The chapter finishes by outlining a method of undertaking an analysis
of the sensitivity of such a drive to changes in its system parameters.
A method for analysing the dynamic behaviour of a system whose dynamic
characteristics change with time is developed in Chapter 5. The case of the axial
and torsional degrees of freedom of a machine tool drive including a ballscrew is
solved and comparisons with classical elastic theory are made.
In Chapter 6 the solution is extended to include the transverse degrees of freedom
of the ballscrew. Consideration is made of the static case of gravitational sag and
the effects of pre-tension in the screw. A comparison with a conventional
consideration of a dynamic case is made.
Thermal modelling is discussed in Chapter 7. The thermal characteristics of
various components of a machine tool drive are described and the one dimensional
approach to modelling the screw is justified. Various aspects of cooling are also
covered.
Chapter 8 covers the experimental verification of various aspects of the models.
[6]
In Chapter 9 error reduction is discussed including reduction through design and
reduction through compensation.
The conclusions to the investigation are drawn in Chapter 10 and
recommendations for further research are made.
The first part of the investigation is the review of literature in public domain and follows in
Chapter 2.
[7]
Chapter 2 - LITERATURE SURVEY
Screw based mechanisms have been in use since early times. The name of Archimedes (287
212 or 211 BC) [17, 18] is associated with a helical device used for moving water. Similar
devices are used extensively today for moving bulk solids [19]. The use of screws for
transmitting force and motion also dates back to the middle ages. In the Mittelalterliche
Hausbuch of about 1480 a lathe with a screw device to control the motion of the cutting tool was
shown [20].
[8]
to a variety of bodies in contact. However, the behaviour of the components of a ballscrew is
only a sub-set of the phenomena covered. Balls are the simplest possible form of rolling
element, having but one positive curvature, in theory at least. The raceways are most commonly
of gothic profile. So their section consists of two circles which overlap in such a way that
there is a cusp at the lowest point of the profile. This simplifies the pattern of contact to two
point or four point contact. The detailed contact behaviour of the balls and raceways has an
effect on the heat generated by the operation of a ballscrew, and on the wear of these parts.
However, it is the axial deviations of the raceways, especially that of the screw (screw pitch
errors), which contribute most to the geometric errors generated by ballscrew drives. Calculation
methods based on a simpler set of assumptions are widely used by ballscrew manufacturers to
estimate the static behaviour of their products [26].
[9]
the Windows operating system and incorporates a user-friendly graphical interface. This
approach is considerably faster than standard techniques for measuring static errors. It also
enables patterns of errors to be identified that normal methods would miss.
The analysis of errors arising from component variations in geometry and temperature of a
non-Cartesian machine is far more complex than in the case of the Cartesian machine. Freeman
et al [30] described techniques leading to the development of general software which is capable
of analysing the geometric and thermal errors in any structure consisting of measurable struts.
Three dimensional plots of errors in any plane can be produced. The limitation that the machine
should be made of struts is not so restrictive as it might appear, since solid components can
usually be modelled as interconnected struts if large temperature gradients do not cause thermal
deformation of the machines components. The approach is to divide a machine into sub-
assemblies and to analyse each of these individually. This method enables the errors arising
from a source of heat, (such as a spindle motor), to be evaluated, and also the effect of random
errors in strut lengths. It is very useful when dealing with non-conventional machine formats.
Ford et al [31] have developed a unique algorithm, based on an indirect identification pre-
calibrated technique, which allows the system to compensate for geometric error components of
the normal orthogonal machine tool configuration. The method takes into account both rigid
body effects and the behaviour of some machine specific non-rigid elements. It introduces a
novel technique for reducing workpiece errors caused by the thermal distortion of a
CNC machine tool. The universal rigid body compensation model which works for machines
with up to three axes includes machine specific non-rigid body and thermal effects. It can
achieve accuracy improvements of the order of 10:1 up to 30:1. A universal non-rigid body
compensation was not possible. Models specific to each machine need to be developed and
incorporated into the machines compensation system. A similar approach is needed for thermal
distortion.
White et al discussed [32] the relative accuracy of ballscrews and linear encoders over a broad
range of application configurations and usage conditions. Frank and Ruech [33] made similar
comparisons. It was shown that ballscrew expansion is the largest thermal error source within a
broad range of CNC machine tool configurations and running conditions when a rotary encoder
fitted at the end of the ballscrew is used to measure the position of the axis. Such an
arrangement exhibits offset, scale and reversal errors that change quickly according to the
thermal state of the ball-screw. It was found that linear encoder measurement systems exhibit
the same error categories, but generally with smaller maximum values, and slower rates of
change. The thermal errors exhibited by ball-screws are primarily due to an inability to de-
[10]
couple the measuring system from the heat in the ball-screw and mounting system that sets the
position of the tool relative to the work-piece.
Linear expansion and distortion of the structural elements also cause unwanted movement
between the tool and workpiece. Heat inputs that cause temperature elevation and gradients
come from many sources, both internal and external to the machine tool. Internal sources
include drive motors, ballscrews and the cutting action of the tool. External sources include
sunlight and draughts from convective heating systems. This makes thermal errors difficult to
control without some form of compensation. Many thermal error modelling and compensation
systems have been proposed which use neural networks [34], multi-regression analysis [35], heat
modelling [36] or probing techniques [37]. However, each method suffers from one or more
major drawbacks that limits its effectiveness when used in a practical machining environment.
One feature of all the thermal error compensation techniques is the lack of flexibility that makes
them difficult to apply to more than one machine type in a timely and cost-effective way.
White et al [38] described a combined thermal and geometric error compensation system with
a flexible structure that is general purpose in its application to any machine tool. The system can
accept input from any number of temperature sensors. Using data from a single test on the
machine, a novel Matlab model can be programmed in such a way that it estimates its thermal
movement. The program then directs error values to a number of outputs which are used by the
machine controller to effect compensation by axis position modification. The entire
compensation system can be applied either in a stand-alone computer that accepts a wide range
of feedback signal types, or integrated into an open architecture machine controller. The system
allows the management of temporary or permanent input failures and displays every thermal
error component as an aid to fault diagnosis. Both position independent and position dependent
thermal errors can be reduced through compensation. The system has been applied to several
machine tools, and has shown itself capable of reducing thermal movements between the tool
and the workpiece by over 6 times when using a quick heating and cooling test for calibration.
The connectivity of the structural elements determines the effect of the expansion and
distortion on the relative positions of the tool and workpiece, leading to thermal errors on the
workpiece. Measurement on a wide range of machine tools has confirmed that temperature
gradients are significant in their effect on machining accuracy and that they move and change
shape during the machining process. White et al [39] demonstrated a bending model that
estimates the effects of thermal distortion using knowledge of the position of the temperature
gradient which is derived. The performance of the bending model was compared with a finite
element model and a model that has no knowledge of the position of temperature gradients.
[11]
Results obtained from a vertical machining centre show that knowledge of the position and
magnitude of temperature gradients is an essential part of predicting thermal distortion
accurately.
Freeman et al [40] developed a system which minimises the number of temperature sensors
used as inputs to a thermal simulation model of the ball-screw which is used to estimate on-line
the thermal errors of the ball-screw. Assuming that position measurements of the nut are
available from the rotary encoder, it is possible to calculate the speed of the screw. Assuming a
knowledge of the frictional and heat transfer characteristics, and using the speed and the
measured temperatures of the nut and bearings, the heat generated in the nut, bearings and screw
can be estimated. The thermal model constitutes a one-dimensional finite analysis of the whole
length of the screw. The output of the model is a temperature distribution along the screw and an
estimate of the thermal errors along the screw.
They also described an experimental test rig, which provided facilities to test the model on-
line. The position measured with a laser interferometer was compared with the estimated
position derived from the model. The results were displayed graphically and saved for future use
in optimisation software to determine the parameters of the thermal model which best fit the
experimental data. Improvements of better than 90% in the thermal error have been obtained.
The software is capable of making estimates of the thermal behaviour of a user-specified ball-
screw in an off-line simulation mode. This can be used to aid design and help understand the
effect of thermal errors on machine accuracy.
Postlethwaite et al [41] described a novel compensation technique, based on indirect
measurement of thermal error, that overcomes the main difficulties of applying thermal
compensation, making it practical and generally applicable. The technique makes extensive use
of thermal imaging for rapid assessment of machine tool thermal behaviour and off-line
development of the compensation models. It was applied to the head-slide of a vertical
machining centre.
It is difficult to develop a practical single compensation strategy which can deal with different
aspects of machine tool thermal behaviour. Systems which attempt to do this are usually
complex and time consuming to implement. Postlethwaite et al [42] devised a range of relatively
simple error tracking techniques, and a formalised philosophy for determining which technique
is appropriate in each case. The different techniques were illustrated by four case studies. The
approach is to split the problem of finding the best error compensation strategy into two phases:-
1. to undertake an assessment of the thermal behaviour of the machine tool. At this
stage an understanding of the type and magnitude of likely thermal errors is gained.
[12]
2. The selection and implementation of a suitable compensation method.
Improvements in accuracy of 2.5:1 to 6:1 were achieved in the case studies used.
Machine tool thermal distortion can account for 75% of the total machining error [43]. The
approaches taken to achieve thermal error reduction can be divided into two broad categories:-
(a) reducing structural temperature change and
(b) reducing the effect of structural temperature change.
Postlethwaite et al [43] discussed a number of representative examples of applied thermal
error reduction techniques that utilise machine design and compensation. White et al [44]
described tests that have been performed on ten different CNC machine tools of widely differing
configurations. These tests aimed to identify thermal errors and methods by which these errors
may be eliminated from components produced by these machines. The general testing
methodology used, the data recorded and analysed from the tests, and a list of actions which may
be performed in order to reduce the thermal errors in the machines tested were explained. The
general testing methodology has evolved from both the BSI 3800 part 3 standard and the need to
identify the factors affecting thermal errors. Thermal imaging, non-contact probes, level sensing
equipment, material constructed from invar and appropriate exercise of machine functions have
all been used to identify thermal errors. The data recorded has identified thermal errors that can
be associated with particular mechanism types. Mechanisms investigated include ball-screws,
hydro-screws, linear scales, hydrostatic bearings, structures, and cooling systems within
structures. Reduction in the thermal errors can be achieved by design changes, improved chiller
settings, application of linear scales and revised probing systems. It has become clear that a
fundamental understanding of the mechanical arrangement of a particular machine is essential in
order to reduce thermal errors in an economic and effective manner. The paper takes a broad
overview of the mechanisms which give rise to thermal errors in CNC machine tools. It draws
particular attention to the significance of ballscrew thermal errors and the sensitivity of ballscrew
pre-tension to changes in temperature.
Working in a similar field Pahk and Lee [45] measured and modelled thermal error caused by
heat generated by the spindle. They have used linear regression, neural network, and system
identification methods. The general conclusion was drawn that the System Identification model
performed better than those based on linear regression or neural network techniques.
Providing a comprehensive compensation system able to cope with the variety of axis
combinations and configurations available in the modern machine tool market is a potentially
complex matter. This problem is compounded by the demand from industry for precision 5 axis
machining. Postlethwaite et al [46] described a practical geometric error compensation system
[13]
that can be applied to any machine tool that has up to 5 axes. The system can correct for the
effects of all the geometric errors associated with a machines linear axes, together with the
geometric errors associated with a fork type servo head. The system applies compensation
dynamically and in real time as the machine moves throughout its working volume.
Machine calibration has become an important tool for assessing and maintaining machine
accuracy, and for providing a measure of production quality. The calibration techniques
supported by the calibration standards and the available metrology technology use static
measurement cycles. Static calibration cycles can be time consuming to perform, and with
coarse step sizes cannot give a complete picture of the machine performance.
Recent advances in the laser interferometer technology used for machine calibration allow
data to be captured dynamically. Dynamic data capture technology provides the potential for
dynamic machine calibration. Dynamic calibration overcomes the inherent problems of static
calibration, being quick to perform and providing detailed information on machine performance.
Postlethwaite et al [47] described the concept of dynamic machine calibration. In particular a
novel dynamic calibration technique, utilising the Renishaw laser system, was devised. Capture
rates between 5 kHz and 10 kHz are possible and up to 75,000 data points can be processed.
Ford et al [48] described an investigation into a laser feedback transducer for high
performance CNC machine tool applications. A commercial system available at the time
operated at 1 m/s but it was anticipated that further development using the latest state of the art
technology would miniaturise the transducer and lower its cost. The interface between the
transducer and the controller incorporated a compensation card through which compensation for
machine tool geometric, load and thermal errors can be applied in real time.
[14]
whole model. It represents the basis for future incorporation of geometric, non-rigid and thermal
models of machine tool behaviour. A two-axis model for CNC machine tool axis drives shows
how geometric errors affect the machining accuracy across the working volume. A comparison
was made between the simulated errors and those measured directly from the machine by a ball
bar. The method described represents an advance on simple lumped-parameter methods and
compared well with results from classical control theory. Hybrid models which incorporate
distributed loads have also been developed [15]. These models take account of the electrical
characteristics of the controller, sensors and feed-back loops and the electrical and mechanical
behaviour of the drive motor and drive system components using lumped parameter or
distributed parameter techniques as appropriate.
Various methods have been used to determine the dynamic parameters, as well as the friction
characteristics of machine tool drives. For example Erkorkmaz and Altintas [52] have used a
method based on jogging the axes at various speeds under closed loop control while observing
the disturbance torque through a Kalman filter. The parameters of the model were derived from
observations of the dynamic response by a least squares method. As verification of the identified
friction model, contouring test results without and with friction compensation are also presented.
Working in a similar field, Ro et al [53] found that the performance of ball-screw-driven slide
systems using standard proportional-integral-derivative (PID) control algorithms is
unsatisfactory in sub-micrometre motion control because of non-linear friction effects. They
have developed controllers based on a bristle-type nonlinear contact model which have been
implemented for sub-micrometre motion. A proportional-derivative (PD) control scheme with a
non-linear friction estimate algorithm was developed, and its performance was compared with
that of a PID controller. For tracking performance, a disturbance observer was added to reject
external disturbances and to improve robustness. The experimental results indicated that the
proposed controller has consistent performance in positioning with under 1.5% of steady-state
error in the sub-micrometre range. The proposed controller showed good and robust behaviour
with respect to parameter variation.
An important limitation in the high performance controlled motion systems is due to the
interaction between a flexible mechanism and its feedback controller. Dequidt et al [54] have
sought to include this interaction in the mechanical design. They have generated some design
rules with a generic model which includes this interaction. Afterwards, with these new design
rules it is possible to determine the bandwidth and the inertial ratio of the mechanism to meet the
controlled motion requirements (e.g., speed and precision). With these rules and some other
classical rules, an attempt to raise the selection of design solutions has been set within the
[15]
context of the ball screw drive system for high speed machine tools (e.g., kinematics,
components and sensor location choices).
Braasch [55], (see Figure 2.1), considered whether linear encoders or rotary encoders and
ballscrews represent the best solution for measurement on NC machine tools. The action of the
balls - wavy motion, changes in speed of spin going in and out of the recirculation system and
the frictional behaviour involved was discussed without giving any modelling method. He
concluded that the primary problem involved with position measurement using a rotary encoder
attached to the drive motor and a ballscrew is the thermal expansion of the ballscrew and that a
linear encoder would be better as requirements for machine tool accuracy and speed increase.
Figure 2.1 The essential elements of a typical machine tool drive [55]
Huang [56] used a multiple regression method to generate a model based on experimental
measurements. The front bearing, ballscrew nut and back bearing are the key points of heat
sources and were used as independent variables of the analysis model. The method succeeded in
predicting the thermal deformation of the ballscrew under a variety of speed conditions. Yun et
al [57] have also analysed a ballscrew using a modified lump capacitance model and a fuzzy
logic like approach to fitting the model to measured data. Their method gave predictions which
compared well with data from a laser interferometer. Only linear positioning error at the tool tip
was attributed to the ballscrew. The authors recommended taking into account the
characteristics of the guideway as well as those of the ballscrew since some of the errors they
measured arose from tilt errors in the guideways.
Kim and Cho [58] tried to model the thermal behaviour of a ballscrew using a finite element
method. This worked well for a steady state, but they found that a modified lumped parameter
method gave better results for real-time estimation of the temperature distribution. They claim to
[16]
be able to estimate the temperature of the ballscrew shaft to within 5% deviation in several
milliseconds.
Lin et al [59] have developed a method for evaluating the efficiency of a ballscrew nut based
on both quasi-static and dynamic considerations and have derived a design procedure from this.
An exact theory based on the simultaneous solution of both the Newton-Euler equations of
motion and the relevant kinematic equations was employed to determine mechanism efficiency.
The steady-state motion of all components within the ballscrew could also be calculated.
However, the development of design methods based on this exact theory was difficult due to the
extensive computation necessary. Therefore an approximate closed-form representation, that
still accounts for the ballscrew dynamics, was derived. The validity of this closed-form solution
has been proven. It was then used as a basis for developing an optimum design methodology for
the ballscrew mechanism based on efficiency. Additionally, the self braking condition was
examined, where the internal friction prevents torsional movement of a screw mechanism in the
case where axial loads are applied to the nut. Load capacity considerations were also taken into
account.
Greater accuracy in axial positioning a ballscrew nut can be obtained by pre-loading the
assembly, but too much pre-load can shorten life. Markhauser [60] has given a method for
calculating the stiffness and optimum pre-load of a ballscrew to provide maximum accuracy for
the required life expectancy.
Thermal stress can have an adverse effect on the accuracy of measurements taken by indirect
means. Therefore it is vital to improve our understanding of the thermal behaviour of the drive
systems used in modern machine tools in order to improve the drives performance. Schmitt
[61] has used a variety of analytical methods to derive a model of the heat transfer process in the
mechanical structure of a CNC controlled feed system. The model includes the bearings and belt
as well as the ballscrew. Friction characteristics, heat flow, and radiation and convection of heat
from the screw are taken into account. A real-time error compensation method was derived.
Using this method the CNC controller gave a substantially improved performance in positioning
accuracy of the feed axes for a variety of operating conditions. He concluded that an
inexpensive improvement in the positioning accuracy of the form feed axes can be obtained
using indirect measurements but control of the heat sources falls into the scope of an overall
compensation package.
[17]
2.4 Analysis of vibration damping for feed drives
The amplitude of vibration response to various stimuli is determined to a large extent by the
level of damping. Damping can take several forms (viscous, hysteresis, friction etc.) [62], but
only viscous damping is a linear phenomenon and therefore more amenable to mathematical
analysis. The response of damped systems can be studied by a forced damped approach [63]
in which various stimuli (for example out-of-balance forces) can be applied to a system. A
picture can be built up for the vibration characteristics of the system by applying such forces at a
variety of frequencies.
Holroyd [64] modelled the friction and damping in a typical ballscrew machine drive. The
machine used was a CNC milling machine which has a vertical spindle mounted on a fixed
column. The drives for the horizontal axes consisted of a DC electric motor driving a ballscrew
via a belt drive, the ballscrew then driving the table (X drive) or saddle (Y drive). The axis
drives were simulated using the MATLAB/Simulink package. The principal natural frequency
and its damping factor were measured for both of these drives. A set of mathematically stable
models were produced which modelled the main vibration characteristics of the system.
The natural frequencies can be determined by an eigenvalue method without applying stimuli
over a range of frequencies if no damping is involved. Holroyd et al [65] presented a theoretical
analysis of a CNC machine tool drive and used it as a basis on which to develop a method of
studying the effects of the damping elements in the drive. The torsional behaviour of the drives
mechanical components was considered. The mechanical elements of the drive were modelled
as point inertias coupled by springs and dampers using MATLAB/Simulink. The undamped
natural frequencies and their likely mode shapes were determined using an eigenvalue approach
in order to act as a guide to the numbers expected. The effect of the distributed mass in the
ballscrew was also investigated. Comparison with measurements gave values of the dynamic
stiffness and damping factor governing the lowest of the observed natural frequencies. This
approach can be used as a basis for investigations into other aspects of the dynamic behaviour of
machine tool drives, (for example those arising from Coulomb friction, viscous damping and
hydrodynamic drag, and the backlash in the ball-screw). The method is limited to coupled axial
and torsional behaviour and some of the parameters are difficult to measure. The models are
capable of predicting many of the natural frequencies which have been observed. The models
are also limited to the nut being set in a particular position on the screw. This position can be
changed from analysis to analysis, but the effects of the continuous change in nut position which
in fact takes place in a ballscrew driven system are not included.
[18]
The sensitivity of eigensystems has been analysed by the use of derivatives. These methods
involve the use of sophisticated mathematical techniques which are necessary when dealing with
computationally large problems involving large order matrices.
Adhikari [66] derived a method to calculate derivatives of eigenvectors of damped discrete
linear dynamic systems with respect to the system parameter. The eigenvectors and their
derivatives become complex due to the non-proportional nature of the damping. The derivatives
were calculated using a small damping assumption, and the method avoids using the state-space
approach. The results were obtained in terms of complex modes and frequencies of the second-
order system, which in turn are related to the eigensolutions of the undamped system using a
perturbation method. Based on the derivatives, an expression for total change of the complex
eigenvectors was obtained for a more general case when all the elements of mass, stiffness and
damping matrices are varying.
Nelson [67] presented a simplified procedure for the determination of the derivatives of
eigenvectors of nth order algebraic eigensystems. The method is applicable to symmetric or
nonsymmetric systems, and requires knowledge of only one eigenvalue and its associated right
and left eigenvectors. The matrix of the original eigensystem of rank (n-1) is modified to
convert it to a matrix of rank n. This can be solved directly for a vector which, together with the
eigenvector, gives the eigenvector derivative to within an arbitrary constant. The norm of the
eigenvector is used to determine this constant and complete the calculation.
In its early stages, sensitivity analysis found its predominant use in assessing the effect of
varying parameters in mathematical models of control systems. Adelman and Haftka [68] have
surveyed methods for calculating sensitivity derivatives for discrete structural systems. They
describe methods for calculating derivatives of static displacements and stresses, eigenvalues and
eigenvectors, transient structural response, and derivatives of optimum structural designs with
respect to the parameters of the systems involved.
Murthy and Haftka [69] have concentrated on reviewing methods for sensitivity analysis of
the algebraic eigenvalue problem for non-Hermitian matrices. They put forward a modification
of one method based on a better normalising condition. Methods are classified as Direct or
Adjoint and are evaluated for efficiency. Operation counts are presented in terms of matrix size,
number of design variables and number of eigenvalues and eigenvectors of interest. The effect
of the sparsity of the matrix and its derivatives has also been considered, and typical solution
times are given. General guidelines are established for the selection of the most efficient
method.
[19]
Zeng [70] has derived a highly accurate modal superposition method for computing complex
eigenvector derivatives in viscous damping systems. The conventional modal superposition
method cannot give an accurate solution when higher modes are truncated, and the errors may
become significant. In Zengs method, calculating the derivatives is regarded equivalent to
calculating the structural response to harmonic excitation. Using multiple modal accelerations
and shifted-poles, highly accurate results would be obtained when only few modes are used.
Numerical examples show that it achieves better calculation efficiency than other available
modal methods and Nelson's method when more than one eigenvector derivative is of interest.
Moreover, the presented method can be used to improve response calculations and substructure
syntheses.
Perturbation methods can also be used. For example, Cronin, [71] has derived a perturbation
method for the eigenanalysis of non-classically damped dynamic systems. The method appears
to be suitable for the rapid determination to any accuracy of one or all of a system's complex
eigenvalue-eigenvector pairs. It is not limited to the case where the system damping matrix is
symmetric. Being capable of handling non-symmetric matrices, the method is suitable for the
eigenanalysis of gyroscopic and other interesting systems. The derivation of the method
involves a partial diagonalisation of the homogeneous equations of motion by the eigenvectors of
the undamped system. A perturbation quantity based on the off-diagonal terms of the partially
diagonalised damping matrix is defined. The eigenvalues and eigenvectors for the damped
system are described in terms of power series in the perturbation quantity. Equations have been
developed for the general coefficient in each power series. The potential value of the method is
illustrated by the eigenanalysis of a set of example systems. For the majority of the systems
analysed, the method produced results in less time than the standard Foss approach to curve
fitting [72].
Woodhouse [73] used both a dissipation matrix and a general linear model to deal with the
case of light damping. Linear damping models for structural vibration were examined: first the
familiar dissipation-matrix model, then the general linear model. In both cases, an
approximation of light damping was used to obtain simple expressions for damped natural
frequencies, complex mode shapes, and transfer functions. Results for transfer functions can be
expressed in the form of simple extensions of the expression for the undamped case. This
allowed a detailed discussion of the implications of the various models of damping for the
interpretation of measured transfer functions, especially in the context of experimental modal
analysis. In the case of a dissipation-matrix model, it would be possible in principle to determine
all the model parameters from measurements. In the case of the general model, however, there is
[20]
a fundamental ambiguity which prevents full determination of the model from measurements on
a single structure.
2.5 Summary
Modelling of screw mechanisms has developed from the pioneering work of Ball to the more
recent sophisticated work of Pfister. A body of expertise on machine tool errors and means of
compensating for them has been built up by Ford, Postlethwaite and White. Freeman and White
have done some useful research on thermal errors associated with ballscrews. Schmidt and
Pislaru have done detailed work on modelling of ballscrew drive systems. Together their work
has led to the development of successful models of ballscrew drives which take into account the
known characteristics, both mechanical and thermal, of the components of a ballscrew drive and
predict some of the dynamic behaviour in such a way that a means of compensation can be
applied to the drive systems controller. However, the way that the dynamic characteristics
change as the nut moves along the screw is especially relevant to machine tool applications.
An enhancement to modelling methods which deals with this aspect of ballscrew behaviour
would therefore be a useful addition to the available methods.
An approach to this might be to use finite element analysis (FEA), a computer simulation
technique widely used in the analysis of a variety of engineering and scientific systems. The
range of problems which can be covered includes, but is not limited to, analysis of linear and
non-linear static systems, problems involving elastic instability (buckling), dynamic analysis,
modal analysis, frequency analysis, thermal analysis and fluid flow problems, and various
combinations of some of these. It uses a numerical technique called the finite element method
(FEM).
[21]
Analysis (computation of solution) involves carrying out a series of computational procedures
involving applied forces, and the properties of the elements which produced the system model.
The procedures are commonly based on an energy principle such as the virtual work principle or
the minimum total potential energy principle. In a mechanical system such an analysis allows
the determination of deformations, strains, and stresses which are caused by the applied
structural loads. In a thermal analysis, temperatures and heat flows are computed.
Post-processing. The results can then be presented in a variety of ways. This often involves
the use of visualisation tools within the FEA environment to view the results and to identify the
implications of the analysis.
Because the method can be applied to very complex systems which cannot be analysed
mathematically by any other means, a lot of effort has been put into the development of finite
element software packages which are capable of solving such problems. The use of such
packages has enabled the speedier development of complex structures and the reduction of the
amount of prototype testing required.
The mathematical aspects of finite element analysis were first developed in 1943 by Richard
Courant, who used a numerical method to obtain approximate solutions to vibration systems
[130]. Much of the early structural finite element analysis was developed in British aerospace
research. By late 1950s, the key concepts of stiffness matrix and element assembly existed
essentially in the form used today and the American space research agency NASA started the
development of the finite element software NASTRAN in 1965.
Nowadays there are many finite element packages available, both free and proprietary.
Proprietary ones include ALGOR, ANSYS, ABAQUS, LUSAS, LS-DYNA, NASTRAN,
SAMCEF, STAMPACK and STRAND7.
ALGOR offers a series of packages based on their FEMPRO finite element modeling, results
evaluation and presentation interface, the most comprehensive of which, Professional
Multiphysics, includes, mechanical event simulation and static stress analysis with linear and
nonlinear material models, linear dynamic analysis, steady-state and transient heat transfer
analysis, steady and unsteady fluid flow analysis and electrostatic analysis [131].
[22]
ABAQUS supplies a standard version which can carry out a wide range of linear and
nonlinear engineering simulations efficiently, accurately, and reliably, making it an effective tool
for many engineering analyses. They also supply an explicit version which is particularly well
suited to simulate brief transient dynamic events such as consumer electronics drop testing,
automotive crashworthiness, and ballistic impact. A common analysis requirement is the
treatment of distinct solution regimes where the characteristic time scale within each regime is
different. From any point within an Abaqus/Explicit run, the analysis can be "imported" as the
starting conditions for continuation in Abaqus/Standard. Similarly, an analysis that starts in
Abaqus/Standard can be imported as the starting conditions for continuation in Abaqus/Explicit.
The flexibility provided by this integration allows Abaqus/Explicit to be applied to those
portions of the analysis where high-speed, nonlinear, transient response dominates the solution;
while Abaqus/Standard may be applied to those portions of the analysis that are well-suited to an
implicit solution technique, such as static, low-speed dynamic, or steady-state transport analyses
[133].
Similarly LUSAS sells a base version of their software which is suitable for linear static
and linear dynamic analysis with optional add-ons which cover non-linear and thermal analyses.
They also have some special versions designed to deal with civil engineering applications [134].
LS-DYNA is an explicit finite element program for the analysis of the non-linear dynamic
response of three dimensional structures. It includes nearly 100 models to simulate a whole
range of engineering materials from steels to composites and soft foams to concrete. Coupled
thermal/structural problems can also be handled [135].
NASTRAN is a finite element analysis program that was originally developed for NASA in
the late 1960s. Nowadays NASTRAN source code is used in a number of commercial software
packages. It is written primarily in FORTRAN and is compatible with a large variety of
computers and operating systems. It has been designed to consist of several modules each of
which is a collection of subroutines designed to perform a specific task, e.g. processing model
geometry, assembling matrices, applying constraints, solving matrix problems, calculating output
quantities, conversing with the database, printing the solution, and so on. The modules are
controlled by an internal language called the Direct Matrix Abstraction Program (DMAP). The
capabilites include linear and non-linear static, buckling, modal, eigenvalue, frequency response,
transient response, non-linear static and non-linear transient with heat transfer, and design
optimization and sensitivity analysis. Commercially available versions include MSC Nastran
and NEi Nastran [136, 137].
[23]
SAMCEF is another suite of general-purpose analysis software modules which uses finite
element methods [138].
STRAND7 is a finite element analysis package designed and built for Windows. It includes
a variety of one- two- and three-dimensional elements and range of constraints. It can handle a
wide range of materials and do linear, buckling and non-linear static analyses, natural frequency
analyses, harmonic response and spectral response analyses, transients, and thermal analyses
[139].
There are also a variety of finite element programs available as free-ware, often in
conjunction with the LINUX free-ware operating system.
Although the capabilities of the commercial systems are indeed impressive, several problems
would occur using them to investigate the dynamics of ballscrew systems in the case where the
main concern is to study the errors which may arise. The first is that modelling a CNC system
inevitably includes modelling the controller which makes the problem multiphysics rather than
purely mechanical. This means that one of the more expensive packages with costs of the order
of tens of thousands of pounds would need to be deployed. Secondly, a detailed finite element
model would require details of the ballscrew geometry which are not normally available in the
literature from ballscrew manufacturers. Finally, running a detailed model for a sufficient
number of configurations to build up a picture of what happens dynamically as the nut runs
along the screw could involve significantly long execution times. The use of free-ware obviates
the cost problem, but for understandable reasons, such packages are only available on an as is
basis, and the results would need to be checked against known cases. Often the use of free-ware
includes the understanding that developments based on them should also be free. This could
lead to intellectual property problems.
For these reasons it was decided to develop a method which included the control aspects with
the mechanical aspects kept to as simple a form as possible consistent with the objectives of the
investigation.
The eigenvalue method is extended in an attempt to determine the damped natural frequencies
with their associated modes using a generalised method (see Chapter 4). This is done in order to
avoid having to analyse the system with a variety of stimuli over a possibly extended frequency
range. The sensitivity of the various modes to changes in the stiffness and damping
characteristics of the machine drives are derived. These values can be used as an aid to design or
fault correction.
[24]
Based on the modelling techniques developed by Pislaru et al [15], the problem of predicting
how the dynamic behaviour of a ballscrew changes as the nut moves along the screw will be
investigated in detail in Chapters 5 and 6. In view of the variety of mechanical phenomena
which may be involved, solution methods which can be used conveniently for low or medium
order systems, and which are not limited to the linear behaviour, have been developed. Some
consideration of a continuous matter approach is given in Chapter 4 before a finite element
approach is developed which handles the energy dissipative processes in such a way as to give
heat sources to a thermal model.
Chapter 3 sets out the theoretical bases of the various models developed in this investigation.
[25]
Chapter 3 - THEORETICAL BACKGROUND
The function of a ballscrew is to move one part of a machine relative to another by
transferring the rotational motion of the screw to linear motion of the nut. This interaction
between linear and rotary motion is achieved by other screw mechanisms such as screw jacks
and various forms of screw fixings.
[26]
to be clamped at one or both ends. In the more common case where the screw is rotated it has
provision for bearings, at one or both ends, by means of which it is held in the machine. At
least one of these bearings needs to be a thrust bearing to provide axial constraint. The screw
also has provision at one end for mounting the means of driving the screw, (a flexible
coupling, gear wheel, belt drive pulley or chain sprocket etc.).
[27]
Figure 3.3 - A return pipe ballscrew
Re-circulation can be achieved in a variety of ways.
One makes use of one or more return tubes, (see Figure 3.3), inserted into the nut.
As the screw rotates, they collect the balls from one end of the groove holding the
circuit and guide them back to the other, thus ensuring that the nut is always kept
full of balls.
Another method involves the use of a deflector which is placed inside the nut and
re-positions the balls to the adjacent groove as the nut rotates, (see Figure 3.1). In
this arrangement the balls only make just short of one turn of the screw before they
are re-circulated.
A third way is to use end caps which capture the balls and send them back to the
other end of the nut through one or more drillings in the nut, (see Figure 3.2).
There should be a small amount of clearance between the balls and the grooves in which
they run so that the nut runs freely on the screw. This gives rise to backlash between the nut
and the screw. In applications where high positional accuracy is important, as is the case with
machine tools, it is essential that the backlash should be minimised.
This can be achieved by effectively splitting the nut into two and moving one half axially
relative to the other. This traps the balls and puts them under compressive stress thus locating
the nut on the screw with a high axial stiffness. This compressive stress is known as pre-
load.
[28]
Commonly, pre-load is introduced in one of five ways:-
1. by having two nuts separated by a spacer washer, (see Figure 3.1).
2. to increase or decrease the pitch of the turn in the middle of the nut. This is known
as pitch shift.
3. Another form of pitch shift is to have the spirals of a double start nut slightly off-set
from one another.
4. to arrange the nut in two halves and make the portion between them in the form of
a spring. This spring can be set up to exert a steady axial load on each half.
5. to use balls which are slightly oversized for the screw and nut groove profiles.
The nut, screw and balls are lubricated by either oil or a charge of grease and a seal is fitted
at each end to contain the lubricant and keep foreign matter, (such as swarf and coolant),
away from the bearing surfaces.
[29]
Therefore, any run-out in the screw is likely to be restrained by the rest of the machine
structure and give rise to fluctuations in the lateral forces within the ballscrew nut. Much the
same can be said of run-out of the cylindrical surfaces provided for fitting the bearings and
swash in the abutments provided for their axial location. The same applies to run-out and
swash of the feature provided on the screw for applying the torque and of the mounting flange
on the nut. All these geometrical imperfections will give rise to additional forces in the
screw and nut which will affect the dynamic behaviour, but will only have a second order
effect on the axial position of the nut.
The geometrical generating errors in axial positioning are pitch errors in the screw and nut
and clearance between the screw, the balls and the nut in the case of ballscrews which are not
pre-loaded.
[30]
churning of the lubricant
seal friction
Heat is transmitted to, from and through the system by conduction and dissipated from it
by convection and radiation, (see Figure 3.4).
Load errors arise from relative movement of the parts of a ballscrew which occur due to
the loads imposed on the ballscrew system. Loads can occur due to torques applied,
acceleration of parts, pre-load of the screw and self weight. All these loads cause various
forms of deformation, such as torsional and axial deformation of the ballscrew, with the
possibility of introducing unwanted movement in the axial direction. The magnitude of some
of these errors depends on the axial position of the nut.
Also there is an interaction between the various forms of error. For example, run-out of
the screw which is a geometric error may induce extra loads in the nut and bearings through
out of balance forces. The additional friction in the bearings can then cause extra heating
giving rise to an additional thermal error.
3.3.1 Bearings
The bearing arrangement which is used to mount a ballscrew within a machine tool
structure can be divided into four types:-
1. an arrangement whereby the screw is held at one end only by a set of bearings
capable of carrying radial and bi-directional axial forces and tilt moments. This is
called a fixed free arrangement, (see Figure 3.5). Such an arrangement is
commonly used in a vertical orientation with the free end at the bottom.
[31]
Figure 3.6 The fixed-supported bearing arrangement
3. The fixed fixed arrangement (see Figure 3.7) uses a bearing or set of bearings
at both ends which is able to carry both thrust and radial loads.
[32]
bearing with an outer race diameter of do and an inner race diameter of di with Nb balls has a
ball passing frequency given by:-
di s
f bp = (3.1)
d o + d i 2
where s is the angular speed of the shaft. Defects such as pits or scratches in the balls or
raceways produce high frequency vibration. The possible occurrence of such vibration is
used as a condition monitoring technique in process machinery to detect potential problems
with bearings.
(c) Effect of caging
The design and influence of the cages which separate the rolling elements of the bearings
can have an effect on friction and heat generation. Phosphor bronze cages are common and
cages made of PTFE (polytetrafluoroethylene) can reduce friction. Full complement
bearings, which do not have cages, increase stiffness but at the expense of greater friction.
(d) Lubrication and sealing
Lubrication can be of two types, oil or grease.
Oil lubrication, where oil is fed to each bearing and drained away to a separate oil
tank, has several advantages the temperature of the oil can be controlled and the
flow can be directed in such a way as to act as a coolant. The lubricant can be
changed without stripping down the machine. Its quality can be maintained by
appropriate filtration and topping up of depleted additives as needed. Compared to
grease, however, sealing can be more difficult. There is also the cost of installing
and maintaining the lubrication system with its pumps, pipes, tanks, valves and
filters.
Grease lubrication, where a charge of grease is put in each bearing, can be of the
sealed for life variety, which needs no further maintenance, or can have grease
nipples whereby extra grease can be put in from time to time. Automatic greasing
systems are fitted on many modern machine tools. Grease systems have the
advantage of being simple and cheaper to install. Much of the heat generated in the
bearings in such cases must be transmitted to the shaft or bearing housing and is
difficult to predict or control.
Seals can be of two types - contact or non-contact. Non contact seals, (e.g. labyrinth
seals), tend to leak especially at low speeds. Contact seals, (e.g. lip seals of various kinds),
grip the shaft and the associated friction produces heat.
[33]
(e) Pre-load
Pre-load in the bearing system increases the rate of heat generation through friction by
imposing internal loads in addition to the other loads carried by the bearing. It also increases
stiffness and reduces geometric errors by taking out backlash. Pre-load also reduces the
fatigue life of the balls and the bearing race surfaces.
(f) Misalignment
Like pre-load, misalignment can induce additional loads with their consequent additional
heating. Increases in out-of-balance caused by radial misalignment cause vibratory excitation
forces at the rotational speed of the shaft. Misalignment generally causes vibration to occur at
twice the shaft speed and its harmonics.
[34]
and are pushed back to where they re-enter the screw. They then start spinning again. This
process entails a loss of mechanical energy and hence the generation of heat each time the ball
is stopped. Forces are involved in the impacts of the balls with the walls of the re-circulation
system and with other balls, which occur as the balls are picked up for re-circulation. The
ability of the means of re-circulation to stand these forces sometimes sets a limit on the
ballscrews performance.
(d) Lubrication and sealing
Lubrication can be of two types, oil or grease, and the comments in Section 3.3.2d also
apply to ball nuts.
(e) Pre-load
As in the case of bearings, pre-load in the ball nut gives rise to internal loads which act on
the rolling elements in addition to the externally imposed loads carried by the nut. These
increase the rate of heat generation which is generated by friction. It also increases the
stiffness of the nut and reduces geometric errors by taking out backlash. Pre-load also
reduces the fatigue life of the balls, and that of the screw and nut groove surfaces.
(f) Misalignment
Like pre-load, misalignment can induce additional loads with their consequent additional
heating.
3.3.3 Pre-tension
The axial stiffness of a ballscrew system can be increased by putting the screw in a state of
tension. This is commonly achieved by fixing the outer races of the support bearings at both
ends of the screw, and locating the screw axially at the driven end by butting the bearing inner
race against a shoulder on the screw. Pre-tension is then achieved by pulling the screw
through the inner race at the non-drive end using a ring nut which is locked in position once
the desired tension has been achieved.
Pre-tension also increases the friction losses in the bearings and tends to reduce bearing
life. If the screw runs at a higher temperature than the part of the machine in which the
ballscrew is mounted, the pre-tension is reduced as the relative temperature increases.
[35]
helices is known as the number of starts Ns. The nut includes a cylindrical hole with
grooves compatible with those on the screw formed in it. If the screw is rotated by some
angle relative to the nut, the nut moves axially along the screw by an axial distance x given
by:-
Ns p
x= = R (3.2)
2
where is expressed in radians and x and p in metres. R can be called the ratio of the screw,
its units are metres/radian. In the simplest case, the outside of the screw and the inside of the
nut are ideal frictionless surfaces. Then the axial force F delivered by the screw to the nut can
be derived from the torque applied to the screw by:-
2
F= = (3.3)
Ns p R
[36]
this case the screw can be said to be driving the nut and the force of friction
opposes the torque applied to the screw.
[37]
however, if the drive is slowing down the part of the machine which is being driven by the
screw, it is possible that the nut will push the screw.
3.4.1 Ballscrew driving
For the case where the screw is driving the nut, if the sum of the forces of contact normal
to the helix is Fn and the coefficient of friction is , then the sum of the forces acting in the
axial direction Fa is given by:-
Fa = Fn cos Fn sin , (3.4),
where is the helix angle. The sum of the forces acting tangential to the axis of the screw Ft
is given by:-
Ft = Fn sin + Fn cos , (3.5).
Considering a cylinder of radius r which intersects the helices at the middle of the zone of
contact,
2 r r
cos = = (3.6a)
( N s p) 2 + (2 r ) 2 R2 + r 2
Ns p R
sin = = (3.6b)
( N s p) 2 + (2 r ) 2 R2 + r 2
[38]
Ft = Fn sin Fn cos (3.12),
Fn
Fa = (r + R) (3.13),
R2 + r 2
Fn
Ft = (R r) (3.14).
R2 + r 2
Eliminating Fn and deriving the torque from Ft now gives
R r
= rFa (3.15).
r + R
A mathematical model of a screw drive which seeks to take into account the behaviour of a
screw drive should include these two possible types of operation.
A third mode of operation is of course when the screw moves across the backlash. In this
case the dynamic behaviour of the sub-system upstream of the screw/nut connection and that
of the sub-system downstream need to be considered independently. This is achieved by
making zero the stiffness of the spring which represents the ball action in the models. This
aspect is studied in Chapter 5.
angle between the plane containing 1 R1 in body 1 and that containing 1 R2 in body 2 be .
The material properties of the bodies are Youngs modulus E i and Poissons ratio i .
1 .5
a geometry factor K D = (3.17)
1 1 1 1
+ + +
R1 R2 R1 R2
and
[39]
2 2
K 1 1 1 1 1 1 1 1
cos = D + + 2 cos 2 (3.18)
1.5 R1 R1 R2 R2 R1 R1 R2 R2
Let P be the contact force. The bodies contact over an elliptical area of semi-axes c and d.
Provided that c and d are small compared to the radii R1, R1, R2 and R2 and that there is no
friction between the contacting bodies, c and d are given by:
c = 3 P K DCE (3.19a)
d = 3 P K DCE (3.19b)
The movement between a point in body 1 remote from the contact zone and a similar point
in body 2 is given by:
P 2 C E2
y = 3 (3.20)
KD
cos cos
A system of local axes is set up in the contact zone such that the axis is along the c semi-
axis and the axis is along the d semi-axis. The contact pressure c (N/m2) is spread across
the contact zone in a parabolic manner according to the formula:-
[40]
2 2
c = c max 1 (3.21)
c d
where the maximum pressure c max is given by
1 .5 P
c max = (3.22)
cd
The stiffness is non-linear, because it changes with load. For a given load, the contact
stiffness kc is expressed as follows:-
dP 3 K D 1 / 3
kc = = 3 P (3.23a)
dy 2 3 C E2
dy 2 3C E2 1
fl c = = 3 1/ 3 (3.23b)
dP 3 KD P
Therefore, considering a single contact area between a ball and a raceway, the stiffness of
such a contact is zero when the load is zero. For a positive load the stiffness increases with
the cube root of the load. Since contact must be established before a set of opposing forces
can occur, negative loads cannot arise.
[41]
ballscrew have a ball pitch circle diameter of Dbp. Let the contact angle be c and the lead
angle be . The conformity ratio fs,n is defined by:-
f s = Rs d b , f n = Rn d b (3.24)
In terms of the variables used in equations (3.17) and (3.18), for ball / screw contact,
db
R1 = R1 =
2
R2 = f s d b (3.25a)
Dbp d b cos c
R2 =
2 cos c
and for ball / nut contact,
db
R1 = R1 =
2
R2 = f n d b (3.25b)
Dbp + d b cos c
R2 =
2 cos c
In both cases,
=0 (3.25c)
Then, for ball / screw contact,
1.5
KDs = (3.26a)
4 1 2 cos c
+
d b f s d b Dbp d b cos c
1 2 cos c
f s d b Dbp d b cos c
cos s = (3.26b)
4 1 2 cos c
+
d b f s d b Dbp d b cos c
1 2 cos c
+
f n d b Dbp + d b cos c
cos n = (3.27b)
4 1 2 cos c
d b f n d b Dbp + d b cos c
[42]
2 s3 C E2 3C 2
1
fl cb = 3 +3 n E (3.28)
3 K D s KDn P1 / 3
and in terms of the axial component of force and displacement
s3C E2 n3 C E2
3 +3
2 KDs KDn 1
fl cb x = (3.29)
3 (cos sin c ) 2
P1 / 3
where Nt is the number of active turns in the nut. The axial stiffness of the balls in contact is
then:-
3z1 (cos sin t ) 2
kc x = P1 / 3 (3.31a)
2 C
3 2
C
3 2
3
s E
+3 n E
KDs KDn
s3C E2 n3C E2
3 +3
2 KDs KDn 1
fl c x = (3.31b)
3 z1 (cos sin c ) 2
P1 / 3
1 Do2 + Di2 1 d o2 + d i2
2 + n + 2 s
Do Di do di
2 2
fl w =
En Es (3.32)
2 l n
where do and di are the outer and inner effective diameters of the screw and Do and Di are the
outer and inner diameters of the nut. En is the Youngs modulus of the nut material and n is
its Poisson's ratio, Es and s are the corresponding values for the screw. In the event that one
[43]
value of the modulus of elasticity is applicable to the material of both the screw and the nut,
which is usually the case, equation (3.32) simplifies to:-
Do2 + Di2 d o2 + d i2
2
D D2 + d 2 d 2
fl w = o i o i (3.33).
2 E l n
In a typical ballscrew application Do and do are available from manufacturers data. Most
ballscrews are solid so that di = 0. Di is best obtained from the ballscrew manufacturer. In the
absence of this information, it is reasonable, in view of the need to maintain as effective
contact between the nut and the balls as there is between the balls and the screw, to estimate
the nut effective inner diameter as being as far out from the balls pitch circle as the outside
diameter of the screw is in from it. In this case:-
Di = 2 d p d o (3.33a)
4
Third, the flange itself is subject to some deflection. The flexibility associated with this
can be estimated from the shear deflection of the material which lies between the mounting
screws pitch circle and the body of the nut as follows:-
DPCD Do
fl s = (3.35).
Gn ( DPCD + Do )
where DPCD is the pitch circle diameter of the mounting flange holes and Gn is the shear
modulus of the nut material.
The axial flexibility given by equation (3.31b) should be added to that given by
equation (3.32) or equation (3.33) and that given by equations (3.34) and (3.35) to give the
total axial flexibility of the ball action.
[44]
3.5.3 Rolling element friction
The radius of curvature of the contact zone is different from that of the undeformed ball.
Under no load, the ball would roll on a circle of diameter equal to that of the ball, and the
velocity of contact relative to the ball centre is the angular speed of the ball times its radius.
Consider the outer race of a ball bearing. (The same situation also occurs on the inside of a
ball nut assuming that the nut is not rotating.) The surface against which the ball is rolling is
stationary. Under load the different parts of the contact surface are at different radii from
the axis of rotation of the ball. Since the angular speed of the ball is fixed, the relative
velocity of the ball centre and a particular point on the race is dependent on the radius of the
part of the ball in contact with the point. In this situation it is not possible for all points on the
contact surface to be involved in pure rolling and there must be a certain amount of sliding
which gives rise to rolling friction. Further, some of the strain energy which is put into the
material of the ball and raceway when they come under load is dissipated as heat upon release
of the load. There is sliding between adjacent balls and shearing and churning of the lubricant
[81].
In the simplest terms this can be represented as an equivalent coefficient of friction. Work
on rolling element bearings [82] suggests a value in the range of 0.0020 0.0024 is
appropriate for ballscrews. A more sophisticated approach gives the friction moment Mf as
the sum of a load independent component Mf0 and a load dependent component Mf1 [83]:-
M f = M f 0 + M f1 (3.36)
in which
f 0 ( n ) 3 Dbp3
1 2
M f0 = (3.37)
10
and
M f 1 = f 1 P1 Dbp (3.38)
[45]
X 0 = 1 and Y0 = 0.5
[46]
Chapter 4 - DYNAMIC MODEL GENERAL CONSIDERATIONS
A ballscrew drive system is made up of several mechanical components, see Figure 4.1.
These are solid bodies made of materials which deform elastically under applied forces. They
also have the property of resisting changes in their state of motion which is known as inertia.
The system also includes an electric motor governed by a controller. In order to model the
mechanical parts it is necessary first to set up equations of motion which are based on the laws of
physics to which such mechanical components are subject. These are the laws of elasticity first
enunciated by Hooke [84] and the laws of motion formulated by Newton [85]. There are several
ways that these laws can be applied to mechanical systems in order to investigate their dynamic
properties.
[47]
required to produce a unit strain. The equation of motion of such an arbitrarily small volume is
derived which normally gives rise to a partial differential equation. The solution of such an
equation often is a set of waves. This approach is discussed in Section 4.1.
The discrete matter approach can involve modelling the mechanical system under
consideration as a set of lumped masses and springs, see Figure 4.2. In other words the mass
or inertia in the system has to be considered to act at a set of discrete points in a multi-
dimensional space. These point masses are connected by a set of springs in which the stiffness
of the system is considered to act. The points at which the masses are considered to act are
commonly called nodes and the springs which connect them elements. The discrete matter
approach is in essence a finite element method. Therefore the behaviour of the system can be
represented by a finite number of differential equations which are derived by considering the
equations of motion of each element of the system. The solutions of such sets of differential
equations lend themselves naturally to matrix methods. This approach is used in Sections 4.2
and 4.3.
[48]
natural frequencies. Solving the non-homogeneous equation gives an indication of how a
system will respond to a particular set of forces.
[49]
The ballscrew has to transmit thrust loads and torsional loads (torque) as the nut is driven
along the screw. Motion in the axial direction is the simplest to model mathematically and so it
was considered first.
Considering a shaft with cross sectional area A, made from a material with density and
Youngs modulus E, which lies along the x axis. Let u represent the axial motion of a small
element at a point x along the axis. It can be shown that this motion is governed by a wave
equation shown by Coulson [87]:-
2u 2 u ( x, t )
2
= c , (4.1)
t2 x2
E
where c = , and t = time (4.2)
The general solution is a superposition of a wave uf travelling forwards with a velocity c and a
wave ub travelling backwards with the same speed:-
u ( x, t ) = u f ( x ct ) + ub ( x + ct ) (4.3)
G
c= (4.4)
Considering the axial strain of the shaft at any point along its length, the axial tension T is
given by:-
u
T = EA (4.5).
x
Introducing the dummy variables f = x ct and b = x + ct then
u f du f f du f u b dub b dub
= = and = = (4.6a), (4.6b)
x d f x d f x d b x d b
u f du f f du f ub du b b du
= = c and = =c b (4.7a), (4.7b)
t d f t d f t d b t d b
It was therefore decided to design an element based on velocity waves to model the behaviour
of the screw.
[50]
Figure 4.4 - A test model made of two masses connected by a continuous matter spring
To test this element, a simple system consisting of two masses m1 and m2 connected by such
an element was constructed using Simulink, (see Figure 4.4). The first mass could be subject to
an external force, Fe. A viscous damper parallel to the spring was included to prevent the system
going into a state of perpetual oscillation. The force on the mass was determined by including
three terms:-
the external force
the force from the forward and backward velocity waves using equation (4.8)
the force from a viscous damper determined by the difference between the velocity of the
two masses multiplied by its damping coefficient.
EA u f u b du du d 2 u1
Fe + + + c v ( 2 1 ) = m1 (4.9)
c t t dt dt dt 2
[51]
The motion of the second mass was derived as for the first one, except that an external force
was not applied. The magnitude for the backward wave was calculated from the velocity of the
second mass taking into account the forward wave coming from the first mass.
EA u f u b du du d 2u2
+ cv ( 2 1 ) = m2 (4.13).
c t t dt dt dt 2
du 2 d 2u
= 2 2 .dt (4.14).
dt dt
The displacement of each mass was calculated by integrating the velocity of the respective
mass.
du1, 2
u1, 2 = .dt (4.15).
dt
In addition to calculating the motion of the masses, the energy balance of the system was
calculated by summing the following terms:-
the kinetic energy of the first mass using mass velocity2
the total energy of the spring by integrating the nett power supplied to the spring by both
masses. Since the internal motion of the various parts of the spring were not computed, it
was not possible to separate the kinetic energy from the potential energy
the kinetic energy of the second mass using mass velocity2
the energy dissipated by integrating the product of the force in the damper and the
relative velocity of the masses which it connects.
EA u f u b du1 EA u f u b du 2
2
du
Et = m1 1 + + + .dt
dt c t t 1 dt c t t 2 dt
(4.16)
2 2
du du du
+ m1 2 + c v 2 1 .dt
dt dt dt
where Et is the sum of the energy in the system and the dissipated energy.
The model is illustrated in Figure 4.5. The values of the model parameters were kept to small
round numbers to make the results easy to check by hand calculation. An example is given in
Appendix 4.1. A force of 1 N for the first second of motion and zero thereafter, which resulted
in a pattern of motion whose detailed characteristics are described in the appendix. It was found
that the damped natural frequency and the logarithmic decrement predicted by the model were
very close to what would be expected. The value for the energy in the spring checked out
against the kinetic energy of the spring calculated on a mass velocity2 basis. When the
system settled down there was a continuous small interchange of energy between the masses and
[52]
the spring at a frequency higher than but not obviously related to the natural frequency. More
research should be performed in order to determine the causes of this phenomenon.
Figure 4.5 A model based on wave theory of two masses connected by a spring
Therefore using velocity, rather than displacement waves, it proved possible to make sensible
predictions about simple mass and spring models, although some problems remain to be
solved.
A more fundamental difficulty arose when considering the lateral degrees of freedom of a
beam, when beam flexure occurs. The equation governing flexural vibration of a thin beam
whose section has a second moment of area I is:-
2 y 2 2 y
A 2 + EI = f ( x, t )
2
(4.17)
t x2 x
where y represents movement of the centre of the beam normal to the axis and f(x,t) the forcing
term [86]. For beams of constant section this simplifies to:-
2 y 4 y
A + EI = f ( x, t ) (4.18)
t2 x4
[53]
This equation is fourth order in x and second order in t and so cannot be solved by the simple
wave equation. No simple way could be seen around this difficulty and so the line of
investigation was abandoned.
where is the density, N is a matrix representing the shape of the system and v is the volume.
This can be simplified by using direct lumping, that is modelling the mechanical components as
a set of lumped masses in which the mass or inertia in the system acts at the nodes. This
simplification entails significant computational advantages in calculations which use the inverse
of the mass matrix M-1 [141] The methods developed in Chapters 5 and 6 make extensive use of
the inverse of the mass matrix, so this simplification has proved useful. The approach has been
tested against classical methods and found to give satisfactory results, (see Table 4.2 and
Figures 4.10 to 4.13). The flexibility inherent in the components is modelled by springs which
connect the point masses together. Damping effects can be modelled by including a set of
dampers in parallel with the springs and a differential equation can be written for each node in
the system.
Holroyd et al [89] applied this method to modelling the Y axis drive of a Beaver VC35 CNC
milling machine, see Figure 4.6.
[54]
This fixed vertical column CNC milling machine has a saddle which moves towards and away
from the column in the Y direction, carrying a table which moves sideways in front of the
column in the X direction. Z motion is achieved by moving the spindle up and down on the front
face of the column.
The drive for the Y direction consists of a DC electric motor which drives a ballscrew via a
belt drive, the ballscrew then drives the saddle, (see Figure 4.7).
The ballscrew is considered as comprising N elements of equal length. The drive is then
modelled as follows:-
The rotational inertia of the drive motor is represented by a single mass (Jm);
The motor shaft is represented by a torsional spring (kms);
The rotational inertia of the driving (motor) pulley is depicted by a single mass (Jp1);
The flexibility of the belt which transmits the driving torque from the motor to the
ballscrew is represented by a torsional spring (kbl);
One element consists of a mass Jp2 representing the rotational inertia of the driven
pulley plus 1/(2N) the rotational inertia of the ball-screw (Jbs);
The rest of the ball-screw is modelled as a set of N-1 masses representing 1/N of the
torsional inertia of the ballscrew and one mass representing 1/(2N) of the ball-screw
inertia at the free end, connected in series to each other by a set of N torsional springs
describing the elastic behaviour of the ballscrew. Each spring has a stiffness of N
the torsional stiffness of the ballscrew itself.
A mass mbm representing the mass of the ballscrew connected at the iLth node;
The axial stiffness of the ballscrew kax is illustrated by a linear spring that connects the
ball-screw centre mass to earth;
The axial stiffness of the ballscrew nut knut is depicted by a linear spring linking the
ball-screw centre to the saddle, and
The mass of the table and saddle mtab.
[55]
The drive ratio which is the number of turns the motor makes while the screw turns once is
represented by u, and the ballscrew ratio (see Chapter 3, equation 3.1) is represented by R.
A schematic representation of the model for the mechanical transmission of the CNC machine
tool axis drive is presented in Figure 4.8 and the numerical values of parameters are shown in
Appendix 4.2.
If there are Nn nodes in the system, in principle it is possible to connect each node with the
other Nn-1. Let the masses be represented by mi, the stiffness of the spring connecting mi to the
jth node be ks ij and the damping coefficient of the corresponding damper be cd ij. If the
dissipitave behaviour can be modelled by viscous damping, where the force generated by the
damper is proportional to the relative velocity of its two ends, then a linear differential equation
for the displacement xi of each node can be written for the ith node by applying Newtons second
law of motion to the mass:-
( )
m i &x&i = k s ij ( x j xi ) + cd ij ( x& j x& i ) + f i (t ) (4.20),
j i
Figure 4.8 - Schematic representation of the mechanical elements of the drive model
If the coefficients of xi are replaced as follows:-
[56]
K ij = k s ij for j = i and K ij = k s ij for j i (4.22a)
j i
When the equations for all of the Nn nodes are put together they form the matrix equation:-
d 2x dx
M 2
+C + K x = f (t ) (4.24)
dt dt
For details of how each term of the mass and stiffness matrices are derived from the physical
parameters of the system see Appendix 4.3. The remainder of this Chapter and Chapters 5 and 6
deal with solving this equation in a variety of ways relevant to the dynamics of ballscrew driven
systems.
[57]
effects, that is viscous damping. Various researchers have devised means of deriving viscous
damping coefficients which are equivalent to various non-linear damping phenomena in a
restricted set of circumstances. Tan and Rogers [91] have come up with a method of deriving a
coefficient of viscous damping which is equivalent to Coulomb friction. Their approach can also
be applied to other forms of damping. Careful use of these methods can extend the scope to
which this approach is applicable.
4.3.1 An eigenvalue approach undamped case
In order to develop the method, the system without damping has been considered first, then
the method has been extended to include viscous damping.
If there is no damping, a system will vibrate at certain frequencies with little stimulus [92]. A
natural frequency of a system is a frequency at which such free vibration takes place.
A vibration mode is a characteristic pattern assumed by a system in which the motion of
every particle is simple harmonic with the same frequency [92]. The mode shape can be
represented by plotting on a graph the relative amplitude of the different points taking part in the
vibration mode. The mode shape gives an idea of where in the system the greatest vibratory
activity may be seen.
A common approach to determining the undamped natural frequencies and mode shapes is the
eigenvalue method [93-95].
To use this method it is necessary to model the mechanical system under consideration as a
set of lumped masses and springs. In other words the mass or inertia in the system has to be
considered to act at a set of discrete points in some sort of space. These point masses are
connected to one another by a set of springs in which the stiffness of the system is considered
to act. The behaviour of such a system can be represented by a finite number of differential
equations which are derived by considering the equations of motion of each element of the
system. These equations can be solved to give the natural frequencies and the mode shapes as
will be shown later.
There are as many natural frequencies as there are point masses in the system although not all
of them are necessarily distinct. If the motion is unrestrained, there will be one zero frequency
mode for each degree of freedom of motion (e.g. axial movement, lateral movement, angle of
twist, angle of tilt etc.) of the points in the system. Also there is a mode shape corresponding to
each natural frequency.
Writing an equation of motion for each mass and grouping them in matrix form gives
d 2x
M + K x = f (t ) (4.25)
dt 2
[58]
where M is the inertia matrix, a diagonal matrix of the form (Mii), K is the stiffness matrix of the
form (Kij), x is the displacement vector and f(t) is the forcing term vector. In this case used here
as an example the vectors have N+5 elements and the matrices are (N+5) (N+5), where N is the
number of equal length elements into which the ballscrew is divided. However, the equations
apply equally well to a system of any finite number of masses.
In the example analysed here, the elements of the mass matrix are defined as follows:
J ms J J
M 11 = J m + , M 2 2 = J p1 + ms , M 3 3 = J p 2 + bs , (4.26a)
2 2 2N
J bs
for i = 4 to i = N+2 . . . . Mii = ...., (4.26b)
N
J bs
M N +3 N +3 = , M N + 4 N + 4 = mbm , M N +5 N +5 = mtab (4.26c)
2N
The upper half of the stiffness matrix is assembled as follows
K11 K1 2 K13 K1 4 .. k ms k ms 0 0 ..
K2 2 K23 K2 4 .. k ms + k bl u k bl 0 ..
K3 3 K3 4 .. = u 2 k bl + N k bs N k bs .. (4.27a)
K4 4 .. 2 N k bs ..
.. .. .. .. .. .. .. .. .. ..
for i = 4 to i = N+2, except i = iL, the ballscrew node where the spring representing the nut is
attached,
.. .. .. .. .. .. .. ..
.. K i i K i i +1 .. = .. 2 N k bs N k bs .. (4.27b)
.. ..
.. .. .. .. .. ..
for i = iL
.. .. .. .. .. .. .. .. .. .. .. ..
.. K iL iL K iL iL +1 .. K iL N + 4 K iL N +5 = .. 2 N k bs + R 2 k nut N k bs .. R k nut R k nut
..
.. .. .. .. .. .. .. .. .. .. ..
(4.27c)
and
.. .. .. .. .. .. .. ..
.. K N +3 N +3 K N +3 N + 4 K N +3 N +5 .. N k bs 0 0
= (4.27d)
.. K N +4 N +4 K N + 4 N +5 .. k nut + k ax k nut
..
K N +5 N +5 .. k nut
[59]
The full matrix is then completed using Ki j = K j i (4.29)
Solutions of the form x = (xi ejt) when f(t) = 0 are tried to determine the undamped natural
frequencies of the system. Equation (4.25) now becomes:
(K M 2 ) x = 0 (4.30)
Dividing each equation by the square root of its inertia term Mii and replacing x by
x/ = (Mii xi ejt) gives the following eigenvalue equation:
(K mod I 2 ) x = 0 (4.31)
where Kmod is derived from K by dividing its rows and columns by Mii and I is the unity
matrix. This is an eigenvalue equation.
This eigenvalue equation has a non-trivial solution for x/ when
(K mod I 2 ) =0 (4.32)
In this case Kmod is real and symmetric and there are standard solutions to such equations
available in many mathematics software packages [96]. The number of solutions for 2 is equal
to the order of matrix Kmod although not all of them are bound to be distinct. To each value of 2
there is a vector called an eigenvector which gives the mode shape of x/ for that frequency. The
mode shape in terms of the original x is obtained by dividing each term by Mii.
The eigenvectors are arbitrary to one scalar factor; therefore only their relative values are
determined and the absolute value can be any desired value. For the purposes of presentation,
the eigenvectors are normalised such that the sum of the squares of their absolute values equals
one. Also because the ball-screw ratio R is so small (0. 0015915 m/rad) for the studied case, any
mode shape selected for plotting is set to equivalent ball-screw rotation before plotting. This
drive model was incorporated into the MATLAB software. The resulting program
(Appendix 4.3) calculates the eigenvalues and eigenvectors and orders them in order of
ascending natural frequency.
The results of the sample undamped natural frequency analysis are presented in Table 4.1.
The mode shapes are shown in Figure 4.9. The Y-axis represents the normalised vibration
amplitude. The nodes or masses are laid out along the X-axis in the order that they are included
in the mass matrix. Thus the point at x = 1 represents the torsional motion of the motor, the
point at x = 2 represents the torsional motion of the driving pulley, that at x = 3 the torsional
motion of the driven pulley and those at x = 4 to 11 the torsional motion of the points along the
ballscrew in increasing distance from the driven pulley. The point at x = 12 represents the axial
motion of the point at the ballscrew centre at the position along the ballscrew where the nut is
[60]
Table 4.1 The sensitivity of vibration behaviour to model parameters (Y-axis drive) [16]
Mode 1 2 3 4 5
Nat. freq.
Undamped, Hz 0.0 75.1 111.8 524.7 581.6
Damped, Hz 0.0 75.3 111.6 524.8 574.2
Damping, 1/sec -0.0 -25.7 -36.7 -21.2 -491.8
nf / k
- k_ms NaN 0.0605 0.0274 0.0171 0.4002
- k_bl NaN 0.2653 0.1396 0.0000 0.0978
- k_bs NaN 0.0107 0.0036 0.4730 0.0145
- k_nut NaN 0.0773 0.1601 0.0032 0.0000
- k_ax NaN 0.0781 0.1698 0.0049 0.0001
/ k
- k_ms 0.0 0.1115 0.3564 0.1323 -0.4346
- k_bl 0.0 -1.3340 0.0868 0.0007 -0.0578
- k_bs 0.0 0.0424 -0.0226 -0.5528 -0.0125
- k_nut 0.0 0.2698 -0.6709 -0.1723 -0.0004
- k_ax 0.0 0.4185 -0.2532 0.2160 -0.0003
nf / c
- c_ms NaN -0.0000 -0.0000 -0.0000 -0.0000
- c_bl NaN 0.0082 -0.0053 -0.0000 -0.0262
- c_bs NaN -0.0000 0.0000 -0.0000 -0.0000
- c_nut NaN -0.0013 0.0015 0.0004 0.0000
- c_ax NaN -0.0003 -0.0001 -0.0001 0.0000
- c_brg_ms NaN -0.0000 -0.0000 -0.0000 0.0000
- c_brg_bs NaN 0.0000 -0.0000 -0.0000 0.0000
/ c
- c_ms 0.0 0.0001 0.0001 0.0016 0.0019
- c_bl 0.0 0.9020 0.7236 0.0001 1.0033
- c_bs 0.0 0.0003 0.0001 0.7386 0.0011
- c_nut 0.0 0.0791 0.2504 0.1925 0.0001
- c_ax 0.0 0.0119 0.0394 0.0435 0.0000
- c_brg_ms 0.0 0.0000 0.0000 -0.0000 0.0000
- c_brg_bs 0.0 0.0011 0.0007 0.0106 0.0000
NaN = not a number, that is, the variable is not defined in these cases.
[61]
considered to be, and the point at x = 13 represents the axial motion of the table to which the
ballscrew nut is attached. This information is summarised in the left-hand box on Figure 4.9.
The results of the analysis were compared with measured data taken from the milling machine
drive operated by a controller. The controller is set up to ensure that the motion of the motor
follows a pre-determined pattern. This has the effect of restraining the vibratory motion of the
motor. In order to simulate this restraining effect, the inertia of the motor in the model was
increased by a factor of 1000. The first mode is, as expected, the roll mode at 0 Hz. The
second mode, predicted for the resonance frequency of 75 Hz for the Y-axis drive, involves the
driven pulley, ball-screw and load bouncing against the motor and driving pulley. The third
mode corresponding to 112 Hz involves mainly axial movement. The fourth and fifth modes are
quite high in our frequency range for experimental measurement of 1 - 600 Hz.
The results computed by the eigenvalue method are compared with the measured ones further
on in Chapter 8.
[62]
are transverse displacement y and tilt angle . The inertia terms are mass and tilt inertia which
can be represented by a matrix M such as
m 0
M = (4.33)
0 J
where m is the mass and J is the tilt inertia.
The stiffness is represented by springs which are 2 2 matrices such as
12 EI 6 EI
3 2
l
K = l (4.34)
6 EI 4 EI
2 l
l
where E is Youngs modulus, I is the second moment of area and l is the element length.
When assembling a submatrix for a spring into a system stiffness matrix, the submatrix added
is typically
... ... ... ... ... ...
12 EI 6 EI 12 EI 6 EI
... 3 ...
l3 l2 l l2
6 EI 4 EI 6 EI 2 EI
... ... ... ... 2 ...
l2 l l l
... K ... = 12 EI 6 EI 12 EI 6 EI (4.35)
... ... ... ... 3 2 2 ...
l l l3 l
6 EI 2 EI 6 EI 4 EI
... 2 ...
l2 l l l
...
... ... ... ... ...
Table 4.2 Natural frequencies (Hz) predicted by lumped-mass models and by beam theory
Natural frequency (Hz) 1 2 3 4
Lines on Figures 4.10 to 4.13 solid dashed chained dotted
Free free M 62.91 172.9 337.9 556.3
Figure 4.10 C 63.2 174 341 564
Fixed free M 9.912 62.03 173.4 338.9
Figure 4.11 C 9.93 62.0 174 341
Supported supported M 27.82 111.2 249.8 443.0
Figure 4.12 C 27.8 111 251 446
Fixed fixed M 63.06 173.6 339.8 560.4
Figure 4.13 C 63.2 174 341 564
[63]
In order to prove the method, MATLAB program natf_tr1, which uses the eigenvalue
approach was produced which gave natural frequencies and mode shapes for the case of free
vibration of the ballscrew, (Appendix 4.4 and Figure 4.10). These were compared with the
standard results given by Harris [92]. It was found that the predicted natural frequencies were
very sensitive to the number of elements used and only gave results close to those standard
results in the case where a large number of elements was used. The first two modes are, as
expected, the tilt modes at 0 Hz and are not included on the mode shape plot.
By including an extremely large mass element it is possible to provide a pinned restraint
and by including a large tilt inertia as well it is possible to model a built-in restraint. Using
such methods it was possible to model a cantilever beam which also gave results that compared
well with the standard results when a large number of elements was used. Comparisons between
natural frequencies predicted by the models (M rows) and those predicted by classical methods
(C rows) are given in Table 4.2. The mode shapes are illustrated in Figures 4.10 to 4.13.
[64]
Figure 4.11 - Natf_tr2.m Natural frequency and modes shapes fixed-free
[65]
Figure 4.13 - Natf_tr4.m Natural frequency and modes shapes fixed-fixed
These results validate the method of modelling the screw. The same method of representing
the screw is used in Chapter 6 as part of the model representing the transverse vibration
behaviour of a ballscrew with a moving mass.
[66]
Figure 4.14 - Representation of viscous damping phenomenon
[67]
The upper half of the damping matrix is assembled in a manner similar to that used for the
stiffness matrix (Equations (4.27a), (4.27b), (4.27c) and (4.27d)) using the damping
coefficients c corresponding to the stiffness terms k except that damping coefficients are
included to account for the viscous drag in the bearings as follows:
C11 C1 2 C13 C1 4 .. c ms c ms + c mb 0 0 ..
C2 2 C2 3 C2 4 .. c ms + cbl u cbl 0 ..
C3 3 C3 4 .. = u 2 cbl + N cbs + cbrg1 N cbs .. (4.37a)
C4 4 .. 2 N cbs ..
..
.. .. .. .. .. .. .. .. ..
.. .. .. .. .. .. .. ..
.. C N +3 N +3 C N +3 N + 4 C N +3 N +5 .. N cbs + cbrg 2 0 0
= (4.37b)
.. C N +4 N +4 C N + 4 N +5 .. c nut + c ax c nut
..
C N +5 N +5 .. c nut
[68]
In this case the matrix is real and not symmetric and there are standard solutions to such
equations available in many mathematics software packages [96]. The number of solutions for
is equal to twice the order of matrices M, C and K although not all of the solutions are bound to
be distinct. To each value of there is a vector called an eigenvector from which can be
extracted the mode shape of x for that frequency.
This model was incorporated into MATLAB model natf_dr3, (Appendix 4.5).
The eigenvalues come in conjugate pairs in the case that the mode is sub-critically damped,
(when a sudden application of an external force gives rise to oscillations that die away), therefore
a lightly damped model might have up to N+5 pairs. The imaginary part is the natural frequency
in radians per second and the real part is the coefficient of damping. In order to represent a
positive coefficient of damping the real part of the eigenvalue should be negative. If the mode is
critically damped or over-critically damped, all the solutions will be real. This means that there
is not an oscillatory response to a step input. There are two real solutions for each mass
element. Since the sub-critical natural frequencies come in conjugate pairs, a sense of
mathematical tidiness suggests that the two real solutions also be grouped together. At this stage
it is not understood how to pair them up as two solutions of one mode.
Figure 4.15 - Model of the mechanical transmission of the CNC machine tool axis drive
considering viscous damping
The eigenvectors are arbitrary to one scalar factor; so only their relative values are
determined, the absolute value can be chosen for convenience. For the purposes of presentation
the eigenvectors are normalised such that the sum of the squares of their absolute values equals
[69]
one. Then any vector selected for plotting is re-normalised such that the term with the largest
amplitude has a phase of zero. Finally, because the ballscrew ratio R is so small
(0.0015915 m/rad), the mode shape is set to equivalent ballscrew rotation before plotting. The
MATLAB program (Appendix 4.5) is similar to the one presented in Section 4.3.1 but
incorporating the generalised eigenvalue method. This program also orders the eigenvalues and
eigenvectors in order of ascending natural frequency.
The eigenvectors from which the mode shapes are derived are essentially complex numbers.
In order to give a visual representation of these, two approaches have been used. In the first
case, each mode shape is shown in a Cartesian form with the real component designated in
phase and the imaginary component quadrature (see Figure 4.16). In the other case, the mode
shapes are shown in a polar from with the amplitude and phase being plotted (see
Figure 4.17).
Figure 4.16 - Damped mode shapes predicted by the generalised eigenvalue method - Cartesian
It is to be expected that the in phase component will compare most directly with the
undamped mode shape in the case of light damping. Although in many cases this is so, in some
instances the damped mode shapes are close to the undamped mode shape reflected on the
[70]
X axis. Then, considering that the eigenvectors on which the mode shapes are based are
arbitrary to a scalar factor, it is possible to make them more easily comparable with the
undamped mode shapes by multiplying one of the sets by minus one. This difference can arise
because the normalisation process used on the complex raw eigenvectors is slightly different
from that used on the real eigenvectors which occur in the undamped case.
The polar form (Figure 4.17) is comparable with measurement results. The amplitude of the
mode shapes can be compared with vibration readings and the phase can be compared with the
phase data generated by many data analysis packages.
Figure 4.17 - Damped mode shapes predicted by the generalised eigenvalue method polar
[71]
changed to move an undesirable natural frequency. Such sensitivity information can be used as
an aid to design or fault correction.
These values can also prove useful in adjusting the parameters of a model for a CNC machine
tool axis drive, for example that developed by Pislaru [15], in order to adjust the simulated
results to fit best to the measured ones. An estimate of the amount of change necessary to make
the simulation results fit the experimental ones can be easily obtained.
An example of a set of mode shape plots is included in Figure 4.16 and Figure 4.17. A table
of sensitivity data is included in Table 4.1.
The MATLAB programs described in this Chapter can be used for the following purposes:
to determine the natural frequencies and damping factors for the elements of the drive
using the generalised eigenvalue method;
to plot the mode shapes in order of ascending natural frequency;
to calculate the sensitivity of natural frequency to changes in stiffness, and to changes
in damping coefficient;
to calculate the sensitivity of damping ratio to changes in stiffness, and to changes in
damping coefficient.
The next stage of the study is to investigate the effects on the dynamics of the ballscrew drive
of the nut moving along the screw. In Chapter 5 the dynamics of the principal degrees of
freedom involved in ballscrew action will be dealt with, that is torsional movement of the screw
and axial movement of the nut and screw. The effects of non-linear phenomena such as friction
and backlash will be included.
[72]
Chapter 5 - AXIAL AND TORSIONAL CASE FOR MOVING MASS MODEL
When a ballscrew is being selected for a particular application, the dynamic behaviour is
taken into account. One area of concern is whether or not the ballscrew will vibrate
excessively because it is running at one of its natural frequencies. One method used
commercially for sizing ballscrews to avoid whirling uses a set of criteria which only includes
the restraining effects of the ballscrew bearings and takes no account of the nut [77].
In fact the nut has a significant lateral restraining effect, but the effect varies with time as
the nut moves. This implies that the natural frequencies of a ballscrew system change with
time. This chapter deals with the analysis of ballscrew system dynamics taking into account
the changes in stiffness and damping characteristics which occur as the nut travels along the
screw. Initially, the analysis focuses mainly on the degrees of freedom involved in the action
of the ballscrew, namely the torsional movement of the screw and the axial displacement of
the nut. The effects of backlash in the nut are also investigated. Considerations of the
transverse degrees of freedom of the screw are analysed in Chapter 6.
This changing of resonant frequency with time can be a dominant factor in the behaviour of
a ballscrew system which contains a relatively slender screw. This is because such a screw
will have low natural frequencies which might be excited by quite low running speeds.
The classical equations which predict the amplitude of vibrating systems give the steady
state value [99], that is the level to which the system settles down after any transient response
which might arise as the force is applied has died away. For example, consider the simplest
such system, a mass m mounted to earth by a spring of stiffness k with a viscous damper of
damping coefficient c along side it.
k
n = (5.2)
m
[73]
When a small amount of damping is included, the natural frequency is reduced and the
amplitude dies away exponentially after the forcing term is removed. The rate of decay of the
harmonic motion is proportional to the damping coefficient, thus as c gets bigger the motion
dies away more rapidly. At the point of critical damping the motion tends most quickly to
zero. As the damping is increased beyond critical, the motion tends more slowly to zero but
with no oscillation. The fraction of critical damping is given by
c
= (5.3)
2 km
The steady state displacement response xst to a sinusoidal force of F = F0 sin t is
sin( t ) F0
x st = (5.4)
(1
2 )2 k
2) + (
2
n n
F0
x st = sin( t ) where = tan 1 (2 ) (5.6)
k
which gives a value of infinity for xst if there is no damping. However infinite amplitude
implies infinite energy which will take an infinite time to achieve with a finite force pushing it.
It is therefore necessary for a system to be excited for a significant time at a natural
frequency for the vibration amplitude to build up to a level high enough to be detrimental.
What a significant time is will vary from system to system, and will depend on several
factors:-
how close to the natural frequency is the frequency of the forcing term,
the amplitude of the forcing term, and
the level of damping involved.
If the natural frequency changes with time, it may be that the vibration amplitude always
remains low enough to be of no detriment to the ballscrew or the machine of which it is part.
It was therefore thought worth while to try to model the dynamic behaviour of a ballscrew
with a moving nut.
[74]
5.1 Dynamics of a ballscrew with a moving nut the axial case
[75]
Figure 5.3 - A typical ballscrew in a machine tool drive
The case of axial degrees of freedom only is considered first, so that the mathematical
method can be developed while keeping the
algebraic expressions as simple as possible.
In this case the stiffness k of the ith element
of the ballscrew is given by
EA
k= , i = 1, 2, .... S + 1 (5.7)
X i +1 X i
where E is Youngs modulus for the screw
material and A is the screw cross-sectional
area.
Figure 5.4 - Ballscrew model
The nut is modelled as a single node at which the mass is considered to act and the stiffness
between the nut and the screw is considered as a single value kn, (see Figure 5.4). To allow for
motion of the nut along the screw, the analysis has been set up so that the nut is considered to
be connected to all of the ballscrew nodes. Writing an equation of motion for each node of the
ballscrew in turn gives a set of equations as follows.
For node 1: m1 &x&1 c( x& 2 x&1 ) 1c n ( x& n x&1 ) k ( x 2 x1 ) 1k n ( x n x1 ) = F1 (t ) (5.8a)
(5.8c)
S +1 S +1
Finally for the nut: mn &x&n + i cn ( x& n xi ) + i k n ( x n x& i ) = Fn (t ) (5.9)
i =1 i =1
[76]
Here k is the stiffness of a single element of the ballscrew, c is the coefficient of damping of
the element and i are factors whose value depends on the position of the nut. Since the nut
must be somewhere along the screw, the factors must satisfy the condition
S +1
i =1
i =1 (5.10)
If the ballscrew nut is at a position Xn between nodes j-1 and j, the effect of the nut is put in the
correct place by using values of j-1 and j given by
X j Xn
j 1 =
l S
(5.11a)
X n X j 1
j =
l S
For i j 1 or i j , i = 0 (5.11b)
Fi(t) is the external force applied at the ith node.
Put together these equations give rise to a stiffness matrix for the ballscrew system as
follows
k + 1 k n k 0 ... 0 0 1 k n
k 2k + 2 k n k ... 0 0 2kn
0 k 2k + 3 k n ... 0 0 3kn
K = ... ... ... ... ... ... ... (5.12)
0
0 0 ... 2k + S k n k S k n
0 0 0 ... k k + S +1k n S +1k n
1 k n 2kn 3kn ... S kn S +1k n kn
The solution of the moving ballscrew problem therefore reduces to the solution of the
equation
M&x& + Cx& + Kx = F( t ) (5.14)
[77]
where M is the mass matrix, x is the displacement array and F is the force array. The matrices
C and K can change with time.
Initially, the force is regarded as a constant vector for the time interval over which a
solution is sought, while C and K also remain constant. This is reasonable provided that the
time interval over which the solution is sought is short compared with the scale over which
changes in f, C and K take place. In this case, substituting equations (5.15)-(5.17) into
equation (5.14) gives, for the constant terms
M (0 + 1)(0 + 2) a 0+2 + C (0 + 1) a 0+1 + K a 0 = F
whence
M 1C M 1K M 1F
a2 = a1 a0 + (5.18)
2 2 2
Comparing coefficients for t k gives
M (k + 1)(k + 2) a 0 + 2 + C (k + 1) a 0 +1 + K a k = 0
whence
M 1C M 1 K
a k +2 = a k +1 ak (5.19)
k+2 (k + 1)(k + 2)
or
[78]
M 1C M 1 K
ak = a k 1 a k 2 (5.20)
k (k 1)k
Thus, given the initial displacement vector a0 and the initial velocity vector a1, all the other
coefficients ak are calculable. Furthermore, the higher order coefficients are derived from the
lower order ones by dividing by larger and larger numbers. Comparing this with the power
series expansions for ex, sin x and cos x it seems most probable that the series will converge to
a finite solution.
Physical constraints on the system mean that F(t) has to be finite with, at worst, finite
discontinuities. This means that the roughest ride for the system is one with finite
discontinuities in acceleration. This implies that the velocity will always be continuous and
the displacement smooth. Such mathematically well behaved functions are likely to cause
relatively little trouble in computation.
A series of programs based on this approach T1.cpp - T3.cpp have been written. Using
values typical of the Beaver VC35 CNC machine tool (see Figure 4.12 and Section 4.2), it was
found that ak diverged significantly before converging. However, since the time interval
considered was small, ti converged rapidly. To avoid problems with multiplying very large
numbers by very small ones, the displacement d at the end of a time interval T can be obtained
by using a series
d = x = b i where b i = a i T i (5.21)
i =0
Letting d0 be the displacement and v0 be the velocity at the beginning of the time interval,
b0 and b1 are calculable from the initial conditions as follows
b 0 = d 0 and b 1 = v 0T (5.22), (5.23)
Multiplying equation (5.18) by T2 gives
M 1 C M 1 K M 1 f 2
b 2 = a 2T =
2
a 1T
2
a 0T +
2
T
2 2 2
M 1 CT M 1 KT 2 M 1f 2
= a 1T a 0T 0 + T (5.24)
2 2 2
M 1 CT M 1 KT 2 M 1 f 2
= b1 b0 + T
2 2 2
and multiplying equation (5.20) by Tk gives
[79]
M 1C M 1 K
b k = akT k = a k 1 T k a k 2T k
k (k 1)k
M 1 CT M 1 KT 2
= a k 1 T k 1 a k 2T k 2 (5.25)
k (k 1)k
M 1 CT M 1 KT 2
= b k 1 b k 2
k (k 1)k
Thus
c i = (i + 1) a i +1T i (5.31)
c 0 = (0 + 1) a 0 +1T 0 = a1 = v 0 (5.32)
2a 2T 2
c1 = (1 + 1) a1+1T 1 =
T (5.33)
= 2b 2
T
A recurrence relation for ck can be derived by substituting for ai+1 in equation (5.31) using
equation (5.20)
[80]
(k + 1)M 1C (k + 1)M 1 K
c k = (k + 1) a k +1T =
k
akT
k
a k 1T k
(k + 1) k (k + 1)
M 1 CT k 1 M 1 K T 2
= ka k T (k 1)a k 1T k 2
k (k 1)k
(5.34)
= ka k T k 1 + (k 1)a k 1T k 2
k (k 1)k
= c k 1 + c k 2
k (k 1)k
ck are column vectors N long. Again it should be noted that all ck have the dimension of the
time derivative of the degree freedom being computed. For example, if the degree of freedom
represents axial movement all ck have units of velocity.
It is now possible to define the state {d, v} at the end of a time step T in terms of its state
{d0, v0} at the beginning of the step.
The dynamic behaviour of a ballscrew system with a moving nut is calculated by starting at
some initial state {d0, v0} and solving equation (5.14) for a time step of duration T. The final
state given by equations (5.21) and (5.30) is used as the initial state of the next time step and
so on. Progress of the nut is accounted for by redefining K and C at each step which means
that and in equations (5.26) and (5.27) and recurrence relations (5.29) and (5.34) are also
redefined. This process is repeated for as long as necessary to cover the period of interest.
The energy of the system can also be computed. The kinetic energy KE is given by:-
1
KE = x& M x& (5.35).
2
Because the mass matrix M is diagonal the computation of KE can be simplified to:-
1 1
KE =
2
x& i M i i x& i = M i i x& i2
2
(5.36).
(Here symbols in bold, e.g. x, M, represent whole vectors and matrices and symbols in italics,
e.g. KE, xi, Ki j, represent scalar quantities, vector elements and matrix elements. x represents
the transpose of vector x.)
The potential energy PE is given by:-
1
PE = x K x (5.37).
2
Equation (5.37) could be coded as a double matrix multiplication. However, the evaluation of
such an expression would entail adding up terms of the form Kiixi2, which will be positive, and
terms of the form -Kijxixj, which could be of a similar magnitude but negative. This could lead
[81]
to numerical instability. It was therefore decided to compute the potential energy by summing
the potential energy of all the springs in the system. Thus:-
1
PE =
2
K i j ( xi x j ) 2 (5.38).
The sum of the kinetic and potential energies and the energy dissipated less the energy
supplied should, of course, be zero. In fact this is not exactly the case because of rounding
errors and approximations in the validity of the time series. Its magnitude compared to a
measure of the maximum values of the items involved is used as a measure of the stability of
the models performance.
The solution programs were originally coded in the MATLAB language and were used to
model the behaviour of a ballscrew test rig. Using a load cycle typical of such a rig it was
found that the execution time for the programs was of the order of several hours. Steps were
therefore taken to accelerate the solution.
[82]
One step was to convert the program which derives the time series solutions to the
C language. To avoid writing graphic routines for C, the results of the solution process were
written to file on the computers hard disc and standard routines available in MATLAB were
used to produce the results in graphical form. Another step was to note that the K and C
matrices are sparse and so a large number of the calculations would entail multiplying by zero.
If this could be avoided a substantial acceleration should occur. However the form of K and C
is not that of a normal banded matrix since the non-zero terms on a typical row are Ki-1 i, Ki i ,
Ki i+1 and Ki N. Taking advantage of the symmetry property of normal stiffness matrices meant
that a NN matrix could be reduced to a N6 in the axial and torsional case. It was necessary
to write special routines to manipulate matrices in this form.
At first the programs wrote the results to file at the end of each main time step and the
execution time was significant. The program was therefore changed to write to file at the end
of a block of 1000 outer time steps. The result is a program with acceptable execution times,
having achieved an acceleration from of the order of hours to run a 25 element model of the
ballscrew to about 15 minutes. A MATLAB routine reads the information from files
generated by the C program and plots them in graphical form.
In order to avoid problems with convergence of the b series, the program has been modified
to select its own time step. A plot of the energy balance check as a function of time shows an
energy balance of less than 1% of the maximum energy level involved. This is a better
precision than that to which many of the errors can be measured so this is considered to be
satisfactory.
[83]
where Ji is the rotational inertia of the ith node, c is the coefficient of torsional damping of
the element and the torque is i(t). Here is the torsional stiffness of a single element of the
ballscrew given by
GK
= , i = 1, 2, .... S + 1 (5.44)
X i +1 X i
where G is shear modulus for the screw material and K is the screws torsional constant.
Therefore the submatrix representing each element of the screw is extended from
O ... ...
... ... ...
O ... ... ... ... k k
0 0 ...
... 0
... k k ... 0 ...
to (5.45)
... k k ... ... k 0 k 0 ...
... 0
... ...
... O 0 ...
... ... ... O
... ...
where k is the axial stiffness of the ith element as used previously (equation (5.6)).
At the point of contact, the motion of the nut xpn is derived by taking the axial motion of the
point of contact of the screw xp and adding to it the axial movement caused by the rotation of
the screw p
x pn = x p + R p (5.46)
where R is the ballscrew ratio. For a screw of pitch p with Ns starts, this is
Ns p
R= (5.47)
2
Neglecting friction, the force delivered to the nut is related to the torque reacted on the screw
by
Nut force = R Screw torque (5.48)
The connection between the axial and torsional subsystems is illustrated in Figure 5.5 using
as an example a case where only two elements are considered and the nut is connected at the
second node.
The thrust bearings which restrain the screw are modelled by springs of axial stiffness a1
and a2. The saddle or table onto which the nut is mounted has a mass M.
In many systems the load on the nut can rock about the Y axis. The loads inertia about a
line parallel to this axis through its centre of mass is represented by J. The distance of the
ballscrew axis below the loads centre of mass is z. The rocking motion is represented by n
and the restraining effect of the loads supporting slideways is modelled by a torsional spring
[84]
of stiffness . The damping is assumed to be zero in order to show the mathematical
development in as simple a manner as possible.
The system is driven by a torque (t) applied to inertia J1.
m3 &x&3 = k2 ( x3 x2 ) a2 x3 (5.49c)
M &x&n = k n ( x n z n x 2 R 2 ) (5.49d)
and the equations of motion for the inertias are:-
J1 &&1 = 1 ( 2 1 ) + (t ) (5.50a)
J 2 &&2 = 1 ( 2 1 ) + 2 ( 3 2 ) + Rk n ( xn zn x2 R 2 ) (5.50b)
J 3 &&3 = 2 ( 3 2 ) (5.50c)
J &&n = zk n ( xn zn x2 R 2 ) (5.50d)
(5.51)
[85]
Here, for compactness of presentation, only the upper half of the stiffness matrix is
included because it is symmetric.
Moving on to the general case of S spring/damper elements in the ballscrew and the
moving nut is being allowed for, considering the motion of node 1, equation (5.8a) becomes
m1 &x&1 = c( x& 2 x&1 ) + 1cn ( x& n z&n x&1 R&1 )
(5.52a)
+ k ( x2 x1 ) + 1 k n ( xn zn x1 R1 )
For node i, where 2 i S and i B1 or i B2 , where B1 and B2 are the nodes at which the
B B
The equations of motion for the masses at the bearing nodes are:-
mB1&x&B1 = c( x& B1 x& B11 ) + c( x& B1+1 x& B1 ) ca1 x& B1
(5.53a)
k ( xB1 xB11 ) + k ( xB1+1 xB1 ) a1 xB1
(In the event that B1 = 1 , the first and third parentheses in equation (5.53a) become zero and if
B2 = S + 1 , the second and last parentheses in equation (5.53b) become zero.)
Using the same conditions for the node number i as for equation (5.52b), the equations of
motion for the inertias are:-
J1&&1 = c (&2 &1 ) + 1Rc n ( x&n z&n x&1 R&1 )
(5.54a)
+ (2 1 ) + 1 Rkn ( xn zn x2 R2 ) + (t )
[86]
S +1 S +1
J &&n = i zn cn ( x&n z&n x&i R&i ) + i zn k n ( xn zn xi R i ) (5.54d)
i =1 i =1
5.4 Backlash
Backlash is taken into account by allowing bl free movement between the screw and the nut
before contact is made. This is shown in a simplified form in Figure 5.6.
This means that there are three modes of motion:-
First where the screw is pushing the nut in the negative x direction OR when the nut
is over-riding the screw in the positive x direction. This condition is designated
negative and, allowing for rocking of the load, occurs if
xbs + R bs < x n z n bl / 2 (5.55a)
where xbs is the axial position of the part of the screw which would be in the same
plane as the nut centre if the system were to be at rest under no load and bs is the
angular position of the same point. In this case the backlash indicating factors are
set as
Blf 1 = 1, Blf 2 = 1 (5.55b)
[87]
Third where the screw is riding in the backlash and the screw and its attachments
and the load are treated as mechanically independent. This condition is designated
free and, allowing for rocking of the load, occurs if
x n z n bl / 2 xbs + R bs x n z n + bl / 2 (5.57a)
In this case the backlash indicating factors are set as
Blf 1 = 0 , Blf 2 = 0 (5.57b)
Two of the equations of motion for the masses (5.49b) and (5.49d) need to be modified to:-
m 2 &x&2 = k1 ( x 2 x1 ) + k 2 ( x3 x 2 ) + Blf 1k n ( x n z n x 2 R 2 Blf 2 bl / 2)
(5.58b)
= k1 ( x 2 x1 ) + k 2 ( x3 x 2 ) + Blf 1k n ( x n z n x 2 R 2 ) Blf 2 k n bl / 2
and the equations of motion for the inertias (5.50b) and (5.50d) also need to be changed to:-
J 2 &&2 = 1 ( 2 1 ) + 2 ( 3 2 ) + Blf 1 Rk n ( x n z n x 2 R 2 Blf 2 bl / 2)
(5.59b)
= 1 ( 2 1 ) + 2 ( 3 2 ) + Blf 1 Rk n ( x n z n x 2 R 2 ) Blf 2 k n bl / 2
In matrix form the equation of motion has to be changed in two ways. First the stiffness
matrix is replaced by
k1+a1 0 k1 0 0 0 0 0
... 1 0 1 0 0 0 0
... ... k1+k 2 +Blf 1k n Blf 1 Rk n k 2 0 Blf 1k n Blf 1 zk n
... ... ... 1+ 2 +Blf 1 R 2 k n 0 2 Blf 1Rk n Blf 1 Rzk n
...
... ... ... k 2 +a2 0 0 0
... ... ... ... ... 2 0 0
... ... ... ... ... ... Blf 1k n Blf 1 zk n
...
... ... ... ... ... ... Blf 1 z 2 k n +
(5.60a)
and the force vector by
[88]
0
B k b /2
lf 2 n l
Blf 2 Rk nbl / 2
(5.60b)
0
0
Blf 2 k nbl / 2
B zk b / 2
lf 2 n l
All of these changes to the stiffness matrix and force vector can be accommodated readily
by the solution method
The submatrix Kdr represents the controller, drive motor and mechanical coupling device,
Kbs the ballscrew and Kn the nut and load. Kdr bs represents the cross terms between the
driving mechanism and the screw and Kbs n the cross terms between the screw and the nut.
The submatrix Kbs n includes influence coefficients which are zero when the nut is not over the
relevant part of the ballscrew and which are between 0 and 1 when the nut is over an element.
[89]
Up to now the influence has been shared on a linearly proportional basis with f1, f2 being given
by
xi x n x n xi 1
f1 = and f2 = (5.62), c.f. (5.11a)
xi xi 1 xi xi 1
This estimate of distribution gives acceptable results for the axial and torsional cases but it
is not strictly correct. The presence of two connections from the nut to the ballscrew at
nodes i-1 and i gives in addition to the desired connection to the nut an undesired parallel
connection between nodes i-1 and i making the screw stiffer in an undulating way as the nut
moves along, (see Figure 5.7).
An estimate of the magnitude of this effect for the ballscrew being used to test the model
gives a fluctuation of the axial stiffness between the bearings of the order of 0.15% when
25 elements are used to model the screw. This is presumably why the effect was not noticed
earlier.
(In the transverse case the effect is more pronounced, in part because when the nut is in the
middle of a section the two springs between which the stiffness is shared give a moment
support not seen when the nut is passing a node.)
A more rigorous approach would be to consider the spring representing the nut connected at
a massless node between two nodes i-1 and i (see Figure 5.8) and derive the equations of
motion as follows
[90]
mi 1 &x&i 1 K i 1i 1 K i 1 j 0 0 xi 1 Fi 1
m j &x& j K j i 1 Kjj K ji K j n x j 0
m &x& + 0 Ki j Kii 0 xi Fi
= (5.63)
i i
m &x& 0 K n n x n Fn
n n Kn j 0
Here j designates the massless node where no external force F will be applied. The masses mi
and the stiffnesses Kij will be, in general, Nf Nf submatrices, where Nf is the number of
degrees of freedom at each node of the ballscrew. The displacements xi and the forces Fi are
Nf 1 column vectors.
It is necessary to eliminate xj. This can be done as follows. First re-order and partition the
matrix
mi 1 &x&i 1 K i 1i 1 0 0 | K i 1 j xi 1 Fi 1
mi &x&i 0 Kii 0 | K i j xi Fi
m &x& + 0 0 Knn | K n j x n = Fn (5.64)
n n
+
K j j x j 0
m j &x& j K j i 1 K ji K jn |
Grouping the internal and external forces together and bearing in mind that mj=0
i 1 K i 1i 1 0 0 | K i 1 j xi 1 Fi 1 mi 1 &x&i 1
i 0 Kii 0 | K i j xi Fi mi &x&i
= 0 0 Knn | K n j x n = Fn mn &x&n (5.65a)
n
+
0 K
j i 1 K ji K jn | K j j x j 0
or in simpler terms
f p q
= (5.65b)
0
q r
Expanding
f = p + q
0 = q + r
Whence = r 1 q
f = (p qr 1q )
Finally (5.66)
= p red
This means that the matrix representing the spring attached to the massless node can be
replaced by a reduced matrix of the form p qr 1 q . In the case of the axial and torsional
degrees of freedom, (x, x), p is a 66 submatrix, q a 62 submatrix and r-1 a 22 submatrix.
[91]
Using f to represent the fraction of the distance of the contact point along the element {Xi-1,
Xi} in the terms of equation (5.62)
1 f = f1 and f = f2 (5.67)
The parts of the stiffness matrix relating to the element in contact with the nut can now be
written
k k
0 0 0 0 0 | 0
f f
... 0 0 0 0 | 0
f f
... k k
... 0 0 0 | 0
1 f 1 f
p q ... ... ... 0 0 | 0
= 1 f 1 f ..
q r ... ... ... ... kn zk n | kn Rk n
... ... ... ... ... z 2kn | zk n Rzk n
+
1 1
... ... ... ... ... ... | ( + )k + k n Rk n
f 1 f
... ) + R k n
1 1
... ... ... ... ... | ... ( + 2
f 1 f
(5.68)
r-1 is a flexibility matrix and is given by
1 1
( + ) + R 2 k n Rk n
f
= / D
f 1
r 1 (5.69a)
1 1
Rk n ( + )k + k n
f 1 f
where the determinant
k + f (1 f )k n + f (1 f ) R 2 k k n
D= (5.69b)
f 2 (1 f ) 2
which, for reasons of convenience in algebraic manipulation, can be rendered as
1 R 2kn Rk n
+ f (1 f ) f (1 f )
r 1 =k k k f (1 f ) (5.70a)
Rk n 1 k D
f (1 f ) + f (1 f ) n
k k
where the modified determinant
kn R 2kn
D = 1 + f (1 f ) + f (1 f ) (5.70b)
k
[92]
It will be noticed that r-1 vanishes at f=0 and f=1 and that the modified determinant is equal
to one at f=0 and f=1.
Deriving the reduced stiffness matrix pred is made easier by using the expression
1 R 2 kn Rk
Dqr 1qi j = f (1 f ) qi 1 ( + f (1 f ) ) q1 j f 2 (1 f ) 2 qi 1 n q2 j
k k k (5.71)
R kn 1 k
f 2 (1 f ) 2 qi 2 q1 j + f (1 f ) qi 2 ( + f (1 f ) n ) q2 j
k k
To take an example, the first term of the reduced stiffness matrix covering the element
connected to the nut load and the nut load freedoms can be derived as follows
D pred 11 = D p11 Dqr 1q11
1 R 2 kn Rk
= D p11 f (1 f ) q11 ( + f (1 f ) ) q11 f 2 (1 f ) 2 q11 n q2 1
k k k
R kn 1 k
f 2 (1 f ) 2 q1 2 q11 + f (1 f ) q1 2 ( + f (1 f ) n ) q2 1
k k
2
k R kn k k 1 R 2 kn k
= (1 + f (1 f ) n + f (1 f ) ) f (1 f ) ( + f (1 f ) )
k f f k k f
k R kn R kn k
f 2 (1 f ) 2 0 f 2 (1 f ) 2 0
f k k f
1 k
+ f (1 f ) 0 ( + f (1 f ) n ) 0
k
2
k R k kn k R 2 k kn
= + (1 f )kn + (1 f ) f (1 f ) (1 f ) 2
f f
R 2 k kn
= k + (1 f )kn + f (1 f )
(5.72)
It will be noticed that if f = 0 , p red 11 = k + k n and if f = 1 , p red 11 = k as one would
expect. A similar exercise for the other 20 independent members of matrix D p red gives
[93]
k + (1 f ) k n k
R 2 k kn (1 f ) R k n
2 2
R k kn f (1 f ) R k n (1 f ) k n (1 f ) zk n
+
(1 )
f f f (1 f )
+(1 f ) R 2 k n
... kn f (1 f ) R k n kn (1 f ) R k n (1 f ) R zk n
+ f (1 f ) f (1 f )
k k
k + f kn
... ... f 2 Rk n f kn f zk n
R 2k kn
+ f (1 f )
+ fR 2 k n
... ... ... kn fR k n fR zk n
+ f (1 f )
k
... ... ... ... kn zk n
z 2 k n
... ... ... ... ...
(5.73a)
When f = 0 , D = 1 and p red reduces to
k + kn Rkn k 0 k n zk n
... +R 2kn 0 R k n R zk n
... ... k 0 0 0
p red = (5.73b)
... ... ... 0 0
... ... ... ... kn zk n
... z 2 k n
... ... ... ...
k 0 k 0 0 0
... 0 0 0
... ... k + k n Rk n kn zk n
p red = (5.73c)
... ... ... + R kn 2
Rk n R zk n
... ... ... ... kn zk n
... z 2 k n
... ... ... ...
Both of equations (5.73b) and (5.73c) are to be expected by comparison with equation (5.51).
To give a more rigorous approach, equation (5.65b) can be expanded as follows
0 p q s
0 = q r 0 (5.74)
f s 0 t
Here
r is the matrix representing the massless node at the point where the nut connects to
the screw,
[94]
p represents the partition of the matrix which includes the nut and its load and the
nodes of the ballscrew at either side of the connecting point
q, q represent the submatrices which connect p and r,
t represents the rest of the system where the external forces normally act,
s, s represent the submatrices which connect p and t and
represents the displacements of the degrees of freedom where external forces act.
Expanding
0 = p + q + s
0 = q + r
f = s + t
Whence = r 1 q
f t s
=
1
0 s p qr q
Finally (5.75)
t s
=
s p red
Therefore the relevant parts of the system stiffness matrix can be modified along the lines
shown to give a better representation of a ballscrew with a moving nut.
[95]
controller had a proportional constant Kp of 2 N m/rad, an integral constant Ki of
100 N m/(rad sec) and a differential constant Kd of zero. Velocity feedback came from the
nut, (see Figure 5.9). The demand signal is the diagonal straight line on Figure 5.13.
At the start of the motion the nut was positioned at 100 mm from the driven end in the
centre of 10 m of backlash. The first part of the motion entailed an acceleration of the nut of
0.2 m/sec2. In order to avoid the results being swamped by the friction between the table and
the slideways, the coefficient of friction between them was assumed to be zero. A load of
359 kg was carried by the nut. The first 50 msec of the ensuing motion is shown on
Figures 5.10 to 5.13 and Figures 5.16 and 5.17. The first 100 msec is shown on Figures 5.14
and 5.15.
Torsional movement of ballscrew Torsional velocity of ballscrew
63 7
62.98
6
62.96
5
62.94
Displacement, (rad)
Velocity, (rad/sec)
62.92 4
62.9 3
62.88
2
62.86
1
62.84
62.82 0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
Time, (sec) Time, (sec)
Figure 5.10 Ballscrew torsional displacement Figure 5.11 Ballscrew torsional velocity
In the first few milliseconds the drive starts the screw (Figures 5.10 and 5.11). The screw
runs through the backlash and picks up the nut with a bump, (Figure 5.13). The controller
reacts to the additional load by increasing significantly the torque to bring the nut to the
required position. In doing so the velocity of the screw is increased beyond demand for a
short while. This has the effect of flinging the nut into the backlash when the controller
Position of nut Velocity of nut
0.1003 0.01
0.009
0.1002
0.008
0.007
0.1002
Displacement, (m)
Velocity, (m/sec)
0.006
0.1001 0.005
0.004
0.1001
0.003
0.002
0.1
0.001
0.1 0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
Time, (sec) Time, (sec)
Figure 5.12 - Ball nut displacement Figure 5.13 - Ball nut velocity
[96]
reduces the torque as speed is achieved. As the screw picks up speed, with the inertia of the
system reduced by not having to carry the nut, it again catches up with nut with a second but
smaller bump. This also causes the controller to increase the torque resulting in what appears
to be a momentary loss of contact between the screw and the nut. Thereafter the nut and screw
settle down to a steady acceleration. Figures 5.12 and 5.13 show the motion of the nut. Hand
calculations based on classical elastic theory show that the force required to accelerate the
table is 71.8 N. This gives rise to an axial displacement of the screw at its point of contact
with the nut of 0.962 10-7 m. Figures 5.14 and 5.15 show the motion of 5 points distributed
equally along the screw. Hand calculations (see Appendix 5.2) reveal that the axial
deflections to be expected are:-
Drive end bearing 0.717 10-7 m
Ballscrew point 0.791 10-7 m
Ballscrew point 0.558 10-7 m
Ballscrew point 0.328 10-7 m
Tail end bearing 0.093 10-7 m.
-7 Axial movement of ballscrew end -4 Axial velocity of ballscrew end
x 10 x 10
0.5 1.5
0 1
-0.5
0.5
Displacement, (m)
-1
Velocity, (m/sec)
0
-1.5
-0.5
-2
-1
-2.5
-3 -1.5
-3.5 -2
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Time, (sec) Time, (sec)
Figure 5.14 Ballscrew axial displacement Figure 5.15 Ballscrew axial velocity
As can be seen (Figures 5.14 and 5.15) the axial deflection of the drive end of the ballscrew,
which is close to the drive end bearing, (blue trace, 4th line from the top) is settling down to
about 0.75 10-7 m. The axial deflection of the point of the ballscrew (green trace, bottom
line) to 0.8 10-7 m, the mid-point (red trace, third line from the top) to 0.55 10-7 m, and the
point (cyan trace, second line from the top) to 0.3 10-7 m. Finally the axial deflection of
the tail end of the ballscrew, which is close to the tail end bearing (magenta trace, top line) to
0.1 10-7 m. Therefore the axial behaviour of the screw as predicted by the model
corresponds to that predicted by classical theory.
[97]
Torque applied to ballscrew end
0.8
0.7
0.6
0.5
Torque, (N m)
0.4
0.3
0.2
0.1
0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
Time, (sec)
-5
x 10 Nut position error
0
-0.2
-0.4
Position error, (m)
-0.6
-0.8
-1
-1.2
-1.4
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
Time, (sec)
[98]
The torque required to accelerate the table is 0.114 N.m and that needed to accelerate the
screw is 0.300 N.m. The torque necessary to overcome viscous drag in the bearings is
0.004 N.m giving a total torque of 0.423 N.m. Figure 5.16 shows the torque settling down to
around 0.42 N.m. The square corner at about 0.008 seconds and the blip at about
0.023 seconds coincide with the bumps, (c.f. Figures 5.14 and 5.15). These most likely arise
from delays in response caused by the cycle time of the solution process which is typically
50 micro-seconds combined with the small time needed to compress the nut stiffness sufficient
to establish full effective contact between the nut and the screw.
Figure 5.17 shows the position error of the nut. Hand calculations reveal that the
contributions to this error can be expected to be axial deflection of the screw 0.1 m, axial
deflection within the nut 0.7 m, torsional wind up of the screw ~0 m, backlash 5.0 m and
following error of the controller 6.7 m, making 12.5 m in total. The position error of the
nut can be seen to be settling down to about 12 m. The model thus checks out well against
classical theory.
In order to include transverse vibration in the model it is necessary to include four extra
degrees of freedom for each node of the ballscrew and to extend the requirements of the
bearing sub-models. The phenomena of sagging of the shaft under gravity and pre-tension are
also considered in Chapter 6.
[99]
Chapter 6 - TRANSVERSE CASE FOR MOVING MASS MODEL
The main function of a ballscrew is to transform rotary motion of the screw into linear
motion of the nut. The degrees of freedom in which this motion takes place are the linear
degrees of freedom along the direction of the screw (x) and the rotational degrees of
freedom about the axis of the screw (x). In Chapter 5 a technique was developed which is
capable of modelling a ballscrews behaviour in these degrees of freedom. Transverse
vibratory behaviour, although it does not impact directly on drive system errors, can affect the
life of ballscrew components and the surface finish of products made on the machine tool of
which the ballscrew is part. This chapter deals with these aspects of the dynamic behaviour of
a ballscrew system.
l2 l
z = F+ z (6.2b)
2 EI EI
[100]
where E is Youngs modulus, I is the second moment of area and l is the beam or element
length. In matrix form:-
l3 l2
fl = 3EI 2 EI (6.3)
l2 l
2 EI EI
where fl(i,j) is the deflection of the ith degree of freedom caused by applying a force at the jth
degree of freedom.
K =
l l (6.4)
6 EI 4 EI
2 l
l
Considering the forces at both ends of a beam element which are set up by applying a unit
deflection at each degree of freedom in turn a 4 4 stiffness matrix representing the whole
beam can be derived. A matrix of this kind forms a submatrix which represents an individual
element in the system stiffness matrix typically as follows:-
... ... ... ... ... ...
12 EI 6 EI 12 EI 6 EI
... 3 ...
l3 l2 l l2
... ... ... ... 6 EI 4 EI
2
6 EI 2 EI
...
l2 l l l
... K ... = 12 EI 6 EI 12 EI 6 EI (6.5)
... ... ... ... 3 2 2 ...
l l l3 l
... 6 EI 2 EI 6 EI 4 EI
2 ...
l2 l l l
... ...
... ... ... ...
One such submatrix should be added in for each spring element modelled.
6.2 Combining the transverse behaviour of the screw with the axial and torsional
Combining both Y and Z transverse degrees of freedom with the axial and torsional case
dealt with in Chapter 5 leads to a 6 degree of freedom system. The mass matrix of the ith node
of the screw is given by
[101]
mi 0 0 0 0 0
0 mi 0 0 0 0
0 0 mi 0 0 0
Mi = (6.6)
0 0 0 J tors i 0 0
0 0 0 0 J tilt i 0
0 0 0 0 0 J tilt i
where Jtors is the torsional moment of inertia and Jtilt is the tilt or rocking moment of inertia
(i.e. that about the transverse axes). The stiffness submatrix of a 6 degree of freedom spring
element is shown in Figure 6.2, where G the shear modulus, A the cross-sectional area and
K the torsional stiffness constant.
The bearings are modelled by attaching a set of springs at a node axially located at the
centre of the bearing and earthed at the other end. The additional terms in the stiffness
matrix are:-
k ax i 0 0 0 0 0
0 k tr y i 0 0 0 0
0 0 k tr z i 0 0 0
K +i = (6.7)
0 0 0 0 0 0
0 0 0 0 k tilt y i 0
0 0 0 0 0 k tilt z i
where kax i is the axial or thrust stiffness of the ith bearing, ktr y i is the transverse or radial
stiffness in the Y direction and ktr z i is that in the Z direction and ktilt y i, ktilt z i are the tilt or
rocking stiffnesses. i is the bearing number and can be 1 or 2.
In the case of the transverse degrees of freedom the stiffness matrix needs to be modified to
avoid the phenomenon of discontinuous behaviour at element boundaries described in
Chapter 5. The method of solution is essentially the same. If kn is the radial stiffness of the
nut and n the tilt stiffness, then using the terminology of Chapter 5
p red = K + (K 1 k n + K 2 n + K 3 k n n ) / D (6.8)
where
l3 l l4
D = 1 + f 3 (1 f ) 3 k n + f (1 f )(1 3 f + 3 f 2 ) n + f 4 (1 f ) 4 k n n (6.9).
3EI EI 12 E 2 I 2
and K, K1 , K2 and K3 are taken from Figures 6.2 and 6.3.
One of the most common ways of operating a ballscrew is the one where the shaft is rotated
and the nut moves axially. This application is the one considered in this investigation.
[102]
... ... ... ... ... ... ... ... ... ... ... ... ... ...
EA EA
... 0 0 0 0 0 0 0 0 0 0 ...
l l
... 0
12 EI zz
0 0 0
6 EI zz
0
12 EI zz
0 0 0
6 EI zz
...
l3 l2 l3 l2
12 EI yy 6 EI yy 12 EI yy 6 EI yy
... 0 0 0 0 0 0 0 0 ...
l3 l2 l3 l2
... 0 0 0
GK
0 0 0 0 0
GK
0 0 ...
l l
6 EI yy 4 EI yy 6 EI yy 2 EI yy
... 0 0 0 0 0 0 0 0 ...
2 2
l l l l
... ... ... ... 0
6 EI zz
0 0 0
4 EI zz
0
6 EI zz
0 0 0
2 EI zz
...
l2 l l2 l
[103]
... K ... = EA EA
... ... ... ... 0 0 0 0 0 0 0 0 0 0 ...
l l
12 EI zz 6 EI zz 12 EI zz 6 EI zz
... 0 0 0 0 0 0 0 0 ...
l3 l2 l3 l2
12 EI yy 6 EI yy 12 EI yy 6 EI yy
... 0 0 0 0 0 0 0 0 ...
l 3
l 2
l 3
l2
GK GK
... 0 0 0 0 0 0 0 0 0 0 ...
l l
6 EI yy 2 EI yy 6 EI yy 4 EI yy
... 0 0 0 0 0 0 0 0 ...
l 2
l l 2
l
6 EI zz 2 EI zz 6 EI zz 4 EI zz
... 0 0 0 0 0 0 0 0 ...
l2 l l2 l
... ... ... ... ... ... ... ... ... ... ... ... ... ...
Figure 6.2 Six degree of freedom matrix for a beam element representing part of the ballscrew
12 EI zz 6 EI zz 12 EI zz 6 EI zz
0 0
l
3 2 3 2
l l l
4 EI zz 6 EI zz 2 EI zz
... 0 0
... ... ... l l2 l
12 EI zz 6 EI zz
... K ... = ... ... 2 0 0
... ... ... l3 l
4 EI zz
... ... ... 0 0
l
... ... ... ... kn 0
... ... n
... ... ...
Figure 6.3a Y and z degree of freedom matrix for the beam element representing part of the ballscrew in contact with nut
Terms in Izz, kn and n
[104]
(1 f ) 3 (1 + 3 f ) f (1 f ) 3 (1 + f )l 3 f 2 (1 f ) 2 f 2 (1 f ) 3 l (1 f ) 2 (1 + 2 f ) 0
1 2 1
... f (1 f ) 3 (3 + f )l 2 f 3 (1 f ) 2 l f 3 (1 f ) 3 l 2 f (1 f ) 2 l 0
... ... ... 3 3
... ... f 3 (4 3 f ) f 3 (1 f )(2 f )l f 2 (3 2 f ) 0
... K 1 ... = kn / D
1 3
... ... ... ... ... ... f (1 f ) 2 (4 f )l 2 f 2 (1 f )l 0
3
... ... ... ... 0 0
0
... ... ... ... ...
Figure 6.3b Y and z degree of freedom matrix for the beam element representing part of the ballscrew in contact with nut
Additional terms in kn
l3 l l4
where D = 1 + f 3 (1 f ) 3 k n + f (1 f )(1 3 f + 3 f 2 ) n + f 4 (1 f ) 4 k n n .
3EI EI 12 E 2 I 2
12 f (1 f ) 6 f 2 (1 f ) 12 f (1 f ) 6 f (1 f ) 2 6 f (1 f )
0
l2 l l 2
l l
6 f 2
(1 f )
(1 f )(1 3 f + 3 f 2 + 3 f 3 ) 3 f 2 (1 f ) 2 (1 f )(3 f 1)
...
... 0
... ... l
... K 2 ... = 12 f (1 f ) 6 f (1 f ) 2 6 f (1 f ) n / D
... ... 0
... ... ... l2 l l
... ... ... f (4 12 f + 12 f 2 3 f 3 ) 0 f (2 3 f )
... ... ... ... 0 0
... ... ... ... ... 0
Figure 6.3c Y and z degree of freedom matrix for the beam element representing part of the ballscrew in contact with nut
Additional terms in n
[105]
l l2 l l2
f (1 f ) 4 f 2 (1 f ) 4 0 0 f (1 f ) 4 f 2 (1 f ) 4
EI zz 2 EI zz EI zz 2 EI
l 3
l 2
l 3
... f 3 (1 f ) 4 0 0 f 2 (1 f ) 4 f 3 (1 f ) 4
3EI zz 2 EI zz 6 EI
l l 2
l l 2
... ... ... ... ... f 4 (1 f ) f 4 (1 f ) 2 f 4 (1 f ) f 4 (1 f ) 2
EI zz 2 EI zz EI zz 2 EI
... K 3 ... = k /D
l 3
l 2
l 3 n n
... ... ... ... ... ... f (1 f )
4 3
f (1 f )
4 2
f (1 f )
4 3
3EI zz 2 EI zz 6 EI
l l 2
... ... ... ... f (1 f )(1 3 f + 3 f 2 ) f 2 (1 f ) 2 (2 f 1)
EI zz 2 EI
3 l
3
... ... ... ... ... f 3
(1 f )
3EI zz
Figure 6.3d Y and z degree of freedom matrix for the beam element representing part of the ballscrew in contact with nut
Additional terms in kn n
In addition to the degrees of freedom considered in Chapter 5, others need to be included to
account for the transverse movement of the nut. In total the degrees of freedom used in
modelling the nut are:-
y An axial degree of freedom to represent movement of the nut in the X direction,
y Two transverse degrees of freedom to represent movement in each of the Y and
Z directions, and
y Two rotational degrees of freedom to represent tilt movement about the Y and
Z axes
The transverse support stiffness of the slideways which carry the nuts weight is modelled by
adding kslide y to the diagonal term of the global stiffness matrix which relates to the degree of
freedom representing Y movement of the nut and kslide z to the corresponding Z term.
Similarly, the tilt support stiffness is modelled by adding kslide y and kslide z to the respective
diagonal term relating to the degrees of freedom representing tilting motion about the Y and
Z axes.
Since most ballscrews are used close to the surface of the earth they are subject to a
gravitational field of one g. Using the global axes shown earlier, this acts in the
Z direction. One consequence of this is that the screw sags when at rest. The extent of this
sag can be determined by solving the equation
Kx = Mg (6.10)
where
K is the system stiffness matrix
x is the global displacement vector, a column containing the displacements of each degree
of freedom in the system. For the screw this is a succession of Cartesian coordinates
{.., xi, yi, zi, xi, yi, zi, ..} for each node of the screw.
M is the mass matrix is built up from terms like those defined in equation (6.6)
g is the gravitational field vector, a column consisting of g for all the Z degrees of
freedom and zero elsewhere. g is, of course, the acceleration due to gravity.
A detailed examination of the stiffness matrix reveals that it can be partitioned into one Kz
involving the X, Z, x and y degrees of freedom and one Kr involving the rest as follows:-
[106]
K z 0 x z M z 0 g z
= (6.11)
0 K r x r 0 M r 0
The diagonal mass matrix M is likewise partitioned into Mz and Mr and so also with the
vector g. This gives the equations
K zxz = Mzgz = F
(6.12a) and (6.12b)
K r xr = M r 0
F is a force vector consisting of mi g at all the Z degrees of freedom and zero elsewhere.
This gives a means of deriving the sag displacement (Z freedoms) and slope (y freedoms)
using a standard method of solving linear algebraic equations. The one used in this
investigation is LU decomposition [101].
At first glance it would appear that only the Z and y degrees of freedom need be included
in Kz. The X and z degrees of freedom are included because the tilt of the ballscrew in the
nut causes the saddle or table to tilt about the slideways. This can cause an axial movement of
the nut which in turn can cause a rotation of the screw. Although these effects are small, if
neglected they can give rise to a small kick at the beginning of the motion predicted by the
model.
The remaining displacements xr are zero if K r 0 and the diagonal terms of Mr are non-
zero. The two conditions are true for physically realistic systems and the result is to be
expected.
When there is pre-tension in the ballscrew, tilt moments occur. The extent of these
moments is dependent on the deflected shape of the screw, but the moments themselves have
an effect on the deflected shape. For the ith node in the ballscrew the titling moment My i is
given by:-
M y i = T+ ( zi zi 1 ) + T ( zi +1 zi ) (6.13)
where T+ is the tension in the element on the upstream or driving end side of the node and T-
is the tension in the element on the downstream side. If a pre-tension T of the typical order
used in machine tool applications is set into the ballscrew, then T T+ T . The small
difference which can arise between T- and T+ occur because of axial transient or vibratory
behaviour of the screw. When calculating the initial condition, T = T+ = T .
The deflected shape under pre-tension is derived as follows. First the deflected shape with
no pre-tension {zi}0 is calculated using equation (6.12a). Then the tilt moments are derived
and included in the load vector. Equation (6.12a) is solved again to give {zi}1. A measure of
[107]
the difference between the two shapes is obtained by adding the square of the difference in
deflection for each of the nodes:-
S dz 2 = ( zi 1 zi 0 ) 2 (6.14)
The deflected shape can be improved progressively, a satisfactory solution being considered to
have been obtained when:-
S dz 2
< = 10 20 (6.17).
Sz2
The sag displacements are used as the initial values in calculating the dynamic behaviour
of the ballscrew system.
The sag induced by gravity sets up a distribution of strains and associated potential energy
within the body of the screw. When the screw rotates these strains are carried round with it.
Therefore, one approach to the analysis of the subsequent behaviour of the screw is to use a set
of local axes which rotate with the screw, (see Figure 6.4). In the cases considered here there
are more degrees of freedom associated with the screw than with the rest of the system put
together. To start with, it is therefore considered to be more convenient, mathematically
speaking at least, to rotate the universe than to rotate the screw. This means that the following
changes have to be made to the terms in the modelling process.
[108]
K lin 0
K + ib = (6.18a)
0 K ang
where
k ax ib 0 0
K lin = 0 k tr y ib c 2 + k tr z ib s 2 (k tr y ib k tr z ib ) sc
0 (k tr y ib k tr z ib ) sc k tr y ib s 2 + k tr z ib c 2
(6.18b)
0 0 0
K ang = 0 k tilt y ib c 2 + k tilt z ib s 2 (k tilt y ib k tilt z ib ) sc
0 ( k k tilt y ib s 2 + k tilt z ib c 2
tilt y ib k tilt z ib ) sc
and
c 2 = cos 2 x ib
s 2 = sin 2 x ib (6.18c)
sc = sin x ib cos x ib
[109]
J xx&&x = 2m r r& &
(6.21)
where r = y2 + z2
where m is the mass, J0 is the torsional moment of inertia about an axis through the
centre of mass and parallel to the X axis and Jxx is the moment of inertia about the
X axis. Therefore the inertia term has to be increased as the centre of the node moves
off centre and a Coriolis term has to be introduced into the force vector
Secondly the additional terms in the acceleration vector give rise to extra terms in the
y and z columns of the force vector at each node of the ballscrew
Thirdly the gravitational force term needs to be rotated as the screw rotates.
The combined effect of these factors gives the force vector for node i as
Fa i
mi g sin x i + y i&x i + y i&&x i + 2 y& i&x i
2
[110]
increases there is an increased tendency for the screw to move like a skipping rope in which
case the centre of rotation does move closer to the x axis.
Because the screw does not, in general, rotate around the x axis, it is better to use a
reference frame which is fixed relative to earth. The transformations described in
equations (6.18), (6.19) and (6.22) are not therefore needed.
z z
y = M = Jx x (6.25)
t t t
and:-
[111]
y x y
z = M = J x (6.27)
t t t
These torques are active on the node inertia, therefore to allow for gyroscopic effects extra
terms need to be added to the force vector as follows:-
0
0
0
Fgyr = 0 (6.28)
x z
J x t t
J x y
x t t
It has been found that the trajectory of a node on the ballscrew is a curve that can be
approximated to an ellipse, which in turn can be thought of as the sum of a displacement in the
YZ plane, a transverse vibration along some line in that plane, and a circular motion.
In the case of transverse vibration, the acceleration vector is parallel to the velocity vector,
but in the case of circular motion, acceleration acts at right angles to velocity. This gives a
means of obtaining a local centre of motion. First the acceleration amplitude an and its
direction a from the Y axis of a node are derived from the components in the Y and
Z directions:-
&z&i
a = tan 1 (6.30)
&y&i
Then similarly, the velocity amplitude vn and direction angle v are obtained:-
z&i
v = tan 1 (6.32)
y&i
The angle between them enables the circular component of the acceleration acirc to be
derived from:-
[112]
The radius rcirc of the motion then follows from:-
acirc i
rcirc i = (6.34),
2
It had been intended to us this information to up-date the moment of inertia of the screw
nodes, and introduce a centrifugal force component to the dynamic equations. However, it
was found that for the examples used to test the C program these effects were quite small and
were neglected.
One final consideration. It is often the case that vibration measurements using
accelerometers or velocity transducers are taken on parts of a structure close to the bearing
caps in order to monitor a machines condition. This can be more convenient to measure. For
example, a shaft order vibration of 0.1 m at 1000 rpm could prove difficult to detect, but this
2 1000
2
6
gives an acceleration of 0.1 10 1000 = 1.10 mm/sec which should be
-2
60
quite easy.
In order that bearing support movement can be predicted additional terms should be
included in the model, (see Figure 6.7).
[113]
m x str i 0 0 0 0 0
0 m y str i 0 0 0 0
0 0 m z str i 0 0 0
M str i = (6.35)
0 0 0 0 0 0
0 0 0 0 j y str i 0
0 0 0 0 0 j z str i
Including the K+i matrix defined by equation (6.7), the additional terms in the stiffness matrix
which represent the bearings and their support structures are
+ K +i K +i
(6.36)
K +i K + i + K str i
where
k x str i 0 0 0 0 0
0 k y str i 0 0 0 0
0 0 k z str i 0 0 0
K str i = (6.37)
0 0 0 0 0 0
0 0 0 0 k y str i 0
0 0 0 0 0 k z str i
B & 2 sin
Fi = i x i xi
(6.38)
0
0
0
where Bi is the out-of-balance. It has dimension of massdistance. A mass of 50 g at a
B
radial distance of 20 mm from the centre of the ballscrew, which is typical of the levels of out-
of-balance used on the test rig, was used. The behaviour shown on Figure 6.8 is predicted by
the model. On this figure five trajectories of the ballscrew centre are plotted in the transverse
(YZ) plane. These are:-
ballscrew driven end (blue trace),
ballscrew 1/4 point (green trace)
ballscrew mid-point (red trace)
[114]
ballscrew 3/4 point (cyan point)
ballscrew non-drive end (black trace)
The motion starts with the screw sagging under its own gravitational load. Thus the points all
lie in the y=0 plane. As the screw picks up speed, the driven end, the 1/4 point and the
3/4 point follow spiral trajectories. The movement predicted for the non-drive end and the
mid-point, which is restrained by the ball nut, is very small.
[115]
Chapter 7 - THERMAL CONSIDERATIONS
A thermal model of a ballscrew system needs to take into account where and how heat is
generated in the system, where and how heat is dissipated and how the heat gets from one part of
the system to another. The heat sources are the ballscrew nut and the screw support bearings,
and the heat sinks are the machine part in which the bearings are mounted, the machine part to
which the nut is attached and the surrounding air. In addition, the means by which the screw is
driven may be either a source or a sink or both.
In the case of the ball nut, the heat generation mechanisms are expected to be friction in the
rolling action, hysteresis associated with repeated compression and decompression of the nut,
screw and ball material, viscous effects, churning of the lubricant and seal friction. In addition,
the acceleration and deceleration of the balls as they pass from the recirculation paths to the
screw helix also dissipates mechanical energy as heat. These factors in turn are affected by the
number, size and quality of the rolling elements, the surface finish and circularity of the screw
and nut races, the lubrication type, performance and temperature, pre-load and pre-tension,
misalignment and the type of seal.
In the case of the bearings also, the heat generation mechanisms are expected to be friction in
the rolling action, hysteresis associated with repeated compression and decompression of the
race and ball or roller material, viscous effects, churning of the lubricant and seal friction.
Again, these factors in turn are affected by the bearing type (ball, roller, angular contact etc), the
number, size and quality of the rolling elements, the surface finish and circularity of the races,
the effect of caging, the lubrication type, performance and temperature, pre-load, misalignment
and the type of seal.
The means of dissipating the heat are radiation, convection and conduction. The principal
means of transferring heat from one part of the system to another is conduction.
Dealing first with radiation; heat is a form of energy which in matter - solid, liquid or gas - is
the kinetic energy of the particles which make up the matter. This energy can also take the form
of electromagnetic particle/wave quanta with a characteristic wavelength in the range of 10-4 m
to 7 10-7 m [102]. In this form heat travels through space at the speed of light. Such energy is
known as radiant heat and the law of physics which governs radiation from a surface of a body
is the Stefan Boltzmann law [103], which can be stated as:-
q = T 4 Ta4 (7.1)
where q is the nett heat flux from the surface and T is the absolute temperature of the surface
under consideration. Ta is a temperature representative of the surroundings into which the
[116]
surface is radiating heat. In the case of a machine tool drive, typically a ballscrew is mounted
inside a bed, saddle or column surrounded by guarding designed to keep swarf away from the
machines mechanism. In such cases the average temperature of the surfaces surrounding the
ballscrew would serve. is the emissivity of the surface, that is the heat radiating ability of a
surface compared to that of an ideal black body, and is the absorptivity of a surface, which is
the surfaces heat absorbing ability compared to that of an ideal black body. Both and are
measures of the efficiency of a surface in transferring energy between the kinetic energy of the
molecules of the body and quanta of radiant heat. = 5.67210-8 W/(m2 K4) [104] is the
Stefann-Boltzmann constant, a fundamental property of the universe.
Commonly, because the temperature of the emitting surface is significantly higher than that of
the surroundings, and therefore the range of wavelengths in which the greater part of the emitted
energy is different from that of the energy absorbed, the emissivity is different from the
absorptivity [105]. However, since the temperature reached by the surface of the ballscrew is
only of the order of tens of degrees above that of the cavity in which it operates, the absorptivity
can be regarded as the same as the emissivity and so equation (7.1) can be rewritten as:-
q = (T 4 Ta4 ) (7.2)
q
hr = = (T 2 + Ta2 )(T + Ta )(T Ta ) / T (7.3a)
T
If (T Ta ) << (T + Ta ) , equation (7.3a) can be replaced by:-
q T + Ta 3
hr = 4 ( ) (7.3b)
T 2
Using a typical value of 0.20 for the emissivity of steel in the polished state which is normal in
the case of a ballscrew [106], assuming an ambient temperature of 20C and a ballscrew surface
temperature of 35 C gives:-
3
8 (273 + 35) + (273 + 20)
hr = 4 0.70 5.672 10 = 4.31 W/(m K)
2
(7.4)
2
When a surface of a solid body is covered by fluid which is at a different temperature to that
of the solid close to the surface, heat is conducted from the solid into the fluid. This causes the
fluid close to the surface to be at a temperature different from that of the bulk of the fluid. The
resulting changes in density cause differential buoyancy effects which set the fluid in motion.
The effect of such motion is to replace the fluid whose temperature is different from the bulk
temperature of the fluid by some whose temperature is closer to the bulk temperature. The nett
[117]
effect of this is to transport heat to or from the surface of the solid at a rate greater than could be
achieved by conduction. This process is known as natural convection and the motion in the
fluid is called a convection current.
If the solid body is moving through the fluid, or if the fluid is caused to move across the
bodys surface, the motion of the fluid is at a rate greater than that which would be set up by
differential buoyancy, and the rate of heat transfer to the fluid can be expected to be greater.
This process is known as forced convection.
Analysis of these phenomena is fraught with difficulties. The convection currents can be
laminar where adjacent layers within the fluid slide over one another, or turbulent where the
flow includes lots of eddies acting in a chaotic manner. Generally speaking laminar flow occurs
at low fluid speeds and turbulent flow at high speed. Especially in the case of natural
convection, the amount of space in which convection currents can be established has an effect on
their speed and behaviour. The density, viscosity and thermal conductivity of the fluid all have
an influence on convective behaviour. All of these physical properties are affected by
temperature, viscosity especially so. The flow rate at which turbulent behaviour is expected to
start is determined using the dimensionless Reynolds number, Re. For flow where the speed of
the bulk of the fluid is u and the kinematic viscosity, for a surface of characteristic length L
u L
Re = (7.5)
v
In physical terms, the Renolds number can be thought of as the ratio of the inertia force to the
viscous force. The onset of turbulence can occur when 10 5 < Re < 4 10 6 . For a flat plate the
critical Reynolds number is commonly taken to be 5 105 [107].
In many convection problems, a boundary layer is considered to exist close to the surface in
which the flow is laminar. The flow in the fluid beyond this layer is considered to be turbulent.
The thickness of this layer has an important influence on the heat dissipating ability of a surface.
The behaviour of a ballscrew system is especially complex. Convection can be expected to
occur at the surface of the bearing housings, the ball nut and the ballscrew itself. The ballscrew
rotates, thus generating relative motion between itself and the surrounding air. The nut also
moves through the air generating a flow across its surface as well as displacing air in front of it
and entraining air behind it. Nevertheless, the mounting arrangements of the nut flange are often
such that the side of the nut closest to the body it is mounted to is sheltered to some extent from
windage generated by movement of the nut. Lots of work has been done on the convective
properties of flat plates at various orientations to the vertical, on cylindrical tubes and on banks
[118]
of cylindrical tubes. The case of a ballscrew does not fit conveniently into any of these
categories and so estimates of the convective behaviour have had to be made.
Heat in a body is stored in the kinetic energy of its constituent particles, the more vigorous the
motion of the atoms etc., the higher the temperature. If one part of the body is at a higher
temperature than another, there is a general tendency for the internal energy of the body to
become shared out more evenly. This means that, in effect, energy is transferred from hotter
regions to colder regions. This process is known as thermal diffusion or thermal conduction.
For a body made of a material of density , specific heat at constant pressure Cp and thermal
conductivity k the heat diffusion equation can be stated in a general form as:-
T
Cp = H + .( k T ) (7.6a)
t
or:-
T H 1
= + .(k T ) (7.6b)
t C p C p
where H is the heat production rate density (watt/kg) of the part of the body under consideration.
In the case of ballscrew systems, the materials of which their parts are made are isotropic and so
equation (7.b) can be simplified to:-
T H
= + 2T (7.7)
t C p
k
= (7.8).
Cp
(It is of interest to note that the units of thermal diffusivity are those of area per unit time, the
same as those of kinematic viscosity.) Where there are no heat sources, equation (7.7) can be
simplified further to:-
T k
= 2T = 2T (7.9)
t Cp
[119]
which the ballscrew is made, is a good conductor of heat, and the typical distance from a piece of
ballscrew material from the surface is small compared to the length of the screw.
In order to test the reasonableness of this assumption, the following approach was undertaken.
A round bar of a size typical of a ballscrew in a medium sized machine tool was taken and
modelled as a string of N thermal masses connected by conductivity elements of cross-
sectional area Ac, that is to say, the material was considered to act at N nodes equally spaced
along the length L of the bar. The elements between the nodes pass heat according to the Fourier
equation:-
dQc A
= k c T (7.10)
dt x
dQc
where is the rate of heat conducted along the element and T is the temperature difference
dt
across it. Its length x is given by:-
L
x= (7.11).
N 1
Each node has a thermal capacity tcjx given by:-
tc jx = C p m jx (7.12)
is allowed to cool for the period t h < t t stop . The analysis proceeds by setting the first row of a
time history array of temperatures Thitime ix to the ambient temperature Ta then calculating the
subsequent rows at time interval t. This was done by defining a smaller time interval t by
t = t N (7.14), then at each of these small intervals the changes in temperature dTjx were
calculated for each node as follows:-
For jx = 1 :-
T2 T1
T1 = (k Ac ( As1 + Ac )(T14 Ta4 )) / tc1 t (7.15a)
x
[120]
for 2 jx jQ 1 and for jQ + 1 jx N 1 :-
T jx 1 2T jx + T jx +1
T jx = (k Ac As jx (T jx4 Ta4 )) / tc jx t (7.15b)
x
for jx = jQ :-
T jQ 1 2T jQ + T jQ +1
T jQ = (Q + k Ac As jQ (T jQ
4
Ta4 )) / tc jQ t (7.15c)
x
and for jx = N :-
TN 1 TN
TN = (k Ac ( As N + Ac )(TN4 Ta4 )) / tc N t (7.15d)
x
where Asi is the cylindrical surface area of the ith element.
The temperature at row itime in the temperature history array Th was then given by
N
Thitime jx = Thitime1 jx + T jx for 1 jx N (7.16)
ix =1
Selected rows from the temperature history array could then be plotted on a temperature versus
axial position plot to illustrate the development of the temperature distribution along the rod as
time passes. This model is one-dimensional, that is to say the temperature is dependent only on
the axial position of a point on the body and on time.
In fact, a ballscrew is a three-dimensional object and, when it is running, heat from the
bearings and nut will be applied in an approximately symmetrical manner at the surface. In
order to study the effect of this the model was extended to two dimensions by considering the
temperature to be a function of the radial distance from the axis of the rod as well as of the axial
position. This was achieved by splitting each of the nodes tcjx into five nodes with the same
axial coordinate. One is a central cylinder with a diameter a fifth of that of the rod, the
remaining four are hollow cylinders of progressively larger size with the last one having an
outside diameter equal to that of the rod. The axial conductivity elements are split up in a similar
manner, and four radial conductivity elements have been included to allow flow of heat from one
layer to another. Of course, heating and cooling can only be applied to the outer layer. The
surface area of the inner and outer cylindrical surfaces of the nodes Asijx, Asojx are derived from
the outer surface of the rod, the thermal capacity of the nodes are derived from those of the
corresponding one-dimensional nodes and the cross sectional area of the axial conductivity
elements are derived from that of the bar as shown in Table 7.1.
Equations (7.15) need to be modified to allow for radial conduction between the outer layer
and the next one in as follows:-
[121]
For jx = 1 :-
T1 2 T1 1 T2 1 T1 1
T1 1 = (k Ac 1 + k Asi1 ( As1 + Ac 1 )(T141 Ta4 )) / tcr1 t (7.17a)
x d 10
for jx = jQ :-
T1 jQ 1 2T1 jQ + T1 jQ +1 T2 jQ T1 jQ
T1 jQ = (Q + k Ac 1 + k Asi jQ
x d 10 (7.17c)
As jQ (T14jQ Ta4 )) / tcr jQ t
and for jx = N :-
T1 N 1 T1 N T2 N T1 N
T1 N = (k Ac 1 + k Asi N ( As N + Ac 1 )(T14N Ta4 )) / tcrN t (7.17d)
x d 10
Table 7.1 Derivation of 2D thermal model data
Layer 1 2 3 4 5
(outer) (inner)
Aci 9/25 7/25 5/25 3/25 1/25 Ac
Asijx 4/5 3/5 2/5 1/5 - Asjx
Asojx - 4/5 3/5 2/5 1/5 Asjx
tcrjx 9/25 7/25 5/25 3/25 1/25 tcrjx
In the case of the inner hollow layers, heat can be conducted between a layer further out from
the centre as well as one further in. Equations (7.17) have to be developed further for 2 ir 4
as:-
For jx = 1 :-
Tir 2 Tir 1 Tir 1 Tir 1 1 Tir +1 1 Tir 1
Tir 1 = (k Ac ir k Aso1 + k Asi1
x d 10 d 10 (7.18a)
Ac ir (Tir4 1 Ta4 )) / tcr1 t
for 2 jx N 1 :-
[122]
Tir jx 1 2Tir jx + Tir jx +1 Tir jx Tir 1 jx
Tir jx = (k Ac ir k Aso jx
x d 10
(7.18b)
Tir +1 jx Tir jx
+ k Asi jx ) / tcr jx t
d 10
and for jx = N :-
Tir N 1 Tir N Tir N Tir 1 N Tir +1 N Tir N
Tir N = (k Ac ir k Aso N + k Asi N
x d 10 d 10 (7.18c)
Ac ir (Tir4 N Ta4 )) / tcrN t
In the case of the central row of elements, heat can only be conducted between a layer further
out and so equations (7.18) can be simplified to:-
For jx = 1 :-
T5 2 T5 1 T5 1 T4 1
T5 1 = (k Ac 5 k Aso1 Ac 5 (T541 Ta4 )) / tcr1 t (7.19a)
x d 10
for 2 jx N 1 :-
T5 jx1 2T5 jx + T5 jx+1 T5 jx T4 jx
T5 jx = (k Ac 5 k Aso jx ) / tcr jx t (7.19b)
x d 10
and for jx = N :-
T5 N 1 T5 N T5 N T4 N
T5 N = (k Ac 5 k Aso N Ac 5 (T54N Ta4 )) / tcrN t (7.19c)
x d 10
An average temperature distribution Tavjx was given by:-
9 7 5 3 1
Tav jx = T1 jx + T2 jx + T3 jx + T4 jx + T5 jx (7.20)
25 25 25 25 25
These two methods were coded in MATLAB routines therm2a and therm3a
respectively. They were both run to predict how the temperature distribution would develop
with time and the results were compared. A steel bar of 38.4 mm diameter and 1.362 m long
was used, this being the size of the ballscrew in the linear guide rig. This was heated for
10 seconds at the centre by a 500 W source and then allowed to cool for a further 50 seconds.
Figure 7.1 shows the difference between a succession of temperature distributions predicted by a
one-dimensional thermal model of a ballscrew and the corresponding average temperature
distributions predicted by a two-dimensional model, (a three dimensional model with radial
symmetry).
[123]
Figure 7.1 A comparison of one-dimensional thermal and two-dimensional
thermal models of a ballscrew, 2Dave 1D
[124]
The results show that the difference was very small when comparing the average
2D temperatures with the 1D values. This indicates that a one-dimensional approach can be used
with confidence for modelling thermal growth effects which are dependent on average
temperatures. When the temperatures predicted at the surface are compared, a temperature
difference of 15C occurs under the heating element at the end of the heating phase (Figure 7.2),
but the temperature differences during the cooling phase are no more than 0.03C (Figure 7.3).
[125]
which the ballscrew system is mounted, and a set of rolling elements which roll between the
inner and outer races. The rolling elements might be balls, cylindrical rollers, taper rollers, or a
form of long thin cylindrical rollers known as needles. In most types of bearing the rolling
elements are kept in place by some sort of cage, commonly a thin sleeve with a set of near
radial holes to constrain the rolling elements. Such bearings can be lubricated by oil supplied
from a centralised supply, or grease which is packed into the bearing during manufacture.
Arrangements whereby the grease can be replenished from time to time are common. Bearings
on machine tool drives normally have lip seals or similar to keep the lubricant in and foreign
matter out.
As the ballscrew rotates the rolling elements roll between the inner and outer races. The load
carried by the bearing puts the rolling elements in compression, and a set of Hertzian
compression zones are set up on the rolling elements and the raceways. The size and shape of
these zones depend on the load being carried and the relative radii of curvature of the surfaces
involved. The zones on the inner race will have different characteristics from those on the outer
race. Taking the case of a ball bearing as an example and defining convex curvature as positive,
the inner race/ball contact will involve three positive curvatures and one negative, whereas the
ball/outer race contact will involve two positive curvatures and two negative. The local
compression will push the ball and race away from the shapes in which they would ideally roll
and therefore the rolling action will in practice entail a small amount of sliding with its attendant
friction. This rolling friction is a source of heat.
As the bearing rotates the regions of material that are under compression change with time. A
particular piece experiences a time when it is under little strain, it is then given energy in the
form of strain potential energy as it comes under load, this energy is then released as the load is
removed. Some of this energy is dissipated as heat. The process is known as hysteresis and
involves the material in the races and the rolling elements which come into the compression
zones.
The lubricant can be subject to viscous shear as it passes through a compression zone and
churning of lubricant being pushed aside by the rolling action also occurs. Both these effects
give rise to heat.
Finally a lip seal normally has a circumferential spring which helps the lip of the seal keep in
contact with the shaft being sealed. The friction effect associated with the lip contact force is
also a source of heat.
[126]
7.3 Thermal behaviour of nut
In the case of the ball nut, the heat generation can take place in all of the ways described in
Section 7.2. In addition, as the balls roll between the screw and the nut, eventually they come
close to the end of the nut. At this stage they need to be collected and fed back to the front of
the nut as described in Chapter 3. While the balls are working in the nut, they contain kinetic
energy of rotation, kinetic energy associated with the whole body movement of their centre of
gravity, and strain potential energy associated with the compressive load which they carry.
Much of this energy is dissipated as heat as the balls leave the working part of the nut. Since the
ball collection arrangements are part of the nut, it is expected that this heat will pass into the nut.
Key:
Conduction across joint
Conduction
Table Nut housing Convection
5 FE 5 FE
Radiation
[127]
heat dissipated from the bearing and ballscrew nut mounting arrangements, (see Figure 7.4).
The model, which uses finite element techniques, can predict the thermal behaviour under a
variety of conditions.
The ballscrew on the Linear Guide Rig has been the subject of several thermal tests
undertaken in a recent Research Project carried out at the University of Huddersfield [109]. One
of the results of this work has been to find that the dissipative effect of the ballscrew nut is
approximately independent of load, in the sense of mass of the saddle, and only slightly
dependent on speed. The friction torque of the nut and bearings has been measured by noting the
motor current which is proportional to torque. This has shown that the nut torque drag on the
ballscrew is 1.1 N m at low speed increasing to 1.2 N m at high speed [110]. A feature, which
enables speed-dependent empirical torque data to be used, has been incorporated into the
C program which models the mechanical system (see Chapter 6 and Appendix 6.1). This feature
has been shown to work correctly by checking against hand calculations.
The C program also computes the energy dissipated, and therefore the heat generated from
7 effects as follows:-
1. drive motor bearings, Coulomb friction plus viscous drag
2. drive coupling (coupling element, drive belt, chain, gear mesh), viscous effects
3. ballscrew drive end bearings, Coulomb friction plus viscous drag
4. ballscrew shaft, viscous effects
5. ballscrew nut, to suit empirical data OR calculated from screw theory using an
equivalent coefficient of friction
6. ballscrew tail end bearings, Coulomb friction plus viscous drag
7. saddle / table support bearings, Coulomb friction plus viscous drag
It did not prove possible to build a comprehensive model incorporating mechanical and
thermal effects, because of the incompatibility of the time scales of the two effects. In order to
cope adequately with mechanical effects, especially with transients, it was necessary to use small
time steps, typically of the order of 50 sec, whereas thermal models time steps are typically of
the order of minutes. The method developed in this Thesis is capable of modelling dissipative
effects, including non-linear ones, but the output would best be converted to heating rates to be
input into a thermal model. If the thermal model suggested that parameters in the mechanical
model had changed over the order of the time scales in which the thermal model operates, the
mechanical model would have to be run again to generate a set of new thermal inputs, and so on
to cover the period covered by a full thermal analysis.
[128]
Experience has shown that a fully coupled thermal / stress analysis is rarely required, very
few parameters need up-dating on a small time scale, so it is acceptable to use data generated
from a brief simulation to provide them.
[129]
7.5.1 Cooling using a moving fluid
The first thing to note is that as a consequence of the second law of thermodynamics [111],
which in its simplest form can be stated as heat cant flow from a colder to a hotter body, it is
only possible to reduce thermal expansion by the use of cooling media whose temperature is
about the ambient temperature of the machine where the ballscrew is being used. In order to
bring the temperature of the screw down to ambient the cooling medium must be cooler than
ambient.
Considering the two options of external or internal cooling:-
External cooling involves squirting the cooling medium at the outside surface of the
ballscrew or nut. It offers the advantages that it entails little extra equipment, a few
nozzles and the associated pipe-work will do, and if some of the nozzles are mounted on
the part propelled by the nut, the cooling effort can be concentrated close to the sources
of heat generation. However, external cooling has the drawbacks that the surface area of
the parts being cooled which is in contact with the cooling medium is small, and, because
the coolant quickly falls from or is flung off the surface, the time that the medium is in
contact is short. This makes the use of the coolant inefficient. Also if the coolant is
water-based, it is not good practice to flood the ballscrew. If the nut is grease lubricated,
sufficient coolant to impair lubrication may eventually get past the seal. If the nut is oil
lubricated by a pressure system, the lubricant tends to flow out so lubricant
contamination should not be a problem. Nevertheless, in order to avoid abrasive damage
to the screw and the possibility of abrasive particles finding their way past the seals into
the ball mechanism, the coolant would need to be well filtered. Further, care would need
to be taken over the siting of the coolant nozzles in order to avoid collisions or restricting
the scope of movement of the nut.
Internal cooling entails passing the cooling medium through one or more passages in the
part being cooled. The surface area over which the coolant flows is under the control of
the designer and it can be arranged that the coolant remains in contact with the surface
being cooled for a significant time.
Because internal cooling arrangements are more amenable to analysis and control, it is these
that will be considered in this Chapter.
[130]
making most use of the services already available on most machines and that the coolant can be
allowed to drain into the coolant sump of the machine after it has finished its cooling work.
If the ballscrew is made with an axially central hole, coolant can be introduced at one end and
collected mainly at the other. A nozzle arrangement which directs the coolant along the tube and
outwards to the surface of the internal passage should ensure a flow along the internal surface of
the ballscrew when it is running. A collecting shroud would be fitted over the opposite end of
the screw to direct the used coolant towards the coolant drain. A similar shroud should also be
fitted around the inlet end to collect any coolant which might overflow past the nozzle and spill
out at the inlet end. These arrangements would not have to be water-tight since the momentum
of the flow from the nozzle should ensure that the greater part of the coolant should flow in the
direction intended.
Such arrangements would be satisfactory for ballscrews driven by gears, belt pulleys or chain
sprockets. In the case of screws driven in-line by a flexible coupling two arrangements are
possible. One would be to have the nozzle mounted internal to the screw at the drive-end and the
coolant fed via a sleeve fitted on the outside of the screw. The other would be to mount the
nozzle at the non-drive end and arrange drainage via a series of radial holes close to the drive
end of the ballscrew. In the case of the ballscrew on the linear guide rig at Huddersfield
University, its outside diameter is typically 40 mm, its pitch 16 mm and its maximum speed
40 000 mm/min. Its maximum peripheral speed is therefore:-
40 000 40 1
v per = = 5.24 m/sec (7.21).
16 1000 60
Lip seals should be adequate in this situation for the pressures likely to be involved, although it
is recommended by seal manufacturers that the surface against which they bear should be ground
if the lip speed exceeds 4 m/sec [112].
For laminar flow the Nusselt number, which can be understood as the ratio of the rate of heat
transfer by convection to that by conduction, is about 3.66 [113]. The relation between the
Nusselt number Nu and the heat transfer coefficient h is given by:-
hd
Nu = (7.22)
k
where d is the diameter of the tube and k is the thermal conductivity of the fluid. For the whole
ballscrew the heat transfer rate per degree is therefore:-
k Nu
H= d l = k Nu l (7.23)
d
[131]
where l is the length of the coolant hole. The thermal conductivity of water at 20C is
0.597 W/(m K) [114] and so the heat transfer rate per unit length of whole hole can be estimated
as:-
H
= 0.597 3.66 = 6.86 W/(m K) (7.24)
x
Consider water flowing through the hole with an average speed of vw. Let the temperature of the
water at the inlet (x = 0) end of the cooling duct be Twi, that of the water as it travels through the
screw be Tw and the temperature of the ballscrew material be Tb. The change in temperature of
the water as it passes through an element of the screw from x to x + x is T. Balancing the heat
Q which passes from the water into the ballscrew metal in time interval t against the heat gain
or loss from the water flowing through the hole gives:-
q = k Nu (Tw Tb ) x t = C p d 2 v w t w Tw joules (7.25)
4
where w is the density of water. This gives the temperature gradient in the coolant as:-
Tw 4k Nu
= (Tw Tb ) K/m (7.26).
x C p w d 2 vw
Since the thermal conductivity of the screw material is much greater than that of water, assume
for simplicity that Tb is uniform throughout the screw. Then the temperature of the water is
given by:-
4 k Nu
x
C p w d 2 vw
Tw = (Twi Tb ) e + Tb C (7.27)
4k Nu 4 0.597 3.66
For water at 20C = = 2.089 10 6 m2/sec (7.29a)
C p w 4.183 10 1000
3
Cp w
and = 0.4786 10 6 sec/m2 (7.29b)
4k Nu
leading to:-
2.08910 6
d 2 vw d 2 vw
l
Tw = 0.4786 10 6
(Twi Tb ) (1 e ) + Tb C (7.30)
l
Using the average temperature of the water derived by equation 7.30 and equation 7.23 the rate
at which heat can be removed by water passing through the ballscrew can be derived.
[132]
Calculations based on this approach (Appendix 7.1) for a typical application show that this
method of cooling can remove the heat likely to be generated by the action of the ballscrew and
its bearings using reasonable coolant flow rates if a supply of chilled water, that is water at about
10C below the ambient temperature of the machine, is available.
If this method is to be used to correct ballscrew thermal errors and to maintain pre-tension, it
is necessary to control the heat flow through the coolant. The heat loss rate can be changed by
changing the coolant inlet temperature, the flow rate or both. Control would need to be achieved
by monitoring the average temperature of the screw.
Compressed air available in typical workshops is obtained by compressing air from the
atmosphere and storing it in a pressure vessel. The atmosphere contains a certain amount of
water vapour which depends on the weather and the proximity of steamy processes. The
amount of water vapour it can carry before condensation takes place depends on temperature.
Therefore compressing air tends to make it more humid. Commercial air supplies should
[133]
therefore be regarded as wet, and arrangements need to be made for draining excess water
from compressor receivers. Unless the compressor is working in a particularly arid region or
special arrangements have been made, the partial pressure of water vapour in the air supply line
will be near to the saturated vapour pressure at the temperature of the workshop.
If compressed air is expanded down to atmospheric pressure it dries and has the capacity to
absorb moisture from a water spray and achieve a cooling effect. Calculations using a typical
workshop air supply pressure (Appendix 7.2) show that a cooling effect of about 12C can be
achieved, (see Figure 7.5). However, the rate of air flow needed to remove the heat at the
required rate is likely to be regarded as excessive by many users and so of the two options water
cooling is better in most cases.
7.6 Comparison with measured data
The dynamic models keep an account of all the dissipation mechanisms built into them. At
each stage of the analysis the rate of energy dissipation is calculated for any Coulomb friction,
viscous damping and any other dissipative process which is incorporated into the mechanical
model. As presently set up, the dissipative effects are formed into seven sums as follows:-
motor bearings
drive coupling
ballscrew driving end bearing
ballscrew shaft (material dissipation)
ballscrew nut
ballscrew driven end bearing
saddle or table slideways
The rates of dissipation of each of these groups is integrated to give a total energy. This
energy is mainly in the form of heat.
As the analysis proceeds, the energy dissipated by the various mechanisms is added to the
potential energy in the springs and the kinetic energy in the inertias. This total energy is
balanced against the energy put in by the motor. This is a check on the validity of the model and
shows that the system obeys the first law of thermodynamics. A sample result is shown in
Figure 7.6. As can be seen a balance is achieved within 0.5%. One source of energy input
which is not considered in the energy balance is that involved in the vertical movement of the
gravitational forces as the nut changes position in the run. Though the movements are small, the
forces are significant. If the model were to be refined to include this energy term, even the 0.5%
might be improved upon.
[134]
Energy balance
0.6
0.5
0.4
Energy balance, (%)
0.3
0.2
0.1
-0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Time, (sec)
The dynamic model includes two broad options for accounting for dissipation. One is based
on considering the detailed mechanical environment of each part of the mechanical system. The
other involves the use of measured data (e.g. measured friction torques) where available.
Total energy transfer from nut and bearings Predicted energy dissipated - ballscrew bearings and nut
300 300
150 150
100 100
50 50
0 0
0 0.5 1 1.5 2 2.5 3 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Time (s) Time, (sec)
Figure 7.7 Energy dissipated in nut Figure 7.8 Energy dissipated in nut
and bearings thermal model and bearings dynamic model
A comparison has been made between the energy used in a model used to account
successfully for some thermal measurements on the Linear Guide Rig [108] and the energy
dissipation calculated by the dynamic model based on measured friction data. Figure 7.7 shows
[135]
the energy involved in the thermal model, and Figure 7.8 gives the corresponding result from the
dynamic model.
The figures compared are one single run with the dynamic model compared with a half
cycle for the thermal model. The pattern of energy dissipation is the same and the differences
in final energy level are approximately 10%. This degree of correlation shows that the
dissipative mechanisms included in the dynamic model can give valid inputs to a thermal model
without the need to take measurements in a situation where the mechanisms of dissipation are
well understood.
120
100 Measured
Simulated
80 Difference
60
Error (m)
40
20
-20
End of heating
-40
0 20 40 60 80 100 120 140 160
Time (mins)
Figure 7.9 - Simulated and measured error between axis positions 0 and -460
during a heating and cooling cycle [108, Fig. 9]
Figure 7.9 shows that errors of the order of 100 m can easily occur due to ballscrew heating.
Such errors can cause loss of pre-load, added wear and pre-tension becoming compression.
Direct measurements of the terms involved in heat generation can be difficult to make.
Therefore, a method of generating heating terms from the dynamic performance of the screw
coupled with knowledge of the dissipation mechanisms involved is a useful addition to the
analytical tools available. If an understanding of how the dissipation effects vary with
temperature can be built up, the dynamic model can be used in conjunction with a thermal model
to predict changes in dynamic response as a system warms up. Two models would need to be
used because of the different time scales involved as discussed in Section 7.4.
[136]
Chapter 8 - EXPERIMENTAL VERIFICATION
The experimental verification of the dynamic model has been undertaken using the linear
guideway rig, (see Figure 8.1).
This consists of a cast iron milling machine base with a cast iron saddle carried on two
linear guideways. The saddle is driven by a ballscrew mounted in the base. The ballscrew
nut is attached to the underside of the saddle by a set of screws. The ballscrew itself is held
between two sets of angular contact ball bearings. Each bearing set is mounted in a bearing
housing into which the outer races of two bearings have been pressed. The inner races are a
sliding fit on the ballscrew and are held in place by a locking nut. The degree of preload
applied to a bearing set is determined by the torque applied to the locking nut with an upper
limit being reached when the axial gap between the inner races has been closed. Each bearing
housing is held in a carrier block which in turn is fixed to the base casting by a set of screws
and dowels.
Figure 8.1 Ballscrew linear guide rig with controller and vibration monitoring equipment
The ballscrew is driven by a DC motor which is fixed to one end of the base via a
mounting plate. Control of the motor is achieved using a Heidenhain controller located close
to the rig. Electronic signals which give an indication of the position of the ballscrew nut are
generated by a rotary encoder attached to the motor and are fed to the controller. Similar
[137]
information can also be obtained from a linear encoder on the side of the base with a sensor
attached to the saddle.
Pre-tension can be applied to the screw by stretching it. This is achieved by adjusting the
position of a lock nut at the non-drive end of the screw.
Since the ballscrew is manufactured to a good standard of precision, and since the
ballscrew is limited to a speed of 2500 rpm (40 m/min nut speed), it is not expected that this
particular screw should generate high levels of vibration by itself. Other applications
involving long ballscrews may do so, it is hoped that the mathematical models developed in
this Thesis will be of help in designing or helping to diagnose problems with such systems.
But in order to demonstrate the models ability to predict levels of transverse vibration it is
necessary to subject the screw to artificially high levels of vibration excitation. It is also
necessary to measure the vibration produced. To this end two monitoring rings have been
designed and fitted to the screw. The drawings of the rings are included in Figure 8.2. Their
function is to provide a cylindrical surface concentric with the centre of the ballscrew which
can be used in conjunction with non-contacting displacement transducers (NCDTs) to give
an indication of the radial position of the ballscrew, and to provide a means of carrying a set
of off-centre masses whose centripetal acceleration generates a transverse force proportional
to the square of the speed of the shaft.
The NCDTs are held in place using mounting pieces which are either carried by magnetic
clamps attached to the base or bonded to the base using epoxy resin. The signals from the
NCDTs are carried via special cables to a set of matched amplifiers the output of which is a
voltage signal proportional to the distance of the monitoring ring surface from the probe end.
When the probes are set at the correct distance from the monitoring ring surface, the
sensitivity of the system is 10mV/m.
A signal originating from the rotary encoder on the drive motor is taken from the controller
to give the angular position of the ballscrew. This signal takes the form of two series of
pulses in quadrature.
The signals obtained are fed into the University of Huddersfields Data Logger system.
This system consists of a personal computer (PC) fitted in this case with a digital scalar card
to handle the signal from the rotary encoder and a Blue Chip PCI analogue to digital interface
card to handle each of the signals from the NCDTs. The signals are processed using data
logging software that operates under DOS to achieve high rates of data digitisation. The rate
depends on the number and type of interface cards used and the speed of the PCs processor.
In the present case a sampling rate greater than 6000 Hz was achieved. The output of the data
[138]
Figure 8.2 Ring used as a target for an N.C.D.T and to carry out-of-balance weights
[139]
logger is a set of computer files each of which contains a record of the configuration data for
the hardware set up used and a time series of data values for each channel of information
monitored.
The support stiffness of the bearings has a significant influence on the dynamic behaviour
of the ballscrew. Data given by bearing manufacturers are often typical and do not cover
the range in which values of particular bearings can lie. Also the stiffness offered to the
screw by the bearings also includes that of the support structure, in this case the rig base,
bearing housings etc. It was therefore decided to try to derive the bearing support stiffness
from the deflected shape of the screw under a known set of forces.
To achieve this the ballscrew nut was detached from the saddle and parked near to the tail
end of the ballscrew. In order to prevent the screw moving axially in subsequent tests two
split clamping rings were fitted to the screw, one at each side of the nut. Two monitoring
rings were fitted to the screw, one as close as possible to the drive end bearing. This first ring
had to be fitted between the bearing support block and the part of the base which would have
supported the bottom of the column had the base been used as part of a milling machine. This
was the closest we could get to the bearing. Another monitoring ring was fitted between the
column support bridge and the ballscrew nut. In the case of this second ring it was possible to
fit it in a variety of positions. One of the rings was fitted with a pair of screws in one of the
holes which could be used for carrying balance weights. A wire was slung over the
workshops cranes hook with a 0 - 100 N spring balance at each end, the lower end of the
balances being attached to the screws in the monitoring ring. Load could be applied to the
screw by pulling up using a crane.
Deflection of the ballscrew was measured by mounting an NCDT close to the ballscrew
next to a cylindrical portion of its surface, that is avoiding the helical grooves where the balls
run. The probe was held by bracketry carried on a magnetic clamp attached to the saddle.
Since the ballscrew nut was not connected to the saddle, it was possible to move the saddle
along the guides by hand. By this means the radial position of the ballscrew surface could be
monitored at a variety of axial locations along the screw. Since the loads are applied
statically, that is, the loads are held steady while deflection readings are taken, the output
from the NCDTs was measured using a digital voltmeter.
[140]
8.1.1 Preliminary considerations
To get a feel for the order of magnitude of the deflections likely to be encountered consider
the case of a cylindrical bar supported at each end. Neglecting the ballscrew nut, the
clamping rings, the monitoring rings and half of the flexible coupling between the ballscrew
and the drive motor, the ballscrew can be represented approximately by a hollow cylindrical
bar of length l = 1.182 m, the distance between the bearing pack centres.
The screw has an outside diameter do of 39.95 mm and
inside diameter di of 10 mm. The ballscrew groove is a
single start helix with a pitch p of 16 mm. The axial
length of the cylindrical portion between the groove has
been measured to be 8.52 mm using Vernier callipers.
This gives dimension A, Figure 8.3, to be 7.48 mm.
Dimension B has been measured to be 2.95 mm.
Applying Pythagoras theorem [115] gives:-
2
A
(
+ rg B )2 = rg 2 (8.1)
2
where rg is the radius of the groove.
Figure 8.3 Dimensions A and B
A2
+ rg 2rg B + B 2 = rg
2 2
4
Hence
A2
2rg B = + B2
4
A2 B
and rg = + (8.2)
8B 2
Putting in the measured values gives
7.482 2.95
rg = + = 3.846 mm (8.3)
8 2.95 2
Angle can be derived from
A2 A2 4 AB
sin = = 2 = 2 (8.4)
rg A B A + 4B 2
+
8B 2
Substituting
4 7.48 2.95
sin = = 0.9725 = 1.3357 rad (8.5)
7.48 2 + 4 2.95 2
[141]
Using standard formulae [116], the cross sectional area of the groove is:-
1 2
Ag = rg (2 sin 2 ) = 16.407 mm2 (8.6)
2
and the distance from the outer cylinder to the grooves centre of area is:-
4 sin 3
y g = rg cos = 1.230 mm (8.7)
3 2 sin 2
The volume of material in a length of screw one pitch long will therefore be about:-
39.95
Vp = (39.952 102 ) 16 16.407 (2 ( 1.230))2 + 162 = 16849 mm3
4 2
(8.8)
Replacing the grooved cylinder by a uniform one would need a cylinder of outside diameter
given by:-
4V p 4 16849
d o eq = + di2 = + 102 = 37.96 mm (8.9)
p 16
Considering first the stiff case when the bearings give built in support, standard beam
theory gives [117] the maximum deflection to be:-
wl 4
ymax = (8.10)
384 EI
where the weight per unit length w is given by:-
w= ( d o2 d i2 ) g (8.11)
4
and the second moment of area I is given by:-
I= ( d o4 d i4 ) (8.12)
64
The ballscrew is made of steel of which the density = 7860 kg/m3 and the modulus of
elasticity E = 206109 N/m2 [118]. The acceleration due to gravity g = 9.80665 m/sec2 [119].
The maximum deflection is therefore:-
(0.037962 0.0102 ) 7860 9.80665 1.1824
ymax = 4 106 = 19.75 m (8.13)
384 206 109 (0.037964 0.0104 )
64
Considering secondly the flexible case when the bearings give simple support,
standard beam theory gives the maximum deflection to be:-
5wl 4
y max = (8.14)
384 EI
[142]
The maximum deflection is therefore:-
5 (0.037962 0.0102 ) 7860 9.80665 1.1824
ymax = 4 106 = 99.77 m (8.15)
384 206 109 (0.037964 0.0104 )
64
The maximum deflection of the ballscrew under its own weight should be between 20 and
100 m.
The total weight of the ballscrew using this simple model is:-
W= (0.03796 2 0.010 2 ) 1.182 7860 9.80665 = 95.95 N (8.16)
4
The deflections predicted by simple beam theory and those predicted by the moving mass
model refer to points on an imaginary line at the centre of the screw. A measurement taken at
the surface of the screw would follow the centre if the screw surface were to be perfectly
cylindrical (except for the ball groove of course). In practice the surface deviates from the
ideal. Manufacturing imperfections in the inner and outer diameters of the monitoring rings
also contribute to errors in the readings taken from their surface. Also the fact that the probe
is mounted indirectly to the saddle also gives rise to errors because the linear guides are not
perfectly parallel to the line joining the centres of the two bearing pairs which support the
ballscrew. For a given angular position of the ballscrew, the measured deflections can
therefore be understood as the sum of the deflection of the centre, which is dependent on the
loading pattern and axial position along the screw, and the errors which are dependent only on
axial position:-
{y m i ( x j )} = {yi ( x j , geom, matl , load )} + { ( x j )}, j = 1 L N m (8.17)
where ym are the elements of a set of Nm members which make up the ith set of readings, each
element being the radial deflection as measured at the axial position xj on the ballscrew. y are
the elements of the corresponding set of deflections of the ballscrew centre and are the
elements of the set of radial errors. The terms geom, matl and load indicate that these
deflections are dependent on the shape and size of the screw, the material of which it is made
and the pattern of loads to which it is subject. If the ballscrew is subject to several loading
patterns, the set of the deflections derived by subtracting the corresponding elements of the
sets obtained from any pair of loading patterns is independent of the errors.
[143]
Therefore the measurement strategy was to set the second monitoring ring in a particular
axial position and to subject the screw to three sets of loads, one pulling up with a load of
20 N, the second with 110 N and the third with 200 N and to measure the deflection of the
ballscrew cylindrical surface at as many lands between grooves as were accessible to the
NCDT probe. (The reason why a minimum of 20 N load was maintained was to prevent the
link arrangement from coming loose and moving as measurements were under way.)
The original idea had been to set the load and then work through all the axial positions in
turn to get a deflection curve, move on to the next load, take another set of deflection readings
and so on. However it became clear that the readings were subject to a significant drift of
values with time. The rig is situated under a fan driven convector heater which comes on and
goes off from time to time and so concern was expressed about thermal errors. In the event it
[144]
1. Monitoring ring 2 set close to the column base bridge, pulling on monitoring ring 2
2. Monitoring ring 2 set close to the ballscrew centre, pulling on monitoring ring 2
3. Monitoring ring 2 set close to the column base bridge, pulling on monitoring ring 1.
[145]
The results are summarised in Table 8.1. The data for Position 1 is plotted on Figure 8.7
Table 8.1 Static measurements Raw data
Position 1 Position 2 Position 3
Land 20 N 110 N 200 N 20 N 110 N 200 N 20 N 110 N 200 N
1 5.527 5.286 5.046 5.451 4.960 4.471 5.361 5.254 5.148
2 5.541 5.296 5.048 5.465 4.961 4.461 5.463 5.354 5.244
3 5.559 5.302 5.045 5.471 4.956 4.438 5.478 5.364 5.249
4 5.580 5.317 5.053 5.485 4.964 4.439 5.505 5.389 5.272
5 5.572 5.303 5.029 5.485 4.955 4.421 5.494 5.374 5.253
6 5.557 5.278 5.004 5.469 4.925 4.381 5.478 5.355 5.231
7 5.553 5.270 4.989 5.455 4.901 4.353 5.465 5.338 5.210
8 5.535 5.247 4.958 5.435 4.879 4.328 5.456 5.325 5.195
9 5.522 5.227 4.937 5.427 4.866 4.306 5.448 5.317 5.183
10 5.514 5.219 4.919 5.421 4.857 4.291 5.437 5.304 5.168
11 5.531 5.228 4.923 5.433 4.865 4.298 5.426 5.289 5.152
12 5.456 5.148 4.841 5.365 4.797 4.231 5.392 5.251 5.113
13 5.410 5.099 4.787 5.317 4.750 4.184 5.332 5.190 5.049
14 5.394 5.080 4.766 5.315 5.175 5.032
15 5.384 5.068 4.754 5.305 5.161 5.015
16 5.341 5.026 4.711 5.270 5.124 4.978
17 5.149 4.832 4.511 5.084 4.935 4.786
18 5.166 4.848 4.527 5.081 4.933 4.785
19 5.160 4.848 4.531 5.093 4.945 4.798
20 5.146 4.834 4.523 5.065 4.920 4.772
21 5.150 4.841 4.535 5.057 4.911 4.764
22 5.127 4.823 4.517 5.039 4.893 4.747
23 5.105 4.805 4.505 5.057 4.915 4.771
24 5.054 4.760 4.466 4.987 4.845 4.701
25 5.033 4.749 4.461 4.982 4.843 4.701
26 5.055 4.776 4.497 5.017 4.877 4.738
27 5.080 4.814 4.546 5.036 4.903 4.767
MR1 5.941 5.819 5.694 6.688 6.558 6.426 5.864 5.788 5.711
The results tabulated are NCDT amplifier output in volts. Scaling factor: 1 V = 100 m
The results are processed in the case of each loading position by first subtracting the data
in the columns obtained from a 110 N pull from data in the columns obtained from a 20 N
pull and then subtracting the 200 N data from the 110 N data. The result is a set of data which
gives the effect of pulling with a force of 90 N in zero gravitational field. (This is because the
effect of gravity, the self weight forces, are the same in all cases, as are the geometrical
errors.) A MATLAB function, funcs_2_dat has been written which does this.
Figures 8.7 and 8.8 show this process applied to the results for Position 1.
[146]
Raw NCDT data, set 1, - ballscrew "z" displacement - linear guide rig
6
200 N applied force
5.8 110 N applied force
20 N applied force
5.6
Transducer output, (V)
5.4
5.2
4.8
4.6
4.4
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
"x" co-ordinate - drive end bearing = 0, (m)
Movement under load, set 1, - ballscrew "z" displacement - linear guide rig
0.35
0.3
Transducer output, (V)
0.25
0.2
0.15
90 N applied force ( 20 N - 110 N)
90 N applied force (110 N - 200 N)
0.1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
"x" co-ordinate - drive end bearing = 0, (m)
Figure 8.8 Transducer output for 90 N transverse pull, static tests, Position 1
[147]
The next stage is to formulate a model which predicts the behaviour of the ballscrew. The
final stage is to extract by an optimisation process the support stiffness which gives a
predicted behaviour closest to the observed behaviour.
T
where = .
EI
For any particular geometrical configuration and loading condition equation (8.18) or
equation (8.19) can be solved to give a set {Ai} which can be used to give a predicted set of
{yi} to compare with the measured data. A set of MATLAB functions have been written
which give a predicted y for any x for the constants A given by equations (8.18) or (8.19).
(In the case of compressive or negative pre-tension, the deflected shape can be expected to
take the form:
g
y = B4 ( s 1) +1 + B4 ( s 1) + 2 x x 2 + B4 ( s 1) +3 cos x + B4 ( s 1) + 4 sin x, for s = 1L 4
2T
(8.20),
where Bi are constants determined by the boundary conditions. However, a method of
B
calculating these constants was not derived because ballscrews normally have positive pre-
tension.)
[148]
The best estimate of the bearing stiffness has been extracted from the measured data by a
least squares method. Because the equations giving rise to {Ai} are dependent on the stiffness
in a non-linear way, a routine based on the Levenburg-Marquardt method was prepared [120].
This seeks to minimise an error measure 2 by a method which seeks to vary smoothly
between the inverse-Hessian approach and the steepest descent method. It achieves this by
use of a special non-dimensional factor . When this factor is small the method leans towards
being an inverse-Hessian approach using a matrix of partial derivatives. When gets bigger
the method leans towards a steepest descent. The method is recommended because it is
unlikely to fail due to a zero pivot in the Hessian matrix, although it can wander round in
shallow valleys (in a multi-dimensional sense). The method has been coded in MATLAB
functions Mrq_min and Mrq_cof. The model was incorporated in function
funcs_2 and since some problems were experienced with singular matrices when using
the MATLAB standard coding for processing matrices, a function GaussJ was prepared
which uses Gauss-Jordan elimination [121]. Since it did not prove possible to come up with a
reliable method of terminating the search for the minimum automatically, some manual
intervention was necessary to arrive at a reasonable answer.
The fitted curves are shown in Figures 8.9, 8.10 and 8.11.
-20
-25
-30
-35
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Ballscrew "x" axis, (m)
[149]
Ballscrew static test, data set 2, Nit=25
-10
-15
O 90 N applied force ( 20 N 110 N)
- 90 N applied force (100 N 200 N)
-20
-25
"z" deflection, (micron)
-30
-35
-40
-45
-50
-55
-60
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Ballscrew "x" axis, (m)
-9
"z" deflection, (micron)
-10
-11
-12
-13
-14
-15
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Ballscrew "x" axis, (m)
[150]
It had been hoped at the outset that this method would yield the effective diameter of the
ballscrew, the transverse and tilt stiffness for each bearing, and the pre-tension from the best
fit data. In the event the three sets of data did not give a consistent set of results for all six of
these parameters. It was therefore decided to estimate the effective diameter of the shaft
starting from the value of 37.96 mm given by equation 8.9. The portions of the ballscrew
where its support bearings are located are 30 mm in diameter which suggests a smaller
effective diameter would be appropriate. These portions are however, quite short and have
bearing inner races or portions of coupling attached to parts of them. A weightier
consideration is that the stiffness of a shaft is determined by the second moment of area which
is a function of the fourth power of the diameter. Equation 8.9 is based on volume which is
dependent on the square of the diameter, it was therefore thought that the ball groove would
bring the effective diameter down to lower than 37.96 mm. A value of 37.5 mm was chosen
in the absence of a detailed analysis based on the fourth power. The pre-tension was believed
to be low at the time of these tests, and so it was assumed that it was zero. Consideration of
the forces and deflections involved suggests that the tilt stiffness of the bearings has a greater
influence on transverse behaviour than does the transverse stiffness. Further, the tilt stiffness
of the structures supporting the bearings at both ends appear to be greater than the bearings
themselves, and since the bearings were of the same type at both ends, it was assumed that the
bearing stiffness would be the same. The results from the curve fitting method then gave the
values set out in the following table:-
Table 8.2 Static measurements - Results
Position 1 2 3 Average *
Transverse stiffness 4.25 108 4.25 108 4.25 108 4.250 108 N/m
Tilt stiffness 1.70 105 1.55 105 1.92 105 1.743 105 N m/rad
429.3877 149.4193 129.1332
* weighted by .
[151]
and was used to carry the eccentric weights used to apply radial force excitation to the
ballscrew. In the case of this second ring it was possible to fit it in a variety of positions.
Deflection of the ballscrew was measured by mounting an NCDT close to each monitoring
ring. The probe for the second NCDT was held by bracketry carried on a magnetic clamp
attached to the bed slide. The probe for the NCDT closest to the drive end bearing was held
on a mounting plate which was bonded to the bed.
where ym are the elements of a set of Nm members which make up the ith set of readings, each
element being the radial deflection as measured at the axial position xj on the ballscrew. y are
the elements of the corresponding set of deflections of the ballscrew centre and are the
elements of the set of radial errors. The terms geom, matl and load indicate that these
deflections are dependent on the shape and size of the screw, the material of which it is made
and the pattern of loads to which it is subject. Given that the dynamic loads are applied by an
eccentric weight, it was anticipated that load will depend on the square of the speed of the
screw. If the speed of the ballscrew is low, load will be close to zero. This should give a
means of subtracting out the effects of the errors.
[152]
chosen to give a slow roll the results of which might be used to subtract out the effects of
the run-out of the monitoring ring and other errors.
In order to make comparison of the different data sets as easy as possible, it was decided to
arrange the data to be read as close as possible to the same angular positions for each run. To
this end, the speeds chosen were in part determined by considerations of which sampling
times could be set most conveniently in the configuration file of the Data Logger.
[153]
Position 1
160
140
120
Displacement, (microns)
100 Ring 1
Ring 2
80
Ring 1 p
60 Ring 2 p
40
20
0
0.0 200.0 400.0 600.0 800.0 1000.0
Speed^2, (m^2/min^2)
Position 2
160
140
120
Displacement, (microns)
100 Ring 1
Ring 2
80
Ring 1 p
60 Ring 2 p
40
20
0
0.0 200.0 400.0 600.0 800.0 1000.0 1200.0
Speed^2, (m^2/min^2)
[154]
Position 3
160
140
120
Displacement, (microns)
100 Ring 1
Ring 2
80
Ring 1 p
60 Ring 2 p
40
20
0
0.0 200.0 400.0 600.0 800.0 1000.0 1200.0
Speed^2, (m^2/min^2)
[155]
Table 8.4 Fixed nut dynamic tests correlation of measured and predicted results
Position 1 2 3 Overall
Ring 1, rms deviation 4.5 5.5 4.6 4.9 m
Ring 2, rms deviation 7.1 5.4 6.8 6.4 m
As shown in Table 8.4, overall the model predicted vibration levels which agreed with
experiment to within about 5 to 6.5 m. Given that the ballscrew was modelled as a single
section shaft and the bearings as simple springs, this shows that the modelling method is
basically sound.
In this case the term geom should be understood to include effects caused by the different
axial positions occupied by the nut as the screw turns. Again, given that the dynamic loads
are applied by an eccentric weight, it is anticipated that load will depend on the square of the
speed of the screw. If the speed of the ballscrew is low, load will be close to zero.
[156]
speed as a maximum four other speeds were determined so as to give 40%, 60%, 80% and
90% of the dynamic force applied at the maximum speed. A final speed was chosen to give a
slow roll the results of which might possibly be used to subtract out the effects of the run-
out of the monitoring ring and other errors.
In order to make comparison of the different data sets as easy as possible as the speeds
were reduced the data sampling period was increased.
Three loading positions were used. These were such that Dimension X (see Figure 8.12)
was 57.2 mm, 230 mm and 400 mm respectively.
[157]
Position 1
120
Displacement, (microns)
100
80 C1
C2
60
R1
40 R2
20
0
0.6 0.7 0.8 0.9 1 1.1
Axial position, (m )
Position 2
120
Displacement, (microns)
100
80 C1
C2
60
R1
40 R2
20
0
0.7 0.8 0.9 1 1.1
Axial position, (m )
[158]
Position 3
120
Displacement, (microns)
100
80 C1
C2
60
R1
40 R2
20
0
0.9 0.95 1 1.05
Axial position, (m )
In the keys to Figures 8.16 to 8.18 "R1" and "R2" refer to data extracted from measured
values for monitoring rings 1 and 2 respectively, and "C1" and "C2" refer to the
corresponding values predicted by the C program.
Table 8.5 Moving nut dynamic tests correlation of measured and predicted results
Position 1 2 3 Overall
Ring 1, rms deviation 5.2 4.7 3.0 4.4 m
Ring 2, rms deviation 0.6 2.8 8.7 5.6 m
For most of the positions tested an excellent degree of agreement was obtained, (see
Table 8.5), though the results presented for Positions 1 and 2 (Figures 8.16 and 8.17) were
generally better than those for Position 3 (Figure 8.18). Again, bearing in mind the
simplifications used in setting up the ballscrew model, the results show the method to be well
founded.
[159]
Chapter 9 - ERROR REDUCTION
A ballscrew drive converts an angular position of the motor to a linear position x of the
machine part attached to the nut. The ideal position of the nut is given by the equation
Ns p
x= = R (3.1)
2
where the ratio of the nut R is defined by the pitch p and the number Ns of helices in the
ballscrew.
Errors between the ideal position and the actual position arise because of errors in
manufacture of the ballscrew, errors in installation, deflection of the drive components under
load, thermal movements and errors that arise due to the action of the drives control system.
Attempts can be made to decrease these errors by improvements in design and installation, or
by means of compensation.
[160]
Of these, typically half of the total deflection is made up of deflection of the screw itself, and the
only way of increasing the stiffness of this component is to make the screw bigger. This would
have the effect of increasing the cost, the running speed of the bearings and ball mechanism,
which would have thermal implications, and increasing system inertia, which would have energy
consumption and control implications.
About 10% of total deflection is in the bearings. This can be reduced by putting pre-tension
in the screw, but at the expense of greater energy consumption, heat generation and a greater
tendency to bearing wear.
Just under half of the total deflection was found to occur in the nut. The flexibility of this
component is dependent to a significant degree on the Hertzian contact between the circulating
balls and the nut and screw. A normal ballscrew has its races packed as full as possible with
balls, and the races are typically of gothic arc section with a conformity of about 55%. (This
means that the radius of the race profile is 1.1 that of the balls.) This suggests that provided the
nut contains as many ball races as can be reasonably fitted in the space available, there is little
scope for increasing the stiffness beyond increasing the length of the nut or the pre-load.
Increasing the pre-load also increases energy consumption, heat generation and the tendency to
wear.
[161]
nitride and 390 450 GPa for silicon carbide [127]. Machineable ceramics, however, have
elastic moduli of only 19 66.9 GPa.
Iridium is one of the platinum group metals and is the most corrosion resistant metal known.
It is, however, very hard and brittle, making it very hard to machine, form, or work [128]. This
makes it an undesirable choice of material for a ballscrew. Ceramics are a possibility, bearings
with ceramic balls have already been developed and are used in certain applications. The
contribution of material compliance to Hertzian flexibility is represented by the factor CE, (see
3.5.1, equation 3.16).
1 12 1 22 1 0.292
For steel on steel, CE = + = 2 = 8.89 1012 m/N (9.1)
E1 E2 206 109
This represents a 48% increase in the ball action stiffness when compared with steel balls.
If the nut were to be made of Macor, a machineable ceramic, and the balls of tungsten
carbide, for ball nut contact
1 12 1 22 1 0.262 1 0.292
CE = + = + = 15.24 1012 m/N. (9.3)
E1 E2 600 10 66.9 10
9 9
The screw ball contact would still have a CE of 6.00 10-12 m/N, this would give an average
CE value for the screw nut engagement of 10.62 10-12 m/N which is a 16% reduction in
stiffness compared to an all steel ballscrew.
[162]
For example, in simple static terms, the torsional deflection at the centre of the nut bs is given
by:-
bs = fl sysTm net
1 1 1 (9.4)
=( + + )
k ms k dr k bs
where
y flsys = the total system flexibility referred to the motor shaft between the motor and the
ballscrew nut,
y Tm net = the motor output torque, and
y kms, kdr and kbs = the stiffness of the motor shaft, drive coupling and ballscrew.
The motor output torque can be approximated by:-
J tot J m
Tm net = Tm (9.5)
J tot
where
y Jtot = the total referred inertia of the ballscrew drive system,
y Jm = the motor inertia, and
y Tm = the torque applied to the motor rotor by its electrical fields.
The torsional stiffness of the ballscrew is given approximately by
G (d o4 d i4 )
k bs = (9.6)
32 x
where
y G = the shear modulus of the ballscrew material,
y do and di = the outer and inner diameters of the ballscrew, and
y x = the position of the nut.
Similarly, the axial deflection at the centre of the nut xbs is given by:-
xbs = flbs Fnut
Fnut
= (9.7)
1 1
+
1 + x (lbs x)
k ax B1 EAbs
1 +
k ax B 2 EAbs
where
y flbs = the axial flexibility of the ballscrew,
y Fnut = the axial force delivered by the ballscrew to the nut,
y kax B1 and kax B2 = axial stiffness of the ballscrew support bearings,
[163]
y lbs = length of ballscrew between its supporting bearings,
y E = the modulus of elasticity of the nut material,
Abs = (d o2 d i2 ) (9.8),
4
and force on the ballscrew nut can be approximated by:-
Tm
Fnut = mload R (9.9)
J tot
where
y mload = the mass of the nut and saddle and/or table, and
y R = the ballscrew ratio.
The total deflection to be compensated for xcomp is then given by
xcomp = R bs + xbs (9.10).
By a similar approach, if the tilt stiffness of the slideway which carries the load being driven
by the ballscrew is known, a term which compensates for tilting of the load can be included.
The program described in Chapters 5 and 6 of this Thesis has been modified to include such
compensation.
-4
x 10 Nut position error
3
2.5
2
Position error, (m)
1.5
0.5
-0.5
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Time, (sec)
[164]
Figure 9.1 shows the nut position error predicted by the model during the acceleration phase
of a trapezoidal velocity demand cycle. If the various easily predictable mechanical deflections
are compensated for, the position error can be reduced to the values shown in Figure 9.2.
-4
x 10 Nut position error
3
2.5
2
Position error, (m)
1.5
0.5
-0.5
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Time, (sec)
[165]
A compensation strategy which can compensate for such errors needs therefore to take
account of the detailed characteristics of the controller. An attempt to compensate for effects
other than mechanical deformation using the techniques derived in this Thesis gives the result
shown in Figure 9.3.
-4
x 10 Nut position error
3
2.5
2
Position error, (m)
1.5
0.5
-0.5
-1
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Time, (sec)
Figure 9.3 Nut position error with compensation for flexibility and controller effects
As can be seen, although some improvement in "steady" state errors has been achieved, transient
responses at start-up and at the end of the acceleration phase remain largely unchanged.
[166]
transient errors cannot be compensated for but can be reduced by incorporating a
suitable level of damping in the mechanical system, and by adopting "smooth" methods
of control, e.g. "sin" demand characteristics, wherever possible.
[167]
Chapter 10 - CONCLUSIONS
During the course of the programme of research covered by this Thesis the geometric,
thermal and load errors commonly encountered on CNC machine tools have been studied.
Several mathematical models have been developed or extended which enable a deeper
understanding of the interaction between these errors, various details of ballscrew design and
the dynamic behaviour of ballscrew driven systems. Further, a strategy for compensation of
some of these errors has been devised.
Results
The results of the research are detailed as follows:-
The static elastic theory relevant to ballscrew machine tool drives has been brought
together to form a group of formulae useful for estimating the static stiffness
characteristics of such systems.
The relevant dynamic elastic theory and the theory of thermal modelling have been
applied to develop a detailed understanding of the behaviour of a ballscrew driven
system. A set of working models have been assembled which cover the dynamic and
thermal aspects of ballscrew behaviour.
The continuous matter approach to the dynamics of a ballscrew using wave solutions
was developed. Although this succeeded in giving satisfactory results for the case of
axial and torsional behaviour, it did not prove to be a useful method for dealing with
transverse vibratory behaviour.
Several models based on the discrete matter or lumped mass approach were devised.
Using matrix solutions, three useful models were developed as follows.
The first of these models extends the classical eigenvalue method for finding the
natural frequencies and other dynamic characteristics of ballscrew systems to include
viscous damping effects by using a generalised eigenvalue approach. This not only
gives estimates of the natural frequencies, but also the damping coefficient of each
predicted vibration mode. This feature enables many of the natural frequencies
predicted by standard undamped natural frequency analyses to be dismissed as being
of little consequence to the vibratory behaviour of the system and is a useful
contribution to knowledge in this field.
A development of this modelling method gives the sensitivity of the system to changes
in stiffness and damping characteristics. When a mode of vibration is considered to be
potentially detrimental to a systems performance, the design parameters which have
[168]
greatest influence on the mode can be identified. Changes in these parameters can be
tested quickly by the model and improved dynamic characteristics found before going
on to the stage of detailed design changes. This is a tool useful both at the preliminary
design stage of a ballscrew system, and for helping to decide the most convenient
remedy to vibration problems which may occur in service.
With some modification, the approach can be applied to many electro-mechanical
systems. Specifically, the controller parameters can be included in the model giving a
means of investigating how changes in such parameters can be used to modify the
drive system's behaviour.
By using a suitable means of deriving a set of viscous damping coefficients which are
equivalent, in defined circumstances, to non-linear damping effects, it is possible to
extend this method to include non-linear behaviour.
The second set of lumped-mass models is specially developed to take account of the
changes in the configuration of the system with time as the nut moves along the screw.
These deal only with the axial and torsional degrees of freedom of the system, which
have the most direct impact on the response of a ballscrew driven system. A special
difficulty arises when the position of the nut does not coincide with a node in the
model. Using a simple approach to connecting the nut with the screw gave rise to a
response that was dependent on the structure of the model. This problem has been
successfully addressed by using a massless node as the connection point.
Implementation of this approach entailed the development of an algorithm based on
sophisticated matrix algebra, which has succeeded in advancing knowledge by giving
a seamless dynamic response.
These models can predict the position error of the ballscrew nut.
The third set of models includes the transverse degrees of freedom as well as the axial
and torsional ones. These give a means of predicting the vibration amplitudes which
might be expected as a system runs through a natural frequency, either because the
system parameters change as the nut moves along the screw or because the speed of
the screw is changing.
The second and third sets of models include the non-linear phenomena of backlash
and Coulomb friction as well as time dependent stiffness and damping characteristics.
Both of these models are capable of being extended to include other non-linear
phenomena, such as stiffness which is dependent on the state of strain (e.g. Hertzian
[169]
contact stiffness characteristics) and drag terms which are dependent on the square of
the speed.
The three groups of lumped mass models all include features which calculate the
energy converted to heat by all the energy dissipative mechanisms in the model. The
Engineering Control and Machine Performance Group at the University of
Huddersfield have already produced a model which predicts the thermal behaviour of
a ballscrew system. This model has been validated experimentally. The heat output
from a dynamic model has been shown to correlate well with the heat levels used in
this proven thermal model. Therefore dynamic models and a suitably adapted thermal
model, used together, could be used to predict the thermal behaviour of a ballscrew
system.
Various methods by which cooling parts of the ballscrew system can be used to reduce
thermal errors have been investigated. The use of a flow of chilled water based
coolant is the one most likely to best in the majority of cases.
A novel experimental approach has been devised which uses beam theory as a basis
for measuring support stiffness characteristics which are not possible to measure
directly unless the bearing system has been designed with this in mind. The method
allows measurements to be taken on accessible parts of the system and represents a
contribution to knowledge.
Comparison of the model predictions with well-established modelling methods and
with data obtained from a machine tool and from a special test rig show that the
modelling approaches are valid.
The effect of modifying the design of precision ballscrews has been investigated. The
existing designs incorporate many features which minimise errors. This programme
of research suggests that the basic design is sound, and that efforts to reduce
substantially the remaining errors arising from design or manufacture should be
concentrated on understanding better the details of their behaviour in the applications
in which they are used.
An algorithm which will correct for the errors due to the expected elastic deformations
of the ballscrew system has been devised.
The position error can be reduced further by correcting for the lags induced by the
controller
[170]
Further work
The following fields of investigation are suggested by the results of the work covered by
this Thesis:-
The methods devised in this investigation enable the effects of damping to be
assessed at the early stages of the design of a machine tool drive. It is
recommended that the generalised eigenvalue approach be extended to include the
electrical aspects of the system and the controller. This will enable hybrid model
parameters to be optimised, and will enhance the understanding of the influence of
controller characteristics on the vibratory behaviour of ballscrew-driven systems.
The dynamic models enable not only the behaviour of the ballscrew nut to be
predicted, but also that of the motor, of all parts of the screw, including ballscrew
wind-up and transient torsion and tension deformation, and the three-dimensional
behaviour of the machine tool component driven by the nut. It is recommended
that this approach be incorporated into further research into improving overall
control of a ballscrew system. Specifically, this modelling approach enables the
output from a rotary encoder on the motor, and that from a rotary encoder on the
non-drive end of the screw, and that from a linear encoder mounted close to a
slideway all to be predicted. The method can therefore be used as a basis of
investigating a multi-variable control strategy whose aim would be to reduce
transient errors in machine tool drives.
The temperature dependency of dissipative mechanisms should be investigated
further with a view to developing an interacting pair of models which predict
thermal behaviour of a system together with mechanical behaviour (sampled) over
long time scales.
The techniques developed here can be extended to devise a control system that
reduces thermal errors by regulating the supply of chilled coolant to the ballscrew
centre, the nut, and possibly the ballscrew support bearing housings.
The methods of dynamic analysis used in this research are not limited to ballscrew
driven systems. They can, for example, be used to investigate the dynamics of gear
tooth excitation where the conditions of engagement change continuously as the
teeth move through the mesh.
[171]
REFERENCES
1 MTTA, British Machine Tool Industry Basic Facts 2002, Tables 2 and 3
2 Aomori H., Metal cutting machine tools, Japan, Industry Sector Analysis, U. S.
Department of Commerce - National Trade Data Bank, November 3, 2000.
3 Lee J., Overview and Perspectives on Japanese Manufacturing Strategies and
Production Practices in Machinery Industry, International Journal of Machine
Tools and Manufacture, Vol. 37 No.10, 1997, pp.1449-1463
4 Fletcher S., Computer aided System for Intelligent Implementation of Machine
Tool Error Reduction Methodologies, PhD thesis, University of Huddersfield,
2001.
5 Bryan J., (Lawrence Livermore Nat. Lab.), International status of thermal error
research. Annals of the CIRP, Vol. 39, N2, P645-656, 1990.
6 Donmez A., A general methodology for machine tool accuracy enhancement -
theory, application and implementation, PhD thesis, Purdue University, 1985.
7 Blake M. D., Investigation into load effects on machine tool accuracy, MPhil
thesis, University of Huddersfield, 1995.
8 Blake M. D., Ford D. G., Postlethwaite S. R., Morton D., Analysis of Machine
Tool Non-Rigid Error Components, Laser Metrology and Machine Performance
II, P297-308, 1995.
9 Ford D. G., Blake M. D, Postlethwaite S. R., The identification of non-rigid
errors in a vertical machining centre, Proceedings of the Institution of
Mechanical Engineers, part B, Vol. 213, pp 555-566, 1999.
10 Ford D. G., Postlethwaite S. R., White A., Pislaru C, Time and Spatial Error
Correction in CNC Machine Tools, keynote lecture: IEE (Yorkshire Region)
Control and Manufacturing Sections, 8 December 1998
11 Mou J., A Systematic Approach to Enhance machine Tool Accuracy for
Precision Manufacturing, International Journal of Machine Tools Manufacturing.
Vol. 37, No. 5, pp. 669-685, 1997
12 Slocum A. H., Precision Machine Design, Prentice Hall, Englewood Cliffs, NJ,
1992, (ISBN 0 87263 492 2)
[172]
13 Pislaru C, Ford D. G., Freeman J. M., Identification of Modal Parameters
Affecting the Dynamic Performance of a CNC Machine Tool, pp. 161-170,
LAMDAMAP 2003, Ed. Prof D. G. Ford, WIT Press, (ISBN 1 85312 990 9)
14 Pislaru C., Ford D. G., Holroyd G., Modelling Non-linearities from CNC
Machine Tool Drives, Proc. of the 8th Internat. Conf. on Optimization of
Electrical and Electronic Equipments OPTIM 2002, Brasov, Romania pp. 553
558 (ISBN 973-635-004-5)
15 Pislaru C., Parameter Identification and Hybrid Mathematical Modelling
Techniques Applied to Non-Linear Control Systems, Ph.D. Thesis, 2001,
University of Huddersfield
16 Holroyd G., Pislaru C., Ford D. G., Determination of stiffness and damping
sensitivity for computer numerically controlled machine tool drives, Proc. Instn.
Mech. Engrs Vol 217, Part C: J. Mechanical Engineering Science, pp 1165-1177,
2003
17 Diodorus Siculus, Bibliotheke, Book V, 37.3-4, c. first century BC
18 Oldfather C. H. (translator), in Diodorus Siculus, Library of History, Volume
III, Loeb Classical Library, Harvard University Press, Cambridge, 1939, (ISBN 0-
674-99375-6)
19 Mulcahy David E., Materials Handling Handbook, McGraw-Hill, Ch 3,
Pages 3.200-3.205, 1998, (ISBN 0 070 44014 X)
20 Woodbury Robert S., Studies in the history of machine tools. History of the
lathe to 1950, The M.I.T. Press, Ch II, Page 47, 1972, (ISBN 0 262 73033 2)
21 Lipkin H.; Duffy J., Sir Robert Stawell Ball and methodologies of modern screw
theory, Proceedings of the I MECH E, Part C, Journal of Mechanical
Engineering Science, 1 January 2002, vol. 216, no. 1, pp. 1-11(11)
22 Ball Sir Robert Stawell, A Treatise on the Theory of Screws, Cambridge
University Press, 1900, (paperback edition 1998, ISBN 0-521-636550-7)
23 Pfister F., Spatial point contact kinematics and parallel transport, Proceedings
of the I MECH E Part C Journal of Mechanical Engineering Science, 1 January
2002, vol. 216, no. 1, pp. 33-45(13)
[173]
24 Neumann C., ber die rollende Bewegung eines Krpers auf ciner gegebenen
Horizontal-Ebene unter dem Einfluss der Schwere, berichtee ber die
Verhandlungen der kniglich schsischen Gesellschaft der Wissenschaften zu
Leipzig, Mathematisch-Physische Classe, 37, 352378, 1885
25 Richter M., ber die Bewegung eines Krpers auf einer Horizontal-Ebene,
Inaug. Dissertation, University of Leipzig, Leipzig, 1887 (Metzger und Wittig)
26 LM system ball screws, catalog. no.200-2BE, THK Co. Ltd., chapter 4, 1999,
( THK Ltd, 04 990425)
27 Ford D. G., Postlethwaite S. R., Allen J. P., Blake M. D., Compensation
algorithms for the correction of time and spatial errors in a vertical machining
centre, Proc. Inst. Mech. Engrs., Vol 214, Part B, pp221-234, 2000
28 Postlethwaite S. R., Ford D. G., Morton D., Geometric errors from dynamics
data a novel calibration technique, Proc. 2nd Int. Conf. on Laser Metrology and
Machine Performance LAMDAMAP 95, Southampton Institute, 1995, pp 139-
148, (ISBN 1 85312 355 2)
29 Postlethwaite S. R., Ford D. G., Geometric error analysis software for
CNC machine tools, Proc. 3rd Int. Conf. on Laser Metrology and Machine
Performance LAMDAMAP 97, University of Huddersfield, 1997, pp305-316,
(ISBN 1 85312 536 9)
30 Freeman J. M., Ford D. G., The analysis of geometrical and thermal errors in
non-Cartesian machine structures, Proc. 3rd Int. Conf. on Laser Metrology and
Machine Performance LAMDAMAP 97, University of Huddersfield, 1997,
pp371-379, (ISBN 1 85312 536 9)
31 Ford D. G., Postlethwaite S. R., Accuracy improvement for three axis
CNC machining by geometric, load and thermal error compensation, Proc. 4th
Int. Conf. on Laser Metrology and Machine Performance LAMDAMAP 99,
Longhirst Hall, Northumberland, 1999, pp113-124, (ISBN 1 85312 661 6)
32 White A., J., Postlethwaite S. R., Ford D. G., An investigation into the relative
accuracy of ballscrews and linear encoders over a broad range of application
configurations and usage conditions, Proc. 4th Int. Conf. on Laser Metrology and
[174]
Machine Performance LAMDAMAP 99, Longhirst Hall, Northumberland,
1999, pp345-355, (ISBN 1 85312 661 6)
33 Frank A., Ruech F., Thermal behaviour of position measurement systems: linear
transducer rotary encoder, Proc. EUSPEN Conf., Bremen, Germany, 31st May
4th June 1999, pp124-127
34 Chen J. S., A study of thermally induced machine tool errors in real cutting
conditions. International Journal of Machine Tools and Manufacture,
Vol. 36/12, pp. 1401-1411, 1996.
35 Wang Y., Zhang G., Moon K. S., Sutherland J. W., Compensation for the
thermal error of a multi-axis machining center, Journal of Materials Processing
Technology, Vol. 75, pp. 45-53, 1998
36 Fraser S., Attia M. H., Osman M. O. M., Modelling, identification and control of
thermal deformation of machine tool structures, part 1: concept of generalized
modelling, Transactions of the ASME, Journal of Manufacturing Science and
Engineering, Vol. 120, pp. 623-631, August 1998
37 Jan H.-K., Chu C. N., Liu C. R., A configuration independent error model of
machine tools: hyperpatch model and metrology pallet, Robotics and Computer-
Integrated Manufacturing, Vol. 9/3, pp. 201-210, 1992
38 White A. J., Postlethwaite S. R., Ford D. G., A general purpose thermal error
compensation system for CNC machine tools, LAMDAMAP 2001, University of
Huddersfield, UK, pp. 3-13, (Lam2001_2.doc), (ISBN 1 85312 890 2)
39 White A. J., Postlethwaite S. R., Ford D. G., Measuring and modelling thermal
distortion on CNC machine tools, LAMDAMAP 2001, University of
Huddersfield, UK, pp 69-79, (Lam2001_1.doc), (ISBN 1 85312 890 2)
40 Freeman J. M., White A. and Ford D. G, Ball-screw thermal errors a finite
element simulation for on-line estimation, LAMDAMAP 2001, Precision
Engineering Research Group, The School of Engineering, University of
Huddersfield, England, pp 269-278, (Lamd 2001 MF.doc), (ISBN 1 85312 890 2)
41 Postlethwaite S. R., Allen J. P., Ford D. G., The use of thermal imaging,
temperature and distortion models for machine tool thermal error reduction,
[175]
Proc. Instn Mech. Engrs Vol 212 Part B: J. of Engineering Manufacture, pp 671-
679, 1998
42 Postlethwaite S. R., Allen J., Ford D. G., Practical application of thermal error
correction 4 case studies, Proc. 3rd Int. Conf. on Laser Metrology and Machine
Performance LAMDAMAP 97, University of Huddersfield, 1997, pp359-369,
(ISBN 1 85312 536 9)
43 Postlethwaite S. R., Allen J. P., Ford D. G., Machine tool thermal error reduction
an appraisal, Proc. Instn Mech. Engrs Vol 213 Part B: J. of Engineering
Manufacture, pp 1-10, 1999
44 White A., J., Postlethwaite S. R., Ford D. G., An identification and study of
mechanisms causing thermal errors in CNC machine tools, Proc. 4th Int. Conf.
on Laser Metrology and Machine Performance LAMDAMAP 99, Longhirst
Hall, Northumberland, 1999, pp101-112, (ISBN 1 85312 661 6)
45 Pahk H. J., Lee S. W., Development of a thermal error measurement real time
correction system for the thermal error in CNC machine tools, Proc. EUSPEN
Conf., Bremen, Germany, 31st May 4th June 1999, pp92-95
46 Postlethwaite S. R., Ford D. G., A practical system for 5 axis volumetric
compensation, Proc. 4th Int. Conf. on Laser Metrology and Machine
Performance LAMDAMAP 99, Longhirst Hall, Northumberland, 1999,
pp 379-388, (ISBN 1 85312 661 6)
47 Postlethwaite S. R., Ford D. G., Morton D., Dynamic calibration of
CNC machine tools, Int. Journal of Machine Tools and Manufacture, vol 37,
No 3, pp 287-294, 1997
48 Ford D. G., Postlethwaite S. R., Pislaru C., High accuracy feedback transducer
incorporating a real time error compensation system, Proc. EUSPEN Conf.,
Bremen, Germany, 31st May 4th June 1999, pp100-103
49 Weck M., Hilbing R., Characterisation and compensation of machine vibrations
with non-linear methods, Proc. EUSPEN Conf., Bremen, Germany, 31st May
4th June 1999, pp167-170
[176]
50 Pislaru C., Ford D. G., Freeman J. M., A new 3D model for evaluating the
performance of CNC machine tool axis drives, Proc. EUSPEN Conf., Bremen,
Germany, 31st May 4th June 1999, pp72-75
51 Pislaru C., Ford D. G., Freeman J. M., A new approach to the modelling and
simulation for a CNC machine tool axis drive, Proc. 4th Int. Conf. on Laser
Metrology and Machine Performance LAMDAMAP 99, Longhirst Hall,
Northumberland, 1999, pp335-343, (ISBN 1 85312 661 6)
52 Erkorkmaz K. and Altintas Y., High speed CNC system design. Part II:
modelling and identification of feed drives, International Journal of Machine
Tools and Manufacture, Vol 41 (10), August 2001, pp 1487-1509
53 Ro P. I., Shim W., Jeong S., Robust friction compensation for submicrometer
positioning and tracking for a ball-screw-driven slide system, Precision
Engineering, April 2000, vol. 24, no. 2, pp. 160-173(14)
54 Dequidt A., Castelain J.-M., Valdes E., Mechanical pre-design of high
performance motion servomechanisms, Mechanism and Machine Theory, 1
August 2000, vol. 35, no. 8, pp. 1047-1063(17)
55 Braasch J., Position measurement on machine tools: by linear encoder or
ballscrew and rotary encoder?, Modern Machine Shop,
http://www.mmsonline.com/articles/1198sup.htr, accessed 04/10/04
56 Huang S. C., Analysis of a model to forecast thermal deformation of ball screw
feed drive systems, Int. J. Mach. Tools Manufact., vol. 35, no. 8, 1995, pp. 1099-
1104
57 Yun W. S., Kim S. K., Cho D. W., Thermal error analysis for a CNC lathe feed
drive system, Int. J. of Mach. Tools Manufact., vol. 39, 1999, pp. 1087-1101
58 Kim S. K., Cho D. W., Real-time estimation of temperature distribution in a ball-
screw system, Int. J. Mach. Tools Manufact., vol. 37 no. 4, 1997, pp. 451-464
59 Lin M. C., Velinsky S. A., Ravani B., Design of the ball screw mechanism for
optimal efficiency, Trans. ASME, vol. 116, Sept. 1994, pp. 856-861
60 Markhauser A. W., Preloading ball screws, Machine Design, March 16, 1967,
pp. 207-211
[177]
61 Schmitt T., Modell der Wrmebertragungs-vorgnge in der mechanischen
Struktur von CNC-gesteuerten Vorschubsystemen, {A model of the heat
transmission processes in the mechanical structures of CNC-controlled form feed
systems}, Darmstdter Forschungs-berichte fr Konstruktion und Fertigung
{Darmstdt Research Reports for Design and Manufacture}, Ph. D. thesis, 1995,
(ISBN 3-8265-1476-9).
62 De Silva C. W., Vibration fundamentals and practice, CRC Press, ch 7,
pp 349 398, 1999, (ISBN 0-8493-1808-4)
63 Pestel C. P., Leckie F. A., Matrix methods in elastomechanics, McGraw-Hill,
1963, (Library of Congress Catalog Card Number 62-19249)
64 Holroyd G., Identification of damping elements in a CNC machine tool drive,
MSc project dissertation, University of Huddersfield School of Engineering,
September 2000
65 Holroyd G., Pislaru C. and Ford D. G., Identification of damping elements in a
CNC machine tool drive. In Proceedings of 5th International Conference on
Laser Technology, Machine Tool, CMM and Robot Performance LAMDAMAP
2001 (Ed. WIT Press), Birmingham, UK, July 2001, pp. 289-299, (ISBN 1 85312
890 2)
66 Adhikari S., Calculation of derivative of complex modes using classical normal
modes, Computers & Structures, vol 77 (6), 15 August 2000, pp 625-63
67 Nelson R. B., Simplified calculation of eigenvector derivatives. AIAA J 14 9
(1976), pp 12011205
68 Adelman H. M., and Haftka R. T., Sensitivity analysis of discrete structural
system. AIAA J 24 5 (1986), pp 823832
69 Murthy D. V. and Haftka R. T., Derivatives of eigenvalues and eigenvectors of a
general complex matrix. Int J Numer Meth Engng 26 (1988), pp 293311
70 Zeng Q. H., Highly accurate modal method for calculating eigenvector
derivatives in viscous damping systems. AIAA J 33 4 (1995), pp 746751
71 Cronin D. L., Eigenvalue and eigenvector determination for non-classically
damped dynamic systems. Comp Struct 36 1 (1990), pp 133138
[178]
72 Fresen J. L., Juritz J. M., A note on Fosss method of obtaining initial estimates
for exponential curve fitting by numerical integration, Biometrics, vol 42, no 4,
pp 821-827, December 1986
73 Woodhouse J., Linear damping models for structural vibration. J Sound
Vibration 215 3 (1998), pp 547569
74 ISO Standard 3048, Part 4, Ball screws Part 4: Static axial rigidity,
International Standards Organisation document, ISO TC 39/WG7 N 1408,
29/07/2003
75 LM system ball screws, catalog. no.200-2BE, THK Co. Ltd., section 6.1, 1999,
( THK Ltd, 04 990425).
76 SKF, General catalogue 4000/IV E, SKF Group, pp 14-25, 1994, (Reg. 47
24000 1994-12).
77 LM system ball screws, catalog. no.200-2BE, THK Co. Ltd., sections 5.2-5.4,
1999, ( THK Ltd, 04 990425).
78 Warren C. Young, Roarks formulas for stress and strain, 6th edition, McGraw-
Hill, 1989, Ch 13, Table 33, Item 4, P 652, (ISBN 0-07-072541-1).
79 Hertz, H., "ber die Berhrung fester elastischer Krper", Journal fr die reine
und angewandte Mathematik, Vol. 92, pp. 156-171, 1882.
80 Warren C. Young, Roarks formulas for stress and strain, 6th edition, McGraw-
Hill, 1989, Ch 12, Table 32, pp 638-640, (ISBN 0-07-072541-1).
81 Brndlein J., Eschmann P., Hasbergen L., Weigand K., Ball and roller bearings
Theory, design and application, John Wiley & Sons, 1999, Ch 4, Pp 214-224,
(ISBN 0 471 98452 3).
82 Brndlein J., Eschmann P., Hasbergen L., Weigand K., Ball and roller bearings
Theory, design and application, John Wiley & Sons, 1999, Ch 4, Table 4.1,
P 218, (ISBN 0 471 98452 3).
83 Brndlein J., Eschmann P., Hasbergen L., Weigand K., Ball and roller bearings
Theory, design and application, John Wiley & Sons, 1999, Ch 3, Table 3.2,
P 151, (ISBN 0 471 98452 3).
84 Hooke R, "A description of Helioscopes and some other Instruments", (in
anagram form), 1676; De Potentia Bestitutiva (the key), 1678
[179]
85 Newton I., Philosophiae Naturalis Principia Mathematica, pp 12-13, 1687
86 De Silva C. W., Vibration fundamentals and practice, CRC Press, ch 6, pp 299 -
302, 1999, (ISBN 0-8493-1808-4)
[180]
97 Gourlay A. R. and Watson G. A., Computational methods for matrix
eigenproblems (Ed. John Wiley, Chichester), 1973, (ISBN 0 471 31915 5)
98 Wilkinson M. A., The algebraic eigenvalue problem (Ed. Clarendon), 1965,
(ISBN 0 198 53403 5)
99 Harris C. M., Shock and vibration handbook, 3rd edition (Ed. McGraw-Hill, New
York), ch 2, pp 2-6 2-25, 1988, (ISBN 0-07-026801-0).
100 Young W. C., Roarks formulas for stress and strain, 6th edition, McGraw-Hill,
1989, ch 7, pp 93-112, (ISBN 0-07-072541-1)
101 Press W. H., Teukolsky S. A., Vetterling W. T. and Flannery B. P., Numerical
recipes in C The art of scientific computing (Ed. Cambridge University Press),
Ch 11, pp 43-48, 1992, (ISBN 0 521 43108 5).
102 The electromagnetic spectrum,
http://csep10.phys.utk.edu/astr162/lect/light/spectrum.html
103 In 1879 Joef Stefan (1835-1893) determined that the amount of radiation given
off by a body through heating is proportional to the fourth power of its
temperature. In 1884 Ludwig Boltzmann (1844-1906) succeeded in theoretically
deriving the radiation law found by Stephan. See http://www-history.mcs.st-
and.ac.uk/history/Mathematicians/Stefan_Josef.html, and http://www-
history.mcs.st-and.ac.uk/history/Mathematicians/Boltzmann.html
104 ziik M. Necati , Heat transfer A basic approach, 1st edition, McGraw_Hill,
Appendix A, pp 733-735, 1985
105 ziik M. Necati , Heat transfer A basic approach, 1st edition, McGraw_Hill,
ch 1, pp 9-13, 1985
106 ziik M. Necati , Heat transfer A basic approach, 1st edition, McGraw_Hill,
Appendix C, pp 756-761, 1985
107 ziik M. Necati , Heat transfer A basic approach, 1st edition, McGraw_Hill,
ch 6, pp 226-269, 1985
108 Fletcher S., Ford D. G., Measuring and modelling heat transfer and thermal
errors on a ballscrew feed drive system. In Proceedings of 6th International
Conference on Laser Technology, Machine Tool, CMM and Robot Performance
[181]
LAMDAMAP 2003 (Ed. WIT Press), Huddersfield, UK, July 2003, pp. 349-359,
(ISBN 1-85312-990-9)
109 Reduction of errors in the design and integration of CNC machine tools,
EPSRC Grant: GR/L05624/01
110 Reduction of errors in the design and integration of CNC machine tools,
Disseminated technical report for collaborators
111 http://www.physlink.com/Education/AskExperts/ae280.cfm, consulted on
14/02/05.
112 SKF Group, General catalogue, Catalogue 4000/IV E, Reg. 47 24 000 1994-
12, p 145, 1994
113 ziik M. Necati , Heat transfer A basic approach, 1st edition, McGraw_Hill,
ch 7, p 291, 1985
114 ziik M. Necati , Heat transfer A basic approach, 1st edition, McGraw_Hill,
Appendix B, pp 736-755, 1985
115 Euclid, Elements, book I, proposition 47, c300 B.C. (Apparently Pythagoras
himself didnt write anything, see The internet encyclopedia of philosophy,
section on Pythagoras, fl. 530 B.C.
http://www.utm.edu/research/iep/p/pythagor.htm)
116 Quayle J. P. ed, Kempes engineers year book , 1984, 89th edition, Morgan
Grampian, p A3/17, 1984
117 Young W. C., Roarks formulas for stress and strain, 6th edition, McGraw-Hill,
ch 7, table 3, cases 2d and 2e, pp 104-105, 1989
118 Quayle J. P. ed, Kempes engineers year book , 1984, 89th edition, Morgan
Grampian, Table 5, p A1/19, 1984
119 Quayle J. P. ed, Kempes engineers year book , 1984, 89th edition, Morgan
Grampian, p A1/5, 1984
120 Press H. W., Teukolosky S. A., Vetterling W. T., Flannery B. P., Numerical
recipes in C, 2nd edition, Cambridge University Press, ch 15, pp 681-687, 1992
121 Press H. W., Teukolosky S. A., Vetterling W. T., Flannery B. P., Numerical
recipes in C, 2nd edition, Cambridge University Press, ch 2, pp 36-43, 1992
122 http://www.kuroda-precision.co.jp/e-top/newproducts/bal/bal07w.htm, 30/05/06
[182]
123 Quayle J. P., Kempes engineers year book, 1984, 89th edition (Ed. Morgan
Grampian), Tables 4-6, pp A1/17-20, 1984.
124 http://www.dynacer.com/PDF/dynalloxproperties.pdf, accessed 11/07/06
125 http://www.dynacer.com/PDF/technoxproperties.pdf, accessed 11/07/06
126 http://www.goodfellow.com/csp/active/gfMaterialInfo.csp?
[183]
Appendix 4.1 Validation of continuous matter test model
A method of predicting the dynamic behaviour of a mechanical system based on wave
theory is set out in Section 4.1 of Chapter 4. This appendix validates the model by comparing
a sample of the results from the model with those calculated from classical theory. Using the
following data:-
Model Simulink wave_7e.mdl
Basic data:-
Mass of lump masses 0.1 kg each
Length of spring 1 m
Cross sectional area of spring 1 m2
Youngs modulus of spring material 1 N/m2
Wave velocity 5 m/sec
Damping coefficient of viscous damper, c 0.1 N sec/m
Derived data:-
Spring constant, k = EA/l 1 N/m
Density of spring, c.f. equation (4.2) 0.04 kg/m3
Mass of spring 0.04 kg
Forcing terms:-
A force of 1 N for the first second of motion and zero thereafter
the pattern of motion predicted by the model is:-
The first mass moves farther than the second in the first 1.3 seconds or so.
After the first 0.7 seconds, the two masses execute lightly damped relative motion
with a frequency of 0.671 Hz and a logarithmic decrement of 1.405.
The system settles down to a speed of 4.16 m/sec.
The total energy increases for the first second while the external force is being
applied, then remains constant for the remainder of the motion. The energy values
settle out at 0.87 J for each mass and 0.35 J for the spring with 0.32 J being
dissipated by the damper.
The results from the model are shown on Figures A4.1.1 to A4.1.6.
In a spring system of this nature it is common practice to add a third of the mass of the
spring to the lumped mass when estimating the fundamental natural frequency [87].
Following this approach the damped natural frequency d is predicted to be 0.654 Hz and the
logarithmic decrement 1.350 as follows.
[184]
The natural frequency of system comprising two masses with an interconnecting spring is
calculated by first reducing the system to a single mass on a spring system of stiffness k and
reduced mass given by:-
m1 m2 0.1 0.1
= = = 0.05 kg
m1 + m2 0.1 + 0.1
The total equivalent mass including the spring is therefore:-
0.04
tot = 0.05 + = 0.056667 kg
23
and the undamped natural frequency is then:-
k 1
n = = = 4.2008 rad/sec = 0.66858 Hz .
tot 0.056667
[185]
Figure A4.1.1 - Wave model wave amplitude (m/sec) v. time (sec)
[186]
Figure A4.1.3 - Wave model mass displacements (m) v. time (sec)
Figure A4.1.4 - Wave model relative displacement of masses (m) v. time (sec)
[187]
Figure A4.1.5 - Wave model forces (N) v. time (sec)
[188]
Appendix 4.2 - Details of Y-axis drive for Beaver VC 35 CNC machine tool
[189]
Appendix 4.3 MATLAB function for calculating undamped natural frequencies
function[natf,V]=natf_dr2(drive,N,iL,ipl)
% This routine computes the undamped natural frequencies and mode shapes
% for a motor driven ballscrew system.
%
% The degrees of freedom considered are:-
% 1 motor torsional
% 2 driving pulley torsional
% 3 driven pulley torsional
% 4 N+3 ballscrew torsional
% N+4 ballscrew axial
% N+5 table / saddle axial
%
% Output variables
% natf() natural frequency array
% V(,) eigenvector matrix
%
% Input variables
% drive select 'x' or 'y' drive
% N number of elements in ballscrew
% iL node number of load position
% ipl node to plot
%
% Other variables
% D(,) square of natural frequency matrix
% i for loop counter
% ii for loop counter
% j for loop counter
% J() inertia array
% Jbs moment of inertia ballscrew
% Jm moment of inertia motor
% Jms moment of inertia motor shaft
% Jp1 moment of inertia driving pulley
% Jp2 moment of inertia driven pulley
% K(,) stiffness matrix
% k_() stiffness array
% k_ax stiffness ballscrew axial
% k_bl stiffness drive belt
% k_bs stiffness ballscrew
% k_ms stiffness motor shaft
% k_nut stiffness ball nut
% m_bm mass of ballscrew
% m_tab table ('x' drive), saddle and table ('y' drive)
% natf_ "hold" value for natural frequency
% pi pi
% R ballscrew ratio
% rsum2 root mean square of mode shape amplitudes
% sum2 sum of squares of mode shape amplitudes
% u belt drive ratio
% V_() "hold" array for mode shape amplitudes
% x() "x" array for plots
% y() "y" array for plot data
%
% Subroutines used
% MATLAB - atan eig int2str num2str plot sqrt title xlabel ylabel
[190]
% UoH -
pi=4.*atan(1.);
[191]
K(i,i+1)=(-1.)*k_(i);
end
K(iL,iL) =K(iL,iL)+R^2*k_(N+3);
K(iL,N+4) =R*k_(N+3);
K(iL,N+5) =(-1.)*R*k_(N+3);
K(N+3,N+3)=k_(N+2);
K(N+4,N+4)=k_(N+3)+k_(N+4);
K(N+4,N+5)=(-1.)*k_(N+3);
K(N+5,N+5)=k_(N+3);
[192]
V(j,i)=V_(j);
end
end
end
end
[193]
Appendix 4.4 MATLAB function for calculating transverse natural frequencies
function[natf,x,yp,Op]=natf_tr1(N,ip)
% Output variables
% x() "x" array for plots
% yp() "y" array for pth mode shape
% Op() "dy/dx" array for pth mode shape
%
% Input variables
% N number of elements in ballscrew
% ip mode number of output mode
%
% Other variables
% D(,) square of natural frequency matrix
% d_bs diameter of ballscrew
% E modulus of elasticity
% i for loop counter
% ii for loop counter
% I_bs second moment of area of shaft
% j for loop counter
% Jt() tilt inertia array
% K(,) stiffness matrix
% l_bs length of ballscrew
% M() mass array
% MJ() square root of inertia array
% natf() natural frequency array
% natf_ "hold" value for natural frequency
% O1() "dy/dx" array for 1st mode shape
% O2() "dy/dx" array for 2nd mode shape
% O3() "dy/dx" array for 3rd mode shape
% O4() "dy/dx" array for 4th mode shape
% pi pi
% rho density
% rsum2 root mean square of mode shape amplitudes
% sum2 sum of squares of mode shape amplitudes
% V(,) mode shape matrix
% V_() "hold" array for mode shape amplitudes
% y1() "y" array for 1st mode shape
% y2() "y" array for 2nd mode shape
% y3() "y" array for 3rd mode shape
% y4() "y" array for 4th mode shape
%
% Subroutines used
% MATLAB - atan eig figure hold plot sqrt subplot xlabel ylabel
% UoH -
pi=4.*atan(1.);
[194]
d_bs=38.1e-3; % Dimensions of bar
l_bs=1.675;
% Stiffness matrix
for i=1:2*N
for j=i:2*N
K(i,j)=0.; % zeroise matrix
end
end
K(1,1)= 12.*E*I_bs/(l_bs/N)^3; % first element
K(1,2)= 6.*E*I_bs/(l_bs/N)^2; % upper half
K(1,3)=-12.*E*I_bs/(l_bs/N)^3;
K(1,4)= 6.*E*I_bs/(l_bs/N)^2;
K(2,2)= 4.*E*I_bs/(l_bs/N);
K(2,3)= -6.*E*I_bs/(l_bs/N)^2;
K(2,4)= 2.*E*I_bs/(l_bs/N);
for i=2:N
K(2*i-1,2*i-1)= 12.*E*2.*I_bs/(l_bs/N)^3; % central N-2 elements
K(2*i-1,2*i+1)=-12.*E*I_bs/(l_bs/N)^3; % upper half
K(2*i-1,2*i+2)= 6.*E*I_bs/(l_bs/N)^2;
K(2*i ,2*i )= 4.*E*2.*I_bs/(l_bs/N);
K(2*i ,2*i+1)= -6.*E*I_bs/(l_bs/N)^2;
K(2*i ,2*i+2)= 2.*E*I_bs/(l_bs/N);
end
K(2*N+1,2*N+1)= 12.*E*I_bs/(l_bs/N)^3; % last element
K(2*N+1,2*N+2)= -6.*E*I_bs/(l_bs/N)^2; % upper half
K(2*N+2,2*N+2)= 4.*E*I_bs/(l_bs/N);
for i=1:2*N+2
for j=i+1:2*N+2
K(j,i)=K(i,j); % fill lower half of matrix
end
end
for i=1:N+1
MJ(2*i-1)=sqrt(M(i)); % combined mass and inertia array
MJ(2*i )=sqrt(Jt(i)); % (square root)
end
for i=1:2*N+2
for j=1:2*N+2
K(i,j)=K(i,j)/MJ(j); % divide rows of K by MJ
end
end
for i=1:2*N+2
for j=1:2*N+2
[195]
K(i,j)=K(i,j)/MJ(i); % divide columns of K by MJ
end
end
for i=1:2*N+2
natf(i)=sqrt(D(i,i))/(2.*pi); % natural frequency array
for j=1:N+1
V(2*j-1,i)=V(2*j-1,i)/sqrt(M(j)); % mode shapes corrected
V(2*j ,i)=V(2*j ,i)/sqrt(Jt(j)); % by square root of mass
end
end
[196]
% Plot mode shapes
figure % amplitude
subplot(2,1,1),plot(x,y1,x,y2,x,y3,x,y4)
xlabel('Motor to ballscrew')
ylabel('y amplitude')
title('Mode shapes')
hold on % slope
subplot(2,1,2),plot(x,O1,x,O2,x,O3,x,O4)
xlabel('Motor to ballscrew')
ylabel('y slope')
[197]
Appendix 4.5 MATLAB function for calculating damped natural frequencies
function[natf,damp]=natf_dr3(drive,N,iL,ipl)
% This routine computes the damped natural frequencies and mode shapes
% for a motor driven ballscrew system.
%
% The degrees of freedom considered are:-
% 1 motor torsional
% 2 driving pulley torsional
% 3 driven pulley torsional
% 4 N+3 ballscrew torsional
% N+4 ballscrew axial
% N+5 table / saddle axial
%
% Output variables
% natf() natural frequency array
% damp() damping data array
%
% Input variables
% drive select 'x' or 'y' drive
% N number of elements in ballscrew
% iL node number of load position
% ipl node to plot
%
% Other variables
% A0(,) A0 sub-matrix
% A1(,) A1 sub-matrix
% A2(,) A2 sub-matrix
% B1(,) B1 sub-matrix
% B2(,) B2 sub matrix
% c_() damping coefficient array
% c_ax damping coefficient ballscrew axial
% c_bl damping coefficient drive belt
% c_brg_bs damping coefficient ballscrew bearing
% c_brg_ms damping coefficient motor bearing
% c_bs damping coefficient ballscrew
% c_ms damping coefficient motor shaft
% c_nut damping coefficient ball nut
% D(,) natural frequency matrix
% D_= "hold" value for square of natural frequency
% damp_= "hold" value for damping data
% damping description of type of damping
% i for loop counter
% ipl_ node number
% I(,) unit matrix
% ii for loop counter
% j for loop counter
% J() inertia array
% Jbs moment of inertia ballscrew
% Jm moment of inertia motor
% Jms moment of inertia motor shaft
% Jp1 moment of inertia driving pulley
% Jp2 moment of inertia driven pulley
% K(,) stiffness and damping combined matrix
% k_() stiffness array
% k_ax stiffness ballscrew axial
% k_bl stiffness drive belt
% k_bs stiffness ballscrew
% k_ms stiffness motor shaft
% k_nut stiffness ball nut
[198]
% m_bm mass of ballscrew
% m_tab table ('x' drive), saddle and table ('y' drive)
% natf_ "hold" value for natural frequency
% natf_max maximum natural frequency
% O(,) zero matrix
% pi pi
% R ballscrew ratio
% rsum2 root mean square of mode shape amplitudes
% sum2 sum of squares of mode shape amplitudes
% u belt drive ratio
% V(,) mode shape matrix
% V_() "hold" array for mode shape amplitudes
% x() "x" array for plots
% y() complex "y" array for plot data
% y1() "y" array for "in-phase" plots
% y2() "y" array for "quadrature" plots
% y3() "y" array for "amplitude" plots
% y4() "y" array for "phase" plots
% y_save "hold" value for member of "y" array
% y_norm renormalising value for "y" array
% zeta damping ratio
%
% Subroutines used
% MATLAB - abs angle atan diag eig eye (figure) (hold) imag int2str inv
% num2str plot real sqrt subplot title xlabel ylabel zeros
% UoH -
pi=4.*atan(1.);
[199]
J(3)=Jp2 + Jbs/(N*2.);
for i=4:N+3
J(i)=Jbs/N;
end
J(N+3)=J(N+3)/2.;
J(N+4)=m_bm;
J(N+5)=m_tab;
[200]
A2(3,3)=u^2*k_(2)+k_(3);
A2(3,4)=(-1.)*k_(3);
for i=4:N+2
A2(i,i) =k_(i-1)+k_(i);
A2(i,i+1)=(-1.)*k_(i);
end
A2(iL,iL) =A2(iL,iL)+R^2*k_(N+3);
A2(iL,N+4) =R*k_(N+3);
A2(iL,N+5) =(-1.)*R*k_(N+3);
A2(N+3,N+3)=k_(N+2);
A2(N+4,N+4)=k_(N+3)+k_(N+4);
A2(N+4,N+5)=(-1.)*k_(N+3);
A2(N+5,N+5)=k_(N+3);
for i=1:N+4 % Fill out A2 matrix
for j=i+1:N+5
A2(j,i)=A2(i,j);
end
end
[201]
V(j,i)=V_(j);
end
D_=D(i-1,i-1);
D(i-1,i-1)=D(i,i);
D(i,i)=D_;
end
end
end
[202]
subplot(4,1,4)
plot(x,y4,'k-.')
ylabel('Phase (deg)')
xlabel('Motor to ballscrew')
[203]
Appendix 4.6 MATLAB routine for calculating sensitivity of a ballscrew system
to changes in stiffness
Function natf_dr3_k calculates the damped natural frequencies. It is based of function
natf_dr3 (see Appendix 4.5). The input argument list includes the stiffness parameters which
may be changed and the argument list includes all the natural frequencies and damping terms.
The plotting section has been omitted.
function[dnf_dk,dzt_dk]=natf_dr4(drive,N,iL)
[204]
% incremented by 1%
% pi pi
% w natural frequency of ith mode (rad/sec)
% zeta() damping ratio array
% zet_dz() damping ratio array with ith stiffness parameter
% incremented by 1%
% Subroutines used
% MATLAB - atan sqrt
% UoH - natf_dr3_k(*)
%
pi=4.*atan(1.);
for i=1:N+5
k = damp(i+N+5);
w = 2.*pi*natf(i+N+5);
zeta(i) =sqrt(k^2/(k^2+w^2));
end
for j=1:N+5
dnf_dk(i,j)=(nf_dnf(j+N+5)/natf(j+N+5)-1.)*100.;
% .... natural frequency partial derivative
k = dm_ddm(j+N+5);
w = 2.*pi*nf_dnf(j+N+5);
zet_dz(j) =sqrt(k^2/(k^2+w^2));
dzt_dk(i,j)=(zet_dz(j)/zeta(j)-1.)*100.;
% .... damping ratio partial derivative
end
end
[205]
Appendix 4.7 MATLAB routine for calculating sensitivity of a ballscrew system
to changes in damping
Function natf_dr3_c calculates the damped natural frequencies. It is based of function
natf_dr3 (see Appendix 4.5). The input argument list includes the damping parameters which
may be changed and the argument list includes all the natural frequencies and damping terms.
The plotting section has been omitted.
function[dnf_dc,dzt_dc]=natf_dr5(drive,N,iL)
[206]
% damp() damping ??
% dm_ddm() damping ?? with ith stiffness parameter incremented by 1%
% i for loop counter
% j for loop counter
% k damping ?? for ith mode
% natf() natural frequency array
% nf_dnf natural frequency with ith stiffness parameter
% incremented by 1%
% pi pi
% w natural frequency of ith mode (rad/sec)
% zeta() damping ratio array
% zet_dz() damping ratio array with ith stiffness parameter
% incremented by 1%
% Subroutines used
% MATLAB - atan sqrt
% UoH - natf_dr3_c(*)
pi=4.*atan(1.);
for i=1:N+5
k = damp(i+N+5);
w = 2.*pi*natf(i+N+5);
zeta(i) =sqrt(k^2/(k^2+w^2));
end
if i==1 C_ms=c_ms*1.01;end
if i==2 C_bl=c_bl*1.01;end
if i==3 C_bs=c_bs*1.01;end
if i==4 C_nut=c_nut*1.01;end
[207]
if i==5 C_ax=c_ax*1.01;end
if i==6 C_brg_ms=c_brg_ms*1.01;end
if i==7 C_brg_bs=c_brg_bs*1.01;end
for j=1:N+5
dnf_dc(i,j)=(nf_dnf(j+N+5)/natf(j+N+5)-1.)*100.;
% .... natural frequency partial derivative
k = dm_ddm(j+N+5);
w = 2.*pi*nf_dnf(j+N+5);
zet_dz(j) =sqrt(k^2/(k^2+w^2));
dzt_dc(i,j)=(zet_dz(j)/zeta(j)-1.)*100.;
% .... damping ratio partial derivative
end
end
[208]
Appendix 4.8 MATLAB routine for calculating sensitivity of a ballscrew system
to changes in inertia
Function natf_dr3_J calculates the damped natural frequencies. It is based of function
natf_dr3 (see Appendix 4.5). The input argument list includes the inertia parameters which
may be changed and the argument list includes all the natural frequencies and damping terms.
The plotting section has been omitted.
function[dnf_dJ,dzt_dJ]=natf_dr9(drive,N,iL)
[209]
% m_bm mass of ballscrew
% m_bm_ m_bm incremented by 1%
% m_tab table ('x' drive), saddle and table ('y' drive)
% m_tab_ m_tab incremented by 1%
% natf() natural frequency array
% nf_dnf natural frequency with ith stiffness parameter incremented by
1%
% pi pi
% w natural frequency of ith mode (rad/sec)
% zeta() damping ratio array
% zet_dz() damping ratio array with ith stiffness parameter incremented
by 1%
% Subroutines used
% MATLAB - atan sqrt
% UoH - natf_dr_J
%
pi=4.*atan(1.);
for i=1:N+5
k = damp(i+N+5);
w = 2.*pi*natf(i+N+5);
zeta(i) =sqrt(k^2/(k^2+w^2));
end
[210]
if i==7 m_tab_=m_tab*1.01;end
for j=1:N+5
dnf_dJ(i,j)=(nf_dnf(j+N+5)/natf(j+N+5)-1.)*100.;
% .... natural frequency partial derivative
k = dm_ddm(j+N+5);
w = 2.*pi*nf_dnf(j+N+5);
zet_dz(j) =sqrt(k^2/(k^2+w^2));
dzt_dJ(i,j)=(zet_dz(j)/zeta(j)-1.)*100.;
% .... damping ratio partial derivative
end
end
[211]
Appendix 5.1 - C program for axial and torsional degrees of freedom
// Program "T3.cpp"
// ========
//
// Version dated 16/10/02
// Axial and torsional freedoms only, one node nut, generalised solution method.
// Archive 03 - torque applied to nut driven end of screw.
// "Long double" precision
// Table friction included, (but may need more sophistication).
//
// Standard subroutine libraries
#include <iostream.h>
#include <math.h>
#include <fstream.h>
// Subroutine prototypes
signed int dl_ab(signed int S, signed int N, double dt1);
double dl_dt(signed int S, signed int N, float dt_in);
void d_b0(signed int Msize, signed int j);
void dl_b1(signed int Msize, signed int j, double dt1);
void dl_b2(signed int S, signed int N, double dt1);
void dl_bk(signed int S, signed int N, signed int k);
void d_c0(signed int Msize, signed int j);
void dl_c1(signed int Msize, double dt1);
void dl_ck(signed int S, signed int N, signed int k);
float d_KE(signed int Msize, signed int k);
float dl_m_d(signed int Msize, signed int j);
float dl_max_d(signed int Msize, signed int j);
float d_m_extra(signed int Msize, signed int j);
double dl_PE2(double bs_rat, double blash, double blf1, double blf2,
signed int Msize, signed int S, signed int j);
void dl_rEnD(double bs_rat, float c_brg_1, float c_brg_2, signed int Msize,
signed int S, signed int j);
void inc_d(signed int Msize, signed int j, signed int k);
void inc_v(signed int Msize, signed int j, signed int k);
double fric_tab(float m_tab, float g, float mu_tab, double bs_rat, double v_max,
double blash, double blf2, signed int S, signed int N, signed int j,
double dt1, signed int mode);
//%
//% Definition of matrix and array sizes
#define SMAX 50 // Maximum number of elements in ballscrew
#define NFS 2 // Number of degrees of freedom per ballscrew node
#define BWS 4 // Bandwidth of ballscrew
#define NMAX 0 // Maximum number of elements in ballscrew nut,
// (0 = 1 node)
#define NFN 1 // Number of degrees of freedom per nut node
#define BWN 1 // Bandwidth of nut
#define KMAX 22 // Maximum number of iterations
#define NBLOCK 1000 // Maximum number of steps in time history block
#define SWRIT 100 // Number of time history steps between screen writes
#define L1 (1+SMAX)
#define L2 (1+NBLOCK)
#define M1 (1+SMAX+1+NMAX+1)
#define M2 (1+NFS*(SMAX+1)+NFN*(NMAX+1))
#define M3 (1+SMAX+1)
#define M4 (BWS+BWN)
[212]
#define M5 (1+BWS+BWN)
#define M6 ((BWS+BWN)*2)
#define M7 (1+KMAX)
[213]
double v_max=0.2; // maximum nut velocity, (m/sec)
signed int mode=1; // "fric_tab" mode of operation
//% 0 = "balanced force" mode
//% 1 = "damper" mode
if (S>SMAX) {cout << "Too many elements in ballscrew - STOP"; return(1);}
if (N>NMAX) {cout << "Too many elements in nut - STOP"; return(1);}
//%
//% Other variables
double a1; // rate of acceleration, (m/sec^2)
double a2; // rate of deceleration, (m/sec^2)
double blash=10.e-6; // backlash, (m)
double blf1; // backlash factor 1
double blf2; // backlash factor 2
float A_bs; // cross-sectional area of ballscrew, (m^2)
double bs_rat; // ballscrew ratio, (m/rad)
double bs_rat2; // =bs_rat^2, (m^2/rad^2)
signed int calc; // power series calculation indicator,
// = 'cont' - continue
// = 'stop' - stop
float c_brg_1=0.668e-3F; // equivalent damping coefficient of bearings,
float c_brg_2=0.668e-3F; // (N m sec/rad)
float d_bs=38.1e-3F; // diameter of ballscrew, (m)
double dEnD; // increment in energy dissipated, (J)
double df1; // stiffness and damping distribution factor 1
double df2; // stiffness and damping distribution factor 2
double dt; // time step, (sec)
double dt1; // time step, inner loop, (sec)
float E=207.0e9F; // Young's modulus, (N/m^2)
float Ein; // energy input, (J)
double EnD; // energy dissipated, (J)
double EnD1; // energy dissipated by table friction, (J)
double eps=1.0e-9; // convergence criterion
float error; // error in position of ballscrew end, (rad)
float error1; // error - previous step, (rad)
float fd; // driving torque, (N m)
float fd_max; // maximum torque at ballscrew enf, (N m)
float g=9.80665F; // acceleration due to gravity, (m/sec^2)
float G=80.0e9F; // shear modulus, (N/m^2)
signed int i; // for loop counter
signed int ib; // block item counter
signed int ii; // for loop counter
signed int it; // for loop counter
signed int i1; // matrix element subscript
signed int i2; // matrix element subscript
signed int j; // for loop counter
float J_bs; // total inertia of ballscrew, (kg m^2)
signed int jj; // for loop counter
signed int k; // index in power series
float k_ax_nut=1.e8F; // axial stiffness of nut, (N/m)
float k_ax_1= 8.0e8F; // axial stiffness of bearings, (N/m)
float k_ax_2=15.6e8F;
float K_bs; // torsional constant of ballscrew, (m^4)
float Kd=0.F; // controller differential constant, (N m sec/rad)
float Ki=100.F; // controller integral constant, (N m/(rad sec))
float Kp=2.F; // controller proportional constant, (N m/rad)
float l_bs=1.520F; // length of ballscrew, (m)
float max_d; // measure of maximum term of displacement vector
// at kth term, (?)
float m_d; // measure of displacement vector at kth term, (?)
float m_extra; // measure of last four terms in calculation
// of d vector, (?)
[214]
float m_tab=359.F; // mass of saddle and table, (kg)
float mu_tab=0.1F; // coefficient of friction between table and slideways
signed int Nt; // number of columns in time history matrices
signed int Ns=1; // number of starts of ballscrew grooves
double Ob; // angular position of "nut point" on screw, (rad)
double pi; // pi
float pitch=0.010F; // ballscrew pitch, (m)
float rho=7600.F; // density, (kg/m^3)
float S_error; // integral of error in position of ballscrew end,
// (rad sec)
signed int SN1; // SN1=S+1+N+1, number of nodes
signed int SN2; // SN2=NFS*(S+1)+NFN*(N+1), number of degrees of freedom
double t; // time, (sec)
double t2; // time of end of acceleration, (sec)
double t3; // time of start of deceleration, (sec)
double t4; // time of end point, (sec)
double t5; // time at end of simulation, (sec)
double vn; // velocity of nut - ideal, (m/sec)
double xb; // position of "nut point" on screw, (m)
double xn; // position of nut - ideal, (m)
//%
//% Subroutines used
//% 1. atan, cout, double, float, fmod, ofstream, return, signed int
//% 2. dl_ab, dl_dt, d_b0, dl_b1, dl_b2, dl_bk, d_c0, dl_c1, dl_ck, d_KE,
//% dl_max_d, dl_m_d, d_m_extra, dl_PE2, dl_rEnD, inc_d, inc_v
//%
//% Output streams used
//% os_x, os_t1, os_f1, os_f2, os_Kn, os_Cn, os_xn1, os_lind, os_linv,
//% os_tord, os_torv, os_KE, os_PE, os_Ei, os_ED, os_ED1, os_TE, os_rEnD,
//% os_R, os_err, os_perr, os_b1, os_b2, os_Kf, os_b
//%
//% Special variables used
//% endl, NULL
//%
// Sets up output streams for results files
ofstream os_x(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\x,ios::out);
if (os_x==NULL) {cout << "File 'x' not opened - STOP"; return(1);}
ofstream os_t1(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\t1,ios::out);
if (os_t1==NULL) {cout << "File 't1' not opened - STOP"; return(1);}
ofstream os_f1(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\f1,ios::out);
if (os_f1==NULL) {cout << "File 'f1' not opened - STOP"; return(1);}
ofstream os_f2(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\f2,ios::out);
if (os_f2==NULL) {cout << "File 'f2' not opened - STOP"; return(1);}
ofstream os_Kn(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\Kn,ios::out);
if (os_Kn==NULL) {cout << "File 'Kn' not opened - STOP"; return(1);}
ofstream os_Cn(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\Cn,ios::out);
if (os_Cn==NULL) {cout << "File 'Cn' not opened - STOP"; return(1);}
ofstream os_xn1(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\xn1,ios::out);
if (os_xn1==NULL) {cout << "File 'xn1' not opened - STOP"; return(1);}
ofstream
os_lind(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\lind,ios::out);
if (os_lind==NULL) {cout << "File 'lind' not opened - STOP"; return(1);}
ofstream
os_linv(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\linv,ios::out);
if (os_linv==NULL) {cout << "File 'linv' not opened - STOP"; return(1);}
ofstream
os_tord(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\tord,ios::out);
if (os_tord==NULL) {cout << "File 'tord' not opened - STOP"; return(1);}
ofstream
os_torv(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\torv,ios::out);
if (os_torv==NULL) {cout << "File 'torv' not opened - STOP"; return(1);}
[215]
ofstream os_KE(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\KE,ios::out);
if (os_KE==NULL) {cout << "File 'KE' not opened - STOP"; return(1);}
ofstream os_PE(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\PE,ios::out);
if (os_PE==NULL) {cout << "File 'PE' not opened - STOP"; return(1);}
ofstream os_Ei(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\Ei,ios::out);
if (os_Ei==NULL) {cout << "File 'Ei' not opened - STOP"; return(1);}
ofstream os_ED(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\ED,ios::out);
if (os_ED==NULL) {cout << "File 'ED' not opened - STOP"; return(1);}
ofstream os_ED1(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\ED1,ios::out);
if (os_ED1==NULL) {cout << "File 'ED1' not opened - STOP"; return(1);}
ofstream os_TE(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\TE,ios::out);
if (os_TE==NULL) {cout << "File 'TE' not opened - STOP"; return(1);}
ofstream
os_rEnD(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\rEnD,ios::out);
if (os_rEnD==NULL) {cout << "File 'rEnD' not opened - STOP"; return(1);}
ofstream os_R(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\R,ios::out);
if (os_R==NULL) {cout << "File 'R' not opened - STOP"; return(1);}
ofstream os_err(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\err,ios::out);
if (os_err==NULL) {cout << "File 'err' not opened - STOP"; return(1);}
ofstream
os_perr(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\perr,ios::out);
if (os_perr==NULL) {cout << "File 'perr' not opened - STOP"; return(1);}
ofstream os_b1(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\b1,ios::out);
if (os_b1==NULL) {cout << "File 'b1' not opened - STOP"; return(1);}
ofstream os_b2( d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\b2,ios::out);
if (os_b2==NULL) {cout << "File 'b2' not opened - STOP"; return(1);}
pi=4.*atan(1.); // pi
[216]
// Lines marked !! - only valid for NFN=1 and N=0
A_bs=float(pi)/4.F*(d_bs*d_bs);
K_bs=float(pi)/32.F*(d_bs*d_bs*d_bs*d_bs);
for (i=1;i<=SN2;i++)
{
for (j=1;j<=M4;j++)
{
K1[i][j]=0.F;
C1[i][j]=0.F;
}
}
K1[1][1]= E*A_bs/(l_bs/float(S));
K1[1][3]=-1.F*E*A_bs/(l_bs/float(S));
K1[2][1]= G*K_bs/(l_bs/float(S));
K1[2][3]=-1.F*G*K_bs/(l_bs/float(S));
for (i=2;i<=S;i++)
{
i1=2*i-1;
i2=2*i;
K1[i1][1]= 2.F*E*A_bs/(l_bs/float(S));
K1[i1][3]=-1.F*E*A_bs/(l_bs/float(S));
K1[i2][1]= 2.F*G*K_bs/(l_bs/float(S));
K1[i2][3]=-1.F*G*K_bs/(l_bs/float(S));
}
K1[NFS*S+1][1]=E*A_bs/(l_bs/float(S));
K1[NFS*S+2][1]=G*K_bs/(l_bs/float(S));
for (i=1;i<=NFS*(S+1);i++)
{
for (j=1;j<=M4;j++)
{
C1[i][j]=drs*K1[i][j];
}
}
K1[1][1]=K1[1][1] + k_ax_1;
K1[NFS*S+1][1]=K1[NFS*S+1][1] + k_ax_2;
K1[NFS*(S+1)+NFN*(N+1)][1]=k_ax_nut; // !!
C1[1][1]=C1[1][1] + drb*k_ax_1;
C1[2][1]=C1[2][1] + c_brg_1;
C1[NFS*S+1][1]=C1[NFS*S+1][1] + drb*k_ax_2;
C1[NFS*S+2][1]=C1[NFS*S+2][1] + c_brg_2;
C1[NFS*(S+1)+NFN*(N+1)][1]=K1[NFS*(S+1)+NFN*(N+1)][1]*float(drn); // !!
[217]
t3=t2 + (x3-x2)/v_max;
a2=-(v_max*v_max)/(2.*(x4-x3));
t4=t3 - v_max/a2;
t5=t4*1.1;
[218]
for (i=0;i<=S;i++)
{
x[i]=float(i)*l_bs/float(S); os_x << << x[i];
}
os_x << endl;
[219]
{
i1=2*ii-1;
i2=2*ii;
if ((x[ii-1]<=xn) && (xn<=x[ii]))
{
df1=(x[ii] - xn)*double(S)/double(l_bs);
df2=(xn-x[ii-1])*double(S)/double(l_bs);
xb=df1*d[i1][j] + df2*d[i1+NFS][j];
Ob=df1*d[i2][j] + df2*d[i2+NFS][j];
if ((xb+bs_rat*Ob)<(d[SN2][j]-blash/2.)) // Defines backlash state
{
blf1=1.;
blf2=-1.;
}
else if ((d[SN2][j]+blash/2.)<(xb+bs_rat*Ob))
{
blf1=1.;
blf2=1.;
}
else
{
blf1=0.;
blf2=0.;
}
K[i1][1]=K[i1][1] + blf1*double(k_ax_nut)*df1;
K[i1+NFS][1]=K[i1+NFS][1] + blf1*double(k_ax_nut)*df2;
K[i1][M4]=blf1*double(-k_ax_nut)*df1;
K[i1+NFS][M4]=blf1*double(-k_ax_nut)*df2;
K[i2][1]=K[i2][1] + blf1*bs_rat2*double(k_ax_nut)*df1;
K[i2+NFS][1]=K[i2+NFS][1] + blf1*bs_rat2*double(k_ax_nut)*df2;
K[i2][M4]=-blf1*bs_rat*double(k_ax_nut)*df1;
K[i2+NFS][M4]=-blf1*bs_rat*double(k_ax_nut)*df2;
K[i1][2]=blf1*bs_rat*double(k_ax_nut)*df1;
K[i1+NFS][2]=blf1*bs_rat*double(k_ax_nut)*df2;
K[SN2][1]=blf1*K[SN2][1];
C[i1][1]=C[i1][1] - K[i1][M4]*drn;
C[i1+NFS][1]=C[i1+NFS][1] - K[i1+NFS][M4]*drn;
C[i1][M4]=K[i1][M4]*drn;
C[i1+NFS][M4]=K[i1+NFS][M4]*drn;
C[i2][1]=C[i2][1] - K[i2][M4]*bs_rat*drn;
C[i2+NFS][1]=C[i2+NFS][1] - K[i2+NFS][M4]*bs_rat*drn;
C[i2][M4]=K[i2][M4]*drn;
C[i2+NFS][M4]=K[i2+NFS][M4]*drn;
C[i1][2]=K[i1][2]*drn;
C[i1+NFS][2]=K[i1+NFS][2]*drn;
C[SN2][1]=blf1*C[SN2][1];
[220]
}
ofstream os_Kf(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\Kf,
ios::out);
if (os_Kf==NULL) {cout << "File 'Kf' not opened - STOP"; return(1);}
os_Kf << "K matrix:- \n";
for (i=1;i<=NFS*(S+1)+NFN*(N+1);i++)
{
os_Kf << "i = " << i ;
for (jj=1;jj<=M4;jj++)
{
os_Kf << << K[i][jj];
}
os_Kf << endl;
}
os_Kf << "f matrix:- \n";
for (i=1;i<=NFS*(S+1)+NFN*(N+1);i++)
{
os_Kf << "i = " << i << << f[i] << endl;
}
[221]
ofstream os_b(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\b,ios::out);
if (os_b==NULL) {cout << "File 'b' not opened - STOP"; return(1);}
os_b << "b matrix:- \n";
for (i=1;i<=NFS*(S+1)+NFN*(N+1);i++)
{
os_b << "i = " << i ;
for (jj=1;jj<=k;jj++)
{
os_b << << b[i][jj];
}
os_b << endl;
}
os_b << "c matrix:- \n";
for (i=1;i<=NFS*(S+1)+NFN*(N+1);i++)
{
os_b << "i = " << i ;
for (jj=1;jj<=k;jj++)
{
os_b << << c[i][jj];
}
os_b << endl;
}
[222]
// Up-dates energy arrays
KE[ib]=d_KE(SN2,S+1);
PE[ib]=float(dl_PE2(bs_rat,blash,blf1,blf2,SN2,S,S+1));
Ei[ib]=Ein;
ED[ib]=float(EnD);
ED1[ib]=float(EnD1);
TE[ib]=KE[ib]+PE[ib]+Ei[ib]+ED[ib];
R[ib]=float(rEnD[S+1]);
// Close files
os_t1 << endl;
os_f1 << endl;
os_f2 << endl;
os_Kn << endl;
os_Cn << endl;
os_xn1 << endl;
os_KE << endl;
os_PE << endl;
os_Ei << endl;
os_ED << endl;
[223]
os_ED1 << endl;
os_TE << endl;
os_rEnD << endl;
os_R << endl;
os_err << endl; cout << endl;
os_perr << endl;
os_b1 << << endl;
os_b2 << << endl;
return(0);
}
/*============================================================================*/
[224]
alpha[i][1]=(-1.L)*long double(Mi[NFS*(S+1)+NFN*(N+1)])
*long double(K[i][BWS+BWN]*(dt1*dt1));
beta [i][1]=(-1.L)*long double(Mi[NFS*(S+1)+NFN*(N+1)])
*long double(C[i][BWS+BWN]*dt1);
alpha[i][2*BWS+2*BWN-1]=(-1.L)*long double(Mi[i])
*long double(K[i][BWS+BWN]*(dt1*dt1));
beta [i][2*BWS+2*BWN-1]=(-1.L)*long double(Mi[i])
*long double(C[i][BWS+BWN]*dt1);
}
alpha[NFS*(S+1)+NFN*(N+1)][BWS+BWN]
=(-1.L)*long double(Mi[NFS*(S+1)+NFN*(N+1)])
*long double(K[NFS*(S+1)+NFN*(N+1)][1]*(dt1*dt1)); /*NOT*/
beta [NFS*(S+1)+NFN*(N+1)][BWS+BWN]
=(-1.L)*long double(Mi[NFS*(S+1)+NFN*(N+1)])
*long double(C[NFS*(S+1)+NFN*(N+1)][1]*dt1); /*NOT*/
ofstream os_ab(d:\\c_drive_1\\ph_d\ballscrew_model\\dynamic_2\\ab,ios::out);
if (os_ab==NULL) {cout << "File 'ab' not opened - STOP"; return(1);}
os_ab << "alpha matrix:- \n";
for (i=1;i<=NFS*(S+1)+NFN*(N+1);i++)
{
os_ab << "i = " << i ;
for (j=1;j<=2*(BWN+BWS)-1;j++)
{
os_ab << << alpha[i][j];
}
os_ab << endl;
}
os_ab << "beta matrix:- \n";
for (i=1;i<=NFS*(S+1)+NFN*(N+1);i++)
{
os_ab << "i = " << i ;
for (j=1;j<=2*(BWN+BWS)-1;j++)
{
os_ab << << beta[i][j];
}
os_ab << endl;
}
return(0);
}
/*============================================================================*/
[225]
double dt1est; // first estimate of inner loop time step, (sec)
signed int exp; // exponent of dtest
signed int i; // for loop counter
signed int j; // for loop counter
double log10dt; // log10(1/dtest)
double man; // mantissa of dtest
double Mmag; // "magnitude" of matrix, (1/sec^2)
signed int Msize; // number of rows in K,C matrices
//%
//% Subroutines used
//% 1. cout, double, signed int, log10, pow, return, sqrt
//% 2. dl_ab
//%
Msize=NFS*(S+1)+NFN*(N+1);
for (i=1;i<=Msize;i++)
{
for (j=1;j<=M4;j++)
{
K[i][j]=double(K1[i][j]);
}
}
dl_ab(S,N,1.);
Mmag=0.;
for (i=1;i<=Msize;i++)
{
Mmag=Mmag + double(alpha[i][M4]*alpha[i][M4]);
}
Mmag=sqrt(Mmag);
dt1est=1./sqrt(Mmag);
dtest=dt1est*double(S);
log10dt=-1.*log10(dtest);
exp=-1*signed int(log10dt)-1;
man=dtest/pow(10.,double(exp));
if ((man<=1.)||(10.<man)) return dt=-1.;
else if ((1.<=man)&&(man<2.)) man=1.;
else if ((2.<=man)&&(man<5.)) man=2.;
else man=5.;
dt=man*pow(10.,exp);
if (dt<double(dt_in)) return dt;
else return dt=double(dt_in);
}
/*============================================================================*/
/*============================================================================*/
[226]
void dl_b1(signed int Msize, signed int j, double dt1)
{
//% Input variables
// Msize; // number of rows in K,C matrices
// j; // column number of d[i][j]
// dt1; // time step, inner loop, (sec)
//%
//% Other variables
signed int i; // for loop counter
//%
//% Subroutines used
//% long double
//%
for (i=1;i<=Msize;i++)
{
b[i][1]=v[i][j]*long double(dt1);
}
}
/*============================================================================*/
b[Msize][2]=0.L;
for (i=1;i<=NFS*(S+1);i++)
{
b[Msize][2]=b[Msize][2] + (beta [i][1]*b[i][1])/2.L
+ (alpha[i][1]*b[i][0])/2.L;
}
b[Msize][2]=b[Msize][2] + (beta [Msize][BWN+BWS]*b[Msize][1])/2.L
[227]
+ (alpha[Msize][BWN+BWS]*b[Msize][0])/2.L;
for (i=1;i<=Msize;i++)
{
b[i][2]=b[i][2] + long double(Mi[i]*f[i])/2.L*long double(dt1*dt1);
}
}
/*============================================================================*/
/*============================================================================*/
[228]
//%
//% Other variables
signed int i; // for loop counter
//%
for (i=1;i<=Msize;i++)
{
c[i][0]=v[i][j];
}
}
/*============================================================================*/
/*============================================================================*/
[229]
c[i][k]=c[i][k]
+ (beta [i][2*BWS+2*BWN-1]*c[Msize][k-1])/long double(k)
+ (alpha[i][2*BWS+2*BWN-1]*c[Msize][k-2])/long double((k-1)*k);
}
c[Msize][k]=0.L;
for (i=1;i<=NFS*(S+1);i++)
{
c[Msize][k]=c[Msize][k] + (beta [i][1]*c[i][k-1])/long double(k)
+ (alpha[i][1]*c[i][k-2])/long double((k-1)*k);
}
c[Msize][k]=c[Msize][k]
+ (beta [Msize][BWN+BWS]*c[Msize][k-1])/long double(k)
+ (alpha[Msize][BWN+BWS]*c[Msize][k-2])/long double((k-1)*k);
}
/*============================================================================*/
/*============================================================================*/
[230]
m_d=m_d + float(fabs(double(d[i][j])));
}
return m_d=m_d/float(Msize);
}
/*============================================================================*/
/*============================================================================*/
[231]
return m_extra=m_extra/float(Msize);
}
/*============================================================================*/
/*============================================================================*/
void dl_rEnD(double bs_rat, float c_brg_1, float c_brg_2, signed int Msize,
signed int S, signed int j)
{
//% Input variables
// bs_rat; // ballscrew ratio, (m/rad)
// c_brg_1; // equivalent damping coefficient of bearings,
// c_brg_2; // (N m sec/rad)
// Msize; // number of rows in K,C matrices
// S; // number of elements in ballscrew
// j; // column number of v[i][j]
//%
//% Other variables
signed int ii; // for loop counter
signed int i1; // matrix element subscript
signed int i2; // matrix element subscript
//%
//% Subroutines used
[232]
//% double
//%
rEnD[j]=0.;
for (ii=1;ii<=S;ii++)
{
i1=2*ii-1;
i2=2*ii;
rEnD[j]=rEnD[j]
- C[i1][3]*double((v[i1+NFS][j]-v[i1][j])*(v[i1+NFS][j]-v[i1][j]))
- C[i2][3]*double((v[i2+NFS][j]-v[i2][j])*(v[i2+NFS][j]-v[i2][j]));
rEnD[j]=rEnD[j]
- C[i1][M4]*double((v[Msize][j]-v[i1][j]-bs_rat*v[i2][j])
*(v[Msize][j]-v[i1][j]-bs_rat*v[i2][j]));
}
rEnD[j]=rEnD[j] + c_brg_1*double(v[2][j]*v[2][j]);
rEnD[j]=rEnD[j] + c_brg_2*double(v[2*(S+1)][j]*v[2*(S+1)][j]);
}
/*============================================================================*/
/*============================================================================*/
[233]
{
v[i][j]=c[i][0];
}
}
else
{
for (i=1;i<=Msize;i++)
{
v[i][j]=v[i][j] + c[i][k];
}
}
}
/*============================================================================*/
double fric_tab(float m_tab, float g, float mu_tab, double bs_rat, double v_max,
double blash, double blf2, signed int S, signed int N,
signed int j, double dt1, signed int mode)
{
//% Output variables
double EnD; // energy dissipated, (J)
//%
//% Input variables
// m_tab; // mass of saddle and table, (kg)
// g; // acceleration due to gravity, (m/sec^2)
// mu_tab; // coefficient of friction between table and slideways
// bs_rat; // ballscrew ratio, (m/rad)
// v_max; // maximum nut velocity, (m/sec)
// blash; // backlash, (m)
// blf2; // backlash factor 2
// S; // number of elements in ballscrew
// N; // number of elements in ballscrew nut, (0 = 1 node)
// j; // column number of v[i][j]
// dt1; // time step, inner loop, (sec)
// mode // 0 = "balanced force" mode
// // 1 = "damper" mode
//%
//% Other variables
double a_max=6.; // maximum acceleration, (m/sec^2)
double eps=1.e-5; // criterion for "zero" velocity
float fforce; // friction force, (N)
signed int i; // for loop counter
signed int i1; // matrix element subscript
signed int i2; // matrix element subscript
signed int Msize; // number of rows in K,C matrices
signed int N_int=2; // number of time inervals used to estimate v_frict
float sforce; // spring force on table, (N)
float sign; // sign of table velocity
double vabs; // absolute velocity of table, (m/sec)
double v_frict; // velocity of full friction force, (m/sec)
//%
//% Subroutines used
//% cout fabs float return
//%
Msize=NFS*(S+1)+NFN*(N+1);
v_frict=a_max*dt1*double(N_int);
vabs=fabs(v[Msize][j]);
if (v[Msize][j]/vabs<0.) sign=-1.F;
else sign=1.F;
fforce=mu_tab*m_tab*g;
if (mode==0)
[234]
{
if (vabs<=eps*v_max)
{
sforce=0.F;
for (i=1;i<=S+1;i++)
{
i1=2*i-1;
i2=2*i;
sforce=sforce - float(K[i2][M4]
*(d[Msize][j]-d[i1][j]-bs_rat*d[i2][j]+blf2*blash/2.));
}
if (sforce<-1.F*fforce)
{
f[Msize]=f[Msize] + fforce;
}
else if (fforce<sforce)
{
f[Msize]=f[Msize] - fforce;
}
else
{
f[Msize]=f[Msize] - sforce;
}
}
else
{
f[Msize]=f[Msize] - sign*fforce;
}
EnD=-1.*(float(f[Msize] + K[Msize][1]*(blf2*blash/2.)))*v[Msize][j]*dt1;
}
else if (mode==1)
{
v_frict=a_max*dt1*double(N_int);
if (vabs<v_frict)
{
f[Msize]=f[Msize] - sign*float(vabs/v_frict)*fforce;
}
else
{
f[Msize]=f[Msize] - sign*fforce;
}
EnD=-1.*(float(f[Msize] + K[Msize][1]*(blf2*blash/2.)))*v[Msize][j]*dt1;
}
else
{
EnD=0.;
}
return EnD;
}
[235]
Appendix 5.2 - Details of calculations used to check Program T3
A steel ballscrew 38.1 mm in diameter and 1520 mm long was modelled using program T3.cpp.
The screw was supported at the drive end with a bearing of 8 108 N/m axial stiffness at the tail
end with a bearing of 15.6 108 N/m axial stiffness. A simple PID controller was coded into the
model to enable a trapezoidal velocity profile to be run. This controller had a proportional constant
Kp of 2 N m/rad, an integral constant Ki of 100 N m/(rad sec) and a differential constant Kd of zero.
Velocity feedback came from the nut. The demand signal is the diagonal straight line on
Figure 5.13.
At the start of the motion the nut was positioned at 100 mm from the driven end in the centre of
10 m of backlash. The first part of the motion entailed an acceleration of the nut of 0.2 m/sec2. In
order to avoid the results being swamped by the friction between the table and the slideways, the
coefficient of friction between them was assumed to be zero. A load of 359 kg was carried by the
nut.
The hand calculations used to check the results of C program T3 are detailed as follows:-
A5.2.1 Axial deflection
The axial stiffness from the point of contact with the nut to earth was calculated by taking into
account the stiffness of the several components (TK model BS_KAX.TK, rules 1-13). The axial
force on the screw was derived by considering the force needed to accelerate the nut load (ibid,
rule 14). The deflection at the nut contact point and at the bearings was then computed by applying
the load to the component stiffnesses (ibid, rules 15-19).
[236]
#17 fl_bs_1 4.279678999042158E-10 m/N ballscrew flexibility 1
#18 fl_bs_2 6.012737128357248E-9 m/N ballscrew flexibility 2
#19 fl_brg1 1.25E-9 m/N bearing 1 flexibility
#20 fl_brg2 6.41025641025641E-10 m/N bearing 2 flexibility
#21 fl1 1.677967899904216E-9 m/N flexibility - drive end
#22 fl2 6.653762769382889E-9 m/N flexibility - tail end
#23
#24 m 359 kg mass of table
#25 a .2 m/sec^2 acceleration of table
#26
#27 F 71.8 N force on table
#28 F1 57.33984760246322 N force on bearing 1
#29 F2 14.46015239753679 N force on bearing 2
#
#30 dx1 7.167480950307903E-8 m deflection in bearing 1
#31 dx2 9.269328459959478E-9 m deflection in bearing 2
#32 dxn 9.621442366233298E-8 m deflection at nut location
Rules (equations)
# 1 pi=4.*atan(1.)
# 2 A=pi/4.*d^2
# 3 k_bs_1=E*A/x1
# 4 fl_bs_1=1./k_bs_1
# 5 fl_brg1=1./k_brg_1
# 6 fl1=fl_bs_1+fl_brg1
# 7 k1=1./fl1
# 8 k_bs_2=E*A/(l_bs-x1)
# 9 fl_bs_2=1./k_bs_2
#10 fl_brg2=1./k_brg_2
#11 fl2=fl_bs_2+fl_brg2
#12 k2=1./fl2
#13 kax=k1+k2
#14 F=m*a
#15 dxn=F/kax
#16 F1=k1/kax*F
#17 dx1=F1/k_brg_1
#18 F2=k2/kax*F
#19 dx2=F2/k_brg_2
The axial deflections at the other points plotted on Figure 5.14 were derived by interpolation as
follows:-
9.2693 10 9 9.6214 10 8 1
x1 4 = (1.520 0.101) + 9.6214 10 8
1.520 0.101 4
8
= 7.9119 10 m
9.2693 109 9.6214 10 8 1
x1 2 = (1.520 0.101) + 9.6214 108
1.520 0.101 2
8
= 5.5836 10 m
9.2693 109 9.6214 108 3
x3 4 = (1.520 0.101) + 9.6214 108
1.520 0.101 4
8
= 3.2816 10 m
[237]
A5.2.2 Driving torque
The torque needed to drive the screw is the sum of the torque required to accelerate the nut load
(TK model BS_RIG_T.TK, rules 1 and 3-5), that to accelerate the screw (ibid, rules 6-8) and those
to overcome viscous drag in the bearings (ibid, rules 9-13).
MiniTK model BS_RIG_T.TK
Variables
# 1 pi 3.141592653589793 pi
# 2 E 2.07E11 N/m^2 Young's modulus
# 3 rho 7600 kg/m^3 density
# 4
# 5 d .0381 m screw diameter
# 6 l_bs 1.52 m ballscrew length
# 7 x1 .101 m position of nut
# 8 A .00114009182796937 m^2 cross sectional area
# 9
#10 c_brg_1 .000668 N m s/rad bearing 1 damping coefficient
#11 c_brg_2 .000668 N m s/rad bearing 2 damping coefficient
#12
#13 m 359 kg mass of table
#14 J .002389774800487604 kg m^2 inertia of ballscrew
#15
#16 Ns 1 number of starts of screw
#17 p .01 m pitch of screw
#18 R .001591549430918954 m/rad ballscrew ratio
#19
#20 t .05 sec time
#21 a .2 m/sec^2 acceleration of table
#22 angacc 125.6637061435917 rad/sec^2 angular acceleration of ballscrew
#23 v .01 m/sec velocity of table
#24 w 6.283185307179587 rad/sec speed of screw
#25
#26 F 71.8 N force on table
#27 Tm .1142732491399809 N m torque to accelerate screw
#28 Tbs .3003079582778347 N m torque to accelerate ballscrew
#29 T_brg_1 .004197167785195964 N m viscous drag in bearing 1
#30 T_brg_2 .004197167785195964 N m viscous drag in bearing 2
#31 T .4229755429882076 N m total torque
Rules (equations)
# 1 pi=4.*atan(1.)
# 2 A=pi/4.*d^2
# 3 R=Ns*p/(2.*pi)
# 4 F=m*a
# 5 Tm=F*R
# 6 J=pi/32.*d^4*l_bs*rho
# 7 angacc=a/R
# 8 Tbs=J*angacc
# 9 v=a*t
#10 w=v/R
#11 T_brg_1=c_brg_1*w
#12 T_brg_2=c_brg_2*w
#13 T=T_brg_1+Tbs+Tm+T_brg_2
[238]
A5.2.3 Nut position error
The nut position error was calculated using the following data (as well as that in Sections A5.2.1
and A5.2.2 of this appendix).
double blash=10.e-6; // backlash, (m)
float G=80.0e9F; // shear modulus, (N/m^2)
float k_ax_nut=1.e8F; // axial stiffness of nut, (N/m)
float Kd=0.F; // controller differential constant, (N m sec/rad)
float Ki=100.F; // controller integral constant, (N m/(rad sec))
float Kp=2.F; // controller proportional constant, (N m/rad)
A5.2.3.4 Backlash
10. 10 6
blash = = 5. 10 6 m
2
[239]
Appendix 6.1 C program for 6 degree-of-freedom mechanical model
This program generates the time history of ballscrew mechanical behaviour. Various routines
written in MATLAB are used to produce graphical output.
// Program "LG_rig.cpp"
// ============
//
// Standard function header files
[240]
// Opens input streams in white noise mode
}
// Initialisation section
// ======================
// Defines ballscrew "x" axis and element lengths
// Updates the stiffness and damping matrices for initial position of nut
if (timp==1)
{
// Sets number of iterations for white noise mode
}
else
{
// Initialises trapezoidal demand profile
}
// Initialises controller
// Zeros a force vector for use as a "saved" one and zeros the
energy dissipation arrays
[241]
// Updates forces due to dead weight, pre-tension and out-of-balance
// Defines first three terms of solution array "b" and builds them
into
// the displacement array "d", the velocity array "v" and the
acceleration array "a"
// Ouput section
// =============
// Write results to file
// Close files
return(0);
}
[242]
//% Common data block
//% =================
//% Fundamental constants
static float g=9.80665F; // acceleration due to gravity, (m/sec^2)
//%
//% Material properties
static float E=207.0e9F; // Young's modulus, (N/m^2)
static float G=80.0e9F; // shear modulus, (N/m^2)
static float rho=7860.F; // density, (kg/m^3)
//%
//% Dimensional data etc.
//% Motor
//% -----
static float J_mot=0.0030F; // drive motor inertia, (kg m^2)
static float J_ms=0.0000075F; // drive motor shaft inertia, (kg m^2)
static float T_mot_max=42.F; // maximum motor torque, (N m)
static float n_mot_max=4700.F; // maximum rated motor speed, (rpm)
static float i_mot_max=41.0F; // peak motor current, (A)
//% Drive coupling
//% --------------
static float J_dr1=194.2e-6F; // driving pulley,
coupling half etc. inertia, (kg m^2)
static float m_dr2=0.310F; // driven pulley, coupling half etc. mass, (kg)
static float J_dr2=194.2e-6F; // driven pulley,
coupling half etc. rotational inertia, (kg m^2)
static float Jt_dr2=143.8e-6F; // driven pulley,
coupling half etc. transverse inertia, (kg m^2)
static long double u=1.L; // drive ratio
//% Ballscrew
//% ---------
static float d_bsO=37.5e-3F; // outer diameter of ballscrew, (m)
static float d_bsI=10.0e-3F; // inner diameter of ballscrew, (m)
static float dp_bs=42.0e-3F; // pitch diameter of ballscrew, (m)
static float l_bs1=0.109F; // length of ballscrew pulley to bearing, (m)
static float l_bs2=1.183F; // length of ballscrew between bearings, (m)
static float l_bs3=0.052F; // length of ballscrew between bearing to end, (m)
static signed int Ns=1; // number of starts of ballscrew grooves
static float pitch=16.0e-3F; // ballscrew pitch, (m)
static signed int SignB=+1; // hand of helix, -1 = left hand screw
// +1 = right hand screw
static float mu_brg=0.01F; // nominal coefficient of friction of bearings
static float d_trace=0.045F; // diameter of bearing thrust race, (m)
//% Nut
//% ---
static float mu_scr=0.019F; // nominal coefficient of friction of screw nut
static float m_tab=352.F; // mass of saddle/table, (kg)
static float Jy_tab=0.546F; // inertia of saddle/table about "y" axis, (kg m^2)
static float Jz_tab=120.F; // inertia of saddle/table about "z" axis, (kg m^2)
static float z_tab=125.e-3F; // height of saddle/table above ballscrew, (m)
static float z_slid=75.e-3F; // height of saddle/table above slideway, (m)
static float mu_tab=0.0341F; // coefficient of friction between saddle and
slideways
static double Absnf=1.44; // constant term in "Mode 0" ballscrew friction
model, (N m)
static double Bbsnf=0.; // speed-dependent term in "Mode 0" ballscrew
friction model, (N m sec/rad) //%
[243]
//% Monitoring ring
//% ---------------
static float m_Mring=1.029F; // mass of monitoring ring, (kg)
static float Jtor_Mring=0.001289F; // torsional inertia of monitoring ring,
(kg m^2)
static float Jtil_Mring=0.000701F; // tilt inertia of monitoring ring, (kg m^2)
static float rOoB=40.e-3F; // radius of out-of-balance weight, (m)
//%
//% Stiffness data
static float k_ms=5466.F; // torsional stiffness of motor shaft, (N m/rad)
static float k_dr=10100.F; // torsional stiffness of drive referred to driving
shaft, (N m/rad)
static float k_ax_1=850.e6F; // axial stiffness of bearings, (N/m)
static float k_ax_2=850.e6F;
static float ky_rad_1=1275.e6F; // radial stiffness of bearings
- "y" direction, (N/m)
static float ky_rad_2=1275.e6F;
static float kz_rad_1=1275.e6F; // radial stiffness of bearings
- "z" direction, (N/m)
static float kz_rad_2=1275.e6F;
static float ky_tilt_1=160.e3F; // tilt stiffness of bearings
- "Oy" direction, (N m/rad)
static float ky_tilt_2=160.e3F;
static float kz_tilt_1=160.e3F; // tilt stiffness of bearings
- "Oz" direction, (N m/rad)
static float kz_tilt_2=160.e3F;
static float k_ax_nut=1.2e9F; // axial stiffness of nut, (N/m)
static float ky_nut=1.2e9F; // radial stiffness of nut - "y" direction, (N/m)
static float kz_nut=1.2e9F; // radial stiffness of nut - "z" direction, (N/m)
static float kOy_nut=0.7e5F; // tilt stiffness of nut
- "Oy" direction, (N m/rad)
static float kOz_nut=0.7e5F; // tilt stiffness of nut
- "Oz" direction, (N m/rad)
static float ky_slide=1.e9F; // stiffness of slides supporting nut
- "y" direction, (N/m)
static float kz_slide=1.e9F; // stiffness of slides supporting nut
- "z" direction, (N/m)
static float kOy_slide=10.4e6F; // stiffness of slides supporting nut
- "Oy" direction, (N m/rad)
static float kOz_slide=10.4e6F; // stiffness of slides supporting nut
- "Oz" direction, (N m/rad)
//%
//% Damping data
static float c_brg_m=0.656e-3F; // equivalent damping coefficient of bearings,
(N m sec/rad)
static float c_ms=0.01F; // torsional damping coefficient of motor shaft,
(N m sec/rad)
static float c_dr=0.797F; // torsional damping coefficient of drive
referred to driving shaft, (N m sec/rad)
static float c_brg_1=0.668e-3F; // equivalent damping coefficient of bearings,
(N m sec/rad)
static float c_brg_2=0.668e-3F;
static float drb=0.0005F; // damping ratio - bearings
static float drs=0.00002F; // damping ratio - shaft
static float drn=0.0005F; // damping ratio - nut
static float drsl=0.0005F; // damping ratio - slide
// Damping reference -
http://www.mom.gov.sg/MOM/OHD/Others/N&VGUIDELINES04(chap6).pdf. p84 - damping
ratio for spring steel = 0.005
//%
[244]
//% Controller constants
static double K_v=4.*1000./60.; // position controller constant = 4 (m/min)/mm,
(1/sec)
static double K_k1=1./double(pitch); // constant, (1/m)
static double K_vff=K_k1; // gain - velocity feed forward, (1/m)
static double K_vel; // constant =1./(2.*pi), (rev/rad)
static double K_aff=0.039; // gain - acceleration feed forward, (A sec^2/rev)
static double K_p=26.; // proportional gain - velocity control,
(A sec/rev)
static double K_i=6300.; // integral gain - velocity control, (A/rev)
static double LA=0.0062; // motor armature inductance, (H)
static double RA=0.68; // motor armature resistance, (ohm)
static double K_cp=50.; // proportional gain - current control, (V/A)
static double lamda=0.7639; // flux, (V sec/rad)
static signed int N_poles=4; // number of pairs of motor poles
static double Kt=1.28F; // motor torque time constant, (N m/A)
//%
//% Input variables
signed int S=25; // number of elements in ballscrew
signed int N=0; // number of elements in ballscrew nut, (0 = 1 node)
signed int B1=1; // node number at Bearing 1, (node number of first node in
ballscrew = 0)
signed int B2=24; // node number at Bearing 2
double xs=1073.e-3F; // "x" coordinate of start point, (m)
double xf=xs-480.e-3F; // "x" coordinate of end of deceleration, (m)
double v_max=40./60.; // maximum nut velocity, (m/sec)
double t1_=0.; // time of start of acceleration, (sec)
double tacc=1./9.; // acceleration time, (sec)
double tdec=1./9.; // deceleration time, (sec)
float blash=0.F; // backlash, (m)
float PT=0.e-6F; // pre-tension, (m/m)
float xMR1=l_bs1+133.e-3F; // x coordinate of monitoring ring 1
float xMR2=l_bs1+276.e-3F; // x coordinate of monitoring ring 2
mOoB1=0.F; // mass of out-of-balance weight 1, (kg)
phOoB1=0.F; // phase of out-of-balance weight 1, (deg)
mOoB2=124.e-3F; // mass of out-of-balance weight 2, (kg)
phOoB2=0.F; // phase of out-of-balance weight 2, (deg)
float dt_in=50.e-6F; // input time step, (sec)
plst=3.0e-3; // controller position loop up-date time, (sec)
vlst=0.6e-3; // controller velocity loop up-date time, (sec)
ilst=0.2e-3; // controller current loop up-date time, (sec)
// "Mode 0" bearing friction model
// constant term speed-dependent
Abrg[0]=0.5453; Bbrg[0]=0.001208; // motor bearing
Abrg[1]=0.5; Bbrg[1]=0.; // ballscrew bearing 1
Abrg[2]=0.4; Bbrg[2]=0.; // ballscrew bearing 2
// (N m) (N m sec/rad)
[245]
Appendix 7.1 Water cooling the ballscrew
Consider a ballscrew of the size used on the Linear Guide rig. Let it be furnished with four
cooling passages of 5 mm each, arranged so that the cooling water (chilled coolant) makes four
passes of the ballscrew before draining into the sump of the machine. Applying equations (7.23)
and (7.30) to a coolant flow supplied at 10 C against a ballscrew running at 20C gives the
estimated cooling performance for different rates of flow as shown in Figure A7.1:-
300
250
Heat removal rate, (W)
200
150 dH/dt
100
50
0
0 0.2 0.4 0.6 0.8
Coolant flow , (litre/min)
Figure A7.1 Heat removal rate v. coolant flow for a water cooled ballscrew
Fixing the flow rate at 0.5 l/min and 1 l/min, gives the estimated performance with varying
temperature as shown in Figure A7.2:-
350
300
Heat removal rate, (W)
250
200 dH/dt 0.5
150 dH/dt 1
100
50
0
10 12 14
Coolant flow , (litre/min)
[246]
Figure A7.2 Heat removal rate v. coolant temperature a water cooled ballscrew
[247]
Appendix 7.2 Matlab model cool2.m
function[x,T,RH]=cool2(T_in,p_res,mw,N)
%
% Output - x = proportion of mixture for plots, [%]
% T = temperature after evaporation, [deg C]
% RH = relative humidity after evaporation
%
% Input - T_in = input temperature, [deg C]
% p_res = pressure of compressed air reservoir, [bar]
% mw = mass of water, [kg] (for 1 m^3 at 1 bar at T_in)
% N = number of increments
%
Cp_air=1.00; % specific heat of air at constant pressure, [kJ/kg K]
rho_air_0=1.293; % density of air at 0 deg C, [kg/m^3]
% For 1 m^3 of air saturated at 'T_in' deg C and 'p_res' bar pressure then expanded
% isothermally to 1 bar:-
RH(1)=1./p_res; % relative humidity
pv=interp1(T2,pv_dat,T_in); % vapour pressure at T_in deg C, [bar]
m_air=(1.-RH(1)*pv)*rho_air_0*(273.15/(T_in+273.15)); % mass of air, [kg]
vg=interp1(T2,vg_dat,T_in); % specific volume at T_in deg C, [m^3/kg]
m_vap=RH/vg; % mass of water vapour, [kg]
[247]
Appendix 7.3 The ballscrew thermal model
function [time,z1,z2,z3,z4]=bsmodel(heatTime,coolTime,TI,xx)
% Output variables
% time(,) time, ['nt' 1], (sec?)
% z1(,) screw element temperature, ['nt' nss], (degC)
% z2(,) temperature of nut and bearings, ['nt' 3], (degC)
% z3(,) total error? less its starting value, ['nt' 2], (micron)
% z4(,) column 1, difference in total error of bearings,
% column 2, difference in thermal error of bearings,
['nt' bhs], (W)
%
% Input variables
% heatTime time taken running ballscrew round a trapezoidal velocity
% load cycle, (min), (redefined later to a whole number of runs)
% coolTime time taken in cooling after loading, (min)
% TI time interval ?, (sec?)
% xx supress plots (1), plot (otherwise)
%
% Other variables
% Abf bearing mounting face area, (m^2)
% AbSection area of bearing transverse cross section, (m^2)
% AbSurface surface area of outer half bearing, (m^2)
% Ah() bearing housing surface area, [1 2], (m^2), rough (not used)
% Ahs() surface area of housing section, [1 2], (m^2)
% Ahsf() area of housing FE face, [1 2], (m^2)
% AnfSurface surface area of nut flange, (m^2)
% AnSection area of nut section, (m^2)
% AnSurface nut surface area, (m^2)
% AnhSection nut housing cross section area, (m^2)
% AnhSurface nut housing element surface area, (m^2)
% AnsbContact estimated surface contact between nut and screw via oil film,
(m^2?)
% AnutMount nut mounting flange area, (m^2)
% AsSection cross-sectional area of screw, (m^2)
% AsSurface outer surface area of screw FE, (m^2)
% AsVolume volume of screw FE, (m^3), (not used)
% AtblMount nut housing to table mounting surface contact area, (m^2)
% AtblSection area of table cross section, (m^2)
% AtblSurface surface area of table element, (m^2)
% A1 area of a surface 38 mm diameter and length of nut, (m^2)
% A2 area of a surface 44 mm diameter and length of nut, (m^2)
%
% Ballnum number of balls in nut, (not used)
% B1ss index of screw element under bearing 1, [1 2]
% B2ss index of screw element under bearing 2, [1 2]
% b for loop counter on bearing housings
% barh handle to waitbar
% bhs number of bearing housing elements
% brgArrange '0'=PT and axial, '1'=PT no axial, '2'=free-ended
[248]
% brgDis distance between bearings, (m)
%
% cd current directory as a string, MATLAB special function
% cSteel specific heat capacity of steel, (J/kg/K),
% (approx. from various sources)
%
% DensitySteel
% density of steel, (kg/m^3)
% Dist traverse distance, (m)
% DnInner nut inner diameter, (m)
% DnOuter nut outer diameter, (m)
% DnutFlange diameter of nut flange, (m)
% dv() 'average' velocity, d'y()'/d'x()', [? 1], (m/sec)
%
% E_err() error due to strain at 'y = 0.' and 'y = -460.',
[1 2], (micron)
% ErrPos1ss() front of position 1
% ErrPos2ss() front of position 2
% Esteel Young's modulus of steel, (kN/m^2)
% Exp_change change in thermal expansion of shaft, (micron?)
% ExpCoeff thermal expansion coefficient of shaft
(AISI 8620 not exactly known)
% ePaint surface painted white emissivity, (not used)
% eSteel steel emissivity
% expansion total expansion of shaft, (micron?)
% extra(,) column 1, difference in total error of bearings,
% column 2, difference in thermal error of bearings,
['nt' bhs], (W)
%
% F Feedrate (m/min) CHECK UNITS!
% F_change change in axial force in shaft, (kN)
% F_current current axial force in shaft, (kN)
% F_start axial force in shaft at start, (kN)
% f interchange factor for radiation, (not used)
% filename 'det-' ? which file ?
% froot current directory as a string
%
% Hbhs(,) heat flow - bearing housing elements, [2 bhs], (W)
% Hc free convective heat transfer coefficient, (W/m^2.K) (2-25)
% Hcf forced convection by screw rotation/axis traverse,
(25-250 W/m^2.K)
% Hnhs() heat flow - nut housing elements, [nhs], (W)
% Hss() heat flow - screw elements, [nss], (W)
% Htbl() heat flow - table elements, [nts], (W)
% hs for loop counter on housing elements
% h1 - h12 handles for graphs
%
% I friction torque ?, (Nm?)
% Ia friction torque ? due to ?, (Nm?)
% IDb bearing face inner diameter, (m)
% IRb bearing inner radius, (m)
% Im friction torque ? due to motor, (Nm?)
% Ims screw shaft moment of inertia, (kg m^2), (not used)
% i for loop counter on time
%
% j counter, but is it used for anything?
[249]
% K coefficient of conductivity of steel, (W/m.K)
(45 for nut) (250 from b3??)
% Kbrg() axial (?) stiffness of front and rear bearing assemblies,
[1 2], (kN/m?)
% KbrgJoint coeff. of conduction across bearing mounting joint, (W/m^2.K),
% good surface & pressure
% KbrgRace coeff. of conduction across balls between races, (W/K)
% KbrgShaft coeff. of conduction across bearing/shaft joint, (W/m^2.K),
interferance fit.
% KnhJoint coeff. of conduction across nut/nut housing joint, (W/m^2.K)
% KnutShaft coeff. of conduction nut to shaft based on
test 'b3nutc1' data, (W/m^2.K)
% KtblJoint coeff. of conduction across nut housing/table joint, (W/m^2.K)
% k time interval counter
%
% Lb bearing length, (m)
% Lhs() length of each housing FE (conduction calc.), [1 2], (m)
% Ln length of nut, (m)
% Lnc length of nut in contact with shaft, (m)
% Lnh length of nut housing, (m)
% Lnhs length of nut housing element, (m)
% LnutFlange length of nut flange, (m)
% Lprebrg1 length of screw shaft before bearing 1, (m)
% Ls total shaft length, (m)
% Lss length of screw element, (m)
% Ltbl length of table, (m)
% Ltbls length of table elements, (m)
%
% Mbi mass of bearing inner race, (kg)
% Mbo mass of bearing outer race, (kg)
% Mh() bearing housing mass, [1 2], (kg), (not used)
% Mhs() mass of housing FE, [1 2], (kg)
% Mn mass of nut, (kg)
% Mnhs mass of nut housing element, (kg)
% MnutFlange mass of nut flange, (kg)
% Mposs vector of targets corresponding to ??, [? ?], (?)
% Ms mass of shaft, (kg)
% Mss mass of screw FE, (kg)
% MTss !! is this variable defined ??
% Mtbl mass of table element, (kg)
% m counter (not used)
% meanRs mean radius of entire screw shaft, (m)
% motorc() something to do with calculating Im, [1 2]
% motorpars() - ditto - , [1 2]
%
% NumRuns number of runs in heating cycle
% n for loop counter on nut elements
% nargin number of arguments in input list, MATLAB special variable
% newtitle time in hours : minutes : seconds used when storing images
% nhs number of nut housing elements
% nss number of finite element screw elements
% nts number of table elements
% numss number of screw elements covered by nut
%
% ODb bearing outer diameter, (m)
% ORb bearing outer radius, (m)
[250]
% origPT pre-tension (microns/m). If zero, presume free-ended.
%
% Pnut nut position, (m)
% pi pi, MATLAB special variable
% pitch ballscrew pitch (m)
% plottype graphical display (1) or progress bar (otherwise)
% poss vector of targets corresponding to screw, [? ?], (?)
% ptc() something to do with calculating Ia, [1 2]
% ptpars() - ditto - , [1 2]
%
% Req_exp shaft expansion required (for what?), (micron?)
% Rs outer radius of screw shaft ?, (m)
% recrows row index for recorded data
% rectime time index for recording data
%
% SBC Stefan Boltzmann Constant, (W/m^2.K^4), (not used)
% StopDist distance from start for stopped nut position, (m)
% savename MATLAB string variable for image file
% ss for loop counter on screw elements
% startPos axis datum position from shaft start (flexible coupling), (m)
% startss screw element index at start of part covered by nut
% stop stop time at traverse limits, (sec)
% storeimages to store sequence at 'waittime' intervals (1), not (otherwise)
%
% T friction torque based on measurement data, (Nm)
% Tamb ambient temperature, (degC)
% Tbf() bearing friction torque, [1 2], (Nm)
% Tbf2() bearing friction torque including non-linear friction, [1 2],
(Nm)
% Tbrgi() bearing temperature - inner race, [1 2], (degC)
% Tbrgo() bearing temperature - outer race, [1 2], (degC)
% Tconstant motor torque constant, (Nm/amp)
% TestTime total time for test, (min)
% Th() bearing housing temperature, [1 2], (degC) (not used)
% Th_exp() thermal expansion at 'y = 0.' and 'y = -460.',
[1 2], (micron)
% Ths(,) bearing housing temperatures, [bhs 2], (degC)
% Tnhs() nut housing temperatures, [nhs], (degC)
% Tnf nut friction torque (measured), (Nm)
% Tnf2 nut friction torque including non-linear friction, (Nm)
% Tnut temperature of nut, (degC)
% TnutFlange temperature of nut flange, (degC)
% Tnuthousing temperature of nut housing, (degC)
% Tnutshaft temperature of shaft under nut, (degC)
% Total_err(,)total error?, ['nt' 2], (micron)
% Total_exp total expansion of shaft, (micron?)
% Tremain approx. torque of motor and linear guideways, (Nm)
% Tremain2 ? linear guideways at 5% viscous ?, (Nm), (not used)
% Trun time for one return load cycle, (sec)
% Tss() screw element temperature, [nss], (degC)
% Tssb average temperature of bearing housing, (degC)
% Ttbl() temperature of table, [nts], (degC)
% Ttrav time for uni-directional traverse, (sec)
% Tvf non-linear friction torque (needs sharing), (Nm?)
% t time index on trapezoidal position graph
% tblnuts centre element of table over nut
% t0(6) clock time, [6], (yr, mnth, day, hr, min, sec), (not used)
[251]
%
% Vh() bearing housing volume, [1 2], (m^3)
% Vhs() volume of bearing housing FE, [bhs? 2], (m^3)
% Vn volume of nut, (m^3)
% Vnhs volume of nut housing element, (m^3)
% Vtbl volume of table element, (m^3)
%
% W current rotational speed, (rad/sec)
% waittime pause between recorded data, (sec)
% windage loss coefficient for cooling due to windage,
% 20m/min = 130rad/sec = max windage, (4*Hcf), (W/m^2.K)
%
% x() array of times at 'TI' intervals up to 'Trun', [? 1], (sec)
% x1 position of bearing 1, (m)
% x1_start start position of bearing 1, (m)
% x2 position of bearing 2, (m). Note negative direction
% x2_start start position of bearing 2, (m)
%
% y() array of positions in a load cycle corresponding to 'x()', [?
1], (m)
%
% z serial date number used when storing images
%
% Subroutines used
% MATLAB - abs ceil cd clock close datenum datestr drawnow eq exp figure floor
% gca gcf gradient hold isempty legend mean mktargs not num2str pause
% plot print round set size sprintf sum title trapmf waitbar warning
% xlabel ylabel
% UoH -
%
if nargin < 4; xx=1; end;
% Simulation run details
plottype=1; % graphical display (1) or progress bar
storeimages=0; % set to '1' to store sequence at 'waittime' intervals.
waittime=0.4; % pause (sec) between recorded data
filename='det-';
froot=cd;
% General constants
cSteel=450; % specific heat capacity of steel (J/kg/K),
% (approx. from various sources)
DensitySteel=7860; % kg/m^3
Esteel=210000000; % Young's modulus of steel (kN/m^2)
SBC=5.67E-8; % Stefan Boltzmann constant (W/m^2.K^4)
pitch=0.016; % m
Tamb=20; % ambient temperature (degC)
Tconstant=1.27; % motor torque constant (Nm/Amp)
[252]
KbrgShaft=2000; % coeff. of conduction across bearing/shaft joint (W/m^2.K),
% interferance fit
KbrgRace=0.2; % coeff. of conduction across balls between races (W/K)
KnutShaft=66; % 66 based on test 'b3nutc1' data (W/m^2.K)
AnsbContact=0.0027; % estimated surface contact between nut
% and screw via oil film
% Bearing constants
ODb=0.08; % bearing outer diameter (m)
IDb=0.054; % bearing face inner diameter (m)
ORb=ODb/2; % bearing outer radius (m)
IRb=0.015; % bearing inner radius (m)
Lb=0.028; % bearing length (m)
AbSection=(pi*ORb^2)-(pi*IRb^2); % m^2
AbSurface=(2*pi*ORb*(Lb/2))+AbSection; % m^2
Abf=(pi/4)*(ODb^2-IDb^2); % bearing mounting face area (m^2)
Mbo=0.6; % mass of bearing outer race (kg)
Mbi=0.18; % mass of bearing inner race (kg)
Tbf=[0.5 0.4]; % bearing friction torque (Nm)
%Tbf=[0 0.04]; % to give symmetric heating
Kbrg=[0.54 0.47]; % stiffness of front and rear bearing assemblies
Ah=[0.19 0.08]; % bearing housing surface area (m^2) rough
Vh=[10E-4 4.95E-4]; % bearing housing volume (m^3)
Mh=Vh*DensitySteel; % bearing housing mass (kg)
Tbrgi=[Tamb Tamb]; % bearing temperature (degC)
Tbrgo=[Tamb Tamb];
Th=[Tamb Tamb]; % bearing housing temperature (degC)
[253]
% Identify screw elements under bearings
B1ss=round(Lprebrg1/Lss):round((Lprebrg1+Lb)/Lss);
B2ss=round((Lprebrg1+brgDis)/Lss):round((Lprebrg1+brgDis+Lb)/Lss);
% Ballnut constants
Ballnum=118; % number of balls in nut
Lnc=0.08; % length of nut in contact with shaft (m)
LnutFlange=0.022; % length of nut flange (m)
DnutFlange=0.11; % diameter of nut flange (m)
AnfSurface=pi*DnutFlange*LnutFlange; % surface area of nut flange (m^2)
MnutFlange=((pi*DnutFlange^2)/4)*LnutFlange*DensitySteel;
% mass of nut flange (kg)
Ln=0.146-LnutFlange; % length of nut (m)
Tnf=1.2; % nut friction torque (Nm) (measured)
DnOuter=0.082; % nut outer diameter (m)
DnInner=0.050; % nut inner diameter (m)
AnSection=(pi/4)*(DnOuter^2-DnInner^2); % area of nut section (m^2)
AnSurface=(pi*DnOuter*Ln)+AnSection; % nut surface area (m^2)
Vn=AnSection*Ln; % volume of nut (m^3)
Mn=Vn*DensitySteel; % mass of nut (kg)
Tnut=Tamb;
TnutFlange=Tamb;
A1=pi*0.038*Ln; A2=pi*0.044*Ln;
f=(eSteel^2)/(eSteel+((A1/A2)*(eSteel-eSteel^2)));
% interchange factor for radiation
% Table constants
nts=5; % number of table elements
tblnuts=ceil(nts/2); % centre element of table over nut
Ltbl=1.755; % length of table
Ltbls=Ltbl/nts; % length of table elements (m)
AtblMount=0.0161; % nut housing to table mounting surface contact area (m^2)
AtblSection=0.026; % area of table cross section (m^2)
AtblSurface=0.334; % surface area of table section (m^2)
Vtbl=AtblSection*Ltbls; % volume of table element (m^3)
Mtbl=Vtbl*DensitySteel; % mass of table element (kg)
Ttbl(1,1:nts)=Tamb;
%---------------------------------------------------
[254]
% Set run parameters
coolTime=coolTime*60; % sec
Dist=0.46; % traverse distance (m)
StopDist=0.46; % distance from start for stopped nut position
startPos=1.079; % axis datum position (m) from shaft start (flexible
coupling)
%startPos=0.931; % gives 460 traverse symmetric about brg centre
%startPos=1.17;
F=20; % feedrate (m/min)
stop=2; % stop time at traverse limits (sec)
origPT=14; % pre-tension (microns/m). If zero, presume free-ended
brgArrange=0; % '0'=PT and axial, '1'=PT no axial, '2'=free-ended
F_start=(((origPT*brgDis)/1000000*Esteel*AsSection)/brgDis);
F_current=F_start;
expansion=0;
x2_start=(F_start/2)/-Kbrg(2) % negative direction
x1_start=(F_start/2)/Kbrg(1);
E_err(1)=((((ErrPos1ss(2)-1)-
ErrPos1ss(1))*Lss)*F_start*1000000)/(AsSection*Esteel);
E_err(2)=((((ErrPos2ss(2)-1)-
ErrPos2ss(1))*Lss)*F_start*1000000)/(AsSection*Esteel);
Total_err(1,1)=E_err(1)+x1_start;
Total_err(1,2)=E_err(2)+x1_start;
Req_exp=x1_start+abs(x2_start)+((F_start*brgDis*1000000)/(AsSection*Esteel))
%-------------------------------------------------------------
% Ballscrew 2, no pre-tension
% noptpars=[0.1368E-3 -0.0079E-3]; noptc=[-1.1632 2.1778];
% Motor only
motorpars=[0.300816 -0.009472]; motorc=[-0.325107 0.464454];
%-------------------------------------------------------------
[255]
dv=gradient(y,x);
% plot(x,[y,dv]); pause
% h = plot(460,1,'k*','EraseMode','xor');
NumRuns=floor((heatTime*60)/Trun);
heatTime=NumRuns*Trun;
TestTime=heatTime+coolTime;
% figure resizing
set(gca,'FontSize',7);set(gcf,'Position',[324 298 300 230]);
t0 = clock;
j=1;
t=1; % time index on trapezoidal position graph
rectime=0; % time index for recording data
k=0;
recrows=1; % row index for recorded data
[256]
m=0;
for i=0:TI:TestTime
% Calculate nut position
if t>size(y,1) t=1; end;
if xx~=1 & plottype==1 & k>=60 & storeimages~=1;
legend(h1,num2str(floor(i/60))); k=0;
else k=k+TI; end;
if i<=heatTime
Pnut=startPos-y(t); % nut position (m)
W=(abs(dv(t))/pitch)*2*pi; % current rotational speed (rad/s)
else
Pnut=startPos-StopDist; W=0;
end
windage=Hcf*4*(W/130); % 20m/min = 130rad/s = max windage (4*Hcf)
F=(W/(2*pi))*60*16; % convert to feedrate (mm/min) for equation parameters
Ia=ptc(1)*exp(-ptpars(1)*(F/1000)) + ptc(2)*exp(-ptpars(2)*(F/1000));
Im=motorc(1)*exp(-motorpars(1)*(F/1000)) + motorc(2)*exp(-
motorpars(2)*(F/1000));
I=Ia-Im; % subtract motor friction
T=I*Tconstant; % friction torque based on measurement data (Nm)
Tvf=T-Tnf-Tbf(1)-Tbf(2)-Tremain;
% non-linear friction torque (needs sharing)
if Tvf < 0; Tvf=0; end
Tnf2=Tnf+(Tvf*0.8); % add non-linear friction.
% 75% in nut due to ball behaviour
Tbf2(1)=Tbf(1)+(Tvf*0.1); % ball rack system reduces non-linear ball slip
friction
Tbf2(2)=Tbf(2)+(Tvf*0.05);
Tremain2=Tremain+(Tvf*0.05); % linear guideways at 5% viscous
%set(h,'xdata',y(t));
%drawnow;
[257]
if b==1; Tssb=mean(Tss(B1ss)); else Tssb=mean(Tss(B2ss)); end;
startss=round((Pnut-(Lnc/2))/Lss);
numss=round(Lnc/Lss);
Tnutshaft=sum(Tss(startss:(startss+numss-1)))/numss; % temperature of shaft
under nut
[258]
Htbl(n) = (((K*AtblSection)/Ltbls)*(Ttbl(n+1)-Ttbl(n))) -...
((Hc+(windage/10))*(AtblSurface+AtblSection)*(Ttbl(n)-Tamb));
elseif n == nts
Htbl(n) = (((K*AtblSection)/Ltbls)*(Ttbl(n-1)-Ttbl(n))) -...
((Hc+(windage/10))*(AtblSurface+AtblSection)*(Ttbl(n)-Tamb));
elseif n == tblnuts
Htbl(n) = ((Tnuthousing-Ttbl(n))*KtblJoint*AtblMount) +...
(((K*AtblSection)/Ltbls)*((Ttbl(n-1)-Ttbl(n))-(Ttbl(n)-
Ttbl(n+1)))) -...
((Hc+(windage/10))*AtblSurface*(Ttbl(n)-Tamb));
else
Htbl(n) = (((K*AtblSection)/Ltbls)*((Ttbl(n-1)-Ttbl(n))-(Ttbl(n)-
Ttbl(n+1)))) -...
((Hc+(windage/10))*AtblSurface*(Ttbl(n)-Tamb));
end
end
Ttbl(:) = Ttbl(:) + ((TI * Htbl(:)) / (Mtbl*cSteel));
% Update graph
if xx~=1 & plottype==1
set(h1,'ydata',Tss);
% Nut
set(h2,'xdata',[Pnut-0.069;Pnut-0.069]); set(h2,'ydata',[Tamb;Tnut]);
set(h3,'xdata',[Pnut+0.077;Pnut+0.077]); set(h3,'ydata',[Tamb;Tnut]);
[259]
set(h4,'xdata',[Pnut-0.069;Pnut+0.077]); set(h4,'ydata',[Tnut;Tnut]);
% Front bearing
set(h5,'ydata',[20;Tbrgo(1)]); set(h6,'ydata',[20;Tbrgo(1)]);
set(h7,'ydata',[Tbrgo(1);Tbrgo(1)]);
set(h11,'ydata',Tbrgi(1));
% Rear bearing
set(h8,'ydata',[20;Tbrgo(2)]); set(h9,'ydata',[20;Tbrgo(2)]);
set(h10,'ydata',[Tbrgo(2);Tbrgo(2)]);
set(h12,'ydata',Tbrgi(2));
drawnow
elseif xx==1
waitbar((i/TI)/(TestTime/TI),barh);
end
t=t+1;
warning off
if (rectime>(waittime-TI) & rectime<(waittime+TI)) | i==0
z1(recrows,:)=Tss;
z2(recrows,:)=[Tnut Tbrgo(1) Tbrgo(2)];
Total_exp=((sum(Tss(B1ss:B2ss)-Tamb))*ExpCoeff*Lss);
Exp_change=Total_exp-expansion;
expansion=Total_exp;
F_change=Exp_change
/(((1/(2*Kbrg(1)))+(1/(Kbrg(2)*2)))+((brgDis*1000000)/(AsSection*Esteel)));
F_current=F_current-F_change;
if brgArrange==2 | (brgArrange==1 & (Req_exp-Total_exp) <= 0);
Kbrg=[0.54 0];
Tbf=[0.4 0.2]; % rear bearing friction significantly reduced
else
Kbrg=[0.54 0.47];
Tbf=[0.5 0.4];
end
% Position y = -460.
Th_exp(2)=(sum(Tss(ErrPos2ss(1):ErrPos2ss(2)-1)-Tamb))*ExpCoeff*Lss;
E_err(2)=((((ErrPos2ss(2)-1)-
ErrPos2ss(1))*Lss)*F_current*1000000)/(AsSection*Esteel);
Total_err(recrows,1)=Th_exp(1)+E_err(1)+x1;
Total_err(recrows,2)=Th_exp(2)+E_err(2)+x1;
extra(recrows,1)=Total_err(recrows,1)-Total_err(recrows,2);
extra(recrows,2)=(sum(Tss(ErrPos2ss(2)-1:ErrPos1ss(2)-1)-Tamb))
*ExpCoeff*Lss;
% save image
if storeimages==1
z=datenum(2001,12,19,0,0,i);
newtitle=datestr(z,13);
[260]
title(newtitle);
savename=sprintf('%s\\movie\\%s%.3d.jpg',froot,filename,recrows);
print('-djpeg',savename);
end
time(recrows,1)=i;
rectime=0;
recrows=recrows+1;
else
rectime=rectime+TI;
end
warning on
j=j+1;
end
[261]
Appendix 7.4 Mini TK model BS_COOL1.TK
Variable sheet
Unit sheet
calculation display
# 1 m mm 1000
# 2 m^3/sec l/min 60000
# 3 K deg C -273
# 4 J/(kg K) kJ/(kg K) 0.001
Rule sheet
# 1 pi=4.*atan(1.)
# 2 A=4.*k*Nu/(Cp*rho*d^2*vw)
# 3 Tw_ave=(Twi-Tb)/(A*l)*(1.-exp(-A*l))+Tb
# 4 H=pi*k*Nu*l
# 5 dq_dt=H*(Tw_ave-Tb)
# 6 dv_dt=pi/4*d^2*vw
# 7 Re=vw*d/nu
# 8 nu=nu20+(nu40-nu0)/40.*(Tw_ave-293.)
[262]
Appendix 8.1 - Static deflection theory zero pre-tension
The ballscrew is considered as an elastic beam supported at each end by a bearing whose
radial stiffness is Ki and whose tilt stiffness is i being one at the drive end of the screw and
two at the non-drive end. The pre-tension T in the ballscrew is considered to be zero.
A8.1.1 One element shaft
Consider a beam of length L along the X axis.
Bending under moment M gives[129]:-
d2y M
= (8.A1.1)
dx 2 EI
where EI is the flexural rigidity of the beam.
Considering the moment balance of an element of length x under a shear force Q gives:-
M = Q. x + M + M = 0 (8.A1.2)
whence in the limit
dM
= Q (8.A1.3)
dx
and so
d3y 1 dM Q
3
= = (8.A1.4)
dx EI dx EI
differentiating
d4y 1 dQ
4
= (8.A1.5)
dx EI dx
If the beam has a mass per unit length and is subject to a gravitational field of g the forces
on the element give
Q + g . x = Q + Q (8.A1.6)
whence in the limit
dQ
=g (8.A1.7)
dx
The deflected shape of the beam is therefore subject to the differential equation
d4y 1
4
= g (8.A1.8)
dx EI
The general solution is:-
g A1 3 A2 2
y= x4 + x + x + A3 x + A4 (8.A1.9)
24 EI 6 2
leading to
[263]
dy g 3 A1 2
= x + x + A2 x + A3 (8.A1.10a)
dx 6 EI 2
d2y g 2
2
= x + A1 x + A2 (8.A1.10b)
dx 2 EI
d3y g
3
= x + A1 (8.A1.10c)
dx EI
d4y g
4
= (8.A1.10d)
dx EI
where Ai are constants determined by the boundary conditions.
Equation (8.A1.1) and equation (8.A1.10b) yield:-
d2y
M = EI
dx 2 (8.A1.11)
g 2
= x + EI A1 x + EI A2
2
and equation (8.A1.3) and equation (8.A1.10c) yield:-
dM
Q=
dx (8.A1.12)
= g x EI A1
and
dy
1 (0) = M 0 + M (0)
dx (8.A1.14a)
1 A3 = M 0 + EI A2
and so
EI A2 + 1 A3 = M 0 (8.A1.14b)
At end x = L ,
Q ( L ) + K 2 y ( L) = Q L
g A1 3 A2 2 (8.A1.15a)
g L EI A1 + K 2 ( L4 + L + L + A3 L + A4 ) = Q L
24 EI 6 2
[264]
and so
L3 L2 g 4
( EI + K 2 ) A1 + K 2 A2 + K 2 L A3 + K 2 A4 = Q L g L + K 2 L (8.A1.15b)
6 2 24 EI
and
dy
M ( L) + 2 ( L) = M L
dx
(8.A1.16a)
g gA
L + EI A1 L + EI A2 + 2 (
2
L + 1 L2 + A2 L + A3 ) = M L
3
2 6 EI 2
and so
L2 g 2 g 3
( EI L + 2 ) A1 + ( EI + 2 L) A2 + 2 A3 = M L + L + 2 L (8.A1.16b)
2 2 6 EI
EI 0 0 K1
0 EI 1 0
0 (8.A1.18).
L3 L2
EI + K 2 K2 K2 L K2
6 2
L2
EI L + 2 EI + 2 L 2 0
2
A8.1.2 Four element shaft
In practice the ballscrew carries the nut and two monitoring rings which, to an
approximation at least, can be considered as giving rise to point loads. Also the portions of
the screw which lie outside of the bearing span, for example half of the flexible coupling
connecting the drive motor to the screw at the drive end, can be considered to be point loads
acting at the bearing centres. Thus the ballscrew is considered as a beam in four sections,
with loads (Q0, M0) at the non-drive end, loads (Qi, Mi) at intermediate points with axial
coordinates Xi and loads (QL, ML) at the drive end.
[265]
In section 1, 0 x < X 1 and
g A1 3 A2 2
y= x4 + x + x + A3 x + A4 (8.A1.9)
24 EI 6 2
leading to
dy g 3 A1 2
= x + x + A2 x + A3 (8.A1.10a)
dx 6 EI 2
d2y g 2
= x + A1 x + A2 (8.A1.10b)
dx 2 2 EI
d3y g
3
= x + A1 (8.A1.10c)
dx EI
and
g
M = x 2 + EI A1 x + EI A2 (8.A1.11)
2
Q = g x EI A1 (8.A1.12)
In section 2, X 1 x < X 2 and
g A5 3 A6 2
y= x4 + x + x + A7 x + A8 (8.A1.19)
24 EI 6 2
leading to
dy g 3 A5 2
= x + x + A6 x + A7 (8.A1.20a)
dx 6 EI 2
d2y g 2
2
= x + A5 x + A6 (8.A1.20b)
dx 2 EI
d3y g
3
= x + A5 (8.A1.20c)
dx EI
and
g
M = x 2 + EI A5 x + EI A6 (8.A1.21)
2
Q = g x EI A 5 (8.A1.22)
g A9 3 A10 2
y= x4 + x + x + A11 x + A12 (8.A1.23)
24 EI 6 2
leading to
dy g 3 A9 2
= x + x + A10 x + A11 (8.A1.24a)
dx 6 EI 2
[266]
d2y g 2
2
= x + A9 x + A10 (8.A1.24b)
dx 2 EI
d3y g
= x + A9 (8.A1.24c)
dx 3 EI
and
g
M = x 2 + EI A9 x + EI A10 (8.A1.25)
2
Q = g x EI A9 (8.A1.26)
In section 4, X 3 x L and
g A13 3 A14 2
y= x4 + x + x + A15 x + A16 (8.A1.27)
24 EI 6 2
leading to
dy g 3 A13 2
= x + x + A14 x + A15 (8.A1.28a)
dx 6 EI 2
d2y g 2
2
= x + A13 x + A14 (8.A1.28b)
dx 2 EI
d3y g
3
= x + A13 (8.A1.28c)
dx EI
and
g
M = x 2 + EI A13 x + EI A14 (8.A1.29)
2
Q = g x EI A13 (8.A1.30)
Considering the support given by the bearings, at the drive end x = 0 ,
K1 y (0) = Q0 + Q(0)
(8.A1.13a)
K1 A4 = Q0 EI A1
and so
EI A1 + K1 A4 = Q0 (8.A1.13b)
and
dy
1 (0) = M 0 + M (0)
dx (8.A1.14a)
1 A3 = M 0 + EI A2
and so
EI A2 + 1 A3 = M 0 (8.A1.14b)
[267]
At x = X 1 ,
Q( X 1 ) + Q( X 1 ) + = Q1
(8.A1.31a)
( g X 1 EI A1 ) + g X 1 EI A5 = Q1
and so
EI A1 EI A5 = Q1 (8.A1.31b)
and
M ( X1) + M ( X1)+ = M1
g g (8.A1.32a)
( X 12 + EI A1 X 1 + EI A2 ) X 12 + EI A5 X 1 + EI A6 = M 1
2 2
and so
EI X 1 A1 EI A2 + EI X 1 A5 + EI A6 = M 1 (8.A1.32b)
Continuity gives
g A1 3 A2 2
y( X 1 ) = X 14 +
X1 + X 1 + A3 X 1 + A4
24 EI 6 2
(8.A1.33a)
g 4 A5 3 A6 2
= X1 + X1 + X 1 + A7 X 1 + A8
24 EI 6 2
and so
X 13 X 12 X 13 X 12
A1 + A2 + X 1 A3 + A4 A5 A6 X 1 A7 + A8 = 0 (8.A1.33b)
6 2 6 2
and
dy g 3 A1 2
( X1) = X1 + X 1 + A2 X 1 + A3
dx 6 EI 2
(8.A1.34a)
g 3 A5 2
= X1 + X 1 + A6 X 1 + A7
6 EI 2
and so
X 12 X2
A1 + X 1 A2 + A3 1 A5 + X 1 A6 + A7 = 0 (8.A1.34b)
2 2
At x = X 2 ,
Q ( X 2 ) + Q ( X 2 ) + = Q2
(8.A1.35a)
( g X 2 EI A5 ) + g X 2 EI A9 = Q2
and so
EI A5 EI A9 = Q2 (8.A1.35b)
and
[268]
M ( X 2 ) + M ( X 2 )+ = M 2
g g (8.A1.36a)
( X 22 + EI A5 X 2 + EI A6 ) X 22 + EI A9 X 2 + EI A10 = M 2
2 2
and so
EI X 2 A5 EI A6 + EI X 2 A9 + EI A10 = M 1 (8.A1.36b)
Continuity gives
g A5 3 A6 2
y( X 2 ) = X 24 +
X2 + X 2 + A7 X 1 + A8
24 EI 6 2
(8.A1.37a)
g 4 A9 3 A10 2
= X2 + X2 + X 2 + A11 X 2 + A12
24 EI 6 2
and so
X 23 X2 X3 X2
A5 + 2 A6 + X 2 A7 + A8 2 A9 2 A10 X 2 A11 + A12 = 0 (8.A1.37b)
6 2 6 2
and
dy g 3 A5 2
(X 2 ) = X2 + X 2 + A6 X 2 + A7
dx 6 EI 2
(8.A1.38a)
g 3 A9 2
= X2 + X 2 + A10 X 2 + A11
6 EI 2
and so
X 22 X 22
A5 + X 2 A6 + A7 A9 + X 2 A10 + A11 = 0 (8.A1.38b)
2 2
At x = X 3 ,
Q( X 3 ) + Q( X 3 ) + = Q3
(8.A1.39a)
( g X 3 EI A9 ) + g X 3 EI A13 = Q1
and so
EI A9 EI A13 = Q3 (8.A1.39b)
and
M ( X 3 ) + M ( X 3 )+ = M 3
g g (8.A1.40a)
( X 32 + EI A9 X 3 + EI A10 ) X 32 + EI A13 X 3 + EI A14 = M 3
2 2
and so
EI X 3 A9 EI A10 + EI X 3 A13 + EI A14 = M 3 (8.A1.40b)
Continuity gives
[269]
g A9 3 A10 2
y( X 3 ) = X 34 +X3 + X 3 + A11 X 3 + A12
24 EI 6 2
(8.A1.41a)
g 4 A13 3 A14 2
= X3 + X3 + X 3 + A15 X 3 + A16
24 EI 6 2
and so
X 33 X 32 X 33 X 32
A9 + A10 + X 3 A11 + A12 A13 A14 X 3 A15 + A16 = 0 (8.A1.41b)
6 2 6 2
and
dy g 3 A9 2
(X 3) = X3 + X 3 + A10 X 3 + A11
dx 6 EI 2
(8.A1.42a)
g 3 A13 2
= X3 + X 3 + A14 X 1 + A15
6 EI 2
and so
X 32 X2
A9 + X 3 A10 + A11 3 A13 + X 3 A14 + A15 = 0 (8.A1.42b)
2 2
Considering the support given by the bearings, at the non-drive end x = L ,
Q( L) + K 2 y ( L) = Q L
g A13 3 A14 2 (8.A1.43a)
g L EI A13 + K 2 ( L4 + L + L + A15 L + A16 ) = Q L
24 EI 6 2
and so
L3 L2 g 4
( EI + ) A13 + K 2 A14 + K 2 L A15 + K 2 A16 = QL g L + K 2 L (8.A1.43b)
6 2 24 EI
and
dy
M ( L) + 2 ( L) = M L
dx
(8.A1.44a)
g A g
L + EI A13 L + EI A14 + 2 (
2
L + 13 L2 + A14 L + A15 ) = M L
3
2 6 EI 2
and so
L2 g 2 g 3
( EI L + 2 ) A13 + ( EI + 2 L) A14 + 2 A15 = M L + L + 2 L (8.A1.44b)
2 2 6 EI
Equations (8.A1.13b), (8.31b) and (8.A1.31b)-(8.A1.44b) can be summarised in matrix
form as:-
H1 1 H1 2 0 0 A 14 V1
H21 H2 2 H2 3 0 A 58 V2
=
0 H 3 4 A 912 V3
(8.A1.45)
H3 2 H3 3
0
0 H4 3 H 4 4 A 1316 V4
[270]
where the terms Hij are submatrices of quantities determined by the geometry of the
ballscrew, Aj are subvectors of the 16 terms used to define the deflected shape of the
ballscrew by the equation
g A4( s 1)+1 A4( s 1)+ 2
y= x4 + x3 + x 2 + A4( s 1)+3 x + A4( s 1)+ 4 , for s = 1L 4 (8.A1.46)
24 EI 6 2
s being the screw section number, and Vi are subvectors of the forces vector given by:-
0
Qf 0 0
f
M 0 0 0
V1 = ,V = , V3 = , V4 = (8.A1.47a-d)
Q1 2 Q2 Q3 Q K gl + gl
4
M1 M M d 2
2 3
24 EI
M d 2
gl 3 l2
g
6 EI 2
The submatrices are as follows:-
EI 0 0 K1
0 EI 1 0
H 11 = (8.A1.48a)
EI 0 0 0
EI X EI
1 0 0
0 0 0 0
0 0 0 0
H1 2 = (8.A1.48b)
EI 0 0 0
EI X
1 EI 0 0
X 12
X1 1 0
2
X 13 X 12
X1 1
H 21 = 6 2 (8.A1.48c)
0 0 0 0
0 0 0 0
[271]
X2
1 X1 1 0
2
X 13 X 12
X1 1
H22 = 6 2 (8.A1.48d)
EI 0 0 0
EI X 2 EI 0 0
0 0 0 0
0 0 0 0
H23 = (8.A1.48e)
EI 0 0 0
EI X
2 EI 0 0
X 22
X2 1 0
2
X 23 X 22
X2 1
H32 = 6 2 (8.A1.48f)
0 0 0 0
0 0 0 0
X 22
X2 1 0
2
X 23 X 22
X2 1
H33 = 6 2 (8.A1.48g)
EI 0 0 0
EI X 3 EI 0 0
0 0 0 0
0 0 0 0
H3 4 = (8.A1.48h)
EI 0 0 0
EI X
3 EI 0 0
X 32
X3 1 0
2
X 33 X 32
X3 1
H43 = 6 2 (8.A1.48i)
0 0 0 0
0 0 0 0
[272]
X2
3 X3 1 0
2
X 33 X 32
X3 1
H44 = 6 2 (8.A1.48j).
3
l l2
K 2 6 + EI K2
2
K2 l K2
2
2 l EI l 2 l EI 2 0
2
For any particular geometrical configuration and loading condition equation (8.A1.45) can
be solved to give a set {Ai} which can be used to give a predicted set of {yi} to compare with
the measured ones.
[273]
Appendix 8.2 - Static deflection theory non-zero pre-tension
The ballscrew is considered as an elastic beam supported at each end by a bearing whose
radial stiffness is Ki and whose tilt stiffness is i being one at the drive end of the screw and
two at the non-drive end. The pre-tension T in the ballscrew is considered to be zero.
A8.2.1 One element shaft
Consider a beam of length L along the X axis, the moment balance of an element of length
x under a shear force Q and a tensile load T gives:-
T . y + M = Q. x + M + M = 0 (8.A2.1)
whence in the limit
dM dy
= Q + T (8.A2.2)
dx dx
and so
d3y 1 dM Q T dy
= = + (8.A2.3)
dx 3 EI dx EI EI dx
differentiating
d4y 1 dQ T d 2 y
= + (8.A2.4)
dx 4 EI dx EI dx 2
If the beam is subject to a gravitational field of g
dQ
=g (8.A1.7)
dx
The deflected shape of the beam is therefore subject to the differential equation
d4y T d2y 1
4
2
= g (8.A2.5)
dx EI dx EI
The corresponding homogeneous equation is
d4y T d2y
=0 (8.A2.6)
dx 4 EI dx 2
and the characteristic equation
T 2
4 =0 (8.A2.6a)
EI
T
has roots = 0 (8.A2.6b) (two) and = (8.A2.6c) for the case of tensile loading
EI
T
( T > 0 ). For compressive loading ( T < 0 ), = i (8.A2.6d)
EI
[274]
T
Letting = (8.A2.7), the general solution for the tensile case is
EI
y = A1 + A2 x + A3 cosh x + A4 sinh x (8.A2.8)
leading to
dy
= A2 + A3 sinh x + A4 cosh x (8.A2.8a)
dx
d2y
2
= 2 A3 cosh x + 2 A4 sinh x (8.A2.8b)
dx
d3y
3
= 3 A3 sinh x + 3 A4 cosh x (8.A2.8c)
dx
d4y
4
= 4 A3 cosh x + 4 A4 sinh x (8.A2.8d)
dx
T
and letting = (8.A2.9),for the compressive case is
EI
y = B1 + B2 x + B3 cos x + B4 sin x (8.A2.10)
leading to
dy
= B2 B3 sin x + B4 cos x (8.A2.10a)
dx
d2y
2
= 2 B3 cos x 2 B4 sin x (8.A2.10b)
dx
d3y
3
= 3 B3 sin x 3 B4 cos x (8.A2.10c)
dx
d4y
4
= 4 B3 cos x + 4 B4 sin x (8.A2.10d)
dx
where Ai and Bi are constants determined by the boundary conditions.
B
[275]
dy g
= A2 x + A3 sinh x + A4 cosh x (8.A2.13),
dx T
equation (8.A1.1) and differentiating equation (8.A2.13) yields
d2y
M = EI
dx 2
EI g
= + 2 EIA3 cosh x + 2 EIA4 sinh x (8.A2.14)
T
EI g
= + TA3 cosh x + TA4 sinh x
T
and equation (8.A1.3) and differentiating equation (8.A2.14) yields
dM
Q=
dx (8.A2.15)
= TA3 sinh x TA4 cosh x
Considering the support given by the bearings, at end x = 0 ,
K1 y (0) = Q0 + Q(0)
(8.A2.16a)
K1 ( A1 + A3 ) = Q0 TA4
and so
K1 A1 + K1 A3 + TA4 = Q0 (8.A2.16b)
and
dy
1 ( 0) = M 0 + M ( 0)
dx
(8.A2.17a)
EI g
1 ( A2 + A4 ) = M 0 + + TA3
T
and so
EI g
1 A2 TA3 + 1 A4 = M 0 + (8.A2.17b)
T
At end x = L ,
Q( L) + K 2 y ( L) = QL
g
TA3 sinh L TA4 cosh L + K 2 ( A1 + A2 L + L2 + A3 cosh L + A4 sinh L) = QL
2T
(8.A2.18a)
and so
g
K 2 A1 + K 2 LA2 + ( K 2 cosh L T sinh L) A3 + ( K 2 sinh L T cosh L) A4 = QL K 2 L2
2T
(8.A2.18b)
and
[276]
dy
M ( L) + 2 ( L) = M L
dx
EI g g
+ TA3 cosh L + TA4 sinh L + 2 ( A2 L + A3 sinh L + A4 cosh L) = M L
T T
(8.A2.19a)
and so
g
2 A2 + ( 2 sinh L + T cosh L) A3 + ( 2 cosh L + T sinh L) A4 = M L + ( EI + 2 L)
T
(8.A2.19b)
d2y
2
= 2 A3 cosh x + 2 A4 sinh x (8.A2.22b)
dx
d3y
3
= 3 A3 sinh x + 3 A4 cosh x (8.A2.22c)
dx
[277]
d4y
4
= 4 A3 cosh x + 4 A4 sinh x (8.A2.22d)
dx
and
EI g
M = + TA3 cosh x + TA4 sinh x (8.A2.23)
T
Q = TA3 sinh x TA4 cosh x (8.A2.24)
d2y
2
= 2 A7 cosh x + 2 A8 sinh x (8.A2.25b)
dx
d3y
3
= 3 A7 sinh x + 3 A8 cosh x (8.A2.25c)
dx
d4y
4
= 4 A7 cosh x + 4 A8 sinh x (8.A2.25d)
dx
and
EI g
M = + TA7 cosh x + TA8 sinh x (8.A2.26)
T
Q = TA7 sinh x TA8 cosh x (8.A2.27)
d2y
2
= 2 A11 cosh x + 2 A12 sinh x (8.A2.28b)
dx
d3y
3
= 3 A11 sinh x + 3 A12 cosh x (8.A2.28c)
dx
d4y
4
= 4 A11 cosh x + 4 A12 sinh x (8.A2.28d)
dx
and
[278]
EI g
M = + TA11 cosh x + TA12 sinh x (8.A2.29)
T
Q = TA11 sinh x TA12 cosh x (8.A2.30)
In section 4, X 3 x L and
d2y
2
= 2 A15 cosh x + 2 A16 sinh x (8.A2.31b)
dx
d3y
3
= 3 A15 sinh x + 3 A16 cosh x (8.A2.31c)
dx
d4y
4
= 4 A15 cosh x + 4 A16 sinh x (8.A2.31d)
dx
and
EI g
M = + TA15 cosh x + TA16 sinh x (8.A2.32)
T
Q = TA15 sinh x TA16 cosh x (8.A2.33)
[279]
Q( X 1 ) + = Q1 TA7 sinh X 1 TA8 cosh X 1
(8.A2.36a)
= TA3 sinh X 1 TA4 cosh X 1
and so
T sinh X 1 A3 T cosh X 1 A4 + T sinh X 1 A7 + T cosh X 1 A8 = Q1 (8.A2.36b)
and
EI g
M ( X1)+ = M1 + TA7 cosh X 1 + TA8 sinh X 1
T (8.A2.37a)
EI g
= + TA3 cosh X 1 + TA4 sinh X 1
T
and so
T cosh X 1 A3 + T sinh X 1 A4 T cosh X 1 A7 T sinh X 1 A8 = M 1 (8.A2.37b)
Continuity gives
y ( X 1 ) = A1 + A2 X 1 + A3 cosh X 1 + A4 sinh X 1 + e( X 1 )
(8.A2.38a)
= A5 + A6 X 1 + A7 cosh X 1 + A8 sinh X 1 + e( X 1 )
and so
A1 + X 1 A2 + cosh X 1 A3 + sinh X 1 A4 A5 X 1 A6 cosh X 1 A7 sinh X 1 A8 = 0
(8.A2.38b)
and
dy de
( X 1 ) = A2 + A3 sinh X 1 + A4 cosh X 1 + ( X 1 )
dx dx
(8.A2.39a)
de
= A6 + A7 sinh X 1 + A8 cosh X 1 + ( X 1 )
dx
and so
A2 + sinh X 1 A3 + cosh X 1 A4 A6 sinh X 1 A7 cosh X 1 A8 = 0 (8.A2.39b)
At x = X 2 ,
Q( X 2 ) + = Q2 TA11 sinh X 2 TA12 cosh X 2
(8.A2.40a)
= TA7 sinh X 2 TA8 cosh X 2
and so
T sinh X 2 A7 T cosh X 2 A8 + T sinh X 2 A11 + T cosh X 2 A12 = Q2 (8.A2.40b)
and
EI g
M ( X 2 )+ = M 2 + TA11 cosh X 2 + TA12 sinh X 2
T (8.A2.41a)
EI g
= + TA7 cosh X 2 + TA8 sinh X 2
T
[280]
and so
T cosh X 2 A7 + T sinh X 2 A8 T cosh X 2 A11 T sinh X 2 A12 = M 2 (8.A2.41b)
Continuity gives
y ( X 2 ) = A5 + A6 X 2 + A7 cosh X 2 + A8 sinh X 2 + e( X 2 )
(8.A2.42a)
= A9 + A10 X 2 + A11 cosh X 2 + A12 sinh X 2 + e( X 2 )
and so
A5 + X 2 A6 + cosh X 2 A7 + sinh X 2 A8 A9 X 2 A10 cosh X 2 A11 sinh X 2 A12 = 0
(8.A2.42b)
and
dy de
( X 2 ) = A6 + A7 sinh X 2 + A8 cosh X 2 + ( X 2 )
dx dx
(8.A2.43a)
de
= A10 + A11 sinh X 2 + A12 cosh X 2 + ( X 2 )
dx
and so
A6 + sinh X 2 A7 + cosh X 2 A8 A10 sinh X 2 A11 cosh X 2 A12 = 0
(8.A2.43b)
At x = X 3 ,
(8.A2.44b)
and
EI g
M ( X 3 )+ = M 3 + TA15 cosh X 3 + TA16 sinh X 3
T (8.A2.45a)
EI g
= + TA11 cosh X 3 + TA12 sinh X 3
T
and so
T cosh X 3 A11 + T sinh X 3 A12 T cosh X 3 A15 T sinh X 3 A16 = M 3 (8.A2.45b)
Continuity gives
y ( X 3 ) = A9 + A10 X 3 + A11 cosh X 3 + A12 sinh X 3 + e( X 3 )
(8.A2.46a)
= A13 + A14 X 3 + A15 cosh X 3 + A16 sinh X 3 + e( X 3 )
and so
[281]
A9 + X 3 A10 + cosh X 3 A11 + sinh X 3 A12 A13 X 3 A14 cosh X 3 A15 sinh X 3 A16 = 0
(8.A2.46b)
and
dy de
( X 9 ) = A10 + A11 sinh X 3 + A12 cosh X 1 + ( X 3 )
dx dx
(8.A2.47a)
de
= A14 + A15 sinh X 3 + A16 cosh X 3 + ( X 3 )
dx
and so
A10 + sinh X 3 A11 + cosh X 3 A12 A14 sinh X 3 A15 cosh X 3 A16 = 0
(8.A2.47b)
Considering the support given by the bearings, at the non-drive end x = L ,
TA15 sinh L TA16 cosh L = QL K 2 y ( L)
g
= QL K 2 ( A13 + A14 L L2 + A15 cosh L + A16 sinh L)
2T
(8.A2.48a)
and so
K 2 A13 + K 2 L A14 + ( K 2 cosh L T sinh L) A15 + ( K 2 sinh L T cosh L) A16
g
= QL + K 2 L2
2T
(8.A2.48b)
and
d2y dy
EI 2
( L) = M L 2 ( L)
dx dx
EI g g
+ TA15 cosh L + TA16 sinh L = M L 2 ( A14 L + A15 sinh L + A16 cosh L)
T T
(8.A2.49a)
and so
2 A14 + ( 2 sinh L + T cosh L) A15 + ( 2 cosh L + T sinh L) A16
g EI g
= M L + 2 L+
T T
(8.A2.49b)
Equations (8.A2.34b)-(8.A2.49b) can be summarised in matrix form as:-
[282]
H1 1 H1 2 0 0 A 14 V1
H21 H2 2 H2 3 0 A 58 V2
=
0 H 3 4 A 912 V3
(8.A1.45)
H3 2 H3 3
0
0 H4 3 H 4 4 A 1316 V4
where, as in Appendix 8.1, the terms Hij are submatrices of quantities determined by the
geometry of the ballscrew, Aj are subvectors of the 16 terms used to define the deflected
shape of the ballscrew by the equation
g
y = A4( s 1)+1 + A4( s 1)+ 2 x x 2 + A4( s 1)+3 cosh x + A4( s 1)+ 4 sinh x, for s = 1L 4
2T
(8.A2.50)
s being the screw section number, and Vi are subvectors of the forces vector given by:-
Q0 0
0 0
M EI g
0
0 T 0 0
V1 = , V2 = Q , V3 = Q , V4 = g 2
Q1 2 3 QL + K 2 L
M M 2T
2 3 g EI g
M1
M L + 2 L+
T T
(8.A2.51a-d)
The submatrices are as follows:-
K1 0 K1 T
0 1 T 1
H 11 = (8.A2.52a)
0 0 T sinh X 1 T cosh X 1
0 T cosh X 1 T sinh X 1
0
0 0 0 0
0 0 0 0
H1 2 = (8.A2.52b)
0 0 T sinh X 1 T cosh X 1
0 0 T cosh X 1 T sinh X 1
1 X1 cosh X 1 sinh X 1
0 1 sinh X 1 cosh X 1
H 21 = (8.A2.52c)
0 0 0 0
0
0 0 0
[283]
1 X1 cosh X 1 sinh X 1
0 1 sinh X 1 cosh X 1
H22 = (8.A2.52d)
0 0 T sinh X 2 T cosh X 2
0 T cosh X 2 T sinh X 2
0
0 0 0 0
0 0 0 0
H23 = (8.A2.52e)
0 0 T sinh X 2 T cosh X 2
0 0 T cosh X 2 T sinh X 2
1 X2 cosh X 2 sinh X 2
0 1 sinh X 2 cosh X 2
H32 = (8.A2.52f)
0 0 0 0
0
0 0 0
1 X 2 cosh X 2 sinh X 2
0 1 sinh X 2 cosh X 2
H33 = (8.A2.52g)
0 0 T sinh X 3 T cosh X 3
0 T cosh X 3 T sinh X 3
0
0 0 0 0
0 0 0 0
H34 = (8.A2.52h)
0 0 T sinh X 3 T cosh X 3
0 0 T cosh X 3 T sinh X 3
1 X 3 cosh X 3 sinh X 3
0 1 sinh X 3 cosh X 3
H43 = (8.A2.52i)
0 0 0 0
0 0
0 0
1 X 3 cosh X 3 sinh X 3
0 1 sinh X 3 cosh X 3
H44 =
K K2L K 2 cosh L T sinh L K 2 sinh L T cosh L
2
0 2 2 sinh L + T cosh L 2 cosh L + T sinh L
(8.A2.52j).
For any particular geometrical configuration and loading condition equation (8.A1.45) can
be solved to give a set {Ai} which can be used to give a predicted set of {yi} to compare with
the measured ones.
[284]
Appendix 8.3 Dynamic behaviour of a shaft under centrifugal forces
Consider a beam of length L along the X axis. It has already been established that:-
d2y M
= (8.A1.1)
dx 2 EI
and that:-
d3y 1 dM Q
3
= = (8.A1.4).
dx EI dx EI
Let us assume that the beam, together with its Y and Z axes, is spinning about its X axis at
radians per second and that after a sufficient length of time it settles down to a deflected
shape y(x) determined by a balance between centrifugal forces and the elastic properties of the
beam. In this case, considering the force balance of an element of length x under the
centrifugal forces acting on a beam of linear density gives:-
Q + x y 2 + Q + Q = 0 (8.A3.1)
whence in the limit
dQ
= 2 y (8.A3.2)
dx
and so
d4y 1 dQ 2
= = y (8.A3.3)
dx 4 EI dx EI
This can be written as
d4y
4
k4y = 0 (8.A3.4)
dx
where
2
k=4 (8.A3.5)
EI
d2y
2
= A 2 e x (8.A3.8)
dx
d3y
3
= A 3 e x (8.A3.9)
dx
[285]
d4y
4
= A 4 e x (8.A3.10)
dx
Putting (8.A3.6) and (8.A3.10) in (8.A3.4) gives:-
A 4 e x k 4 Ae x = 0
(8.A3.11)
( 4 k 4 ) Ae x = 0
For the beam to be spinning as opposed to stationary 0 hence 0 < k 4 (8.A3.12). One
d2y
2
= B1k 2 cosh kx + B2 k 2 sinh kx B3 k 2 cos kx B4 k 2 sin kx (8.A3.16b)
dx
and the 3rd derivative
d3y
3
= B1k 3 sinh kx + B2 k 3 cosh kx + B3 k 3 sin kx B4 k 3 cos kx (8.A3.16c)
dx
Consider the beam simply supported at both ends. Then
0 = B1 + B3
0 = B1 cosh kL + B2 sinh kL + B3 cos kL + B4 sin kL
(8.A3.17)
0 = B1 B3
0 = B1 cosh kL + B2 sinh kL B3 cos kL B4 sin kL
[286]
when sin kL = 0 (8.A3.20b), i.e. kL = n (8.A3.20c) where n is a non-zero integer. In other
words, a non-zero solution for y is only possible when
EI
2 = n 4 4 (8.A3.21)
L4
that is at a set of defined speeds.
Consider the beam built in at both ends. Then
0 = B1 + B3
0 = B1 cosh kL + B2 sinh kL + B3 cos kL + B4 sin kL
(8.A3.22)
0 = B2 + B4
0 = B1 sinh kL + B2 cosh kL B3 sin kL + B4 cos kL
from which can be deduced
B3 = B1
B4 = B2
(8.A3.23)
0 = B1 cosh kL + B2 sinh kL B1 cos kL B2 sin kL
0 = B1 sinh kL + B2 cosh kL + B1 sin kL B2 cos kL
which leads to
0 = ( B1 B2 ) cosh kL ( B1 B2 ) sinh kL
(8.A3.24a)
( B1 B2 ) cos kL ( B1 + B2 ) sin kL
0 = ( B1 + B2 ) cosh kL + ( B1 + B2 ) sinh kL
(8.A3.24b)
( B1 + B2 ) cos kL + ( B1 B2 ) sin kL
or, in matrix form
sin kL cosh kL sinh kL cos kL B1 + B2 0
= (8.A3.25)
cosh kL + sinh kL cos kL sin kL 1B B 2 0
The determinant of the matrix in (8.A3.25) is given by
det = ( sin kL) (sin kL) (cosh kL sinh kL cos kL) (cosh kL + sinh kL cos kL)
= 2 (1 cosh kL cos kL)
(8.A3.26)
Since 1 cosh kL (8.A3.27a) and 1 cos kL 1 (8.A3.27b), det = 0 only when kL = 0
(8.A3.28). This does not hold for non-zero length beam spinning at a non-zero speed. It
B1 + B2 0
therefore follows that = (8.A3.29a), B1 = 0 (8.A3.29b) and B2 = 0
B1 B2 0
(8.A3.29c). Therefore, if the shaft is built in there is no stable skipping mode in the case of
[287]
a perfectly balanced shaft. This in turn leads to the conclusion that any transverse vibration of
the ballscrew is likely to be caused by external forces.
[288]
Appendix 8.4 Data extraction and results Fixed nut, all positions
Sample of data extraction Position 1, Speed 3
B = without excitation weights O = with excitation weights
Displacement of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = B Displacement of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = O
10 30
0
25
-10
20
-20
Displacement, (microns)
Displacement, (microns)
15
-30
-40 10
-50
5
-60
0
-70
-5
-80
-90 -10
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
0
Displacement, (microns)
Displacement, (microns)
-5 5
-10
-15 0
-20
-25 -5
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
Displacement of Ring 2 for 5 rotations of ballscrew v. angle. Balance = B Displacement of Ring 2 for 5 rotations of ballscrew v. angle. Balance = O
0 30
-10 25
-20
20
Displacement, (microns)
Displacement, (microns)
-30
15
-40
10
-50
5
-60
0
-70
-80 -5
-90 -10
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
[288]
Average displacement of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = B Average displacement of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = O
10 25
0
20
-10
-20
Displacement, (microns)
Displacement, (microns)
15
-30
-40 10
-50
5
-60
-70
0
-80
-90 -5
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
Ave. diff. disp. of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = B - O
0
-10
-20
-30
Displacement, (microns)
-40
-50
-60
-70
-80
-90
-100
0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees)
[289]
Table A8.4.1 - Extracted mean vibration levels - Position 1
Speed 1 2 3 4 5 6
top 0.1 0.1 0.1 0.1 0.1 0.1
tail 0.9 0.9 0.9 0.9 0.9 0.9
Ring 1
a0/2 4.1910 11.0321 9.5450 1.7009 -12.9013 15.9004
amp1 8.4869 4.7371 9.6341 15.2111 21.6647 13.3961
157.2717 -16.3621 -16.3200 -16.2648 -19.3235 7.9638
amp2 1.5249 0.0316 0.0457 0.1064 0.5636 2.3433
-26.8151 158.9314 -176.5315 141.8884 147.7374 39.3129
amp3 0.3078 0.0044 0.0214 0.0313 0.2976 0.1699
56.3450 34.4782 -108.6215 0.8089 130.0082 -6.4777
amp4 0.2975 0.0055 0.5778 0.0089 0.0244 0.3834
147.4322 163.3038 7.7661 112.7908 167.5528 -82.4145
amp5 0.0502 0.0030 0.0049 0.0019 0.0375 0.0247
163.9259 21.1011 -44.7590 44.9435 166.0433 -20.6929
Ring 2
a0/2 -13.4319 51.5370 51.0596 -12.3176 -68.5804 83.8246
amp1 50.3418 26.1541 53.2913 85.2851 118.1917 116.7272
120.9508 -16.6694 -16.7699 -16.6387 -18.9519 -3.9027
amp2 0.9494 0.1300 0.2875 0.7007 2.6500 2.7581
48.4523 159.8836 154.0191 129.1613 146.2441 54.3890
amp3 0.5778 0.0418 0.0873 0.1449 1.5813 0.3232
5.7237 97.4000 -71.1011 22.2837 127.0766 140.4804
amp4 0.1629 0.0148 2.8912 0.0072 0.1102 0.0822
-46.9183 94.6104 9.7228 108.7139 -168.1067 -98.0059
amp5 0.0327 0.0128 0.0164 0.0246 0.0352 0.0367
131.0733 162.0896 61.5383 136.2864 -170.1634 99.6144
A tabulation of the results of the Fourier analysis of the extracted mean data
top is the proportion of the raw data at which extraction starts, and tail is the proportion when
analysis ends.
a0/2 is the DC shift (m), amp1 amp5 are the first to fifth order amplitudes (m), and the
smaller figures under the amplitude rows are the phase angles (deg)
As can be seen, the first order dominates showing that the out-of-balance load was the most
significant forcing term in the tests.
[290]
Table A8.4.2 - Extracted mean vibration levels - Position 2
Speed 1 2 3 4 5 6
top 0.1 0.1 0.1 0.1 0.1 0.1
tail 0.9 0.9 0.9 0.9 0.9 0.9
Ring 1
a0/2 -7.8777 -11.3733 -16.0938 4.2525 -15.6233
amp1 5.3840 11.1827 17.5892 23.7577 30.6115
-27.8972 -27.8917 -27.8089 -28.9150 -28.8707
amp2 0.0249 0.0534 0.1041 0.5279 0.0626
-148.3967 133.3716 156.1584 153.2548 100.4677
amp3 0.0105 0.0171 0.0412 0.6152 0.0864
112.9156 -157.7967 -25.9301 136.0491 -63.0190
amp4 0.0094 0.2231 0.0160 0.0350 0.0070
-145.9144 147.6797 65.4653 -101.7995 152.7793
amp5 0.0014 0.0041 0.0070 0.0658 0.0128
136.2639 125.2678 80.3816 -107.3668 -48.3818
Ring 2
a0/2 -28.9305 -52.1879 -75.7360 45.0290 -31.5496
amp1 22.3293 46.5257 76.5703 103.9727 134.5700
-28.2859 -28.5908 -27.7233 -29.0885 -28.9540
amp2 0.0489 0.2413 0.2665 1.6703 0.4714
-174.2340 -133.8620 153.3977 155.8023 90.7148
amp3 0.0884 0.0645 0.1322 2.8759 0.3624
175.8745 -63.7732 -25.7134 138.4327 -17.0432
amp4 0.0122 1.1012 0.0334 0.1224 0.1576
117.7808 149.0840 68.4780 -89.1936 143.4308
amp5 0.0123 0.0246 0.0176 0.1204 0.0152
68.8007 78.2687 110.0702 -114.3815 -108.5945
A tabulation of the results of the Fourier analysis of the extracted mean data
[291]
Table A8.4.3 - Extracted mean vibration levels - Position 3
Speed 1 2 3 4 5 6
top 0.1 0.1 0.1 0.1 0.1 0.1
tail 0.9 0.9 0.9 0.9 0.9 0.9
Ring 1
a0/2 0.6683 -11.2527 10.9007 -20.2107 3.0424 12.0696
amp1 6.0360 5.2846 10.1077 15.9946 20.3326 26.5002
-140.9955 0.5147 1.7527 1.6080 4.8812 0.7903
amp2 2.9351 0.0045 0.0828 0.1184 1.1159 0.2121
-82.6578 28.2197 -136.8319 -178.0826 54.6717 -177.1406
amp3 0.3459 0.0074 0.0218 0.0303 1.7981 0.0520
62.8207 88.3890 37.9255 -72.2728 167.7665 -123.9314
amp4 0.0499 0.0085 0.0357 0.0178 0.3130 0.0055
31.9631 134.5015 -157.6599 70.7459 -106.5213 -54.7289
amp5 0.1069 0.0075 0.0064 0.0036 0.1932 0.0062
-70.5120 7.0924 -108.1948 -126.5379 8.1737 131.2005
Ring 2
a0/2 -3.5100 -4.8060 14.0010 -46.8298 3.1540 38.4407
amp1 10.7551 12.4898 24.1299 38.4050 45.9750 64.2591
161.6336 0.3830 2.0334 1.6357 4.2401 0.6459
amp2 3.1828 0.1141 0.0677 0.1626 1.9125 0.4005
-39.8200 84.1261 131.4923 162.3007 108.2741 171.7765
amp3 0.5407 0.0295 0.0238 0.0879 4.7377 0.0355
43.6550 -55.1943 36.4149 -29.1239 163.8056 172.1146
amp4 0.0080 0.0108 0.0812 0.0315 0.2434 0.0804
71.5728 -85.8703 -133.4760 -111.4519 -63.5669 -105.5698
amp5 0.0782 0.0120 0.0145 0.0168 0.2071 0.0193
-79.6779 -114.7211 -135.9262 -107.9982 -10.0262 -99.5421
A tabulation of the results of the Fourier analysis of the extracted mean data
[292]
Appendix 8.5 Data extraction and results Moving nut, all positions
Sample of data extraction Position 1, Speed 5
B = without excitation weights O = with excitation weights
top = 0.1000, tail = 0.9000, fname = 'mp1s5'
[a1_0,a1,b1,amp1,phas1,a2_0,a2,b2,amp2,phas2,trav1,trav2,angl]=geoff5(fname,top,tail);
Displacement of Ring 1 (blue) and Ring 2 (green) v. time. Balance = B Displacement of Ring 1 (blue) and Ring 2 (green) v. time. Balance = O
40 60
30 40
20
20
Displacement, (microns)
Displacement, (microns)
0
10
-20
0
-40
-10
-60
-20
-80
-30 -100
-40 -120
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Time, (sec) Time, (sec)
0 0
-100 -100
Displacement, (mm)
Displacement, (mm)
-200 -200
-300 -300
-400 -400
-500 -500
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Time, (sec) Time, (sec)
[293]
Displacement of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = B Displacement of Ring 1 (blue) and Ring 2 (green) v. angle. Balance = O
40 60
30 40
20
20
Displacement, (microns)
Displacement, (microns)
0
10
-20
0
-40
-10
-60
-20
-80
-30 -100
-40 -120
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
40
10
20
Displacement, (microns)
Displacement, (microns)
0 0
-20
-10
-40
-20 -60
-80
-30
-100
-40 -120
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
Displacement of Ring 2 for 5 rotations of ballscrew v. angle. Balance = B Displacement of Ring 2 for 5 rotations of ballscrew v. angle. Balance = O
10 30
8 20
6
10
Displacement, (microns)
Displacement, (microns)
4
0
2
-10
0
-20
-2
-30
-4
-6 -40
-8 -50
0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 300 350 400
Angular position of screw, (degrees) Angular position of screw, (degrees)
[294]
Difference, balance = B O
Mean diff. disp. of R1 (blue) and R2 (green) v. posn. of nut, (mm). Bal. = B - O First order diff. disp. of R1 (blue) and R2 (green) v. posn. of nut, (mm). Bal. = B - O
9 80
8 70
7 60
Displacement, (microns)
Displacement, (microns)
6 50
5 40
4 30
3 20
2 10
-450 -400 -350 -300 -250 -200 -150 -100 -50 -450 -400 -350 -300 -250 -200 -150 -100 -50
Position of nut, (mm) Position of nut, (mm)
Second order diff. disp. of R1 (blue) and R2 (green) v. posn. of nut, (mm). Bal. = B - O Third order diff. disp. of R1 (blue) and R2 (green) v. posn. of nut, (mm). Bal. = B - O
2.5 1.8
1.6
2
1.4
Displacement, (microns)
0.8
1
0.6
0.4
0.5
0.2
0 0
-450 -400 -350 -300 -250 -200 -150 -100 -50 -450 -400 -350 -300 -250 -200 -150 -100 -50
Position of nut, (mm) Position of nut, (mm)
Fourth order diff. disp. of R1 (blue) and R2 (green) v. posn. of nut, (mm). Bal. = B - O Fifth order diff. disp. of R1 (blue) and R2 (green) v. posn. of nut, (mm). Bal. = B - O
2 1.4
1.8
1.2
1.6
1.4 1
Displacement, (microns)
Displacement, (microns)
1.2
0.8
1
0.6
0.8
0.6 0.4
0.4
0.2
0.2
0 0
-450 -400 -350 -300 -250 -200 -150 -100 -50 -450 -400 -350 -300 -250 -200 -150 -100 -50
Position of nut, (mm) Position of nut, (mm)
[295]
Table A8.5.1 Raw data - Moving mass - Position 1
File Posn Speed, State Date Start time End time Sample
(m/min) time,
(sec)
MP1S1B.PEC 1 2 666 bal 9:6:2004 16: 7:28.88 16: 7:53.98 2.5006
MP1S1O.pec 1 2 666 OOB 9:6:2004 17:30:47.49 17:31:12.59 2.5006
MP1S2B.PEC 1 25 298 bal 10:6:2004 9:19:52.87 9:19:55.61 0.26353
MP1S2O.pec 1 25 298 OOB 10:6:2004 9: 8:54. 9 9: 8:56.78 0.26353
MP1S3B.PEC 1 30 984 bal 10:6:2004 9:36:13.89 9:36:16.14 0.21516
MP1S3O.pec 1 30 984 OOB 10:6:2004 9:47:22.66 9:47:24.92 0.21516
MP1S4B.PEC 1 35 777 bal 10:6:2004 10:37:27.86 10:37:29.78 0.18634
MP1S4O.pec 1 35 777 OOB 10:6:2004 10:29:54. 1 10:29:55.93 0.18634
MP1S5B.PEC 1 40 000 bal 9:6:2004 15:33:13. 8 15:33:15. 5 0.16667
MP1S5BR 1 40 000 bal 10:6:2004 10:44:39. 8 10:44:41. 5 0.16667
.PEC rep
MP1S5O.PEC 1 40 000 OOB 10:6:2004 10:58:35.76 10:58:37.79 0.16667
MP1S6B.PEC 1 37 947 bal 10:6:2004 11:17:11.84 11:17:13.71 0.17568
MP1S6O.PEC 1 37 947 OOB 10:6:2004 11:10:31.16 11:10:33. 3 0.17568
File Posn Speed, State Date Start time End time Sample
(m/min) time,
(sec)
MP2S1B.PEC 2 2 666 bal 10:6:2004 14:46:12.71 14:46:37.81 2.5006
MP2S1O.PEC 2 2 666 OOB 10:6:2004 14:32:37. 1 14:33: 2.11 2.5006
MP2S2B.pec 2 25 298 bal 10:6:2004 14:55:20.15 14:55:22.89 0.26353
MP2S2O.PEC 2 25 298 OOB 10:6:2004 15: 2: 3.85 15: 2: 6.60 0.26353
MP2S3B.PEC 2 30 984 bal 10:6:2004 15:14:26.88 15:14:29.13 0.21516
MP2S3O.PEC 2 30 984 OOB 10:6:2004 15: 9: 2.27 15: 9: 4.52 0.21516
MP2S4B.PEC 2 35 777 bal 10:6:2004 15:22: 5.46 15:22: 7.43 0.18634
MP2S4O.PEC 2 35 777 OOB 10:6:2004 15:29:12.39 15:29:14.31 0.18634
MP2S5B.PEC 2 40 000 bal 10:6:2004 15:48:54.39 15:48:56.37 0.16667
MP2S5O.PEC 2 40 000 OOB 10:6:2004 16: 4:24.66 16: 4:26.64 0.16667
MP2S6B.PEC 2 37 947 bal 10:6:2004 15:41:44.10 15:41:45.97 0.17568
MP2S6O.PEC 2 37 947 OOB 10:6:2004 15:35:41.21 15:35:43. 8 0.17568
[296]
Table A8.5.3 - Raw data - Moving mass - Position 3
File Posn Speed, State Date Start time End time Sample
(m/min) time,
(sec)
MP3S1B.PEC 3 2 666 bal 11:6:2004 10:59:49.14 11: 0:14.24 2.5006
MP3S1O.PEC 3 2 666 OOB 11:6:2004 11: 6:49.43 11: 7:14.47 2.5006
MP3S2B.PEC 3 25 298 bal 11:6:2004 10:53:48.22 10:53:50.97 0.26353
MP3S2O.PEC 3 25 298 OOB 11:6:2004 10:48:36.52 10:48:39.27 0.26353
MP3S3B.PEC 3 30 984 bal 11:6:2004 10:35:15.65 10:35:17.90 0.21516
MP3S3O.PEC 3 30 984 OOB 11:6:2004 10:41:51.77 10:41:54. 3 0.21516
MP3S4B.PEC 3 35 777 bal 11:6:2004 10:28:57.71 10:28:59.69 0.18634
MP3S4O.PEC 3 35 777 OOB 11:6:2004 10:22:25.76 10:22:27.74 0.18634
MP3S5B.PEC 3 40 000 bal 10:6:2004 16:47:15.78 16:47:17.76 0.16667
MP3S5O.PEC 3 40 000 OOB 10:6:2004 16:39:35. 6 16:39:37. 4 0.16667
MP3S6B.PEC 3 37 947 bal 11:6:2004 10: 4:20.65 10: 4:22.52 0.17568
MP3S6O.PEC 3 37 947 OOB 11:6:2004 10:15:51.12 10:15:52.99 0.17568
[297]
Appendix 8.6 - Linear Guide rig Data
A8.6.1 Drive motor data (including controller parameters)
Name plate details:-
SIEMENS 3 ~ Permanent Magnet Motor
MADE IN GERMANY 1FT 6082 1AFY1 1AG1
Nr.E L2904930 04 011 EN 60034
Mn = 10.3 Nm 3000 /min Ui(eff.) = 240 V Y
(M = 11.7 Nm 1500 /min Ui(eff.) = 120 V Y)
M0 = 10.4 / 13 Nm I0(eff.) = 8.2 / 10.65 A 60 / 100 k
IMB5 IP 65 Th.CL.F nmax : 4400 /min KTY 84
298
where
L = the winding inductance, (= 6.2 10-3 H)
iq = the nett motor current, (A)
t = time, (sec)
eq ref = the electric potential given by the current controller, (V)
R = the winding resistance, (= 0.68 )
= the flux, (= 0.7639 V sec/rad)
e = the electrical velocity, (rad/sec).
The current controller voltage is given by
eq ref = K cp (iq ref iq )
where
Kcp = the proportional gain current control, (= 50 V/A)
iq ref = the output current of the velocity controller, (A)
and the electrical velocity is
e = pm
where
p = is the number pairs of poles in the motor (= 4)
m = the speed of the motor, (rad/sec)
Re-arranging the differential equation gives
eq ref L diq
iq = e
R R dt R
Substituting for iq ref and e gives
K cp (iq ref iq ) L diq p
iq = m
R R dt R
Re-arranging
R + K cp K L diq p
iq = cp iq ref m
R R R dt R
In finite difference terms
R + K cp K L (iq iq save ) p
iq = cp iq ref m
R R R t R
where t = the loop time interval, (sec).
Re-arranging
R + K cp + L / t K cp L p
iq = iq ref + iq save m
R R R. t R
or
L
K cp iq ref + i pm
t q save
iq =
R + K cp + L / t
finally
AA iq ref + BB iq save CC m
d
e
n
o
m
i
n
a
t
o
r
iq =
299
L
K cp t p
d
e
n
o
m
i
n
a
t
o
r
do
er
n
o
m
i
n
a
t
o
r
d
e
n
o
m
i
n
a
t
o
r
where AA = , BB = , CC = and
d
e
n
o
m
i
n
a
t
= R + K cp + L / t .
These equations are coded into subroutines init_controller and controller. Including
definitions this is coded by:-
static float J_mot=0.0030F; // drive motor inertia, (kg m^2)
static double K_v=4.*1000./60.; // position controller constant = 4 (m/min)/mm, (1/sec)
static double K_k1=1./double(pitch); // constant, (1/m)
static double K_vff=K_k1; // gain - velocity feed forward, (1/m)
static double K_vel; // constant =1./(2.*pi), (rev/rad)
static double K_aff=0.039; // gain - acceleration feed forward, (A sec^2/rev)
static double K_p=26.; // proportional gain - velocity control, (A sec/rev)
static double K_i=6300.; // integral gain - velocity control, (A/rev)
static double LA=0.0062; // motor armature inductance, (H)
static double RA=0.68; // motor armature resistance, (ohm)
static double K_cp=50.; // proportional gain - current control, (V/A)
static double lamda=0.7639; // flux, (V sec/rad)
static signed int N_poles=4; // number of pairs of motor poles
denominator=RA+K_cp+LA/dt;
AA=K_cp/denominator;
BB=(LA/dt)/denominator;
CC=lamda*double(N_poles)/denominator;
iq_save=0.; // motor armature current (previous filter cycle), (A)
iq=AA*iq_ref + BB*iq_hold - CC*wm_s; // motor drive current
iq_hold=iq;
static double Kt=1.28F; // motor torque time constant, (N m/A)
Further an allowance for Coulomb friction in the motor of 0.01 the rated motor torque is
included (Mode 1). This is coded by:-
static double rEnD[M3][M9]; // rate of energy dissipation, (W)
static float T_mot_max=42.F; // maximum motor torque, (N m)
static float n_mot_max=4700.F; // maximum rated motor speed, (rpm)
static float mu_brg=0.01F; // nominal coefficient of friction of bearings
signed int mode=0; // friction mode of operation
// 0 = "T = A + B*w"
300
// 1 = friction torque based on loading considerations
double dt1; // time step, inner loop, (sec)
rEnD[j+1][1]+=fric_brg(mu_brg,0.F,T_mot_max,1,double(n_mot_max)*2.*pi/60.,j,dt1,mode);
Thus it is assumed that at its rated speed, mechanical losses account for some 3% of rated power.
An alternative option is to use measured data if available (Mode 0). For the linear guide rig as a
whole:-
// "Mode 0" bearing friction model
// constant term speed-dependent
Abrg[0]=0.5453; Bbrg[0]=0.001208; // motor bearing
Abrg[1]=0.5; Bbrg[1]=0.; // ballscrew bearing 1
Abrg[2]=0.4; Bbrg[2]=0.; // ballscrew bearing 2
// (N m) (N m sec/rad)
This data is based on work by Dr Simon Fletcher, (see Chapter 7).
In addition to the data for the motor and controller, the motor shaft is taken into account by the
following data:-
static float J_ms=0.0000075F; // drive motor shaft inertia, (kg m^2)
static float k_ms=5466.F; // torsional stiffness of motor shaft, (N m/rad)
static float c_ms=0.01F; // torsional damping coefficient of motor shaft, (N m sec/rad)
A8.6.3 Coupling
Information from [142]:-
Torsional stiffness static 4200 N m/rad
Torsional stiffness dynamic 10100 N m/rad
Axial stiffness 3500 103 N/m
Torsional inertia of coupling half 200.3 10-6 kg m2
Mass of coupling half 0.253 kg
From measurement / observation:-
Material aluminium
Outside diameter 65 mm
Inside diameter 28 mm (ballscrew drawing)
Length to start of dog teeth 35 mm
Length to end of dog teeth 50 mm
Hence the mass can be estimated to be:-
mP1 = (0.065 2 0.028 2 ) (0.035 + 0.050) / 2 2700 = 0.31012 kg
4
the rotational inertia:-
J P1 = (0.065 4 0.028 4 ) (0.035 + 0.050) / 2 2700 = 194.2 10 6 kg m 2
32
and the transverse inertia:-
0.0652 + 0.0282 ((0.035 + 0.050) / 2) 2
J t P1 = 0.31012 + = 143.8 10 6 kg m 2 .
16 12
These estimates model the coupling half as a hollow cylinder and it is therefore not surprising
that the estimated mass is greater than the figures from [142]. Although the estimated torsional
inertia is very close to the value from [142], it is surprising that it is slightly lower.
301
The driving half of the coupling is modelled using the following data:-
static float J_dr1=194.2e-6F; // driving pulley, coupling half etc. inertia, (kg m^2)
and the coupling characteristics are modelled as follows:-
static float k_dr=10100.F; // torsional stiffness of drive referred to driving shaft, (N m/rad)
static float c_dr=0.797F; // torsional damping coefficient of drive referred to driving shaft,
(N m sec/rad)
static long double u=1.L; // drive ratio
The driven half of the coupling is modelled along with the ballscrew.
The ballscrew nut axial stiffness for a 40 mm diameter 16 mm pitch ballscrew ranges from
540 N/m to 1500 N/m, see LM system ball screws, catalog. no.200-2BE, THK Co. Ltd.,
p 177. The values used in the version of LG_rig.cpp dated 08/12/07 are:-
static float k_ax_nut=1.2e9F; // axial stiffness of nut, (N/m)
static float ky_nut=1.2e9F; // radial stiffness of nut - "y" direction, (N/m)
static float kz_nut=1.2e9F; // radial stiffness of nut - "z" direction, (N/m)
static float kOy_nut=0.7e5F; // tilt stiffness of nut - "Oy" direction, (N m/rad)
static float kOz_nut=0.7e5F; // tilt stiffness of nut - "Oz" direction, (N m/rad)
In addition the damping properties of the ballscrew nut are modelled by including viscous
damping elements whose coefficients of damping are assumed to be a multiple of the respective
spring stiffness. The damping ratio assumed is as follows:-
302
static float drn=0.0005F; // damping ratio nut.
The friction in the nut is represented by treating the ballscrew as an equivalent lead screw using a
coefficient of friction as follows:-
static float mu_scr=0.019F; // nominal coefficient of friction of screw nut.
The following measured data (Mode 0) is also available:-
static double Absnf=1.44; // constant term in "Mode 0" ballscrew friction model, (N m)
static double Bbsnf=0.; // speed-dependent term in "Mode 0" ballscrew friction model,
(N m sec/rad)
The monitoring rings, fitted to the ballscrew as targets for the non-contacting displacement
transducers, which also carry the out-of-balance weights, have the following properties:-
static float m_Mring=1.029F; // mass of monitoring ring, (kg)
static float Jtor_Mring=0.001289F; // torsional inertia of monitoring ring, (kg m^2)
static float Jtil_Mring=0.000701F; // tilt inertia of monitoring ring, (kg m^2)
static float rOoB=40.e-3F; // radius of out-of-balance weight, (m)
Source Bearings for screw drives, Axial angular contact ball bearings, Needle roller/axial
cylindrical roller bearings, INA Publication ZAE, Sach-Nr.002-045-869 , pp 40-41
See also
http://medias.ina.de/medias/de!hp.ec.br.pr/ZKLF...2RS*ZKLF%203080.2RS;aELuDt9h4_-7
The stiffness of the ballscrew bearings is modelled in the version of LG_rig.cpp dated 08/12/07
using the following values:-
static float k_ax_1=850.e6F; // axial stiffness of bearings, (N/m)
static float k_ax_2=850.e6F;
static float ky_rad_1=1275.e6F; // radial stiffness of bearings - "y" direction, (N/m)
static float ky_rad_2=1275.e6F;
static float kz_rad_1=1275.e6F; // radial stiffness of bearings - "z" direction, (N/m)
static float kz_rad_2=1275.e6F;
static float ky_tilt_1=160.e3F; // tilt stiffness of bearings - "Oy" direction, (N m/rad)
static float ky_tilt_2=160.e3F; // Note!! Too much bearing tilt stiffness crashes solution method
static float kz_tilt_1=160.e3F; // tilt stiffness of bearings - "Oz" direction, (N m/rad)
static float kz_tilt_2=160.e3F;
In addition the damping properties of the bearings are modelled by including viscous damping
elements whose coefficients of damping are assumed to be a multiple of the respective spring
stiffness. A damping ratio is included in the C program, a typical value (09/12/07) is:-
static float drb=0.0005F; // damping ratio - bearings
303
Terms are included in the model to account for viscous drag in the ballscrew bearings. They
were estimated in a similar manner to the corresponding term for the motor bearings and are:-
static float c_brg_1=0.668e-3F; // equivalent damping coefficient of bearings, (N m sec/rad)
static float c_brg_2=0.668e-3F;
When using measured data if available (Mode 0):-
static float c_brg_1=0.F; // equivalent damping coefficient of bearings, (N m sec/rad)
static float c_brg_2=0.F; // Note: c_brg_i=0.F when comparing with "bs_model.m" on 08/12/07.
Further an allowance for Coulomb friction in the ballscrew bearings is included (Mode 1). In
addition to the code set out in Section A8.6.2 the following two lines are included for the
ballscrew bearings:-
rEnD[j+1][1]+=fric_brg(mu_brg,0.F,T_mot_max,1,double(n_mot_max)*2.*pi/60.,j,dt1,0,mode);
// - ballscrew bearing 1
rEnD[j+1][3]+=fric_brg(mu_brg,float(fabs(k_ax_1*float(d[MDR+NFS*B1+1][j]))),float(u)*T_mot_max,
MDR+NFS*B1+4,-v_max/bs_rat,j,dt1,1,mode);
// - ballscrew bearing 2
The nodes are numbered from zero upwards starting at the motor end of the ballscrew. In these
examples the ballscrew has 25 elements, the drive end bearing being at Node 1 and the non-drive
end bearing being at Node 24. The x co-ordinates of the various nodes are thus:-
Node x co-ordinate, Remarks Node x co-ordinate, Remarks
(m) (m)
0 0 13 0.728217
1 0.111 B1 14 0.779652
2 0.162435 15 0.831087
3 0.21387 16 0.882522
4 0.265304 17 0.933957
5 0.316739 18 0.985391
6 0.368174 19 1.03683
7 0.419609 20 1.08826
8 0.471043 21 1.1397
9 0.522478 22 1.19113
10 0.573913 23 1.24257
11 0.625348 24 1.294 B2
12 0.676783 25 1.346
304
A8.6.7 Other data
The linear dimensions of the model are based on the ballscrew drawing and bearing data as
follows:-
Overall length = 1346 mm, (drawing)
Distance from drive end to centre of drive end bearing = 125 mm, (drawing, the bearing buts up
to the ballscrew portion) 28 mm, (bearing data, bearing length)/2 = 111 mm
Distance from drive end of ballscrew portion to estimated centre of mass of coupling half =
28 mm, (bearing data) + 60 mm, (measured from rig, drive end of drive end bearing to non-drive
end of coupling half) + ((35+50)/2)/2 mm, (measured from rig) = 109.25 mm
Distance from centre of non-drive end bearing to end of ballscrew = 136 mm, (drawing, non-
drive end to the ballscrew portion) 98 mm, (measured from rig, non-drive end of non-drive end
bearing to end of ballscrew portion) + 28 mm, (bearing data)/2 = 52 mm.
Therefore the lengths of the elements are as follows:-
Element 1 l_bs1 0.109 m
Elements 2 to 24 l_bs2/23 1.183/23=0.051435 m
Element 25 l_bs3 0.052 m
From data used in the thermal model (Appendix 7.1):-
Ltbl=1.755; % length of table
AtblSection=0.026; % area of table cross section (m^2)
Therefore
Weight of table = 1.722 0.026 7860 = 352 kg
The load moved by the ballscrew, often referred to as the table, is in fact a saddle in the case of
the linear guide rig. Its properties are modelled as follows:-
static float m_tab=352.F; // mass of saddle/table, (kg)
static float Jy_tab=0.546F; // inertia of saddle/table about "y" axis, (kg m^2)
static float Jz_tab=120.F; // inertia of saddle/table about "z" axis, (kg m^2)
static float z_tab=125.e-3F; // height of saddle/table above ballscrew, (m)
static float z_slid=75.e-3F; // height of saddle/table above slideway, (m)
static float z_lenc=155.e-3F; // height of saddle/table above linear encoder, (m), (not used)
static float mu_tab=0.0341F; // coefficient of friction between saddle and slideways.
The stiffness of the linear guides on which the saddle is mounted is represented by a set of
springs with values:-
static float ky_slide=1.e9F; // stiffness of slides supporting nut - "y" direction, (N/m)
static float kz_slide=1.e9F; // stiffness of slides supporting nut - "z" direction, (N/m)
static float kOy_slide=10.4e6F; // stiffness of slides supporting nut - "Oy" direction, (N m/rad)
static float kOz_slide=10.4e6F; // stiffness of slides supporting nut - "Oz" direction, (N m/rad)
In addition the damping properties of the slideways are modelled by including viscous damping
elements whose coefficients of damping are assumed to be a multiple of the respective spring
stiffness. The damping ratio assumed is:-
static float drsl=0.0005F; // damping ratio - slide
305
The following data is for the version of the C program used for comparison with the data
generated by "bs_model.m" on 08/12/07.
306
float PT=14.e-6F; // pre-tension, (m/m)
float xMR1=l_bs1+133.e-3F; // x coordinate of monitoring ring 1
float xMR2=l_bs1+276.e-3F; // x coordinate of monitoring ring 2
mOoB1=10.e-3F; // mass of out-of-balance weight 1, (kg) **
phOoB1=0.F; // phase of out-of-balance weight 1, (deg)
mOoB2=10.e-3F; // mass of out-of-balance weight 2, (kg) **
phOoB2=0.F; // phase of out-of-balance weight 2, (deg)
float dt_in=50.e-6F; // input time step, (sec)
signed int i_filt=0; // low-pass Butterworth filter between controller velocity loop and power
amplifier
// 0 = no filter, 1 = 200 Hz, 2 = 400 Hz, 3 = 2000 Hz
// -1 = take moving average over 3 msec
signed int timp=0; // mode of input for demand data
// 0 = trapezoidal demand
// 1 = white noise mode
signed int comp=0;
double V_in=0.6; // input signal - mode 1, (V)
double rms=2.0069; // standard deviation of random signal on file
double t_int=2.e-3; // sampling time - mode 1, (sec)
signed int N_int=0; // number of main loops in time t_int
plst=3.0e-3; // time step controller position loop, (sec)
vlst=0.6e-3; // time step controller velocity loop, (sec)
ilst=0.2e-3; // time step controller current loop, (sec)
// Use zero to trigger end of out-of-balance excitations
iOoB[1]=0; OoBa[1]=0.L; OoBp[1]=0.;
//%
** These levels of out-of-balance were used for comparison with bs_model.m which deals with
situations where the screw is not put out of balance deliberately. The values used where the
ballscrew is put out of balance to generate measurable levels of vibration are typically:-
mOoB1=0.F; // mass of out-of-balance weight 1, (kg)
mOoB2=124.e-3F; // mass of out-of-balance weight 2, (kg).
307
Appendix 9.1 - Heidenhain controller theory
where
iref = the motor controller reference current, (A)
Kp = the PI controller proportional gain, (A sec/rev)
ve = the velocity error, (rev/sec)
Ki = the PI controller integral gain, (A/rev)
t = time, (sec)
Kvff = the velocity fast forward gain, (1/m)
D = the demand position of the mass, (m)
[308]
The velocity error is defined as the difference between the reference velocity and the speed of the
ballscrew nut as determined at the motor, viz:-
ve = vref K vel
where
vref = the reference velocity, (rev/sec)
Kvel = is a constant to convert from rad/sec to rev/sec, (= 1/(2))
= motor speed, (rad/sec)
The reference velocity is determined from the position error and the velocity demand as follows:-
vref = K v K1 ( D x) + K vff D&
where
Kv K1 = a pair of constants which together define a component of the velocity demand
in terms of the position error, (rev/(m sec))
x = ballscrew nut movement (sensed at motor), (m)
whence
v e = K v K 1 ( D x) + K vff D& K vel
2 K vel
= K v K 1 ( D x) + K vff D& x&
Ns p
and
2 K vel
v .dt = K
e v K 1 ( D.dt x.dt ) + K vff D& .dt
Ns p x&.dt
dD 2 K vel dx
= K v K 1 ( D.dt x.dt ) + K vff dt .dt dt .dt
Ns p
.
2 K vel
= K v K 1 ( D.dt x.dt ) + K vff dD
Ns p
dx
2 K vel
= K v K 1 ( D.dt x.dt ) + K vff D x
Ns p
where
eq ref = the motor applied voltage, (V)
Kcp = the motor controller electrical constant, (V/A)
[309]
iq = motor current, (A)
The torque applied by the electrical windings to the motor rotor is given by:-
F = K t iq
where
F = electrical torque, (N m)
Kt = motor mechanical constant, (N m/A)
The equation of motion for the motor rotor (and any load rigidly attached to it) in terms of
motion of the ballscrew nut is:-
2
m &x& + c x& = F + FA
Ns p
where
m = the motor and ballscrew inertia referred to linear motion plus mass of load, (kg)
c = viscous damping on mass movement, (N sec/m)
FA = applied force, (N)
Substituting for the motor voltage gives the electrical differential equation as:-
diq 2 N p
L = K cp (iq ref iq ) R iq x&
dt Ns p
diq 2 N p
L + ( K cp + R ) iq + x& = K cp iq ref
dt Ns p
[310]
By eliminating the torque, the mechanical equation of motion can be rendered in electrical
terms as:-
N s pm N pc N p
iq = &x& + s x& s FA
2 K t 2 K t 2 K t
and
diq N s pm N pc
= &x&& + s &x&
dt 2 K t 2 K t
= K cp
2 && ) + K cp + R F
( K p ve + K i ve .dt + K vff K aff D A
Ns p Kt
Lm Lc K m Rm K cp c Rc 2 2
&x&& + ( + cp + ) &x& + ( + +( ) N p ) x&
Kt Kt Kt Kt Kt Kt Ns p
2 K cp K p 2 K vel
= ( K v K1 ( D x) + K vff D& x& )
Ns p Ns p
2 K cp K i 2 K vel
+ ( K v K1 ( D.dt x.dt ) + K vff D x)
Ns p Ns p
2 K cp K vff K aff && K cp + R
+ D+ FA
Ns p Kt
[311]
Lm Lc K m Rm K cp c Rc 2 2 2 2
&x&& + ( + cp + ) &x& + ( + +( ) N p + K cp K p K vel ( ) ) x&
Kt Kt Kt Kt Kt Kt Ns p Ns p
2 K cp K p K v K1 2 2 2 K cp K i K v K1
+( + K cp K i K vel ( ) )x + x.dt
Ns p Ns p Ns p
2 K cp K i K v K1 2 K cp K i K vff 2 K cp K p K v K1 2 K cp K p K vff &
=
Ns p D.dt + ( Ns p
+
Ns p
)D +
Ns p
D
This is a fourth order differential equation in x.dt = , say, which can be put in a simpler
form as:-
a& 4 + b&&& + c && + d& + e = AD& + BD + C D.dt + EFA
or similar. If the system is to be stable and the roots of ax 4 + bx 3 + cx 2 + dx + e = 0 are all real,
they also must all be negative. If two or four of the roots form complex conjugate pairs, the real
components must be negative. This must be the case for a system that works, so let us assume
that after a while the transient activity that the homogeneous equation represents fades away, and
let us consider three cases of demand.
Let us consider the response of the system to three different types of demand.
[312]
1. A constant position
Let D = P, a constant, and let D.dt = Pt + A , where A is an arbitrary constant of integration.
&& = 0 . Let us try as a solution x = K, a constant and let
Then D& = 0 and D x.dt = K t + where
N s p ( K cp + R)
x.dt = D.dt + 2 K cp K i K v K1 K t
FA + .
[313]
2. A constant velocity
t2
Let D = at + b where a and b are constants and let D.dt = a
2
+ bt + G , where G is an
t2
where and are constants, and let x.dt =
2
+ t + where is a constant. Then x& = ,
K cp c Rc 2 2 2 2
( + +( ) N p + K cp K p K vel ( ) )
Kt Kt Ns p Ns p
2 K cp K p K v K1 2 2 2 K cp K i K v K1 t2
+( + K cp K i K vel ( ) ) ( t + ) + ( + t + )
Ns p Ns p Ns p 2
2 K cp K i K v K1 t2 2 K cp K i K vff 2 K cp K p K v K1
= (a + bt + G ) + ( + ) ( a t + b)
Ns p 2 Ns p Ns p
2 K cp K p K vff K cp + R
+ a + FA
Ns p Kt
N s pRc (2 ) N p
2
N s pK cp c
+ +
Kt Kt Ns p N s p ( K cp + R )
=G a + FA
2 K cp K i K v K1 2 K cp K i K v K1 K t
[314]
This gives the general solution for x as:-
x = D + x .
N s pRc (2 ) N p
2
N s pK cp c
+ +
Kt Kt Ns p N s p ( K cp + R)
x.dt = D.dt 2 K cp K i K v K 1
D& +
2 K cp K i K v K 1 K t
FA + .
3. A constant acceleration
1 2 t3 t2
Let D = s + u t +
2
f t where s, u and f are constants and let D.dt = f
6
+ u + st + G , where
2
1 t3 t2
x = + t + t 2 , where , and are constants, and let
2 x.dt = 6 + 2 + t + where is
a constant. Then x& = + t , &x& = , &x&& = 0 and:-
Lm Lc K cp m Rm K cp c Rc 2 2 2 2
0+ ( + + ) + ( + +( ) N p + K cp K p K vel ( ) ) ( + t )
Kt Kt Kt Kt Kt Kt Ns p Ns p
2 K cp K p K v K1 2 2 1
+( + K cp K i K vel ( ) ) ( + t + t 2 )
Ns p Ns p 2
2 K cp K i K v K1 t3 t2
+ ( + + t + )
Ns p 6 2
2 K cp K i K v K1 t3 t2
= ( f + u + st + G )
Ns p 6 2
2 K cp K i K vff 2 K cp K p K v K1 1 2 2 K cp K p K vff
+( + ) (s + ut + ft )+ (u + f t )
Ns p Ns p 2 Ns p
2 K cp K vff K aff K cp + R
+ f+ FA
Ns p Kt
[315]
Lc K cp m Rm K cp c Rc 2 2 2 2
( + + ) f + ( + +( ) N p + K cp K p K vel ( ) ) ( + f t )
Kt Kt Kt Kt Kt Ns p Ns p
2 K cp K p K v K1 2 2 2 K cp K i K v K1 t2
+( + K cp K i K vel ( ) ) ( + t ) + ( + t + )
Ns p Ns p Ns p 2
2 K cp K i K v K1 t2 2 K cp K i K vff 2 K cp K p K v K1
= (u + st + G ) + ( + ) (s + ut )
Ns p 2 Ns p Ns p
2 K cp K p K vff 2 K cp K vff K aff K cp + R
+ (u + f t ) + f + FA
Ns p Ns p Kt
and:-
N s pLc N s pK cp m N s pRm
+ +
Kt Kt Kt
=G f
2 K cp K i K v K 1
N s pK cp c N s pRc ( 2 ) 2
+ + N p
Kp 1 Kt Kt Ns p K vff K aff
+( + ) f + f
Ki N s pK v K 1 2 K cp K i K v K 1 K i K v K1
N s pK cp c N s pRc (2 ) 2
+ + N p
Kt Kt Ns p N s p ( K cp + R )
u + FA
2 K cp K i K v K 1 2 K cp K i K v K 1 K t
[316]
This gives the general solution for x as:-
N s pK cp c N s pRc (2 ) 2
+ + N p
Kt Kt Ns p && + x .
x=D D
2 K cp K i K v K1
N s pK cp c N s pRc (2 ) 2
+ + N p
Kt Kt Ns p
x.dt = D.dt 2 K cp K i K v K 1
D&
N s pLc N s pK cp m N s pRm
+ +
Kt Kt Kt &&
D
2 K cp K i K v K 1 .
N s pK cp c N s pRc ( 2 ) 2
+ + N p
Kp 1 Kt Kt Ns p && + K vff K aff D
&&
+( + ) D
Ki N s pK v K 1 2 K cp K i K v K 1 K i K v K1
N s p ( K cp + R)
+ FA + x
2 K cp K i K v K 1 K t
Comments
Let us consider the behaviour of the controller with a constant position demand and an
external applied force. Position is maintained independent of force, which is counter-intuitive
and suggests an infinite controller stiffness. Let us consider the situation more carefully. The
displacement response, nett of transients, is given by:-
d
x=
dt
x.dt
d N s p ( K cp + R)
= D.dt +
dt 2 K cp K i K v K 1 K t
FA .
N s p ( K cp + R ) dFA
= D+
2 K cp K i K v K 1 K t dt
This gives rise to the concept of controller jerk stiffness kconj defined by:-
2 K cp K i K v K 1 K t
k conj =
N s p ( K cp + R )
Thus, when an external force is applied to the system, there is a response depending on the rate at
which the force is being applied, but when a steady force is achieved, the system comes back to
true position. This analysis neglects transient behaviour predicted by the complementary
[317]
equation. In practice, such behaviour may mask completely this phenomenon, but at least the
apparent "infinite stiffness" has been explained. In terms of controller jerk stiffness, the position
time integral is given by:-
FA
x.dt = D.dt + k conj
+
When a constant velocity is required, after transients have died away, a true value is given
both for position and velocity. Rendered in terms of controller jerk stiffness, the position time
integral is given by:-
c 2 N p FA
x.dt = D.dt (
k conj
+
N s pK cp K i K v K 1
) D& +
k conj
+
In addition to the error due to external force, there is an error term dependent on the mechanical
damping term and the jerk stiffness of the controller, and another term dependent on the back
e.m.f. of the motor. Both of these error terms are proportional to the velocity demand.
When the demand is a constant acceleration, the response settles down to the true value for
velocity, but a "lagging" error arises for the position. After transients, the position is given by:-
c 2 N p && + x
x=D( + ) D
k conj N s pK cp K i K v K 1
Thus, not surprisingly, the position error contains the same terms as those in the time integral of
position, but they are proportional to acceleration demand. The position time integral is given
by:-
c 2 N p m N s pLc
x.dt = D.dt ( k conj
+
N s pK cp K i K v K 1
) D& ( +
k conj 2 K cp K i K v K 1 K t
&&
) D
This includes a "lagging term", which includes an internal force term due to accelerating the
inertia and a term proportional to the motor inductance times the load's viscous drag coefficient,
and a more complex "leading term" which is dependent on the system's mechanical damping, the
motor's back e.m.f. and the ratio of the proportional and integral terms of the controller.
[318]
"Quantisation"
It is common for a controller to operate in part in a step-wise manner, that is, the demand and
feedback is sampled once in a defined time interval. In fact, the controller used here as an
example up-dates its demand and velocity signal every 3 msec, its velocity feedback every
0.6 msec, and its current feedback every 0.2 msec.
What effect does this have on errors? Consider some demand function D(t). Let it be sampled
every seconds, that is to say, for a set of sample times {0, , 2, , n, }, where n is an
integer, t n =n and the sampled demand function Ds (t ) = D(t n ) for t n t < t n+1 . Over every time
interval the sampled demand varies from being "up-to-date" to being old, therefore, to a close
approximation, at least for mathematically "well-behaved" functions, we can write:-
Ds (t ) = D(t 2) + P ( , t )
where P(, t) is a periodic function of time with a repeat time of . (Here the meaning of P is not
as precise as the usual definition of a periodic function, that is that P(t ) = P(t + i ) for any
integer i. Rather that the values of P go up and down over a succession of time intervals in a
broadly similar manner with a mean value over any period which is close to zero. The amplitude
can be expected to change over a time scale larger than .)
Leaving aside the fluctuations implied by P, the longer term demand as it affects the controller
can be approximated as Dm given by:-
Dm (t ) = D(t 2)
To get a feel for the effects of quantisation let us examine the three cases considered before.
2. A constant velocity. Here D = at + b where a and b are constants. This means that:-
Dm (t ) = a (t ) + b = D(t ) D& (t ) .
2 2
Therefore the demand, averaged over the sample time, is reduced by D& 2 . Since the controller
settles down to true position under constant velocity demand, a follower error of D& 2 can be
expected.
[319]
1 2
3. A constant acceleration. Here D = s + u t + f t where s, u and f are constants. The
2
average sampled demand is then close to:-
1
Dm (t ) = s + u (t ) + f (t ) 2
2 2 2
1 1
= s + ut + f t 2 u f t + f ( ) 2 .
2 2 2 2 2
1
= D(t ) D& (t ) + D && (t )( ) 2
2 2 2
Therefore, in addition to the error arising through constant acceleration which has already been
evaluated, a lagging error of D& 2 can be expected together with a much smaller leading error of
&& 2 4 .
D
In addition to these "steady state" errors, errors fluctuating at the sampling rate of will occur.
The amplitude of these is expected to increase broadly with velocity demand. However, the
effect of a periodic "forcing term" like P(, t) will stimulate the transient motion predicted by the
homogeneous equation. The amplitude of the response will be dependent in part on whether the
solution of the homogenous equation involves oscillatory behaviour, and if so, how close the
sample rate 1/ is to the controller/mechanical system natural frequencies, and how much
"damping" is involved.
[320]
Effect of sampling in the position loop on a controller with a "velocity feed forward"
feature
Ramp up at continuous acceleration with continuous variables
0.6
0.5
0.4
Movement, (mm)
Demand
0.3
Response
0.2
0.1
0
0 0.002 0.004 0.006 0.008 0.01 0.012
Time, sec
5
Velocity, (rev/sec)
4
Demand
Response
3
0
0 0.002 0.004 0.006 0.008 0.01 0.012
Time, sec
[321]
Ramp up at continuous acceleration sampled position loop
4.5
3.5
Movement, (mm)
0.5
0
0 0.01 0.02 0.03 0.04
-0.5
Time, sec
20
15
Velocity, (rev/sec)
10
Demand
Response
5
0
0 0.01 0.02 0.03 0.04
-5
Time, sec
Figure A9.1.3 Controller behaviour with a 3 msec time step in the velocity loop
Note the change from a smooth response in front of demand (which can be tuned to match it),
to a response which is behind demand and which fluctuates at the sample rate.
[322]