int speedControlInit(void) { encoder_pid_instance.Kp = 400; encoder_pid_instance.Ki = 0; encoder_pid_instance.Kd = 1800; speed_control.current_distance = 0; speed_control.gap_distance_per_loop = 0; speed_control.current_distance_consign = 0; speed_control.old_distance = 0; speed_control.current_speed = 0; speed_control.end_control = 0; speed_control.speed_error = 0; speed_control.speed_command = 0; speed_control.speed_consign = 0; speed_params.initial_speed = 0; speed_control.speed_pid.instance = &encoder_pid_instance; pidControllerInit(speed_control.speed_pid.instance); encoderResetDistance(&left_encoder); encoderResetDistance(&right_encoder); return SPEED_CONTROL_E_SUCCESS; }
int lineFollowControlInit(void) { line_follow_pid_instance.Kp = 151 + _KP; line_follow_pid_instance.Ki = 0; line_follow_pid_instance.Kd = 6000; //810 line_follow_control.line_follow_pid.instance = &line_follow_pid_instance; line_follow_control.succes = FALSE; pidControllerInit(line_follow_control.line_follow_pid.instance); return LINE_FOLLOW_CONTROL_E_SUCCESS; }
int speedControlInit(void) { memset(&speed_control, 0, sizeof(speed_control_struct)); memset(&speed_params, 0, sizeof(speed_params_struct)); speedProfileCompute(0, 0, 0, 0); encoder_pid_instance.Kp = 700;//638.00; encoder_pid_instance.Ki = 0;//0.02666 / CONTROL_TIME_FREQ; encoder_pid_instance.Kd = 2 * CONTROL_TIME_FREQ; speed_control.speed_pid.instance = &encoder_pid_instance; pidControllerInit(speed_control.speed_pid.instance); return SPEED_CONTROL_E_SUCCESS; }