mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
Make the StabilizationSettings.MaxRate field only apply to the stabilized
modes. That way ManualRate can exceed MaxRate.
This commit is contained in:
parent
aad41ebb4f
commit
6945f17eba
@ -254,6 +254,13 @@ static void stabilizationTask(void* parameters)
|
|||||||
}
|
}
|
||||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE:
|
case STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE:
|
||||||
rateDesiredAxis[i] = ApplyPid(&pids[PID_ROLL + i], local_error[i]);
|
rateDesiredAxis[i] = ApplyPid(&pids[PID_ROLL + i], local_error[i]);
|
||||||
|
|
||||||
|
if(rateDesiredAxis[i] > settings.MaximumRate[i])
|
||||||
|
rateDesiredAxis[i] = settings.MaximumRate[i];
|
||||||
|
else if(rateDesiredAxis[ct] < -settings.MaximumRate[ct])
|
||||||
|
rateDesiredAxis[i] = -settings.MaximumRate[i];
|
||||||
|
|
||||||
|
|
||||||
axis_lock_accum[i] = 0;
|
axis_lock_accum[i] = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -272,6 +279,12 @@ static void stabilizationTask(void* parameters)
|
|||||||
|
|
||||||
rateDesiredAxis[i] = ApplyPid(&pids[PID_ROLL + i], axis_lock_accum[i]);
|
rateDesiredAxis[i] = ApplyPid(&pids[PID_ROLL + i], axis_lock_accum[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(rateDesiredAxis[i] > settings.MaximumRate[i])
|
||||||
|
rateDesiredAxis[i] = settings.MaximumRate[i];
|
||||||
|
else if(rateDesiredAxis[ct] < -settings.MaximumRate[ct])
|
||||||
|
rateDesiredAxis[i] = -settings.MaximumRate[i];
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -284,11 +297,6 @@ static void stabilizationTask(void* parameters)
|
|||||||
//Calculate desired command
|
//Calculate desired command
|
||||||
for(int8_t ct=0; ct< MAX_AXES; ct++)
|
for(int8_t ct=0; ct< MAX_AXES; ct++)
|
||||||
{
|
{
|
||||||
if(rateDesiredAxis[ct] > settings.MaximumRate[ct])
|
|
||||||
rateDesiredAxis[ct] = settings.MaximumRate[ct];
|
|
||||||
else if(rateDesiredAxis[ct] < -settings.MaximumRate[ct])
|
|
||||||
rateDesiredAxis[ct] = -settings.MaximumRate[ct];
|
|
||||||
|
|
||||||
switch(stabDesired.StabilizationMode[ct])
|
switch(stabDesired.StabilizationMode[ct])
|
||||||
{
|
{
|
||||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_RATE:
|
case STABILIZATIONDESIRED_STABILIZATIONMODE_RATE:
|
||||||
|
Loading…
Reference in New Issue
Block a user