Buondì,
ho analizzato il changelog delle versioni, ed ho notato il parametro R che consente di scegliere fra:
- 0 = Classic Pid
- 1 = Some overshoot
- 2 = No Overshoot
- 3 = Pessen Pid
- 4 = TYREUS LIBEN che non è riportato nel changelog
Incuriosito dall'opzione ho analizzato il codice sorgente, riporto una parte interessante dell'algoritmo:
if (method == 0) {
workKp = 0.6 * Ku;
workKi = workKp * 2.0 / Tu;
workKd = workKp * Tu * 0.125;
SERIAL_EM(MSG_CLASSIC_PID);
}
else if (method == 1) {
workKp = 0.33 * Ku;
workKi = workKp * 2.0 / Tu;
workKd = workKp * Tu / 3.0;
SERIAL_EM(MSG_SOME_OVERSHOOT_PID);
}
else if (method == 2) {
workKp = 0.2 * Ku;
workKi = workKp * 2.0 / Tu;
workKd = workKp * Tu / 3.0;
SERIAL_EM(MSG_NO_OVERSHOOT_PID);
}
else if (method == 3) {
workKp = 0.7 * Ku;
workKi = workKp * 2.5 / Tu;
workKd = workKp * Tu * 3.0 / 20.0;
SERIAL_EM(MSG_PESSEN_PID);
}
else if (method == 4) {
workKp = 0.4545f * Ku;
workKi = workKp / Tu / 2.2f;
workKd = workKp * Tu / 6.3f;
SERIAL_EM(MSG_TYREUS_LYBEN_PID);
}
Come ed in che condizioni si sceglie quindi il metodo migliore?
Edited 1 time(s). Last edit at 03/07/2018 04:35AM by Romulus76.