Anda di halaman 1dari 19

MPC – MODEL PREDICTIVE CONTROL

1. Breve Histórico

O MPC é um método baseado em controle ótimo, isto é, que seleciona as entradas de controle de forma a
minimizar uma função objetivo. O cálculo da função objetivo baseia-se tanto em valores atuais de saídas do
processo quanto em valores preditos por um MODELO EXPLÍCITO do processo.

Por ser implementado em sistemas digitais, a abordagem é discreta no tempo:

xk+1 = f(xk, uk)


yk= g(xk)

Conhecida a saída atual do processo yk , busca-se um controle que minimize a função objetivo:

N 1
J  (y
k  N |k
)  L( y
j 0
k  j |k
, u k  j|k , u k  j|k )

Na equação acima, y indica o valor no tempo k+N dadas informações até (e incluindo) o instante k,
k  N |k

nitidamente invocando o caráter preditivo da formulação. O termo u k  j|k  u k  j|k  u k  j 1|k , é a velocidade
de controle, incluída na função objetivo, representando limitações na velocidade de atuação do elemento final
de controle.

Dos N movimentos de controle calculados que minimizam a função objetivo acima, apenas o primeiro é
implementado. Quando um nova medição se torna disponível, os parâmetros do problema são atualizados e um
novo problema de otimização é formulado, cuja solução fornece o próximo movimento de controle.

Quando a função objetivo é escrita como:

N 1

y
2 2 2 2
J y y  y  u k  j|k  u ref  u k  j|k )
k  N |k ref Q k  j |k ref Q R S
j 0

onde Q, R e S indicam matrizes de ponderação das normas vetoriais, e o processo for linear, o MPC se torna
um caso de Controle Ótimo Linear Quadrático.

Um Regulador Quadrático Linear (LQR) é proposto para processo descrito em variável de estado(que implica
em uso de variáveis desvio):

x k 1  A x k  Bu k
y  C xk
k

e a função objetivo:

N 1

x
2 2
J k  j |k Q  u k  j |k )
R
j 0
2
x k  j |k  xT Q x
Q

A solução do problema de otimização é um regulador ótimo:


u k  K xk

com a matriz K, obtida da solução da equação a seguir:

K  P C T (C P C T  R) 1
k k k

que utiliza a covariança do estimador de estado, denotada por P , propagada pela Equação de Ricatti:
k

P  AP A T  Q  AP C T (C P C T  R) 1 C P A T
k 1 k k k k

P Q
0 0

O algoritmo tem condições estabilizantes desde que as matrizes Q, R sejam positivas definidas. Contudo, o
LQR teve pouco impacto na indústria de processos devido, principalmente, a:

a) Restrições: um controlador industrial deve ser capaz de manter o sistema próximo de restrições (onde reside
o ótimo) sem violá-las;
b) Não-linearidades dos processos: unidades industriais são normalmente complexas, não-lineares, multi-
variáveis, com comportamento dinâmico variante no tempo (e.g., desativação de catalisador);
c) Incertezas de modelagem (robustez): as aplicações onde LQR logrou sucesso eram em aplicações onde o
desenvolvimento de representação matemática precisa era economicamente viável, e.g. na indústria
aeroespacial. Este não é o caso da indústria de processos.
d) Critério de desempenho ímpar: a indústria de processos apresenta critérios de desempenhos não raramente
difíceis de serem enquadradas no formato LQR.

A indústria de processo, então, desenvolveu uma metodologia de controle baseado em modelo mais geral, na
qual o problema de otimização dinâmica é resolvido on-line a cada execução de controle. As entradas do
processo são calculadas de forma a otimizar o comportamento futuro da planta sobre um intervalo de tempo
conhecido por horizonte de predição. A dinâmica da planta é descrita por um modelo explícito que pode, a
princípio, assumir qualquer forma matemática necessária. As restrições de entrada e saída do processo são
incluídas diretamente na formulação do problema. A esta metodologia, atribuiu-se o termo Tecnologia MPC.

