Você está na página 1de 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:

x k+1 = f(x k , u k ) y k = g(x k )

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

J

(

y

k

N k

|

)

N 1

j 0

L

(

y

k

j k

|

,

u

k

j k

|

,

u

k

j k

|

)

Na equação acima,

y

k

N k

|

indica o valor no tempo k+N dadas informações até (e incluindo) o instante 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 cotrole.

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:

J

y
y

k

N k

|

y ref
y
ref

N 1

  • 2

Q

j 0

y  y k  j k | ref
y
y
k
j k
|
ref
  • 2 2

Q

u

k

j k

|

u

ref

R

u

k

j k

|

2

S

)

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

Ax

k

Bu

k

y

k

C x

k

e a função objetivo:

J

N 1

j 0

x

k

j k

|

2

Q

u

k

j k

|

2

R

)

x

k

j k

|

2

Q

x

T

Q x

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

u

k

 K x

k

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

K

k

P

k

C

T

(

C P

k

C

T

R

)

1

que utiliza a covariança do estimador de estado, denotada por

P

k

, propagada pela Equação de Ricatti:

P

k

1

A P

k

A

T

Q

A P

k

C

T

(

C P

k

C

T

R

)

1

C P

k

A T

P

0

Q

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 normalmentecomplexas, 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 em1976, 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:

y

k

j

N

i 1

h u i
h u
i

k

j

i

Segundo este modelo, as saídas dependem de uma combinação linear das entradas passadas; os pesos do somatório (h i ) 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 conseqüê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:

y

k

j

N 1

i 1

s

i

u

k

j

i

s

N

u

k

j

N

Otimização Plant-Wide Otimização Global estacionária (dia) Otimizador Local – Unidade 1 Otimizador Local – Unidade 2
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
Descentralizados da Unidade 1
Controladores PID
Descentralizados da Unidade 2
F
T
F
T
F
T
T
F
C
C
C
C
C
C
C
C

Controle Dinâmico

básico (segundos)

Os pesos das entradas de controle (movimentos de entradas) s i são 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. 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 arm,azenada 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 melhor 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 porincipais 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çã 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 qu 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 ={s 1 , s 2 ,

,

s n } T a resposta ao degrau unitário:

 
... s s n s 3 2 s 1
...
s
s
n
s
3
2
s
1
 
w k  3
   
w k  3
w
k
3
 

y

k

1

s

1

u

k

w

k

1

y

k

2

s

2

u

k

s

1

u

k

1

w

k

2

 

y

k

3

s

3

u

k

s

2

u

k

1

s

1

u

k

2

...

 
 

s

N

 

s

N

1

u

 

 

u

 

   

y

k

N

u

k

k

1

...

s

1

k

N

1

 

N

ou:

 

y

S

u

k

w

 

k

1

 

k

1

onde

 

u

k

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

s

0

0

...

 

0

 

1

s

2

s

3

s

s

1

2

0

s

1

...

...

0

0

S

 

...

s

...

s

...

s

...

...

s

, a Matriz Dinâmica do Sistema.

 

m

m

1

m

2

...

 

1

s

1

s

s

1

...

 

s

2

m

m

m

s

p

s

p

1

s

p

2

...

 

s

p

m

1

Passado Futuro Referência Saídas projetadaas y(k 1| k) Variáveis manipuladas u(k 1) u(k+m-1) u(k) Horizonte k+2
Passado
Futuro
Referência
Saídas projetadaas
y(k 1| k)
Variáveis manipuladas
u(k 1)
u(k+m-1)
u(k)
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 seqüência de controle u k que faça a saída predita se mover numa trajetória de referência:

*

y

k 1

[

y

*

k

1

y

*

k

2

y

*

k

3

,

...

,

*

y

k

p

]

T

ou seja, escolher u k tal que

0 * y ˆ  S  u  w  y k  1 k
0
*
y
ˆ
S
u
w
y
k
 1
k
k  1
Definindo o erro de projeção:
*
0
e
y
[ ˆ
y
w
]
k 
1
k
 1
k
k  1
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 u k que minimize uma norma do vetor

e

k

1

Su

k

, como a norma-2:

min

u

k

e

k

1

S

u

k

T

e

k

1

S

u

k

o clássico mínimos quadrados, com solução analítica:

 u

k

 

S

T

e

k 1

u

S

=0

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

O Erro Residual é definido como:

r *   y  y ˆ k  1 k  k  1
r
*
y
y ˆ
k 
1
k
k
 1

, a diferença entre a saída predita e a trajetória de referência:

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

Logo, a seqüência de controle u k 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

Su

k



T

e

k

1

Su

k

K

2

u

T

k

u

k

e a ação de controle resultante é:

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

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

O vetor de erro projetado e k+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

yˆ

k

foi predito como a

saída esperada no instante k. Com a medição real também se torna disponível:

y

k

agora disponível, a discrepância na predição do modelo

k

y

k

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
i
k

y

k

