תורת הבקרה/משתני מצב

מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.
קפיצה אל: ניווט, חיפוש

עד עתה עבדנו במישור התדר: התמרנו משוואה דיפרנציאלית מסדר גבוה למישור לפלס וביצענו אנליזות על ההתמרה. התברר שאם נעבוד במישור הזמן ונפרק את המד"ר מסדר גבוה למערכת מד"ר מסדר 1, ניתן לבצע אנליזות גם על מטריצות המקדמים המתקבלות, בטכניקה הנקראת "משתני מצב", ללא צורך בהתמרות כלשהן. יתרה מזאת, באמצעות ייצוג מטריצי של מד"ר מסדר ראשון ניתן להכליל את התאוריה עבור מערכות מרובות כניסות ויציאות[1] (MIMO).

תוכן עניינים

[עריכה] הגדרות

[עריכה] משתני קלט

בעוד שבמערכות SISO יש קלט (כניסה) אחת בלבד, בייצוג מטריצי ניתן למדל מערכות MIMO עם מספר כניסות. את כל אותות הכניסה יש לסדר בוקטור, שנקרא וקטור הקלט, וסימונו u.

Achtung.svg

שימו לב:

כאן u הוא וקטור הקלט ולא פונקצית מדרגה.

[עריכה] משתני פלט

בדומה למשתני קלט, תיתכן מערכת שבה יהיו יותר מפלט (יציאה) בודד. משתני הפלט הינם בלתי-תלויים זה בזה, ומהווים צירוף לינארי של וקטור הקלט ווקטור המצב. וקטור הפלט מסומן ב-y.

[עריכה] משתני מצב

משתני מצב מתארים את מצב המערכת "מבפנים". בקפיץ עם מסה לדוגמה, אם אות הכניסה הוא כוח חיצוני ואות היציאה הוא מיקום, משתני מצב אפשריים הם תאוצת המסה ומהירות המסה. וקטור משתני המצב מסומן ב-x.

באופן כללי:

\ y=f(x,u)
כלומר, הפלט תלוי במערכת ובקלט.

אך משתני המצב יכולים להשתנות בזמן, ולכן:

\ x'=g(x,u)
כלומר קצב שינוי משתני המצב תלוי במערכת ובקלט.

[עריכה] משוואות מצב

בייצוג מערכת באמצעות משתני מצב, דרושות שתי משוואות: אחת לשם ייצוג מצב המערכת ואחת לשם ייצוג הפלט.

מצב המערכת הנוכחי תלוי במצב המערכת הקודם, במצב ההתחלתי, בזמן ובקלט:

\ x'(t)=g(t_0,t,x(0),x(t),u(t))

הפלט תלוי בזמן, במצב המערכת הנוכחי ובקלט:

\ y(t)=h(t,x(t),u(t))

אם הפלט y וקצב שינוי משתני המצב x' הם צירוף לינארי של משתני המצב ושל וקטור הקלט, אז המערכת לינארית, מקיימת את עקרון הסופרפוזיציה, וניתן לכתיבה בצורה ווקטורית:

\ x'(t)=A(t)x(t)+B(t)u(t) (משוואת מצב)
\ y(t)=C(t)x(t)+D(t)u(t) (משוואת פלט)

אם בנוסף לכך המערכת אינה משתנה בזמן, אז היא נקראת LTI (Linear-Time-Invariant) כך ש:

\ x'(t)=Ax(t)+Bu(t) (משוואת מצב)
\ y(t)=Cx(t)+Du(t) (משוואת פלט)

כאשר:

  • A היא מטריצת המערכת (system matrix), אשר מקשרת בין המצב הקודם למצב הנוכחי.
  • B היא מטריצת הבקרה (control matrix), אשר קובעת כיצד הפלט משפיע על משתני המצב.
  • C היא מטריצת הפלט (output matrix), אשר מקשרת בין מצב המערכת לפלט.
  • D היא מטריצת ההזנה (feed-forward matrix), אשר מקשרת ישירות בין הקלט לפלט. במערכות SISO הפשוטות אשר עסקנו עד כה לא היה קיים רכיב זה, ובכל מקרה לרוב D=0.

