
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!!