Em uma planta de processos modernas, o MPC é parte de uma estrutura multi-nível de controle. A Figura 1
apresenta o controle descentralizado e o MPC, em uma única planta. Desta experiência industrial alimentou o
desenvolvimento de uma classe de problemas que tem ocupado os teóricos de controle.

IDCOM

A primeira aplicação de MPC foi apresentada por Richalet em 1976, como Controle Heurístico por Modelo
Preditivo (MPHC). O software foi batizado como IDCOM, um anacronismo para Identificação e Comando. As
característica do IDCOM são:

a) modelo de resposta impulsional para a planta;


b) critério de performance quadrático para a planta em um horizonte de predição finito;
c) comportamento futuro da planta especificado por uma trajetória de referência;
d) restrições de entrada e saída incluídas na formulação;
e) entradas ótimas calculadas usando algoritmo iterativo heurístico, interpretado como uma identificação dual.
Richalet descreveu as relações de entradas e saídas do processo por Resposta Impulsional Finita discreta (FIR).
Para um SISO, um modelo FIR é representado pela equação:

N
y
k j
 h u
i 1
i k  j i

Segundo este modelo, as saídas dependem de uma combinação linear das entradas passadas; os pesos do
somatório (hi) são os coeficientes da resposta impulsional. A soma é truncada no ponto onde entradas passadas
não mais exercem influência nas saídas. Esta representação só é possível para plantas estáveis. Contudo, ao
invés de identificação FIR direta, recomenda-se uma identificação de modelo do tipo ARMAX seguido de
conversão de modelo ARMAX para FIR. Isto se deve a que a identificação de modelos FIR em plantas com
ruído conduz, geralmente, a estimativas com alta variância, uma consequência direta do fato que os coeficientes
FIR são fundamentalmente correlacionados.

O FIR foi identificado por testes na planta usando algoritmo para minimização do erro estrutural entre planta e
modelo no espaço de parâmetros. O algoritmo iterativo resultante faz pequenos ajustes nos coeficientes a cada
etapa, tal que a distância estrutural permanentemente decresça. O problema de controle é resolvido com o
mesmo algoritmo notando que este é um problema dual do problema de identificação: no problema de
identificação, conhece-se as entradas e saídas e deseja-se conhecer os parâmetros. No problema de controle,
conhece-se os parâmetros e a trajetória desejada (definida com primeira ordem, com velocidade comandada
pela constante de tempo), e deseja-se calcular as entradas necessárias. Constante de tempo baixa aumenta a
agressividade do algoritmo, enquanto que valores maiores dão maior robustez (apesar de atribuir maio lentidão).
Richalet reconheceu os benefícios da estrutura hierárquica:

Nível 3: Scheduling da produção


Nível 2: Otimização de Set-Points para minimizar custo e garantir qualidade e produtividade
Nível 1: Controle dinâmico multivariável da planta
Nível 0: Controle PID das válvulas.

Eles notaram que o benefício econômicos decorrem do Nível 2, e não da redução da variabilidade da planta. O
MPHC foi aplicado em unidades de FCC, PVC e Plantas de Geração de Vapor.

DMC

Cutler e Radamaker, engenheiros da Shell, desenvolveram independentemente de Richalet, o seu MPC no início
da década de 70, ao qual deram o nome de Dynamic Matrix Control (DMC). As principais características do
DMC são:

a) resposta linear ao degrau como modelo da planta


b) função objetivo quadrática em um horizonte de predição finito
c) saídas futuras da planta são especificadas para rastreamento de set-point
d) entradas ótimas são calculadas como solução de um problema de mínimos quadrados

O modelo de resposta ao degrau utilizado pelo algoritmo DMC relaciona mudanças nas saídas do processo a
soma ponderada das entradas passadas, referidas como movimentos de entrada. Para um sistema SISO:

N 1
y
k j
  s u
i 1
i k  j i  sN u k  j  N
Otimização Plant-Wide

Otimização Global
estacionária (dia)

Otimizador Local – Unidade 1 Otimizador Local – Unidade 2

Otimização local
estacionária (hora)

