Você está na página 1de 19

MPC MODEL PREDICTIVE CONTROL

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

A soluo do problema de otimizao um regulador timo:


u k K xk

com a matriz K, obtida da soluo da equao a seguir:

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)

modelo de resposta impulsional para a planta;


critrio de performance quadrtico para a planta em um horizonte de predio finito;
comportamento futuro da planta especificado por uma trajetria de referncia;
restries de entrada e sada includas na formulao;
entradas timas calculadas usando algoritmo iterativo heurstico, interpretado como uma identificao
dual.

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)

resposta linear ao degrau como modelo da planta


funo objetivo quadrtica em um horizonte de predio finito
sadas futuras da planta so especificadas para rastreamento de set-point
entradas timas so calculadas como soluo de um problema de mnimos quadrados

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)

Otimizador Local Unidade 1

Otimizador Local Unidade 2


Otimizao local
estacionria (hora)

Chaves Seletoras HS/LS


Controlador com Modelo
Preditivo
(MPC)

LL

PID

PID

SOMA

Controladores PID
Descentralizados da Unidade 1

F
C

Controle Dinmico com


restries (minuto)

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

Os pesos das entradas de controle (movimentos de entradas) si so os coeficientes da resposta ao degrau.


Matematicamente, a resposta ao degrau pode ser definida como a integral da resposta impulsional. Assim,
dada um forma do modelo, a outra pode facilmente ser obtida. Sadas mltiplas eram tratadas por
superposio. Utilizando o modelo de resposta ao degrau, sadas futuras podem ser calculadas a partir de
combinao linear de movimentos de entrada futuros. A matriz de conexo entre as entradas e as sadas a
Matriz Dinmica. Com esta representao, o vetor timo de entradas pode ser calculado analiticamente como
a soluo a um problema de mnimos quadrados. Controle Feedforward pode ser facilmente incorporado
modificando as sadas futuras preditas. Na prtica, 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 arm,azenada
j que apenas o primeiro movimento precisa ser calculado.
O objetivo do controle DMC rastrear o set-point no sentido dos mnimos quadrados, penalizando os
movimentos de entrada. Isto equivalente a aumentar a magnitude dos termos diagonais na matriz quadrada
de soluo antes da inverso, resultando em controle menos agressivo. Este o conceito do fator de
supresso de movimento, introduzido por Prett e Gillette. Estes fatores tm o benefcio paralelo de melhor o
condicionamento da soluo numrica.
A capacidade de tratar restries iterativa: verifica violao e recalcula a soluo de um problema
modificado caso esta ocorra. Em verses subsequentes, o DMC trata restries como um problema de
programao quadrtica: QDMC. Em modificao posterior, a funo objetivo o erro absoluto, tornando o
problema computacionalmente mais leve ao transform-lo em um problema de programao linear. Para
manter a varivel manipulada prxima do seu ponto economicamente timo, outro termo adicionado na
funo objetivo (quando h mais variveis manipuladas do que variveis controladas). As matrizes de
ponderao informam a importncia relativa entre o objetivo de minimizar o erro de predio e o de suprimir
movimentos nas variveis manipuladas.
O parmetro de sintonia mais importante o fator de supresso de movimentos.
QDMC
Os algoritmos originais IDCOM e DMC fornecem excelentes resultados em processos multivariveis sem
restries. O QDMC uma forma de remover esta limitao do algoritmo original. As porincipais
caractersticas deste algoritmo so:
a) resposta linear ao degrau como modelo da planta
b) funo objetivo quadrtica em um horizonte de predio finito
c) sadas futuras da planta so especificadas para rastreamento de set-point, submetido a fator de supresso
de movimentos.
d) entradas timas so calculadas como soluo de um problema de programao quadrtica.
A experincia de Garcia e Morshedi indicou que o algoritmo DMC era estvel em malha aberta quando o
horizonte de predio era ajustado longo o suficiente para o efeito no estado estacionrio de todos os
movimentos de entrada calculados. A seguir, Garcia e Morshedi prope a reformula do algoritmo como um
problema de programao quadrtica. As sadas projetadas esto relacionadas s entradas pela Matriz
Dinmica. Isto permite que as restries de entrada e sada possam ser expressas em uma Desigualdade
Matricial envolvendo os vetores de entrada. A matriz Hessiana da PQ (programao quadrtica) positiva
definida resultando em um problema de otimizao convexa, isto , uma soluo pode ser prontamente
encontrada com um cdigo de otimizao comercial. As restries qu so foradamente atendidas so distas
restries hard. Na prtica, Garcia e Morshed requerem que estas restries sejam atendidas apenas em
uma parte do horizonte. Esta estratgia chamada de janela de restrio. Geralmente, esta janela comea em
algum ponto no futuro e continua at o estado estacionrio. Isto significa ignorar, i.e., relaxar as restries
hard na parte inicial da resposta em malha fechada.

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

onde uk o valor de u em m pontos comeando na etapa k. S dada por:

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

, a Matriz Dinmica do Sistema.

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

O PROBLEMA SISO SEM RESTRIES


O problema de controle apresentado reduz-se a escolher a seqncia de controle uk que faa a sada predita
se mover numa trajetria de referncia:
y*

k 1

[ yk* 1 yk* 2 yk* 3 ,..., yk* p ]T

ou seja, escolher uk tal que


y 0 S u wk 1 y *
k

k 1

Definindo o erro de projeo:


e k 1 y *

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

o clssico mnimos quadrados, com soluo analtica:

S T e k 1 S u =0
u k

u k S T S

S T e k 1

O Erro Residual definido como:

kr 1 yk* y k 1 , a diferena entre a sada predita e a trajetria de referncia:


e k 1 S u k ekr 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

ESTIMANDO PERTURBAES NO-MEDIDAS E ATUALIZAO DA PREDIO


O vetor de erro projetado ek+1 requer os valores futuros do efeito de perturbaes no-medidas, que no so
conhecidos no instante k. Eles s podem ser estimados com base em informaes atuais disponveis. No
penltimo instante, k-1, com base no mesmo modelo de resposta ao degrau, o valor y k foi predito como a
sada esperada no instante k. Com a medio real y k agora disponvel, a discrepncia na predio do modelo
tambm se torna disponvel:
k yk y k

No DMC, esta discrepncia atribuda ao efeito de perturbaes no-medidas, no consideradas no modelo.


tambm assumido que esta a melhor estimativa dos valores futuros destas discrepncias. Assim:
k i k yk y
; i 1,2,..., p
w
k

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

... ... : ...


e2, k 1
S 21 : S 22

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

OBTENDO A RESPOSTA AO DEGRAU


Os modelos de resposta ao degrau baseiam-se em que o sistema est inicialmente em estado estacionrio. Para
um sistema linear invariante no tempo e SISO, a mudana da sada do processo a uma mudana unitria na
entrada u :

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

(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 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)
...

... unu (1)


... unu (2)
... unu (3)

...
...

os coeficientes da resposta ao degrau so estimados

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

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


n

y (k )

h u (k i)
i

i 1

onde

y ( k ) y ( k ) y ( k 1)
e

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


Se a sada de interesse for integradora, o modelo :
y ( k )

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

EXEMPLO DE CONTROLE PREDITIVO SEM RESTRIES


% 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);

ANLISE DA MALHA FECHADA (mpctutst.m)

plotfrsp(eyefrsp); % sensitivity
plotfrsp(frsp); % complementary sensitivity
CONTROLE PREDITIVO COM RESTRIES

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

Você também pode gostar