Mathjax

Friday, January 18, 2019

Your Spoke Tension Meter Is Probably Not as Accurate as You Think

I want to post about my experience with various spoke tension meters. As with most things related to bicycle wheels, there are many opinions, usually strongly held, and not many facts.  I wanted to share my experience with several tension meters, three that I own, and one that I borrowed.

First, my truing algorithm depends on measured tension so I have experimented with different measuring techniques.  The accuracy is important but the algorithm can tolerate some error in the reading, which is good because all tension measurement methods have large measurement uncertainty.  This post is about that inaccuracy and its sources for various types of measurement.

I have Park TM-1, the iPhone app Spoke Tension Gauge by Douglas Pepelko, and a Wheel Fanatyk Tensiometer.  I also used a DT Swiss Analog Tensio 2 in the load tests which are summarized in this post.

I will start with a brief technical note about how these gauges work.  The TM-1, Wheel Fanatyk, and DT Swiss gauges operate by pressing a spring against the spoke between two supports and measuring the deflection of the spoke.  I refer to this type of measurement as the three point deflection measurement.   The Spoke Tension Gauge  app is completely different.  It measures the frequency of the plucked spoke and converts that to spoke tension.  We will discuss the three-point gauge first.

Analytically, the spoke and gauge can be represented as a beam in tension with a lateral load at the center representing the spring.  The reactive forces at the supports on either side balance the spring.

The spring deflects the spring and is measured by the dial indicator on the Wheel Fanatyk and DT Swiss meters.  The TM-1 has mechanical pointer that magnifies the displacement and shows it on a graduated scale. The deflection t is related to tension but not in a simple fashion.   The amount of displacement is determined by a balance of forces between the spring force acting against the spoke, the restoring force from bending the spoke around the anvil and supports, and the force exerted by the spoke tension acting through the sine of the angle made by the spoke's deflection.  If the bending loads were negligible, the relationship would be linear for small deflections.  For spokes, the spoke bending loads are not negligible and the relationship is not a simple linear function.  Calibration tables (or curves) are supplied with tension gauges that relate the measured displacement to the tension.    The calibration tables are empirically derived using load tests.  The gauge manufacturer's provide printed tables with the gauges and more tables online.  The online versions seem to cover more spoke geometries than the printed ones.

I came up with the differential equation and boundary conditions for the beam and solved for the relationship between measured deflection and actual load using Mathematica. http://www.wolfram.com/mathematica/?source=nav

The solution to the beam model is an interesting exercise if you are into structural analysis and have a mathematical understanding of how things work.  I did this to create a calibration curve specifically for Sapin CX-Ray spokes that were on the Zipp 303 wheel that I trued (see previous post).   One thing I needed for the model were the spring constant and neutral position (kS and y0 in the above figure) and these were not available so I needed a load test to estimate them.  Since I was going to do a load test, I decided to compare all the tension measurement methods available to me.  That load test is the basis for the rest of the post, to compare various measures of tension.  If you have a burning desire to do the math about bicycle wheels, give me a holler.  I will send it to you.

The Spoke Tension Gauge app works on an entirely different principle than the three-point deflection gauges.  As most people know a plucked string vibrates at a frequency determined by tension, weight per length of the string, and length.  The formula is fairly simple and can be found in Wikipedia.  The strongest vibration is usually the first harmonic which given by Mersenne's Law in Wikipedia.  This formula is much simpler than the three point deflection equation.  The hard part is finding the frequency of the first harmonic.  The Spoke Tension Gauge app uses a Fast Fourier transform to get an acoustic spectrum from the iPhone's microphone and attempts to pick out the highest peak, under the assumption that the highest peak is the fundamental of the spoke being plucked.  The wheel has a lot of spokes responding harmonically to the plucked and the plucked spoke is coupled mechanically to spokes that it crosses.  The frequency spectrum is spread by the harmonic response of all the spokes  In the following screen capture video, the spoke is plucked three times with no damping of the crossing spring; then, it is plucked three times with the fore finger and thumb lightly holding the crossed spoke near the crossing point.  Watch the acoustic spectrum plot to see the effect of damping out unwanted harmonics.  Three peaks appear in the undamped cases, one at about 65, one at 104, and the highest at 113. The algorithm swaps from selecting the 65 kgf and 113 kgf.  In the three damped cases, the 113 peak dominates and is consistently picked as the spoke tension.




