You are on page 1of 19

Universidade Federal do Pará

Instituto Tecnológico

Programa de Pós-graduação em Engenharia Elétrica

Disciplina: Modelagem e Identificação de Sistemas

Professor: Dr. Walter Barra Jr. / Dr. Carlos Tavares

Identificação de Sistemas com auxílio da ferramenta MATLAB / Ident

Maio - 2009
O objetivo deste material é familiarizar o aluno com a ferramenta MATLAB/Ident,
um toolbox utilizado para processos de identificação de sistemas.

O toolbox IDENT permite que se faça vários tipos de testes para a obtenção de um
modelo matemático, que seja capaz de representar de forma aceitável um determinado
processo cuja função de transferência não é conhecida. Para isso, o toolbox necessita
apenas de valores suficientes da entrada do sistema e suas saídas correspondentes.

Para o exemplo a ser tratado ao longo deste roteiro, pretende-se explicar o


processo de geração de um sinal binário pseudo-aleatório (SBPA) para excitar o sistema
a ser identificado, e a obtenção das saídas. Assim, pode-se identificar o sistema
desejado.

I – Condições Iniciais

Para este exemplo, será considerada uma planta de segunda ordem. Vale ressaltar
que o objetivo deste roteiro é mostrar a utilização da ferramenta IDENT e da geração de
sinais SBPA.

Para a planta a ser identificada, considere ߱଴ = 10 ‫݀ܽݎ‬/‫ ݏ‬e ߦ = 0.05 (sistema sub-
amortecido), com ganho DC igual a 1. O sistema, então, poderia ser escrito no MATLAB e
representado da seguinte forma:

Wo = 10;

߱଴ଶ
‫ܩ‬ሺ‫ݏ‬ሻ = ଶ
E = 0.05; %será a variável ‘ξ’
‫ ݏ‬+ 2ߦ߱଴ ‫ ݏ‬+ ߱଴ଶ
num = Wo^2;
100
‫ ܩ‬ሺ‫ݏ‬ሻ =
‫ ݏ‬ଶ + 10‫ ݏ‬+ 100
den = [1 2*E*Wo Wo^2];

step(num,den); %resposta ao degrau

figure;

bode(num,den); %diagrama de bode


Fig.1: Resposta ao degrau para o sistema definido de 2ª ordem

Fig.2: Diagrama de Bode para o sistema definido de 2ª ordem

Observa-se que o sistema oscila ao redor do valor 1 na Fig.1 e o diagrama de Bode


mostra que o valor máximo da magnitude é na freqüência ߱଴ = 10 ‫݀ܽݎ‬/‫ݏ‬
II – Geração do Sinal Binário Pseudo-Aleatório (SBPA)

Primeiramente, deve-se encontrar as freqüências mínima e máxima do SBPA


desejado. Utilizaremos um valor 20 vezes menor que a freqüência do sistema para fmin e 5
vezes maior para fmax. Como a freqüência pode ser encontrada através de ߱଴ = 2ߨ݂,
então:

߱଴ 10
݂௠௜௡ = = ≈ 0.08‫ݖܪ‬
fmin = Wo/(2*pi*20);
2ߨ ∗ 20 1.2566
fmax = (5*Wo)/(2*pi);
5 ∗ ߱଴ 50
݂௠௔௫ = ≈ 8‫ݖܪ‬
2ߨ 6.2831

O passo seguinte consiste em definir-se o período de deslocamento Tshift dos


registradores do SBPA. Em seguida, calcula-se o número de células N do registrador:

1
݂௠௔௫ =
fmin = (Wo)/(2*pi*20)
3. ܶ௦௛௜௙௧
fmax = (5*Wo)/(2*pi)
1 1
ܶ௦௛௜௙௧ = = = 0,042‫ݏ‬
3݂௠௔௫ 24
Tshift = 0.042

% o comando ceil arredonda um


E

1 % número fracionado para o menor


݂௠௜௡ =
ሺ2 − 1ሻ. ܶ௦௛௜௙௧

% inteiro maior que este número

Como N é um número inteiro, então: %ex. ceil(5.5) = 6

1
ܰ = ݅݊‫ ݐ‬ቆlog ଶ ቆ + 1ቇቇ + 1
N = ceil(log2(1/(fmin*Tshift)+1))
݂௠௜௡ . ܶ௦௛௜௙௧

Finalmente, determina-se a freqüência e o período de amostragem do SBPA. Para


isto admite-se:

Ts = 10ms Ts = 0.01;

Fs = 100Hz Fs = 100;

De posse das informações anteriores, pode-se, agora, criar um gerador de sinais


binários pseudo-aleatórios utilizando-se ambiente MATLAB/Simulink (Basta digitar
‘simulink’ no workspace do MATLAB).
Cada célula do registrador será representado por um atraso unitário discreto,
conforme mostrado na figura a seguir. Para utilizá-lo, deve-se criar um novo modelo no
menu File>>New>>Model e basta arrastar o bloco para o ambiente criado.

Para o exemplo adotado aqui, precisa-se de 9 células (blocos de atraso). Para


configurá-los, basta dar dois cliques na imagem e a caixa de configuração se abre (Fig. 3
e 4)

Fig.3: Bloco atraso discreto


Fig.4: Configurações do bloco atraso discreto

A condição inicial consiste em um valor 0 ou 1 escolhido pelo usuário. Esta escolha


é feita e forma aleatória. O tempo de amostragem é o Tshift calculado anteriormente, e para
inseri-lo, basta colocar o nome da variável na caixa. O atraso deve ser unitário para a
construção de SBPA.

Para mudar o rótulo inferior de cada bloco, basta clicar sobre o nome e escrever o
desejado. Pode-se também mudar o nome de posição, arrastando-o para o local
desejado.

Qualquer variável definida no workspace pode ser utilizada diretamente nos blocos
Simulink, colocando-se apenas o nome desta variável no local apropriado.

Após definir-se as 9 células, deve-se garantir que o sistema irá alternar os valores
em -1 ou 1. Esta condição é necessária para o sistema, pois os valores que o sistema
trabalha são 0 ou 1. Para realizar esta tarefa, acrescenta-se um bloco ‘somador’ na saída
(Fig. 5), que realizará uma subtração com um bloco ‘constante’ de valor 0.5 (Fig. 6). Em
seguida, multiplica-se por um bloco do tipo ‘ganho’, de valor 2 (Fig.7). Isto garante a faixa
de operações necessárias.
Fig.5: Bloco somador

Fig.6: Bloco constante


Fig.7: Bloco ganho

O sistema ficará como a Fig. 8.

Fig.8: Sistema limitado em -1 ou 1

O último passo do SBPA, consiste em realizar a lógica OU Exclusivo entre os bits


(células representadas pelo operador atraso unitário discreto) devidos. Para maiores
informações, consultar (AGUIRRE, 2004).

Para um sistema com nove células, a operação lógica deve ser realizada entre os
bits 5 e 9. Para isso, acrescenta-se um bloco ‘operador lógico’ (Fig. 9).
Fig.9: Bloco de operações lógicas

Clicando-se sobre este bloco, é exibida a janela conforme a Fig. 10:

Fig.10: Configurações do bloco de operações lógicas.

Basta selecionar-se a operação lógica XOR (OU Exclusivo) a fazer-se as devidas


ligações. O diagrama de blocos Simulink para o SBPA final pode ser observado na Fig.
11.
Fig.11: Gerador de SBPA

Neste ponto, testa-se para ver se o gerador de sinais binários pseudo-aleatórios


está funcionando corretamente. Para isso, coloca-se um bloco “to workspace” na saída do
sistema. Este bloco permite criar-se um vetor com todos os valores obtidos na simulação.

Fig.12: Bloco “to workspace”


