Controle por Alocação de Polos: Servosistemas - Sem Integrador
Sistemas de Controle II
Prof. Dr. Raphael Teixeira
Universidade Federal do Pará
Do Regulador ao Servosistema
O regulador por alocação de polos leva os estados à origem: \(u = -Kx\)
Limitação: e se a referência desejada for \(r(t) \neq 0\) ?
Regulador puro
\[u(t) = -Kx(t)\]
Objetivo: \(x(t) \to 0\)
Referência: \(r = 0\)
Em regime: \(y_{ss} = 0\)
Servosistema (sem integrador)
\[u(t) = -Kx(t) + k_r\,r(t)\]
Objetivo: \(y(t) \to r(t)\)
Referência: \(r \neq 0\)
Em regime: \(y_{ss} = r\) (se \(k_r\) correto)
Como calcular \(K\) (alocação de polos) e \(k_r\) (pré-compensação) para que \(y_{ss} = r\) ?
Estrutura do Servosistema Sem Integrador
A lei de controle incorpora a referência \(r\) diretamente via ganho de pré-compensação \(k_r\) :
\[\boxed{u(t) = -Kx(t) + k_r\,r(t)}\]
Substituindo em \(\dot{x} = Ax + Bu\) :
\[\dot{x}(t) = \underbrace{(A - BK)}_{\text{malha fechada}}\,x(t) + \underbrace{B\,k_r\,r(t)}_{\text{entrada ref.}}\]
\[y(t) = Cx(t)\]
\(K\) — alocação de polos:
determina a dinâmica transitória (\(\omega_n\) , \(\zeta\) , tempo de assentamento)
\(k_r\) — pré-compensação:
ajusta o ganho DC para que \(y_{ss} = r\) em regime permanente
Diagrama de Blocos
O ganho \(k_r\) escala a referência na entrada da malha — não há realimentação do erro. A estrutura é idêntica ao regulador com um bloco de pré-filtro adicionado.
Análise do Regime Permanente
Para uma referência constante \(r(t) = r_0\) , em regime permanente \(\dot{x} = 0\) :
\[(A - BK)\,x_{ss} + B\,k_r\,r_0 = 0\]
\[x_{ss} = -(A - BK)^{-1}\,B\,k_r\,r_0\]
A saída em regime é:
\[y_{ss} = C\,x_{ss} = -C(A - BK)^{-1}B\,k_r\,r_0\]
Erro estacionário:
\[e_{ss} = r_0 - y_{ss} = \left[1 + C(A-BK)^{-1}B\,k_r\right]r_0\]
\[e_{ss} = 0 \quad \Longleftrightarrow \quad C(A-BK)^{-1}B\,k_r = -1\]
Cálculo do Ganho de Pré-compensação \(k_r\)
Da condição \(e_{ss} = 0\) , impõe-se \(y_{ss} = r_0\) :
\[-C(A - BK)^{-1}B\,k_r = 1\]
Isolando \(k_r\) :
\[\boxed{k_r = \dfrac{-1}{C\,(A - BK)^{-1}\,B}}\]
kr <- - 1 / (C %*% solve (A - B %*% K) %*% B)
kr = - 1 / (C * inv (A - B * K ) * B );
\(K\) deve ser calculado primeiro pela alocação de polos — \(k_r\) depende de \(K\) .
Abordagem de Ogata
Quando \(x_1 = y\) (primeiro estado é a saída), a lei de controle pode ser escrita em termos do erro \(e = r - y\) :
\[u = -k_1(x_1 - r) - k_2 x_2 - \cdots - k_n x_n\]
\[= -\underbrace{\begin{bmatrix}k_1 & k_2 & \cdots & k_n\end{bmatrix}}_{K}\,x + k_1\,r\]
Portanto, nesta estrutura: \(k_r = k_1\)
Interpretação
O ganho \(k_1\) faz dois papéis simultaneamente:
retroalimenta o estado \(x_1 = y\)
escala a referência \(r\)
Restrição
Isso é equivalente a \(u = -Kx + k_r r\) apenas quando \(k_r = k_1\) .
Em geral, \(k_r\) deve ser calculado pela fórmula geral — a coincidência \(k_r = k_1\) depende do sistema.
Procedimento de Projeto
Modelar o sistema em espaço de estados: \((A, B, C)\)
Verificar controlabilidade : \(\text{rank}(\mathcal{C}) = n\)
Especificar os polos desejados \(\{p_1, p_2, \ldots, p_n\}\) com base nos requisitos de desempenho
Calcular \(K\) por alocação de polos (Ackermann, equação de Sylvester, ou comparação de coeficientes)
Calcular \(k_r\) : \(\quad k_r = -1\,/\,\bigl[C(A-BK)^{-1}B\bigr]\)
Verificar : simular a resposta ao degrau e confirmar \(y_{ss} = r\)
Sobre a escolha dos polos
Os polos de malha fechada determinam \(\omega_n\) e \(\zeta\) . Regras práticas: \(\zeta \approx 0{,}7\) para compromisso sobressinal/tempo de assentamento; polos complexos conjugados com parte real suficientemente negativa para atender ao tempo de assentamento desejado.
Exemplo: Sistema de 2ª Ordem
Planta: \(G(s) = \dfrac{1}{s^2 + 3s + 2}\) — polos de malha aberta em \(s = -1\) e \(s = -2\)
Representação em espaço de estados (forma canônica controlável):
\[A = \begin{bmatrix} 0 & 1 \\ -2 & -3 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 1 \end{bmatrix}, \quad C = \begin{bmatrix} 1 & 0 \end{bmatrix}\]
Especificação: polos desejados \(p_1 = -4\) , \(p_2 = -5\)
Polinômio desejado: \((s+4)(s+5) = s^2 + 9s + 20\)
Polinômio de malha fechada:
\[\det(sI - (A - BK)) = s^2 + (3 + k_2)s + (2 + k_1) = s^2 + 9s + 20\]
Comparando coeficientes: \(\quad k_1 = 18, \quad k_2 = 6 \quad \Rightarrow \quad K = \begin{bmatrix}18 & 6\end{bmatrix}\)
Exemplo: Cálculo de \(k_r\)
Com \(K = [18,\; 6]\) :
\[A - BK = \begin{bmatrix} 0 & 1 \\ -20 & -9 \end{bmatrix}\]
\[(A - BK)^{-1} = \frac{1}{20}\begin{bmatrix} -9 & -1 \\ 20 & 0 \end{bmatrix}\]
\[C(A-BK)^{-1}B = \begin{bmatrix}1 & 0\end{bmatrix} \cdot \frac{1}{20}\begin{bmatrix} -9 & -1 \\ 20 & 0 \end{bmatrix} \cdot \begin{bmatrix}0\\1\end{bmatrix} = \frac{1}{20}\begin{bmatrix}-9 & -1\end{bmatrix}\begin{bmatrix}0\\1\end{bmatrix} = -\frac{1}{20}\]
\[\boxed{k_r = \dfrac{-1}{-1/20} = 20}\]
\(y_{ss} = -C(A-BK)^{-1}B \cdot k_r \cdot r = \dfrac{1}{20} \cdot 20 \cdot r = r \quad \checkmark\)
Simulação em R
library (deSolve)
A <- matrix (c (0 ,- 2 , 1 ,- 3 ), 2 , 2 )
B <- matrix (c (0 , 1 ), 2 , 1 )
C <- matrix (c (1 , 0 ), 1 , 2 )
K <- matrix (c (18 , 6 ), 1 , 2 )
Acl <- A - B %*% K
kr <- - 1 / as.numeric (C %*% solve (Acl) %*% B) # kr = 20
servo <- function (t, x, p) list (as.vector (Acl %*% x + B * kr))
sol <- ode (y = c (0 , 0 ), times = seq (0 , 3 , 0.01 ), func = servo, parms = NULL )
y <- C %*% t (sol[, 2 : 3 ])
plot (sol[,1 ], y, type= "l" , lwd= 2 , col= "#2563eb" ,
xlab= "Tempo (s)" , ylab= "y(t)" , ylim= c (0 , 1.2 ),
main= sprintf ("Resposta ao degrau | K = [18, 6], kr = %.0f" , kr))
abline (h= 1 , col= "#dc2626" , lty= 2 , lwd= 1.5 )
legend ("bottomright" , c ("y(t)" , "referência r = 1" ),
col= c ("#2563eb" ,"#dc2626" ), lty= c (1 ,2 ), lwd= 2 , bty= "n" )
Limitações do Servosistema Sem Integrador
A pré-compensação \(k_r\) garante \(y_{ss} = r\) apenas com o modelo exato e sem perturbações .
Perturbação na entrada
\[\dot{x} = (A-BK)x + Bk_r r + Bd\]
A perturbação \(d\) desloca o ponto de operação — o \(k_r\) calculado não elimina o erro residual causado por \(d\) .
Incerteza paramétrica
Se os parâmetros reais de \((A, B, C)\) diferem do modelo, \(k_r\) é calculado incorretamente e \(y_{ss} \neq r\) .
O servosistema sem integrador é adequado quando:
O modelo é preciso
Não há perturbações estacionárias
Aceita-se pequeno erro residual
Para rejeição de perturbações e erro nulo robusto → servosistema com integrador
Prof. Dr. Raphael Teixeira
raphaelbt@ufpa.br