تخمین حالت و طراحی مشاهده گر — از صفر تا صد
در آموزشهای قبلی مجله فرادرس، با جایابی قطب به کمک فیدبک حالت آشنا شدیم. در این آموزش، درباره طراحی رؤیتگر یا مشاهدهگر (Observer) برای تخمین حالت (State Estimation) بحث خواهیم کرد.
تخمین حالت با مشاهدهگر
برای سیستمهای مشاهدهپذیر (تعریف این سیستمها را در ادامه بیان میکنیم)، حالت $$ x$$ را با استفاده از خروجی $$ y = C x $$ توسط یک مشاهدهگر تخمین میزنیم. در مواردی که حالت برای طراحی کنترلکننده $$ u = -Kx $$ در دسترس نیست، میتوانیم در صورت امکان از تخمین آن، یعنی $$ \hat{x} $$، استفاده کنیم.
در نتیجه، میتوانیم فیدبک $$ u = -K\hat{x} $$ را به کار ببریم. در واقع، وقتی فیدبک حالت کامل امکانپذیر نباشد، از یک مشاهدهگر برای تخمین حالت $$x$$ استفاده میشود.
در حقیقت، میخواهیم مشاهدهگری طراحی کنیم که تخمین حالت $$ \widehat{x} $$ آن به صورت مجانبی دقیق باشد:
$$ \large \begin {align*}
\| \widehat { x } ( t ) - x ( t ) \| & = \sqrt { \sum ^ n _ { i = 1 } \big ( \widehat { x } _ i ( t ) -
x _ i ( t ) \big ) ^ 2 } \\
& \to 0 , \, \text { as } t \to \infty .
\end {align*} $$
$$ \large \begin {align*}
\dot { x } & = A x + B u , \\
y & = C x ,
\end {align*} $$
اگر در طراحی مشاهدهگر درست عمل کنیم، آنگاه میتوانیم یک فیدبک حالت تخمین زده شده را طراحی کنیم.
ماتریس مشاهدهپذیری
همانطور که میدانیم، اگر سیستم کاملاً کنترلپذیر باشد، قطبهای حلقهبسته را میتوان با استفاده از فیدبک حالت کامل جایابی کرد. اکنون خواهیم دید وقتی سیستم کاملاً مشاهدهپذیر باشد، تخمین حالت مجانبی دقیق ممکن خواهد بود. در حقیقت، مشاهدهپذیری یک ویژگی سیستم است که دوگان کنترلپذیری است.
سیستم تکخروجی زیر را با $$ y \in \mathbb { R } ^ 1 $$ در نظر بگیرید:
$$ \large \begin {align*}
\dot { x } & = A x + B u , \\
y & = C x ,
\end {align*} $$
که در آن، $$ x \in \mathbb { R } ^ n $$. ماتریس مشاهدهپذیری به صورت زیر تعریف میشود:
$$ \large \begin {align*}
{ \cal O } ( A , C ) = \left [ \begin {matrix} C \\ CA \\ \vdots \\ C A ^ { n - 1 } \end {matrix} \right ] .
\end {align*} \;\;\;\;\; (1) $$
که در آن، $$C$$ یک ماتریس $$ 1 \times n $$ و $$A$$ یک ماتریس $$ n \times n $$ است. بنابراین، ماتریس مشاهدهپذیری $$ {\cal O}(A,C) $$ یک ماتریس $$ n \times n $$ خواهد بود. ماتریس مشاهدهپذیری تنها با ماتریسهای $$ A $$ و $$ C$$ سر و کار دارد.
سیستم بالا کاملاً مشاهدهپذیر است، اگر ماتریس مشاهدهپذیری $$ {\cal O}(A,C) $$ معکوسپذیر باشد. این تعریف فقط برای مواردی با یک خروجی معتبر است. تعریف فوق را میتوان با استفاده از رتبه (Rank) ماتریس مشاهدهپذیری $$ {\cal O}(A,C) $$ برای سیستمهایی با چند ورودی تعمیم داد.
مثال
ماتریس مشاهدهپذیری $$ {\cal O}(A,C) $$ سیستم زیر را محاسبه کنید:
$$ \large \begin {align*}
A = \left ( \begin {matrix} 0 & - 6 \\ 1 & - 5 \end {matrix} \right ) , \, C = \left ( \begin {matrix} 0 & 1 \end {matrix} \right ) .
\end {align*} $$
حل: ماتریسهای داده شده، برای یک سیستم تکخروجی با دو متغیر حالت هستند؛ یعنی $$ n = 2 $$، $$ C \in \mathbb{R}^{1 \times 2}$$ و $$ A \in \mathbb {R} ^{2\times 2} $$. بنابراین $$ {\cal O}(A,C) \in \mathbb { R } ^ { 2 \times 2} $$.
با نوشتن ماتریس مشاهدهپذیری (۱)، داریم:
$$ \large \begin {align*}
{ \cal O } ( A , C ) = \left [ \begin {matrix} C \\ C A \end {matrix} \right ] ,
\end {align*} $$
که در آن:
$$ \large \begin {align*}
C A & = \left ( \begin {matrix} 0 & 1 \end {matrix} \right ) \left ( \begin {matrix} 0
& - 6 \\ 1 & - 5 \end {matrix} \right ) \\
& = \left ( \begin {matrix} 1 & - 5 \end {matrix} \right ) . \\
\implies { \cal O } ( A , C ) & = \left ( \begin {matrix} 0 & 1 \\ 1 & - 5
\end {matrix} \right ) .
\end {align*} $$
در ماتریس مشاهدهپذیری بالا، $$ \text{det} {\cal O}(A,C) = - 1 \neq 0 $$، بنابراین، سیستم کاملاً مشاهدهپذیر است. ماتریسهای $$ A $$ و $$ C $$ سیستم به فرم کانونی مشاهدهپذیر (OCF) هستند.
فرم کانونی مشاهدهپذیر
مدل فضای حالت سیستم زیر را در نظر بگیرید:
$$ \large \begin {align*}
\dot { x } & = A x + B u , \\
y & = C x
\end {align*} $$
اگر ماتریسهای $$A$$ و $$C$$ به فرم زیر باشند، سیستم همواره مشاهدهپذیر خواهد بود:
$$ \large \begin {align*}
A & = \left ( \begin {matrix}
0 & 0 & \ldots & 0 & 0 & * \\
1 & 0 & \ldots & 0 & 0 & * \\
\vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
0 & 0 & \ldots & 1 & 0 & * \\
0 & 0 & \ldots & 0 & 1 & * \end {matrix}
\right ) , \\
C & = \left ( \begin {matrix} 0 & 0 & \ldots & 0 & 1 \end {matrix} \right ) .
\end {align*} $$
تبدیل مختصات و مشاهدهپذیری
مشابه کنترلپذیری، مشاهدهپذیری با تبدیل مختصاتی که وارونپذیر باشد، محفوظ میماند. تحت تبدیل خطی $$ \tau : x \mapsto Tx $$، داریم:
$$ \large \begin {align*}
\begin {array} { l }
\dot { x } = A x + B u , \\
y = C x ,
\end {array} \quad \xrightarrow{\quad T \quad} \quad
\begin {array} { l }
\dot { \bar { x } } = \bar { A } \bar { x } + \bar { B } u , \\
y = \bar { C } \bar { x } ,
\end {array}
\end {align*} $$
که در آن:
$$ \large \begin {align*}
\bar { A } = T A T ^ { - 1 } , \, \bar { B } = T B , \, \bar { C } = C T ^ { - 1 } .
\end {align*} $$
قضیه: مشاهدهپذیری در اثر تبدیل خطی تغییر نمیکند.
اثبات: برای هر $$ k = 0,1,\ldots $$ با استفاده از استقرا میتوان نوشت:
$$ \large \begin {align*}
\bar { C } \bar { A } ^ k & = C T ^ { - 1 } ( T A T ^ { - 1 } ) ^ k \\
& = C T ^ { - 1 } T A ^ { k } T ^ { - 1 } \\
& = C A ^ k T ^ { - 1 } .
\end {align*} $$
بنابراین:
$$ \large \begin {align*}
{ \cal O } ( \bar { A } , \bar { C } ) & = \left ( \begin {matrix} \bar { C } \\ \bar { C } \bar { A } \\ \vdots \\ \bar { C } \bar { A } ^ { n - 1 } \end {matrix} \right ) \\
& = \left ( \begin {matrix} C T ^ { - 1 } \\ C T ^ { - 1 } T A T ^ { - 1 } \\ \vdots \\ C T ^ { - 1 } T A ^ { n - 1 } T ^ { - 1 } \end {matrix} \right ) \\
& = \left ( \begin {matrix} C \\ CA \\ \vdots \\ C A ^ { n - 1 } \end {matrix} \right ) T ^ { - 1 } \\
& = { \cal O } ( A , C ) T ^ { - 1 } .
\end {align*} $$
از آنجایی که $$ \text{det} \, T \neq 0 $$، داریم: $$ \text {det} {\cal O}(\bar{A},\bar{C}) \neq 0 $$، اگر و تنها اگر $$ \text {det} {\cal O}(A,C) \neq 0 $$. بنابراین، سیستم جدید کاملاً مشاهدهپذیر است، اگر و تنها اگر سیستم اصلی مشاهدهپذیر باشد.
اگر سیستم اصلی مشاهدهپذیر باشد، آنگاه با توجه به اثبات بالا برای تغییرناپذیری مشاهدهپذیری، فرمولی برای تبدیل خطی $$ T$$ به دست میآوریم:
$$ \large \begin {align*}
& T \underbrace { \left [ { \cal O } ( A , C ) \right ] ^ { - 1 } } _ { \text {old} } = \underbrace { \left [ { \cal O } ( \bar { A } , \bar { C } ) \right ] ^ { - 1 } } _ { \text {new}} \\
\implies & T = \underbrace { \left [ { \cal O } ( \bar { A } , \bar { C } ) \right ] ^ { - 1 } } _ { \text {new} } \underbrace { \left [ { \cal O } ( A , C ) \right ] } _ { \text {old} } .
\end {align*} $$
قضیه: اگر سیستم مشاهدهپذیر باشد، آنگاه یک مشاهدهگر (تخمینگر حالت) وجود خواهد داشت که یک تخمین $$ \widehat{x} $$ از حالت $$x$$ بر اساس خروجی مشاهده شده $$y$$ ارائه میکند که به صورت مجانبی همگرا است.
مشاهدهگر لیونبرگر (Luenberger)
مدل فضای حالت زیر را در نظر بگیرید (فرض میکنیم $$ u = 0 $$):
$$ \large \begin {align*}
\dot { x } & = A x , \\
y & = C x .
\end {align*} $$
میخواهیم حالت $$ x $$ را بر اساس خروجی $$y$$ تخمین بزنیم. خروجی $$y$$ سیستم بالا را به عنوان ورودی سیستم زیر در نظر بگیرید. که متغیر حالت آن، $$ \widehat{x} $$ است:
$$ \large \begin {align*}
\dot { \widehat { x } } = ( A - L C ) \widehat { x } + L y .
\end {align*} \;\;\;\;\; (2) $$
ماتریس تزریق خروجی $$L$$ در معادله (۲)، به گونهای انتخاب میشود که ماتریس $$ A - L C $$ هرویتز باشد؛ یعنی همه مقادیر ویژه آن در سمت چپ محور موهومی باشند.
حال چیزی درباره مشاهدهپذیری فرض نمیکنیم. در نتیجه، در مدل فضای حالت، یک معادله دینامیکی دیگر برای مشاهدهگر داریم:
$$ \large \begin {align*}
\text {System: } \, & \dot { x } = A x , \\
& y = C x . \\
\text {Observer: } \, & \dot { \widehat { x } } = ( A -L C ) \widehat { x } + L y .
\end {align*} $$
خطای تخمین
برای آنکه بیان کنیم که تخمین تا چه حد دقیق است، خطای تخمین حالت $$ e = x - \widehat{x} $$ را در $$ t \to \infty $$ تعریف میکنیم. دینامیک خطا با معادله دیفرانسیل زیر بیان میشود:
$$ \large \begin {align*}
\dot { e } & = \dot { x } - \dot { \widehat { x } } \\
& = A x - \left [ ( A - L C ) \widehat { x } + L C x \right ] \\
& = ( A - L C ) x - ( A - L C ) \widehat { x } \\
& = ( A - L C ) e .
\end {align*} $$
میخواهیم خطای $$ e (t) $$ به صفر میل کند.
معادلات دیفرانسیل خطی و مقادیر ویژه
معادله دینامیکی سیستم زیر را در نظر بگیرید:
$$ \large \begin {align*}
\dot { v } & = F v , \text { } v \in \mathscr { R } ^ n , F \in \mathscr { R } ^ { n \times n } .
\end {align*} $$
فرض کنید $$ \lambda _ 1 $$، $$ \lambda _ 2 $$، ... و $$ \lambda _ n $$ مقادیر ویژه ماتریس $$F$$ باشند؛ یعنی ریشههای $$ \text {det} ( s I - F ) = 0 $$. اگر ماتریس $$F$$ قطریپذیر باشد، آنگاه ماتریس $$ T \in \mathbb { R } ^ { n \times n } $$ به گونهای وجود خواهد داشت که $$ T^{-1}=T^T $$ ($$T$$ در این مورد متعامد است) و داریم:
$$ \large F = T ^ { - 1 } \left ( \begin {matrix} \lambda _ 1 & \\
& \lambda_2 \\
& & \ddots \\
& & & \lambda_n \end{matrix}\right) T. $$
از تغییر مختصات $$ \bar{v} = Tv $$ استفاده میکنیم. در نتیجه:
$$ \large \begin {align*}
\dot { \bar { v } } & = T F T ^ { - 1 } \bar { v } = \left ( \begin {matrix} \lambda _ 1 & \\
& \lambda _ 2 \\
& & \ddots \\
& & & \lambda _ n \end {matrix} \right ) \bar { v } .
\end {align*} \;\;\;\;\; ( 3 ) $$
معادلات (۳) به صورت زیر هستند:
$$ \large \begin{align*}
\dot{\bar{v}}_i &= \lambda_i \bar{v}_i, \forall~ i = 1,2,\ldots,n.
\end{align*} $$
برای هر $$ i $$ که $$ 1 \leq i \leq n $$، معادله دیفرانسیل مرتبه اول داری جواب زیر است:
$$ \large \begin {align*}
\bar { v } _ i ( t ) & = \bar { v } _ i ( 0 ) e ^ { \lambda _ i t } .
\end {align*} $$
علاوه براین، اگر همه $$ \lambda_i $$ها بخشهای حقیقی منفی داشته باشند، آنگاه:
$$ \large \begin {align*}
\| v ( t ) \| ^ 2 & = v ( t ) ^ T v ( t ) \\
& = \bar { v } ( t ) ^ T \bar { v } ( t ) \\
& \le C e ^ { - 2 \sigma _ { \min } t } ,
\end {align*} $$
که در آن، $$ \sigma_{\min} = \min_{1 \le i \le n} |{\rm Re}(\lambda_i)| $$. این عبارت بیان میکند که $$ v ( t) $$ با یک نمایی متناظر با کندترین مد کاهش ضرب در ثابتی وابسته به $$n$$ است.
فرض بر این است که ماتریس $$ A _ LC $$ هرویتز است؛ یعنی همه مقادیر ویژه در سمت چپ محور موهومی هستند. در این صورت:
$$ \large \begin {align*}
\| x ( t ) - \widehat { x } ( t ) \| ^ 2 & = \| e ( t ) \| ^ 2 \\
& = \sum ^ n _ { i = 1 } | e _ i ( t ) | ^ 2 \\
& \to 0 , \text { as } t \to \infty .
\end {align*} $$
بنابراین، برای همگرایی سریع خطای تخمین به صفر (یعنی میل کردن تخمین $$ \hat{x} $$ به حالت $$ x$$)، باید مقادیر ویژه $$A- L C$$ در سمت چپ محور موهومی و دور از آن باشند.
از معادله (۲) میتوانیم رابطه ورودی-خروجی از $$ Y (s) $$ به $$ \hat{X}(s) $$ را به دست آوریم:
$$ \large \begin {align*}
s \hat { X } ( s ) & = ( A - L C ) \hat { X } ( s ) + L Y ( s ) \\
\implies L Y ( s ) & = ( s I - A + L C ) \hat { X } ( s ) \\
\hat { X } ( s ) & = ( s I - A + L C ) ^ { - 1 } L Y ( s ) .
\end {align*} $$
مقادیر ویژه $$ A - L C $$ قطبهای مشاهدهگر هستند. مطلوب این است که این قطبها پایدار و سریع باشند تا خطای تخمین سریعاً به صفر میل کند.
مشاهدهپذیری و جایابی قطب مشاهدهگر
اگر سیستمِ
$$ \large \begin {align*}
\dot {x} & = A x , \\
y & = C x
\end {align*} $$
کاملاً مشاهدهپذیر باشد، آنگاه میتوان به صورت دلخواه مقادیر ویژه $$A_ L C $$ را با انتخاب مناسب ماتریس تزریق خروحی $$L$$ تعیین کرد. این مورد، مشابه کنترلپذیری است که جایابی قطب حلقه بسته با فیدبک حالت $$ u = - K x $$ انجام میشود. بنابراین، میتوان گفت که CCF دوگان OCF است.
در واقع، یک سیستم تکخروجی در OCF با $$ y \in \mathbb {R} ^ 1 $$ به صورت زیر است:
$$ \large \begin {align*}
\dot { x } & = A x \\
y & = C x , \\
\text {where } A & = \left ( \begin {matrix}
0 & 0 & \ldots & 0 & 0 & - a _ n \\
1 & 0 & \ldots & 0 & 0 & - a _ { n - 1 } \\
\vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
0 & 0 & \ldots & 1 & 0 & - a _ { 2 } \\
0 & 0 & \ldots & 0 & 1 & - a _ 1 \end {matrix}
\right ) , \\
C & = \left ( \begin {matrix} 0 & 0 & \ldots & 0 & 1 \end {matrix} \right ) .
\end {align*} $$
لازم به ذکر است که $$ A ^ T $$ به فرم یک سیستم CCF است. در نتیجه:
$$ \large \begin {align*}
\det ( s I - A ) & = \det ( ( s I - A ) ^ T ) \hspace {3cm} \text { (by $ \det ( M ) = \det(M^T)$)}\\
&= \det(sI-A^T) \hspace {3.5cm} \text { (by $ ( M _ 1 + M _ 2 ) ^ T = M _ 1 ^ T + M _ 2 ^ T $)} \\
& = s ^ n + a _ 1 s ^ { n - 1 } + \cdots + a _ { n - 1 } s + a _ n . \end {align*} \; \; \;\;\; (4) $$
با اضافه شدن ماتریس تزریق خروجی $$L$$، ماتریس $$ A - L C $$ هنوز به فرم مشابه ماتریس $$ A $$ است. در واقع، درایههای $$L$$ در هر زمان، وارد آخرین ستون $$A$$ میشوند.
$$ \large \begin {align*}
A & = \left ( \begin {matrix}
0 & \ldots & 0 & - a _ n \\
1 & \ldots & 0 & - a _ { n - 1 } \\
\vdots & \ddots & \vdots & \vdots \\
0 & \ldots & 1 & - { a _ 1 } \end {matrix}
\right ) , \\
L C & = \left ( \begin {matrix} \ell _ 1 \\ \ell _ 2 \\ \vdots \\ \ell _ n \\ \end {matrix} \right ) \left ( \begin {matrix} 0 & 0 & \ldots & 1 \end {matrix} \right ) \\
& = \left ( \begin {matrix}
0 & \ldots & 0 & \ell _ 1 \\
0 & \ldots & 0 & \ell _ 2 \\
\vdots & \ddots & \vdots & \vdots \\
0 & \ldots & 0 & \ell _ n \end {matrix}
\right ) , \\
A - L C & = \left ( \begin {matrix}
0 & \ldots & 0 & - ( a _ n+\ell _ 1 ) \\
1 & \ldots & 0 & - ( a _ { n - 1 } + \ell _ 2 ) \\
\vdots & \ddots & \vdots & \vdots \\
0 & \ldots & 1 & - ( a _ 1 + \ell _ n ) \end {matrix}
\right ) .
\end {align*} $$
مشاهده میکنیم که مقادیر ویژه $$ A - L C $$ ریشههای چندجملهای مشخصه معادله (۴) هستند:
$$ \large \begin {align*}
& \det ( s I - A + L C ) \\
& = s ^ n + ( a _ 1 + \ell _ n ) s ^ { n - 1 } + \cdots + ( a _ { n - 1 } + \ell _ 2 ) s + ( a _ n + \ell _ 1 ) .
\end {align*} $$
نکته: وقتی سیستم به فرم کانونی مشاهدهپذیر (OCF) باشد، هر درایه ماتریس تزریق خروجی $$L$$ تحت تأثیر ضرایب چندجملهای مشخصه قرار میگیرد که میتوان آن را به صورت دلخواه با انتخاب مناسب $$ l _ 1$$، $$ l _ 2 $$، ... و $$ l_ n $$ تعیین کرد. بنابراین، نام فرم کانونی مشاهدهپذیر برای طراحی مشاهدهگر مناسب است.
میتوانیم روش کلی طراحی را برای هر سیستم کاملاً مشاهدهپذیر به صورت زیر خلاصه کنیم:
- مدل فضای حالت سیستم را با یک تبدیل مختصات وارون پذیر $$ T = \underbrace { { \cal O }( \bar { A } , \bar { C } ) ^ { - 1 }} _{ \text {new} } \underbrace { \left[ { \cal
O } ( A , C ) \right ] } _ { \text {old} } $$ به فرم کانونی مشاهدهپذیر تبدیل کنید. - $$ \bar{L} $$ را به گونهای پیدا کنید که $$ \bar{A} - \bar{L}\bar{C} $$ دارای مقادیر ویژه مطلوب مشاهدهگر باشد.
- جواب را به مختصات اصلی برگردانید: $$ L = T^{-1}\bar{L} $$.
آنگاه، مشاهدهگر به صورت زیر خواهد بود:
$$ \large \begin {align*}
\dot { \widehat { x } } = ( A - T ^ { - 1 } \bar { L } C ) \widehat { x } + T ^ { - 1 } \bar { L } y .
\end {align*} $$
اما این رویه به دلیل رابطه دوگان کنترلپذیری و مشاهدهپذیری کاملاً ضروری نیست.
قضیه دوگانی کنترلپذیری و مشاهدهپذیری: سیستمِ
$$ \large \begin {align*}
\dot { x } & = A x , \\
y & = C x
\end {align*} $$
کاملاً مشاهدهپذیر است، اگر و تنها اگر سیستمِ
$$ \large \begin {align*}
\dot { x } & = A ^ T x + C ^ T u
\end {align*} \;\;\;\;\; ( 5 ) $$
کاملاً کنترلپذیر باشد.
اثبات: ماتریس کنترلپذیری سیستم در معادله (۵) به صورت زیر محاسبه میشود:
$$ \large \begin {align*}
{ \cal C } ( A ^ T , C ^ T ) & = \left [ C ^ T \, |\, A ^ T C ^ T \, |\, \cdots \, |\, ( A ^ T ) ^ { n - 1 } C ^ T \right ] \\
& = \left [ \begin {matrix} C \\ CA \\ \vdots \\ C A ^ { n - 1 } \end {matrix} \right ] ^ T \\
& = \left [ { \cal O } ( A , C ) \right ] ^ T .
\end {align*} $$
در نتیجه، $$ {\cal O}(A,C) $$ غیرمنفرد است، اگر و تنها اگر $$ {\cal C}(A^T,C^T) $$ غیرمنفرد باشد.
با استفاده از دوگانی کنترلپذیری-مشاهده پذیری، روند جایابی قطب مشاهدهگر را میتوان به صورت زیر خلاصه کرد (برای زوج کاملاً مشاهدهپذیر $$ (A,C)$$):
- برای $$ F = A^T $$ و $$ G = C^T $$، سیستم زیر را در نظر بگیرید که طبق قاعده دوگانی کاملاً کنترلپذیر است:
$$ \large \dot { x } = F x + G u . $$
- فرایند یافتن $$K$$ را برای سیستم کاملاً کنترلپذیر به گونهای طی کنید که ماتریس زیر دارای مقادیر ویژه مطلوب باشد:
$$ \large F - G K = A ^ T - C ^ T K $$
- آنگاه:
$$ \large \begin {align*}
{ \rm eig } ( A ^ T - C ^ T K ) & = { \rm eig } ( A ^ T - C ^ T K ) ^ T \\
& = { \rm eig } ( A - K ^ T C ) ,
\end {align*} $$
و $$L= K^T$$ ماتریس تزریق خروجی مطلوب است.
بنابراین، مشاهدهگر حاصل، به صورت زیر است:
$$ \large \begin {align*}
\dot { \widehat { x } } & = ( A - L C ) \widehat { x } + L y \\
& = ( A - \underbrace {K ^ T } _ L C ) \widehat { x } + \underbrace { K ^ T } _ L y .
\end {align*} $$
گفتنی است مشاهدهگر بالا که در رابطه (۲) مشخص شد، مبتنی بر ورودی صفر $$u$$ در مدل فضای حالت است.
ترکیب طراحی مشاهدهگر و کنترلکننده
در این بخش، درباره ترکیب طراحی مشاهدهگر و کنترل کننده بحث خواهیم کرد. در یک سیستم عادی، اندازهگیریها توسط سنسور انجام میشود.
در شکل ۳، بلوک سنسور بین کنترلکننده و خروجی $$y$$ وجود ندارد. بنابراین، فیدبک حالت کامل $$ u = -Kx $$ به دلیل کمبود اطلاعات درباره حالت درونی $$x$$ قابل پیادهسازی نیست.
در بخشهای قبل یک مشاهدهگر برای تخمین حالت $$x$$ طراحی کردیم. بین خروجی $$y$$ و کنترلکننده، یک بلوک مشاهدهگر داریم که مطابق شکل ۱ است. تا اینجا سیستمهای خودگردان با ورودی صفر را در نظر گرفتیم. اکنون سیستم دارای ورودی را بررسی میکنیم.
فرض کنید $$ (A,B)$$ کاملاً کنترلپذیر و $$(A,C)$$ کاملاً مشاهدهپذیر باشند و سیستمی به شکل زیر داشته باشیم:
$$ \large \begin {align*}
\dot { x } & = A x + B u , \\
y & = C x
\end {align*} $$
فیدبک حالت کامل و مشاهدهگر را میتوان مطابق شکل ۴ پیادهسازی کرد.
روش یافتن $$K$$ را به گونهای که $$ A - B K $$ دارای مقادیر ویژه مطلوب باشد، از روش جایابی قطب میدانیم. مسئله این است که از آنجایی که به $$x$$ دسترسی نداریم، باید یک مشاهدهگر طراحی کنیم و باید کمی اصلاحات در آنچه که قبلاً طراحی کردیم انجام دهیم، زیرا اکنون $$ B u $$ صفر نیست.
مشاهدهگر در حضور ورودی کنترل
ابتدا این موضوع را بررسی میکنیم که چرا استفاده از روش قبلی (بدون اصلاح) به اشتباه میانجامد:
$$ \large \begin {align*}
\dot { \widehat { x } } & = ( A - L C ) \widehat { x } + L y .
\end {align*} $$
برای تخمین خطای $$ e = x - \widehat{x} $$، داریم:
$$ \large \begin {align*}
\dot { e } & = \dot { x } - \dot { \widehat { x } } \\
& = A x + B u - \left [ ( A - L C ) \widehat { x } + L C x \right ] \\
& = ( A - L C ) e + B u .
\end {align*} \; \; \; \; \; ( 6 ) $$
اگر $$ u \neq 0 $$، آنگاه $$ B u $$ لزوماً صفر نیست. در نتیجه، دیگر لزوماً جواب حالت ماندگار $$ e(\infty) = 0 $$ نیست، حتی وقتی $$ t \to \infty $$ و $$e(t)$$ همگرا شود، ممکن است این همگرایی به صفر نباشد و سبب یک خطای ثابت شود.
البته این مورد را میتوان اصلاح کرد. از آنجایی که $$u$$ سیگنالی است که به آن دسترسی داریم، میتوانیم از آن به عنوان ورودی مشاهدهگر استفاده کرده و جمله $$ B u $$ را از $$ \dot{x} $$ حذف کنیم.
اکنون میخواهیم ساختار مشاهدهگر را تغییر دهیم:
$$ \large \begin {align*}
\dot { \widehat { x } } & = ( A - L C ) \widehat { x } + L y + B u \\
\dot { e } & = \dot { x } - \dot { \widehat { x } } \\
& = A x + B u - \left [ ( A - L C ) \widehat { x } + L C x + B u \right ] \\
& = ( A - L C ) e .
\end {align*} $$
میبینیم که جمله $$ B u $$ در دینامیک $$e$$ حذف شده است. در نتیجه، سه معادله دینامیکی داریم که به ترتیب، معادله سیستم، مشاهدهگر و خطای تخمین هستند:
$$ \large \begin {align*}
\text {System: } \, & \dot { x } = A x + B u , \\
& y = C x . \\
\text {Observer: } \, & \dot { \widehat { x } } = ( A - L C ) \widehat { x } + L y + B u . \\
\text {Error: } \, & \dot { e } = ( A - L C ) e .
\end {align*} $$
با توجه به مشاهدهپذیری، میتوانیم مقادیر ویژه $$ A-LC$$ را به صورت دلخواه تعیین کنیم. این مقادیر ویژه باید دور از محور موهومی و در سمت چپ آن باشند تا خطا سریعاً به صفر کاهش پیدا کند. با توجه به کنترلپذیری، میتوانیم مقادیر ویژه $$ A - B K$$ را به صورت دلخواه تعیین کنیم.
بنابراین، کنترل کننده حاصل مبتنی بر تخمین حالت $$ \hat{x} $$ به صورت زیر است:
$$ \large \begin{align*}
u = - K\widehat{x} \quad
\end{align*} $$
و سیستم مشاهدهگر-کنترلکننده به صورت زیر خواهد بود:
$$ \large \begin {align*}
\dot { \widehat { x } } & = ( A - L C ) \widehat { x } + L y + B \underbrace { ( - K \widehat { x } ) } _ { = u } \\
& = ( A - L C - B K ) \widehat { x } + L y , \\
u & = - K \widehat { x } . \hspace {5cm}
\end {align*} $$
سیستم بالا یک سیستم دینامیکی با ورودی $$y$$ (خروجی مدل فضای حالت) و خروجی $$u$$ (ورودی مدل فضای حالت) است. زیرسیستم مشاهدهگر-کنترلکننده در شکل زیر مشخص شده است.
برای محاسبه تابع تبدیل از $$y$$ به $$u$$، از زیرسیستم مشاهدهگر-کنترلکننده تبدیل لاپلاس میگیریم:
$$ \large \begin {align*}
\dot { \widehat { x } } & = ( A - L C - B K ) \widehat { x } + L y , \\
u & = - K \widehat { x }
\end {align*} $$
بنابراین، داریم:
$$ \large \begin {align*}
s \widehat { X } & = ( A - L C - B K ) \widehat { X } + L Y , \\
U & = - K \widehat { X } . \\
\implies U & = \underbrace { - K ( s I -A + L C + B K ) ^{ - 1 } L} _ { : =D ( s ) } Y .
\end {align*} $$
در نهایت، تابع تبدیل برابر است با:
$$ \large D ( s ) = - K ( s I - A + L C +B K ) ^ { - 1 } L $$
صحت عملکرد فیدبک خروجی
وقتی $$ y = x $$، یعنی حالت $$x$$ از اندازهگیری $$y$$ به دست میآید، ورودی کنترل فیدبک حالت کامل $$ u = - K x $$ جایابی قطب مطلوب را انجام میدهد. اما، آیا با کنترل مبتنی بر تخمین $$ u=-K\widehat{x} $$ به اهداف مشابهی خواهیم رسید؟
سیستم کلی حلقهبسته به صورت زیر است:
$$ \large \begin {align*}
\dot { x } & = A x - B K \widehat { x } , \\
\dot { \widehat { x } } & = ( A - L C - B K ) \widehat { x } + L C x .
\end {align*}$$
میتوانیم این معادلات را به فرم ماتریسی و به صورت یک مدل فضای حالت بنویسیم:
$$ \large \begin {align*}
\left ( \begin {matrix} \dot { x } \\ \dot { \widehat { x } } \end {matrix} \right )
= \left ( \begin {matrix} A & - B K \\ L C & A - L C - B K \end {matrix} \right ) \left ( \begin {matrix} x \\ \widehat { x } \end {matrix} \right ) .
\end {align*} \;\;\;\;\; ( 7 ) $$
اما رابطه بین ماتریس معادله (۷) و $$ A - B K $$ چیست؟
اگر از تبدیل خطی برای تبدیل $$ \left( \begin{array}{c} x
\\ \widehat{x} \end{array}\right) $$ به $$ \left( \begin{array}{c} x
\\ e \end{array}\right) $$ استفاده کنیم، داریم:
$$ \large \begin {align*}
\left ( \begin {matrix} x \\ \widehat { x } \end {matrix} \right ) \mapsto \left ( \begin {matrix} x \\ e \end {matrix} \right) & = \left ( \begin {matrix} x \\ x - \widehat { x } \end {matrix} \right ) \\
& = \underbrace { \left ( \begin {matrix} I & 0 \\ I & - I \end {matrix} \right ) } _ { T } \left ( \begin {matrix} x \\ \widehat { x } \end {matrix} \right ) .
\end {align*} $$
چند نکته زیر حائز اهمیت است:
- ماتریس تبدیل $$T$$ وارونپذیر است، زیرا $$T$$ یک ماتریس پایین مثلثی است و دترمینان آن برابر با ضرب درایههای قطر اصلیاش است. بنابراین، نمایش جدید، معادل با نمایش قدیمی است.
- در مختصات جدید، داریم:
$$ \large \begin{align*}
\dot{x} &= Ax - BK\widehat{x} \\
&= (A-BK)x + BK(x-\widehat{x}) \\
&= (A-BK)x + BK e, \;\;\;\;\ \; (8) \\
\dot{e} &= (A-LC)e. \;\;\;\;\; (9)
\end{align*} $$
معادلات (۸) و (۹) نمایشی را ارائه میکنند که مبتنی بر اصل تفکیک است.
بنابراین، میتوان نوشت:
$$ \large \begin {align*}
\left ( \begin {matrix} \dot { x } \\ \dot { e } \end {matrix} \right) & = \underbrace { \left (
\begin {matrix} A - B K \, & \, B K \\
0 \, & \, A - L C \end {matrix} \right ) } _ { \text {upper triangular matrix} } \left ( \begin {matrix} x \\ e \end {matrix} \right ) .
\end {align*} $$
چندجملهای مشخصه حلقهبسته نیز برابر است با:
$$ \large \begin {align*}
\det \left(
\begin {matrix} s I - A + B K \, & \, - B K \\
0 \, & \, s I - A + L C \end {matrix} \right )
= \det \left ( s I - A + B K \right ) \cdot \det \left ( s I -A + L C \right ) .
\end {align*} \;\;\;\;\; (10)$$
با توجه به معادله (۱۰)، اصل تفکیک بیان میکند که مقادیر ویژه حلقهبسته همان اجتماع قطبهای کنترلکننده، یعنی ریشههای $$ \textbf {det}(sI-A+BK) $$ و قطبهای مشاهدهگر، یعنی ریشههای $$ \textbf {det}(sI-A+LC) $$ هستند.
اگر قطبهای مشاهدهگر را چند برابر سریعتر از قطبهای کنترلکننده انتخاب کنیم، آنگاه قطبهای کنترلکننده غالب خواهند بود.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- سیستم کنترل حلقه باز — به زبان ساده
- تقلب نامه (Cheat Sheet) کنترل خطی
- کنترل پیشبین مدل (MPC) — راهنمای جامع
^^
کاربرد های مشاهده گر لونبرگر چیه ؟ یعنی تخمین حالت برای شناسایی خطای سنسور یا چیز دیگه ای ؟ و با چه کنترل گرهایی سازگاره ؟ و بیشتر در چه موارد عملی به کار برده شده ؟
عالی بود ممنون .ولی مخ آدم هنگ میکنه