Initial branching
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user