Top Banner
!"#$%&"#’(") !!"#$$%&’ !) !!"#$%# !!"#!!$ !!"#$ !!"#$%&’ "#$%& ’()*+,- .)( /#’&)0% #$ 0+,1%$#,%& +$2#$++(#$2 %- 3+,1$#,%& 4$#5+(6#-7 ). 8+$0%(9 Date: 23 July 2012 Supervisor: Steen Markvorsen By: Lasse Birk Olesen, s082192
29

Mathematical Modelling of Contact Between Rough Surfaces

Oct 30, 2014

Download

Documents

Lasse Olesen

Diploma thesis from Technical University of Denmark by Lasse Olesen.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mathematical Modelling of Contact Between Rough Surfaces

!

!"#$%&"#'(")!!!"#$$%&'(!)(!!"#$%#&

!!"#!!$%!!"#$%!!"#$%&'!

!

!

"#$%&!'()*+,-!.)(!/#'&)0%!#$!0+,1%$#,%&!+$2#$++(#$2!%-!

3+,1$#,%&!4$#5+(6#-7!).!8+$0%(9!

Date: 23 July 2012

Supervisor: Steen Markvorsen

By: Lasse Birk Olesen, s082192

Page 2: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

1

Table of contents

1! Abstract .................................................................................................. 2!2! Introduction ............................................................................................ 2!3! Modelling and scripting .......................................................................... 2!

3.1! Data structure and preparation ........................................................ 2!3.1.1! Data structure ............................................................................ 2!3.1.2! Data alignment .......................................................................... 4!3.1.3! Horizontalization ........................................................................ 5!3.1.4! Result ......................................................................................... 6!

3.2! Real contact area and contact force ................................................. 6!3.3! Friction force .................................................................................... 9!3.4! Mean angles of asperities ................................................................ 11!3.5! Size and amount of contact spots ................................................... 13!3.6! Data coarsening and interpolation .................................................. 16!

3.6.1! Data coarsening ........................................................................ 16!3.6.2! Linear interpolation .................................................................. 18!3.6.3! Polynomial interpolation .......................................................... 20!

3.7! Construction of 3D model for use in 3D printer ............................. 22!4! Discussion ............................................................................................. 25!5! Conclusion ............................................................................................. 26!6! References ............................................................................................. 28!7! Appendices ............................................................................................ 28!

Page 3: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

2

1 Abstract

A discrete model for contact between rough surfaces based on complete surface roughness measurement data sets from two nominally flat surfaces is established. Calculations for real contact area, deformation friction area, mean asperity angles, and size and amount of contact spots are then implemented. The script is then applied to an example data set.

Furthermore, to find ways to minimize computational load, the loss of accuracy when employing simple data removal and linear interpolation is compared. A script for performing polynomial spline interpolation is also implemented.

A script for creating a 3D model and exporting it to an STL-file based on the surface roughness data is also created. Finally it is discussed how these methods may be confirmed experimentally.

2 Introduction

Two nominally flat solids are brought into contact. A normal force N is acting so that the contacting surfaces are pressed against each other.

The solids have a surface roughness consisting of ”mountains and valleys” coming from the manufacturing process. When the two surfaces are pressed against each other the ”mountains” from each surface will meet and transmit the load from one solid to the other.

Mathematical modelling of contact between rough surfaces is normally carried out using statistical representations of the surface topography. This carries an inherent source of inaccuracies especially in the cases where the topography differs from ideal statistical distributions.

To mitigate these inaccuracies this work will replace the statistical model in favor of treating complete datasets from measurements of rough surfaces.

3 Modelling and scripting

The topography data used has been mechanically measured from the surfaces of pins and discs used in pin on disc tests. This data was supplied by Konstantinos Poulios of DTU MEK. The methods developed below will therefore be used to model contact between such pins and discs.

The example results produced below as demonstrations of the scripts have used the files Pin10˙SUSTADUR˙virgin˙mag10˙offcenter˙111118.txt and Disc08˙SUSTADUR˙lubricated˙R62˙pos1.asc as data sources for pin and disc respectively. All script snippets in the following sections are in the MATLAB language.

3.1 Data structure and preparation

3.1.1 Data structure

Available topography data for pins is of a three dimensional nature with the height of measurement points organized in a two dimensional matrix.

Page 4: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

3

Going from one row to the next in the matrix represents moving a fixed distance in the x direction along the surface of the pin, and going from one column to the next in the matrix represents moving a fixed distance in the y direction along the surface of the pin.

Figure 3.1 - Directions along a surface

Thus:

x(i) = (i !1) "drow

y( j) = ( j !1) "dcolumn

z(i, j) = mij

(3.1)

where i and j are matrix row and column numbers respectively, d is the distance between row and column measurements, and mij is the data contained in the matrix ij-cell.

As an example, suppose the following measurement data matrix and distances are given:

M =

2 3 2

4 !1 3

!6 4 0

"

#

$$

%

&

''µm

drow

= 3µm

dcolumn

= 2.5µm

(3.2)

Then, for instance, the following point would be known:

x(3) = (3!1) "3= 6µm

y(2) = (2 !1) "2.5 = 2.5µm

z(3,2) = 4µm

(3.3)

On the other hand, available topography data for discs are of a two

dimensional nature with measurements having been carried out only along a single line on the disc. Data is in the format of a two-column matrix with the contents of the first column representing horizontal position and the contents of the second column representing height.

