Seja um sistema de 1a-ordem do tipo:
Este processo incorporado numa malha digital de controle deve incluir o sustentador de ordem zero (ou Z.O.H. = Zero Holder Order), através da equação:
o que neste caso resulta:
Resolvendo a parte por frações parciais temos:
onde:
Ou seja:
Voltando ao cálculo de , e consultando uma tabela de transformadas teremos:
ou:
Finalizando o cálculo de , teremos:
Note que o termo: , porque período de amostragem (fixo) e constante de tempo do sistema de 1a-ordem (fixo).
Se vamos supor um sistema de 1a-ordem com e constante de tempo de 1 minuto (= 60 segundos), teremos a princípio o sistema (em malha-aberta):
No Matlab:
x
>> tau=60;
>> G=tf(1,[tau 1]);
>> zpk(G)
0.016667
-----------
(s+0.01667)
Continuous-time zero/pole/gain model.
>> 1/60
ans =
0.0167
>> zpk(G)
0.016667
-----------
(s+0.01667)
Continuous-time zero/pole/gain model.
>>
O sistema anterior em malha-aberta com entrada degrau converge para , conforme pode ser visto na figura à seguir (ou seja, o ganho estático deste sistema é unitário).
Fechando a malha, ainda no mundo contínuo, com controlador Proporcional de ganho unitário resulta no sistema:
Simulando a resposta para entrada degrau unitário teremos:
xxxxxxxxxx
>> ftmf=feedback(1*G,1);
>> figure; step(ftmf); grid
Notamos que existe um erro de regime permanente de “apenas” 50%. Isto se deve a falta de um integrador na malha fechada capaz de garantir erro nulo em regime permanente. Este controlador (simples) não vai permitir anular o erro de regime permanente, apenas vamos reduzir o erro conforme aumentamos o valor do ganho do controlador Proporcional, mas nunca vamos zerar este erro.
A fim de reduzir o erro, vamos fechar a malha com ganho do controlador proporcional :
xxxxxxxxxx
>> Kp=10;
>> ftmf10=feedback(Kp*G,1);
>> figure; step(ftmf10); grid
E então obtemos a figura:
E notamos visualmente que o erro em regime permanente baixa para uns 10%.
A simulação deste sistema [sistema_1a_ordem_analogico.slx] usando Simulink fica:
Se for para passar o sistema contínuo anterior para o “mundo digital”, necessitamos calcular , incorporando o sustentador de ordem zero ().
Como nosso sistema é lento ( segundos), digitalizar este sistema usando como período de amostragem 5 segundos para um bom valor (), o que resulta numa frequência de amostragem de Hz (suficiente para este processo).
As equações para este sistema digitalizado ficariam:
Resolvendo analiticamente:
De desenvolvimento no início deste documento:
substituindo valores teremos:
que resulta nos valores:
xxxxxxxxxx
>> exp(-5/60)
ans =
0.9200
>> (1-exp(-5/60))
ans =
0.0800
ou:
O Matlab permite calcular diretamente usando-se a função cd2():
x
>> T=5;
>> BoG=c2d(G,T);
>> zpk(BoG)
0.079956
--------
(z-0.92)
Sample time: 5 seconds
Discrete-time zero/pole/gain model.
>>
Note que foi criada um novo objeto transfer function BoG
e o próprio Matlab já incorporou o valor do período amostragem adotado à própria transfer function.
Esta planta pode ser simulada num sistema equivalente no mundo digital [sistema_1a_ordem_digital.slx] ficando então:
Obs.: Note que é necessário informar o período de amostragem adotado, no bloco do ZOH, parâmetro “sampling time”.
A simulação deste sistema resulta em:
Que se assemelha ao resultado da simulação realizada anteriormente do sistema completamente analígico.
Note que este sistema pode ser simulado usando-se apenas a janela de comandos do Matlab (“CLI"):
xxxxxxxxxx
>> ftmf10d=feedback(Kp*BoG,1); % versão digital da MF
>> figure; step(ftmf10d); grid
E teríamos obtido o gráfico:
Os 2 sistemas, analógico e digital podem se simulados ao mesmo tempo [sistema_1a_ordem_analogico_e_digital.slx]:
- Mas o que acontece se esquecermos o Sustentador de Ordem Zero?
Neste caso, em que a equação do controlador é a mesma no mundo analógico e digital (ainda náo foram incorporados nenhum pólo ou zero; nenhuma ação integral ou derivativa foi acrescentada ainda), não há forma de simular a falta do sustentador de ordem zero no Matlab/Simulink sem que o mesmo não “confunda” a simulação com um sistema puramente continuo.
Mais tarde, quando nosso controlador começar a incorporar seus pólos e zeros, a falta ou esquecimento do bloco Z.O.H. poderá ser comprovada.
Fernando Passold, em 31.03.2021