Racquet SW/Weight/Balance/RW/MgR/I Auto Optimiser

devoker

Rookie
I had previously created a spreadsheet to calculate the swingweight and others based on extra weights on the racquet. Swingweight Calc Spreadsheet

I took it one step further and created a racquet spec auto optimizer using excel and solver.
It works by setting target parameters and allowed deviation and the solver tries to minimise the the total deviation by using the constaint.
To be able to use it, you only need excel and enable solver add-in (don't worry it is already built-in excel) How to install Solver Add-in in Excel

It might look overwhelming to use at first but it is quite simple. You need to fill all the cells highlighted as input then click the solver button under the data tab, and click solver button. It will show you how much weight you should add the required length.
There are a few parameters you can adjust:
1. Use in Solver (True/False) Left hand side: These are to decide if you want to use the parameters in the calculation. Select false if you don't want to customise your racquet at that section of your racquet (such as if you don't want to remove your grip select False in the row of "Add Handle".) Selecting True doesn't mean that you have to add there but the solver will consider it for the solution

2. Use Constraint (True/False) Right hand side: Use them to constaint the solver for which targets you want to achieve. This part is critical because if you select True for everything, sovler will try to match your racquet for all the targets and the calculation may take minutes/hours. If you set any of these to False, no matter what you put to the respective target and tolerance, they won't be included in the optimisation.

3. Original/Target /Tolerance: Original is the measurements of your racquet before any customisation, Targets are what you want to achieve, Tolerances are the allowance +- from that target. If you let the tolerances very low, the model my not find a solution. That's why it is important to leave some high at first and then you can try decreasing later. For example if you want your final swingweight to be 335 and you let it +-1, set the target 335 and enter 1 in tolerance.

4. Manual Section: Use this part for your existing customisations such as overgrip etc. Be mindful that they will affect the calculation, and if your original measurements already include things like overgrip, don't add them here again. It shows the results of these manual customisations in the column P (After manual).

5. Max Weight Allowed/Min Length to add weight/Max Length to add weight: First one limits how much weight the solver can add to reach the target to the Respective position. The others are to limit the positions in the frame. Set maximum based on your frame's length or use them if you want the weights to be added to specific positions. For buttcap and handle I fixed the positions as 0.5 and 10 cm. The rest can be adjusted.

I modeled the solver to add 0.5g increments of weight and 0.5 cm for the positions. If you click solver and it cannot find a feasible solution, it might mean you set some tolerance too low. The easiest thing would be to relax the tolerance of weight (or others) or set the use constraint to False. Repeat this until solver finds a feasible solution.

I wish I could have made it more user friendly but this is the best I could do :)

Link to the file. P.S. It won't work if you open it in drive, you need to download and open in excel.
Racquet Customiser_v1
Racquet Customiser_v2 (added weight increment option for each location)
 
Last edited:

Brando

Professional
So I finally got a chance to test drive your Auto Optimiser, and I have to say I'm impressed.

Your directions are clear and make getting up and running easy. As you say, it appears daunting at first, but it look me only 10 minutes of casual learning and clicking get up to speed. (And the link to the how-to video was helpful too.) I particularly like the adjustable Use Constraint and Tolerance functions, plus how Use in Solver enables you to limit the areas of customization or make them unlimited. There's no doubt that I'll make very good use this tool from here on.

Thanks, @devoker, for making it available free to the community!
 

devoker

Rookie
So I finally got a chance to test drive your Auto Optimiser, and I have to say I'm impressed.

Your directions are clear and make getting up and running easy. As you say, it appears daunting at first, but it look me only 10 minutes of casual learning and clicking get up to speed. (And the link to the how-to video was helpful too.) I particularly like the adjustable Use Constraint and Tolerance functions, plus how Use in Solver enables you to limit the areas of customization or make them unlimited. There's no doubt that I'll make very good use this tool from here on.

Thanks, @devoker, for making it available free to the community!
Glad you like it. I was hoping to implement this as a web application but I don't have a lot experience with web development and I am not even sure if it is possible to write a nonlinear optimisation algorithm in a web development language. This is the best I could do so far.
 

Brando

Professional
If you were to make an app out of it, you'd want folks here to test drive it anyway, @devoker. Trust me when I say that TT is a test of fire for any new idea in tennis and will expose its inevitable bugs.
 

devoker

Rookie
Ohh I forgot to mention that you shouldn't be using twistweight row as TRUE because it will never work. For it to work, we need a formula for the racquet geometry where the x coordinate would be for each y point. However, this is basically impossible to standardise as almost every frame have different geometries. I will try to update the file to remove the constraints if there is any when I have some time.
 

devoker

Rookie
Ohh I forgot to mention that you shouldn't be using twistweight row as TRUE because it will never work. For it to work, we need a formula for the racquet geometry where the x coordinate would be for each y point. However, this is basically impossible to standardise as almost every frame have different geometries. I will try to update the file to remove the constraints if there is any when I have some time.
File is updated to ignore twistweight optimization
 
Top