Student Lounge

Sharing technical and real-life examples of how students can use MATLAB and Simulink in their everyday projects #studentsuccess

Simulating Water-Propelled Aircraft for Airbus Sloshing Rocket Workshop

Introduction

This work was developed by Piercarlo Mirto and Vincenzo Junior Di Rosa master’s students in Aerospace Engineering at the University of Naples Federico II. This was their contribution to the AirSloths team’s project presented to the Airbus Sloshing Rocket Workshop (ASRW) 2023 competition. Team AirSloths secured first position in the 2023 final, held in Belgrade.
The code aims to simulate the aircraft model’s flight and let the team optimize its geometry to maximize the flight range. Figure 1 shows the desired flight path.
Figure 1 – Desired aircraft flight

Motivation

The ASRW 2023 competition demands teams develop a low-cost reusable rocket-powered aerospace vehicle that is destabilized by the movement of water stored in an unpressurized tank located on the rear side of the vehicle. The vehicle design shall incorporate mechanisms to manage the dynamic forces introduced by the sloshing water to maximize its range, time of flight, and liquid payload capacity.
To achieve this goal of maximum range, endurance, and stable flight, the AirSloths team developed the simulation with MATLAB and Simulink to study the effect of tail contribution and optimize the vehicle design. This code was developed with the following assumptions:
  • Complete aircraft is a rigid body.
  • There is zero sloshing.
  • There is zero latency in avionics.
  • Aircraft has longitudinal symmetry.
The main idea was to actively regulate the pitching moment law to alter the trajectory, a concept which led to a non-conventional design for the lifting surfaces, consisting of a foldable V-tail (Figure 2). Hence, the control law translated into an opening-angle change with the elevation angle, to smoothly change the configuration from a “rocket” (tail “closed”) into a “glider” (tail “open”). The aircraft must pitch down until it reaches a point after the apogee where the speed is enough to smoothly land through a pull-up maneuver. This tailplane also plays a crucial role in counteracting the destabilizing effects of liquid sloshing, ensuring a controlled descent.
This code contains additional files that can be accessed via the GitHub repository.

Water-Propelled aircraft

Figure 2 – Aircraft model CAD
The water rocket glider developed by the AirSloths team was engineered using lightweight and durable materials, mainly polar wood and polystyrene + carbon fiber reinforcement. The propulsion system utilized a 2-liter PET bottle, filled with 0.7 liters of water, pressurized to 10 bars, which provided the necessary thrust for takeoff. The sloshing tank was 3-D printed. The aircraft’s flight computer measures key parameters such as altitude and elevation angle, with the latter being used to adjust the folding angle of the tailplane for precise control throughout the flight mission.

Aircraft mathematical modeling

Architecture setup

To start modeling our aircraft, we used defineAircraftComponents.mlx to construct a data structure aircraftParts to store the assigned geometric properties of the components. The defineAircraftComponents function was complemented with defineMaterialDensities.mlx to define densities of various component materials.
aircraftParts = defineAircraftComponents(defineMaterialDensities);
Now that all aircraft components have been defined, we can create the aircraft model, as aircraftConfiguration data structure, using buildAircraft.mlx. The algorithm describes the latter as a system of material points.
aircraftConfiguration = buildAircraft(aircraftParts);

Inertial properties evaluation

Inertial properties of aircraft was calculated using setupInertia.mlx.
inertialData = setupInertia(aircraftConfiguration);
The tail arm length, distance between the Horizontal Tail (HT) and the aircraft Center of Gravity (CG), was one of the main design optimization object .
aircraftConfiguration.r_G = inertialData.r_G;
aircraftConfiguration.HT.Arm = inertialData.r(7,1) – aircraftConfiguration.r_G(1);

Aerodynamics modeling

To perform the aerodynamic analysis, a total of 8 configurations of the aircraft was prepared with the folding angle variation between 0 to 75 degrees. Here, 0 degree folding angle converts aircraft to rocket mode and 75 degree relates to fully opened wings for gliding.
To obtain the aerodynamics coefficients of the aircraft, Digital Datcom was used. This Digital Datcom data was imported with built-in datcomimport function of MATLAB. The imported data is available in the setupAerodynamics.mlx.
aerodynamicData = setupAerodynamics();
This imported data is finally modeled in the form of lookup tables in the Simulink model. The aerodynamic coefficients used in the simulation are:
  • $ C_D $: Drag coefficient
  • $ C_L $: Lift coefficient
  • $ C_M $: Pitching moment coefficient
  • $ C_{M_0} $: Pitching moment coefficient at zero angle of attack
  • $ C_{M_q} $: Pitching moment coefficient derivative with respect to the pitch rate (q). It indicates the change in pitch moment due to the aircraft’s rotation.
  • $ C_L^{\mathrm{(tail)}} $: Lift coefficient for the tailplane. It is the key of the control law.

