Posted by Bruce Baxter on November 30, 2015 at 4:37am
Is there any reason the servo gain is not mapped to airspeed?The program requires a roll rate that represents the output for the pid tuning to work, but a 1/4 throw gives less of a roll rate at stall speed than top speed.
You need to be a member of diydrones to add comments!
You could, if you wanted to get fancy... Typically with PID the idea would be that the integrator would help out in cases where the P gain isn't enough, but that of course depends on how fast the integrator ramps up....
Gain scheduling is absolutely a thing, but the performance implications vs. complexity of implementation might not be worth the trade...
Bruce Baxter > Eli CohenNovember 30, 2015 at 7:22am
There is very little complexity,
It's not the p value that changes, it's the servo output.
The math is just output = output X stall speed/airspeed
Eli Cohen > Bruce BaxterNovember 30, 2015 at 7:29am
So the complexity to do that is, of course, trivial. The question, I think, is what sort of performance gain you are looking for and how you will characterize an improvement in performance. Did you have something crash when it was flying slow?
It's been a while since I've done a controller from scratch but I think what you would be looking to do is make a linearized dynamic model at this new operating point (near stall speed) and then derive entirely new gains (P,I, and D) based on those dynamics. I think that would be the "correct" way, but overly complicated and probably not delivering significantly better performance.
Bruce Baxter > Eli CohenNovember 30, 2015 at 7:35am
Yes, it is an edge 540, 900mm span.
The surfaces are quite large with large throws and trying to fly it from stall to powered dive in stabilise mode gave either over correction at speed or insufficient response at stall speed.
This probably is not the designed purpose of an apm2.5 but it does seem like a quick fix for the higher speed range vehicles.
The pid settings don't have to change, they are based on inertia and mass.
It's the force exerted by the output(control surface) that changes and hence can be linearised simply.
Eli Cohen > Bruce BaxterDecember 1, 2015 at 4:32am
eager to see how it works out, please post video! might run into tuning issues getting it just right but should be easy to flip in and out of stabilize mode.
Replies
You could, if you wanted to get fancy... Typically with PID the idea would be that the integrator would help out in cases where the P gain isn't enough, but that of course depends on how fast the integrator ramps up....
Gain scheduling is absolutely a thing, but the performance implications vs. complexity of implementation might not be worth the trade...
It's not the p value that changes, it's the servo output.
The math is just output = output X stall speed/airspeed
So the complexity to do that is, of course, trivial. The question, I think, is what sort of performance gain you are looking for and how you will characterize an improvement in performance. Did you have something crash when it was flying slow?
It's been a while since I've done a controller from scratch but I think what you would be looking to do is make a linearized dynamic model at this new operating point (near stall speed) and then derive entirely new gains (P,I, and D) based on those dynamics. I think that would be the "correct" way, but overly complicated and probably not delivering significantly better performance.
The surfaces are quite large with large throws and trying to fly it from stall to powered dive in stabilise mode gave either over correction at speed or insufficient response at stall speed.
This probably is not the designed purpose of an apm2.5 but it does seem like a quick fix for the higher speed range vehicles.
The pid settings don't have to change, they are based on inertia and mass.
It's the force exerted by the output(control surface) that changes and hence can be linearised simply.
eager to see how it works out, please post video! might run into tuning issues getting it just right but should be easy to flip in and out of stabilize mode.