Others have reported unreliable tension measurements using the app.  I find the app is quite reliable when the crossing spoke is damped by holding that spoke near the cross.  My guess about the peak at 65 kgf is that it is a frequency for a fundamental vibration for a wave from the plucked spoke through the crossing point to the other spoke in effect doubling the length of the spoke.  The peak at 104 might be the frequency for the full length of the spoke.  The wave passes through the crossing point to the short segment of spoke cross to hub.  The video also shows that the variability of the readings is roughly 1 kgf or 9.8 Newtons.

The main subject of this post is to report on the load test and compare different tension gauges.  I called on my good friend Clint Spiegel, owner, machinist, and engineer extraordinaire, of Industry Nine.  Clint and I go way back and have discussed wheel building and truing for years.  He has a calibration rig for the tension gauges he uses in his plant to build Industry Nine wheels.  In some of the wheels, he uses aluminum spokes which he manufactures for which he has to provide his own calibration curves.   The calibration rig he built consists of a frame, spoke holding attachments, a lead screw to tension the spoke, and a load cell to measure the tension.  The tension is shown on a digital readout.  Here is a photo of the rig.

There is some distortion in the photo that makes the legs of the frame look splayed out.  In reality, the legs of the frame are parallel.

Clint and his chief engineer Michael Dulken helped me take data for the load/displacement calibration of a Sapim CX-Ray spoke using all four tension meters.  The test proceeded adjusting the lead screw to achieve approximately -10 kgf steps starting at 155 kgf  and descending.  We measured the spoke tension with each tension gauge at each tension setting.  The data reported here are for the decreasing sweep of tension.  We took data on the increase also, but we were learning to get consistent results with the gauges and I chose not to use that data.  Here are our raw data for the tension decreasing sweep.


From here, I converted the raw deflection data to tension using a linear interpolation of the calibration tables provided by the gauge manufactures.  The table for TM-1 online gave a spoke that seemed to match the CX-Ray parameters (Table 2, Column 4) for a Steel Blade 1.0 x 2.0-2.2 mm.  The Wheel Fanatyk only gives calibration curves for round spokes.  They advise to use the round spoke closest in diameter to the thin dimension of the bladed spoke. The Wheel Fanatyk chart is here. I used the chart for 1.0 mm spokes found in column 3.   DT Swiss only provide calibration curves for their own spokes.  Nothing is particularly close the CX-Ray spokes so I chose a DT aerolite coated 02,0/2,3x0,9 mm on page 27 of the DT Swiss Tensio 2 User Manual.

The results of the comparison are shown in the following plot.  The horizontal axis is the load cell value, the vertical axis is the measured tension value from the various gauges.and their calibration tables.  The dotted line is the ideal one-to-one slope for reference.


The only gauge that was moderately accurate was the frequency-based Spoke Tension Gauge app.  In the range of tensions commonly used for bicycle wheel, the Park and the Wheel Fanatyk trended about 100 N lower than the load cell.  The DT Swiss was higher by about the same amount.  The purpose here is to simulate what a typical user would have available to measure absolute tension.   He (or she) would have that one reading from the tension gauge he owns using the best available calibration curve and no measurements from other gauges or from a load cell calibration to assess that measurement's accuracy.  This result is not really the fault of the mechanics of the gauge, rather it is the inaccuracy of the calibration tables.  All these gauges could be made to follow the load cell if we used this data to generate a new calibration curve specifically for this gauge and spoke combination.  I am not sure how manufacturer's generate their curves.  I assume it is mostly empirical using load cell data like this but I do not know.

The impact of the absolute accuracy is in building wheels to a specified tensions setting   In building a wheel with the Wheel Fanatyk or Park gauges, if you adjusted the spoke to achieve a measured tension of 900 N, then the actual tension would be about 1000 N.  The DT Swiss would be in error in the opposite direction.  It would yield a true tension of 800 N at a gauge reading of 900.

