Hacker Newsnew | past | comments | ask | show | jobs | submit | darshanrai's commentslogin

Additional links:

1. The Story of Self-Repairing Control Systems. https://www.nasa.gov/centers/dryden/pdf/88798main_srfcs.pdf

2. Flight Test Implementation of a Second Generation Intelligent Flight Control System. https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/200502...

3. Flight Test Results from the NF-15B Intelligent Flight Control System (IFCS) Project with Adaptation to a Simulated Stabilator Failure. https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/201000...


We actually ended up using this when writing a controller for a quadcopter[1]. Essentially, we have one PID controller operate on the absolute angle (error = desired angle - actual angle). The output of this controller is fed into the second controller as the desired rate of rotation (RoR) (error = desired RoR - actual RoR). The output of the second controller is finally fed to the motors.

Apart from being easier to tune, I just found a good article[2] for why this approach works better for problems such as this. For quadcopters, of course, this allows one to easily switch between rate/acro mode and angle mode.

[1] https://github.com/ThePinkScareCrow/TheScareCrow/blob/master... [2] https://www.controleng.com/single-article/fundamentals-of-ca...


This is also the approach PX4/Ardupilot folks use. It's actually even more elaborate in their case: position loop -> velocity loop -> acceleration/angle loop -> angular rate loop -> motor outputs.


I think it's worth noting that cascaded PIDs are no more expressive than having a state-space controller. But probably it is easier to tune, as you say.

Each integrator is one dimension of state.


There's also this[1] series of blog posts by Brett Beauregard that speaks of a few improvements for real-world implementations.

[1]: http://brettbeauregard.com/blog/2011/04/improving-the-beginn...


That gets you through 90% of real world control problems. Filtering the derivative input gives you another 5% for some noisy processes. The other 5% require somebody who knows a bit more.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: