I have a ceiling fan which has poor balance and is quite annoying on its high speed.
To solve the problem, I attached a flight controller board which I had on hand for this sort of purpose to the stationary spindle extension, and I have the associated configuration software installed for flying machines
Above, the OmnibusF4 v1 flight controller. Not a good flight controller for flying machines because of the silly pinout, but cheap (for that reason), about $20 on eBay. The flight controller contains a 3 axis gyro and accelerometer, the latter will be used here.
Above, the flight controller attached to the STATIONARY fan spindle, don’t hook this to the spinning part.
The strategy is that it is likely that the imbalance is in one of the blades, and a +ve or -ve addition (+ve on the other two blades) can be made to approximately balance the fan.
After a little trial and error, the blade to receive the +ve correction weight was found, and the position for a 10c coin to give approximately least acceleration.
Above is the plot from betaflight configurator. The calculated RMS acceleration was used as the optimisation target.
These flight controllers are quite powerful devices, along with the acc and gyro, this has a SD card for logging, so it could be used for logging gyro or acc input over time just as it is on flying machines.