This video is part of an online course, Differential Equations in Action. Check out the course here: https://www.udacity.com/course/cs222.
The controller was ported from the BeagleBone Black to Arduino Due for faster performance. When the multithread processing structure was implemented in the BBB flight system to support Basic Guidance and XBee communication, the control loop drop down to 60 Hz. Arduino Due is showing promising result during Rig Test. In comparison, BBB ran at 120 Hz while the Arduino run at the 466 Hz, limited by the data transmission speed of the UM7 IMU.
The PID Controller was Implemented here with Angle as the Process Variable. Instead of using error rate as the derivative action, the negative angular rate was used assuming that set point is mostly constant. Proof as follow: d(e)/dt = d(target)/ dt – d(angle)/ dt, when the target is constant, then d(e)/dt = -d(angle)/dt.
After some rough off-line tuning, basic flight is achievable. However, derivative action is still very oscillatory due to noise, but it is necessary to dampen the proportional term.
The next step is to implement a derivative filter.