Propulsion modeling

This aircraft is powered by water propulsion. To calculate the thrust profile, first, speed profile of the exhaust flow was computed using the Water Rocket Simulator. This speed profile was discretized and fed to a function called massflowRate.mlx to compute the mass evolution. The mass evolution was calculated by integrating the mass flow $ \dot{m}=\rho VA $ over time, where ρ, V, and A are the water density, speed of the water at the nozzle, and section area of the nozzle respectively. This mass evolution data was used to calculate the thrust profile.
Figure 3 – Thrust Profile
Finally, the thrust profile along with eccentricity was modeled with setupPropulsion.mlx. The eccentricity is important to calculate the pitching moment due to the thrust itself.
propulsionData = setupPropulsion(aircraftConfiguration);

Flight simulation

To evaluate the gliding performance of the aircraft, a Simulink model, simulateFlight.slx, was developed. It models, simulates, and compares the performance of two different configurations to study the effect of aircraft tail:
  • Glider Configuration: models the aircraft dynamics with the tail deployment. Along with the trajectory, it also returns the aircraft attitude θ to represent the aircraft orientation as well.
  • Non-Gliding Configuration: models the aircraft dynamics like glider configuration except the tail contribution.
Figure 4 – Simulink model
Along with the aircraft dynamics modeling of both configurations, stop conditions were also modeled to make sure that the aircraft did not attain a negative altitude. Finally, for the visualization 3 DOF Animation block was used.

Aircraft dynamics modeling

For both, Gliding and Non-Gliding configurations, aircraft dynamics were modeled with the following key sub-systems:
  • Forces and Moments: To model forces and moments, Aerodynamic data and Propulsion data were imported to Simulink through lookup tables. This data was complemented with various flight data parameters to calculate Forces and Moments. It also has a pitching moment filter to consider the first 0.064s of the flight when the aircraft is still getting out of the launch tube, designed to absorb the aggressive pitch impulse and provide the aircraft with appropriate directions.
  • Equations of motion: To model the equation of motion with variable mass and inertia, the Custom Variable Mass 3DOF (Wind Axes) block was used. It was supplemented by the variable mass data and inertia data, essential for simulating dynamic changes in the vehicle’s mass and inertia during flight or movement. This block also models the gravitational forces. This subsystem provides the effect of the forces and moments on the aircraft in terms of various aircraft states.
Figure 5 – Aircraft dynamics modeled in both configuration

Initial conditions

The competition requirements governed the initial condition of the vehicles. For the ASRW competition 2023, the rocket had to be launched at an elevation angle of 88 degrees. All other parameters were considered zero except the initial speed to simplify the numerical complexities.
Parameters
Initial Values
Initial location [xE0, yE0, ze0]
[0 0 0]
Launch elevation angle (theta0)
88 degrees
Pitch speed (q0)
0
Angle of attack (alpha0)
0
Linear speed (V0)
0.1

Simulation results

results = sim(“simulateFlight.slx”);
SimultioGIF.gif
Simulation results show that the gliding configuration with the tail activated provided a range advantage of 6.545 m compared to the non-gliding mode configuration. Also, both configurations achieved a maximum altitude of 8.4987 meters.

Conclusions

The simulation shows that the glider gains range through a pull-up maneuver, aided by the tailplane design, ensuring stable flight without stalling. The goal of achieving instability at the apex, leading to a rapid pitch-down for gaining airspeed, was successfully met. Also, this airspeed generates the necessary lift from the wings and tailplane for a smooth landing. Thrust eccentricity also proved effective, enhancing the range by 6.54 meters and controlling the elevation angle at the apex.
Although the simulation results were approximate, they were close to the flight test results (AirSloths Flight Tests Video) and were used iteratively to test and improve the overall design. Team AirSloths’ code utilized multiple capabilities of the Aerospace Toolbox and Aerospace Blockset to analyze the vehicle design and simulate the flight. There are many features and examples available that may help you accelerate your aerospace vehicle design, so don’t miss browsing them.

|
  • print

コメント

コメントを残すには、ここ をクリックして MathWorks アカウントにサインインするか新しい MathWorks アカウントを作成します。