Page 5: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

4

To model the contact between pin and disc it is necessary to utilize three dimensional topograhy for both. According to Konstantinos Poulios of DTU MEK it is an acceptable approximation of the actual disc topography to simply extrude the 2D profile into the third dimension.

3.1.2 Data alignment

As investigations in this work will include a discrete point by point comparison between pin and disc it is necessary to align points so that points in disc data will have the same distance between them as points in pin data.

As the resolution of the available disc data is about one order of magnitude higher than the resolution of the pin data, the designed script will remove all disc data points until it reaches the disc data point that is nearest the next pin data point which will then be aligned.

Figure 3.3 - An example of the distribution of measured data points across

two surfaces

Assuming the crosses in Figure 3.3 are data points from the disc while the diamonds are data points from the pin, cross 10 will be aligned with diamond 2 and cross 20 will be aligned with diamond 3 with the result being shown in Figure 3.4.

Figure 3.4 - Aligned data after removal of intermediate points

To minimize inaccuracies arising from this operation, interpolation is performed when aligning data points. The above is implemented in a script as follows:

Figure 3.2 - Left: Example of 2d profi le. Right: Profi le extruded into third dimension.

Page 6: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

5

1. %A new variable for containing the aligned disc data 2. disc = zeros( size(pin(1:end , 1),1) , 2); 3. count = 0; 4. 5. j = 2; 6. for i = 1 : size(pin(1:end,1)), 7. %Find disc point just after next pin point 8. while disc_data(j , 1) < pin_xpos(i) 9. j = j+1; 10. end 11. 12. %For interpolation, calculate the slope between this and the

last disc point 13. slope = (disc_data(j, 2) - disc_data(j-1, 2)) / disc_step;

14. %Interpolation 15. intpHeight = disc_data(j-1, 2) + slope * ( pin_xpos(i) -

disc_data(j-1,1) ); 16. 17. %Assign new values 18. disc(i , 2) = intpHeight; 19. disc(i , 1) = pin_xpos(i); 20. end

3.1.3 Horizontalization

A plot of the raw disc data gives Figure 3.5. Inaccuracies in the measuring setup have caused the mean surface profile to skew away from the horizontal that would be expected from a nominally flat surface.

Figure 3.5 - Raw disc data

A script is implemented to horizontalize the data before further analysis.

1. %Horizontalize disc data 2. %polyfit() will return a linear function that fits the data with

a least squares method 3. p = polyfit(disc_data(1:end,1) , disc_data(1:end,2) , 1); 4. 5. %polyval() will return a vector that contains the difference

between the linear function and 0 along all points of the disc data

6. yfit = polyval(p , disc_data(1:end,1)); 7.

Page 7: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

6

8. %The difference is subtracted from the actual disc data to horizontalize it

9. disc_data(1:end, 2) = disc_data(1:end , 2) - yfit; Applied to the example data the script yields:

Figure 3.6 - Disc data after horizontalization

In the data at hand, horizontalization of pin data is not necessary.

3.1.4 Result

After removing intermediate disc data points and aligning the remaining points with the pin data points, extruding the 2D disc profile into the third dimension, and horizontalizing data, the result is that both pin and disc data are three dimensional point clouds with all points on one surface perfectly aligned in the x and y directions with corresponding points on the other surface. The data is now ready for analysis.

3.2 Real contact area and contact force

It is assumed that two nominally flat solids are pressed together with a

force N, and that they are made from steel with a yield strength !y.

The asperity tops that meet the opposing tops will deform elastically and plastically until the contact area is large enough to carry the the total load N.

The concepts apparent contact area and real contact area are used in the following. The apparent contact area is the area of the two surfaces in contact, L!W. The real contact area is the area of the contacting asperities which is

much smaller that the apparent contact area. Thus:

! y Ai = Ni=1

n

" (3.4)

where Ai is the area of one contact spot.

Page 8: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

7

Figure 3.7 - Distance between coordinate systems

As we are interested in establishing a connection between force and contact area, what we want to find is the projected contact area in the direction of the force (z direction).

Figure 3.8 - 1: Two rough surfaces approaching. The upper surface is soft,

the lower surface is hard. 2: Asperity in contact with opposing surface. Contact area highlighted in red. 3. Projected contact area highlighted in red.

Given this and the fact that all points have been aligned with points on the opposing surface, the real contact area can now be approximated using a discrete point by point analysis.

Say we have matrixes A(x,y) and B(x,y) containing height measurements from two different surfaces. A new distance matrix is then defined as:

D(x, y) = dz ! A(x, y)! B(x, y) (3.5)

where dz is the distance between origins of the coordinate systems of the two surfaces as seen in Figure 3.7.

The D matrix now contains the distance between any two opposing points on the surfaces. Where this distance is equal to or less than 0 the points are in contact.

Let ntot be the amount of elements in D, and nc be the amount of elements in D that are equal to or below 0 (amount of points in contact). Dividing the

Page 9: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

8

latter by the former gives us a contact ratio that can be applied to the apparent contact area to give us the real projected contact area:

Areal =nc

ntot!Aapp =

nc

ntot!L !W (3.6)

where Aapp is the apparent contact area equal to length times width of the surface.

Assuming that the majority of deformation occurs plastically, and with the real projected contact area now estimated, the contact force can be calculated using (3.4):

N =! y Ai =! y "Areali=1

n

# (3.7)

This was scripted as follows:

1. %Create distance matrix 2. distance = zeros( ceil( size(pin(1,1:end),2)) ,

ceil(size(pin(1:end,1),1)) ); 3. 4. %meanDistance is the distance between the origins of the

coordinate systems of the two surfaces, and not necessarily the actual mean distance between asperities of the two surfaces

5. meanDistance = 8e-6; 6. 7. %Iterate through both dimensions of the pin data matrix. As the

disc data matrix only has one dimension, it is assumed the same profile holds for any depth of the disc

8. for i = 1:size(distance,1) 9. for j = 1:size(distance,2) 10. distance(i,j) = meanDistance - pin(j,i) - disc(j,2); 11. end 12. end 13. 14. %Results 15. contactRatio = contactsAmount / ( size(distance,1) *

size(distance,2) ) 16. contactArea = contactRatio * pin_width * pin_height

To get an impression of the contact scenario a visualization is useful.

Plotting the distance matrix yields Figure 3.9.

Page 10: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

9

Figure 3.9 - Example of a plot of the distance matrix. Blue areas are in

contact.

3.3 Friction force

The two dominant friction phenomena in contact between dry rough surfaces are adhesion friction and deformation friction.1

Adhesion Assuming the mean contact pressure is equal to the hardness of the

material, which in turn is assumed to be very close to the bulk maximum shear stress, then the adhesive friction is:2

Fa= Ak (3.8)

where A is the real contact area and k is the bulk maximum shear stress. As the real contact area has been estimated above, the adhesive friction component can now be estimated given the bulk maximum shear stress.

1 R. Gohar and H. Rahnejat, 2008, Fundamentals of Tribology, p. 54. 2 R. Gohar and H. Rahnejat, 2008, Fundamentals of Tribology, p. 56.

Page 11: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

10

Deformation Deformation friction consists of two subcomponents. One is the phenomena of surface asperities interlocking, where the only way

to facilitate movement is by squashing or displacing opposing asperities laterally. This is a relatively insignificant contributor to deformation friction.3

The other component arises from asperities of the harder material making the softer opposing material deform plastically by ploughing grooves in the surface. Completing the calculation a friction force stemming from the ploughing component is complicated and outside the scope of this work, but to that end it will be useful to know the projected area that asperities of the hard surface will plough in the softer surface.

Figure 3.10 - Black line is the hard disc surface. Blue line is the

undeformed pin.

Figure 3.11 - After deformation of pin.

Consider the situation in Figure 3.11 and assume the disc surface indicated by the black line is moving in the positive x-direction relative to the blue pin surface.

The projected area that is obstructed in the x direction can then be approximated as the projected distance in the z direction from the highest

3 R. Gohar and H. Rahnejat, 2008, Fundamentals of Tribology, p. 60.

Page 12: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

11

datapoint of the asperity to the lowest point of the asperity still in contact times the distance in the y-direction to the next set of data points.

Summing across all data sets in the y-direction for this asperity and across all other disc asperities will give us an approximation of the total deformation area.

This was implemented in a script as follows: 1. %Calculate deformation friction area 2. %Initiate variable 3. fricArea = 0; 4. 5. %The width that one dataset represents in the y direction 6. setWidth = 1 / pin_yres 7. 8. %Iterate through both dimensions of the pin 9. for i = 1:size(pin,1)-1 10. for j = 1:size(pin,2)-1 11. 12. %Calculate depth of penetration of this point 13. overlapThis = pin(i,j) + disc(i,2) - meanDistance; 14. 15. %Calculate depth of penetration of next point 16. overlapNext = pin(i+1,j) + disc(i+1,2) - meanDistance; 17. 18. %If next point is not in contact, set penetration to 0 19. if overlapNext < 0 20. overlapNext = 0; 21. end 22. 23. %First part of if-statement tests if this point is on a

downhill slope in the movement direction (an uphill slope in the movement direction will not face any obstruction). Second part of if-statement tests if this point is in contact.

24. if disc(i,2) > disc(i+1,2) && overlapThis > 0 25. 26. %Add to fricArea the z-direction distance from the

current point to the next multiplied by the width, that the dataset represents

27. fricArea = fricArea + (overlapThis - overlapNext) * setWidth;

28. end 29. end 30. end

The variable fricArea now contains the projected area obstructed by

movement in the positive x-direction.

3.4 Mean angles of asperities

For statistical modelling of friction between rough surfaces, which is outside the scope of this work, it will be useful to know the mean angles of asperities compared to a completely plane surface.

Note that given a specific point on a rough surface, angles can be determined in an infinite amount of directions from this point. However, for a friction analysis it is assumed that the direction of the friction force is known and that it will also be for this same direction that the angles would be useful to determine.

Page 13: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

12

Figure 3.12 - Angle of asperity

The angle " in Figure 3.12 can be calculated by:

! = arctan(y2" y

1

x2" x

1

) (3.9)

As all angles between all data points in one direction has been determined as in (3.9), the mean angle is determined as follows:

!mean

=1

n!i

i=1

n

" (3.10)

This assumes that the spacing between all data points in this direction is equal which is the case in the data at hand.

This has been programatically implemented as follows:

1. %Calculate mean angle in disc 2. meanSlope = 0; 3. for i = 1:size(disc,1)-1 4. %The difference in y between two points are divided by the

