From e58c87103cf8a2d8a9ce01626a67e4e95a53203f Mon Sep 17 00:00:00 2001 From: Benjamin Vedder Date: Tue, 12 May 2020 15:30:34 +0200 Subject: [PATCH] Revert "Add ramp input to the speed PID loop." --- confgenerator.c | 3 --- confgenerator.h | 2 +- datatypes.h | 1 - mcconf/mcconf_default.h | 3 --- mcpwm_foc.c | 17 +---------------- 5 files changed, 2 insertions(+), 24 deletions(-) diff --git a/confgenerator.c b/confgenerator.c index 7be5d02d..032dbd6f 100644 --- a/confgenerator.c +++ b/confgenerator.c @@ -118,7 +118,6 @@ int32_t confgenerator_serialize_mcconf(uint8_t *buffer, const mc_configuration * buffer_append_float32_auto(buffer, conf->s_pid_kd_filter, &ind); buffer_append_float32_auto(buffer, conf->s_pid_min_erpm, &ind); buffer[ind++] = conf->s_pid_allow_braking; - buffer_append_float32_auto(buffer, conf->s_pid_ramp_erpms_s, &ind); buffer_append_float32_auto(buffer, conf->p_pid_kp, &ind); buffer_append_float32_auto(buffer, conf->p_pid_ki, &ind); buffer_append_float32_auto(buffer, conf->p_pid_kd, &ind); @@ -411,7 +410,6 @@ bool confgenerator_deserialize_mcconf(const uint8_t *buffer, mc_configuration *c conf->s_pid_kd_filter = buffer_get_float32_auto(buffer, &ind); conf->s_pid_min_erpm = buffer_get_float32_auto(buffer, &ind); conf->s_pid_allow_braking = buffer[ind++]; - conf->s_pid_ramp_erpms_s = buffer_get_float32_auto(buffer, &ind); conf->p_pid_kp = buffer_get_float32_auto(buffer, &ind); conf->p_pid_ki = buffer_get_float32_auto(buffer, &ind); conf->p_pid_kd = buffer_get_float32_auto(buffer, &ind); @@ -700,7 +698,6 @@ void confgenerator_set_defaults_mcconf(mc_configuration *conf) { conf->s_pid_kd_filter = MCCONF_S_PID_KD_FILTER; conf->s_pid_min_erpm = MCCONF_S_PID_MIN_RPM; conf->s_pid_allow_braking = MCCONF_S_PID_ALLOW_BRAKING; - conf->s_pid_ramp_erpms_s = MCCONF_S_PID_RAMP_ERPMS_S; conf->p_pid_kp = MCCONF_P_PID_KP; conf->p_pid_ki = MCCONF_P_PID_KI; conf->p_pid_kd = MCCONF_P_PID_KD; diff --git a/confgenerator.h b/confgenerator.h index ab31fdbe..0385c4fd 100644 --- a/confgenerator.h +++ b/confgenerator.h @@ -8,7 +8,7 @@ #include // Constants -#define MCCONF_SIGNATURE 1775793947 +#define MCCONF_SIGNATURE 3698540221 #define APPCONF_SIGNATURE 2460147246 // Functions diff --git a/datatypes.h b/datatypes.h index ab1119a7..a170f056 100644 --- a/datatypes.h +++ b/datatypes.h @@ -321,7 +321,6 @@ typedef struct { float s_pid_kd_filter; float s_pid_min_erpm; bool s_pid_allow_braking; - float s_pid_ramp_erpms_s; // Pos PID float p_pid_kp; float p_pid_ki; diff --git a/mcconf/mcconf_default.h b/mcconf/mcconf_default.h index 9c7acff6..fbd4337c 100644 --- a/mcconf/mcconf_default.h +++ b/mcconf/mcconf_default.h @@ -136,9 +136,6 @@ #ifndef MCCONF_S_PID_ALLOW_BRAKING #define MCCONF_S_PID_ALLOW_BRAKING true // Allow braking in speed control mode #endif -#ifndef MCCONF_S_PID_RAMP_ERPMS_S -#define MCCONF_S_PID_RAMP_ERPMS_S -1.0 // Default Speed Input Ramp -#endif // Position PID parameters #ifndef MCCONF_P_PID_KP diff --git a/mcpwm_foc.c b/mcpwm_foc.c index 62c6c67f..c7154bfd 100644 --- a/mcpwm_foc.c +++ b/mcpwm_foc.c @@ -111,7 +111,6 @@ typedef struct { bool m_output_on; float m_pos_pid_set; float m_speed_pid_set_rpm; - float m_speed_command_rpm; float m_phase_now_observer; float m_phase_now_observer_override; bool m_phase_observer_override; @@ -166,7 +165,6 @@ typedef struct { float m_hall_dt_diff_now; } motor_all_state_t; - // Private variables static volatile bool m_dccal_done = false; static volatile float m_last_adc_isr_duration; @@ -800,17 +798,8 @@ void mcpwm_foc_set_duty_noramp(float dutyCycle) { * The electrical RPM goal value to use. */ void mcpwm_foc_set_pid_speed(float rpm) { - if( motor_now()->m_conf->s_pid_ramp_erpms_s > 0.0 ){ - if( motor_now()->m_control_mode != CONTROL_MODE_SPEED || - motor_now()->m_state != MC_STATE_RUNNING ){ - motor_now()->m_speed_pid_set_rpm = mcpwm_foc_get_rpm(); - } - motor_now()->m_speed_command_rpm = rpm; - }else{ - motor_now()->m_speed_pid_set_rpm = rpm; - } - motor_now()->m_control_mode = CONTROL_MODE_SPEED; + motor_now()->m_speed_pid_set_rpm = rpm; if (motor_now()->m_state != MC_STATE_RUNNING) { motor_now()->m_state = MC_STATE_RUNNING; @@ -3643,10 +3632,6 @@ static void run_pid_control_speed(float dt, volatile motor_all_state_t *motor) { return; } - if(conf_now->s_pid_ramp_erpms_s > 0.0){ - utils_step_towards((float*)&motor->m_speed_pid_set_rpm, motor->m_speed_command_rpm, conf_now->s_pid_ramp_erpms_s * dt); - } - const float rpm = mcpwm_foc_get_rpm(); float error = motor->m_speed_pid_set_rpm - rpm;