|
|
@@ -12,6 +12,8 @@ static void _eCtrl_set_TgtTorque(float t);
|
|
|
static bool _eCtrl_isHwBrk_shutPower(void);
|
|
|
static void _eCtrl_process_eBrake(void);
|
|
|
|
|
|
+#define CURRENT_RAMP_TIME 5*1000
|
|
|
+
|
|
|
void eCtrl_init(u16 accl_time, u16 dec_time){
|
|
|
g_eCtrl.dec_time = dec_time;
|
|
|
g_eCtrl.accl_time = accl_time;
|
|
|
@@ -28,11 +30,16 @@ void eCtrl_init(u16 accl_time, u16 dec_time){
|
|
|
g_eCtrl.dec_time_shadow = g_eCtrl.dec_time;
|
|
|
g_eCtrl.hw_brake = false;
|
|
|
g_eCtrl.is_ebrake = false;
|
|
|
- eRamp_init(&g_eCtrl.current, 10*1000, 10*1000);
|
|
|
+ eRamp_init(&g_eCtrl.current, CURRENT_RAMP_TIME, CURRENT_RAMP_TIME);
|
|
|
eRamp_init(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
eRamp_init(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
}
|
|
|
|
|
|
+void eCtrl_debug_log(void) {
|
|
|
+ sys_debug("final %f, step %f, inter %f, shadow %f\n", g_eCtrl.torque.target, g_eCtrl.torque.step_val, g_eCtrl.torque.interpolation, g_eCtrl.torque_shadow);
|
|
|
+ sys_debug("final %f, %f\n", g_eCtrl.torque.acct, g_eCtrl.torque.dect);
|
|
|
+}
|
|
|
+
|
|
|
void eCtrl_set_TgtCurrent(float c) {
|
|
|
g_eCtrl.current_shadow = c;
|
|
|
}
|
|
|
@@ -74,7 +81,7 @@ bool eCtrl_enable_eBrake(bool enable) {
|
|
|
}
|
|
|
|
|
|
static void _eCtrl_clear_ramp(void) {
|
|
|
- eRamp_init(&g_eCtrl.current, nv_get_foc_params()->n_ebrk_time, nv_get_foc_params()->n_ebrk_time);
|
|
|
+ eRamp_init(&g_eCtrl.current, CURRENT_RAMP_TIME, CURRENT_RAMP_TIME);
|
|
|
eRamp_init(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
eRamp_init(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
g_eCtrl.current_shadow = 0.0f;
|
|
|
@@ -85,8 +92,6 @@ static void _eCtrl_clear_ramp(void) {
|
|
|
static void _eCtrl_process_eBrake(void) {
|
|
|
if (g_eCtrl.is_ebrake) {
|
|
|
PMSM_FOC_SetCtrlMode(CTRL_MODE_EBRAKE);
|
|
|
- eRamp_reset_target(&g_eCtrl.current, 0);
|
|
|
- g_eCtrl.current_shadow = 0.0f;
|
|
|
}else {
|
|
|
PMSM_FOC_SetCtrlMode(CTRL_MODE_TRQ);
|
|
|
}
|