difference in x 5. slope = ( disc(i+1,2)-disc(i,2) ) / ( disc(i+1,1)-disc(i,1)

); 6. %Add slope divided by amount of slopes to the mean slope 7. meanSlope = meanSlope + abs(slope) / (size(disc,1)-1); 8. end 9. 10. %Convert slope to angle in degrees 11. meanAngleDisc = atan(meanSlope); 12. meanAngleDiscDeg = meanAngleDisc / (2*pi) * 360 13. 14. 15. %Calculate mean angle in pin using same procedure as in disc.

Two iterations are necessary as pin matrix has two dimensions. 16. meanSlope = 0; 17. for i = 1:size(pin,1)-1 18. for j = 1:size(pin,2)-1 19. slope = (pin(i,j) - pin(i,j+1)) / (1/pin_yres); 20. meanSlope = meanSlope + abs(slope) /

(size(pin,1)*((size(pin,2)-1)) ) ; 21. end 22. end 23. 24. %Convert slope to angle in degrees 25. meanAnglePin = atan(meanSlope); 26. meanAnglePinDeg = meanAnglePin / (2*pi) * 360

Page 14: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

13

3.5 Size and amount of contact spots

A contact spot is an agglomeration of neighboring points in contact with the opposing surface. For further analysis of contact and friction mechanics it will be useful to know the size and amount of contact spots.

Figure 3.13 - Example of distribution of contact spots across two surfaces

in contact. Black is not in contact, white is in contact.

To solve this programmatically, a recursive function has been written to explore the distance matrix from equation (3.5). The strategy is for the recursive function to identify all contact points that are connected to the current point, and thus define a contact spot consisting of all these points in contact.

Below is the relevant part from the main script from where the recursive function is called:

1. %Create matrix for mapping discovered points with 1 2. foundPoints = zeros(size(distance,1), size(distance,2)); 3. 4. %Count amount of spots in this variable 5. spotsAmount = 0; 6. 7. %Create vector for keeping track of how many spots of a certain

size. For instance, spotSizes(15) will contain the number of spots of a size of 15 points

8. spotSizes = zeros(10^4,1); 9. 10. %Iterate through the distance matrix (D matrix) 11. for i = 1:size(distance,1) 12. for j = 1:size(distance,2) 13. 14. %New contact spot found if true 15. if distance(i,j) <= 0 && foundPoints(i,j) == 0 16. 17. %Add to amount of spots 18. spotsAmount = spotsAmount + 1; 19.

Page 15: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

14

20. %Call recursive function to explore spot 21. [foundPoints, spotSize] = expSpot(distance,

foundPoints, i, j); 22. 23. %Collect spot size 24. spotSizes(spotSize) = spotSizes(spotSize) + 1; 25. end 26. end 27. end

Below is the recursive function expSpot(), which finds all contact points

connected to the current point and thus defines a spot:

1. function [returnedPoints, returnedSize] = expSpot(distance, foundPoints, i, j)

2. 3. %The current point is marked as having been identified as a

contact point 4. foundPoints(i,j) = 1; 5. 6. %The currently known size of the spot is 1 point 7. spotSize = 1; 8. 9. %The following if statement returns true if the next point in

the positive y-direction is a contact point that is not yet discovered

10. if j+1 <= size(distance,2) && distance(i,j+1) <= 0 && foundPoints(i,j+1) == 0

11. 12. %expSpot() now calls itself upon the neighboring

undiscovered contact spot 13. [foundPoints, dspotSize] = expSpot(distance, foundPoints, i,

j+1); 14. 15. %Increase the spotsize by what expSpot has just discovered 16. spotSize = spotSize + dspotSize; 17. end 18. 19. %The following if statement returns true if the next point in

the negative y-direction is a contact point that is not yet discovered

20. if j-1 > 0 && distance(i,j-1) <= 0 && foundPoints(i,j-1) == 0 21. [foundPoints, dspotSize] = expSpot(distance, foundPoints, i,

j-1); 22. spotSize = spotSize + dspotSize; 23. end 24. 25. %The following if statement returns true if the next point in

the positive x-direction is a contact point that is not yet discovered

26. if i+1 <= size(distance,1) && distance(i+1,j) <= 0 && foundPoints(i+1,j) == 0

27. [foundPoints, dspotSize] = expSpot(distance, foundPoints, i+1, j);

28. spotSize = spotSize + dspotSize; 29. end 30. 31. %The following if statement returns true if the next point in

the negative x-direction is a contact point that is not yet discovered

32. if i-1 > 0 && distance(i-1,j) <= 0 && foundPoints(i-1,j) == 0

Page 16: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

15

33. [foundPoints, dspotSize] = expSpot(distance, foundPoints, i-1, j);

34. spotSize = spotSize + dspotSize; 35. end 36. 37. %Return the updated map of already discovered points 38. returnedPoints = foundPoints; 39. 40. %Return the currently known size of the spot 41. returnedSize = spotSize; 42. end

Applying this function to, for instance, the data visualized in Figure 3.13

gives us the amount of spots in the variable spotsAmount as 530. With this the average contact spot size can be determined using the area

from equation (3.6):

Aspot ,mean =Areal

spotsAmount (3.11)

