Trying to stabilise a SISO feedback loop with a Cascade PID controller - but it's not working!
5 views (last 30 days)
Show older comments
Hi there,
I'm in the middle of designing a Cascade Loop PID controller for a quadcopter autopilot simulation, to allow it to move to a designated position by altering its thrust vector by pitching up or down.
However, I'm having some issues producing a viable controller. I've successfully controlled the inner loop (pitch rate) with a PI controller, but the outer loop (position) is proving very difficult to stabilize with a PID: please see the diagram for reference:
I've been using SISOtool and pidTuner to try and get the relevant PID controller and thus PID gain values that I can input into my programmed controller in MatLab - this worked for the inner loop (pitch rate), but it is not working for the outer loop.
My advisor told me that it should work with a PID just fine, so I don't really understand why it isn't.
Any advice would be tremendously appreciated, thanks!!
0 Comments
Answers (1)
Arkadiy Turevskiy
on 26 Apr 2016
First off, looks like you have a typo in your Cq. As Pq already has integrating action, you don't really need an integrator in Cq. Cq=48 stabilizes the inner loop nicely. If you use that Cq, you will get outer loop plant transfer function very close to what you show. Now, a PID controller won't be able to control that, as you have 4 poles at the origin. Are you sure you have your Px right? It seems strange you have to integrate 4 times to get a position.
0 Comments
See Also
Categories
Find more on PID Controller Tuning in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!