Chaves Seletoras HS/LS


Controlador com Modelo
Preditivo

(MPC)
LL
PID PID

SOMA SOMA Controle Dinâmico com


restrições (minuto)

Controladores PID Controladores PID


Descentralizados da Unidade 1 Descentralizados da Unidade 2

F T F T F T F T

Controle Dinâmico
básico (segundos)
Os pesos das entradas de controle (movimentos de entradas) si são os coeficientes da resposta ao degrau.
Matematicamente, a resposta ao degrau pode ser definida como a integral da resposta impulsional. Assim, dada
uma forma do modelo, a outra pode facilmente ser obtida. Saídas múltiplas eram tratadas por superposição.
Utilizando o modelo de resposta ao degrau, saídas futuras podem ser calculadas a partir de combinação linear
de movimentos de entrada futuros. A matriz de conexão entre as entradas e as saídas é a Matriz Dinâmica. Com
esta representação, o vetor ótimo de entradas pode ser calculado analiticamente como a solução a um problema
de mínimos quadrados. Controle Feedforward pode ser facilmente incorporado modificando as saídas futuras
preditas. Na prática, a inversa da matriz pode ser calculada off-line para economizar tempo. Apenas a primeira
linha da matriz de ganho final do controlador precisa ser armazenada já que apenas o primeiro movimento
precisa ser calculado.

O objetivo do controle DMC é rastrear o set-point no sentido dos mínimos quadrados, penalizando os
movimentos de entrada. Isto é equivalente a aumentar a magnitude dos termos diagonais na matriz quadrada de
solução antes da inversão, resultando em controle menos agressivo. Este é o conceito do fator de supressão de
movimento, introduzido por Prett e Gillette. Estes fatores têm o benefício paralelo de melhorar o
condicionamento da solução numérica.

A capacidade de tratar restrições é iterativa: verifica violação e recalcula a solução de um problema modificado
caso esta ocorra. Em versões subsequentes, o DMC trata restrições como um problema de programação
quadrática: QDMC. Em modificação posterior, a função objetivo é o erro absoluto, tornando o problema
computacionalmente mais leve ao transformá-lo em um problema de programação linear. Para manter a
variável manipulada próxima do seu ponto economicamente ótimo, outro termo é adicionado na função objetivo
(quando há mais variáveis manipuladas do que variáveis controladas). As matrizes de ponderação informam a
importância relativa entre o objetivo de minimizar o erro de predição e o de suprimir movimentos nas variáveis
manipuladas.

O parâmetro de sintonia mais importante é o fator de supressão de movimentos.

QDMC

Os algoritmos originais IDCOM e DMC fornecem excelentes resultados em processos multivariáveis sem
restrições. O QDMC é uma forma de remover esta limitação do algoritmo original. As principais características
deste algoritmo são:

a) resposta linear ao degrau como modelo da planta


b) função objetivo quadrática em um horizonte de predição finito
c) saídas futuras da planta são especificadas para rastreamento de set-point, submetido a fator de supressão
de movimentos.
d) entradas ótimas são calculadas como solução de um problema de programação quadrática.

A experiência de Garcia e Morshedi indicou que o algoritmo DMC era estável em malha aberta quando o
horizonte de predição era ajustado longo o suficiente para o efeito no estado estacionário de todos os
movimentos de entrada calculados. A seguir, Garcia e Morshedi propõe a reformulação do algoritmo como um
problema de programação quadrática. As saídas projetadas estão relacionadas às entradas pela Matriz Dinâmica.
Isto permite que as restrições de entrada e saída possam ser expressas em uma Desigualdade Matricial
envolvendo os vetores de entrada. A matriz Hessiana da PQ (programação quadrática) é positiva definida
resultando em um problema de otimização convexa, isto é, uma solução pode ser prontamente encontrada com
um código de otimização comercial. As restrições que são forçadamente atendidas são distas restrições “hard”.
Na prática, Garcia e Morshed requerem que estas restrições sejam atendidas apenas em uma parte do horizonte.
Esta estratégia é chamada de janela de restrição. Geralmente, esta janela começa em algum ponto no futuro e
continua até o estado estacionário. Isto significa ignorar, i.e., relaxar as restrições “hard” na parte inicial da
resposta em malha fechada.
Uma outro forma de tratar restrições é minimizar a violação no sentido dos mínimos-quadrados. Este é o
conceito de restrições “soft”.

