The control logic for the hover station is very simple, and is based on several logical assumptions. To reduce oscillation, the lowest increment of motor speed was used giving the ball a slow movement speed and low acceleration. To reduce acceleration further, we included delays in the sensing loop. These delays give the ball more time to reach a steady-state each time motor speed changes. This way, we avoid the case where the motor speeds up, and before the ball has reached the steady peak of that new thrust, the sensor returns saying the ball is still not high enough, causing the motor to speed up again, possibly leading to an overshoot of the desired height, followed by an undershoot, etc. We tried to avoid this oscillation as much as possible.
Because the ball is moving slowly with low acceleration, we can assume that once it reaches its desired height, the current thrust is sufficient to stabilize the ball there. This lead us to wait for a longer sensing delay once the ball reaches the desired height – in short, once it reaches the desired height, we freeze motor changes and expect the ball to stay there.
The lack of acceleration and dynamic ball speed is acceptable for us, but in more complex control systems their closed feedback loop will feature some manner of proportional-integral-derivative controller. For this project’s measurements and requirements, the lowest acceleration is acceptable, and thus a simple control scheme works fine. However, for more complex projects like the quadcopter, a dynamic control loop should be examined and used.