PID

בקרת PID היא שילוב של שלושה סוגי בקרה שונים: P לפורפוציונלי, I לאינטגרלי, וD לדיפרנציאלי. לכול אחת יש את התפקיד שלה.

## שימושים ומה זה בקרה

אז למה אפשר להשתמש בבקרת PID? כדי להבין את זה צריך להסביר מה זה בקרה, בקרה היא מערכת שולט על יציבות תהליך. לדוגמה הרובוט אמור לנסוע ישר אבל הוא נוטה ימינה מה שאומר שהנסיע שלו לא יציבה, אם בקרה נוכל ליצב את הנסיע ולגרום לרובוט לנסוע ישר. נחזור לשאלה למה אפשר להשמש בבקרה? התשובה היא לכול פעולה שהרובוט עושה, אם זה סיבוב מנוע או נסיע ישר או פניה במקום. כול פעולה שהרובוט עושה אפשר לנסות לשפר אם בקרה.

## מה צריך כדי לעשות בקרת PID על תהליך

אז מה אנחנו צריכים כדי לעשות בקרת PID?. אז התשובה היא מצוי ורצוי. שזה אומר: מצוי מה שיש לי בפועל בחיישן, ורצוי הערך שאני רוצה שיהיה בחישן. לדוגמה פניה של 90 מעלות אם הרובוט, המצוי שלי זה חיישן הגיירו שמודד כמה מעלות יש לי בפועל, והרצוי שלי יהיה 90 כי אני רוצה שהגיירו יגיע מ0 מעלות שם הוא מתחיל ל90. אם אני העשה תרגיל של רצוי-מצוי או מצוי-רצוי הפוך, אני הקבל את השגיעה של הרובוט או בשם אחר הerror. מה היא השגיעה של הרובוט? אם הרובוט על 20 מעלות(מצוי) וצריך להיות על 90(רצוי). אז הרובוט שלי טעה ב70 מעלות הוא צריך להיות 70 מעלות יותר כדי להגיעה לרצוי. מה שאומר שהerror שלי הוא 70. הוא בקיצור השגיעה(error) = ההפרש בין המצוי לרצוי או הפוך.

## על הP הI וD ולמה כול אחד משמש ומה זה ערכי K

### סרטונים שמסבירים את הנושא

https://www.youtube.com/watch?v=sFqFrmMJ-sg

☀https://www.youtube.com/watch?v=6OH-wOsVVjg

### ערכי K

יש לנו שלושה ערכי Kp, Ki, Kd :K. כול אחד לבקרה שלו Kp לP וכדומה. מה שקובעים ערכי הK הוא כמה יצא מכול בקרה, מה שקורה כול בקרה מוציt מספר, לדוגמה: P= 3, I=5 D=2. בסוף מחברים את כול המספרים וזה יוצר את הPID לדוגמה: PID =P+I+D. לכול בקרה יש חישוב אחר אותו אני מסביר למטה, אבל ברגע זה כול מה שצריך לדעת זה שהבקרה = חישוב הבקרה\*Kv למשל P = חישוב הבקרה של Kp\*P. בעצם ערך הK קובע כמה תוצאת חישוב הבקרה יוצא החוצה לדוגמה: למשל אם ערך הK = 1 אז 100% יוצא, אם K= 0.5 אז 50%, אם K=2 אז 200%. אני אוהב לחשוב על ערכי הK כברזים ושהערך שלהם זה מספר הסיבובים של הברז, ככול שתסובב יותר יצא יותר. אבל רגע למה יש לנו ערכי K למה צריך לשלוט כמה יוצא מהחישובים. התשובה היא שלפעמים יוצא יותר מידי מהברזים ופעמים יותר מידי ולכן צריך לכוון אותם על זה אני הסביר עוד למטה.

### P בקרה פורפורציונלית(יחסית)

הבקרה הפורפורציונלית(פורפרציונלית משמהותו יחסית) או בקיצור בקרת P היא הבקרה השימושית ביותר בfll. החישוב שלו הוא P=error\*Kp, הerror שהוא ההפרש בין המצוי לרצוי \* Kp(הברז של הP). לבקרה קוראים בקרה יחסית בגלל שהerror קטן ככול שמתקרבים למצוי ולכן הבקרה מאיטה בצורה יחסית למרחק מהמצוי. הבעיה בבקרה זו היא שיש לה יחסית הרבה overshoting(שהרובוט זז מהר מידיי ועובר את הרצוי ואז כדי לתקן הוא חוזר אבל שוב זז מהר מידיי ועובר שוב את הרצוי וכך שוב ושוב).

### I בקרה אינטגרלית

הבקרה אינטגרלית או בקיצור I, החישוב הוא I = (I+error)\*Ki קשה להסביר את הבקרה וכדי להסתכל בסרטון בכותרת.

### D בקרה לדיפרנציאלית

הבקרה דיפרנציאלית או בקיצור D, החישוב הוא D = lastError-error, הlastError זה הerror בריצה הקודמת של הloop תפקידה של הבקרת הD היא למנוע overshoting יותר הסבר בסרטונים.

## כיוון ערכי הK

אין ערכי K קבועים זה משתנה מרובוט לרובוט ותוכנה לתוכנה. מה שצריך זה לעשות ניסויים ולנחש עד שמגיעים לערך נכון, בשביל זה צריך להבין מה כול בקרה עושה ומה תפקידה. לא צריך להשתמש בכול הבקרות יש פעמים שרק P מספיק אני ממליץ לכוון קודם את הP אז את הD ואז אם צריך גם את הI.

## אז איך זה עובד בmindstorm

הכול די מבלבל אם זה הפעם הראשונה שאתם קוראים על PID, ואתם לא יודעים מה לעשות אם זה אז כך תראו את 2 הסרטונים המצורפים ותראו גם את הסרטונים האלה שמראים PID על הEV3:

https://www.youtube.com/watch?v=AMBWV\_HGYj4

לפניות ועזרה : 0559838790 - הלל