Saltar al contenido principal
LibreTexts Español

10.1: Modelos de Variables de Estado de Sistemas de Datos Muestreados

  • Page ID
    85024
  • \( \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}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Discretización del Modelo de Variable de Estado

    Los modelos de sistema descritos con variables de estado se pueden convertir a sus equivalentes discreto-tiempo considerando una retención de orden cero (ZOH) en la entrada del modelo. El dispositivo ZOH convierte la salida de un controlador digital (una secuencia numérica) en una señal de tiempo continuo constante por piezas manteniendo su salida constante durante períodos de tiempo sucesivos.

    Para desarrollar este enfoque, se dé el modelo de variable de estado de tiempo continuo como:

    \[\dot{x}(t)=Ax(t)+Bu(t)\]

    \[y(t)=Cx(t)\]

    donde\(A\) está la matriz del sistema,\(B\) es la matriz de entrada, y\(C\) es la matriz de salida.

    Para discretizar las ecuaciones de estado de tiempo continuo, consideramos la solución de dominio de tiempo a la ecuación de estado (Capítulo 8) dada en términos de una integral de convolución:

    \[x(t)=e^{A(t-t_{0} )} x_{0} +\int _{t_{0} }^{\tau } e^{A(t-\tau )} B\,u(\tau )\,\rm d\tau \]

    Se supone que el estado del sistema está disponible en\(t_{0} =(k-1)T\); entonces, asumiendo una entrada constante,\(u_k\), el estado at\(t=kT\) se da como:

    \[x_{k} =e^{At} x_{k-1} +\int _{(k-1)T}^{kT} e^{AT} B\,u_{k} \,\rm d\tau\]

    Un simple cambio de variables da como resultado la siguiente expresión:

    \[x_{k} =e^{At} x_{k-1} \; +\int _{0}^{T} e^{AT} d\tau \, B\, u_{k}\]

    Deje que el sistema y las matrices de entrada que aparecen en el modelo de tiempo discreto se definan como:

    \[A_{\rm d} =e^{AT} ,\; \; B_{\rm d} =\int _{0}^{T} e^{A\tau } d\tau B\]

    Luego, después de un cambio de tiempo, el modelo de variable de estado de tiempo discreto se expresa como:

    \[x_{k+1} =A_{\rm d} x_{k} +B_{\rm d} u_{k} ,\; \; \; y_{k} =C_{\rm d} x_{k} .\]

    donde\(C_{\rm d} =C.\)

    Suponiendo que la matriz del sistema\(A\) es invertible, la expresión for\(B_{\rm d}\) puede simplificarse como:

    \[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\]

    El sistema y las matrices de entrada\(\left(A_{\rm d} ,B_{\rm d} \right)\) que aparecen en el modelo de tiempo discreto se parametrizan por el tiempo de muestreo,\(T\). De ahí\(T\) que cambiar cambiará el modelo de tiempo discreto.

    En MATLAB Control Systems Toolbox, se utiliza el comando 'c2d' para la discretización de un modelo de variable de estado; se asume la presencia de un ZOH en la entrada, pero hay otras opciones disponibles.

    Ejemplo\(\PageIndex{1}\)

    El modelo de variable de estado de un motor de CC se da como:

    \[\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]\]

    Let\(T=0.02\; \rm s\), un valor cinco veces más rápido que la constante de tiempo del motor dominante:\(\tau _\rm m \cong 0.1\; \rm s.\); entonces, el sistema y las matrices de entrada para el modelo discreto se calculan como:

    \[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]\]

    El modelo de variable de estado discreto resultante se da como:

    \[\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]\]

    Se obtiene un modelo de variable de estado alternativo del motor de CC utilizando el comando 'ss' en MATLAB Control Systems Toolbox para realizar la función de transferencia del motor; el modelo se da como:

    \[\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]\]

    Mediante el uso del comando 'c2d' de MATLAB, se obtiene el modelo de tiempo discreto correspondiente como:

    \[\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]\]

    Las dos variables de estado discreto-tiempo del motor de CC son equivalentes, es decir, ambas comparten los mismos valores propios\(z\) -plano:\(\ z_{1,2}=0.814,\ 0.136\); estos valores están relacionados con los valores propios del sistema analógico:\(s_{1,2}=-99.7,\ -10.28\) por la relación:\(z=e^{Ts}\).

    Solución iterativa para ecuaciones de estado discreto

    Las ecuaciones de estado de tiempo discreto constituyen un conjunto de ecuaciones de diferencia de primer orden que pueden resolverse fácilmente por iteración. Hacia este fin, dejemos que la ecuación de estado discreto se dé como:

    \[x_{k+1} =A_{\rm d} x_{k} +B_{\rm d} u_{k} , \;\;y_{k} =C_{\rm d} x_{k} \]

    Partiendo de un vector inicial\(x_0\), y dada una secuencia de entrada\(u\left\{k\right\}\), se desarrolla una solución iterativa a la ecuación de estado discreto de la siguiente manera:

    \[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} \]

    Vamos a\(\Phi (k)=A_{\rm d}^{k}\) definir la matriz discreta de transición de estado; entonces, la solución se da como:

    \[x_{n} =\Phi (n)x_{0} +\sum _{k=0}^{n-1} \Phi (n-1-k)B_{\rm d} u_{k} \]

    Ejemplo\(\PageIndex{2}\)

    El modelo de variable de estado discreto de un motor de CC (\(T=0.02s\)) se da como:

    \[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]\]

    Suponiendo cero condiciones iniciales y una secuencia de entrada de unidad:\(u_{k} =\{ 1,\; 1,\ldots \} ;\) la secuencia de salida se calcula iterativamente como:

    \[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 \}\]

    La función de transferencia de pulsos

    La función de transferencia de impulsos\(G(z)\), de un sistema de datos muestreados se puede obtener a partir de ecuaciones de estado discreto mediante la aplicación de\(z\) -transform:

    \[zx(z)-zx_{0} =A_{\rm d} x(z)+B_{\rm d} u(z)\]

    La ecuación anterior se resuelve asumiendo cero condiciones iniciales para obtener:

    \[x(z)=(zI-A_{\rm d} )^{-1} B_{\rm d} u(z)\]

    La ecuación de salida se define como:

    \[y(z)=C_{\rm d} (zI-A_{\rm d} )^{-1} B_{\rm d} u(z)=G(z)u(z)\]

    Dadas las ecuaciones de estado discreto, la función de transferencia de impulsos se obtiene como:

    \[G(z)=C_{\rm d} (zI-A_{\rm d} )^{-1} B_{\rm d} \]

    La matriz discreta de transición de estado se obtiene tomando la\(z\) transformada inversa de\((zI-A_{\rm d} )^{-1}\) como:

    \[\phi (k)=z^{-1} \left\{(zI-A_{\rm d} )^{-1} \right\}=A_{\rm d}^{k} \]

    En términos de la matriz de transición de estado, la respuesta unidad-pulso el sistema de datos muestreados se obtiene como:

    \[g_{k} =C_{\rm d} A_{\rm d}^{k-1} B,\; \; k\ge 0 \]

    En MATLAB Control System Toolbox, la función de transferencia de pulsos para un modelo de variable de estado discreto dado se puede obtener invocando el comando 'tf'.

    Ejemplo\(\PageIndex{3}\)

    El modelo de variable de estado discreto de un motor de CC (\(T=0.02s\)) se da como:

    \[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]\]

    Al usar el comando 'tf' en MATLAB, la función de transferencia de impulsos del motor se obtiene como:

    \[G\left(z\right)=\frac{0.053z+0.0257}{z^2-0.95z+0.111}.\]


    This page titled 10.1: Modelos de Variables de Estado de Sistemas de Datos Muestreados is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Kamran Iqbal.