mirror of https://github.com/rusefi/bldc.git
Updated er app
This commit is contained in:
parent
7bdb0a36c0
commit
1c83713540
|
@ -20,44 +20,39 @@
|
|||
#ifndef APP_EROCKIT_CONF_H_
|
||||
#define APP_EROCKIT_CONF_H_
|
||||
|
||||
#define APP_CUSTOM_TO_USE "er/app_erockit_v2.c"
|
||||
#define APPCONF_APP_TO_USE APP_CUSTOM
|
||||
#define APPCONF_SHUTDOWN_MODE SHUTDOWN_MODE_ALWAYS_ON
|
||||
#define APP_CUSTOM_TO_USE "er/app_erockit_v2.c"
|
||||
#define APPCONF_APP_TO_USE APP_CUSTOM
|
||||
#define APPCONF_SHUTDOWN_MODE SHUTDOWN_MODE_ALWAYS_ON
|
||||
|
||||
#define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC
|
||||
#define MCCONF_FOC_SENSOR_MODE FOC_SENSOR_MODE_SENSORLESS
|
||||
#define MCCONF_FOC_CC_DECOUPLING FOC_CC_DECOUPLING_DISABLED
|
||||
#define MCCONF_FOC_OPENLOOP_RPM 100.0
|
||||
#define MCCONF_FOC_TEMP_COMP true
|
||||
#define MCCONF_FOC_TEMP_COMP_BASE_TEMP 21.0
|
||||
#define MCCONF_FOC_MOTOR_L 12e-6
|
||||
#define MCCONF_FOC_MOTOR_R 16.3e-3
|
||||
#define MCCONF_FOC_MOTOR_FLUX_LINKAGE 5.38e-3
|
||||
#define MCCONF_FOC_OBSERVER_GAIN 35e6
|
||||
#define MCCONF_L_CURRENT_MAX 50.0
|
||||
#define MCCONF_L_CURRENT_MIN -50.0
|
||||
#define MCCONF_L_IN_CURRENT_MAX 10.0
|
||||
#define MCCONF_L_IN_CURRENT_MIN -10.0
|
||||
#define MCCONF_FOC_CURRENT_KP 0.012
|
||||
#define MCCONF_FOC_CURRENT_KI 20.1
|
||||
#define MCCONF_FOC_HALL_TAB_0 255
|
||||
#define MCCONF_FOC_HALL_TAB_1 189
|
||||
#define MCCONF_FOC_HALL_TAB_2 122
|
||||
#define MCCONF_FOC_HALL_TAB_3 156
|
||||
#define MCCONF_FOC_HALL_TAB_4 56
|
||||
#define MCCONF_FOC_HALL_TAB_5 22
|
||||
#define MCCONF_FOC_HALL_TAB_6 88
|
||||
#define MCCONF_FOC_HALL_TAB_7 255
|
||||
#define MCCONF_FOC_SL_ERPM 2000.0
|
||||
#define MCCONF_M_INVERT_DIRECTION true
|
||||
#define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC
|
||||
#define MCCONF_FOC_SENSOR_MODE FOC_SENSOR_MODE_SENSORLESS
|
||||
#define MCCONF_FOC_CC_DECOUPLING FOC_CC_DECOUPLING_DISABLED
|
||||
#define MCCONF_FOC_OPENLOOP_RPM 100.0
|
||||
#define MCCONF_FOC_TEMP_COMP true
|
||||
#define MCCONF_FOC_TEMP_COMP_BASE_TEMP 21.0
|
||||
#define MCCONF_FOC_MOTOR_L 12e-6
|
||||
#define MCCONF_FOC_MOTOR_R 13.3e-3
|
||||
#define MCCONF_FOC_MOTOR_FLUX_LINKAGE 5.61e-3
|
||||
#define MCCONF_FOC_OBSERVER_GAIN 35e6
|
||||
#define MCCONF_L_CURRENT_MAX 50.0
|
||||
#define MCCONF_L_CURRENT_MIN -50.0
|
||||
#define MCCONF_L_IN_CURRENT_MAX 10.0
|
||||
#define MCCONF_L_IN_CURRENT_MIN -10.0
|
||||
#define MCCONF_FOC_CURRENT_KP 0.025
|
||||
#define MCCONF_FOC_CURRENT_KI 27.0
|
||||
#define MCCONF_FOC_SL_ERPM 2000.0
|
||||
#define MCCONF_M_INVERT_DIRECTION false
|
||||
#define MCCONF_FOC_PHASE_FILTER_MAX_ERPM 6000.0
|
||||
|
||||
#define MCCONF_FOC_PLL_KP 500.0
|
||||
#define MCCONF_FOC_PLL_KI 5000.0
|
||||
#define MCCONF_S_PID_KP 0.01
|
||||
#define MCCONF_S_PID_KI 0.1
|
||||
#define MCCONF_S_PID_KD 0.00015
|
||||
#define MCCONF_S_PID_KD_FILTER 0.5
|
||||
#define MCCONF_S_PID_MIN_RPM 100.0
|
||||
//#define MCCONF_S_PID_KP 0.01
|
||||
//#define MCCONF_S_PID_KI 0.1
|
||||
//#define MCCONF_S_PID_KD 0.00015
|
||||
//#define MCCONF_S_PID_KD_FILTER 0.5
|
||||
#define MCCONF_S_PID_KP 0.002
|
||||
#define MCCONF_S_PID_KI 0.03
|
||||
#define MCCONF_S_PID_KD 0.00015
|
||||
#define MCCONF_S_PID_KD_FILTER 0.05
|
||||
#define MCCONF_S_PID_MIN_RPM 100.0
|
||||
|
||||
#endif /* APP_EROCKIT_CONF_H_ */
|
||||
|
||||
|
|
|
@ -324,7 +324,8 @@ static THD_FUNCTION(my_thread, arg) {
|
|||
|
||||
const float stop_timer_max = 50.0;
|
||||
const float S_min = 200.0;
|
||||
const float S_ramp_step = 0.5;
|
||||
const float S_ramp_step_up = 10.0;
|
||||
const float S_ramp_step_down = 0.1;
|
||||
const float output_filter = 0.3;
|
||||
|
||||
const float poles = 8;
|
||||
|
@ -371,10 +372,19 @@ static THD_FUNCTION(my_thread, arg) {
|
|||
kmh_now = ((rpm / 60.0) * wheel_d * M_PI / gearing) * 3.6;
|
||||
}
|
||||
|
||||
// Ramp up target current on low pedal speeds
|
||||
float erpm_ramp_in = 1500.0;
|
||||
float erpm_motor = fabsf(mc_interface_get_rpm());
|
||||
float pedal_current_target = m_set_now->p_pedal_current;
|
||||
if (erpm_motor < erpm_ramp_in) {
|
||||
pedal_current_target = utils_map(erpm_motor, 0.0, erpm_ramp_in, 0.0, pedal_current_target);
|
||||
}
|
||||
|
||||
if (running) {
|
||||
mc_interface_set_pid_speed(erpm_now);
|
||||
|
||||
erpm_now += (-m_set_now->p_pedal_current - I) * S_ramp_step;
|
||||
float error = (-pedal_current_target - I);
|
||||
erpm_now += error * (error > 0.0 ? S_ramp_step_up : S_ramp_step_down);
|
||||
utils_truncate_number(&erpm_now, S_min, 4000.0);
|
||||
|
||||
if (I < -1.0) {
|
||||
|
@ -402,7 +412,7 @@ static THD_FUNCTION(my_thread, arg) {
|
|||
}
|
||||
}
|
||||
|
||||
utils_step_towards(&erpm_now, S_min, S_ramp_step);
|
||||
utils_step_towards(&erpm_now, S_min, S_ramp_step_down);
|
||||
}
|
||||
|
||||
static float plot_pwr = 0.0;
|
||||
|
@ -511,7 +521,7 @@ static THD_FUNCTION(my_thread, arg) {
|
|||
}
|
||||
}
|
||||
|
||||
if (!m_kill_sw || (pwr_out < 0.0001 && brake > 0.0001)) {
|
||||
if (!m_kill_sw || brake > 0.0001) {
|
||||
comm_can_set_current_brake_rel(255, brake);
|
||||
} else {
|
||||
comm_can_set_current_rel(255, pwr_out * m_set_now->p_output_power);
|
||||
|
|
Loading…
Reference in New Issue