Multi-rotor drone control system

The goal of the project is to develop and test a control system for multi-rotor unmanned air systems. It is continuing from the conclusion of the Advanced Multi-rotor Drone project. The project deliverables include an electronic control system to balance the aircraft (a drone modeled as a seesaw with propellers mounted on each arm), and a (shaker) table designed to have test aircraft (model) mounted to it and (stimulate the model) create vibrations in order to test the response of the control systems.
=Problem Definition=
==Background==
This project originated with the Advanced Multi-rotor Drone project from Fall 2018 - Spring 2019. That project culminated with several test stands, and the hardware necessary to operate both a quad-copter drone, and a single axis Seesaw.
==Deliverables==
The purpose of this project is to design and create both a control system for the Seesaw, single axis, propeller actuated system, and equipment to test the response of the controls in the form of a mounting table capabl of vibrating up to 10Hz in 2 axes with a 1 inch displacement. The control system for the Seesaw will be written to operate on an Arduino-like AVR micro-controller, and will control the two motors at the ends of the Seesaw arm to balance the arm at a given angle and respond to disturbances created by the shaker table. This system will also be generalized to the quad-copter drone in the future.
In order to test the response of any control system it is necessary to be able to provide known disturbances. We will be doing this in the form of the table that performs user-defined vibrations. The Seesaw, and later the quadcopter, will be attached to the table and perturbed in order to measure the disturbance rejection qualities of the control system.
==Specifications==
The major specifications for the 2 project deliverables are below. This does not include minor requirements such as power and environmental specifications.
===The Table===
* Create vibrations up to a frequency of 10 Hz.
* Create vibrations up to a displacement of 1 inch.
* Withstand a minimum of 150,000 cycles.
===The Seesaw===
* Remain stable with disturbances up to 10 Hz and 1 inch displacement.
* Seek a user defined angle.
===Shared Requirements===
* Both will remain within a $2500 shared budget.
* Both will be easy to use and operate without significant training.
=Project Learning=
Our project learning has occurred in two main phases, research and design, followed by prototyping.
==The Research and Design Phase==
===The Table===
The Design
Two main designs were looked into:
* The Stewart Platform
* The Crank-Slider
We decided on the crank slider because it is simpler to add axes one at a time, and the cost was significantly lower than the other options.
Motor Selection
We looked into a selection of motors, including:
* Voice Coil Motors
* DC Induction Motors
* Stepper Motors
We are currently using stepper motors due to cost (high force voice coils are thousands of dollars) and the ease of controlling speed. The trade-off is a loss of torque at high speeds.
===The Seesaw===
The Design
A PID controller was pursued for its simplicity and effectiveness with our digital microcontroller. We chose to use digital control, rather than analog, for its faster development cycles and ability to use non-linear properties.
Reading
Design elements we are looking to implement include:
* Sensor Fusion
* PID control
* Ziegler-Nichols Loop Tuning.
==The Prototyping Phase==
===The Table===
In our early prototypes the table saw a much larger high frequency vibration environment than expected due to the stepper motors. This was fixed with adding damping inside the linkage connections. Several parts of the linkage were also machined out of aluminum, rather than cut from wood, to lengthen the usability of the table.
The stepper controllers are run through an Arduino with a connected laptop with the Arduino IDE. Commands include frequency sweeps from one frequency to another over a set period, and holding a desired frequency.
===The Seesaw===
Early testing ruled out proportional control methods, as the inertia of the system is large relative to the response of the motors. This has led us to the Ziegler-Nichols Method of tuning a PID control loop.
Work on the control system can be found on Github
=Final Design=
 thumb | Final product for vibrating table and Seesaw.
In the final design of the vibrating table and seesaw many elements of previous prototypes were brought together. Linkage designs from our previous design were remachined in steel to increase useful life, and the controller was changed from PI to PID, as well as many small changed to the physical Seesaw device.
==Future Improvements==
===The Table===
* The table is very heavy, which limits its frequency potential. Future teams could replace steel rails and the Seesaw rig in order to reduce weight.
* Motor power at high frequencies. An option we weren't able to explore was brushless DC motors with rotary encoders to control speed.
===The Seesaw===
* Wireless communication would eliminate non-linearity in the force application, making the Seesaw more stable.
* Battery power would also remove extraneous wiring, which would add stability to the system.
=Validation=
A plan for validation of all product requirements was designed and implemented with positive results.
* Both axes of vibration were capable of 10Hz vibration unweighted
* Both axes of vibration were achieved 5Hz with the current Seesaw weight
* Seesaw balanced under 10Hz perturbation.
* Both Seesaw and table took commands from outside sources.
=Team Members=
	Seth Berryhill 
Major: Mechanical Engineering 
Hometown: Buckley, WA 
Responsibility: Controls Systems and Software Development		Jeremiah Brands 
Major: Mechanical Engineering 
Hometown: Post Falls, ID
Responsibility: Manufacturing and Mechanical Design
	Jacob Brower 
Major: Mechanical Engineering
Hometown: Idaho Falls, ID
Responsibility: Motor Control and Circuit Design		
=Additional Documentation=
Project Schedule
Meeting Minutes
Client Interview