כל מערכת דינמית, הניתנת לתיאור (או לקירוב) על ידי n משוואת דיפרנציאליות או על ידי משוואה דיפרנציאלית מסדר n, ניתנת לייצוג באמצעות n משתני מצב.

וקטורים מטריצות
  • \ x: n \times 1
  • \ x': n\times 1
  • \ u: m \times 1
  • \ y: r \times 1
  • \ A: n \times n
  • \ B: n \times m
  • \ C: r \times n
  • \ D: r \times m


{{{גודל}}}

כדאי לדעת:

ייצוג מערכת דינמית בכתיב מטריצי אינו יחיד: ניתן לבחור משתני מצב כרצוננו, וגם כאשר קבענו את מטריצות המקדמים, ניתן לבצע עליהן פעולות-שורה-אלמנטריות לשם קבלת ייצוג שונה.


[עריכה] מציאת משוואות המצב

[עריכה] מתוך משוואה דיפרנציאלית

נניח כי נתונה מד"ר מסדר 3, כאשר u הוא הקלט ו-y הוא הפלט.

\ \overbrace{y'''(t)}^{\dot x_3} + a_2\overbrace{\ddot y(t)}^{x_3=\dot x_2} + a_1\overbrace{\dot y(t)}^{x_2=\dot x_1} + a_0\overbrace{y(t)}^{x_1} = u(t)

ניתן להגדיר את משתני המצב \ \vec x באופן הבא:

\ x_1 = y(t)
\ x_2 = \dot y(t)
\ x_3 = \ddot y(t)

כך שנשארנו עם 3 משוואת מסדר ראשון:

\ \dot x_1 = x_2
\ \dot x_2 = x_3
\ y'''(t)= \dot x_3= -a_0x_1-a_1x_2-a_2x_3 +u

בכתיב וקטורי:

\ \vec x = \begin{bmatrix}x_1 \\ x_2 \\ x_3 \end{bmatrix} \quad;\quad \dot\vec  x = \begin{bmatrix} \dot x_1 \\ \dot x_2 \\ \dot x_3\end{bmatrix}

כך שמשוואת המצב היא:

\ \begin{bmatrix} \dot x_1 \\ \dot x_2 \\ \dot x_3\end{bmatrix}=\begin{bmatrix}
0 & 1 & 0 \\
0 & 0 & 1 \\
-a_0 & -a_1 & -a_2
\end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ x_3 \end{bmatrix} +\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} u(t)
y(t) = \begin{bmatrix} 1 & 0 & 0 \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ x_3 \end{bmatrix}

[עריכה] מתוך פונקצית תמסורת

שיטה זו, מן הסתם, אנלוגית לשיטה הקודמת. בהינתן פונקצית תמסורת

\ G(s)= \frac{s^m+b_{m-1}s^{m-1}+...+b_0} {s^n+a_{n-1}s^{n-1}+...+a_0}

נבנה את מטריצות המקדמים באופן הבא:

A = \begin{bmatrix}
0 & 1 & 0 & \cdots & 0 \\
0 & 0 & 1 & \cdots & 0 \\
\vdots &\vdots &\vdots & \ddots & \vdots \\
0 & 0 & 0 & \cdots & 1 \\
-a_0 & -a_1 & -a_2 & \cdots & -a_{n-1}
\end{bmatrix}
B = \begin{bmatrix}0 \\ 0 \\ \vdots \\1\end{bmatrix}
C = \begin{bmatrix}b_0 & b_1 & \cdots & b_m\end{bmatrix}
D = 0
Achtung.svg

שימו לב:

יש להשתמש בשיטה זו רק כאשר פונקצית התמסורת מיוצגת כך שמקדמי החזקה הגבוהה, הן המונה והן במכנה, שווים ל-1. כלומר: \ a_n=b_n=1.

[עריכה] אי-יחידות של משתני מצב

משתני המצב x נבחרים שרירותית בידי פותר הבעיה, ולכן קיימות מספר אפשרויות לבחירת משתני מצב, וכל בחירה תביא למשוואת מצב אחרת.