2. MPC Baseados em Modelos de Resposta ao Degrau

Seja S ={s1, s2, ..., sn}T a resposta ao degrau unitário:

... sn
s3
s2
s1

Sistema
Dinâmico

yk 1  s1uk  wk 1
yk  2  s2 uk  s1uk 1  wk  2
yk  3  s3uk  s2 uk 1  s1uk  2  wk  3
...
yk  N  s N uk  s N 1uk 1  ...  s1uk  N 1  wk  N

ou:
y  Suk  wk 1
k 1

onde uk é o valor de u em m pontos começando na etapa k. S é dada por:


 s1 0 0 ... 0 
 s s1 0 ... 0 
 2
 s3 s2 s1 ... 0 
 
S   ... ... ... ... ...  , a Matriz Dinâmica do Sistema.
 sm sm 1 sm  2 ... s1 
 
 sm 1 sm sm 1 ... s2 
 s s p 1 s p2 ... s p  m 1 
 p

Passado Futuro Referência

Saídas projetadaas

Variáveis manipuladas

u(k+m-1)
Horizonte

k+2
k k+1 k+3 k+N
O PROBLEMA SISO SEM RESTRIÇÕES

O problema de controle apresentado reduz-se a escolher a sequência de controle uk que faça a saída predita
se mover numa trajetória de referência:

y*  [ yk* 1 yk*  2 yk*  3 ,..., yk*  p ]T


k 1

ou seja, escolher uk tal que

yˆ 0  S u  wk 1  y*
k k 1

Definindo o erro de projeção:

e k 1  y*  [ yˆ 0  wk 1 ]
k 1 k

a lei de controle é:

Su  e k 1

Como o número de movimentos de controle, m, é sempre escolhido menor do que o horizonte de predição p,
gerando um conjunto sobredeterminado de equações, não existindo solução exata. A solução é um problema
de otimização: encontrar o vetor uk que minimize uma norma do vetor e k 1  S u k , como a norma-2:

k

min u   e k 1  S u k  e
T
k 1  S u k 
o clássico mínimos quadrados, com solução analítica:


uk

  S T e k 1  S u =0 

u k  S T S   1 T
S e k 1

O Erro Residual é definido como:

 kr 1  yk*   yˆ k 1 , a diferença entre a saída predita e a trajetória de referência:

e k 1  S u k  ekr 1

Logo, a sequência de controle uk escolhida minimiza o quadrado do erro residual entre a saída predita do
processo e a trajetória desejada nos p intervalos do horizonte de predição.

Na prática, uma penalidade sobre movimentos excessivos das variáveis manipuladas é imposta:


min u ( k )   e k 1  S u k  e
T
k 1  
 S u k  K 2 u k T u k 
e a ação de controle resultante é:

u k  S T S  K 2 I 
1 T
S e k 1

ESTIMANDO PERTURBAÇÕES NÃO-MEDIDAS E ATUALIZAÇÃO DA PREDIÇÃO

O vetor de erro projetado ek+1 requer os valores futuros do efeito de perturbações não-medidas, que não são
conhecidos no instante k. Eles só podem ser estimados com base em informações atuais disponíveis. No
penúltimo instante, k-1, com base no mesmo modelo de resposta ao degrau, o valor ŷ foi predito como a
k
saída esperada no instante k. Com a medição real y agora disponível, a discrepância na predição do modelo
k
também se torna disponível:

 k  yk  yˆ
k

No DMC, esta discrepância é atribuída ao efeito de perturbações não-medidas, não consideradas no modelo. É
também assumido que esta é a melhor estimativa dos valores futuros destas discrepâncias. Assim:

wˆ k  i k  yk  yˆ ; i  1,2,..., p
k