The above function also produces the vector spotSizes which contains an account of how many spots of a given size are present. For instance, if spotSizes(15)=7, then the contact scenario contains 7 spots of a size of 15 points. This can be used to plot the distribution of spot sizes as seen in Figure 3.14.

Figure 3.14 - Distribution of spot sizes in the data seen in Figure 3.13

Knowing the total amount of points and the total apparent area being analyzed, the spot size in points can easily be converted to spot size in mm2:

sizemm

2 = sizepts !Aapp

Npts

(3.12)

Page 17: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

16

where Npts is the total amount of points, and Aapp is the apparent area being analyzed.

With the mean area known, different characteristics of the contact spots can be easily determined assuming a certain geometry. For instance, if the contact spots are assumed to be mostly circular, the average radius is then:

r =size

mm2

! (3.13)

On typical computers the recursive function can only be applied to data

sets of a certain size before the programming environment reaches its limits. In practice, many sets of topography data will have to be coarsened in resolution. For the data set used in the above example it was necessary to coarsen the data from 2,000,000 to about 30,000 points. It should be noted that the amount of contact spots conveyed by the data may be susceptible to change as data is coarsened, so a good estimate of the amount of contact spots may require an environment capable of handling recursions of larger data sets.

This is further discussed in section 3.6.

3.6 Data coarsening and interpolation

3.6.1 Data coarsening

Scripting The data at hand for this work was of a resolution of about 2,000,000 data

points for a surface. For some operations this turned out to be an impractically large amount of data for a typical computer to handle, and one can easily imagine larger data sets posing a problem for even more powerful computers.

The data coarsening function will simply remove most data and keep data points at a certain interval as seen below:

1. %Disc data is kept in 'disc'. A temporary new variable,

'disc_new', of a smaller size is created. 2. %'skip' is the factor with which a data set will be made

smaller. For instance, skip=5 will keep 1/5 of the original data.

3. disc_new = zeros(ceil(size(disc,1)/skip), 2); 4. 5. %Data is moved into the new variable according to the skip

interval. 6. for i = 0:size(disc_new,1)-1 7. disc_new(i+1, 2) = disc(1 + i * skip, 2); 8. disc_new(i+1, 1) = disc(1 + i * skip, 1); 9. end 10. 11. %The old data is replaced by the smaller data. 12. disc = disc_new; 13. 14. %New variable for pin data. 15. pin_new = zeros(ceil(size(pin,1)/skip), ceil(size(pin,2)/skip)); 16. 17. %Pin data has an extra dimension so two for-loops are necessary.

Page 18: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

17

1. %If x and y are amount of data points in each dimension of a grid, then the ratio of removed data will be:

2. % 1 - (x/skip)*(y/skip) / (x*y) = 1 - 1/skip^2 18. for i = 0:size(pin_new,1)-1 19. for j = 0:size(pin_new,2)-1 20. pin_new(i+1,j+1) = pin(1 + i * skip, 1 + j * skip); 21. end 22. end 23. 24. pin = pin_new; 25. 26. %Update resolutions 27. pin_xres = pin_xres / skip; 28. pin_yres = pin_yres / skip;

Coarsening and loss of precision By running the script with different values for skip resulting in different

shares of data left, it will be determined how much data can be removed without a significant loss of precision in results.

skip= 1 2 5 10 50 100

Pin data left

100% 25% 4% 1% 0.04% 0.01%

Contact area, mm2 0.639 0.639 0.639 0.641 0.625 0.696

Contact area,

change - 0% 0% 0.31% 2.19% 8.92%

Deformation area,

mm2

0.0311 0.0313 0.0303 0.0307 0.0123 0.00409

Deformation area, change

- 0.64% 2.57% 1.29% 60.5% 86.8%

Mean angle disc

3.16 3.01 2.73 2.55 1.24 0.21

Mean angle disc, % change

- 4.75% 13.6% 19.3% 60.8% 93.4%

Mean angle pin

16.1 16.1 15.1 13.3 3.84 1.62

Mean angle pin, % change

- 0% 6.21% 17.4% 76.1% 89.9%

* Limits in computational power made it impossible to determine amount of contact spots for more than 10% data with the implemented script

Table 3.1 - Loss of precision as data is removed

* Limits in computational power made it impossible to determine amount of contact spots for more than 10% data with the implemented script

Page 19: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

18

Table 3.1 it is seen that the estimation of contact area does not change significantly until only 0.01% of the original data is left. Even when only 0.04% data is retained the calculated area only differs a few percent.

The calculated deformation area is seen to err within acceptable limits until 1% of the data is left. With only 0.04% data left, the error increases dramatically to 60.5%.

The calculation of mean angles is seen to be more sensitive to data loss, and the inaccuracy in all cases shows itself as lower angles, never higher angles. This can be explained by the fact that as a sufficient amount of data points are skipped, the next data points to be kept is likely to be on the other side of a peak and thus the slope to the top of the mountain is lost.

Figure 3.15 - The effect of skipping data points on asperity angles

For instance, in Figure 3.15 the three black asperities represent the original data set. By data coarsening only data points 1 and 2 are kept and the connecting red line is seen to have a much smaller slope angle than the original asperities.

3.6.2 Linear interpolation

To attempt to increase accuracy after removing data points, linear interpolation between the remaining data points will be performed. Here follows the functions to interpolate disc and pin data respectively:

1. %Keep original data in intervals of 'skip', replace removed data with linearly interpolated points

