10.1: Моделі змінних стану систем вибіркових даних
- Page ID
- 32209
Дискретизація моделі змінних стану
Системні моделі, описані зі змінними стану, можуть бути перетворені в їх еквіваленти дискретного часу, враховуючи утримання нульового порядку (ZOH) на вході моделі. Пристрій ZOH перетворює вихід цифрового контролера (числової послідовності) в кусково-постійний сигнал безперервного часу, утримуючи його вихідну постійну протягом послідовних періодів часу.
Для розвитку цього підходу дозвольте задати модель змінної стану безперервного часу у вигляді:
\[\dot{x}(t)=Ax(t)+Bu(t)\]
\[y(t)=Cx(t)\]
де\(A\) - системна матриця,\(B\) - вхідна матриця, а\(C\) - вихідна матриця.
Для дискретизації рівнянь неперервного часового стану розглянуто часовий розв'язок рівняння стану (глава 8), наведене через інтеграл згортки:
\[x(t)=e^{A(t-t_{0} )} x_{0} +\int _{t_{0} }^{\tau } e^{A(t-\tau )} B\,u(\tau )\,\rm d\tau \]
Передбачається, що стан системи доступний за адресою\(t_{0} =(k-1)T\); тоді, припускаючи постійний вхід\(u_k\), стан at\(t=kT\) задається як:
\[x_{k} =e^{At} x_{k-1} +\int _{(k-1)T}^{kT} e^{AT} B\,u_{k} \,\rm d\tau\]
Проста зміна змінних призводить до наступного виразу:
\[x_{k} =e^{At} x_{k-1} \; +\int _{0}^{T} e^{AT} d\tau \, B\, u_{k}\]
Нехай системні та вхідні матриці, що з'являються у моделі дискретного часу, будуть визначені як:
\[A_{\rm d} =e^{AT} ,\; \; B_{\rm d} =\int _{0}^{T} e^{A\tau } d\tau B\]
Потім, після зсуву часу, модель змінної стану дискретного часу виражається у вигляді:
\[x_{k+1} =A_{\rm d} x_{k} +B_{\rm d} u_{k} ,\; \; \; y_{k} =C_{\rm d} x_{k} .\]
де\(C_{\rm d} =C.\)
Припускаючи, що системна матриця\(A\) є оборотною, вираз for\(B_{\rm d}\) можна спростити як:
\[B_{\rm d} =\left[\int _{0}^{T} \left(I+A\tau +\frac{A^{2} \tau ^{2} }{2!} +\ldots \right)d\tau \right]=\left(IT+\frac{AT^{2} }{2!} +\ldots \right)B=A^{-1} (e^{AT} -I)B\]
Системні та вхідні матриці,\(\left(A_{\rm d} ,B_{\rm d} \right)\) що з'являються в дискретно-часовій моделі, параметризуються часом вибірки,\(T\). Отже, зміна\(T\) змінить модель дискретного часу.
У наборі інструментів MATLAB Control Systems команда 'c2d' використовується для дискретизації моделі змінної стану; передбачається наявність ZOH на вході, але доступні інші параметри.
Приклад\(\PageIndex{1}\)
Модель змінної стану двигуна постійного струму наведена як:
\[\frac{\rm d}{\rm dt} \left[\begin{array}{c} {i_{a} } \\ {\omega } \end{array}\right]=\left[\begin{array}{cc} {-100} & {-5} \\ {5} & {-10} \end{array}\right]\left[\begin{array}{c} {i_{a} } \\ {\omega } \end{array}\right]+\left[\begin{array}{c} {100} \\ {0} \end{array}\right]V_{a} , \;\;\omega =\left[\begin{array}{cc} {0} & {1} \end{array}\right]\left[\begin{array}{c} {i_{a} } \\ {\omega } \end{array}\right]\]
Нехай\(T=0.02\; \rm s\), значення в п'ять разів швидше, ніж домінуюча постійна рухового часу:\(\tau _\rm m \cong 0.1\; \rm s.\); потім, система і вхідні матриці для дискретної моделі обчислюються як:
\[A_{\rm d} =e^{At} =\left[\begin{array}{cc} {0.134} & {-0.038} \\ {0.038} & {0.816} \end{array}\right], B_{\rm d} =A^{-1} \left(e^{At} -I\right)B=\left[\begin{array}{c} {0.863} \\ {0.053} \end{array}\right]\]
Отримана дискретна модель змінної стану задається як:
\[\left[\begin{array}{c} {i_{k+1} } \\ {\omega _{k+1} } \end{array}\right]=\left[\begin{array}{cc} {0.134} & {-0.038} \\ {0.038} & {0.816} \end{array}\right]\left[\begin{array}{c} {i_{k} } \\ {\omega _{k} } \end{array}\right]+\left[\begin{array}{c} {0.863} \\ {0.053} \end{array}\right]V_{k} , \;\; y_{k} =\left[\begin{array}{cc} {0} & {1} \end{array}\right]\left[\begin{array}{c} {i_{k} } \\ {\omega _{k} } \end{array}\right]\]
Модель змінної змінної стану двигуна постійного струму отримано за допомогою команди «ss» в наборі інструментів MATLAB Control Systems для реалізації функції передачі двигуна; модель задається як:
\[\left[ \begin{array}{c} {\dot{x}}_1 \\ {\dot{x}}_2 \end{array} \right]=\left[ \begin{array}{cc} -110 & -32.03 \\ 32 & 0 \end{array} \right]\left[ \begin{array}{c} x_1 \\ x_2 \end{array} \right]+\left[ \begin{array}{c} 4 \\ 0 \end{array} \right]V_a,\ \ \omega =\left[ \begin{array}{cc} 0 & 3.906 \end{array} \right]\left[ \begin{array}{c} x_1 \\ x_2 \end{array} \right]\]
За допомогою команди MATLAB 'c2d' отримується відповідна дискретна модель часу у вигляді:
\[\left[\begin{array}{c} {x_{1,\,k+1} } \\ {x_{2,\,k+1} } \end{array}\right]=\left[\begin{array}{cc} {0.058} & {-0.243} \\ {0.243} & {0.892} \end{array}\right]\left[\begin{array}{c} {x_{1,\,k} } \\ {x_{2,\,k} } \end{array}\right]+\left[\begin{array}{c} {0.030} \\ {0.013} \end{array}\right]\, u_{k} , \;\;y_{k} =\left[\begin{array}{cc} {0} & {3.91} \end{array}\right]\left[\begin{array}{c} {x_{1,\,k} } \\ {x_{2,\,k} } \end{array}\right]\]
Дві змінні дискретного часу стану двигуна постійного струму еквівалентні, тобто вони обидва мають однакові власні значення\(z\) -площини:\(\ z_{1,2}=0.814,\ 0.136\); ці значення пов'язані з власними значеннями аналогової системи:\(s_{1,2}=-99.7,\ -10.28\) за співвідношенням:\(z=e^{Ts}\).
Ітераційне розв'язання дискретних рівнянь стану
Рівняння дискретно-часового стану складають набір різницевих рівнянь першого порядку, які можуть бути легко розв'язані за допомогою ітерації. З цією метою нехай дискретне рівняння стану буде дано як:
\[x_{k+1} =A_{\rm d} x_{k} +B_{\rm d} u_{k} , \;\;y_{k} =C_{\rm d} x_{k} \]
Починаючи з початкового вектора і заданої вхідної послідовності\(u\left\{k\right\}\), ітераційне рішення дискретного рівняння стану розробляється наступним чином:\(x_0\)
\[x_{1} =A_{\rm d} x_{0} +B_{\rm d} u_{0}\]
\[x_{2} =A_{\rm d} ^{2} x_{0} +A_{\rm d} B_{\rm d} u_{0} +B_{\rm d} u_{1}\]
\[\vdots\]
\[x_{n} =A_{\rm d}^{n} x_{0} +\sum _{k=0}^{n-1} A_{\rm d}^{n-1-k} B_{\rm d} u_{k} \]
Дозвольте\(\Phi (k)=A_{\rm d}^{k}\) визначити дискретну матрицю переходу стану; потім, розв'язок задається як:
\[x_{n} =\Phi (n)x_{0} +\sum _{k=0}^{n-1} \Phi (n-1-k)B_{\rm d} u_{k} \]
Приклад\(\PageIndex{2}\)
Модель дискретної змінної стану двигуна постійного струму (\(T=0.02s\)) наведена як:
\[A_{\rm d} =\left[\begin{array}{cc} {0.134} & {-0.038} \\ {0.038} & {0.816} \end{array}\right],\; \; B_{\rm d} =\left[\begin{array}{c} {0.863} \\ {0.053} \end{array}\right],\; \; C_{\rm d} =\left[\begin{array}{cc} {0} & {1} \end{array}\right]\]
Припускаючи нульові початкові умови та одинично-вхідну\(u_{k} =\{ 1,\; 1,\ldots \} ;\) послідовність: вихідна послідовність ітераційно обчислюється як:
\[y\left\{k\right\}=\{0,\ 0.053,\ 0.128,\ 0.194,\ 0.249,\ 0.293,\ 0.329,\ 0.359,\ 0.383,\ 0.402,\ 0.418,\dots \}\]
Функція передачі імпульсів
Функцію передачі імпульсів системи вибіркових даних можна отримати з дискретних рівнянь стану шляхом застосування\(z\) -перетворення:\(G(z)\)
\[zx(z)-zx_{0} =A_{\rm d} x(z)+B_{\rm d} u(z)\]
Вищевказане рівняння вирішується за умови нульових початкових умов для отримання:
\[x(z)=(zI-A_{\rm d} )^{-1} B_{\rm d} u(z)\]
Вихідне рівняння визначається як:
\[y(z)=C_{\rm d} (zI-A_{\rm d} )^{-1} B_{\rm d} u(z)=G(z)u(z)\]
З урахуванням дискретних рівнянь стану функція передачі імпульсів виходить у вигляді:
\[G(z)=C_{\rm d} (zI-A_{\rm d} )^{-1} B_{\rm d} \]
Матриця дискретного переходу стану отримується шляхом прийняття оберненого\(z\) перетворення\((zI-A_{\rm d} )^{-1}\) як:
\[\phi (k)=z^{-1} \left\{(zI-A_{\rm d} )^{-1} \right\}=A_{\rm d}^{k} \]
За матрицею переходу стану одинично-імпульсна реакція системи вибіркових даних отримується у вигляді:
\[g_{k} =C_{\rm d} A_{\rm d}^{k-1} B,\; \; k\ge 0 \]
У наборі інструментів MATLAB Control System функцію передачі імпульсів для заданої моделі змінної дискретного стану можна отримати шляхом виклику команди 'tf'.
Приклад\(\PageIndex{3}\)
Модель дискретної змінної стану двигуна постійного струму (\(T=0.02s\)) наведена як:
\[A_{\rm d} =\left[\begin{array}{cc} {0.134} & {-0.038} \\ {0.038} & {0.816} \end{array}\right],\; \; B_{\rm d} =\left[\begin{array}{c} {0.863} \\ {0.053} \end{array}\right],\; \; C_{\rm d} =\left[\begin{array}{cc} {0} & {1} \end{array}\right]\]
Використовуючи команду 'tf' в MATLAB, функція передачі імпульсів двигуна отримується як:
\[G\left(z\right)=\frac{0.053z+0.0257}{z^2-0.95z+0.111}.\]
