מבחן קונטרולביליות - מגדירים את מטריצת הקונטרולביליות S {\displaystyle S} של המערכת [ B A B . . . A n − 1 B ] {\displaystyle {\begin{bmatrix}B\quad AB\quad ...\quad A^{n-1}B\end{bmatrix}}} .
אם המטריצה S {\displaystyle S} מדרגה מלאה (n) אז המערכת קונטרולבילית.
מבחן אובזרווביליות - מגדירים את מטריצת האובזרווביליות H {\displaystyle H} של המערכת [ C C A C A 2 ⋮ C A n − 1 ] {\displaystyle {\begin{bmatrix}C\\CA\\CA^{2}\\\vdots \\CA^{n-1}\end{bmatrix}}} .
אם המטריצה H {\displaystyle H} מדרגה מלאה (n) אז המערכת אובזרוובילית.
דוגמאות:
נתונה מערכת הבאה { x ˙ = A x + B u y = C x , A = [ 1 2 3 4 ] , B = [ 0 1 ] , C = [ 1 2 ] {\displaystyle \left\{{\begin{matrix}{\dot {x}}=Ax+Bu\\y=Cx\end{matrix}}\right.,A={\begin{bmatrix}1&2\\3&4\end{bmatrix}},B={\begin{bmatrix}0\\1\end{bmatrix}},C={\begin{bmatrix}1&2\end{bmatrix}}}
מבחן קונטרולביליות:
B = [ 0 1 ] , A B = [ 2 4 ] , S = [ B A B ] = [ 0 2 1 4 ] {\displaystyle B={\begin{bmatrix}0\\1\end{bmatrix}},AB={\begin{bmatrix}2\\4\end{bmatrix}},S={\begin{bmatrix}B\quad AB\end{bmatrix}}={\begin{bmatrix}0&2\\1&4\end{bmatrix}}}
ניתן לראות שדרגת המטריצה היא 2, כלומר שמטריצת הקונטרולביליות הינה מדרגה מלאה והמערכת הינה קונטרולבילית.
מבחן אובזרווביליות:
C = [ 1 2 ] , A = [ 1 2 3 4 ] , H = [ C C A ] = [ 1 2 7 10 ] {\displaystyle C={\begin{bmatrix}1&2\end{bmatrix}},A={\begin{bmatrix}1&2\\3&4\end{bmatrix}},H={\begin{bmatrix}C\\CA\end{bmatrix}}={\begin{bmatrix}1&2\\7&10\end{bmatrix}}}
ניתן לראות שדרגת המטריצה היא 2, כלומר שמטריצת אובזרווביליות הינה מדרגה מלאה והמערכת הינה אובזרוובילית.
על מנת לבדוק קונטרולביליות ואובזרווביליות של מערכת לא-ליניארית דרוש להשתמש בסוגרי לִי (Lie brackets) ובנגזרת לִי (Lie Derivative) שיוגדרו להלן.
הערה: ההגדרה של שתי הפעולות הללו תינתן במתכונת מצומצמת יחסית.
נניח שקיימת פונקציה סקאלרית h : D ⊂ R n → R {\displaystyle h:D\subset \mathbb {R} ^{n}\to \mathbb {R} } ווקטור שדה המוגדר f : D ⊂ R n → R n {\displaystyle f:D\subset \mathbb {R} ^{n}\to \mathbb {R} ^{n}} פעולת ה-Lie Derivative של h {\displaystyle h} ביחס ל-f {\displaystyle f} מביאה לביטוי הבא: L f h ( x ) = d f d x f ( x ) {\displaystyle L_{f}h(x)={\frac {df}{dx}}f(x)} . נניח שנתונים לנו שני וקטורי שדות f , g {\displaystyle f,g} המוגדרים כמקודם אזי:
{ L f h ( x ) = d f d x f ( x ) L g h ( x ) = d g d x g ( x ) → L g L f h ( x ) = L g [ L f h ( x ) ] = d ( L f h ) d x f ( x ) {\displaystyle {\begin{cases}L_{f}h(x)={\frac {df}{dx}}f(x)\\L_{g}h(x)={\frac {dg}{dx}}g(x)\end{cases}}\to L_{g}L_{f}h(x)=L_{g}[L_{f}h(x)]={\frac {d(L_{f}h)}{dx}}f(x)}
נתונות המערכת הבאה:
h ( x ) = 1 2 ( x 1 2 + x 2 2 ) {\displaystyle h(x)={\frac {1}{2}}(x_{1}^{2}+x_{2}^{2})}
f ( x ) = [ − x 2 − x 1 − u ( 1 − x 1 2 ) x 2 ] , g ( x ) = [ − x 1 − x 1 x 2 2 − x 2 + x 1 2 x 2 ] {\displaystyle f(x)={\begin{bmatrix}-x_{2}\\-x_{1}-u(1-x_{1}^{2})x_{2}\end{bmatrix}},\;g(x)={\begin{bmatrix}-x_{1}-x_{1}x_{2}^{2}\\-x_{2}+x_{1}^{2}x_{2}\end{bmatrix}}\;}
מתקבל:
L f h ( x ) = d h d x f ( x ) = [ x 1 x 2 ] [ − x 2 − x 1 − u ( 1 − x 1 2 ) x 2 ] = − u ( 1 − x 1 2 ) x 2 2 {\displaystyle L_{f}h(x)={\frac {dh}{dx}}f(x)={\begin{bmatrix}x_{1}&x_{2}\end{bmatrix}}{\begin{bmatrix}-x_{2}\\-x_{1}-u(1-x_{1}^{2})x_{2}\end{bmatrix}}=-u(1-x_{1}^{2})x_{2}^{2}}
L g h ( x ) = d h d x g ( x ) = [ x 1 x 2 ] [ − x 1 − x 1 x 2 2 − x 2 − + x 1 2 x 2 ] = − ( x 1 2 + x 2 2 ) {\displaystyle L_{g}h(x)={\frac {dh}{dx}}g(x)={\begin{bmatrix}x_{1}&x_{2}\end{bmatrix}}{\begin{bmatrix}-x_{1}-x_{1}x_{2}^{2}\\-x_{2}-+x_{1}^{2}x_{2}\end{bmatrix}}=-(x_{1}^{2}+x_{2}^{2})}
L f L g h ( x ) = d ( L g h ) d x f ( x ) = − 2 [ x 1 x 2 ] [ − x 2 − x 1 − u ( 1 − x 1 2 ) x 2 ] = 2 u ( 1 − x 1 2 ) x 2 2 {\displaystyle L_{f}L_{g}h(x)={\frac {d(L_{g}h)}{dx}}f(x)=-2{\begin{bmatrix}x_{1}&x_{2}\end{bmatrix}}{\begin{bmatrix}-x_{2}\\-x_{1}-u(1-x_{1}^{2})x_{2}\end{bmatrix}}=2u(1-x_{1}^{2})x_{2}^{2}}
נניח שנתונים שני וקטורי שדות f ( x ) , g ( x ) {\displaystyle f(x),g(x)} המוגדרים ב-R n {\displaystyle \mathbb {R} ^{n}}
פעולת ה-Lie Brackets יוצרת שדה חדש:
[ f , g ] ≡ d g d x f − d f d x g {\displaystyle {\begin{bmatrix}f,g\end{bmatrix}}\equiv {\frac {dg}{dx}}f-{\frac {df}{dx}}g}
כמו כן ניתן להגדיר Lie Brackets מסדרים גבוהים יותר בדרך הבאה:
( a d f 1 ) ≡ [ f , g ] ( a d f 2 ) ≡ [ f , [ f , g ] ] ⋮ ( a d f k ) ≡ [ f , ( a d f k − 1 , g ) ] {\displaystyle {\begin{matrix}(ad_{f}^{1})\equiv [f,g]\\(ad_{f}^{2})\equiv [f,[f,g]]\\\vdots \\(ad_{f}^{k})\equiv [f,(ad_{f}^{k-1},g)]\end{matrix}}}
נתונים שני הווקטורים הבאים:
f ( x ) = [ − x 2 − x 1 − u ( 1 − x 1 2 ) x 2 ] , g ( x ) = [ x 1 x 2 ] {\displaystyle f(x)={\begin{bmatrix}-x_{2}\\-x_{1}-u(1-x_{1}^{2})x_{2}\end{bmatrix}},\;g(x)={\begin{bmatrix}x_{1}\\x_{2}\end{bmatrix}}\;}
[ g 1 , g 2 ] ≡ d g d x f ( x ) − d f d x g ( x ) = [ 1 0 0 1 ] [ − x 2 − x 1 − u ( 1 − x 1 2 ) x 2 ] − [ 0 − 1 − 1 + 2 u x 1 x 2 − u ( 1 − x 1 2 ) ] [ x 1 x 2 ] = {\displaystyle {\begin{aligned}{\begin{bmatrix}g_{1},g_{2}\end{bmatrix}}\equiv {\frac {dg}{dx}}f(x)-{\frac {df}{dx}}g(x)={\begin{bmatrix}1&0\\0&1\end{bmatrix}}{\begin{bmatrix}-x_{2}\\-x_{1}-u(1-x_{1}^{2})x_{2}\end{bmatrix}}-{\begin{bmatrix}0&-1\\-1+2ux_{1}x_{2}&-u(1-x_{1}^{2})\end{bmatrix}}{\begin{bmatrix}x_{1}\\x_{2}\end{bmatrix}}=\end{aligned}}}
= [ 0 − 2 u x 1 2 x 2 ] {\displaystyle ={\begin{bmatrix}0\\-2ux_{1}^{2}x_{2}\end{bmatrix}}}
קונטרולביליות
עריכה
ניתן להסתכל על המערכת הלא ליניארית בצורה הבאה:
x ˙ = f ( x ) + ∑ i = 1 m g i ( x ) u i {\displaystyle {\dot {x}}=f(x)+\sum _{i=1}^{m}g_{i}(x)u_{i}} , כאשר g i {\displaystyle g_{i}} הם שדות וקטורים של הכניסות ו-f {\displaystyle f} נקרא שדה וקטורי של הסחף (drift).
נגדיר את מטריצה C {\displaystyle C} כ:
C = [ g 1 , g 2 , . . . , g m , [ g i , g j ] , . . . , [ a d g i k , g j ] , . . . , [ f , g i ] , . . . , [ a d f k , g i ] , . . . ] {\displaystyle C={\begin{bmatrix}g_{1},g_{2},...,g_{m},[g_{i},g_{j}],...,[ad_{gi}^{k},g_{j}],...,[f,g_{i}],...,[ad_{f}^{k},g_{i}],...\end{bmatrix}}}
במקרה בו המערכת חסרת סחף (driftless) והדרגה של המטריצה C {\displaystyle C} היא מסדר n ניתן להגדיר את המערכת כקונטרולבילית.
ניתן לפתח את משוואות התנועה הבאות עבור מודל דו ממדי של חד-אופן (unicycle)[1]
x ˙ = v 1 cos ( θ ) y ˙ = v 1 sin ( θ ) θ ˙ = v 2 {\displaystyle {\begin{matrix}{\dot {x}}=v_{1}\cos(\theta )\\{\dot {y}}=v_{1}\sin(\theta )\\{\dot {\theta }}=v_{2}\end{matrix}}}
כאשר θ , y , x {\displaystyle \theta ,y,x} הינן קוארדינטות המתארות את קונפיגורציית הגוף במישור (מיקום ואורינטציה), וv 2 , v 1 {\displaystyle v_{2},v_{1}} הינן המהירות הקווית והסיבובית של המערכת בהתאמה.
כלומר שהמערכת היא :x ˙ = f ( x ) + ∑ i = 1 m g i ( x ) u i = 0 + [ cos ( θ ) sin ( θ ) 0 ] ⏞ g 1 v 1 ⏞ u 1 + [ 0 0 1 ] ⏞ g 2 v 2 ⏞ u 2 {\displaystyle {\dot {x}}=f(x)+\sum _{i=1}^{m}g_{i}(x)u_{i}=0+\overbrace {\begin{bmatrix}\cos(\theta )\\\sin(\theta )\\0\end{bmatrix}} ^{g1}\overbrace {v_{1}} ^{u_{1}}+\overbrace {\begin{bmatrix}0\\0\\1\end{bmatrix}} ^{g_{2}}\overbrace {v_{2}} ^{u_{2}}}
מכאן נובע
[ g 1 , g 2 ] ≡ d g 2 d x g 1 − d g 1 d x g 2 = ( 0 0 0 0 0 0 0 0 0 ) ( 0 0 1 ) − ( 0 0 − sin ( θ ) 0 0 c o s ( θ ) 0 0 0 ) ( 0 0 1 ) = {\displaystyle {\begin{aligned}{\begin{bmatrix}g_{1},g_{2}\end{bmatrix}}\equiv {\frac {dg_{2}}{dx}}g_{1}-{\frac {dg_{1}}{dx}}g_{2}={\begin{pmatrix}0&0&0\\0&0&0\\0&0&0\end{pmatrix}}{\begin{pmatrix}0\\0\\1\end{pmatrix}}-{\begin{pmatrix}0&0&-\sin(\theta )\\0&0&\ \;cos(\theta )\\0&0&0\end{pmatrix}}{\begin{pmatrix}0\\0\\1\end{pmatrix}}=\\\end{aligned}}}
= [ g 1 , g 2 ] = ( − sin ( θ ) cos ( θ ) 0 ) ⇒ C = ( c o s ( θ ) 0 − s i n ( θ ) sin ( θ ) 0 cos ( θ ) 0 1 0 ) ⇒ r a n k ( C ) = 3 = n {\displaystyle ={\begin{bmatrix}g_{1},g_{2}\end{bmatrix}}={\begin{pmatrix}-\sin(\theta )\\\;\cos(\theta )\\0\end{pmatrix}}\Rightarrow C={\begin{pmatrix}cos(\theta )&0&-sin(\theta )\\\sin(\theta )&0&\cos(\theta )\\0&1&0\end{pmatrix}}\Rightarrow rank(C)=3=n}
אפשר לראות שווקטור השדה שנוצר באמצעות פעולת ה-Lie brackets אינו תלוי בשני ווקטורי הכניסות האחרות והמערכת הינה קונטרולבילית.
ניתן לפתח את משוואות התנועה הבאות עבור מודל דו ממדי של של רכב בעל היגוי בציר הקדמי והנעה בציר האחורי[2]
[ x ˙ y ˙ θ ˙ ϕ ˙ ] = [ cos ( θ ) sin ( θ ) tan ( ϕ ) / L 0 ] ⏞ g 1 v 1 + [ 0 0 0 1 ] ⏞ g 2 v 2 {\displaystyle {\begin{bmatrix}{\dot {x}}\\{\dot {y}}\\{\dot {\theta }}\\{\dot {\phi }}\end{bmatrix}}=\overbrace {\begin{bmatrix}\cos(\theta )\\\sin(\theta )\\\tan(\phi )/L\\0\end{bmatrix}} ^{g_{1}}v_{1}+\overbrace {\begin{bmatrix}0\\0\\0\\1\end{bmatrix}} ^{g_{2}}v_{2}}
כאשר x , y {\displaystyle x,y} הינן קוארדינטות המיקום של הרכב במישור, θ {\displaystyle \theta } הינה זווית האורינטציה של הרכב במישור וϕ {\displaystyle \phi } הינה זווית ההיגוי.
הפרמטר L {\displaystyle L} מתאר את המרחק בין הציר האחורי לקדמי ), וv 2 , v 1 {\displaystyle v_{2},v_{1}} הינן מהירות הנסיעה וההיגוי של הרכב בהתאמה.
באותו אופן כמו בדוגמה הקודמת מפתחים את האיברים הבאים:
[ g 1 , g 2 ] = [ 0 0 − 1 / L cos 2 ( ϕ ) 0 ] , [ g 1 , [ g 1 , g 2 ] ] = [ − sin ( θ ) / L cos 2 ( ϕ ) cos ( θ ) / L cos 2 ( ϕ ) 0 0 ] {\displaystyle {\begin{bmatrix}g_{1},g_{2}\end{bmatrix}}={\begin{bmatrix}0\\0\\-1/L\cos ^{2}(\phi )\\0\end{bmatrix}},\;{\begin{bmatrix}g_{1},[g_{1},g_{2}]\end{bmatrix}}={\begin{bmatrix}-\sin(\theta )/L\cos ^{2}(\phi )\\\cos(\theta )/L\cos ^{2}(\phi )\\0\\0\end{bmatrix}}}
⇒ C = [ cos ( θ ) 0 0 − sin ( θ ) / L cos 2 ( ϕ ) sin ( θ ) 0 0 cos ( θ ) / L cos 2 ( ϕ ) tan ( ϕ ) / L 0 − 1 / L cos 2 ( ϕ ) 0 0 1 0 0 ] {\displaystyle \Rightarrow C={\begin{bmatrix}\cos(\theta )&0&0&-\sin(\theta )/L\cos ^{2}(\phi )\\\sin(\theta )&0&0&\cos(\theta )/L\cos ^{2}(\phi )\\\tan(\phi )/L&0&-1/L\cos ^{2}(\phi )&0\\0&1&0&0\end{bmatrix}}}
ניתן להראות שדרגת המטריצה הינה 4 פרט למקרים בהם ϕ = ± π / 2 {\displaystyle \phi =\pm \pi /2} (גלגל קדמי ניצב לציר התנועה של הרכב), כך שהרכב קונטרולבילי כל עוד זווית ההיגוי שונה מ ± π / 2 {\displaystyle \pm \pi /2} . אם משתמשים בעובדה שניתן לשלוט במהלך הנסיעה על זווית ההיגוי ϕ {\displaystyle \phi } באמצעות כניסת מהירות ההיגוי v 2 {\displaystyle v_{2}} אזי ניתן להגיד שהמערכת קונטרולבילית.
נתונה מערכת המשוואות הכוללת בתוכה את השדה וקטורי של הסחף (drift)
x ˙ 1 = x 2 2 x ˙ 2 = u {\displaystyle {\begin{matrix}{\dot {x}}_{1}=x_{2}^{2}\\{\dot {x}}_{2}=u\\\end{matrix}}}
מכאן ש:
f ( x ) = [ x 2 2 0 ] , g ( x ) = [ 0 1 ] , [ f , g ] = [ − 2 x 2 0 ] , [ [ f , g ] , g ] = [ 2 0 ] {\displaystyle f(x)={\begin{bmatrix}x_{2}^{2}\\0\end{bmatrix}},\;g(x)={\begin{bmatrix}0\\1\end{bmatrix}},\;{\begin{bmatrix}f,g\end{bmatrix}}={\begin{bmatrix}-2x_{2}\\0\end{bmatrix}},\;{\begin{bmatrix}[f,g],g\end{bmatrix}}={\begin{bmatrix}2\\0\end{bmatrix}}}
⇒ C = [ g , [ f , g ] ] = [ 0 − 2 x 2 1 0 ] {\displaystyle \Rightarrow C={\begin{bmatrix}g,[f,g]\end{bmatrix}}={\begin{bmatrix}0&-2x_{2}\\1&0\end{bmatrix}}}
מן צד אחד אפשר לראות שדרגת המטריצה הינה 2, פרט למקרה בו x 2 = 0 {\displaystyle x_{2}=0} בנוסף לכך בהבדל מן המערכות בדוגמאות הקודמות המערכת כאן הינה בעלת סחף f ( x ) ≠ 0 {\displaystyle f(x)\neq 0} ולכן המערכת אינה קונטרולבילית. ניתן לראות זאת גם באמצעות הביטוי,x 2 2 ≥ 0 {\displaystyle x_{2}^{2}\geq 0} שאומר שהערך של הקוארדיננטה x 1 {\displaystyle x_{1}} רק גדל ומכאן שהמערכת לא באמת קונטרולבילית.