def _forces_moments(self, delta):
    '\n        return the forces on the UAV based on the state, wind, and control surfaces\n        :param delta: np.matrix(delta_e, delta_a, delta_r, delta_t)\n        :return: Forces and Moments on the UAV np.matrix(Fx, Fy, Fz, Ml, Mn, Mm)\n        '
    (phi, theta, psi) = Quaternion2Euler(self._state[6:10])
    p = self._state.item(10)
    q = self._state.item(11)
    r = self._state.item(12)
    delta_e = delta.item(0)
    delta_a = delta.item(1)
    delta_r = delta.item(2)
    delta_t = delta.item(3)
    mg = (MAV.mass * MAV.gravity)
    fx_grav = ((- mg) * np.sin(theta))
    fy_grav = ((mg * np.cos(theta)) * np.sin(phi))
    fz_grav = ((mg * np.cos(theta)) * np.cos(phi))
    (fx_thrust, Mx_thrust) = self.thrust_from_prop(delta_t)
    fy_thrust = 0
    fz_thrust = 0
    My_thrust = 0
    Mz_thrust = 0
    b = MAV.b
    cyp = MAV.C_Y_p
    cyr = MAV.C_Y_r
    cydeltaa = MAV.C_Y_delta_a
    cydeltar = MAV.C_Y_delta_r
    aero_coef = (((0.5 * MAV.rho) * (self._Va ** 2)) * MAV.S_wing)
    fx_aero = (aero_coef * ((self.Cx(self._alpha) + (((self.Cx_q(self._alpha) * MAV.c) / (2 * self._Va)) * q)) + (self.Cx_deltae(self._alpha) * delta_e)))
    fy_aero = (aero_coef * (((((MAV.C_Y_0 + (MAV.C_Y_beta * self._beta)) + (((MAV.C_Y_p * b) / (2 * self._Va)) * p)) + (((cyr * b) / (2 * self._Va)) * r)) + (cydeltaa * delta_a)) + (cydeltar * delta_r)))
    fz_aero = (aero_coef * ((self.Cz(self._alpha) + (((self.Cz_q(self._alpha) * MAV.c) / (2 * self._Va)) * q)) + (self.Cz_deltae(self._alpha) * delta_e)))
    Mx_aero = ((aero_coef * MAV.b) * (((((MAV.C_ell_0 + (MAV.C_ell_beta * self._beta)) + (((MAV.C_ell_p * b) / (2 * self._Va)) * p)) + (((MAV.C_ell_r * b) / (2 * self._Va)) * r)) + (MAV.C_ell_delta_a * delta_a)) + (MAV.C_ell_delta_r * delta_r)))
    My_aero = ((aero_coef * MAV.c) * (((MAV.C_m_0 + (MAV.C_m_alpha * self._alpha)) + (((MAV.C_m_q * MAV.c) / (2 * self._Va)) * q)) + (MAV.C_m_delta_e * delta_e)))
    Mz_aero = ((aero_coef * MAV.b) * (((((MAV.C_n_0 + (MAV.C_n_beta * self._beta)) + (((MAV.C_n_p * MAV.b) / (2 * self._Va)) * p)) + (((MAV.C_n_r * MAV.b) / (2 * self._Va)) * r)) + (MAV.C_n_delta_a * delta_a)) + (MAV.C_n_delta_r * delta_r)))
    fx = ((fx_grav + fx_aero) + fx_thrust)
    fy = ((fy_grav + fy_aero) + fy_thrust)
    fz = ((fz_grav + fz_aero) + fz_thrust)
    Mx = (Mx_aero + Mx_thrust)
    My = (My_aero + My_thrust)
    Mz = (Mz_aero + Mz_thrust)
    self._forces[0] = fx
    self._forces[1] = fy
    self._forces[2] = fz
    fm = np.reshape(np.array([fx, fy, fz, Mx, My, Mz]), [6, 1])
    return fm
