Introdução

A idéia é criar um documento digital retratando os comandos usados no Matlab, acrescendo referências aos gráficos, equações e comentários, de forma fácil, num arquivo texto compatível com Markdown. Mais sobre Markdown e metodologia sugerida ver: Uso do MATLAB nas aulas de Controle + documentação Markdown → https://fpassold.github.io/Controle_2/sugestao_uso_matlab_em_controle.html

Então, logo depois de iniciar o Matlab, na sua janela de comandos (CLI) vamos dar o seguinte comando:

Isto fará com o que Matlab repasse para o arquivo acima, todos os comandos ingressados na sua CLI.

Projeto de Controladores

Ingressando a Planta

A idéia é trabalhar com uma mesma planta, explorando diferentes tipos de controladores. Percebendo quando certo tipo de ação de controle é mais desejada que outra, percebendo se requisitos de controle podem ser atendidos e percebendo que certas plantas se "casam" melhor com certos tipos de controladores. Então ao invés de mudar de planta cada vez que se muda a ação de controle, vamos projetar vários controladores diferentes para o mesmo tipo de planta, colocando o foco no raciocínio à ser adotado na definição de cada controlador.

Iniciando em: Projeto de Controladores Proporcional e com Ação Integral → https://fpassold.github.io/Controle_2/PI_parte1.html

A planta sugerida é do tipo 0 de 3a-ordem, sem zeros. Algo como:

Onde os pólos e estariam mais próximos do eixo , ou seja, acabam dominando a resposta em relação ao terceiro pólo (que estaria mais afastado dos 2 primeiros).

Suponha então que a planta seja:

Usando Matlab:

initial_step_MA.png

O gráfico nos permite perceber a "velocidade" ou tempo de resposta da planta. E percebemos também o "ganho DC" da planta (valor final, em regime permanente alcançado pela planta) -- apenas 0,025. Ou seja, se a planta recebe um degrau unitário na sua entrada, evolui até seu valor final de 0,025 -- um ganho DC bastante baixo.

Lembrado do Teorema do Valor Final associado com Transformada de Laplace, temos que:

Neste caso, , onde transformada de Laplace do sinal de entrada usado para excitar a planta, no caso, uma entrada degrau unitário, então . Assim temos:

O que resulta:

O que numericamente resulta:

Note que este valor coincide com o valor final atingido pela planta no gráfico anterior.

Como este ganho é muito baixo, vamos acrescentar artificialmente um ganho na nossa planta para modificar este valor. Suponha que queremos que o ganho DC seja de 0,5, então:

Verificando com ajuda do Matlab:

step_MA_G

Resta agora iniciar o projeto de algum controlador, iniciando pelo mais simples, que seria simplesmente um controlador proporcional.

Controlador Proporcional

Este tipo de controlador fecha uma malha de realimentação unitária, simplesmente aplicando um ganho ao sinal de erro no canal de realimentação:

o que implica que a planta vai receber o seguinte tipo de sinal, sinal de controle para a mesma:

onde erro, calculado da seguinte forma:

onde referência usada; resposta planta.

Este controlador simplemente faz:

Mas nenhum projeto de controle pode ser considerado um projeto sem requisitos de controle. Vamos supor neste caso, que queremos:

Iniciando o projeto, levantando o root-locus deste sistema:

Temos então o seguinte RL:

rl_K.png

Notamos que:

Fechando a malha om ganho :

step_K.png

Nota-se:

Falta perceber o erro em regime permanente.

Se , então temos um erro de:

Obviamente percebemos que com este valor de ganho, mantivemos o abaixo do desejado, mas o erro é muito maior que os 10% desejados. Como esta planta é um sistema do tipo 0, a teoria dos erro no informa que sempre haverá erro de regime permanente enquanto não acrescentarmos alguma ação integral. Mas podemos aumentar o valor do ganho para reduzir o valor deste erro. Partindo então um novo projeto de controlador Proporcional.

Controlador Proporcional 2

O objetivo agora é usando teoria do erro calcular valor do ganho para manter erro abaixo do patamar desejado e então verificar o que acontece...

Teoria do erro → https://fpassold.github.io/Controle_2/3_erros/erros.pdf

A planta é um sistema tipo 0, o que significa que o controlador proporcional não é capaz de eliminar erro em regime permanente, já que falta ação integral. Mas podemos deduzir que valor de ganho deveria ser adotado para manter erro abaixo do valor desejado:

(10% para entrada degrau unitário)

Obtendo os valores numéricos com auxílio do Matlab:

O cálculo do pode ser obtido usando a função dcgain(G):

Então:

Ou, usando Matlab:

Fechando a malha e comprovando teoria do erro:

Obtemos o gráfico:

step_K2.png

Comentários:

Conclusão final: o erro foi mantido no limite do desejado, mas o o tempo de resposta aumentou consideravelmente devido à resposta oscilatória do sistema (acima do desejado).

Então não há muito mais a fazer para "melhorar" um controlador proporcional. Poderíamos pensar em zerar o erro em regime permanente, acrescentando ação integral, mas então passamos para um novo tipo de controlador.

Controlador com Ação Integral Pura

O objetivo agora é eliminar o erro de regime permanente mas tentando manter os outros requisitos de controle:

rl_I.png

Realizando zoom na região de interesse (dos pólos dominantes) e definindo ganho do controlador:

rl_I_zoom.png

Algumas considerações:

Notamos que as curvas do RL cruzam a linha guia do correspondendo à quando o ganho se encontra na faixa de ganho igual à 0,93:

step_I.png

Comentários:

Se por acaso fosse usado ganho unitário para a ação integral obteríamos a seguinte resposta:

step_I2.png

Comentário: ganho unitário para ação integral já faz ficar acima do desejado. Porém, como o ganho aumentou, o sistema respondeu um pouco mais rápido: segundos.

Note que acrescentar um pólo na origem (a ação integral) normalmente faz um sistema em MF responder de forma mais lenta (apesar de zerar o erro). Uma forma de "consertar" este problema é fazer a ação Integral trabalhar em paralelo com a ação Proporcional, e assim, estaríamos partindo para um controlador PI.

Controlador PI

Equação geral do PI:

Referências:

Encerrando atividades no Matlab

Vamos continuar o projeto deste controlador na próxima aula. Mas antes de "abandonar" o Matlab vamos gravar os dados já levantados (para facilitar a continuação na próxima aula) e vamos fechar o arquivo "diary" recém criado:


Fernando Passold, em 9/09/2024