ˆ

y

k

;

i

1,2,

...

,

p

ESTRATÉGIA DE IMPLEMENTAÇÃO

Devido a imprecisões de predição, não é recomendável implementar a seqüência completa u k , u k+1 , u k+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 u k e, a seguir:

1)

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

Deslocar a origem do horizonte de predição para frente, removendo o primeiro elemento de cada um dos

Atualizar y * k+1 com qualquer nova informação de set-point. Atualizar y o k pela adição do efeito da implementação de u k , 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 w k+1

2)

3)

vetores atualizados y * k+1 , y o k e w k+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 , y o k+1 e w k+2 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:

 e   S : S    u  1, k  1
 e
 S
:
S
   u
1,
k 
1
11
12
1, k
...
...
:
...
...
e
S
:
S
 u
 
2,
k 
1
 
 
21
22
 
 
2, k
 

onde

e 1,k+1 é o erro projetado para a i ésima saída (i=1,2), u j,k é a seqüência de movimentos de controle para a j ésima variável de entrada (j=1,2), e S i,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 e k+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:

   1 T T  u  S S S  e k k
 1
T
T
u
S
S
S
e
k
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,

s

1

,

s

2

,

...

,

s

n

,

s

n

,

...

onde é assumido que o sistema se estabelece exatamente após n passos. A resposta ao degrau {s 1 , s 2 ,

, s n }

... constitui um modelo completo do sistema, que permite calcular a saída y para qualquer seqüência de entrada:

y

k

n

i 1

s

i

u

k

i

s

n

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:

s n - s n-1 = s n+1 - s n = s n+2 – s n+1 = ...

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

S

i

 

s

1,1,

i

s

2,1,

i

...

s

ny

,1,

i

s

1,2,

i

s

2,2,

i

...

s

ny

,2,

i

...

...

...

...

s

1,

nu i

,

...

s

ny nu i

,

,

 

onde

s l,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:

planta

nout (1)

nout (2)

...

(

nout ny

)

ny

delt 2

S

1

S

2

...

0

0

...

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

g

(

z

)

3

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

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:

 

y (1)

l

y (2)

l

 

y

l

...

...

 

u

1

(1)

(2)

 

u

2

(1)

(2)

...

u

nu

(2)

(1)

u

u

1

u

1

(3)

u

u

2

2

(3)

...

...

u

u

nu

nu

(3)

 

...

...

...

...

 

os coeficientes da resposta ao degrau são estimados

 

s

1,1,

 

s

1,2,

i

 

...

s

1,

 

i

 

nu i

,

s

2,1,

i

s

2,2,

i

...

S

  • i ...

 

...

s

ny

,1,

i

...

s

ny

,2,

i

...

s

...

ny nu i

,

,

 

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

y

(

k

)

n

i

h

u

(

k

i

)

 

i

1

onde

 

y (k )

y (k ) y(k 1)

 

e

h

i

s

i

s

i 1

(os coeficientes da resposta impulsional).

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

y

(

k

)

n

  • i 1

h

i

u

(

k

i

)

onde

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

h

i

h

i

h

i 1

h i

e s i são obtidos por:

h

i

j

h

k

i

i

j

h

i

j

h

j

1



j

1

k

1

h

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

% % Determine the impulse response coefficients via mlr. No penalties on % theta and delt
EXEMPLO DE CONTROLE PREDITIVO SEM RESTRIÇÔES % Copyright (c) 1994-98 by The MathWorks, Inc. % $Revision:
EXEMPLO DE CONTROLE PREDITIVO SEM RESTRIÇÔES % Copyright (c) 1994-98 by The MathWorks, Inc. % $Revision:

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; [y6,u6] =

% noise filtering time constant = 20

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);
plotall([y1,y2],[u1,u2],delt2); plotall([y3,y4],[u3,u4],delt2); plotall([y5,y6],[u5,u6],delt2); plotall([y7,y8],[u7,u8],delt2);

plotall([y1,y2],[u1,u2],delt2);

plotall([y3,y4],[u3,u4],delt2);

plotall([y1,y2],[u1,u2],delt2); plotall([y3,y4],[u3,u4],delt2); plotall([y5,y6],[u5,u6],delt2); plotall([y7,y8],[u7,u8],delt2);
plotall([y1,y2],[u1,u2],delt2); plotall([y3,y4],[u3,u4],delt2); plotall([y5,y6],[u5,u6],delt2); plotall([y7,y8],[u7,u8],delt2);

plotall([y5,y6],[u5,u6],delt2);

plotall([y7,y8],[u7,u8],delt2);

ANÀLISE DA MALHA FECHADA (mpctutst.m)

ANÀLISE DA MALHA FECHADA (mpctutst.m) plotfrsp(eyefrsp); % sensitivity plotfrsp(frsp); % complementary sensitivity CONTROLE PREDITIVO COM RESTRIÇÔES

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

CONTROLE PREDITIVO COM RESTRIÇÔES

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