controlador de atitude

Branch:
yuri
Revision:
8:c96125e9ac70
Parent:
1:579511e9f0b8
--- a/Library/Library.h	Wed Oct 17 12:18:29 2018 +0000
+++ b/Library/Library.h	Wed Nov 21 10:07:00 2018 +0000
@@ -1,26 +1,43 @@
 #ifndef Library_h
 #define Library_h
+#include <math.h>
+
+ float const pi = 3.14159265f;
 //Attitude Controller VARIABLES
-float const dt2 = 0.005f;
+float const dt_alti = 0.005f;
 // Controller gains and /or time constants
-float const Kp_phi = 3.63*1.96;
+float const Ts = 2.0f;//0.3f;
+float const OS = 0.5f;
+
+float const zeta = sqrt(log(OS/100.0f)*log(OS/100.0f))/(sqrt(log(OS/100.0f)*log(OS/100.0f)+pi*pi));
+float const omega_n = 4.0f/(Ts*zeta);
+
+float const Kp_phi = omega_n*omega_n;
 float const Kp_theta = Kp_phi;
-float const Td_phi = 1.96;
+float const Td_phi = 1/(zeta*2*Kp_phi*sqrt(Kp_phi));
 float const Td_theta = Td_phi;
-float const Kp_psi = 2.57*0.81;
-float const Td_psi = 0.81;
+
+float const Ts2 = 0.6f;
+float const OS2= 0.5f;
+
+float const zeta2 = sqrt(log(OS2/100.0f)*log(OS2/100.0f))/(sqrt(log(OS2/100.0f)*log(OS2/100.0f)+3.1415f*3.1415f));
+float const omega_n2 = 4.0f/(Ts2*zeta2);
+
+float const Kp_psi = omega_n2*omega_n2;
+float const Td_psi = 4.0f/(Ts2*zeta2);
 // 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;
 // Attitude Estimator constants
- float const pi = 3.14159265f;
- float const dt = 0.005f;
- float const rho = 0.05f;
+ float const dt = 0.002f;
+ float const rho = 0.01f;
  // Mixer
 const float alpha = 1.081E-7;
 const float beta = 2.678E-11;
 const float kl = 2.69E-8;
 const float kd = 1.59E-10;
 const float l = 33E-3;
+const float m = 0.03f;
+const float g = 9.81f;
 # endif