Rotorcraft flight dynamics

Link to dissertation # 1: Hosted here

Link to dissertation # 2: Hosted by UMD

As part of my PhD thesis, I formulated models for analysis of a helicopter towing an underwater object using a long cable. These configurations are useful for sub-surface object detection in shallow water, where ships cannot safely be used to drag the submerged body. This page describes my work using an in-house helicopter flight dynamics simulation, and the upgrades I introduced.

The helicopter model is based on HeliUM2, developed by various students at the University of Maryland. The simulation was originally written in Fortran 77, and partially updated to Fortran 90 to easily implement multi-rotor configurations. The key features of this flight dynamic simulation code are performance, stability analysis and maneuver simulation.

My contributions to this analysis are

  1. Introduced program unit testing, model standardization/validation and version control

  2. Complete conversion to object-oriented code (expansion/extension)

  3. Rigorous multi-main-rotor modeling (clockwise and counter-clockwise)

  4. Controller for trajectory tracking ("pseudo-Flight Control System")

  5. Real-time execution using code profiling and efficient parallel programming

  6. Coupling multi-rotor flight dynamic model to the Maryland Free Wake simulation

  7. GPU Programming using CUDA-Fortran to accelerate code execution (25x/40x double/single)

  8. Added cable and sling load dynamics to the state-space simulation

  9. Large deflection analysis for rotating/non-rotating beams

Shown below are some animations of the output produced by the flight dynamic model modified to include flexible cables and a towed body submerged beneath the water surface. The first movie shows the top view of a helicopter towing an underwater minesweeper along a tear-drop search pattern. An LQR-based state feedback system is used to stabilize the system and track a desired trajectory (generated using arc approximations). These arcs are interpreted into state time histories for the helicopter and tow system, and the control system modifies the swashplate inputs to track the tow platform's target states. Vehicle and towed body sizes have been exaggerated for clarity.

In the second movie, the panels show, starting from top left in clockwise order

  1. Top-view of the tear-drop trajectory

  2. Main rotor power required, filtered

  3. Cable force time history

  4. Pilot cyclic stick position, top view

In 4. above, the "x" represents the trim position of the stick. The controller is capable of handling moderately fast turns with a towed body. With an isolated helicopter, faster turns are achievable.

The path is prescribed by the user as a sequence of heading changes and time intervals. Given the flexibility of the formulation, an arbitrary sequence of heading changes can be prescribed to obtain a wide class of search patterns. In the animation below, a figure-8 type path is generated using two appropriately-timed turns. The two-body system starts and ends the maneuver in steady level flight.

The simulation program is written in Fortran 90. Individual frames were created using a custom script in MATLAB, and frames stitched using mencoder.