ESTRATÉGIA DE IMPLEMENTAÇÃO

Devido a imprecisões de predição, não é recomendável implementar a sequência completa uk , uk+1 , ...,
uk+m-1 calculada para os próximos m intervalos. Outra razão para evitar a implementação de toda a
seqüência é que o set-point pode ser alterado nos próximos m intervalos.

A estratégia DMC é então de implementar apenas o primeiro movimento uk e, a seguir:

1) Atualizar o vetor de erro de projeção ek+1 no próximo intervalo de tempo


 Atualizar y*k+1 com qualquer nova informação de set-point.
 Atualizar yok pela adição do efeito da implementação de uk, e assumindo que nenhuma outra ação
de controle será tomada.
 Usando medição disponíveis do sistema, e as predições correspondentes do modelo, atualizar wk+1
2) Deslocar a origem do horizonte de predição para frente, removendo o primeiro elemento de cada um dos
vetores atualizados y*k+1 , yok e wk+1, avançando os outros elementos em ordem (o segundo se torna o
primeiro, o terceiro passa a ser o segundo, etc) e a última posição vaga é ocupada por extrapolação linear,
obtendo-se: y*k+2 , yok+1 e wk+2
3) Recalcular a seqüência usando estas atualizações e os vetores deslocados, implementando a primeira e
repetindo o ciclo.

EXTENSÃO MULTIVARIÁVEL

Para um sistema 2x2:

 e1, k 1   S11 : S12   u1, k 


    
 ...    ... : ...   ... 
e2, k 1   S 21 : S 22  u2, k 
   

onde
e1,k+1 é o erro projetado para a iésima saída (i=1,2), uj,k é a seqüência de movimentos de controle para a j ésima
variável de entrada (j=1,2), e Si,j é a matriz dinâmica formada pela resposta ao degrau da variável de saída i a
variável de entrada j. Todo o desenvolvimento anterior se aplica exatamente, com a diferença que as matrizes,
agora, possuem dimensões maiores.

ESCALA

Algumas variáveis são mais sensíveis do que outras (ganhos maiores). O DMC reconhece a importância de
por em escala o vetor de erro ek+1 tal que mudanças igualmente importantes nas várias saídas sejam tratadas
iguais. Isto é feito pela introdução de uma matriz de ponderação  como parâmetro de sintonia:

 
u k  S T S
1 T
S e k 1

OBTENDO A RESPOSTA AO DEGRAU

Os modelos de resposta ao degrau baseiam-se em que o sistema está inicialmente em estado estacionário. Para
um sistema linear invariante no tempo e SISO, a mudança da saída do processo a uma mudança unitária na
entrada u é:

0, s1, s2 , ..., sn , sn , ...

onde é assumido que o sistema se estabelece exatamente após n passos. A resposta ao degrau {s1, s2, ..., sn}
constitui um modelo completo do sistema, que permite calcular a saída y para qualquer seqüência de entrada:

n
y 
k  s u
i 1
i k i  sn u k  n 1

Estes modelos podem ser empregados tanto para sistemas estáveis quanto integradores. Para sistemas
integradores, assume-se que a inclinação da curva de resposta permanece constante após n passos:

sn - sn-1 = sn+1- sn = sn+2 – sn+1 = ...

Para um sistema MIMO com nu entradas e ny saídas:

 s1,1,i s1, 2,i ... s1, nu ,i 


s s2 , 2 , i ... 
S  
2,1, i
i  ... ... ... ... 
 
 sny ,1,i sny , 2,i ... sny , nu ,i 

onde

sl,m,i é o iésimo coeficiente da resposta ao degrau relacionando a mésima entrada à lésimma saída.

O Toolbox MPC do MATLAB armazena os modelos de resposta ao degrau no formato:


 S1 
 S2 
 
 ... 
 
 nout (1) 0 ... 0

planta  nout (2) 0 ... 0
 
 ... ... ... 0
nout (ny ) 0 ... 0
 
 ny 0 ... 0
 
 delt 2 0 ... 0 ( n*ny  ny  2) Xnu

