def thrust_from_prop(self, delta_t):
    V_in = (MAV.V_max * delta_t)
    KQ = MAV.KQ
    a = (((MAV.C_Q0 * MAV.rho) * np.power(MAV.D_prop, 5)) / ((2.0 * np.pi) ** 2))
    b = (((((MAV.C_Q1 * MAV.rho) * np.power(MAV.D_prop, 4)) / (2.0 * np.pi)) * self._Va) + ((KQ ** 2) / MAV.R_motor))
    c = (((((MAV.C_Q2 * MAV.rho) * np.power(MAV.D_prop, 3)) * (self._Va ** 2)) - ((KQ / MAV.R_motor) * V_in)) + (KQ * MAV.i0))
    Omega_op = (((- b) + np.sqrt(((b ** 2) - ((4 * a) * c)))) / (2.0 * a))
    J_op = (((2 * np.pi) * self._Va) / (Omega_op * MAV.D_prop))
    C_T = (((MAV.C_T2 * (J_op ** 2)) + (MAV.C_T1 * J_op)) + MAV.C_T0)
    C_Q = (((MAV.C_Q2 * (J_op ** 2)) + (MAV.C_Q1 * J_op)) + MAV.C_Q0)
    n = (Omega_op / (2 * np.pi))
    fx = (((MAV.rho * (n ** 2)) * np.power(MAV.D_prop, 4)) * C_T)
    Mx = ((((- MAV.rho) * (n ** 2)) * np.power(MAV.D_prop, 5)) * C_Q)
    return (fx, Mx)
def thrust_from_prop(self, delta_t):
    V_in = (MAV.V_max * delta_t)
    KQ = MAV.KQ
    a = (((MAV.C_Q0 * MAV.rho) * np.power(MAV.D_prop, 5)) / ((2.0 * np.pi) ** 2))
    b = (((((MAV.C_Q1 * MAV.rho) * np.power(MAV.D_prop, 4)) / (2.0 * np.pi)) * self._Va) + ((KQ ** 2) / MAV.R_motor))
    c = (((((MAV.C_Q2 * MAV.rho) * np.power(MAV.D_prop, 3)) * (self._Va ** 2)) - ((KQ / MAV.R_motor) * V_in)) + (KQ * MAV.i0))
    Omega_op = (((- b) + np.sqrt(((b ** 2) - ((4 * a) * c)))) / (2.0 * a))
    J_op = (((2 * np.pi) * self._Va) / (Omega_op * MAV.D_prop))
    C_T = (((MAV.C_T2 * (J_op ** 2)) + (MAV.C_T1 * J_op)) + MAV.C_T0)
    C_Q = (((MAV.C_Q2 * (J_op ** 2)) + (MAV.C_Q1 * J_op)) + MAV.C_Q0)
    n = (Omega_op / (2 * np.pi))
    fx = (((MAV.rho * (n ** 2)) * np.power(MAV.D_prop, 4)) * C_T)
    Mx = ((((- MAV.rho) * (n ** 2)) * np.power(MAV.D_prop, 5)) * C_Q)
    return (fx, Mx)