diff --git a/Core/Src/FBKW.c b/Core/Src/FBKW.c index 9b285ee..f834536 100644 --- a/Core/Src/FBKW.c +++ b/Core/Src/FBKW.c @@ -12,23 +12,7 @@ #include "toothed_wheel.h" #include "pre_injection.h" #include "temperature.h" -/* -float errorFBKW = 0; -float error_sum = 0; -float prev_errorFBKW = 0; -float targetFBKW = 0; -float Kp = 7; //Kp = 5, and Ki = 0.5 -float Ki = 0.0005; -float Kd = 0.005; -float Ku = 1; -float Offset = 50.0; -float intFBKWerror = 0; //add += error * tstep -float Proportional = 0; -double Integrator = 0; -float derivative = 0; -float maxOutput = 45; -*/ float FBKW_DEMAND = 0.0; float FBKW_DC = 5; float FBKW_FEEDBACK = 0.0; @@ -41,7 +25,6 @@ uint8_t CKP_PULSE_AVAILABLE = 0; uint8_t FBKW_PID_OPEN = 1; //estaba en 0 antes, igual asi no se peta el pid si no recibe avance -uint8_t forceDC2 = 0; void FBKW_PIDInterrupt(){ UpdateFBKW_DEMAND(B_FB_KW); @@ -58,9 +41,7 @@ void FBKW_PIDInterrupt(){ if(forceDC){ FBKW_DC = forceDC; //onstart should be 21,8%. } - /*if(forceDC2 > 0){ - FBKW_DC = forceDC2; - }*/ + UpdateFBKW_MODULATION(&htim4, TIM_CHANNEL_2, FBKW_DC);//FBKW_DC } @@ -74,7 +55,6 @@ float F_clamp(float value, float min, float max) { } } -float FBKW_DEMAND_OFFSET = -2.5; float UpdateFBKW_DEMAND(float FBKW){ if(FBKW < FBKW_MAX && FBKW > -FBKW_MAX){ //cuando envia 760, se tiene que quedar en el ultimo valor @@ -90,11 +70,6 @@ float UpdateFBKW_DEMAND(float FBKW){ FBKW_DEMAND = FBKW_DEM_0 + FBKW_TEMP + FBKW_DEM_RPM; - -#if HAS_PREINJECTION - FBKW_DEMAND += FBKW_DEMAND_OFFSET * active_PI; //this is nasty -#endif - FBKW_DEMAND = FBKW_DEMAND < FBKW_DEM_MIN ? FBKW_DEM_MIN : FBKW_DEMAND; DEMAND_filtered = FBKW_DEMAND; @@ -103,24 +78,15 @@ float UpdateFBKW_DEMAND(float FBKW){ Timeout_ResetByIndex(8, TIM16->CNT); // Reset CKP timeout } return DEMAND_filtered; - }/*else if(B_FB_NW == 0){ //esto siempre 0 porque no esta implementado - FBKW_DC = FBKW_PWM_MIN; - forceDC = FBKW_PWM_MIN; - FBKW_DEMAND = 0; - DEMAND_filtered = FBKW_DEMAND; - return 0; - }else{ - forceDC = 0; - return FBKW_DEMAND; - }*/ + } else{ forceDC = 0; - //FBKW_DEMAND = 0; - //DEMAND_filtered = FBKW_DEMAND; + return FBKW_DEMAND; } } + float UpdateFBKW_OpenDutyCycle(float RPM){ if(RPM > 0){ if(RPM > 200 && DEMAND_filtered <= 0){ @@ -132,8 +98,6 @@ float UpdateFBKW_OpenDutyCycle(float RPM){ FBKW_DC = F_clamp(FBKW_DC, FBKW_PWM_MIN, FBKW_PWM_MAX); } - }else{ - //FBKW_DC = 0; } return FBKW_DC; } @@ -186,11 +150,6 @@ void initPID(struct PID *pid, float T_C, float T){ myPID.command_prev = 0; } -void updatePIDfreq(struct PID *pid, uint8_t millisPID){ - TIM6->ARR = millisPID * 1000; - myPID.T = 1.0*millisPID/1000; // Time step - //derivative filtering time constant update not available -} void UpdatePID(struct PID *pid) {