diff --git a/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp b/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp index f6e216b855..093185e240 100644 --- a/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp +++ b/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp @@ -59,7 +59,7 @@ ActuatorEffectivenessControlSurfaces::ActuatorEffectivenessControlSurfaces(Modul _param_handles[i].scale_spoiler = param_find(buffer); } - _flaps_setpoint_with_slewrate.setSlewRate(kFlapSlewRate); + _flaps_setpoint_with_slewrate.setSlewRate(_param_ca_flap_slew.get()); _spoilers_setpoint_with_slewrate.setSlewRate(kSpoilersSlewRate); _count_handle = param_find("CA_SV_CS_COUNT"); @@ -75,6 +75,9 @@ void ActuatorEffectivenessControlSurfaces::updateParams() return; } + // Update flap slewrates + _flaps_setpoint_with_slewrate.setSlewRate(_param_ca_flap_slew.get()); + // Helper to check if a PWM center parameter is enabled, and clamp it to valid range auto check_pwm_center = [](const char *prefix, int channel) -> bool { char param_name[20]; diff --git a/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.hpp b/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.hpp index 5e64e5a738..8a77a08080 100644 --- a/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.hpp +++ b/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.hpp @@ -38,7 +38,6 @@ #include #include -static constexpr float kFlapSlewRate = 0.5f; // slew rate for normalized flaps setpoint [1/s] static constexpr float kSpoilersSlewRate = 0.5f; // slew rate for normalized spoilers setpoint [1/s] class ActuatorEffectivenessControlSurfaces : public ModuleParams, public ActuatorEffectiveness @@ -111,4 +110,7 @@ private: SlewRate _flaps_setpoint_with_slewrate; SlewRate _spoilers_setpoint_with_slewrate; + DEFINE_PARAMETERS( + (ParamFloat) _param_ca_flap_slew + ) }; diff --git a/src/modules/control_allocator/module.yaml b/src/modules/control_allocator/module.yaml index dd36a2d070..23405466a6 100644 --- a/src/modules/control_allocator/module.yaml +++ b/src/modules/control_allocator/module.yaml @@ -336,6 +336,15 @@ parameters: instance_start: 0 default: 0 + CA_SV_FLAP_SLEW: + description: + short: Control Surface slew rate for normalized flaps setpoint + type: float + decimal: 1 + min: 0.0 + max: 5.0 + default: 0.5 + CA_SV_CS${i}_SPOIL: description: short: Control Surface ${i} configuration as spoiler