Model Alternative VTOL UAV Configuration
This example shows you how to configure the VTOL UAV template to simulate an alternative VTOL UAV configuration.
The VTOL UAV template models the UAV in a tilt-rotor configuration with four rotors in the puller configuration. In the takeoff, landing, and hover modes, all four rotors point vertically upward. When transitioning to cruise mode, the front two rotors tilt forward to a horizontal position to provide thrust for the UAV, while the rear two rotors remain in the vertical orientation and provide no thrust.
However, in the alternative VTOL UAV configuration, two front rotors of the UAV are pushers, and the two rear rotors are pullers. In the takeoff, landing, and hover modes, the front two rotors point vertically upward, and the rear two rotors point vertically downward. When transitioning to cruise mode, the front two rotors tilt forward to a horizontal position to provide thrust for the UAV, while the rear two rotors tilt backward to a horizontal position and provide additional thrust.
Getting Started
Open the example live script and the directory that contains the VTOLRefApp.prj
project file project by running openExample('uav/
ModelAlternativeVTOLUAVConfigurationExample')
in the command window.
After opening the example live script and the directory, you must open the VTOLRefApp.prj project file to access the Simulink model, supporting files, and project shorcuts that this example uses.
% Open the Simulink project prj = openProject("VTOLApp/VTOLRefApp.prj");
Open the alternative VTOL UAV model.
open_system("Alternative_VTOLTiltrotor")
Compared to the VTOL UAV template model, the alternative VTOL UAV model contains modifications to the Propulsion
subsystem, output bus interface, and multicopter scheduler subsystem.
Propulsion Subsystem Modifications
Open the Propulsion
subsystem of the alternative VTOL UAV configuration.
blockpath = Simulink.BlockPath(["Alternative_VTOLTiltrotor/Digital Twin/UAV Dynamics","Alternative_VTOLDynamics/Force and Moments/Propulsion"]); open(blockpath)
The Propulsion
subsystem of the alternative VTOL UAV contains modifications to the tilt servo dynamics, rotor assembly, and rotor parameters, which enables the UAV to tilt all four motor-rotor pairs and to set the rear two motors to the pusher configuration.
Tilt Servo Dynamics Subsystem Modifications
Compared to the default VTOL UAV model, the Tilt Servo Dynamics
subsystem of the alternative VTOL UAV model contains these additional blocks to simulate the servo dynamics of tilting the rear two motor:
Inport blocks for motor tilt angle inputs (
TiltC
andTiltD
)Gain blocks with values of
pi/2
Transfer function blocks (
Servo Dynamics2
andServo Dynamics3
)Initial conditions, set to match the front two rotor tilt angles
Motor tilt angle outputs (
Tilt3
andTilt4
)
The multicopter scheduler subsystem generates the Actuator.Tilt3
and Actuator.Tilt4
signals, connected to the TiltC
and TiltD
input ports respectively. The motor tilt angle outputs are connect to the RotorC
and RotorD
variables.
Rotor Assembly Subsystem Modifications
In the default VTOL UAV model, the Tilt
inputs of the Rotor Assembly 3
and Rotor Assembly 4
subsystems are set yo a constant angle of 0 degrees, which corresponds to the rear two rotors constantly facing vertically upward.
In the alternative VTOL UAV model, the Tilt
inputs of the Rotor Assembly 3
and Rotor Assembly 4
subsystems connect to the RotorC
and RotorD
variables. This enables the rear two rotors to tilt in accordance with the output of the Tilt Servo Dynamics
subsystem.
Additionally, the output ports of the Rotor blocks in the Rotor Assembly 3
and Rotor Assembly 4
subsystems now connect to Gain blocks with values of -1
. These gains reverse the signs of the total force outputs of the Rotor
blocks, which configure rear two propellers as pushers.
Rotor Parameters Modifications
The Bus Creator block in the Rotor Parameters
section groups the control signal into the RotorCtrlBus
bus
. In the alternative VTOL UAV model, the Bus Creator
block has the two additional input signals, Tilt3
and Tilt4
.
Output Bus Interface Modifications
In the default VTOL UAV model, the RotorCtrlBus
consists of these elements:
w1
— Rotor 1 PWMw2
— Rotor 2 PWMw3
— Rotor 3 PWMw4
— Rotor 4 PWMTilt1
— Rotor 1 tilt PWMTilt2
— Rotor 2 tilt PWM
In the alternative VTOL UAV model, the Tilt3
and Tilt4
elements of RotorCtrlBus control the rotor 3 tilt PWM and rotor 4 tilt PWM, respectively.
Use Model Explorer to examine the contents of the modified rotor control bus.
Multicopter Scheduler Subsystem Modifications
Open the multicopter scheduler subsystem of the alternative VTOL UAV configuration.
blockpath = Simulink.BlockPath(["Alternative_VTOLTiltrotor/Autopilot/Controller", "Alternative_VTOLAutopilotController/Low level controller/Scheduler/Subsystem"]); open(blockpath);
The multicopter scheduler subsystem of the alternative VTOL UAV has been modified to provide additional control for the rear two motors during the hover, transition, back transition, and cruise phases.
Hover, Transition, and Back Transition Cases Modifications
In the hover, transition, and back transition phases, the rear two rotors of the alternative VTOL UAV point vertically downward. To simulate this, the Hover
, Transition
, and Back Transition
cases of the scheduler have been modified by adding a constant input of pi
to the Actuator.Tilt3
and Actuator.Tilt4
signals.
Fixed Wing Case Modifications
In the fixed-wing phase, the rear two rotors of the alternative VTOL UAV point horizontally backward. To simulate this, the FixedWing
case of the scheduler has been modified by adding a constant input of pi/2+pi
to the Actuator.Tilt3
and Actuator.Tilt4
signals.
The alternative VTOL UAV does not simulate a wind down mechanism during back transition. To disable the wind down mechanisms, the blocks in Tilt WindDown Mechanisms
section have been commented out.
In contrast to the default VTOL UAV, which uses only the front two motors for thrust, the alternative VTOL UAV uses all four motors to provide thrust during fixed-wing mode. To simulate this in the alternative VTOL UAV model, BackRotorSpeed
has been disabled, and the inputs to Actuator.w3
and Actuator.w4
have been replaced with signals used for Actuator.w2
and Actuator.w2
, respectively. This enables the front and rear motors on each side to have matching RPMs.
In addition, the model adds a Gain block with a value of 0.5
is added to the throttle signal outputs. This matches the total thrust of the alternative VTOL UAV to that of the default VTOL UAV, which enables the two configurations to use the same set of fixed-wing control gains.
Simulate Full Transition Mission
To simulate the full transition mission for the alternative UAV configuration, select the Set Up Full Transition Mission shortcut in the Alternative UAV configuration Mission section, and run the Alternative_VTOLTiltrotor.slx
model.
Before resuming to other examples in this example series, you must close the VTOLRefApp.prj
Simulink project by running this command in the Command Window:
close(prj)