onde delt2 é o intervalo de amostragem e o vetor nout se uma determinada saída é integradora ou não:

nout(i) = 1 se i for integradora


nout(i) = 0 se i não for integradora

A resposta ao degrau pode ser obtida diretamente de um experimento de identificação ou gerada através de uma
função de transferência contínua ou discreta. Por exemplo:

y(k) = -0,5 y(k-1) + u(k-3)

para período de amostragem T=0.1, apresenta a seguinte função de transferência:

z 3
g ( z) 
1  0.5 z 1

(ver arquivo \MATLABR11\toolbox\mpc\mpcdemos\mpctut.m)

num = 1;
den = [1 0.5];
delt1 = 0.1;
delay = 2;

% Set up the model in tf format


g = poly2tfd(num,den,delt1,delay);

% Calculate the step response


tfinal = 1.6;
delt2 = delt1;
nout = 1;
plant = tfd2step(tfinal,delt2,nout,g);

% Plot the step response


plotstep(plant)
Alternativamente, pode-se primeiro gerar uma descrição em variáveis de estado e, em seguida, a resposta ao
degrau:

num = [0 0 0 num];
den = [den 0 0];

% Convert to state-space
[phi,gam,c,d] = tf2ss(num,den);

plant = ss2step(phi,gam,c,d,tfinal,delt1,delt2,nout);

%plotstep(plant)

Informações sobre o conteúdo da matriz podem ser extraídas pelo comando

mpcinfo(plant)

This is a matrix in MPC Step format.


sampling time = 0.1
number of inputs = 1
number of outputs = 1
number of step response coefficients = 16
All outputs are stable.

IDENTIFICAÇÃO DO MODELO

As rotinas de identificação disponíveis no Toolbox MPC são desenvolvidas para sistemas MISO. Os dados
históricos definem:

 yl (1) 
 y (2)
y  l 
l  ... 
 
 ... 
 u1 (1) u2 (1) ... unu (1) 
u (2) u (2) ... unu (2)
u 1 2
u1 (3) u2 (3) ... unu (3) 
 
 ... ... ... ... 
os coeficientes da resposta ao degrau são estimados

 s1,1,i s1, 2,i ... s1, nu ,i 


s s2 , 2 , i ... 
S  
2,1, i
i  ... ... ... ... 
 
 sny ,1,i sny , 2,i ... sny , nu ,i 

Para tal, escreve-se o modelo SISO na forma:

n
y (k )   h u(k  i)
i 1
i

onde

y (k )  y (k )  y (k  1)

hi  si  si 1 (os coeficientes da resposta impulsional).

Se a saída de interesse for integradora, o modelo é:

n
y (k )    h u(k  i)
i 1
i

onde

y (k )   y (k )  y (k  1)
hi  hi  hi 1

hi e si são obtidos por:

j
hi   h 
k 1
k

i i j
hi  
j 1
hj   h
j 1 k 1
k

Para estimar os parâmetros, recomenda-se que todas as variáveis estejam em escala para que tenham a mesma
ordem de grandeza. Isto pode ser feito pelas funções do Toolbox de MPC: autosc ou scal. Os dados, a
seguir, devem ser rearranjados na forma:

Y=X

Onde Y contém todas as informações de saídas ( y (k ) para processos estáveis e (y (k )) para processos
integradores) e X todas as informações de entradas ( u (k ) ) apropriadamente arranjadas. O rearranjo das
entradas e saídas é feito com a rotina wrtreg. Os parâmetros podem ser estimados via mínimos quadrados
multivariável (rotina mlr) ou mínimos quadrados parciais (plsr). Finalmente, a resposta ao degrau é obtida
a partir dos coeficientes da resposta impulsional via imp2step.

O exemplo a seguir (ver mpctutid) ilustra este procedimento

» type mpctutid

% Copyright (c) 1994-98 by The MathWorks, Inc.


