Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Motors and Rotors

First of all, these things:

are KielerIO. They are a new actor developed by C.Motika for input and output in Ptolemy. They are used by the provided Java program to input values to the ptolemy simulation to run it. They can be used like a generic constant source. If you run into problems while trying to load the ptolemy model, you must first import the files of the KielerIO actors in your ptolemy installation. To do that, copy the KielerIO.class and .java (or KielerIOFloat.class) files to the (new) directory ptIIXX.X.devel/ptolemy/actor/kiel.

 

After that we calculate the revolutions per minute of the rotors:

The calculations here are fairly easy. You multiply the current voltage of the motor with its RPM/V, multiply that with 60 and 2*π to get the revolutions per minute of the rotors. You do that with all rotors and then calculate the thrust and torque of the copter:

The thrust of the copter itself is only one way: upwards (at least the upwards of the copter). The actual acceleration is later calculated and considers the angles of the copter and other things.

The calculation is fairly easy. You simply square the RPMs of all motors, add them together and multiply them with the lift constant/coefficient of the rotors.

Now it gets a little bit more interesting. Once again we square our RPMs. Then we divide our calculations into our three axes: The Roll (rotation around x-axis), pitch (rotation around y-axis) and yaw (rotation around z-axis). Yaw is pretty straightforward: Every Propeller creates a counterforce if it turns. So if a propeller turns clockwise, it creates a force counterclockwise on the arm it is attached on. Since our copter is a rigid body, the rotation translates to the whole body. So if all our rotors would turn clockwise, we would create four forces to turn our copter counterclockwise. WE DON'T WANT THAT! So we turn two of the rotors (the one in the front left and the one in the back right) counterclockwise. Now if we need to turn the copter clockwise, we can rotate these two rotors faster than the other two and vice versa. Now we only have to consider the drag of the rotors and we get the torque around the z-axis.

For Pitch and Roll we have two similar calculations. If we want to rotate around the x-axis, the two motors that are ON the x-axis can be ignored. So if one of the other two propeller rotates faster than its opposite, he creates more force and the copter tilts towards the other rotor. The same applies to the rotation around the y-axis.

This is also the reason, why we use opposite rotors to turn the same direction for the yaw-torque. If we would use neighbouring rotors, we would inadvertantly also tilt one way if we want to turn. We also don't want that. Obviously.

 

I hope this chapter was clear and easy to understand. If you have any questions or feedback, please post it. I probably won't read it.

  • No labels