PID control on helicopter

Hi all,
I am sorry if this problem has been answered but I cannot find much help from the archive.
I am trying to hover a R/C helicopter with a IMU using PID on a test
bench (omnidirectional).
I track the Euler angle to be all zeros w.r.t the inertial orientation (when it rests on the ground) but failed. Then I tried to track the angular velocity of the vehicle to be zeros along all 3 axis, but still, failed as the tends to roll or pitch and rest the boundary on the bench.
I would like to know if I use PID to control this kind of vehicle, then what are the tracking target (desired value) I should use???
Thank you!
Nick
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Nick wrote:

I think you're so deep into the problem that you've forgotten that not all of us will understand the terminology specific to your application. So you have to do some sorting out for us.
What do you mean by Euler angle? What is your test bench? What does the word "omnidirectional" modify?
You've got one of two basic problems. Either your loop is faulty in a 'controlish' sort of way, meaning that you're getting perfectly good error signals but your controller isn't treating them right, or your controller is misinterpreting the IMU data and giving you incorrect error angles.
I would do some careful characterization of the IMU portion of your system, making sure that when you move the helicopter around you get the correct angles and you calculate the correct error angles. Once you've assured yourself that your IMU part is right, then attack the control problem.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tim Wescott wrote:
...

And what's an IMU?
...
Jerry
--
Engineering is the art of making what you want from things you can get.

  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Jerry Avins wrote:

Well, I know what it means, so it's not obscure jargon, eh?
IMU is the TLA* for "inertial measurement unit". A full-up IMU will have three gyro axes and three accelerometers, and in theory measure all you need to know in inertial space. They can range from a 1" cube with uncalibrated devices that you could probably whip together for a $200 BOM cost, to units used to navigate submarines that probably cost 1e6 times that much.
* "Three Letter Abbreviation"
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tim Wescott wrote:

Oh. One of _those_. :-)
Jerry
--
Engineering is the art of making what you want from things you can get.

  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
The Euler angles are outputs from the Inertial Measurement Unit (IMU, which consists of rate gyro, magnetometer and accelerometer). They are defined, in our case, the derivation angles about x-,y-,z-axis of the IMU-attached body (helicopter) to the inertial frame orientation. It tells the orientation of the IMU-attached body.
E.g., if the body is on a table, and you may reset the IMU so that the body-frame overlaps the inertial frame orientation, then all Euler angles are zeros.
E.g., then, after reset, if you rotate the body about the x-axis of the inertial-frame by a degree (call it as "roll"), the IMU will outputs an Euler angle about its x-axis as "roll". The other two Euler angle (about y-and z-axis) will read zeros (as there is no rotation).
Tim Wescott wrote:

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

At my work we've tried to use gyros and accelerometers to make an inertially stable platform. Similar to making your helicopter hover without wobbling. I looked into similar controllers for controlling acceleration or velocity to zero. Both of these types of controllers tended to be difficult to design. Ultimatley I could live with the performance of a position controller.
I had accel and velocity outputs. I integrated them (digitally) to get both as position outputs. Depending on the noise characteristics of both sensors you may need to blend the sensors using 2nd order high and low pass filters (higher order filters can be used but take a lot of experience to design). The digital system output a position error to the platform controller.
The controller was a PI with lead/lag network (for better phase margin) and drove the position to 0. The integration of the gyro and accel outputs can make low frequency noise worse. As a result I would expect your helicopter to hover well but wander (in translation) over time.
I've started a wiki on Controls. If you get this to work please visit my site and tell us how.
Gabe Spradlin http://wikis.ControlTheoryPro.com
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
http://wikis.ControlTheoryPro.com/index.php?title=Helicopter_Hover_Example
I've created a hovering helicopter example at the link above. It's for a Blackhawk and I've kept it simple but it implements the integration of the gyro outputs.
It includes modeling dynamics, an m-file, and 2 Simulink models. I design a pitch attitude controller based on the polynomial design method and create a feedforward command by integrating a gyro output.
Gabe http://wikis.ControlTheoryPro.com http://forums.ControlTheoryPro.com --- New controls forum without the spam
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.