Of course, if you have a load calibration fixture then calibration curves specifically for the spoke and gauge combination can be measured and the absolute accuracy can be greatly improved.  If you have the resources to measure the spoke tension accurately in a test situation, you can compute your own calibration curve.  We have done this for the Wheel Fanatyk gauge.  I fitted unknown parameters in my mathematical model of the gauge and spoke using a nonlinear fit routine in Mathematica.  In the fit, the parameters of the model which are fitted are the spoke stiffness, the gauge's spring stiffness, the spring's neutral length, and the gauge's zero offset.  (We zeroed the gauge according to the user manual, but fitting the zero offset allowed this parameter to be adjusted for a best fit of the data also.  The fitted value turns out to be very small.)   The following figure shows the Wheel Fanatyk results using calibration tables fitted to the data.  Of course, it is very good and is now comparable in accuracy to the Spoke Tension Gauge app.
Looking at the load cell test results using the manufacturer's curves shows the absolute accuracy of the gauge primarily.  Having an accurate value for the absolute tension is important in wheel building  to stay within the design parameters of the spokes and rim so that the wheel is not over-tensioned or under-tensioned.   But a wide range of absolute tensions seem to work.  Contrary to some wheel building "experts" higher tension does not make a wheel stiffer.  All tensions give the same stiffness for a wheel up to the point that the deflection causes a spoke to become slack.  Higher average tension raises the magnitude of the deflection at which the lowest tension spoke goes slack. The actual range has nothing to do with wheel stiffness (stiffness is mathematically defined as the deflection divided by the force to cause it). The range of acceptable tension depends of several other design concerns.  The high limiting value is usually based on the some material failure limit determined by the weakest component in the wheel.  The failure could be a spoke breaking or a rim hole or flange hole pulling through under a maximum transient load condition (e.g. hitting a pothole).  Generally speaking, the spoke is designed to be the weakest component because it is the cheapest to replace.  The other consideration is the buckling instability of the rim.  The buckling instability is the tendency for the wheel to spontaneously deform into a taco shape.  The higher the average spoke tension, the closer the wheel is to the buckling instability.  In a transient condition with high side loads like a side slide, a wheel that is close to the instability statically can be pushed into unstable region and the wheel assumes the taco shape.  With modern double wall rims, the instability is not much of a problem because the rim is stiffer and the instability is shifted to much higher values of spoke tension.  However, if you build vintage single wall clincher rims (not recommended) then you should be aware or the buckling limit.   There are advantages to higher tension.  Higher tension increases the limiting value of side load at which the lowest tensioned spoke transiently goes slack.  This is a good because a slack spoke leaves only the rim's lateral stiffness to resist side load, and the rim becomes much more vulnerable to failure.  Higher tension also exerts greater force on the spoke nipples giving a higher frictional resistance to spoke nipple unwinding.  The wheel should be designed to survive most loading transients like bouncing off a curb or bunny-hopping a road obstacle or even hitting a pothole.  Obviously, common experience is that the wheel's material limits are sometimes exceeded and a new rim or spoke is needed.  It is generally agreed that the absolute tension is probably not a huge concern in wheel building and that a 100 N tension error is ok even if it is more than you thought your $400 tension gauge would be capable of.

In general the main reason wheel builders use tension gauges is to help true a wheel.  The goal is to have all the spokes (or all the spokes on the same side of a dished wheel) to be adjusted to equal tension.  This measure helps to get the wheel true and to stay true through its use.  To make an accurate comparison spoke to spoke is quite different  than measuring the absolute tension.  In this type of use,  the resolution of the gauge to measure differences is the important gauge parameter.  I have heard from other wheel builder's that the goal is 10% of average tension or 60 N or some number in this range as their goal for tension equalization.  I believe this number comes from experience with what is possible rather than what is needed for some engineering criterion.  From my experience, between 40-50 N from max to min is usually achievable with a good rim.  Any given rim has a certain level of imperfections.  If you were to lay a rim on a flat reference surface, it would show some gaps under it.  The weld or the joint where ends of aluminum rims are joined is also a place at with roundness and flatness (and stiffness) are abruptly different.  Varying the spoke tension can straighten the rim out giving a wheel that is rounder with less wobble than the rim alone.  So there is a compromise between trueness and equalizing tension.  There is also significant truing skill at this level of truing.  Equalizing tension by feel is harder than truing.  Without a control algorithm like mine, a wheel builder reaches a point where an iteration of adjustments around a wheel yields a wheel that is no better or even worse than before the iteration began.  This is because equalizing tension is a complex interaction of rim and all the spokes collectively.  It is not that a truer wheel radially and axially with more nearly equal tension is not possible, it is that the wheel builder cannot find that point with 24 or 32 individual inputs that must be adjusted.  The correct adjustments are small (5-30 degrees) and not nearly as intuitive as reducing the humps in radial and axial truing.  Because I use tension in this way with my truing algorithm, I may be more interested in tension accuracy in the small scale than the average builder.  I am trying to find the gauge that has the least noise in individual measurements. The question then is whether I can read differences between spokes of 5-10 N and that the difference are true differences in tension and not measurement error.

