controlador de atitude

AttitudeController/AttitudeController.h

Committer:
yvesyuzo
Date:
2018-10-16
Revision:
2:54fabc943f25
Parent:
0:3871dc7bedf7
Child:
8:c96125e9ac70

File content as of revision 2:54fabc943f25:

#ifndef AttitudeController_h
#define AttitudeController_h

#include "mbed.h"
#include "Library.h"

/*
float const dt2 = 0.005f;
// Controller gains and /or time constants
float const Kp_phi = 3.63*1.96;
float const Kp_theta = Kp_phi;
float const Td_phi = 1.96;
float const Td_theta = Td_phi;

float const Kp_psi = 2.57*0.81;
float const Td_psi = 0.81;


// Quadcopter moments of inertia (kg.m ^2)
float const I_xx = 16.0e-6f;
float const I_yy = 16.0e-6f;
float const I_zz = 29.0e-6f;
*/

class AttitudeController
{
    public :
        // Class constructor
        AttitudeController () ;
        // Control torques given reference angles and current angles and angular velocities
            void control(float phi_r, float theta_r, float psi_r, float phi, float theta, float psi);
        // Torques (N.m)
        float tau_phi, tau_theta, tau_psi;
        
    private :
    // Control torque of a single axis given reference angles and current angles and angular velocities ( with given gains and /or time constants and moments of inertia )
        float single_axis_control(float angle_r, float angle, float K_angle, float K_rate , float I, float last_erro_angle);
        
        float last_erro_phi, last_erro_theta, last_erro_psi;
        
        float last_erro;
};
# endif