mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-26 01:35:35 +03:00
Convert XY VEL TO ACC controller to use feed forward component (#4326)
* modify navPidApply3 to use linear FF component * store FF component in BB log * Make VEL_XY FF component configurable * change scaling for PID_VEL_XY FF component * MSP2_PID frame to setup FF component * Set default VEL XY FF to 40
This commit is contained in:
parent
359385d28c
commit
c64a63b504
9 changed files with 82 additions and 20 deletions
|
@ -627,6 +627,15 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
|
|||
}
|
||||
break;
|
||||
|
||||
case MSP2_PID:
|
||||
for (int i = 0; i < PID_ITEM_COUNT; i++) {
|
||||
sbufWriteU8(dst, pidBank()->pid[i].P);
|
||||
sbufWriteU8(dst, pidBank()->pid[i].I);
|
||||
sbufWriteU8(dst, pidBank()->pid[i].D);
|
||||
sbufWriteU8(dst, pidBank()->pid[i].FF);
|
||||
}
|
||||
break;
|
||||
|
||||
case MSP_PIDNAMES:
|
||||
for (const char *c = pidnames; *c; c++) {
|
||||
sbufWriteU8(dst, *c);
|
||||
|
@ -1571,6 +1580,22 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
|
|||
return MSP_RESULT_ERROR;
|
||||
break;
|
||||
|
||||
case MSP2_SET_PID:
|
||||
if (dataSize >= PID_ITEM_COUNT * 4) {
|
||||
for (int i = 0; i < PID_ITEM_COUNT; i++) {
|
||||
pidBankMutable()->pid[i].P = sbufReadU8(src);
|
||||
pidBankMutable()->pid[i].I = sbufReadU8(src);
|
||||
pidBankMutable()->pid[i].D = sbufReadU8(src);
|
||||
pidBankMutable()->pid[i].FF = sbufReadU8(src);
|
||||
}
|
||||
schedulePidGainsUpdate();
|
||||
#if defined(USE_NAV)
|
||||
navigationUsePIDs();
|
||||
#endif
|
||||
} else
|
||||
return MSP_RESULT_ERROR;
|
||||
break;
|
||||
|
||||
case MSP_SET_MODE_RANGE:
|
||||
sbufReadU8Safe(&tmp_u8, src);
|
||||
if ((dataSize >= 5) && (tmp_u8 < MAX_MODE_ACTIVATION_CONDITION_COUNT)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue