Você está na página 1de 5

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO

GRADUAÇÃO EM ENGENHARIA QUÍMICA, CAMPUS DE ALEGRE.

ENG 10933 - CONTROLE DE PROCESSOS, PROF. JULIO DUTRA.

Prática 02 - Implementação de modelos não lineares e linearização.

A plataforma do Simulink dispõe de blocos especiais para simulação de


modelos de processos lineares – State-Space e Transfer Functions. Contudo,
no caso de programar modelos não lineares para simulação ou linearização, o
usuário pode usar um bloco chamado de S-functions (System Functions).

As chamadas deste bloco são descrições de sistemas dinâmicos, escritas em


uma linguagem de programação própria (ou em C e compiladas como MEX-
files), que interage com os solvers do Simulink. Seu uso mais comum está
vinculado aos seguintes pontos:

a. Criação de novos blocos para o Simulink.


b. Incorporação de códigos em C ou MATLAB a uma simulação.
c. Descrição de um sistema como uma sequência de equações
matemáticas no lugar de utilizar a álgebra de blocos.
O bloco de S-function trabalha com apenas um canal de entradas (in), um
canal de variáveis de saída (out) e elementos internos, também chamados de
estados (x), definidos dentro da função system, conforme o esquema:
Para tanto, o modelo não linear do processo em estudo pode ser implementado
como um script *.m (arquivo comum do Matlab). Este modelo é referenciado no
script da s-function, a qual é chamada pelo “bloco da S-function”. Assim, o
Simulink é capaz de fazer várias chamadas do modelo durante as fases
específicas de simulação.

Nessas chamadas, são executadas tarefas como cálculo das saídas,


atualização de estados, ou determinação de derivadas. Chamadas adicionais
são feitas no princípio e término de uma simulação para executar a
inicialização e a terminação. Para cada etapa, existe uma flag especificada
internamente, de modo que o solver saiba qual parte da rotina deve ser
executada. Assim, cada parte da rotina deve ser iniciada com um controlador
de fluxo (IF, CASE).

Deste modo, quando a flag vale 0, é realizada a inicialização das variáveis.


Neste ponto, a S-function deve retornar o tamanho dos vetores de entrada,
saída e estados, bem como o valor inicial das variáveis de estado (x0). Para
isso deve conter a expressão:

sys = [ ‘nº de estados contínuos’, ‘nº de estados discretos', ‘nº de


saídas’, ‘nº de entradas’, ‘flag para utilização da entrada para
determinação do próximo passo’, ‘nº de tempos de amostragem’ ]

Normalmente, para sistemas contínuos, se utilizam apenas as posições 1, 3 e 4


da vetor. As demais posições são substituídas por zero.
Quando a flag vale 1, devem ser informadas as equações diferenciais do
modelo e, quando a flag vale 4, devem ser informadas as equações de saída
(equação das medidas) da S-function.

Com o modelo implementado como uma S-function, podem ser feitas


simulações e outras tarefas como testes em malhas fechadas. No caso de
aplicação das técnicas clássicas de controle, os modelos não lineares podem
ser linearizados em torno de um ponto de interesse de modo automático. A
linearização feita em computador baseia-se na perturbação das variáveis do
modelo para obtenção das derivadas (ou da matriz jacobiana, no caso
multivariável).

Supondo um modelo não linear dado pela eq. 1, onde u é a entrada e x o


estado, sua forma linearizada é a dada pela eq. 2, em termos da variável-
desvio.

dx
 f (t , u, x) (1)
dt

dx '  df   df 
  x '   u' (2)
dt  dx  xs ,us  du  xs ,us

Caso o modelo seja multivariável, obtém-se uma representação matricial


chamada de modelo em Espaço de Estados:

dx '
 Ax ' Bu ' (4)
dt

Caso se tenha uma função de medida das variáveis de estado do tipo


y  g (t , u, x) , o modelo linear é acrescido da seguinte equação:

 dg   dg 
y'   x '   u' (5)
 dx  xs ,us  du  xs ,us

cuja notação matricial é dada por:

y '  Cx ' Du ' (6)

A representação em espaço de estados é muito útil na análise de estabilidade


do sistema em torno do ponto de linearização, com base no comportamento do
sistema linear que o aproxima. Além disso, outras propriedades intrínsecas do
sistema podem ser avaliadas, como a controlabilidade e a observabilidade,
podem-se obter funções de transferência e realizar o projeto de controladores.

Assim, para obter o modelo linearizado de um processo não linear, cujo bloco
S-function esteja em um diagrama no Simulink (por exemplo, no arquivo
nlinear_model), basta fazer a chamada da função LINMOD. Encontra-se o
modelo linearizado em torno da condição ( , ) com:

[A,B,C,D] = linmod('nlinear_model',xs,us)
Atividade prática

Linearize o modelo de um tanque de nível dado pela equação abaixo,


considerando a condição estacionária e os parâmetros fornecidos.
Posteriormente, faça comparação entre as respostas do modelo original e do
modelo linearizado.


Modelo = ( )− √ℎ

Condição inicial ℎ( ) = 16 ( ) = 10

Parâmetros =1 = 2.5

 Implementação do modelo (SYS)

function [sys, x0] = tanque_de_nivel(t,x,u,flag)

% Variáveis de entrada
Fin = u;
% Variáveis de estado
h = x;
% Parâmetros
Cv = 2.5;
A = 1;

if flag == 0
x0 = 16; % Condições iniciais
sys = [1 0 1 1 0 0]'; % Estrutura do sistema
elseif abs(flag) == 1
sys(1) = Fin/A – Cv/A*sqrt(h); % Equações do modelo
elseif flag == 3
sys = h;
else
sys = []; % Não utilizar demais flags
end

 Linearização do modelo (LINMOD)

Deve ser feito o seguinte diagrama, o qual inclui a função tanque_de_nivel.m


no bloco S-function para representar o comportamento não linear do tanque.
Para obter o modelo linear, faça o uso da função LINMOD:

[A,B,C,D] = linmod(' tanque_de_nivel ',xs,us)

Esta função lineariza o modelo em torno da condição estacionária especificada


pelos valores em e relativos respectivamente às variáveis de estado e de
entrada. O modelo linearizado é fornecido em termo de variáveis-desvio por
meio das matrizes ( , , , ) representativas do espaço de estados.

 Comparação entre as respostas dos modelos (STATE SPACE)

Crie um novo diagrama no Simulink com o bloco S-function para representar o


modelo não linear e o bloco State-Space para o modelo linearizado. Esses
blocos devem receber respectivamente a função do modelo não linear e as
matrizes ( , , , ). Realize a comparação das respostas a um degrau na
entrada do processo deste exemplo por meio do bloco Step e envie os sinais
de entrada e de saída para a área de trabalho do Matlab, com o bloco
To Workspace, para fazer a comparação das respostas.

Você também pode gostar