Putting aside the theoretical question of equalizing tension lets consider the usage factors that contribute to measurement error.  (Measurement noise is not acoustic noise in the room or anything acoustic at all.  It is just the random fluctuations in the reading of the measuring device.)  The measurement error is a combination of resolution of the gauge (discretization error) and effects of disturbances (measurement noise) that affect the reading.  You can see some of measurement error by the lack of smoothness in the plots above.  This is caused by random measurement error but the scale of the plot is designed to show absolute error over full scale of the gauge does not give a good estimate of the variability in individual readings.

Let's talk about the two different types of errors, discretizing error and noise, and how they are evident in use.  The analog dial indicator on the DT Swiss has gradations on the scale and a pointer that that determine the reading. Vibration of the pointer would be noise.  The gauge is well damped so vibration is not visible in use.  The discretization error is the spacing of the finest division that can be read. For the DT Swiss gauge, noise is zero and the reading error is basically the spacing of the graduation lines on the dial which are in 0.01 mm increments.  Translating the reading error from deflection to force at 900 N yields a reading measurement error of 8.3 Newtons.  (This is the change in tension between deflections of 0.26 mm to 0.27 mm.)

The Wheel Fanatyk gauge also has direct reading dial indicator, but it is digital and reads down to 0.001 mm.  In use, the reading fluctuates quite a bit with how the spoke and gauge are held.  I would judge conservatively that it also reads to 0.01 mm discounting the more accurate digital dial indicator for the noise. The noise comes from various loads on the gauge due to the way it is held and the orientation of the rotation of the gauge about the bladed spoke.  Careful use of the gauge may improve on that number.  In my use, I clamped the gauge on the spoke and held it horizontally.  I supported the gauge with one finger to reduce any force from my hand, and I raised and lowered the gauge to get the lowest reading.  For bladed spokes, twisting the spoke between the anvil and dial indicator increases the deflection reading which, on the Wheel Fanatyk design, would artificially lower the measured tension.  By contrast, twisting the spoke in the DT Swiss gauge would increase the reading.  No fluctuations were evident on the DT Swiss gauge because of the scale of the dial indicator and because the force of the spring was greater than the Wheel Fanatyk and tended to flatten out the spoke against the anvil.  The difference in accuracy between Wheel Fanatyk and DT Swiss gauges for the same level of deflection accuracy, (both being 0.01 mm)  is in the gauges' springs.  The DT Swiss has greater spring force and larger deflection resulting percentage-wise less error when converted to the spoke tension.  There is an effect that has not been quantified here.  The increased spring force and deflection affects the actual tension in the spoke.  This effect would be included in the calibration curve for the particular spoke used in the calibration, but there is effect for different length spokes. Spoke length is not accounted for in the calibration curves.   The calibration curve error with respect to spoke length would be greater for greater spring force on the spoke.  Evaluating that effect on spoke length for different spring force would be the subject of another calculation and post.

The Park TM-1 uses a pointer that is a mechanical multiplier of the spoke deflection.  The length of the pointer from pivot to contact with the anvil is 10 mm.  The length of the pointer from pivot to the tip of the pointer is 169 mm.  This gives a factor of 16.9 magnification of the spoke deflection.  The graduations on the scale of the gauge are 2 mm.   Hence a change of one division is a deflection of 2/16.9 or .11 mm.  If we argue quite reasonably that the Park scale can be read to half a division or even quarter of a division fairly accurately, then the measurable deflection is 0.055 mm or 0.0275 respectively.   Estimating a half division for measurement accuracy in terms of tension yield an increment of  39.2 N about the 900 N spoke tension.  Let us consider whether this is really good enough to equalize tension in a truing a wheel by hand or in using my truing algorithm.  For a wheel with CX-Ray spokes, if wheel builder aims to get all spoke readings within 40 N then all the readings should be within about half a division of the TM-1 scale.  This level of reading accuracy is relatively easy to achieve.   Whether or not the wheel builder can get to this level of equalization is a different question.  The analysis clearly indicates that you have to look closely but a Park TM-1 can be used measure the spokes to determine if the tensions are equalized.  Of course, other spokes have different sensitivities resulting in larger or smaller intervals on the scale corresponding to 40 N.  One can figure out the appropriate range on the scale for equalizing tension from the calibration curves.

