קראתי את ה PID Tutorial בכתובת:
http://www.engin.umich.edu/group/ctm/PID/PID.html
האנגלית שלי די סביר אבל שילוב של אנגלית ונושא שהוא במילא קשה להבנה זה כבר קצת יותר מידי בשבילי
האםתוגלו לתת לי לינק להסבר על PID בשפת הקודש ?
תודה
motor_speed(int left_motor, int right_motor)
p_error = dist_available - dist_desirable
d_error = p_error - p_error_old
int pd_control()
{
int p_error,
p_error_old,
d_error,
d_error_old,
dist_available,
dist_desirable,
right_speed,
left_speed;
/*
the values of gains set dependenting your robot speed,
desire distance from a wall and some physics.
try to play with the values the get the best combination
for your robot.
*/
int p_gain = 6;
int d_gain = 3;
/*int i_gain = 6;*/
/* initial motor speed */
int offset_speed = 60;
do {
dist_available = get(IR_LEFT);
p_error = dist_available - dist_desirable;
d_error = p_error - p_error_old;
if (d_error<d_error_old)
{
/* accelerate correction rate.*/
p_gain++; d_gain++;
} else {
p_gain--; d_gain--;
}
p_error_old = p_error;
d_error_old = d_error;
right_speed = offset_speed + (p_gain*p_error) - (d_gain*d_error);
left_speed = offset_speed - (p_gain*p_error) + (d_gain*d_error);
if (right_speed > 100) right_speed=100;
if (left_speed > 100) left_speed=100;
motor_speed(left_speed, right_speed);
} while(dist_available<75); /* until we see a wall */
return 1;
}
משתמשים הגולשים בפורום זה: אין משתמשים רשומים ו 4 אורחים