2. %For disc: Amount of data points to skip before keeping a point. (1 - 1/skip) is the ratio of data that will be removed. skip should be integer.

3. 4. %Move to the next data points to be kept 5. for i = 1+skip:skip:size(disc, 1) 6. 7. %For each removed data point 8. for j = 1:skip-1 9. 10. %Calculate slope of interpolation 11. slope = (disc(i,2) - disc(i-skip, 2)) / skip; 12. 13. %Replace point by interpolation 14. disc(i-skip+j, 2) = disc(i-skip, 2) + j * slope; 15. end 16. end

3. %For pin: Amount of data points to skip before keeping a point. Removing in two dimensions.

Page 20: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

19

4. %If x and y are amount of data points in each dimension of a grid, then the ratio of removed data will be:

5. % 1 - (x/skip)*(y/skip) / (x*y) = 1 - 1/skip^2 6. 7. %First dimension of pin 8. for i = 1+skip:skip:size(pin, 1) 9. for j = 1:size(pin, 2) 10. for k = 1:skip-1 11. slope = (pin(i,j) - pin(i-skip, j)) / skip; 12. pin(i-skip+k, j) = pin(i-skip, j) + k * slope; 13. end 14. end 15. end 16. 17. %Second dimension of pin 18. for j = 1+skip:skip:size(pin, 2) 19. for i = 1:size(pin, 1) 20. for k = 1:skip-1 21. slope = (pin(i,j) - pin(i, j-skip)) / skip; 22. pin(i, j-skip+k) = pin(i, j-skip) + k * slope; 23. end 24. end 25. end 26.

Tests were then carried out on the same data set as in section 3.6.1.

skip= 1 2 5 10 50 100

Data left 100% 25% 4% 1% 0.04% 0.01%

Contact area, mm2 0.639 0.639 0.637 0.633 0.582 0.695

Contact area,

change - 0% 0.31% 0.94% 8.92% 8.76%

Deformation area,

mm2

0.0311 0.0304 0.0273 0.0251 0.0110 0.00198

Deformation area, change

- 2.25% 12.2% 19.3% 64.6% 93.6%

Mean angle disc

3.16 3.01 2.73 2.55 1.27 0.266

Mean angle disc, % change

- 4.75% 13.6% 19.3% 59.8% 91.6%

Mean angle pin

16.1 16.1 14.8 12.6 3.55 1.55

Mean angle pin, % change

- 0% 8.07% 21.7% 78.0% 90.4%

Table 3.2 - Loss of precision as data is replaced with linear interpolation

Page 21: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

20

No increase in accuracy is observed with linear interpolation compared to simple data removal.

3.6.3 Polynomial interpolation

To attempt to increase accuracy after removing data points, polynomial interpolation between the remaining data points can be performed.

To this end a script was written which, given vectors of x and y coordinates, will calculate coefficients for second degree polynomial splines connecting all points. However, the script turned out to be far too computationally heavy to be applied to more than about a dozen points on a typical computer.

This section will examine the script and review its results as when applied to a small data set. With access to more computational power, the script may be applicable to complete data sets.

1. %Create coordinate vectors 2. x = zeros(floor(size(disc,1) / skip) , 1); 3. y = zeros(floor(size(disc,1) / skip) , 1); 4. 5. %Insert points from disc data 6. for i = 1:floor(size(disc,1)/skip), 7. x(i) = disc(1+(i-1)*skip,1); 8. y(i) = disc(1+(i-1)*skip,2); 9. end 10. 11. %Use MATLAB's numerical equation solver, fsolve(), to determine

spline coefficients. eqns() is a custom function that sets up spline equations.

12. result = fsolve(@(K) eqns(x,y,K) , ones(1,(size(x,1)-1)*3) ); 13. 14. %Save spline coefficients. A's are coefficients for x^2, B's are

coefficients for x, and C's are standalone constants. 15. A = result(1 : size(x,1)-1 ); 16. B = result(size(x,1) : 2*size(x,1)-2 ); 17. C = result(2*size(x,1)-1 : 3*size(x,1)-3 );

fsolve() will iteratively pass guesses in K to the eqns() function until the

results of all equations are 0, so all equations must be of the form f(x)=0. Below is the eqns() function which sets up equations:

1. function fcns=eqns(x,y,K) 2. 3. %Guesses in K are split up in A, B, and C which are coefficients

for x^2, x and 1 respectively. 4. A = K(1 : size(x,1)-1 ); 5. B = K(size(x,1) : 2*size(x,1)-2); 6. C = K(2*size(x,1)-1 : 3*size(x,1)-3); 7. 8. %Vector for containing equations is initialized. 9. syms H; 10. temp = H; 11. 12. %Equations for hitting all points (x,y) are now established. For

this, two equations are needed for each spline segment, as each spline segment hits two points.

13. for i = 1:size(B,2)

Page 22: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

21

14. 15. %The eqn() function returns a second degree polynomial. 16. temp(end+1) = eqn(x(i),y(i),A,B,C,i); 17. temp(end+1) = eqn(x(i+1),y(i+1),A,B,C,i); 18. end 19. 20. %Equations for slopes at spline intersections will now be

established. One equation for each point where splines intersect is needed.

21. syms X; 22. for i = 1:size(A,2)-1 23. temp(end+1) = subs( diff(eqn(X,1,A,B,C,i),X) -

diff(eqn(X,1,A,B,C,i+1),X) , 'X' , x(i+1) ); 24. end 25. 26. %One more equation is needed to have an equal number of

