Análise de Sistemas II - Modelamento e identificação de sistemas

400 visualizações

Publicada em

Análise de Sistemas II - Modelamento e identificação de sistemas

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
400
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Análise de Sistemas II - Modelamento e identificação de sistemas

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×