ETB progress
This commit is contained in:
parent
2baca12920
commit
7a857ae298
|
@ -350,7 +350,25 @@ void setTle8888TestConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
boardConfiguration->fuelPumpPin = TLE8888_PIN_20;
|
boardConfiguration->fuelPumpPin = TLE8888_PIN_20;
|
||||||
|
|
||||||
engineConfiguration->tpsAdcChannel = EFI_ADC_3; // PA3
|
engineConfiguration->tpsAdcChannel = EFI_ADC_3; // PA3
|
||||||
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_4; // PA4
|
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_7; // PA7
|
||||||
|
|
||||||
|
engineConfiguration->etb.pFactor = 1.07;
|
||||||
|
engineConfiguration->etb.iFactor = 0.18;
|
||||||
|
engineConfiguration->etb.dFactor = 0.24;
|
||||||
|
engineConfiguration->etb.offset = 80;
|
||||||
|
#if EFI_PROD_CODE
|
||||||
|
engineConfiguration->etb.periodMs = (1000 / DEFAULT_ETB_LOOP_FREQUENCY);
|
||||||
|
engineConfiguration->etbFreq = DEFAULT_ETB_PWM_FREQUENCY;
|
||||||
|
#endif
|
||||||
|
engineConfiguration->etb_iTermMin = -300;
|
||||||
|
engineConfiguration->etb_iTermMax = 300;
|
||||||
|
|
||||||
|
// VAG test ETB, no divider on red board - direct 3v TPS sensor
|
||||||
|
// set tps_min 332
|
||||||
|
engineConfiguration->tpsMin = 332;
|
||||||
|
// by the way this ETB has default position of ADC=74 which is about 4%
|
||||||
|
// set tps_max 540
|
||||||
|
engineConfiguration->tpsMax = 799;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_ENGINES_CUSTOM_ENGINE_CPP_ */
|
#endif /* CONFIG_ENGINES_CUSTOM_ENGINE_CPP_ */
|
||||||
|
|
|
@ -232,7 +232,7 @@ private:
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
currentEtbDuty = feedForward +
|
currentEtbDuty = feedForward +
|
||||||
pid.getOutput(targetPosition, actualThrottlePosition);
|
pid.getOutput(targetPosition, actualThrottlePosition, engineConfiguration->etb.periodMs / 1000.0);
|
||||||
|
|
||||||
etb1.dcMotor.Set(PERCENT_TO_DUTY(currentEtbDuty));
|
etb1.dcMotor.Set(PERCENT_TO_DUTY(currentEtbDuty));
|
||||||
/*
|
/*
|
||||||
|
@ -349,8 +349,8 @@ void setDefaultEtbParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->etb.pFactor = 1;
|
engineConfiguration->etb.pFactor = 1;
|
||||||
engineConfiguration->etb.iFactor = 0.05;
|
engineConfiguration->etb.iFactor = 0.05;
|
||||||
engineConfiguration->etb.dFactor = 0.0;
|
engineConfiguration->etb.dFactor = 0.0;
|
||||||
engineConfiguration->etb.periodMs = 100;
|
engineConfiguration->etb.periodMs = (1000 / DEFAULT_ETB_LOOP_FREQUENCY);
|
||||||
engineConfiguration->etbFreq = 300;
|
engineConfiguration->etbFreq = DEFAULT_ETB_PWM_FREQUENCY;
|
||||||
engineConfiguration->etb_iTermMin = -300;
|
engineConfiguration->etb_iTermMin = -300;
|
||||||
engineConfiguration->etb_iTermMax = 300;
|
engineConfiguration->etb_iTermMax = 300;
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
#ifndef ELECTRONIC_THROTTLE_H_
|
#ifndef ELECTRONIC_THROTTLE_H_
|
||||||
#define ELECTRONIC_THROTTLE_H_
|
#define ELECTRONIC_THROTTLE_H_
|
||||||
|
|
||||||
|
// https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem
|
||||||
|
#define DEFAULT_ETB_LOOP_FREQUENCY 200
|
||||||
|
#define DEFAULT_ETB_PWM_FREQUENCY 300
|
||||||
|
|
||||||
#include "engine.h"
|
#include "engine.h"
|
||||||
void initElectronicThrottle(void);
|
void initElectronicThrottle(void);
|
||||||
void setDefaultEtbBiasCurve(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void setDefaultEtbBiasCurve(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
|
@ -56,6 +56,9 @@ float Pid::getUnclampedOutput(float target, float input, float dTime) {
|
||||||
return pTerm + iTerm + dTerm + pid->offset;
|
return pTerm + iTerm + dTerm + pid->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param dTime seconds probably? :)
|
||||||
|
*/
|
||||||
float Pid::getOutput(float target, float input, float dTime) {
|
float Pid::getOutput(float target, float input, float dTime) {
|
||||||
float output = getUnclampedOutput(target, input, dTime);
|
float output = getUnclampedOutput(target, input, dTime);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue