Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}