auto-sync

This commit is contained in:
rusEfi 2015-03-21 01:05:11 -05:00
parent 94b719e951
commit eacbf308ba
4 changed files with 16 additions and 3 deletions

View File

@ -38,8 +38,8 @@ static msg_t AltCtrlThread(int param) {
currentAltDuty = altPid.getValue(14, getVBatt(engineConfiguration), 1);
if (boardConfiguration->isVerboseAlternator) {
scheduleMsg(logger, "alt duty: %f/vbatt=%f/p=%f/i=%f", currentAltDuty, getVBatt(engineConfiguration),
altPid.getP(), altPid.getI());
scheduleMsg(logger, "alt duty: %f/vbatt=%f/p=%f/i=%f/d=%f int=%f", currentAltDuty, getVBatt(engineConfiguration),
altPid.getP(), altPid.getI(), altPid.getD(), altPid.getIntegration());
}
alternatorControl.setSimplePwmDutyCycle(currentAltDuty / 100);

View File

@ -36,7 +36,6 @@ float Pid::getValue(float target, float input, float dTime) {
} else if (result < minResult) {
integration += minResult - result;
result = minResult;
}
return result;
}
@ -61,6 +60,10 @@ float Pid::getI(void) {
return iFactor;
}
float Pid::getIntegration(void) {
return integration;
}
float Pid::getD(void) {
return dFactor;
}

View File

@ -17,6 +17,7 @@ public:
void reset(void);
float getP(void);
float getI(void);
float getIntegration(void);
float getD(void);
private:
float pFactor;

View File

@ -48,5 +48,14 @@ void testPidController(void) {
assertEquals(10, pid.getValue(14, 16, 0.1));
assertEquals(10, pid.getValue(14, 16, 1));
pid.updateFactors(29, 0, 0);
assertEquals(10, pid.getValue(14, 16, 1));
assertEquals(68, pid.getIntegration());
assertEquals(10, pid.getValue(14, 16, 1));
assertEquals(68, pid.getIntegration());
assertEquals(10, pid.getValue(14, 16, 1));
assertEquals(68, pid.getIntegration());
}