The multirotor change it state due to the forces and torques applied to it. They are produced by the motors, the environment and the multirotor itself.
Multirotor Dynamics Table of Contents
- 1. Forces and Torque due to Motors in Motor Frame
- 2. Forces and Torques due to Motors in Body Frame
- 3. Forces and Torques due to Environment
Each motor produces a force in its z-axis and a torque in the x and y axes, as shown in the figure below.
The force produced by the motor can be describe as a function of the angular velocity of the motor and the thrust coefficient
And the torque produced by the motor can be describe as a function of the angular velocity of the motor and the torque coefficient
Each force produced by the motor is transformed to the body frame by the rotation matrix
The force applied to the rigid body is the sum of the forces produced by each motor:
As mention before, the force produced by the
where:
-
$\vec{Z}(F_{i_M})$ is the force produced by the$i$ -th motor in the z-axis of the motor frame.
To transform the force produced by the motor to the body frame, the rotation matrix
where:
-
$R_{BM_i}$ is the rotation matrix from the$i$ -th motor to the body frame. -
$\vec{F}_{i_M}$ is the force produced by the$i$ -th motor in motor frame.
In resumen, the total force produced motors in body frame is given by:
If motors are aligned with the body frame, rotation matrix
As the force is only applied in the z-axis of the motor frame, also is only applied in the z-axis of the body frame. This results in:
This matrix is related with the mixer matrix.
The torque applied to the rigid body is the sum of the torques produced by each motor:
It is composed of two parts, one due to the thrust force in motor frame and another due to the torque produced by the motor spinning.
Where:
-
$\vec{\tau}_{i,thrust_B}$ is the torque produced by the thrust force of the$i$ -th motor in body frame. -
$\vec{\tau}_{i,torque_B}$ is the torque produced by the torque of the$i$ -th motor in body frame.
The torque produced to the rigid body by the thrust force is given by the cross product between the translation of the motor and the thrust force:
Where:
-
$T_{BM_i}$ is the translation matrix from the$i$ -th motor to the body frame. -
$\vec{F}_i$ is the thrust force of the$i$ -th motor in body frame.
Replacing the thrust force in body frame to the thrust force in motor frame:
Motor rotation generates a torque in the body frame. This torque is produced by the rotation of the motor with the propellers and its inertia.
Where:
-
$\vec{\tau}_{propellers_B}$ is the torque produced by motors rotation with propellers in body frame. -
$\vec{\tau}_{inertia_B}$ is the torque produced by the inertia of motors in body frame.
As mention before, the torque produced by the motor rotation with propellers in motor frame is given by the motor torque coefficient. This torque is produced in the z-axis of the motor frame.
To transform it to the body frame, the rotation matrix
In resumen, the torque produced by motors rotation with propellers in body frame is given by:
The torque produced by the inertia of the motor in motor frame is given by the product of the motor rotational inertia and the angular acceleration of the motor. This torque is produced in the z-axis of the motor frame.
Where:
-
$J_{i,motor}$ is the rotational inertia of the motor in motor frame. -
$\alpha_i$ is the angular acceleration of the motor in motor frame.
To transform it to the body frame, the rotation matrix
In resumen, the torque produced by motors inertia in body frame is given by:
In resumen, the torque produced by each motor torque in body frame is given by the sum of the torque produced by the thrust force and the torque produced by the motor rotation and inertia:
Note that when the motors are align with the body frame, the rotation matrix
Also, the torque produced by the thrust force is applied in x and y axes, while the torque produced by the motor rotation and inertia is applied in z axis. This results in:
In resumen, the forces and torques produced by the motors in body frame are given by:
When the motors are align with the body frame, the resulting forces and torques are:
This can be factorized as:
This matrix is related with the mixer matrix.
Some of the most common configurations can be found in Common Configurations.
Environment forces and torques are produced by external factors, such as wind, gravity, and air resistance.
The forces can be simplified as the sum of the gravity force, the aerodynamic drag and a stochastic force.
The gravity force is produced by the gravity acceleration. The gravity force in the world frame is given by:
where:
-
$m$ is the multirotor mass. -
$g$ is the gravity acceleration.
The drag force is produced by the air resistance to the multirotor's motion. The magnitude of the drag force can be linearized as proportional to the square of the vehicle's lineal velocity and to a coefficient of drag that depends on the shape and size of the vehicle, as well as the properties of the fluid through which the vehicle is moving. The mathematical model of the drag force can be expressed as:
where:
-
$\vec{F}_{drag_W}$ is the drag force in the body frame. -
$\rho$ is the density of the fluid. -
$A$ is the cross-sectional area of the vehicle. -
$C_D$ is the drag coefficient of the vehicle. -
$\vec{v}_{B}$ is the lineal velocity of the vehicle in the body frame.
Simplified, the drag force can be expressed as:
where:
-
$k_{drag}$ is the drag coefficient.
The negative sign in front of the equation indicates that the aerodynamic force always opposes the multirotor's motion.
To transform the drag force to the world frame, the rotation matrix
Stochastic forces are produced by the forces that act on the vehicle and are not expected. This can be modeled as a random force with a normal distribution.
where:
-
$\vec{F}_{stochastic_W}$ is the stochastic force in the world frame. -
$\sigma$ is the standard deviation of the stochastic force.
The torques can be simplified as the sum of the aerodynamic torque and a stochastic torque.
The aerodynamic torque is produced by the air resistance to the multirotor's motion, and it depends on the multirotor's shape, size, and orientation. The aerodynamic torque can be calculated by:
Where:
-
$\vec{\tau}_B$ is the aerodynamic torque in the body frame -
$I_{aero}$ is the aerodynamic inertia matrix -
$\vec{\omega}$ is the angular velocity of the multirotor in the body frame
The negative sign in front of the equation indicates that the aerodynamic torque always opposes the multirotor's motion.
Stochastic torques are produced by the forces that act on the vehicle and are not expected. It can be modeled as a random torque with a normal distribution.
where:
-
$\vec{\tau}_{stochastic_B}$ is the stochastic torque in the body frame. -
$\sigma$ is the standard deviation of the stochastic torque.