Nas configurações do bloco “to workspace”, admite-se o tempo de amostragem
igual a “Ts” e o formato exportado como um vetor (“array”). Pode-se renomeá-lo como “u”
(o que, futuramente, será o nosso sinal de entrada).

Fig.13: Configurações do bloco “to workspace”.

Fig.14: Gerador de SBPA com bloco “to workspace”.

O período de um sinal SBPA é definido por


ܶ = ሺ2ே − 1ሻ. ܶ௦௛௜௙௧

onde N é o número de células. Assim, o período deste sinal SBPA será de


aproximadamente 21,46 s. Então, um tempo de simulação de 100 segundos é o suficiente
para verificar o comportamento do sinal.

Simulando-se o sistema, no botão ► o vetor “u” torna-se variável do wokspace do


MATLAB.

Pode-se colocar todos os blocos definidos até aqui (excluindo-se o bloco “to
workspace”) em um sub-sistema. Isto significa agrupar estes blocos, visualmente, dentro
de uma única unidade. Para isto, basta se selecionar os blocos, clicar com o botão da
direita do mouse e marcar a opção “Create Subsystem”. O resultado pode ser visto assim:

Fig.15: Sistema reduzido em um único bloco

III – Obtenção do sinal de saída

Para se obter o sinal de saída do sistema estudado, será necessário acrescentar-se


um bloco do tipo Função de Transferência no mesmo ambiente Simulink do Gerador
SBPA, como a seguir:
Fig.16: Bloco função de Transferência

O numerador e o denominador deste bloco já foram definidos pelas variáveis “num”


e “den”. Mas, se necessário, pode-se escrever as expressões que os definem nos campos
equivalentes.

Além disso, acrescenta-se outro bloco “to workspace” para coletar a saída do
sistema, que será chamado de “y”. A Fig. 17 mostra como fica o sistema final no ambiente
Simulink. O bloco scope permite a visualização do sinal desejado (vê-se a saída do
sistema).

Fig.17: Sistema completo


Simulando-se o sistema, tem-se no workspace do MATLAB os vetores de entrada
“u” e de saída “y”.

IV – Identificação de sistemas com auxílio do MATLAB/Ident

Para iniciar o toolbox de identificação de sistemas, basta digitar-se o comando


“ident” no workspace. A tela inicial do Ident é mostrada na Fig. 18. No menu “Import data”
pode-se selecionar os valores/funções que representarão a entrada e a saída do sistema.
No exemplo adotado, seleciona-se “”Time Domain Data”.

Fig.18: MATLAB/Ident e aba de importação de dados

O sinal de entrada é o vetor “u”, que corresponde ao SBPA; a saída é o vetor “y”
obtido e tempo de início da simulação é 0. Agora, basta clicar em “import” para carregar o
modelo desejado.

Clicando-se no sinal gerado (por padrão, o nome é mydata) pode-se selecioná-lo. A


caixa “Time plot” plota os sinais de saída e entrada no tempo. Este sinal será trabalhado a
partir de agora, então, deve-se arrastá-lo para a caixa “Working Data”.

Para muitos casos, é interessante se remover a média e as tendências dos sinais


de entrada e saída. Para isso, basta ir na caixa de seleção “Preprocess” e selecionar
“Remove means”. Será gerado um novo sinal e este novo sinal deve ser arrastado até a
posição de sinal de trabalho em “Working Data”. Em seguida, para este novo sinal,
seleciona-se a opção “Remove trends” e o sinal gerado será aquele usado, de fato, para a
identificação do sistema (Fig. 19).
Fig. 19: Sinais de entrada sem média ou tendências.

Obs.1: Para excluir um sinal não mais desejado, basta arrastá-lo até a lixeira.

Obs.2: Clicando-se 2 vezes sobre um sinal, pode-se alterar algumas de suas


características, como nome ou cor (as cores estão no formato RGB - Red, Blue and
Green - para determinar uma cor, basta selecionar os valores de cada tom entre 0 e 1).

