WOLFRAM SYSTEM MODELER

VerticalMotion

Vertical motion of quadrotor system in 3DOF, constrained in z axis

Diagram

Wolfram Language

In[1]:=
SystemModel["Aircraft.Examples.VerticalMotion"]
Out[1]:=

Information

Vertical motion of the quadrotor

This model presents a quadrotor with 3 Degrees of Freedom (DoF), each controlled by an individual PID controller. The objective for the quadcopter is to track the reference attitude and altitude. The refereence signals are set to move the quadcopter upwards then tilt at the top before returning to the initial position.

To constraint the quadrotor in z direction a prismatic is used, also a sphericalJoint is added to make sure that the origin of frame_a and the origin of frame_b coincide. It likes that the quadrotor is connected to a vertical extendable rod, therefore, it is allowed to move in z direction and do roll and pitch motion while it wont move in x and y direction and nore have a yaw motion. 

The 3 DOF hover experiment provides a simplified test bed for understanding and developing control laws related to the flight dynamics and control of vehicles with vertical lift-off. Using this model, PID controller gains for altitude and attitude can be easily determined, thanks to the removal of coupling between roll and pitch angles with the x and y positions.

Following plots show the response of the quadrotor to the height, pitch and roll commands.

Parameters (12)

propGainRollPID

Value: 10

Type: Real

Description: Gain of controller (PIDRoll.k) (hoverController.propGainRollPID)

intTimeConstRollPID

Value: 100

Type: Time (s)

Description: Time constant of Integrator block (PIDRoll.Ti) (hoverController.intTimeConstRollPID)

derTimeConstRollPID

Value: 0.1

Type: Time (s)

Description: Time constant of Derivative block (PIDRoll.Td) (hoverController.derTimeConstRollPID)

propGainPitchPID

Value: 10

Type: Real

Description: Gain of controller (PIDPitch.k) (hoverController.propGainPitchPID)

intTimeConstPitchPID

Value: 100

Type: Time (s)

Description: Time constant of Integrator block (PIDPitch.Ti) (hoverController.intTimeConstPitchPID)

derTimeConstPitchPID

Value: 0.1

Type: Time (s)

Description: Time constant of Derivative block (PIDPitch.Td) (hoverController.derTimeConstPitchPID)

propGainYawPID

Value: 100

Type: Real

Description: Gain of controller (PIDYaw.k) (hoverController.propGainYawPID)

intTimeConstYawPID

Value: 20

Type: Time (s)

Description: Time constant of Integrator block (PIDYaw.Ti) (hoverController.intTimeConstYawPID)

derTimeConstYawPID

Value: 0.1

Type: Time (s)

Description: Time constant of Derivative block (PIDYaw.Td) (hoverController.derTimeConstYawPID)

propGainZPID

Value: 50

Type: Real

Description: Gain of controller (PIDHeight.k) (hoverController.propGainHeightPID)

intGainZPID

Value: 2

Type: Time (s)

Description: Time constant of Integrator block (PIDHeight.Ti) (hoverController.intGainHeightPID)

derGainZPID

Value: 0.1

Type: Time (s)

Description: Time constant of Derivative block (PIDHeight.Td) (hoverController.derGainHeightPID)

Components (13)

hoverController

Type: HoverPID

Description: Attitude controller

rollRef

Type: Trapezoid

Description: Reference roll angle command

pitchRef

Type: Trapezoid

Description: Reference pitch angle command

zRef

Type: TimeTable

Description: Reference z position (height) command

quadrotor

Type: Quadrotor

Description: Quadrotor movement is restricted to three degrees of freedom (DOF)

world

Type: World

Description: World coordinate system used in aircraft libray

degToRadRoll

Type: From_deg

Description: Convert from degree to radian

degToRadPitch

Type: From_deg

Description: Convert from degree to radian

degToRadYaw

Type: From_deg

Description: Convert from degree to radian

yawRef

Type: Constant

Description: Generate constant signal of type Real

Constraint

Type: Prismatic

Description: Consraint the quadrotor to the vertical translation only

Center

Type: Fixed

Description: Fixed to the origin

sphericalJoint

Type: Spherical

Description: Spherical joint