top of page

Rodando o MPC 

Vamos finalmente programar o MPC. Veja um sequencia de códigos prontas para serem rodadas no MATLAB!

Código I - Restrições e outros parâmetros para o controlador MPC

As restrições e outros parâmetros tem grande importância no controle MPC. O código I aplica parte desses parâmetros para H1 e H2. Segue o Download do código I:

O código seguinte demonstra como a modelagem do sistema é adquirida e como alguns parâmetros do controlador são direcionados. Primeiro vamos obter a representação de espaço e estados. Para este modelo, nós temos duas condições quanto a modelagem; Na primeira condição temos que o nível de h2 é superior a 0.405m a entrada/vazão q2 ira ser regida por uma situação, caso contrário a vazão será regida por uma outra dinâmica. Devido a essa condição é necessário obter uma representação em espaço e estados para cada situação.

 

 

Código II - Representação em espaço de estados e sintonia do controlador

Segue mais uma vez uma representação do sistema em espaço de estados:

 

 

No código acima podemos ver que os horizontes de predição e controle são selecionados. Estes parâmetros estão destacados em amarelo.

Horizonte de predição igual a 10;

Horizonte de controle igual a 2.

Outros parâmetros importantes que foram alocados no código foram as ponderações q e r. O ganho q representa a importância que o controlador vai apresentar diante da saída referente, enquanto a ponderação r representa a seriedade que o controlador vai realizar sobre as entradas referentes.

Os ganhos q e r:

q = [1,1] ;

r = [0.1,0.1] 

O nosso sistema possui todos os estados mensurados, porém um filtro de Kalman é aplicado no sistema para obter uma redução nos ruídos da medição.

       Código III- Função objetivo no controlador/ Função Custo

 

Você lembra da função custo ótimo que foi apresentada no primeiro post sobre MPC? Se se lembra, então abaixo está implementação da mesma no MATLAB®

 

 

 

 

 

Código IV - S-Function – twotanks

 

Já ouviu falar sobre o S-function ? O S-function é uma linguagem do MATLAB para representar a dinâmica de um bloco do SIMULINK. No presente modelo, usamos uma s-function para representa a dinâmica dos tanques acoplados. Este código foi desenvolvido pelo Professor Doutor Ricardo Kalid. O Algoritmo segue abaixo:

 

Código  V

Uma das principais características do controle MPC é a realização de predição.  Código seguinte realiza estas predições para o nosso sistema

 

 

Então pessoal, já temos uma base legal para aplicar um controlador preditivo baseado em MPC.

Espero que os códigos e os textos sejam de bom proveito!!

Escola politécnica - Universidade Federal da Bahia

Engenharia de controle e automação

  • Facebook Clean Grey
  • Twitter Clean Grey
  • LinkedIn Clean Grey

2018 Grupo de alunos da Universidade Federal da Bahia

bottom of page