1 #include "uiuc_get_flapper.h"
3 void uiuc_get_flapper(double dt)
8 flapStruct flapper_struct;
9 //FlapStruct flapper_struct;
11 flapper_alpha = Alpha*180/LS_PI;
12 flapper_V = V_rel_wind;
14 flapper_freq = 0.8 + 0.45*Throttle_pct;
17 // flapper_cycle_pct = flapper_cycle_pct_init;
20 // cycle_incr = flapper_freq*dt - static_cast<int>(flapper_freq*dt);
21 // if (cycle_incr < 1)
22 // flapper_cycle_pct += cycle_incr;
23 // else //need because problem when flapper_freq*dt is same as int
24 // flapper_cycle_pct += cycle_incr - 1;
26 //if (flapper_cycle_pct >= 1)
27 // flapper_cycle_pct -= 1;
29 //if (flapper_cycle_pct >= 0 && flapper_cycle_pct < 0.25)
30 // flapper_phi = LS_PI/2 * (sin(2*LS_PI*flapper_cycle_pct+3*LS_PI/2)+1);
31 //if (flapper_cycle_pct >= 0.25 && flapper_cycle_pct < 0.5)
32 // flapper_phi = LS_PI/2 * sin(2*LS_PI*(flapper_cycle_pct-0.25))+LS_PI/2;
33 //if (flapper_cycle_pct >= 0.5 && flapper_cycle_pct < 0.75)
34 // flapper_phi = LS_PI/2 * (sin(2*LS_PI*(flapper_cycle_pct-0.5)+3*LS_PI/2)+1)+LS_PI;
35 //if (flapper_cycle_pct >= 0.75 && flapper_cycle_pct < 1)
36 // flapper_phi = LS_PI/2 * sin(2*LS_PI*(flapper_cycle_pct-0.75))+3*LS_PI/2;
39 flapper_phi = flapper_phi_init;
41 flapper_phi += 2* LS_PI * flapper_freq * dt;
43 if (flapper_phi >= 2*LS_PI)
44 flapper_phi -= 2*LS_PI;
46 flapper_struct=flapper_data->flapper(flapper_alpha,flapper_V,flapper_freq,flapper_phi);
47 flapper_Lift=flapper_struct.getLift();
48 flapper_Thrust=flapper_struct.getThrust();
49 flapper_Inertia=flapper_struct.getInertia();
50 flapper_Moment=flapper_struct.getMoment();
52 F_Z_aero_flapper = -1*flapper_Lift*cos(Alpha) - flapper_Thrust*sin(Alpha);
53 F_Z_aero_flapper -= flapper_Inertia;
54 F_X_aero_flapper = -1*flapper_Lift*sin(Alpha) + flapper_Thrust*cos(Alpha);