For input to the truing algorithm, the TM-1 readings are a bit too coarse to contribute much.  I have used the Park gauge in parallel with the frequency-based truing app to compare while truing wheels but I have only used the frequency results in the truing algorithm.  This is particularly true of the approach to the best achievable trueness and trying to achieve the less that 0.15 mm radial and axial truing and the +/- 40 N tension range.  We are working within a range of one fourth of graduation marking.

The Spoke Tension Gauge app has both noise and discretization errors.  The gauge readout on the screen reads to 1 kgF  spoke tension. The value of 1 kgf is  equal to 9.8 N which would be the frequency app's discretization error.  In use, the readings also fluctuate about 1 kgF as the peak selection algorithm varies until the gauge settles on a particular value.  Repeated measurements of the same spoke usually only vary 1 kgF.  So, I would judge the spoke tension measurement error to be on the order of 10 N.

The following table summarizes my accuracy estimates for each gauge.  As discussed above, the measurement error is subjective.  I am aware that careful usage of each gauge can reduce the measurement error.  However, I would expect that the rankings of the three point deflection gauges with respect accuracy would be the same due to fundamental similarity of the measurement system.  The frequency based Spoke Tension Gauge is not well characterized in terms of the inner workings of measurement system. Access to the internal coding would be needed to assess the fast Fourier transform, the peak selection, and the sampling method.  The dude is smart.  I believe he got it all right and there is not much inherent error in the frequency estimate.  The conversion formula from frequency to tension is straight forward and well established.

    Gauge                                 Reading accuracy (N)
DT Swiss Tensio 2 Analog        8.3
Wheel Fanatyk                         38.0  
Park TM-1                               39.2
Spoke Tension Gauge              10.0

In conclusion, I will comment that this is not what I expected.   From early in my wheel truing career, I have owned the Park and the Spoke Tension Gauge app.  I bought the Wheel Fanatyk gauge expecting it to be an upgrade over both.  In reality, it is in the same ballpark.  The DT Swiss gauge is slightly better but the lack of support for a wide range of spokes other than DT Swiss is a huge drawback.  The Wheel Fanatyk has the same lack of spoke calibration curves but because of its design that reads displacement in a way that is not affected by spoke thickness the curves for different spokes tend to lie closer together.  As it stands, The Spoke Tension Gauge app is a winner in the absolute accuracy and a close second in the reading accuracy. It is also far and away the cheapest.   The only problem is reliably dealing with unwanted harmonics.   In the future, I will pinch the spokes carefully and read the tension from the Spoke Tension Gauge app when wheel building.  That would be my recommendation for most wheel builders.

Thank you all for reading.  This stuff is long and tedious.  If you get to this point, I salute you.  Please know that I am happy to answer any questions.

Final Note:  Someone will probably ask if I have a calibration curve for the load cell used in the calibration test.  I do not.  I will ask Clint Spiegel at the next opportunity of he has one.  The good results from the frequency-based Spoke Tension Gauge give me some confidence that the load cell is accurate, but a test using calibrated weights would be better.

Disclosure.  I have no connection to any of the spoke tension gauge manufacturers.  I paid full price for all the gauges and have no deal or contact regarding the spoke tension comparison reported.   No one has seen the post but myself before publishing.

A long time ago I did try to sell/give my truing algorithm to all manufacturers mentioned here except DT Swiss (I offered it to Sapim instead) and was either ignored or they declined.  No hard feelings. I got rejected a lot.




Sunday, January 13, 2019

Surprise! I trued a bicycle wheel

I finished truing a wheel!   My accomplishment should not rate much a mention in a blog devoted mostly to talking about my computer algorithm to true bicycle wheels.  However, it has been awhile since I worked on my own wheels.  I worked quite a while helping a company who build truing machines in a place known for both tulips and bicycles.  They gave me some high accuracy wheel mechanical data that helped me improve my model considerably.  I gave them some insight into how best to optimize their truing algorithms.  The truing algorithm like most control problems requires a balance between rapid convergence (few truing iterations) and robustness to errors in either measurements or modeling.  Their original algorithm was maxed out in the direction of fast convergence.  It didn't alway converge as a result. I showed them how to make their algorithm have a a balance between robustness and convergence.

