1. Quick weekly updates
- Implemented theoretical model to get flow fields
- Wrote a new control node to fly from one-point to another at constant speed – tried and tested in experiments
- Added integral action to Quadcopter Controller – tried and tested in experiments
To check out the codes for integral action and constant velocity trajectory, check out my branch ‘Karan/aerointerf’
2. Detailed updates
Constant velocity trajectory
The code basically gets the top quad to a desired height, and the bottom quad to an initial desired position. After some time the bottom quad starts moving to a final desired position at a desired speed. Both the quads then land at the end time. All the quantities in bold are user specified.
Majority of the code was copied from QuadMocapRatesControl. All I had to do was add another flight stage for the constant velocity maneuver, and command a velocity through ExampleVehicleStateMachine.
This was desired for 2 reasons:
- When the center of mass of a quad is not exactly where the code thinks it is (for example due to battery placement not being precise), the quad is a ‘constant disturbance torque’ acting on it. This results in a setpoint offset and the quad is unable to maintain its desired setpoint.
- In my proximity flight experiments, we have disturbance torques and forces due to the top vehicle on the bottom vehicle. This sometimes leads to the bottom quad maintaining a position offset from the desired setpoint.
Both of the above issues are resolved using integral action. But we should follow caution while implementing it as integral action can lead to oscillations and instability. To implement this, I just changed a small part in the QuadcopterController as shown in the screenshot below,
I have a tuning constant Ki, and a variable ‘cumerrPos’ which keeps adding the position error (equivalent to integrating). A catch here is declaring the integrator (cumerrPos) as a static variable so that the value is not reset every time we call the Controller function. I have tried declaring it as a regular Vec3, but it does not work.
I followed the model in the paper titled “Propeller Slipstream Model for Small Unmanned Aerial Vehicles“. This model assumes a gaussian distribution of flow velocities in the zone of established flow (ZEF,
explained in the previous update). ZEF begins at about 5 propeller diameters (Dp) from the propeller plane, but since we have 4 propellers on the quadcopter, I relaxed this condition and assumed that ZEF begins at 10*Dp.
The peak value of this distribution at a specific axial distance is assumed to decrease linearly with the axial distance. The spread increases with increase in axial distance.
The peak and spread values of the distribution also depend on a factor called ‘viscosity constant’ (K_visc) but there is very limited research available on this parameter. So to start with, I assumed some value for it by assuming that flow becomes indistinguishable from ambient flow at about 100*Dp. I can use this in the formula for peak value and get K_visc.
After doing all that, here are the plots. The coordinate system is same as our lab. Plots are made for various planes below the quadcopter – 1 m, 2 m, and 3 m.
The peak velocities seem reasonable (similar to those predicted by actuator disk model), but there seems to be a small problem with the spread – it is too little. At z = 2 meters, I would definitely expect there to be some flow at lateral separations of 1 m. But I cannot claim anything solid because I have not done experiments with both horizontal and lateral separation. So I shall be doing these in the coming days to verify if the theory is giving something sensible. If the experiments say otherwise, either K_visc is not very well understood by me, or the model is not suitable for us.
3. Planned work for the next week
- Perform proximity flight experiments with the constant velocity trajectory code. One set of experiments to sweep horizontally at different vertical separations, and another to sweep vertically (while being aligned) at various yaw angle phase differences.
- Analyze that data, and compare with theoretical predictions to verify whether the theory makes sense.
- Look into the eVTOL paper submission formalities.
4. Plans for next 30 days
- Get a complete set of empirical data for forces and torques vs separation.
- Complete and submit the eVTOL symposium paper.