Com este último sinal, deve-se separa agora os dados para identificação do
sistema e os dados para validação do mesmo. Para isto, basta selecionar-se “Select
range” no menu “Preprocess”.

Fig.20: Dados para identificação e para validação


Para a identificação, seleciona-se metade das amostras, escrevendo o intervalo de
1 a 5000 na caixa “Samples” (há 10001 amostras disponíveis). Renomea-se o sinal como
“identificação” e se insere no botão “Insert”.

Os dados de validação são obtidos de forma semelhante, mudando-se o intervalo


das amostras para [5001 10001].

A partir deste momento, deve-se colocar o sinal de Identificação como “Working


Data” e o de validação como “Validation Data” (localizado na parte inferior da janela do
Ident).

Fig.21: Dados de validação e identificação nos lugares corretos.

Para estimar o modelo, seleciona-se a opção “Parametric models” no menu


“Estimate”. A janela de opções da Fig. 22 irá surgir. Seleciona-se a estrutura desejada
(ARX) e clica-se no botão “Order Selection”. Esta opção faz com que o MATLAB
estabeleça uma faixa de modelos possíveis para que o usuário escolha a melhor.
Fig.22: Definição do tipo de modelagem

Finalmente marca-se “Estimate” para que as opções sejam exibidas.

Fig. 23: Seleção do melhor modelo


Cada barra mostrada na Fig. 23 consiste num possível modelo para o sistema em
questão. Elas mostram quanta informação, em percentuais, não pôde ser extraída pelo
modelo. A partir da segunda barra (um modelo de 2ª ordem) tem-se um desempenho bem
satisfatório. Como todas as demais barras são semelhantes, é mais indicado selecionar-
se aquela de menor ordem, pois reduz a complexidade do sistema. Basta clicar-se sobre
a barra desejada e, em seguida, no botão “Insert”. Na lateral direita, pode-se observar os
valores dos polinômios a e b.

Com o modelo identificado, pode-se fazer algumas avaliações para se determinar


se ele é, de fato, um modelo aceitável. Primeiramente, marcando-se a opção “Model
outpu”, tem-se um comprativo gráfico entre o modelo original e aquele identificado, com o
grau (em %) de aproximação, como mostra a Fig. 24.

Fig. 24: Resultados obtidos.

Outra informação muito importante está na análise dos resíduos. A opção “Model
resids” exibe a Função de Autocorrelação dos Resíduos (FAC) da saída e a Função de
Correlação Cruzada (FCC) dos resíduos da entrada e da saída.
Fig. 25: FAC e FCC para os resíduos.

A importância desta análise vem de algumas informações importantes.


Primeiramente, sabe-se que um dado (uma informação) é composto de uma parte
determinística e uma parte aleatória. Se o modelo fosse ideal, ele conseguiria extrair toda
esta informação determinística e o resultado seria um sinal 100% aleatório (ruído branco).

Em segundo lugar, a FAC de um ruído branco é nula para quaisquer valores fora
da origem, onde ela é representada por um impulso (AGUIRRE, 2004).

Logo, se a análise dos meus resíduos mostrarem uma FAC que se comporta como
a de um ruído branco para uma determinada faixa definida por um desvio padrão, então, o
modelo é considerado satisfatório.

O Ident também pode exibir outras informações, como os pólos e zeros do sistema
(“Zeros and poles”) ou a resposta em Frequencia do modelo (“Freqency resp”).

Se for desejado, pode-se observar o sinal resultante arrastando-o para a caixa “To
LTI Viewer”. O modelo também pode ser exportado para o workspace (opção “To
Workspace”).

V - Bibliografia

AGUIRRE, L. A. Introdução à Identificação de Sistemas: Técnicas Lineares e Não-


Lineares Aplicadas a Sistemas Reais. 2. ed. Belo Horizonte: Editora UFMG, 2004.

You might also like