análise de sistemas ii - modelamento e identificação de sistemas

12
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

Upload: ciro-marcus

Post on 19-Jul-2015

94 views

Category:

Education


2 download

TRANSCRIPT

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 FINALIDENTIFICAÇÃO DE SISTEMAS

Disciplina: Análise de Sistemas II - Modelamento

Professor: Prof. Júlio Queiroz

Alunos: Ciro Campos

Dezembro / 2005

1/12

Análise de Sistemas II – Modelamento Trabalho Final

Índice

Geração da massa de dados.........................................................................................................3Estimação pelo Método Sundaresan Subamortecido..................................................................4Estimação pelo Método Malha Fechada.....................................................................................8Estimação pelo Método dos Mínimos Quadrados....................................................................10Questionário..............................................................................................................................12

2/12

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

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

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

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

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

Análise de Sistemas II – Modelamento Trabalho Final

Estimação pelo Método Malha Fechada

%Inicioclose allclcload 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 onhold 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 1yn=0.9324; %Ponto de Mínimo Obtido pelo Gráficoyp2=1.0176; %Ponto de Maximo 2deltat=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

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

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

% QSInumit=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

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

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