Quadrotor PID simulation

17 views (last 30 days)
Robert
Robert on 13 Jun 2011
Commented: Robert on 3 Jan 2023
Hello,
My name is Robert and I am an undergraduate student at UIUC. I am currently working on a project and was wondering whether or not Matlab would be helpful in my endeavor. Before I start fiddling around and start putting in a lot of effort into this Matlab/Simulink project I was wondering if it was worthwhile. The project idea is as follows:
I am designing a quadrotor (at the moment only a one axis balancing arm that pivots on an axle with a motor/propeller on each end of the arm). I have an encoder attached to the axle that records the actual position of the arm. I was hoping to implement a PID controller that would adjust the propeller speeds accordingly so it goes to the exact position I specify in the shortest amount of time. My question are, can I provide Matlab with real time streaming data coming from the quadrotor and the encoder and design a pretty good PID control using the control system PID toolkit and autotuner PID toolkit? Is this feasible? I can stream data coming from the quadrotor and encoder into an excel file.. What would be the best way to go about this, I am very new to MatLab and only know the basics, although I am a very avid programmer.
Thank you,
Robert
  3 Comments
Anjana
Anjana on 3 Jan 2023
I am also doing this project could you please sent me a simulation of the same project
Robert
Robert on 3 Jan 2023
I am actually working on a series of youtube videos that reviews this entire process. Will keep you posted.

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 13 Jun 2011
Matlab/Simulink is the right tool for your task, however, you need to understand that Matlab/Simulink mostly runs simulation on your computer, it is not fit for real-time control, especially for your task which sounds timing critical to me. There is a toolbox called xPC Target which allow you to boot your computer with RTOS and use it for real-time control. You can also use third party rapid prototype system for the real-time task. The typical procedure is that your build your controller plus your motor plant model in Matlab/Simulink environment and try-and-error your design till you get good performance. Then you can automatically generate C code, compile it and download to your real-time system (xPC target or rapid prototype) which has hardware I/O that can interface with your motor hardware.

More Answers (3)

Robert
Robert on 13 Jun 2011
Thank you Fangjun, I like the second option you listed, rapid prototype in the simulink/matlab environment and then generate C code and try it out on my real desk model. I was playing around with simulink and I came up with a design process. Can you check if I am moving in the right direction.
I will first import my quadrotor Autocad Inventor model through sim mechanics and then run PID simulations on the model. After perfecting my model software, I will convert it to C code (which I am not to sure how its done..) and test it out on my quadrotor. What do you think?
  3 Comments
Robert
Robert on 14 Jun 2011
Great! I am excited to get started on this project and I'm willing to bet I will learn a lot.
Thank you
Regards,
Robert
Fangjun Jiang
Fangjun Jiang on 14 Jun 2011
Yes, that sounds like a good approach. You'll need the Simulink Coder toolbox to generate C code. If your controller is primarily a PID controller, you might consider coding it yourself. In either case, you need to take care of the low level driver for your AD/DA, encoder sensor etc.

Sign in to comment.


Suleman Shafqat
Suleman Shafqat on 16 Nov 2011
Hi Robert are u done with quadrotor modeling now or not? does that C code generation approach helped u i am also doing quad rotor project.
  3 Comments
K E
K E on 29 May 2012
Way to go, Robert! I guarantee you will have many readers of the PDF file if you post it back here - so many Simulink questions here are 'how do I get started' on a project like this.
Jan Vidar
Jan Vidar on 9 Aug 2013
How did it turn out? Is the pdf-file available? Would be very interesting.

Sign in to comment.


Zack zeko_boeing747@hotmail.com
Hi guys, I was working on modelling and controlling a quad rotor flying robot. And finally I am done with the whole process. However, lately I thought of simulating the robot in a 3D trajectory plane or may be an environment to track it's path and see the differences UN-controlled and after controlling. I don't wanna write lots of complex mathematical equation to describe what I wanna do in order to make it easy for anyone to help me.
My question is simple as follows: I have 6 equations that give 6 different outputs (X Y Z theta Phi Epsi). All what I need from anyone is tell me how to connect 6 different equation with 1 block diagram that translates these outputs in a 3D space.
Regards,
Zack
  1 Comment
K E
K E on 29 May 2012
This seems like a new question, so if you get no answers in this thread you may want to post it as a new question.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!