Assume that I have an object in 3D, and I want to have a controller that stabilizes its orientation (also referred to as "attitude").
To be sure we are clear:
- attitude is measured in "degrees" or "radians"
- attitude rate is measured in "degrees/s" or "radians/s"
The controller is made of two cascaded control loops:
- attitude controller: the error controlled by this controller is the difference between the reference attitude and the real attitude
- attitude rate controller: the error controlled by this controller is the difference between the reference attitude rate and the real attitude rate
The attitude controller is made only of a P term, and therefore it is not hard to tune. However, the attitude rate controller has all three terms P, I, and D.
I am using the well-known Ziegler-Nichols method to tune the attitude rate controller. However, I am not sure that theoretically, what I am doing is correct.
My question is: is it possible to tune the P, I, and D terms of the attitude rate controller while observing the step response by giving a command in attitude? To apply this procedure, should I provide an attitude rate command instead? (The main problem is I cannot give an attitude rate command because my object would start to rotate and this is not practical). FYI and for completeness: my object is a drone, but I don't think it matters too much regarding my question.