Main Content

Helicopter Modeling and Simulation

Since R2024b

This example shows how to model, simulate, control, and visualize a helicopter subsystem in Simulink® using the Rotor (Aerospace Blockset) and 6DOF (Euler Angles) (Aerospace Blockset) blocks from Aerospace Blockset™.

Model Overview

Open the Simulink® model.

open("HelicopterModelingSimulation.slx");

The top model consists of four subsystems:

Helicopter Modeling

This example models a helicopter model by computing the forces and moments exerted by each of these parts of helicopter and resolving each part along its center of gravity. The resultant forces and moments are then fed to the 6DOF (Euler Angles) (Aerospace Blockset) block, which implements 6DOF equations of motion to simulate the helicopter model.

The parameters and physical constants of the UH-1H helicopter [1] of mass 2800kgare used to compute forces and moments corresponding to these helicopter components.This example assumes that the main rotor and tail rotor speed remain constant.

Main Rotor

A Rotor block models the main rotor of the helicopter by enabling the flap effects. The main rotor of the UH-1H helicopter is located at aft and above the CG position. Consequently, the moments from the Rotor block are resolved using the Cross Product block. The control input to the main rotor is the collective blade pitch angle, θ0, lateral cyclic pitch angle, θc, and longitudinal cyclic pitch angle, θs.

Tail Rotor

The tail rotor is modeled using the Rotor block without flap effects. Unlike the main rotor, the tail rotor is mounted vertically. Hence, the forces and moments from the Rotor block should be transformed about x-axis by 90 degrees, to properly represent its orientation. the Rotation Angles to Direction Cosine Matrix block carries out this transformation. As the tail rotor is located at aft and above the CG position of the helicopter system, the moments from the Rotor block are resolved using a Cross Product block. The control input to the tail rotor is the collective blade pitch angle, θ0, of the tail rotor.

Fuselage

This example uses simple fuselage aerodynamics of a UH-1H helicopter [1].

XF=uB(-D1|uB|+L1wB2|uB|)

YF=vB(-D2|vB|-Y1|uB|)

ZF=wB(-D3|wB|-L1|uB|)

LF=0

MF=M1wB|uB|

NF=-N1vBuB

Observe that at uB=0, XF tends to infinity. To address this, the equation of XF is modified as XF=-D1uB|uB|+L1wB2sign(uB).

Vertical Fin

The vertical fin aerodynamics corresponding to the UH-1H helicopter [1] are implemented using a MATLAB Function block.

uv=uB

vv=-vB+lVFrB

Yv=K1vvuv+F1vv|vv|

Nv=-YvlVF

Horizontal Stabilizer

The aerodynamics corresponding to the horizontal stabilizer of the UH-1H helicopter [1] are implemented using a MATLAB Function block.

uH=uB

wH=wB+lHSqB

ZH=-H1wHuH-H4wH|wH|

MH=ZHlHS

Gravity

The force due to gravity in the body axes frame is obtained by multiplying the direction cosine matrix, DCM and gravitational force in the north-east-down(NED) frame.

Environment

This example assumes a constant gravity of 9.81m/s2. The density of air is computed based on the altitude using the COESA Atmosphere Model (Aerospace Blockset) block.

Command and Control

The Command and Control subsystem manages and directs the behavior and responses of the helicopter. Since the helicopter is an underactuated system, where the number of control inputs is less than the number of states or modes to be controlled, this subsystem includes a cascaded proportional integral derivative (PID) control strategy.

This control mechanism is structured in a hierarchical manner, where multiple PID controllers are cascaded to refine the control action at each level. This cascaded approach allows you to decompose the complex, multidimensional control problem into simpler and manageable subproblems. Each PID controller in the cascade is responsible for a specific aspect of the operation of the helicopter. For example, the inner loop controls the rate, and the outer loop controls the corresponding angle. This mechanism acts as an effective control strategy for an underactuated system.

Assuming constant rotor speeds, control inputs to the helicopter system include the collective blade pitch angle, and the lateral and longitudinal cyclic pitch angles. The collective blade pitch angle of the main rotor controls the altitude of the helicopter. The lateral cyclic pitch angle, the longitudinal cyclic pitch angle of the main rotor, and the collective blade pitch angle of the tail rotor control roll, pitch, and yaw motions, respectively.

The climb rate of the UH-1H helicopter is 488m/min, so the reference altitude increases at a rate of 8m/s until the helicopter reaches its desired altitude. The forward velocity is computed based on the specified velocity. You can assume that the lateral velocity is zero. The pitch and roll angle values are calculated by the PID controllers using the reference forward and lateral velocity values.

Visualization

The Visualization subsystem visualizes the helicopter in a simulation environment that uses the Unreal Engine® from Epic Games®. Visualization can be performed by co-simulation between Unreal Engine® and the Simulation 3D Scene Configuration (Aerospace Blockset), Helicopter (Aerospace Blockset), and Simulation 3D Rotorcraft (Aerospace Blockset) blocks. For more information on the Unreal Engine simulation environment, see How 3D Simulation for Aerospace Blockset Works (Aerospace Blockset).

To visualize the simulation results with the Scope block, clear the visual3D check box.

visual3D = true;

Run the live script to update the values, before executing the Simulink model.

Helicopter Simulation

Simulate the model to perform a steady level-flight or a hover maneuver. By default, the desired state is set as "level" to perform a steady level-flight maneuver. To perform a hover maneuver, choose hover from the dropdown.

state = "level";

Set the flying altitude of the helicopter. The maximum altitude of the UH-1H helicopter is 3500m.

hRef = 20;

For steady level-flight condition, set the desired velocity. The maximum velocity is 65m/s to represent the physical constraint of UH-1H helicopter.

if state=="level"
VRef = 30;
end

The desired values of θand ϕ are computed using the PID controller, based on the desired uB and vB respectively. You can control the altitude with a PID controller by using the collective pitch angle of the main rotor as input. You can control the roll, pitch, and yaw angles using cascaded PID controllers with corresponding rate controls p, q, and r in the inner loop. Use the lateral cyclic and longitudinal cyclic pitch angles of the main rotor for roll and pitch control and the collective pitch angle of the tail rotor for yaw control.

Helicopter DynamicsProject-smaller.gif

Reference

[1] Talbot, Peter D. and Lloyd D. Corliss. "A Mathematical Force and Moment Model of a UH-1H Helicopter for Flight Dynamics Simulations." NASA Ames Research Center, 1977. https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19770024231.pdf

See Also

(Aerospace Blockset)

Related Topics