Saltar al contenido principal
LibreTexts Español

3.3: Controladores PI, PD y PID

  • Page ID
    84899
  • \( \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}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    El controlador PID

    El controlador PID es un controlador de propósito general que combina los tres modos básicos de control, es decir, los modos proporcional (P), derivado (D) e integral (I).

    El controlador PID en el dominio del tiempo se describe por la relación:

    \[u(t)=k_{p} +k_{d} \frac{d}{dt} e(t)+k_{i} \int e(t){d}t\]

    El controlador PID tiene una función de transferencia:

    \[K\left(s\right)=k_p+k_ds+\frac{k_i}{s}\]

    Las ganancias del controlador para los tres modos básicos de control se dan como:\(\left\{k_p,\ k_d,\ \ k_i\right\}\). De estos, el término proporcional sirve como controlador estático, el término derivado ayuda a acelerar la respuesta del sistema, y el término integral ayuda a reducir el error de estado estacionario.

    clipboard_ea6f8793907de5aa39ebd3601089ad3e9.png
    Figura\(\PageIndex{1}\): Tres modos básicos de control representados en el controlador PID.

     

    Polinomio característico de bucle cerrado

    Let\(G(s)=\frac{n(s)}{d(s)}\); entonces el polinomio característico de bucle cerrado con un controlador PID en el bucle se da como:

    \[\Delta(s)=s\,d(s)+(k_ds^2+k_ps+k_i)\,n(s)\]

    Para la supresión de ruido, se puede agregar un filtro de primer orden al controlador PID; la función de transferencia del controlador modificada se da como:

    \[K(s)=k_{p} +\frac{k_{i} }{s} +\frac{k_{d} s}{T_{f} s+1} \]

    El filtro además hace que la función de transferencia del controlador sea adecuada y, por lo tanto, realizable mediante una combinación de filtros de paso bajo y paso alto.

    Los objetivos de diseño del sistema de control pueden requerir usar solo un subconjunto de los tres modos de controlador básicos. Las dos opciones comunes, el controlador proporcional-derivado (PD) y el controlador proporcional-integral (PI) se describen a continuación.

    Controlador PD

    Un controlador PD se describe mediante la función de transferencia:\[K(s)=k_{p} +k_{d} s=k_{d} \left(s+\frac{k_{p} }{k_{d} } \right)\]

    Por lo tanto, un controlador PD agrega un solo cero a la función de transferencia de bucle. El polinomio característico de bucle cerrado se da como:

    La contribución de fase del controlador PD aumenta de\(0{}^\circ\) a bajas frecuencias\(90{}^\circ\) a altas frecuencias.

    Por razones prácticas, se puede agregar un poste con una constante de tiempo corta\(T_f\),, al controlador PD. El polo ayuda a limitar la ganancia de bucle a altas frecuencias, lo cual es deseable para el rechazo de perturbaciones. El controlador PD modificado se describe mediante la función de transferencia:

    \[K(s)=k_p+\frac{k_ds}{T_fs+1}\]

    El controlador PD modificado es muy similar a un controlador de fase de primer orden; de manera similar se emplea para mejorar la respuesta transitoria del sistema.

    Ejemplo\(\PageIndex{1}\)

    Un sistema de control ambiental se modela como:\(G(s)=\frac{1}{25s+1}\). El modelo tiene una constante de tiempo de\(25\:sec\).

    Para acelerar la respuesta se diseña un controlador PD con filtro como:\(K(s)=10+\frac{s}{.05s+1}\).

    El sistema de bucle cerrado tiene una constante de tiempo efectiva\(\tau\cong 2.5 \,sec\). La respuesta escalonada del sistema de bucle cerrado se representa a continuación.

    clipboard_ed09288dd0ecf73ec874077cb97a5ae7e.png
    Figura\(\PageIndex{2}\): Respuesta escalonada del sistema de control ambiental de circuito cerrado.

    Controlador PI

    Un controlador PI es descrito por la función de transferencia:\[K(s)=k_{p} +\frac{k_{i} }{s} =\frac{k_{p} (s+k_{i} /k_{p})}{s} \]

    El controlador PI agrega así un polo en el origen (un integrador) y un cero finito al bucle de retroalimentación. La presencia del integrador en el bucle obliga al error a una entrada constante para ir a cero en estado estacionario; por lo tanto, el controlador PI se usa comúnmente en el diseño de servomecanismos.

    El controlador cero normalmente se coloca cerca del origen en el plano s complejo. La presencia de un par polo-cero agrega un polo de sistema de bucle cerrado con una constante de tiempo grande. La ubicación cero se puede ajustar para que la contribución del modo lento a la respuesta general del sistema permanezca pequeña.

    El controlador PI-PD

    Las secciones PD y PI se pueden combinar en un controlador PI-PD como:

    \[K(s)=\left(k_{p} +\frac{k_{i} }{s} \right)\left(1+k_{d} s\right)\;\; {\rm or} \;\; K(s)=\left(k_{p} +k_{d} s\right)\left(1+\frac{k_{i} }{s} \right)\]

    El controlador PI-PD agrega dos ceros y un polo integrador a la función de transferencia de bucle. El cero de la parte PI puede ubicarse cerca del origen; el cero de la parte PD se coloca en una ubicación adecuada para la mejora de la respuesta transitoria deseada.

    El controlador PI-PD es similar a un controlador PID normal que se describe mediante la función de transferencia:

    \[K(s)=k_{p} +k_{d} s+\frac{k_{i} }{s} =\frac{k_{d} s^{2} +k_{p} s+k_{i} }{s} \]

    El controlador PID imparte mejoras de respuesta tanto transitorias como de estado estacionario al sistema. Además, proporciona estabilidad y robustez al sistema de circuito cerrado.

    Afinación del controlador PID

    El ajuste del controlador PID se refiere a la selección de las ganancias del controlador:\(\; \left\{k_{p} ,\; k_{d} ,k_{i} \right\}\) para lograr los objetivos de rendimiento deseados. Los controladores PID industriales a menudo se ajustan usando reglas empíricas, como las reglas Ziegler—Nicholas.

    En MATLAB Control System Toolbox, se crea un objeto controlador PID usando el comando 'pid' que luego se puede ajustar con el comando 'pidtune'. El algoritmo de ajuste de MATLAB PID tiene como objetivo un margen de\(60^{\circ }\) fase que da como resultado un\(10\%\) sobreimpulso moderado.

    Ejemplo\(\PageIndex{2}\)

    Para un motor de CC pequeño, se asumen los siguientes valores de parámetros:\(R=1\, \Omega \; ,\; L=10\, {\rm mH},\; J=0.01\, kg\cdot m^{2} ,\; b=0.1\; \frac{N\cdot s}{rad} ,\; {\rm and}\, k_{t} =k_{b} =0.05\); la función de transferencia del motor de CC desde el voltaje de la armadura hasta la velocidad del motor se aproxima como:\(G\left(s\right)=\frac{500}{\left(s+10\right)\left(s+100\right)}\).

    El controlador PID sintonizado MATLAB para el motor se da como:

    \[K\left(s\right)=3.51+0.037s+\frac{56.2}{s}\]

    El controlador PID sintonizado MATLAB con filtro (PIDF) se da como:

    \[K\left(s\right)=3.26+\frac{0.015s}{0.005s+1}+\frac{54.2}{s}\]

    A continuación se muestra la respuesta del sistema de bucle cerrado para los dos controladores (PID y PIDF) (Figura 3.3.3). La respuesta en ambos casos muestra un tiempo de sedimentación de 0.3seg con 7-8% de sobreimpulso y sin error de estado estacionario.

    clipboard_e1566f908ad4a2be6cf31a71acdaaf32c.png
    Figura\(\PageIndex{3}\): Respuesta unidad-paso del modelo de motor de CC con controladores PID y PIDF.

    3.3: Controladores PI, PD y PID is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by LibreTexts.