Trying to stabilise a SISO feedback loop with a Cascade PID controller - but it's not working!
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Arkadiy Turevskiy
2016-4-26
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 PID Controller Tuning 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!