Boulders Beach, Cape Town, South Africa

Projeto de Controladores usando técnica de Resposta em Frequencia

Projeto de Controladores usando técnica de Resposta em FrequenciaIntroProjeto de Controlador Proporcional (ou Ajuste de Ganho)Tabelas Gráficos e Procedimento geralExemplo 1: Exemplo 11.1 de NISEResumoAutomatizando o cálculo usando script ch11p1_fer.mExemplo 2: Planta do Estudo de Caso

 

Intro

Material teórico:

Projeto de Controlador Proporcional (ou Ajuste de Ganho)

Este tipo de controlador permite atender no máximo ao especificado para o sistema em MF. A idéia pode ser resumida na figura:

ideia_ajuste_margem_fase.png

Tabelas

Segue tabelas relacionando :

tabela_zeta_PM_OS

Gráficos e

Alguns gráficos como referência de valores:

OS_vx_zeta

OS_vs_Pm

 

Procedimento geral

  1. Em função do desejado, calcular o correspondente fator de amortecimento, :

No Matlab:

  1. Tendo o valor de , calcular a margem de fase requerida, (ou Pm):

No Matlab:

  1. Identificar no Diagrama de Bode do sistema, a frequencia na qual ocorreria a margem de fase desejada, . Eventualmente fica mais fácil descobrir no Diagrama de Fase após realizar o cálculo: , onde corresponde aos ângulos assumidos por . Note que você deve realizar algo como:

    bode_adjust_gain

  2. Modificar o ganho do sitema (ajustar o valor de do ccontrolador proporcional) de forma à que o ponto na qual a frequencia se transforme na margem de fase requerida para este sistema. Para tanto, neste ponto (frequencia = ), o ganho final do sistema em MF (considerando o ganho ) deve ser igual à 1 (ou 0 dB).

 

Exemplo 1: Exemplo 11.1 de NISE

Seja uma planta caracterizada pela função transferência (baseado no exemplo 11.1, de NISE, Norman S., Control Systems Engineering, 7th Edition, Wiley & Sons, 2024. pág 616), para este sistema, encontrar para obter para entrada degrau:

Fig_11_2_NISE

Note que este sistema em especial é do tipo 1 (possui 1 integrador: pólo na origem em ). Neste caso, o erro em regime permanente deste sistema, em malha fechada, para entrada degrau, sempre será nulo.

Continuando...

Entrando com dados no Matlab e levantando Diagrama de Bode deste sistema:

O que rende o gráfico (Diagrama de Bode):

exemplo_1_bode_controle_proporcional.png

Obs.: Se eventualmente o Matlab não iníciar o diagrama de fase para frequêcias abaixo de (1 rad/s), usar o comando: bode(G, {0.01, 10000}) para forçar diagramas de magnitude e fase na faixa de (rad/s).

Também podemos usar a função margin(.) do Matlab:

que gera um Diagrama de Bode ligeiramente modificado como o mostrado abaixo:

exemplo_1_margin_controle_proporcional.png

Porém note que tomar conhecimento das margens de ganho e de fase do sistema original, não importa para a sintonia do controlador Proporcional. Estas informações permanecem apenas como "curiosidades".

Mas... o digrama de Bode nos interessa.

NISE preferiu "fixar" ganho unitário ( ou 0 dB) na frequência 0,1 rad/s, fazendo o . Note o resultado obtido nas próximas figuras:

Fig_2

NISE percebeu que na frequência de rad/s, o ganho original do sistema, era de dB (você pode confirmar isto, criando um "DataTip" no Diagrama de Magnitude no ponto rad/s). Note que NISE aumentou o ganho de forma a fazer o Diagrama de Magnitude passar por 0 dB na frequência rad/s. Note que aumentar o ganho de 11,1 dB equivale à:

,

ou ao valor absoluto:

:

Note que ao fazer , o gráfico da magnitude cruza o ganho unitário (ou de 0 dB) em rad/s, e então até podemos confirmar que a margem de fase, . Acompanhe pela figura anterior onde foram usados os comandos:

Voltando ao projeto...

No caso deste projeto é desejando . Isto Implica na seguinte margem de fase desejada, Pm:

⚠️ Obs.: Note que a eq. original para cálculo da margem de fase em função de resulta num ângulo em rad/s. Na expressão acima para cálculo de Pm foi acrescentando o termo *(180/pi) para transformar rad/s para graus!

Agora para forçar que a margem de fase seja de necessitamos fazer com que o gráfico de magnitude passe por 0 dB na frequência angular () na qual o Diagrama de fase passa por: , ou:

Buscamos no Diagrama de Bode, a frequencia onde o diagrama de Bode, parte da Fase, passe por :

bode_1_Fig_2

O diagrama de fase passa por na frequência rad/s. Nesta mesma frequência, o diagrama de magitude passa pelo valor de ganho de dB. Para esta frequência corresponder ao ponto onde deveria ocorrer a Margem de Fase, o Diagrama de Ganho deveria passar por 0 dB (ganho unitário), o que significa que para este caso, necessitamos aplicar um ganho (o "") de dB, ou em termos de ganho absoluto:

Fechando a malha com este valor de ganho, teremos:

Que gera a figura:

bode_1_Fig_3

Notamos que o ficou abaixo dos 9,5% desejados. Mas temos que lembrar que as equações que definem (estimam), , e foram desenvolvidas para sistemas que em MF resultam em sistemas de 2a-ordem com apenas 2 pólos complexos conjugados. Neste caso, temos um sistema de 3a-ordem:

A título de curiosidade, repare o que acontece com o Diagrama de Bode quando consideramos o ganho :

E temos o gráfico:

bode_1_Fig_4

A curva em azul se refere ao Diagrama de Bode do sistema original (com ) e a curva alaranjada se refere ao sistema adotando o ganho de .

Resumo

Segue resumo do procedimento adotado:

resumo_exemplo_1_controlador_proporcional.png

 

Note que a função transferência desta planta incluia um integrador. Isto significa que o procedimento para projeto de Controlador com Ação Integrativa Pura segue o mesmo procedimento já mostrado anteriormente. ⚠️

 

Automatizando o cálculo usando script ch11p1_fer.m

Todo este procedimento foi "automatizado" por NISE na forma de um script para o Matlab.

Segue código fonte de ch11p1_fer.m (modificado para incluir gráficos mostrando o procedimento).

Explicação:

O script ch11p1_fer.m automatiza o processo, usando a função [M,P]=bode(G,w) para estocar valores de ganho e fase do diagrama de Bode para este sistema, , nos vetores e , em função dos valores de frequencia passados via vetor (que variou entre rad/s, com passo de 0,01 rad/s). Então se calcula o ângulo de fase pelo qual deve passar a planta para alcançarmos a margem de fase desejada, na linha: Ph = -180+Pm, onde Pm corresponde à margem de fase desejada, ou . Depois, um laço for percorre os valores do vetor de fase P buscando a frequencia onde teríamos a marge da fase caso o ganho do sistema fosse igual à 1 ou 0 dB, via teste: if P(k)-Ph <= 0. Quando este ponto é encontrado, o valor do ganho é estocado na variável M e a compensação de ganho requerrida é calculada na variável K, K=1/M. Notar que tanto o vetor M quanto a variável M guardam valores de ganho absolutos e não na escala de dB. A declaração break dentro do if anterior, "quebra" o laço for que varria as frequencias. O restante são cálculos fechando a malha e realizando o teste.

Execução:

 

Exemplo 2: Planta do Estudo de Caso

Pode-se usar o script ch11p1_fer.m com outro tipo de planta, desde que seus dados sejam ingressados no mesmo.

A planta neste caso é:

As linhas do script ch11p1_fer.m devem ser editadas contemplando os dados de outra planta:

Editar as linhas abaixo:

Executando, temos agora:

Repare que as seguintes figuras são geradas:

Figura 1: Diagrama de Bode inicial mostrando ajustes para alançar Margem de Fase desejada:

bode_1_p2_Fig_1

Figura 2: Resposta ao Degrau unitário para sistema em MF adotando ganho encontrado anteriormente ( dB ou 7,61):

bode_1_p2_Fig_2

Figura 3: Diagramas de Bode original x Sistema Modificado com novo valor de ganho:

bode_1_p2_Fig_3

 


🎧

🌊 Fernando Passold 📬 ,