equations and unknowns. For this last equation it is arbitrarily decided to dictate a slope of 0 at the very first point.

27. temp(end+1) = subs( diff(eqn(X,0,A,B,C,1),X) - 0 , 'X' , x(1) ); 28. 29. %All equations are converted from symbolic format to double

float format before being returned to fsolve(). 30. fcns = double( temp(2:end) ); 31. 32. end

eqn() which returns a single second degree polynomial:

1. function fcn=eqn(X,Y,A,B,C,i) 2. fcn = A(i)*X^2 + B(i)*X + C(i) - Y; 3. end

To test the script it has been applied to the small data set of 11 points as

seen in Figure 3.16. In Figure 3.17 the coefficients calculated and saved in A, B and C have been used to plot the splines, and they are seen to intersect all points.

Figure 3.16 - Points to be interpolated by splines

Page 23: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

22

Figure 3.17 - Points with splines created from script

With a more powerful computer and/or a more efficient script, this could have been applied to the full data sets, and it could have been measured whether polynomial spline interpolation would result in a smaller loss of accuracy than simple data removal and linear interpolation.

3.7 Construction of 3D model for use in 3D printer

For further analysis of surface roughness it may be useful to create an enlarged physical model of a rough surface. This can be done on a modern 3D printer which accepts an STL file as input for printing a three dimensional model.

A file in the STL format consists of a mesh of triangles and will start with: solid name

Hereafter all triangles are defined by their vertexes:

1. facet normal ni nj nk 2. outer loop 3. vertex v1x v1y v1z 4. vertex v2x v2y v2z 5. vertex v3x v3y v3z 6. endloop 7. endfacet

The above is repeated for all triangles. For use in most software, facet

normals can be left undefined by assigning a zero-vector. The file is ended with: endsolid name

Page 24: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

23

Here follows the script for the makeSTL() function which produces a three dimensional model in the STL. It takes as arguments the filename to be written, the surface data to be modelled as a two dimensional matrix, and the physical distance between rows and columns in the matrix. The function can only handle surface data arranged in an orderly grid with equal distancing in rows and columns respectively.

1. function returned = makeSTL(filename, surface, x_dist, y_dist) 2. 3. fName = filename; 4. 5. %Text used in the STL file format 6. str1 = 'solid name'; 7. str2 = 'facet normal 0.0e+00 0.0e+00 0.0e+00'; 8. str3 = 'outer loop'; 9. str4 = 'vertex'; 10. str5 = 'endloop'; 11. str6 = 'endfacet'; 12. 13. %File is opened for writing 14. fid = fopen(fName,'w'); 15. 16. %First line is printed 17. fprintf(fid,'%s\r\n',str1); 18. 19. %Iterate through both dimensions of the matrix 20. for i = 1 : size(surface,1)-1 21. for j = 1 : size(surface,2)-1 22. 23. %For every four points forming a rectangle in the grid,

two triangles will need to be created. 24. for k = 1 : 2; 25. 26. %Triangle vertexes are defined 27. if k == 1 28. vertex1 = [(i-1)*x_dist, (j-1)*y_dist,

surface(i,j)]; 29. vertex2 = [(i-1)*x_dist, j*y_dist,

surface(i,j+1)]; 30. vertex3 = [i*x_dist, j*y_dist,

surface(i+1,j+1)]; 31. end 32. 33. if k == 2 34. vertex1 = [(i-1)*x_dist, (j-1)*y_dist,

surface(i,j)]; 35. vertex3 = [i*x_dist, (j-1)*y_dist,

surface(i+1,j)]; 36. vertex2 = [i*x_dist, j*y_dist,

surface(i+1,j+1)]; 37. end 38. 39. %Begin printing triangle information to file 40. %Begin facet 41. fprintf(fid,'%s\r\n',str2); 42. fprintf(fid,'%s\r\n',str3); 43. 44. %Vertex 1 45. fprintf(fid,'%s ',str4); 46. fprintf(fid,'%d ',vertex1);

Page 25: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

24

47. 48. %Vertex 2 49. fprintf(fid,'\n%s ',str4); 50. fprintf(fid,'%d ',vertex2); 51. 52. %Vertex 3 53. fprintf(fid,'\n%s ',str4); 54. fprintf(fid,'%d ',vertex3); 55. 56. %End facet 57. fprintf(fid,'%s\r\n',str5); 58. fprintf(fid,'%s\r\n',str6); 59. end 60. end 61. end 62. 63. %End file 64. str7 = 'endsolid name'; 65. fprintf(fid,'%s',str7); 66. 67. %Save and close file 68. fclose(fid); 69. 70. end

Used on the supplied pin data in the file Pin10˙SUSTADUR˙virgin˙mag10˙offcenter˙111118.txt

the model is viewed in an STL viewer application as seen in Figure 3.18.

Figure 3.18 - 3D model in STL file for 3D printer

However, as the surface asperities are of a very small magnitude compared to the two other dimensions of the data, it can be hard see the features clearly when printed. Therefore another model will be created where the asperities are enhanced compared to the other dimensions.

In Figure 3.19 the same surface data has been used, but the regular x_dist

and y_dist parameters have been divided by 5. This will in effect produce asperities 5 times larger when compared to the other dimensions.