נשכתב את הדוגמה הקודמת:

 \frac{d}{dt}\left[\ddot y(t) + a_2\dot y(t) + a_1y(t)\right] + a_0y(t)=u(t) .

נגדיר את משתני המצב באופן הבא:

\ x_1 = y(t)
\ x_2 = \dot y
 x_3 = \ddot y(t) + a_2\dot y(t) + a_1y(t)

ואז:

 \dot x_1 = \dot y(t) = x_2
 \dot x_2 = \ddot y(t) = - a_1x_1 - a_2x_2 + x_3
 \dot x_3 = -a_0y(t) + u(t)

כך שמשוואת המצב היא:

\ \dot x = \begin{bmatrix}
0 & 1 & 0 \\
-a_1 & -a_2 & 1 \\
-a_0 & 0 & 0
\end{bmatrix} x(t) + \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} u(t)
 y(t) = \begin{bmatrix} 1 & 0 & 0 \end{bmatrix} x(t)


{{{גודל}}}

כדאי לדעת:

בעוד ש-x יכול להבחר שרירותית, האותות u,y הם חד משמעיים.


[עריכה] דוגמה: מד"ר מורכבת

Blue think.svg במערכת פיזיקלית n>m.

נניח כי המערכת הפיזיקלית תלויה בנגזרות פונקצית הפלט:

\ \overbrace{y'''(t)}^{\dot x_3} + a_2\overbrace{\ddot y(t)}^{x_3=\dot x_2} + a_1\overbrace{\dot y(t)}^{x_2=\dot x_1} + a_0\overbrace{y(t)}^{x_1} = b_2 \ddot u(t) + b_1 \dot u(t) + b_0 u(t)

במקרה זה לא נוכל להחליט \ x_1=y וגו', נכיוון שנישאר עם תלות בנגזרות של u. על מנת לא להשאר עם אף נגזרות, נבצע מניפולציה דיפרנציאלית[2]. תחילה נגדיר:

\ D\ \overset{\Delta}=\ \frac{\partial}{\partial t}\ ,\cdots,\ D^n=\ \frac{\partial^n}{\partial t^n}

ואז:

\ \left(D^3+a_2 D^2+ a_1 D +a_0\right)y(t)= \left(b_2 D^2 + b_1 D + b_0\right)u(t)

כך שנגדיר את משתני המצב באופן הבא:

\ \frac{y}{b_2 D^2+b_1 D+b_0}=\frac{u}{D^3+ a_2 D^2+a_1 D+a_0}=x \quad\Rightarrow\ \begin{cases} y=b_2\ddot x+ b_1\dot x+b_0 x \\ u=x'''+a_2\ddot x+a_1\dot x+a_0 x \end{cases}

נסמן \ x_1=x, x_2=\dot x, x_3=\ddot x כך ש:

\ \begin{cases} y=b_2 x_3+ b_1 x_2+b_0 x_1 \\ \dot x_3=x'''=u-a_2 x_3-a_1 x_2-a_0 x_1 \end{cases}

ובכתיב וקטורי:

\ \begin{bmatrix} \dot x_1 \\ \dot x_2 \\ \dot x_3\end{bmatrix}=\begin{bmatrix}
0 & 1 & 0 \\
0 & 0 & 1 \\
-a_0 & -a_1 & -a_2
\end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ x_3 \end{bmatrix} +\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} u(t)
y(t) = \begin{bmatrix} b_0 & b_1 & b_2 \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ x_3 \end{bmatrix}

[עריכה] דוגמה: ריבוי כניסות ויציאות

Mass-Spring-Damper (2 body system).png

שימו לב כי כאן יש שתי כניסות (u1,u2) ושתי יציאות (y1,y2).

המשוואות הדיפרנציאליות המתארות את המערכת הן:

\ m_1\ddot y=u_1-k_1y-c_1\dot y-k_2(y-z)- c_2(\dot y-\dot z)
\ m_2\ddot z=u_2-k_2(z-y)- c_2(\dot z-\dot y)

נבודד את הנגזרת הגבוהה:

\ \ddot y=-{k_1+k_2\over m_1}y-{c_1+c_2\over m_1}\dot y+{k_2\over m_1}z+{c_2\over m_1}\dot z+{u_1\over m_1}
\ \ddot z={k_2\over m_2}y+{c_2\over m_2}\dot y-{k_2\over m_2}z-{c_2\over m_2}\dot z+{u_2\over m_1}

נגדיר את וקטור משתני המצב להיות:

\ \begin{cases}
x_1=y \\
x_2=\dot y \\
x_3=z \\
x_4=\dot z
\end{cases}

כך שנקבל 4 משוואות מסדר ראשון:

\ \begin{cases}
\dot x_1=x_2 \\
\dot x_2=-{k_1+k_2\over m_1}x_1-{c_1+c_2\over m_1}x_2+{k_2\over m_1}x_3+{c_2\over m_1}x_4+{u_1\over m_1} \\
\dot x_3=x_4 \\
\dot x_4={k_2\over m_2}x_1+{c_2\over m_2}x_2-{k_2\over m_2}x_3-{c_2\over m_2}x_4+{u_2\over m_1}
\end{cases}

נעביר לכתיב וקטורי:

\ \underbrace{{\begin{Bmatrix} \dot x_1 \\ \dot x_2 \\ \dot x_3 \\ \dot x_4 \end{Bmatrix}}}_{\dot\vec x}= \underbrace{\begin{bmatrix}
0 & 1 & 0 & 0 \\
-{k_1+k_2\over m_1} & -{c_1+c_2\over m_1} & {k_2\over m_1} & {c_2\over m_1} \\ 
0 & 0 & 0 & 1 \\
{k_2\over m_2} & {c_2\over m_2} & -{k_2\over m_2} & -{c_2\over m_2} \\ 
\end{bmatrix}}_{A} \underbrace{{\begin{Bmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{Bmatrix}}}_{\vec x}+ \underbrace{\begin{bmatrix}
0 & 0 \\
{1\over m_1} & 0 \\ 
0 & 0 \\
0 & {1\over m_2}
\end{bmatrix}}_{B} \underbrace{\begin{bmatrix} u_1 \\ u_2 \end{bmatrix}}_{\vec u}

והמשוואה עבור הפלט היא הביטוי הפשוט:

\ \begin{Bmatrix} y \\ z \end{Bmatrix}= \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \vec x

[עריכה] מטלאב

נניח כי ה-Workspace מכיל את מטריצות המקדמים A,B,C,D. ניתן להגדיר מערכת משוואות מצב באמצעות הפקודה:

ss(A,B,C,D);


בהינתן וקטור מונה (num) ווקטור מכנה (den) של פונקצית תמסורת, ניתן להמירו למערכת משתני מצב:

[A,B,C,D]=tf2ss(num,den);


בהינתן מערכת משוואות מצב, ניתן לעבור לפונקצית תמסורת באמצעות:

[num,den]=ss2tf(A,B,C,D);


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

>> A=[1 2 3;3 5 8;2 1 4];
>> damp(eig(A))
 
 Eigenvalue     Damping     Freq. (rad/s)  
 
  8.99e+00     -1.00e+00       8.99e+00    
 -9.99e-02      1.00e+00       9.99e-02    
  1.11e+00     -1.00e+00       1.11e+00

מהפלט ניתן לראות כי יש שני קטבים לא יציבים (חיוביים, ריסון שלילי).

[עריכה] סיכום: תאור מערכת דינמית במרחב המצב

  • משוואת הקלט (משוואת הדינמיקה):
    \ \dot\vec x= A\vec x+B\vec u,\ \vec x(t=0)=\vec x_0
  • משוואת הפלט (משוואת המדידה):
    \ \vec y=C\vec x +D\vec u
  • מטריצת התמסורת:
    \ \vec Y(s)= \left[ C(sI-A)^{-1}B+D \right] \vec U(s)

[עריכה] הערות

  1. Multiple Input Multiple Output, לעומת SISO - Single Input Single Output.
  2. מתוך: Warwick, K., An Introduction to Control Systems.

[עריכה] קישורים חיצוניים

כלים אישיים

גרסאות שפה
מרחבי שם
פעולות
ניווט
קהילה
תיבת כלים
דף זה בשפות אחרות
הדפסה/יצוא