% $Revision: 1.4 $
echo on
%
% Purpose: Demonstrates the use of identification routines.
% The system considered here has two inputs and one output.
%
% Load the input & output data. The input and output data are generated
% from the following transfer functions and random zero-mean noises.
% TF from input 1 to output 1: g11 = 5.72exp(-14s)/(60s+1)
% TF from input 2 to output 2: g21 = 1.52exp(-15s)/(25s+1)
% Sampling time of 7 minutes was used.
%
load mlrdat.mat
pause
%
% Determine the standard deviations for input
% data using the function autosc.
%
[ax,mx,stdx] = autosc(x);
%
% Let us scale the input data by their standard deviations only.
%
mx = [0 0];
sx = scal(x,mx,stdx);
%
% Put the input & output data in a form such that they can be used to
% determine the impulse response coefficients. 35 impulse response
% coefficients (nofcoe) are used.
%

n = 35;

[xreg,yreg] = wrtreg(sx,y,n);
pause

%
% Determine the impulse response coefficients via mlr. No penalties on
% theta and delt theta are used in mlr. By specifying plotopt of 2,
% two plots - plot of predicted output and actual output, and plot of
% the residue output (or predicted error) - are produced.
%
ninput = 2;
plotopt = 2;

[theta,yres] = mlr(xreg,yreg,ninput,plotopt);
%
% Scale theta based on the standard deviations used in scaling the input.
%
theta = scal(theta,mx,stdx);
pause
%
% Convert the impulse model to a step model to be used in MPC design.
% Sampling time of 7 minutes was used in determining the inpulse model.
% Number of outputs (1 in this case) must be specified.
%
nout = 1;
delt = 7;
model = imp2step(delt,nout,theta);
%
% Plot the step response coefficients.
%
plotstep(model)
echo off
EXEMPLO DE CONTROLE PREDITIVO SEM RESTRIÇÔES

% Copyright (c) 1994-98 by The MathWorks, Inc.


% $Revision: 1.4 $

echo on
%
% Purpose: Demonstrate the use of controlier design and simulation
% routines for step response models.
% The plant considered is SISO with a SISO distrubance plant.
%
% Plant transfer function: g = 5.72exp(-14s)/(60s+1)
% Disturbance transfer function: gd = 1.52exp(-15s)/(25s+1)
%
% Build the step response models for as sampling period of 7.

delt1=0;
delay1=14;
num1=5.72;
den1=[60 1];
g = poly2tfd(num1,den1,delt1,delay1);
tfinal = 245;
delt2=7;
nout1 = 1;
plant = tfd2step(tfinal,delt2,nout1,g);
pause
%
delay2=15;
num2=1.52;
den2=[25 1];
gd = poly2tfd(num2,den2,delt1,delay2);
delt2=7;
nout2 = 1;
dplant = tfd2step(tfinal,delt2,nout2,gd);

