Controlador Deadbeat

Conhecido também como controlador do tempo mínimo.

Controlador DeadbeatIdeiaExemplo de DeadbeatAmplitudes do sinal atuadorOutras respostas (resposta "programada")Referências sobre Controladores DeadbeatOutras opções para tempo mínimo


Ideia

O objetivo por trás deste tipo de controlador é fazer o sistema entrar em regime permanente o mais rápido possível, por isto é conhecido também como controlador de tempo mínimo.

Suponha qque se consiga acrescentar um controlador digital à um sistema em malha-fechada de tal forma que a resulte:

Isto significa que quando este sistema for exposto à uma entrada degrau unitário, , sua resposta em malha-fechada resulta em:

ou:

deadbeat_17042024_02.jpg

ou seja, a mesmo sinal que um degrau unitário atrasado de um período de amostragem:

deadbeat_17042024_03.jpg

Isto pode ser mais fácil de se obter do que se imagina. Uma opção é que a final contenha apenas um pólo, em , um integrador, o que ainda garantiria erro nulo em regime permanente para sistemas do tipo 0 frente à uma entrada degrau. Isto renderia um RL semelhante ao mostrado abaixo:

deadbeat_17042024_01.jpg

Neste caso, a assumiria um polinômio do tipo:

Esta resulta na seguinte (supondo realimentação unitária):

Então o objetivo no momento de propor o controlador digital para que isto ocorra é fazer com que o mesmo anule todos os zeros e pólos "estáveis" (dentro do círculo unitário) de (planta), acrescentando ainda um pólo em (integrador), já que isto ainda garantiria erro nulo para entrada degrau.

Exemplo de Deadbeat

Testando um caso simples, mas antes "limpando" oworkspace do MATLAB:

Testando um caso simples, seja a planta, :

amostrada à segundos.

Temos que "montar" o controlador que praticamente é uma função transferência inversa da planta, sem incoporar pólos ou zeros instáveis.

Até este ponto seria a tf inversa de , mas note que o grau do numerador é maior que o grau do denominador o que levaria a um controlador antecipativo, que neste caso, exigiria uma amostra futura do sinal de erro ()!.

Falta igualar o grau do numerador com o grau do numerador, normalmente incorporando um integrador, o que, para o caso desta planta (sistema tipo 0), ainda vai garantir erro nulo para regime permanente (rever Teoria do Erro se for o caso).

Continuando o projeto:

Note o cancelamento de termos:

e assim resta apenas:

ou seja, teríamos um RL com apenas 1 pólo de MF, iniciando da posição (integrador).

No MATLAB é possivel realizar estes cancelamentos de termos comuns entre numerador e denominador usando a função minreal():

Então por fim, teremos o RL esperado:

RL_dead_exemplo.png

Falta apenas definir o ganho do controlador. Note que o objetivo seria obter:

(um simples integrador)

o que levaria à :

ou seja, quando (degrau), o sistema irá responder como:

ou seja, , isto é, degrau atrasado de um período de amostragem (ou apenas pelo período de tempo ). Ou seja, obtemos o controlador de tempo mínimo ou deadbeat.

Note que:

Respostas ao degrau, pólo real simples, no plano-z:
step_polo_MF_real.png

Voltando ao caso do nosso exemplo, significa definir o valor de ganho do controlador, de tal forma que o pólo de MF seja posicionado em (na origem), ou: . Assim sendo:

Ou seja, note como terminou a :

Comprovando que a resposta será um degrau atrasado de um período de amostragem:

step_dead_exemplo.png

Amplitudes do sinal atuador

Mas... existe um porém, fique atento para as amplitudes desenvolvidas para o sinal de controle.

Calculando agora as amplitudes desenvolvidas pelo sinal de controle, (ou tendo uma idéia do "esforço de controle"). Para saber mais sobre como na janela de comanddos do MATLAB obter os gráficos de ou , ver: Como obter gráficos de u[k] e e[k] na linha de comandos do Matlab.

E agora podemos observar de que maneira este controlar força a planta à reagir no tempo mínimo:

u_dead_exemplo.png

Note as amplitudes bastantes elevadas (tanto positivas, quanto negativas) desenvolvidas pelo sinal de controle na fase inicial transitória. Perceba que são gerados valores quase 30 vezes maiores que o valor em regime permanente de ().

Outras respostas (resposta "programada")

Outro tipo de resposta ainda pode ser "programada". Por exemplo, para uma referência (entrada) degrau, se espera uma resposta do tipo:

step_deadbeat_ex2.png

ou seja:

o que implica num sinal de erro como:

Mas note que podemos definir a eq. do controlador, em função do erro, e de .

Note que:

Se conhecemos a desejada e conhecemos , temos como projetar C(z).

Antes, a desejada era do tipo: , o que resultava em:

ou seja, a eq. de era o inverso de acrescido de um pólo em .

Agora para obter este sinal de erro, a deve ser do tipo:

Se é uma entrada degrau, então: , e:

, teremos:

Note:

Rende:

step_ftmf_dead_exe2_desejado.png

Continuando, deve ficar:

Como: , então finalmente:

Testando:

E temos o resultado:

step_dead_exe2.png

Por curiosidade, podemos tentar levantar o RL para este sistema:

RL_dead_exe2.png

No gráfico acima pode ficar um pouco complicado para entender o que aconteceu, então vamos "simplificar" um pouco:

E temos um RL mais simplicado, onde os cancelamentos de pólos e zeros "estáveis" de não aparecem:

RL_dead_exe2_simplificado.png

O dados usados para este exemplo estão disponíveis em dead.mat.

 

Referências sobre Controladores Deadbeat

Outras opções para tempo mínimo

Observe que se resulta algo como , podemos tentar fazer o sistema reagir com atraso de amostras de período de amostragem.

Resolvendo o restante no MATLAB:

 

 


Fernando Passold, em 06/05/2025