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); currentAltDuty = altPid.getValue(14, getVBatt(engineConfiguration), 1);
if (boardConfiguration->isVerboseAlternator) { if (boardConfiguration->isVerboseAlternator) {
scheduleMsg(logger, "alt duty: %f/vbatt=%f/p=%f/i=%f", currentAltDuty, getVBatt(engineConfiguration), scheduleMsg(logger, "alt duty: %f/vbatt=%f/p=%f/i=%f/d=%f int=%f", currentAltDuty, getVBatt(engineConfiguration),
altPid.getP(), altPid.getI()); altPid.getP(), altPid.getI(), altPid.getD(), altPid.getIntegration());
} }
alternatorControl.setSimplePwmDutyCycle(currentAltDuty / 100); alternatorControl.setSimplePwmDutyCycle(currentAltDuty / 100);

View File

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

View File

@ -17,6 +17,7 @@ public:
void reset(void); void reset(void);
float getP(void); float getP(void);
float getI(void); float getI(void);
float getIntegration(void);
float getD(void); float getD(void);
private: private:
float pFactor; 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, 0.1));
assertEquals(10, pid.getValue(14, 16, 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());
} }