Initial branching

This commit is contained in:
2026-04-16 18:59:30 +02:00
parent a4e19f02a4
commit c2b34f085e

View File

@@ -12,23 +12,7 @@
#include "toothed_wheel.h" #include "toothed_wheel.h"
#include "pre_injection.h" #include "pre_injection.h"
#include "temperature.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_DEMAND = 0.0;
float FBKW_DC = 5; float FBKW_DC = 5;
float FBKW_FEEDBACK = 0.0; 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 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(){ void FBKW_PIDInterrupt(){
UpdateFBKW_DEMAND(B_FB_KW); UpdateFBKW_DEMAND(B_FB_KW);
@@ -58,9 +41,7 @@ void FBKW_PIDInterrupt(){
if(forceDC){ if(forceDC){
FBKW_DC = forceDC; //onstart should be 21,8%. FBKW_DC = forceDC; //onstart should be 21,8%.
} }
/*if(forceDC2 > 0){
FBKW_DC = forceDC2;
}*/
UpdateFBKW_MODULATION(&htim4, TIM_CHANNEL_2, FBKW_DC);//FBKW_DC 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){ float UpdateFBKW_DEMAND(float FBKW){
if(FBKW < FBKW_MAX && FBKW > -FBKW_MAX){ //cuando envia 760, se tiene que quedar en el ultimo valor 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; 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; FBKW_DEMAND = FBKW_DEMAND < FBKW_DEM_MIN ? FBKW_DEM_MIN : FBKW_DEMAND;
DEMAND_filtered = FBKW_DEMAND; DEMAND_filtered = FBKW_DEMAND;
@@ -103,24 +78,15 @@ float UpdateFBKW_DEMAND(float FBKW){
Timeout_ResetByIndex(8, TIM16->CNT); // Reset CKP timeout Timeout_ResetByIndex(8, TIM16->CNT); // Reset CKP timeout
} }
return DEMAND_filtered; 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{ else{
forceDC = 0; forceDC = 0;
//FBKW_DEMAND = 0;
//DEMAND_filtered = FBKW_DEMAND;
return FBKW_DEMAND; return FBKW_DEMAND;
} }
} }
float UpdateFBKW_OpenDutyCycle(float RPM){ float UpdateFBKW_OpenDutyCycle(float RPM){
if(RPM > 0){ if(RPM > 0){
if(RPM > 200 && DEMAND_filtered <= 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); FBKW_DC = F_clamp(FBKW_DC, FBKW_PWM_MIN, FBKW_PWM_MAX);
} }
}else{
//FBKW_DC = 0;
} }
return FBKW_DC; return FBKW_DC;
} }
@@ -186,11 +150,6 @@ void initPID(struct PID *pid, float T_C, float T){
myPID.command_prev = 0; 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) void UpdatePID(struct PID *pid)
{ {