Page 26: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

25

Figure 3.19 - STL 3D model with asperities amplified by a factor of 5

Figure 3.20 - Actual 3D print

In Figure 3.20 the model in Figure 3.19 have been printed on DTU Matematikum’s ZCorp 3D printer. The printer software contains a function that solidifies the flat surface model seen in Figure 3.18 and Figure 3.19 to a solid object with a certain thickness. The circular pattern of asperities is clearly visible, however the printer also in error produced som straight coordinate lines that are not part of the surface.

4 Discussion

In the above a discrete point by point approach has been used at all times. It was originally the idea to create a triangular 3D mesh from the measured points, and then calculate the interfering area as the mesh comes into contact with the mest of another rough surface.

Page 27: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

26

This would have the advantage of avoiding the need to align data points, possibly resulting in greater accuracy. However, the geometrical and programmatical complexity of analyzing the features of such a mesh and calculating the interference area with another mesh is much greather than when working with a point by point analysis.

Especially in cases of high data resolution, as with the data employed in this work, the point by point model seems fully sufficient. The marginal added accuracy of a 3D mesh model is unlikely to outweigh the added complexity of geometry and programmatical calculations.

Experimental verification Experimentally verifying the model and implementation above is not

straight forward because of the many unknowns involved. A litterature search was performed to find suitable methods for experimental verification.

The 2000 paper Contact Modeling - Forces by G. G. Adams and M. Nosonovsky refers to the 1992 paper On the experimental verification of the

Greenwood-Williamson model for the contact of rough surfaces by Handzel-Powierza Z., Klimczak T., and Polijaniuk A., and notes that they ”obtained

good agreement with the theory within the range of elastic deformations and

for quasi-isotropic surfaces.” However, as this work only deals with deformations above the yield

strength of the material, a model that is only in agreement with experimental results in the elastic range will not be useful.

The 2006 paper Ultrasonic determination of real contact area of randomly

rough surfaces in elastoplastic contact by A. Baltazar, J-Y. Kim, and S.I.

Rokhlin proposes a method for calculating the real contact area using a !2

disribution of asperity heights with parameters determined from ultrasonical surface profile measurements. This method differs from most others in the field because it accounts for both elastic and plastic deformations and it could be interesting to compare the results of this method with results obtained from the model used in the present work. Some disagreement is to be expected as the present work does not account for elastic deformation.

5 Conclusion

A point by point model for calculating the real contact area between two nominally flat surfaces was established. A MATLAB script was implemented to read and restructure topology data from a pin and disk setup and calculate the real contact area using this model. Using the real contact area and the material’s yield strength, the contact force was determined.

Friction force from adhesion was approximated, and the projected area relevant for deformation ploughing friction was calculated.

Furthermore, mean angles of the surfaces’ microasperities were calculated. Then the size and amount of contact spots were determined using a

recursive MATLAB function. The distribution of sizes were plotted. Different techniques were applied to coarsen data for speed of computation:

Simple data removal, linear interpolation, and polynomial interpolation.

Page 28: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

27

When applying these techniques to example data sets of a pin and disk it was found that about 99.96% of data could be removed before a 2% inaccuracy would occur in the calculated real contact area. For calculating the projected deformation area, 99% of the data could be removed with only a 1.29% loss in precision. However, already at 75% data removal, the estimated mean angle in the disc would err by more than 4%.

It was found that linear interpolation did not siginificantly improve upon these inaccuracies. Polynomial spline interpolation was implemented and demonstrated as a MATLAB script, but the script was found too computationally heavy to apply to an actual data set.

To facilitate future research on rough surfaces, a script was developed to convert roughness data into a 3D model and save it as an STL file which can be used in a 3D printer. This allows an actual rough surface to be discussed at a magnified scale. The script also allowed for asperities to be enhanced to make them clearly visible. The script was used to produce an example of a magnified pin surface.

Page 29: Mathematical Modelling of Contact Between Rough Surfaces

MATHEMATICAL MODELLING OF CONTACT BETWEEN ROUGH SURFACES LASSE BIRK OLESEN

28

6 References

In order of appearance above:

• R. Gohar and H. Rahnejat, 2008, Fundamentals of Tribology

• G. G. Adams and M. Nosonovsky, 2000, Contact Modeling - Forces

• Baltazar, J-Y. Kim, and S.I. Rokhlin, 2006, Ultrasonic

determination of real contact area of randomly rough surfaces in

elastoplastic contact

7 Appendices

This work comes with the following electronic attachments to be found on CampusNet in the module of this project:

• surfModel.m - Main MATLAB script for loading and analysing roughness data.

• eqns.m - MATLAB function for establishing equations for polynomial spline interpolation.

• eqn.m - MATLAB function returning a single second degree polynomial.

• expSpot.m - Recursive MATLAB function for that finds all data points connected to a contact spot. Used for counting amount of contact spots.

• makeSTL.m - MATLAB function for creating a 3D model from roughness data and saving it in a file of the STL format.

• Pin10˙SUSTADUR˙virgin˙mag10˙offcenter˙111118.txt - surface roughness measurements of a pin.

• Disc08˙SUSTADUR˙lubricated˙R62˙pos1.asc - surface roughness measurements of a disc.

• modelStandard.stl - 3D model for printing.

• modelAmplified.stl - 3D model for printing with amplified asperities.