diff --git a/src/modules/vtol_att_control/vtol_type.cpp b/src/modules/vtol_att_control/vtol_type.cpp index 2695da5cf2..6fd14359f5 100644 --- a/src/modules/vtol_att_control/vtol_type.cpp +++ b/src/modules/vtol_att_control/vtol_type.cpp @@ -598,18 +598,19 @@ float VtolType::getOpenLoopFrontTransitionTime() const } float VtolType::getTransitionAirspeed() const { - return math::max(_param_vt_arsp_trans.get(), getMinimumTransitionAirspeed()); -} -float VtolType::getMinimumTransitionAirspeed() const -{ + // Since the stall airspeed increases with vehicle weight, we increase the transition airspeed + // by the same factor. + float weight_ratio = 1.0f; if (_param_weight_base.get() > FLT_EPSILON && _param_weight_gross.get() > FLT_EPSILON) { - weight_ratio = math::constrain(_param_weight_gross.get() / _param_weight_base.get(), kMinWeightRatio, kMaxWeightRatio); + weight_ratio = math::constrain(_param_weight_gross.get() / + _param_weight_base.get(), kMinWeightRatio, kMaxWeightRatio); } - return sqrtf(weight_ratio) * _param_airspeed_min.get(); + return sqrtf(weight_ratio) * _param_vt_arsp_trans.get(); } + float VtolType::getBlendAirspeed() const { return _param_vt_arsp_blend.get(); diff --git a/src/modules/vtol_att_control/vtol_type.h b/src/modules/vtol_att_control/vtol_type.h index c8cecb8fb0..3707acb68e 100644 --- a/src/modules/vtol_att_control/vtol_type.h +++ b/src/modules/vtol_att_control/vtol_type.h @@ -237,12 +237,6 @@ public: */ float getOpenLoopFrontTransitionTime() const; - /** - * - * @return The minimum calibrated airspeed compensated for weight [m/s] - */ - float getMinimumTransitionAirspeed() const; - /** * * @return The calibrated blending airspeed [m/s] @@ -371,8 +365,7 @@ protected: (ParamFloat) _param_mpc_land_alt2, (ParamFloat) _param_vt_lnd_pitch_min, (ParamFloat) _param_weight_base, - (ParamFloat) _param_weight_gross, - (ParamFloat) _param_airspeed_min + (ParamFloat) _param_weight_gross )