## 2 Materials and Methods
### Simulations
Moreover, it is visualized how limb 2 and 3 move in a synchronized way, hence, for further analysis (and for reasons of brevity) it would only be necessary to focus on the behavior of one of them. Figure 12 presents the control action taken by the adaptive FUPD, FFUPD and the FFPD controllers. The shown graphs from the first row are the required forces for limb 1 to keep position when the platform is flapping at 1 Hz (a through c). The second row of graphs details the required forces to make limb 2 follow a desired trajectory when the platform is flapping at 1 Hz as well (d through f). The final row describes the required forces to move limb 2 when the platform is flapping at 5 Hz (g through h). Since the FUPD controller iteratively adapts according to the error's behavior and its changing rate, shattering is produced on the action of control, as seen on Figure 12b,e,h. The feedforward stage from the FFPD and FFUPD lets the control action be smoother without causing abrupt changes. However, high flapping frequencies will demand high levels of back drive forces applied to limb 2 and 3. FFPD and FFUPD controllers seem to be adequate for such demands without risking precision when reaching desired positions. Figure 10: Results for set 1 of simulations at 1 Hz: (**a**) shows steady-state error from PD and FUPD and great performance to reach position from FFPD and FFUPD, (**b**) shows great response to follow desired trajectories in limb 2 and (c) limb 3 seems to reach positions with either controller. shows the system's behavior when the sinusoid disturbance was applied as well. In this set of simulations, limbs tend to present a stationary error and an offset once the disturbance is applied. When controlling limb 1, FUPD controller has a better reaction compared to those with a feedforward stage; this is shown in Figure 13b,d, Figure 14b,d and Figure 15b,d. Even when this behavior is also presented for limb 2 and 3, once disturbances are taken away, FUPD seems to never reach the desired set point. FFPD and FFUPD always reach the setpoint when the desired position stays constant through time. Additionally, when the flapping frequencies increase and limbs 2 and 3 has to move faster, FFPD and FFUPD show better results when controlling limbs' lengths even in the presence of disturbances. The results achieved show how considering the full dynamics of the system to predict the limb's behavior will serve as a more precise solution when following trajectories than those waiting for error's behavior. Moreover, adapting gains in the feedback stage resulted in a better performance at high frequencies, with the FFUPD being the best choice for controlling the designed system when higher levels of thrust were desired and when disturbances were entering the plant. The way FFUPD better reacts to disturbances applied and allows limbs to follow desired paths is visualized in Figure 13c,e, Figure 14c,e and Figure 15c,e. Figure 16 shows the controllers' actions when the sinusoid disturbances were applied in limb 2. The comparison was made so that control action could be properly compared when the platform was flapping at 1 and 5 Hz. Finally, Figure 17 shows the percentage relative error from all simulated tests when limb 2 tried to follow the desired trajectory during a period of 5 s. Flapping frequencies augmented gradually from 0.5 Hz to 5 Hz. As a general conclusion, it is seen that for these types of mechanisms, where higher flapping frequencies are desired, the path tracking problem starts to demand higher and more efficient control strategies. For the designed propulsion system, the platform's oscillation can be properly controlled by the correct application of forces in the limbs that hold it. From results on Figure 17, it is shown that controllers that count with a predictive stage will perform better than those that act according to error rates. Moreover, the adaptive feedforward PD controller presented a stable performance throughout all simulated scenarios.