• Nenhum resultado encontrado

Controladores

No documento QoS em servidores HTTP Apache (páginas 55-60)

2.4 Teoria de controlo

2.4.4 Controladores

Um dos pontos nevrálgicos de um sistema de controlo em cadeia fechada é o controlador [44]. Nesta matéria, os controladores PID (Proporcional, Integral, Diferencial) assumem papel de destaque, sendo um dos algoritmos de controlo mais comuns. Estes controladores são desenhados com determinados propósitos/objetivos de controlo. Os objetivos mais comuns são [28]:

Controlo regulador ou “Erro nulo(0)“ 2: Assegura que a saída medida é igual, ou pró- xima, da entrada de referência. Por exemplo, a utilização do servidor HTTP deve ser mantido a 66%. Neste caso, a atenção centra-se nas alterações da entrada de referência, tal como alterar o objetivo de 66% para 75%, caso um quarto servidor esteja disponível; Rejeição de perturbações 3: Assegura que as perturbações que atuam sobre o sistema

não afetam significativamente as saídas medidas. Por exemplo, quando ocorre uma cópia de segurança, ou uma verificação de antivírus num servidor HTTP, a utilização do sistema é mantido a 66%. Este critério difere do controlo regulador no sentido em que o foco está nas alterações das perturbações na entrada e não na referência de entrada [28].

1Do inglês, Overshoot

2Do inglês, Regulatory control

Otimização do sistema : Consiste em obter o “melhor valor” de saída medida. Por exem- plo, ajustar o parâmetro MaxClients no servidor HTTP Apache de modo a minimizar os tempos de resposta.

Outro objetivo importante a salientar é o denominado “Seguimento de referência”1. Nesta situação, o objetivo varia ao longo do tempo e o sistema de controlo deve ser capaz de se adaptar rapidamente e com precisão às diferentes entrada de referência.

A designação de controlador PID advém dos seus três componentes/termos, a saber: P: Termo Proporcional, I: Termo Integral e D: Termo Derivativo.

Controlador Proporcional (P)

O controlador proporcional é o controlo em cadeia fechada mais simples de implementar e é, talvez, o controlador mais comum dentro dos sistemas de controlo em cadeia fechada. Um controlador proporcional consiste simplesmente no cálculo do produto entre o erro e uma constante (contante proporcional, Kp). Este valor é depois injetado no atuador. O termo proporcional (P) é calculado da seguinte forma:

Pout = kpe(t), em que:

Pout: Termo proporcional de saída;

kp: Ganho/Constante proporcional; parâmetro de otimização; e: Erro = objetivo - valor atual medido;

t: Tempo ou tempo instantâneo (presente).

A figura 2.14 mostra o que sucede quando se adiciona um controlador proporcional a um sistema semelhante ao cruise-control de um carro [51].

Para ganhos pequenos (Kp=1) o sistema atinge o objetivo pretendido, mas muito lenta- mente. Aumentar o ganho (Kp=2) aumenta a velocidade com que se atinge o objetivo. Com valores superiores (Kp=5, Kp=10) o sistema ultrapassa o valor pretendido, oscila e leva praticamente o mesmo tempo a atingir o objetivo que com ganhos inferiores (Kp=2). Apresenta, no entanto, mais situações em que o objetivo é ultrapassado. Caso se continuasse a aumentar o ganho, provavelmente o sistema oscilaria ainda mais em torno do objetivo e nunca estabilizaria.

Figura 2.14: Controlador Proporcional com vários valores da constante proporcional (kp). Controlador Integral (I)

O controlo integral é utilizado para adicionar precisão a “longo-prazo” a um controlo em cadeia fechada. É quase sempre utilizado em conjunto com um controlador proporcional. O termo integral (I) é calculado da seguinte forma:

Iout = ki Rt

0 e(τ )dτ, em que: Iout: Termo integral de saída;

ki: Ganho/Constante integral; parâmetro de otimização; t: Tempo ou tempo instantâneo (presente)

e: Erro = objetivo - valor atual medido; τ: Variável dummy de integração.

Um controlador integral, por si só, reduz a estabilidade de um sistema, ou até a destrói [51]. A figura 2.15 mostra um controlador integral puro (Pout = 0) num sistema semelhante ao mencionado no controlador proporcional. É possível constatar que o sistema não estabiliza. Tal como sucedeu no controlador proporcional, para ganhos elevados, o sistema com o con- trolador integral isolado oscila cada vez com maior amplitude, até que eventualmente atinja um determinado limite.

Figura 2.15: Controlador Integral com vários valores da constante integral (ki).

Figura 2.16: Controlador Proporcional-Integral com vários valores da constante proporci- onal (kp) e da constante integral (ki)

Controlador Derivativo (D)

De um modo geral, se um sistema não consegue estabilizar com um controlador proporcional, também não estabiliza com um controlador proporcional-integral. O controlador proporcio- nal está relacionado com o comportamento atual do sistema e o controlador integral com o comportamento passado (histórico) do sistema. Se existisse algum elemento que estimasse o comportamento futuro, então ele poderia ser utilizado para estabilizar o sistema. É esse o objetivo do termo derivativo.

O termo derivativo (D) é calculado da seguinte forma: Dout= kddtde(t)

Dout: Termo diferencial de saída;

kd: Ganho/Constante diferencial; parâmetro de otimização; e: Erro = objetivo - valor atual medido;

O controlador derivativo é muito poderoso, mas é igualmente o mais problemático [51]. Os três problemas que podem existir são: irregularidade de amostragem, ruído e grandes oscilações de frequência.

Controlador Proporcional-Integral-Derivativo (PID)

Neste controlador, os termos proporcional, integral e diferencial são somados para obter a saída do controlador PID. De uma forma simples, podemos apresentar o controlador PID como:

V (t) = Pout+ Iout+ Dout

Definindo u(t) como a saída do controlador, a forma final do controlo PID é: u(t) = V (t) = kpe(t) + ki

Rt

0 e(τ )dτ + kd d dte(t)

A figura 2.17 mostra um sistema de aquecimento com um controlador PID [51]. Neste caso é possível verificar que o sistema tem as características desejadas, isto é: não oscila, é rápido a estabilizar e mantém-se estável.

Figura 2.17: Controlador Proporcional-Integral-Derivativo (PID) com vários valores da constante proporcional (kp), constante integral (ki) e da constante derivativa (kd).

Em seguida apresentamos o algoritmo genérico/”pseudo-código” de um controlador PID: kp = <constanteProporcional>

ki = <constanteIntegral> kd = <constanteDiferencial> valorReferencia = <objetivo> erro = integral = diferencial = 0 Inicio:

erro = valorReferencia − valorAtual integral = integral + erro

def = erro ∗ Kp + integral ∗ Ki + diferencial ∗ Kd valorUltimo = valorAtual

esperar(tempo) GOTO Inicio

Uma das principais dificuldades na definição dos controladores PID reside na definição das várias constantes (Kp, Ki e Kd). Trata-se de um processo que exige experimenta- ção, caracterizando-se frequentemente por “tentativa/erro”. Existem, no entanto, diversos métodos de afinação de controladores PID, tais como os métodos Ziegler-Nichols e o mé- todo Cohen-Coon. Neste trabalho também houve a necessidade de recorrer ao processo de “tentativa/erro” até se conseguir obter estas constantes.

Uma explicação teórica para estimar de que modo a quantificação afeta um sistema em cadeia fechada é extremamente difícil. A solução para esse problema passa por tratar os efeitos da quantificação como ruído [52].

No documento QoS em servidores HTTP Apache (páginas 55-60)

Documentos relacionados