O documento apresenta os resultados de um trabalho final de identificação de sistemas dinâmicos utilizando três métodos: Método de Sundaresan Subamortecido, Método da Malha Fechada e Método dos Mínimos Quadrados. Foram gerados dados de um sistema, e cada método foi aplicado para estimar os parâmetros do sistema e comparar a resposta estimada com a real. O Método de Sundaresan apresentou a melhor identificação inicial, mas após ajustes dos parâmetros o Método de Sundaresan melhorou ainda mais a aproximação.
Acessibilidade, inclusão e valorização da diversidade
Análise de Sistemas II - Modelamento e identificação de sistemas
1. Análise de Sistemas II – Modelamento Trabalho Final
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
PUC-MG
ENGENHARIA ELETRÔNICA E DE TELECOMUNICAÇÕES
TRABALHO FINAL
IDENTIFICAÇÃO DE SISTEMAS
Disciplina: Análise de Sistemas II - Modelamento
Professor: Prof. Júlio Queiroz
Alunos: Ciro Campos
Dezembro / 2005
1/12
2. Análise de Sistemas II – Modelamento Trabalho Final
Índice
Geração da massa de dados.........................................................................................................3
Estimação pelo Método Sundaresan Subamortecido..................................................................4
Estimação pelo Método Malha Fechada.....................................................................................8
Estimação pelo Método dos Mínimos Quadrados....................................................................10
Questionário..............................................................................................................................12
2/12
3. Análise de Sistemas II – Modelamento Trabalho Final
Geração da massa de dados
close all;
clear all;
clc;
% Programa para gerar a massa de dados
t=0:0.001:0.6; % Tempo.
k=100; % Ganho do sistema.
g=tf(k*100, [1 50 100]); % Funçao de transferencia escolhida.
ft=feedback(g,1); % Funçao de transferencia do sistema.
dados=step(ft, t); % Variavel 'dados' ira conter a resposta ao degrau unitario.
figure(1)
plot(t, dados) % Plota a massa de dados em funçao do tempo.
grid on;
save massa.mat dados t % Salva no arquivo massa.mat a variavel dados em funcao do tempo.
3/12
4. Análise de Sistemas II – Modelamento Trabalho Final
Estimação pelo Método Sundaresan Subamortecido
close all;
clear all;
clc;
% Programa para estimaçao pelo Metodo Sundaresan Subamortecido
load massa.mat % Carrega a massa de dados gerada no programa geramassa.m.
k=dados(end); % Calcula o ganho.
% Calculo de m1:
m1=0;
deltat=0.001;
for i=1:length(dados)
m1=m1+(deltat*(k-dados(i)));
end;
% Calculo de Mi:
for i=2:length(dados)
if dados(i)>dados(i-1)
deltdados(i-1)=dados(i)-dados(i-1);
else
break;
end;
end;
for i=2:length(deltdados)
if deltdados(i)<deltdados(i-1)
y0=dados(i-1);
y1=dados(i);
t0=t(i-1);
t1=t(i);
mi=(y1-y0)/(t1-t0);
break;
end;
end;
tm=((k-y0)/mi)+t0; % Calcula tm.
lambdacalc=(tm-m1)*mi; % Calcula lambda
% Calculo de zeta.
zeta=0:0.0001:1.5;
for i=1:length(zeta)
if zeta(i)~=1
4/12
5. Análise de Sistemas II – Modelamento Trabalho Final
lambda(i)=(acos(zeta(i))/sqrt(1-(zeta(i)*zeta(i))))*exp(-zeta(i)*acos(zeta(i))/sqrt(1-
(zeta(i)*zeta(i))));
elseif zeta(i)==1
lambda(i)=0;
end;
end;
figure(1)
plot(lambda, zeta) % Plota zeta x lambda.
grid on;
% Calculo de zeta estimado:
for i=2:length(zeta)
if lambda(i)<lambdacalc
zetaest=zeta(i-1);
break;
end;
end;
wn=(acos(zetaest))/(sqrt(1-(zetaest*zetaest))*(tm-m1)); % Calcula wn.
td=m1-((2*zetaest)/wn); % Calcula td.
% Calculo da resposta ao degrau estimada:
prod1=2*zetaest*wn;
num=k*exp([-td 0])*wn*wn;
5/12
6. Análise de Sistemas II – Modelamento Trabalho Final
den=[1 prod1 num];
ftest=tf(num, den);
figure(2);
plot(t, dados, 'red'); % Plota a funçao real.
hold on;
step(ftest, t, 'blue') % Plota a funçao estimada.
grid on;
% Ajuste dos parametros da resposta estimada:
k2=k+0.1*k;
zetaest2=zetaest-0.1*zetaest;
wn2=wn-0.005*wn;
prod2=2*zetaest2*wn2;
num2=k2*exp([-td 0])*wn2*wn2;
den2=[1 prod2 num2];
ftest2=tf(num2,den2);
6/12
7. Análise de Sistemas II – Modelamento Trabalho Final
figure(3);
plot(t, dados, 'red'); % Plota a funçao real.
hold on;
step(ftest2,t,'blue') % Plota a funçao estimada ajustada.
grid on;
7/12
8. Análise de Sistemas II – Modelamento Trabalho Final
Estimação pelo Método Malha Fechada
%Inicio
close all
clc
load massa2.mat; %carrega a massa de dados
figure(1),plot(t,y) %plota a resposta do sistema a uma entrada em degrau
title('Resposta do Sistema a uma Entrada em Degrau - REAL')
grid on
hold on
%Aplicação dos Métodos Determinísticos para o Sistema Subamortecido
%1º Método : IDENTIFICAÇAO EM MALHA FECHADA
%A partir do Gráfico de Resposta ao Degrau do Sistema Real devemos
%determinar os parâmetros abaixo:
%cálculo do ponto de inflexão da resposta
[valormax, pos] = max(y);
yp1=1.2602; %Ponto de Maximo 1
yn=0.9324; %Ponto de Mínimo Obtido pelo Gráfico
yp2=1.0176; %Ponto de Maximo 2
deltat=41.5-10; %Variação de Tempo 1
kc=1;
A=1;
%Calculo dos parâmetros da F.T.
yinf=(yp2*yp1-yn^2)/(yp2+yp1-2*yn);
zeta= -log((yp2-yinf)/(yp1-yinf))/sqrt(4*pi^2+(log((yp2-yinf)/(yp1-yinf)))^2);
k=yinf/(kc*(A-yinf));
kf=kc*k;
td=(deltat*sqrt((1-zeta^2)*(kf+1)))/(pi*(zeta*sqrt(kf+1)+sqrt(zeta^2*(kf+1)+kf)));
tau=(deltat/pi)*(zeta*sqrt(kf+1)+sqrt(zeta^2*(kf+1)+kf))*sqrt((1-zeta^2)*(kf+1));
taubarra=((td*tau)/(2*(kf+1)))^0.5;
kbarra=kf/(kf+1);
ni=[-0.05*kbarra*td kbarra];
di= [taubarra^2 2*zeta*taubarra 1];
yi=step(ni,di,t);
figure(2), plot(t,yi,'r',t,y,'b'),legend('Modelo','Real',1);
title('Resposta do Sistema a uma Entrada em Degrau - MODELO')
grid;
printsys(ni,di);
8/12
9. Análise de Sistemas II – Modelamento Trabalho Final
SOLUÇÃO
FUNÇÃO DE TRANSFERENCIA
num/den = -0.31336 s + 0.9999
---------------------------
42.4349 s^2 + 5.1429 s + 1
9/12
10. Análise de Sistemas II – Modelamento Trabalho Final
Estimação pelo Método dos Mínimos Quadrados
close all;
clear all;
clc;
% Programa para estimaçao pelo Metodo dos Minimos Quadrados
load massa.mat % Carrega a massa de dados gerada no programa geramassa.m.
y(1:200)=dados(1:200);
y=y';
% QSI
numit=100; % Numero de amostras.
numl=200; % Numero de linhas da matriz QSI. Termos passados que serao considerados.
numc=6; % Numero de colunas da matriz QSI. Numero de parametros que serao
considerados.
inicio=106; % Inicio da amostragem.
for k=inicio:inicio+numit % Loop para verificar todas as amostras.
for j=1:numc % Loop para olhar todas as colunas da QSI.
p=-inicio+j+1; % Parametro de controle de inicio.
for i=1:numl % Loop para olhar todas as colunas da QSI.
qsi(i,j)=dados(k+p); % Formaçao da matriz QSI.
p=p+1; % Incremento no parametro de controle de inicio.
end;
end;
tetaest=(inv((qsi')*qsi))*(qsi')*y; % Calculo de teta.
vtetaest(1:length(tetaest), k-inicio+1)=tetaest; % Tetas estimados.
yest=qsi*tetaest; % y estimado.
vyest(1:length(yest), k-inicio+1)=yest; % y estimados (Vetor).
for i=1:length(yest)
err(i)=dados(k-inicio+i)-vyest(k-inicio+i); % Erro de estimaçao.
end;
jmq(k-inicio+1)=0; % Funçao custo.
for m=1:length(err)
jmq(k-inicio+1)=jmq(k-inicio+1)+(err(m)')*err(m);
end;
end;
10/12
11. Análise de Sistemas II – Modelamento Trabalho Final
[lin col]=min((jmq')) % Menor valor da funçao custo.
tetadef(1:length(tetaest))=vtetaest(1:length(tetaest), col); % O menor valor da funçao custo e
atribuido ao Teta estimado.
ydef(1:length(yest))=vyest((1:length(yest)), col); % Saida tera o valor da funçao custo.
figure(2)
plot(t, dados, 'blue') % Plota a saida real.
hold on;
t2=0:0.001:0.199;
plot(t2, ydef, 'red') % Plota a saida estimada.
grid on;
11/12
12. Análise de Sistemas II – Modelamento Trabalho Final
Questionário
1) Considerando que nenhum ajuste foi realizado para melhorar o resultado da identificação
original, qual dos métodos resultou na melhor identificação? Comente a sua resposta.
Como obsersarvado pelos gráficos obtidos, o método de Sundaresan
Subamortecido apresentou melhor identificação, onde os parâmetros utilizados no
método se apresentam mais consistentes do que aos parâmetros do método de
Mínimos Quadrados.
2) Após os ajustes para melhoria dos resultados, qual dos métodos resultou na melhor
identificação? Quais parâmetros foram ajustados em cada um dos métodos? Justifique os
ajustes.
Após os ajustes dos parâmetros, o método de Sundaresan Subamortecido
que já se apresentava melhor, ficou mais próximo ainda do sistema real, como pode
ser observado no gráfico após o ajuste manual. O parâmetro ajustado nesse método
foi o Zeta.
No método de Mínimos Quadrados os parâmetros foram ajustados na
tentativa e erro, conforme o sistema se aproximava do real.
12/12