I am building a quadcopter and plan to use a pixhawk autopilot with Ardupilot firmware. My understanding is that the attitude control law consists of an angular rate loop with PID control and a angular position loop with proportional control. I would like to set the PID by analysis, rather than using the AutoTune feature. I have a simple model for the pitch axis, but am having trouble designing a set of PID gains in the pitch rate loop that fit within the ranges given in the ATC parameter list. I suspect that the Ardupilot PID gains are scaled differently than my model. In my model the input to the PID control law is a pitch rate command in rad/sec and the output is a rotor speed command in rad/sec. My P gain is therefore unitless. I suspect that the Ardupilot P gain may not be unitless and may have units of rpm/deg/sec. Can anyone confirm this or tell me what units are associated with the Ardupilot P gain?
You can use the “system identification” flight mode to determine the parameters of your particular copter.
After that you should be able to determine the PID values by system analysis.
But you need to have a lot of control theory knowledge to do that.
Thanks Amilcarlucas. I have worked as a controls engineer for many years, so my knowledge of control theory is pretty good. I will look into the system identification flight mode that you suggested. Thanks again. Bill Maggard