Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Breve Histrico
O MPC um mtodo baseado em controle timo, isto , que seleciona as entradas de controle de forma a
minimizar uma funo objetivo. O clculo da funo objetivo baseia-se tanto em valores atuais de sadas do
processo quanto em valores preditos por um MODELO EXPLCITO do processo.
Por ser implementado em sistemas digitais, a abordagem discreta no tempo:
xk+1 = f(xk, uk)
yk= g(xk)
Conhecida a sada atual do processo yk , busca-se um controle que minimize a funo objetivo:
J (y
k N |k
N 1
L( y
j 0
k j |k
, u k j|k , u k j|k )
Na equao acima, y k N |k indica o valor no tempo k+N dadas informaes at (e incluindo) o instante k,
nitidamente invocando o carter preditivo da formulao. O termo u k j|k u k j|k u k j 1|k , a
velocidade de controle, includa na funo objetivo, representando limitaes na velocidade de atuao do
elemento final de cotrole.
Dos N movimentos de controle calculados que minimizam a funo objetivo acima, apenas o primeiro
implementado. Quando um nova medio se torna disponvel, os parmetros do problema so atualizados e
um novo problema de otimizao formulado, cuja soluo fornece o prximo movimento de controle.
Quando a funo objetivo escrita como:
J y
k N |k
2
ref
N 1
j 0
k j |k
2
ref
u k j|k u ref
2
R
u k j|k
2
S
onde Q, R e S indicam matrizes de ponderao das normas vetoriais, e o processo for linear, o MPC se torna
um caso de Controle timo Linear Quadrtico.
Um Regulador Quadrtico Linear (LQR) proposto para processo descrito em varivel de estado(que implica
em uso de variveis desvio):
x k 1 A x k Bu k
y
C xk
e a funo objetivo:
J
N 1
j 0
xk
x k j|k
2
j|k
2
Q
u k j |k
2
R
xT Q x
P C T (C P C T R ) 1
k
que utiliza a covariana do estimador de estado, denotada por P k , propagada pela Equao de Ricatti:
P
P
k 1
0
AP
A T Q A P C T (C P C T R ) 1 C P
k
AT
O algoritmo tem condies estabilizantes desde que as matrizes Q, R sejam positivas definidas. Contudo, o
LQR teve pouco impacto na indstria de processos devido, principalmente, a:
a)
Restries: um controlador industrial deve ser capaz de manter o sistema prximo de restries (onde
reside o timo) sem viol-las;
b) No-linearidades dos processos: unidades industriais so normalmentecomplexas, no-lineares, multivariveis, com comportamento dinmico variante no tempo (e.g., desativao de catalisador);
c) Incertezas de modelagem (robustez): as aplicaes onde LQR logrou sucesso eram em aplicaes onde o
desenvolvimento de representao matemtica precisa era economicamente vivel, e.g. na indstria
aeroespacial. Este no o caso da indstria de processos.
d) Critrio de desempenho mpar: a indstria de processos apresenta critrios de desempenhos no
raramente difceis de serem enquadradas no formato LQR.
A indstria de processo, ento, desenvolveu uma metodologia de controle baseado em modelo mais geral, na
qual o problema de otimizao dinmica resolvido on-line a cada execuo de controle. As entradas do
processo so calculadas de forma a otimizar o comportamento futuro da planta sobre um intervalo de tempo
conhecido por horizonte de predio. A dinmica da planta descrita por um modelo explcito que pode, a
princpio, assumir qualquer forma matemtica necessria. As restries de entrada e sada do processo so
includas diretamente na formulao do problema. A esta metodologia, atribuiu-se o termo Tecnologia MPC.
Em uma planta de processos modernas, o MPC parte de uma estrutura multi-nvel de controle. A Figura 1
apresenta o controle descentralizado e o MPC, em uma nica planta. Desta experincia industrial alimentou o
desenvolvimento de uma classe de problemas que tem ocupado os tericos de controle.
IDCOM
A primeira aplicao de MPC foi apresentada por Richalet em1976, como Controle Heurstico por Modelo
Preditivo (MPHC). O software foi batizado como IDCOM, um anacronismo para Identificao e Comando.
As caracterstica do IDCOM so:
a)
b)
c)
d)
e)
Richalet descreveu as relaes de entradas e sadas do processo por Resposta Impulsional Finita discreta
(FIR). Para um SISO, um modelo FIR representado pela equao:
k j
h u
i
k j i
i 1
Segundo este modelo, as sadas dependem de uma combinao linear das entradas passadas; os pesos do
somatrio (hi) so os coeficientes da resposta impulsional. A soma truncada no ponto onde entradas passadas
no mais exercem influncia nas sadas. Esta representao s possvel para plantas estveis. Contudo, ao
invs de identificao FIR direta, recomenda-se uma identificao de modelo do tipo ARMAX seguido de
converso de modelo ARMAX para FIR. Isto se deve a que a identificao de modelos FIR em plantas com
rudo conduz, geralmente, a estimativas com alta varincia, uma conseqncia direta do fato que
os coeficientes FIR so fundamentalmente correlacionados.
O FIR foi identificado por testes na planta usando algoritmo para minimizao do erro estrutural entre planta
e modelo no espao de parmetros. O algoritmo iterativo resultante faz pequenos ajustes nos coeficientes a
cada etapa, tal que a distncia estrutural permanentemente decresa. O problema de controle resolvido com
o mesmo algoritmo notando que este um problema dual do problema de identificao: no problema de
identificao, conhece-se as entradas e sadas e deseja-se conhecer os parmetros. No problema de controle,
conhece-se os parmetros e a trajetria desejada (definida com primeira ordem, com velocidade comandada
pela constante de tempo), e deseja-se calcular as entradas necessrias. Constante de tempo baixa aumenta a
agressividade do algoritmo, enquanto que valores maiores do maior robustez (apesar de atribuir maio
lentido). Richalet reconheceu os benefcios da estrutura hierrquica:
Nvel 3: Scheduling da produo
Nvel 2: Otimizao de Set-Points para minimizar custo e garantir qualidade e produtividade
Nvel 1: Controle dinmico multivarivel da planta
Nvel 0: Controle PID das vlvulas.
Eles notaram que o benefcio econmicos decorrem do Nvel 2, e no da reduo da variabilidade da planta.
O MPHC foi aplicado em unidades de FCC, PVC e Plantas de Gerao de Vapor.
DMC
Cutler e Radamaker, engenheiros da Shell, desenvolveram independentemente de Richalet, o seu MPC no
incio da dcada de 70, ao qual deram o nome de Dynamic Matrix Control (DMC). As principais
caractersticas do DMC so:
a)
b)
c)
d)
O modelo de resposta ao degrau utilizado pelo algoritmo DMC relaciona mudanas nas sadas do processo a
soma ponderada das entradas passadas, referidas como movimentos de entrada. Para um sistema SISO:
k j
N 1
s u
i
i 1
k j i
sN u k j N
Otimizao Plant-Wide
Otimizao Global
estacionria (dia)
LL
PID
PID
SOMA
Controladores PID
Descentralizados da Unidade 1
F
C
SOMA
T
C
F
C
T
C
Controladores PID
Descentralizados da Unidade 2
F
C
T
C
F
C
Controle Dinmico
bsico (segundos)
T
C
Uma outro forma de tratar restries minimizar a violao no sentido dos mnimos-quadrados. Este o
conceito de restries soft.
2. MPC Baseados em Modelos de Resposta ao Degrau
Seja S ={s1, s2, ..., sn}T a resposta ao degrau unitrio:
s2
...
s3
sn
s1
Sistema
Dinmico
yk 1 s1uk wk 1
yk 2 s2 uk s1uk 1 wk 2
yk 3 s3uk s2 uk 1 s1uk 2 wk 3
...
yk N s N uk s N 1uk 1 ... s1uk N 1 wk N
ou:
y
S uk wk 1
k 1
s1
s
2
s3
S ...
sm
sm 1
s
p
...
s1
s2
0
s1
...
...
0
0
...
...
sm 1
sm 2
...
...
...
s1
sm
s p 1
sm 1
s p2
...
s2
... s p m 1
Passado
Futuro
Referncia
y (k 1 | k )
u (k 1)
u (k )
k
k+1
Sadas projetadaas
Variveis manipuladas
Horizonte
k+2
k+3
u(k+m-1)
k+N
k 1
k 1
k 1
[ y 0 wk 1 ]
k
a lei de controle :
S u e k 1
Como o nmero de movimentos de controle, m, sempre escolhido menor do que o horizonte de predio p,
gerando um conjunto sobredeterminado de equaes, no existindo soluo exata. A soluo um problema
de otimizao: encontrar o vetor uk que minimize uma norma do vetor e k 1 S u k , como a norma-2:
min u e k 1 S u k
k
e
T
k 1
S u k
S T e k 1 S u =0
u k
u k S T S
S T e k 1
Logo, a seqncia de controle uk escolhida minimiza o quadrado do erro residual entre a sada predita do
processo e a trajetria desejada nos p intervalos do horizonte de predio.
Na prtica, uma penalidade sobre movimentos excessivos das variveis 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 ao de controle resultante :
u k S T S K 2 I
S T e k 1
ESTRATGIA DE IMPLEMENTAO
Devido a imprecises de predio, no recomendvel implementar a seqncia completa uk , uk+1 , ...,
uk+m-1 calculada para os prximos m intervalos. Outra razo para evitar a implementao de toda a seqncia
que o set-point pode ser alterado nos prximos m intervalos.
A estratgia DMC ento de implementar apenas o primeiro movimento uk e, a seguir:
1) Atualizar o vetor de erro de projeo ek+1 no prximo intervalo de tempo
Atualizar y*k+1 com qualquer nova informao de set-point.
Atualizar yok pela adio do efeito da implementao de uk, e assumindo que nenhuma outra ao
de controle ser tomada.
Usando medio disponveis do sistema, e as predies correspondentes do modelo, atualizar wk+1
2) Deslocar a origem do horizonte de predio para frente, removendo o primeiro elemento de cada um dos
vetores atualizados y*k+1 , yok e wk+1, avanando os outros elementos em ordem (o segundo se torna o
primeiro, o terceiro passa a ser o segundo, etc) e a ltima posio vaga ocupada por extrapolao linear,
obtendo-se: y*k+2 , yok+1 e wk+2
3) Recalcular a seqncia usando estas atualizaes e os vetores deslocados, implementando a primeira e
repetindo o ciclo.
EXTENSO MULTIVARIVEL
Para um sistema 2x2:
e1, k 1
S11 : S12
onde
u1, k
...
u2, k
e1,k+1 o erro projetado para a isima sada (i=1,2), uj,k a seqncia de movimentos de controle para a jsima
varivel de entrada (j=1,2), e Si,j a matriz dinmica formada pela resposta ao degrau da varivel de sada i a
varivel de entrada j. Todo o desenvolvimento anterior se aplica exatamente, com a diferena que as matrizes,
agora, possuem dimenses maiores.
ESCALA
Algumas variveis so mais sensveis do que outras (ganhos maiores). O DMC reconhece a importncia de
por em escala o vetor de erro ek+1 tal que mudanas igualmente importantes nas vrias sadas sejam tratadas
iguais. Isto feito pela introduo de uma matriz de ponderao como parmetro de sintonia:
u k S T S
S T e k 1
0,
s1,
s2 , ...,
sn ,
sn , ...
onde assumido que o sistema se estabelece exatamente aps n passos. A resposta ao degrau {s1, s2, ..., sn}
constitui um modelo completo do sistema, que permite calcular a sada y para qualquer seqncia de entrada:
n
y
k
s u
i
i 1
k i
sn u k n 1
Estes modelos podem ser empregados tanto para sistemas estveis quanto integradores. Para sistemas
integradores, assume-se que a inclinao da curva de resposta permanece constante aps n passos:
sn - sn-1 = sn+1- sn = sn+2 sn+1 = ...
Para um sistema MIMO com nu entradas e ny sadas:
s1,1,i
s
2,1, i
S
...
i
sny ,1,i
s1, 2,i
s2 , 2 , i
...
sny , 2,i
... s1, nu ,i
...
...
...
... sny , nu ,i
onde
sl,m,i o isimo coeficiente da resposta ao degrau relacionando a msima entrada lsimma sada.
O Toolbox MPC do MATLAB armazena os modelos de resposta ao degrau no formato:
nout (1)
planta nout (2)
...
nout (ny )
ny
delt 2
S1
S2
...
0
0
...
0
0
0
...
...
...
...
...
...
0
0
0
0
( n*ny ny 2 ) Xnu
onde delt2 o intervalo de amostragem e o vetor nout se uma determinada sada integradora ou no:
nout(i) = 1 se i for integradora
nout(i) = 0 se i no for integradora
A resposta ao degrau pode ser obtida diretamente de um experimento de identificao ou gerada atravs de
uma funo de transferncia contnua ou discreta. Por exemplo:
y(k) = -0,5 y(k-1) + u(k-3)
para perodo de amostragem T=0.1, apresenta a seguinte funo de transferncia:
g ( z)
z 3
1 0.5 z 1
Alternativamente, pode-se primeiro gerar uma descrio em variveis 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)
Informaes sobre o contedo da matriz podem ser extradas 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.
IDENTIFICAO DO MODELO
As rotinas de identificao disponveis no Toolbox MPC so desenvolvidas para sistemas MISO. Os dados
histricos definem:
yl (1)
y (2)
y l
l
...
...
u1 (1)
u ( 2)
u 1
u1 (3)
...
u2 (1)
u 2 ( 2)
u2 (3)
...
...
...
s1,1,i
s
2,1, i
S
...
i
sny ,1,i
s1, 2,i
s2 , 2 , i
...
sny , 2,i
... s1, nu ,i
...
...
...
... sny , nu ,i
y (k )
h u (k i)
i
i 1
onde
y ( k ) y ( k ) y ( k 1)
e
h u (k i)
i
i 1
onde
y (k ) y (k ) y ( k 1)
hi hi hi 1
hi e si so obtidos por:
j
hi
h
k
k 1
hi
hj
j 1
j 1 k 1
Para estimar os parmetros, recomenda-se que todas as variveis estejam em escala para que tenham a
mesma ordem de grandeza. Isto pode ser feito pelas funes do Toolbox de MPC: autosc ou scal. Os
dados, a seguir, devem ser rearranjados na forma:
Y=X
Onde Y contm todas as informaes de sadas ( y (k ) para processos estveis e ( y ( k )) para
processos integradores) e X todas as informaes de entradas ( u (k ) ) apropriadamente arranjadas. O
rearranjo das entradas e sadas feito com a rotina wrtreg. Os parmetros podem ser estimados via
mnimos quadrados multivarivel (rotina mlr) ou mnimos 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
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);
plotfrsp(eyefrsp); % sensitivity
plotfrsp(frsp); % complementary sensitivity
CONTROLE PREDITIVO COM RESTRIES
plotall([y9,y10],[u9,u10],delt2);