DOI: 10.6084/m9.figshare.11725929
title: Supplementary Data and Code accompanying: "A semi-empirical model of the aerodynamics of manoeuvring insect flight"

description: This README file provides a summary of the MATLAB files in the zipped folder SupplementaryData1.zip supplied as Supplementary Data 1 in support of the paper:<br>Walker, S.M., Taylor, G.K. (2021). A semi-empirical model of the aerodynamics of manoeuvring insect flight, published in J. R. Soc. Interface. https://doi.org/10.1098/rsif.2021.0103<br>To get started, run the script "ExampleCode.m". This runs the blade element model to calculate the aerodynamic forces for two sets of kinematics: (1) the standard hovering wingbeat as defined in the paper; and (2) an example free-flight recording. <br>Two kinematic datasets are included: "KinFourierData.mat" and "HoveringKinFourierData.mat". Both have the same structure and variables within. "KinFourierData.mat" contains all 879 recordings used in the paper (N=26,541 wingbeats), expressed in compressed form using the truncated Fourier series representation defined in the paper. "HoveringKinFourierData.mat" contains the standard hovering wingbeat as defined in the paper.<br>Each workspace contains two structures: "Kinematics" and "Metrics". The Kinematics structure includes all of the time-varying kinematic variables reported in the paper, stored as a set of Fourier coefficients. All angles and their time derivatives are in units of degrees, degrees/s, and degrees/s^2; all linear parameters are in units of metres, metres/s, and metres/s^2. The wingbeat period ("period") is in units of milliseconds. The datasets "KinFourierData.mat" and "HoveringKinFourierData.mat" also include fields for the insectID and recording number; each structure in "KinFourierData.mat" corresponds to a single recording of a flight sequence; and each column of each variable corresponds to a single wingbeat.<br>The "metrics" structure that accompanies the kinematic data includes several time-invariant parameters, including wing length (m), body length (m), mass (kg), and air density (rho, kg / m^3) which was calculated on the basis of the measured air temperature and humidity. The parameter "wbOffset" defines the position of the right wing base in the body-fixed axis system, normalised by body length.<br>The workspace EristalisWingOutline.mat contains a representative wing outline for Eristalis, as measured by digitising scans of wings dissected from freshly-killed flies. The two arrays that this workspace contains specify the chordwise and spanwise coordinates of the wing outline. Each array has two columns, containing the coordinates of the leading and trailing edges, respectively. These coordinates are expressed in dimensionless form, and should be multiplied by the wing length to put them in dimensional form. <br>The main blade element model is run using the function "blade_element_model.m".<br>The function "conv_fourier2kinematics.m" is used to transform the Fourier coefficients of the selected sequence into a time history of the kinematic variables, with the number of time steps specified by the variable "numTimeSteps". If using other, kinematics then this function can be skipped.<br>The function "calc_body_forces.m" is used to calculate the total forces acting on the body, based on its inertial acceleration in the lab-fixed axis system. Other functions are internal to the model.<br>To implement the model, it is recommended that the user first runs "ExampleCode.m" to familiarise themselves with layout. This script runs two examples using the blade element model. The first example loads the "HoveringKinFourierData.mat" dataset and calculates the aerodynamic forces through the standard hovering wingbeat, with the results then plotted resolve in each of the three body axes and in the lab-fixed vertical axis.<br>The second example loads the full dataset "KinFourierData.mat" and runs on a single selected sequence. It first calculates the total body force, and then calculates the aerodynamic forces using the blade element model. Finally, the wingbeat-averaged forces are plotted in each of the three body axes, and in the lab-fixed vertical axis.<br>Note that when calculating the wingbeat-averaged forces, the last time step from each wingbeat is excluded. This is to avoid double-counting, and is necessary because each wingbeat is stored separately on the closed interval from phase 0 to 2*pi, such that the last time step has the same phase as the first time step, and is identical to the first time step of the following wingbeat, notwithstanding the negligible variation due to the interpolation method that is used to separate the kinematics into individual wingbeats as described in the paper.