diff --git a/README.md b/README.md index 657a2dd..0603f15 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # Quadcopter Control -ME/EECS 561 W20 Quadcopter control source code repository. \ No newline at end of file +UMICH EECS / MECHENG 561: Design of Digital Control Systems WN 2020 + +Full State Feedback and Control of a Quadcopter Drone + +## Documentation + +Please see the project [website](https://me-561-w20-quadcopter-project.github.io/Quadcopter-Control/home) for documentation. \ No newline at end of file diff --git a/docs/1. ME 561 Project Proposal.pdf b/docs/1. ME 561 Project Proposal.pdf new file mode 100644 index 0000000..5605b0e Binary files /dev/null and b/docs/1. ME 561 Project Proposal.pdf differ diff --git a/docs/home.md b/docs/home.md new file mode 100644 index 0000000..16f68c1 --- /dev/null +++ b/docs/home.md @@ -0,0 +1,25 @@ +# Full State Feedback and Control of a Quadcopter Drone + +## Table of Contents +- [Contributors](#contributors) +- [Documents](#documents) + +## Contributors + +### Project Team + +- Sravan Balaji ([balajsra@umich.edu](mailto:balajsra@umich.edu)) +- Aditya Iyer ([adiyer@umich.edu](mailto:adiyer@umich.edu)) +- Lakshmanan Periakaruppan ([lperiaka@umich.edu](mailto:lperiaka@umich.edu)) +- Naman Shah ([namanvs@umich.edu](mailto:namanvs@umich.edu)) +- Sumedh Vaishampayan ([sumi@umich.edu](mailto:sumi@umich.edu)) + +### EECS / MECHENG 561 W20 Course Staff + +- Ram Vasudevan ([ramv@umich.edu](mailto:ramv@umich.edu)) +- Sid Dey ([siddey@umich.edu](mailto:siddey@umich.edu)) + +## Documents + +1. [Project Proposal](1.%20ME%20561%20Project%20Proposal.pdf) +2. [Final Report (Overleaf)](https://www.overleaf.com/read/kyjvdsxkfnmg) diff --git a/PlantModel.m b/src/PlantModel.m similarity index 67% rename from PlantModel.m rename to src/PlantModel.m index cdf842f..09e7c6c 100644 --- a/PlantModel.m +++ b/src/PlantModel.m @@ -1,52 +1,51 @@ -%Parameters source: https://sal.aalto.fi/publications/pdf-files/eluu11_public.pdf -g=9.81; -m = .468; -Ix = 4.856*10^-3; -Iy = 4.856*10^-3; -Iz = 8.801*10^-3; - -%State Space Source: https://arxiv.org/ftp/arxiv/papers/1908/1908.07401.pdf -%X' = Ax+Bu -%y = Cx+Du - -%Inputs: -%U1: Total Upward Force on the quad rotor along z-axis -%U2: Pitch Torque (about x-axis) -%U3: Roll Torque (about y-axis) -%U4: Yaw Torque (about z-axis) -A = [0 0 0 1 0 0 0 0 0 0 0 0;... - 0 0 0 0 1 0 0 0 0 0 0 0;... - 0 0 0 0 0 1 0 0 0 0 0 0;... - 0 0 0 0 0 0 0 -g 0 0 0 0;... - 0 0 0 0 0 0 g 0 0 0 0 0;... - 0 0 0 0 0 0 0 0 0 0 0 0;... - 0 0 0 0 0 0 0 0 0 1 0 0;... - 0 0 0 0 0 0 0 0 0 0 1 0;... - 0 0 0 0 0 0 0 0 0 0 0 1;... - 0 0 0 0 0 0 0 0 0 0 0 0;... - 0 0 0 0 0 0 0 0 0 0 0 0;... - 0 0 0 0 0 0 0 0 0 0 0 0]; - -%Note: In paper, 1/m is in wrong spot -B = [0 0 0 0;... - 0 0 0 0;... - 0 0 0 0;... - 0 0 0 0;... - 0 0 0 0;... - 1/m 0 0 0;... - 0 0 0 0;... - 0 0 0 0;... - 0 0 0 0;... - 0 1/Ix 0 0;... - 0 0 1/Iy 0;... - 0 0 0 1/Iz]; -C = [1 0 0 0 0 0 0 0 0 0 0 0;... - 0 1 0 0 0 0 0 0 0 0 0 0;... - 0 0 1 0 0 0 0 0 0 0 0 0;... - 0 0 0 0 0 0 1 0 0 0 0 0;... - 0 0 0 0 0 0 0 1 0 0 0 0;... - 0 0 0 0 0 0 0 0 1 0 0 0] -D = zeros(6,4) - - - +% Parameters source: https://sal.aalto.fi/publications/pdf-files/eluu11_public.pdf +g=9.81; +m = .468; +Ix = 4.856*10^-3; +Iy = 4.856*10^-3; +Iz = 8.801*10^-3; + +% State Space Source: https://arxiv.org/ftp/arxiv/papers/1908/1908.07401.pdf +% X' = Ax+Bu +% y = Cx+Du + +% Inputs: +% U1: Total Upward Force on the quad rotor along z-axis +% U2: Pitch Torque (about x-axis) +% U3: Roll Torque (about y-axis) +% U4: Yaw Torque (about z-axis) +A = [0 0 0 1 0 0 0 0 0 0 0 0;... + 0 0 0 0 1 0 0 0 0 0 0 0;... + 0 0 0 0 0 1 0 0 0 0 0 0;... + 0 0 0 0 0 0 0 -g 0 0 0 0;... + 0 0 0 0 0 0 g 0 0 0 0 0;... + 0 0 0 0 0 0 0 0 0 0 0 0;... + 0 0 0 0 0 0 0 0 0 1 0 0;... + 0 0 0 0 0 0 0 0 0 0 1 0;... + 0 0 0 0 0 0 0 0 0 0 0 1;... + 0 0 0 0 0 0 0 0 0 0 0 0;... + 0 0 0 0 0 0 0 0 0 0 0 0;... + 0 0 0 0 0 0 0 0 0 0 0 0]; + +% Note: In paper, 1/m is in wrong spot +B = [0 0 0 0;... + 0 0 0 0;... + 0 0 0 0;... + 0 0 0 0;... + 0 0 0 0;... + 1/m 0 0 0;... + 0 0 0 0;... + 0 0 0 0;... + 0 0 0 0;... + 0 1/Ix 0 0;... + 0 0 1/Iy 0;... + 0 0 0 1/Iz]; + +C = [1 0 0 0 0 0 0 0 0 0 0 0;... + 0 1 0 0 0 0 0 0 0 0 0 0;... + 0 0 1 0 0 0 0 0 0 0 0 0;... + 0 0 0 0 0 0 1 0 0 0 0 0;... + 0 0 0 0 0 0 0 1 0 0 0 0;... + 0 0 0 0 0 0 0 0 1 0 0 0]; + +D = zeros(6,4); diff --git a/PlantModelSim.slx b/src/PlantModelSim.slx similarity index 100% rename from PlantModelSim.slx rename to src/PlantModelSim.slx