return the forces on the UAV based on the state, wind, and control surfaces
:param delta: np.matrix(delta_e, delta_a, delta_r, delta_t)
:return: Forces and Moments on the UAV np.matrix(Fx, Fy, Fz, Ml, Mn, Mm)
def _forces_moments(self, delta):
    '\n        return the forces on the UAV based on the state, wind, and control surfaces\n        :param delta: np.matrix(delta_e, delta_a, delta_r, delta_t)\n        :return: Forces and Moments on the UAV np.matrix(Fx, Fy, Fz, Ml, Mn, Mm)\n        '
    (phi, theta, psi) = Quaternion2Euler(self._state[6:10])
    p = self._state.item(10)
    q = self._state.item(11)
    r = self._state.item(12)
    delta_e = delta.item(0)
    delta_a = delta.item(1)
    delta_r = delta.item(2)
    delta_t = delta.item(3)
    mg = (MAV.mass * MAV.gravity)
    fx_grav = ((- mg) * np.sin(theta))
    fy_grav = ((mg * np.cos(theta)) * np.sin(phi))
    fz_grav = ((mg * np.cos(theta)) * np.cos(phi))
    (fx_thrust, Mx_thrust) = self.thrust_from_prop(delta_t)
    fy_thrust = 0
    fz_thrust = 0
    My_thrust = 0
    Mz_thrust = 0
    b = MAV.b
    cyp = MAV.C_Y_p
    cyr = MAV.C_Y_r
    cydeltaa = MAV.C_Y_delta_a
    cydeltar = MAV.C_Y_delta_r
    aero_coef = (((0.5 * MAV.rho) * (self._Va ** 2)) * MAV.S_wing)
    fx_aero = (aero_coef * ((self.Cx(self._alpha) + (((self.Cx_q(self._alpha) * MAV.c) / (2 * self._Va)) * q)) + (self.Cx_deltae(self._alpha) * delta_e)))
    fy_aero = (aero_coef * (((((MAV.C_Y_0 + (MAV.C_Y_beta * self._beta)) + (((MAV.C_Y_p * b) / (2 * self._Va)) * p)) + (((cyr * b) / (2 * self._Va)) * r)) + (cydeltaa * delta_a)) + (cydeltar * delta_r)))
    fz_aero = (aero_coef * ((self.Cz(self._alpha) + (((self.Cz_q(self._alpha) * MAV.c) / (2 * self._Va)) * q)) + (self.Cz_deltae(self._alpha) * delta_e)))
    Mx_aero = ((aero_coef * MAV.b) * (((((MAV.C_ell_0 + (MAV.C_ell_beta * self._beta)) + (((MAV.C_ell_p * b) / (2 * self._Va)) * p)) + (((MAV.C_ell_r * b) / (2 * self._Va)) * r)) + (MAV.C_ell_delta_a * delta_a)) + (MAV.C_ell_delta_r * delta_r)))
    My_aero = ((aero_coef * MAV.c) * (((MAV.C_m_0 + (MAV.C_m_alpha * self._alpha)) + (((MAV.C_m_q * MAV.c) / (2 * self._Va)) * q)) + (MAV.C_m_delta_e * delta_e)))
    Mz_aero = ((aero_coef * MAV.b) * (((((MAV.C_n_0 + (MAV.C_n_beta * self._beta)) + (((MAV.C_n_p * MAV.b) / (2 * self._Va)) * p)) + (((MAV.C_n_r * MAV.b) / (2 * self._Va)) * r)) + (MAV.C_n_delta_a * delta_a)) + (MAV.C_n_delta_r * delta_r)))
    fx = ((fx_grav + fx_aero) + fx_thrust)
    fy = ((fy_grav + fy_aero) + fy_thrust)
    fz = ((fz_grav + fz_aero) + fz_thrust)
    Mx = (Mx_aero + Mx_thrust)
    My = (My_aero + My_thrust)
    Mz = (Mz_aero + Mz_thrust)
    self._forces[0] = fx
    self._forces[1] = fy
    self._forces[2] = fz
    fm = np.reshape(np.array([fx, fy, fz, Mx, My, Mz]), [6, 1])
    return fm