How to Assess PID Quality

We fixed and updated Cell G8 as well as the plot’s Data range of the original ArduPilot Wiki Spreadsheet creating this corrected version We imported the data into the spreadsheet and created this graph:

Thanks everyone for your replies. I’ve learned a lot of useful knowledge and practical experience here.

Following the AMC procedures, I tested the motor thrust using a thrust test bench. I input throttle, PWM, voltage, current and thrust data into the spreadsheet in the corrected version of AMC, but the corrected thrust curve failed to generate.

I then imported the same data into the original ArduPilot Wiki Spreadsheet, which successfully generated both the real test thrust and corrected thrust curves. However, I had to set MOT_THST_EXPO = 0.01 to get the corrected thrust to fit my measured thrust data.

According to the official Wiki, the recommended MOT_THST_EXPO value is 0.66 for hobby-grade multicopters with 15-inch propellers.

This makes me wonder if my ESC already provides excellent linear compensation by design, which allows MOT_THST_EXPO = 0.01 to match the measured thrust curve perfectly — or if I made a mistake during the testing and configuration process.

Additionally, I noticed a work-in-progress tool called Thrust Expo in the ArduPilot Web Tool. After entering my throttle percentage, PWM, voltage, current and thrust readings into this tool, I got the same result:

with MOT_THST_EXPO = 0.01, the red reference curve aligns almost perfectly with the blue measured thrust curve.

I would like to ask for your advice:

Does this mean my ESC and motor combination has exceptionally linear thrust response? Or is there an error in my test method?

From what I know, 0.01 is an extremely low and unusual setting for thrust exponent. For T-MOTOR Flame series ESCs, the official recommended MOT_THST_EXPO value is 0.25.

My thrust test bench operates with a PWM range from 1000 to 2000. It only allows a minimum throttle increment of 1%, with the throttle adjustable and recorded once per second.

I set the test to ramp the PWM from 1000 to 2000, increasing the throttle by 1% every second and logging the thrust value at the same interval. As a result, the curve is generated from only 100 data points in total. I’m not sure if this resolution is sufficient and adequate enough.