I also helped an aspiring small wheel company to implement my algorithm on a truing machine they were designing and building.  Neither activity led to anything long term for me, but it did consume a lot my time budgeted for hobbies and general fun.

Then, then! three little grandchildren moved into my orbit.  What a delightful distraction from any other activity they have been.  I basically stopped riding, doing math, truing wheels, or anything for about two years after the grandson was born.

However, my bicycle in Atlanta has a rear wheel that has been out of true for quite a long time.  The wheel in question is a Zipp 303.  It is the most expensive wheel I own.  I am not sure how it got so out of true.   Whatever the cause, the problem was easily diagnosed.  One of the spokes is bent sharply at a distinct point.  At the bend, the spoke is necked down a bit, and it is only bent at that one point.  Above and below the bend, the spoke is straight.  I remember that I hit a pothole pretty much straight on about the time I stopped riding.  I think that the rim deformed (in contact with said pothole) and then snapped back very hard with the stress concentrating at the weakest spot along the spoke.  It wasn't quite enough force to break the spoke but close.  After that, I noticed that the wheel a millimeter or two out of true.  The tire blew on impact.  I have looked carefully at the rim for signs of damage from the impact and I do not see any cracks around the spoke hole or dings along the rim's tire hook edges.  I think I am safe just replacing the spoke

One of the hang ups to fixing the Zipp 303 was the lack of a place to set up my truing stand.  About six months ago, Mrs. Geezer saw a much larger condo go on the market.  One of its features that was a major selling point for us was a large storage room.  In the first week after moving in, I had the truing stand set up.  Then, I threw a couple of roadblocks in my own way before I could get to turning spoke nipples.  First, when I started on assembling the data for the wheel, I decided I needed fill in an omission in the original work.  I have never had a good way to calculate the parameters for bending and twisting of the rim, (second moments of area of the cross section and the Saint-Venant torsion constant).  These parameters depend on having the profile of the rim in some mathematical form for computation which is generally unavailable in any specification of the rim.  I had an idea of how it could be done using tape with millimeter markings and a dial caliper so I felt I must write the program ago do that first.  If anyone is interested in the rim profile program, I will write up the method and post the program on the Mathworks file exchange.   The next thing was to resurrect the truing program for my truing stand.  The problem here is that I had made many improvements for potential customers which were in program versions specifically for their needs.   I needed to sort all the changes out, find the improved code, and update the program for my truing stand.  The unique features of the program for my stand are the routines for processing input data and generating output data that interface with forms that I use for manually recording data and applying the spoke adjustments.   I also had to find the Work forms that I use for data taking.

I also felt the need to buy a digital spoke tension meter to do this truing job properly.  The conversion tables that came with the new gauge did not include the Sapim CX-Ray bladed spokes I would be using so that necessitated a trip to my good wheel building friend's factory to borrow their spoke load test fixture to measure a load-displacement curve for the CX-Ray spoke using my new gauge.  I added to the delay by seeing the need for a mechanical model of the spoke and gauge to accurately smooth the measured data and interpolate the measurements.  To do this, it seemed necessary to do this in Mathematica and so I had to learn a new computer language.  This took a month or two.   I have gotten all this stuff done and last week I put in a major effort to debug the program and true the wheel that is the main subject here.

Enough of the excuses, let's get on to the pictures.

This is a pic of the rim and tape with millimeter graduations.  The caliper measures from matching marks on either side of the rim.

Here is a picture of the profile determined by the tape-caliper method.
The tape gives distance along the perimeter of the rim.  The dial calipers give the width at various perimeter values.  That data and Pythagoras theorem determine the x-y coordinates along the perimeter.  I estimated the thickness of the rim wall by combining this profile and the wheel diameter to compute the rim volume.  I then used the rim density to get weight of the rim .  I iterated on the thickness to find a value of the rim mass that matched the actual rim mass.  I assumed the thickness was uniform.  The thickness then gives the inner surface of the rim.  I make somewhat crude estimates of Izz, Irr, and J from this profile.  The moment calculations just take the area concentrated at the center point of each segment.  The torsion constant is estimated by the formula for closed, thin-walled beams.  I could do a better job with my mathematical representation of geometry but it would take a lot more time.

