Skip to main content
LibreTexts - Ukrayinska

10.1: Моделі змінних стану систем вибіркових даних

  • Page ID
    32209
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Дискретизація моделі змінних стану

    Системні моделі, описані зі змінними стану, можуть бути перетворені в їх еквіваленти дискретного часу, враховуючи утримання нульового порядку (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}.\]