Hi everyone,
I’m designing the pitch-rate (Q) controller for a fixed-wing aircraft and I’m running into a big discrepancy between the PID gains I get in MATLAB and what ArduPilot allows.
I derived the transfer function of pitch rate Q over elevator deflection delta, measured respectively in [rad/s] and [rad].
I then multiplied it by the transfer function of the servomotor I am using. Using this combined plant, I designed a PID controller in MATLAB. The controller works fine in simulation, but the gains are way higher than what Ardupilot allows, for example the P gain is supposed to be around 7, while Ardupilot only allows it to be at most 0.35
Naturally, a few questions arise.
Am I modeling the system incorrectly for ArduPilot’s control structure?
Is there a mismatch in units, normalization, or loop structure that I’m missing?
How should I properly map a MATLAB-designed controller to ArduPilot parameters?
Thanks in Advance for the help