Some years ago, I was putting together data for a wheel and needed to visualize the lacing pattern to see that it was right.  I was able to plot the location of the spokes rather easily from the parameters I computed for the structural model.   Here is the plot of  Zipp 303 lacing pattern as determined by my mechanical model.  Again, I can put the routine up on the Mathworks File Exchange if anyone is following along at home.


The truing took several iterations, some were for debugging and some for truing.  I learned several things about truing with the algorithm along the way.  At one point, I adjusted the spokes making all the computed spoke adjustments backwards.  This left the wheel in worse true than the starting point.  I also tried just truing by the conventional method working on each bulge a bit to reduce the error by eye.  As it turns out, even a novice wheel builder like me can bring a wheel into a useable true pretty well without a truing program.  This is not really news.  But, my fear of not being able to do this was the motivation for developing the truing algorithm.  In this case, most of this wheel's error was around the replaced spoke so this was an easy wheel to true, Very few spokes needed much adjustment.  However, I quickly reached a point where the wheel was satisfactory for riding but not quite as good as I was trying to achieve.  After a few iterations of hand truing, each round of adjustment after that did not produce overall improvement.  The errors just moved around-- some getting better, some getting worse.  So now the need for a program that looked at the whole wheel was needed to get any better.  I brought out the data sheets and computer again to see if I could get some uniform improvement.  In one iteration, I got the wheel very true and equally tensioned.  It is this last iteration that I show.  The plots show the as-found condition, which is not bad; the calculated improvement from the optimum adjustments; and the actual improvement from adjusting the spokes and measuring the wheel.   The reader will note that the measured improvement was not as good as calculated.   This may be of some concern but the important thing is that wheel improved uniformly all around.  All the adjustments moved the rim closer to trueness.  The errors look big because of the plot scale but, at this point, the wheel is very true.  The reason that the calculated and actual improvement are different is of course modeling and measurement accuracy.   The model is not perfect and my tests show that it overestimates the effect of the nipple adjustment in all directions.  This may be the main effect in the difference.  Also, the measurement accuracy of rim displacement is 0.01 mm.  This is certainly small but rim manufacturing tolerances are in this range.  The width of the rim measured by caliper varies by this amount around the rim.  Presumably the radial edge used as the reference point would also have variations in this range.  This variation is harder to measure.  The spoke tension meter is perhaps least accurate measurement.  We could improve on all these things but the fact is that this is very good truing.  

The max and min displacement errors in radial and axial directions are within the 0.15 mm criteria that I generally strive for.  The tensions are within 30 N of set point.  I called it done and put the wheel back on the bike.  I went for the first ride on this bike is years.

In the plots, I show the as-found condition, the calculated improvement in trueness from applying the calculated adjustments to the model, and the actual improvement which I measured.  I also show the s

This plot is is the axial displacement.  This variable name on the figure is "uz".   In my nomenclature, "u" is a displacement variable, "z" is the axial direction or component.   Some wheel builders call this lateral error.  This is the most sensitive truing parameter.  The plot show a reduction of the maximum errors (min, max)  from (-0.25, 0.15) to (-0.15,0.07).  This is within my criteria for stopping.  It seems likely that one more iteration would have gotten the error down a bit more, but this is certainly a good stopping point. I measured this particular wheel when it was new before I rode it.  It was not quite this good from Zipp.

The radial displacement is shown next.   The modeling variable name is "ur".   This variable proved to be much easier to get within tolerance.  This plot shows that the iteration reduces the radial error (min, max) from (-0.06,0.079) to (-0.04,0.03).  That is tight.

The tension plot is separated into lines for the drive side (higher values) and non-drive side (lower values).  The setpoint for the drive side is 920 N.  The geometry of the wheel gives a calculated tension set point for the non-drive side tension of 432.8 N.  The tension is hard to measure with the tension gauge.  Slightly twisting the gauge on the spoke yield quite a range of values.  Twisting the spoke tends to increase the measurement so I recorded the lowest value seen.  The min/max of the drive side is (870.5,951.5).  The non-drive side is (403.3,467.0).


I have data for single spoke perturbations that compare measured versus calculate effect for tightening a single spoke one full turn.  These quantify the error in the structural model.  If anyone expresses interest, I will add a post to show them.  The wheel geometrical data are "unretouched";  that is, I did not do anything to improve the match between calculation and measurement.