%
% Calculate the MPC controller gain matrix for
% No plant/model mismatch,
% Output Weight = 1, Input Weight = 0
% Input Horizon = 5, Output Horizon = 20
model = plant;
ywt = 1; uwt = 0;
M = 5; P = 20;
Kmpc1 = mpccon(model,ywt,uwt,M,P);
pause
%
% Simulate and plot response for unmeasured and measured
% step disturbance through dplant.
tend = 245;
r = []; usat = []; tfilter = [];
dmodel = [];
dstep = 1;
[y1,u1] =
mpcsim(plant,model,Kmpc1,tend,r,usat,tfilter,dplant,dmodel,dstep);
dmodel = dplant; % measured disturbance
[y2,u2] =
mpcsim(plant,model,Kmpc1,tend,r,usat,tfilter,dplant,dmodel,dstep);
plotall([y1,y2],[u1,u2],delt2);
pause;
%
% Calculate the a new MPC controller gain matrix for
% No plant/model mismatch,
% Output Weight = 1, Input Weight = 10
% Input Horizon = 5, Output Horizon = 20
model = plant;
ywt = 1; uwt = 10;
M = 5; P = 20;
Kmpc2 = mpccon(model,ywt,uwt,M,P);
%
% Simulate and plot response for unmeasured and measured
% step disturbance through dplant.
tend = 245;
r = []; usat = []; tfilter = [];
dmodel = [];
dstep = 1;
[y3,u3] =
mpcsim(plant,model,Kmpc2,tend,r,usat,tfilter,dplant,dmodel,dstep);
dmodel = dplant; % measured disturbance
[y4,u4] =
mpcsim(plant,model,Kmpc2,tend,r,usat,tfilter,dplant,dmodel,dstep);
plotall([y3,y4],[u3,u4],delt2);
pause;
%
% Simulate and plot response for unmeasured
% step disturbance through dplant with uwt = 0,
% with and without noise filtering.
tend = 245;
r = []; usat = []; dmodel = [];
tfilter = [];
dstep = 1;
[y5,u5] =
mpcsim(plant,model,Kmpc1,tend,r,usat,tfilter,dplant,dmodel,dstep);
tfilter = 20; % noise filtering time constant = 20
[y6,u6] =
mpcsim(plant,model,Kmpc1,tend,r,usat,tfilter,dplant,dmodel,dstep);
plotall([y5,y6],[u5,u6],delt2);
pause;
%
% Simulate and plot response for unmeasured
% step disturbance through dplant with uwt = 0,
% with and without unmeasured disturbance time
% being specified.
tend = 245;
r = []; usat = []; dmodel = [];
tfilter = [];
dstep = 1;
[y7,u7] =
mpcsim(plant,model,Kmpc1,tend,r,usat,tfilter,dplant,dmodel,dstep);
tfilter = [0 ; 25]; % unmesured disturbance time constant = 25
[y8,u8] =
mpcsim(plant,model,Kmpc1,tend,r,usat,tfilter,dplant,dmodel,dstep);
plotall([y7,y8],[u7,u8],delt2);
pause;
%
% Construct a closed-loop system for no disturbances
% and uwt = 0. Determine the poles of the system.
clmod = mpccl(plant,model,Kmpc1);
poles = smpcpole(clmod);
maxpole = max(poles)
pack;
%
% Calculate and plot the frequency response of the
% sensitivity and complementary sensitivity functions.
freq = [-3,0,30];
ny = 1;
out = [1:ny]; % output is yp for comp. sensitivity
in = [1:ny]; % input is r for comp. sensitivity
[frsp,eyefrsp] = mod2frsp(clmod,freq,out,in);
plotfrsp(eyefrsp); % sensitivity
pause;
plotfrsp(frsp); % complementary sensitivity
%
% Simulate and plot response for unmeasured step
% disturbance through dplant with and without
% input constraints.
% No plant/model mismatch,
% Output Weight = 1, Input Weight = 0
% Input Horizon = 5, Output Horizon = 20
% Minimum Constraint on Input = -0.4
% Maximum Constraint on Input = inf
% Delta Constraint on Input = 0.1
model = plant;
ywt = 1; uwt = 0;
M = 5; P = 20;
tend = 245;
r = [];
ulim =[];
ylim = []; tfilter = []; dmodel = [];
dstep = 1;
[y9,u9] = cmpc(plant,model,ywt,uwt,M,P,tend,r,...
ulim,ylim,tfilter,dplant,dmodel,dstep);
ulim = [-0.4, inf, 0.1]; % impose constraints
[y10,u10] = cmpc(plant,model,ywt,uwt,M,P,tend,r,...
ulim,ylim,tfilter,dplant,dmodel,dstep);
plotall([y9,y10],[u9,u10],delt2);
pause;
echo off

plotall([y1,y2],[u1,u2],delt2); plotall([y3,y4],[u3,u4],delt2);

plotall([y5,y6],[u5,u6],delt2); plotall([y7,y8],[u7,u8],delt2);
ANÀLISE DA MALHA FECHADA (mpctutst.m)

plotfrsp(eyefrsp); % sensitivity
plotfrsp(frsp); % complementary sensitivity

CONTROLE PREDITIVO COM RESTRIÇÔES

plotall([y9,y10],[u9,u10],delt2);

Anda mungkin juga menyukai