Академический Документы
Профессиональный Документы
Культура Документы
Uberlndia
2014
Resumo
A identificao de sistemas tem sido usado como uma importante ferramenta para
simulao, predio e controle de sistemas dinmicos. As dificuldades inerentes ao
modelamento faz com que este tipo de tcnica seja ideal para modelamento de
sistemas complexos. Neste contexto, o presente trabalho tem por objetivo realizar a
identificao de um forno eltrico utilizando modelos NARMAX, bem como
apresentar uma descrio detalhada dos passos tomados para a identificao do
sistema.
Palavras-chave: Identificao de sistemas, modelos NARMAX, modelos caixa preta, forno eltrico.
Abstract
The system identification have been used as an important tool for simulation,
prediction and control of dynamical systems. The intrinsics difficulties in
modeling,causes this kind of technique be ideal for modeling complex systems. In
this context, this work aims to make the identification of an electric oven using
NARMAX models and presents a detailed description of the steps taken for system
identification.
Keywords: System identification, NARMAX models, black box models, electric oven.
Sumrio
Introduo.....................................................................................................Pg 04
Desenvolvimento..........................................................................................Pg 07
Concluso.....................................................................................................Pg 24
Referncias Bibliogrficas............................................................................Pg 25
Apndice A (Cdigo fonte do programa).....................................................Pg 26
Apndice B (Tabela com regressores candidatos)........................................Pg 27
Apndice C (Funes usadas estimao do modelo)...................................Pg 28
1 - Identificao de sistemas
Qualquer sistema, considerado como uma relao de causas e efeitos pode ser
representado matematicamente. Os modelos matemticos possibilitam, por exemplo, a
simulao do comportamento do sistema sem a necessidade da construo fsica do mesmo.
Para que isso seja possvel, necessrio que o modelo seja fiel ao sistema (BILLINGS, 2013;
LJUNG, 1999; NELLES, 2001).
Uma abordagem, para obteno do modelo matemtico, o modelamento analtico
(BILLINGS, 2013), ou modelagem caixa branca (AGUIRRE, 2007; NELLES, 2001), onde
um conhecimento profundo do sistema a ser modelado necessrio. O modelo obtido com
base na diviso do sistema em subsistemas (LJUNG, 1999), onde feita uma anlise dos
fenmenos fsico-qumicos envolvidos e em relaes matemticas conhecidas.
A identificao de sistemas estuda tcnicas alternativas de modelagem matemtica.
O modelo obtido com a medio das entradas e sadas do processo, por isso pouco ou
nenhum conhecimento prvio do sistema necessrio. So tcnicas aplicveis a qualquer
sistema e so relativamente rpidas (AGUIRRE, 2007; BILLINGS, 2013; LJUNG, 1999).
Um modelo apenas uma representao aproximada do sistema. Por isso, no h um
modelo que represente todas as caractersticas de um sistema real, compreendendo, sim,
algumas caractersticas. Um modelo com muitas caractersticas algo intangvel.
Desenvolvendo modelos de forma aproximado, so feitas simplificaes. O modelo ento
testado e, se for considerado inadequado, reavaliado (AGUIRRE, 2007). Ljung explica bem
esse conceito:
Um sistema real um objeto de um tipo diferente dos nossos modelos matemticos.
De certa maneira, h uma impenetrvel, porm transparente tela entre nosso mundo
de descries matemticas e o mundo real. Ns podemos olhar atravs dessa janela e
comparar certos aspectos do sistema fsico com sua descrio matemtica, mas ns
nunca podemos estabelecer uma conexo exata entre eles. A questo de
susceptibilidade natural para descrio matemtica possui aspectos filosficos
profundos, e em termos prticos ns temos que ter uma viso mais pragmtica dos
modelos. Nossa aceitao dos modelos deve ser mais guiada pela utilidade do que
pela verdade. Entretanto, ns podemos ocasionalmente usar um conceito de
sistema verdadeiro, definido em termos de um modelo matemtico. Essa fico
til para comparar mtodos de identificao e entender suas propriedades. Em certos
contextos ns assumimos que os dados observados foram gerados de acordo com
Com base no exposto, o presente trabalho tem por objetivo realizar a identificao do
modelo de um forno eltrico que foi apresentado em (AGUIRRE, 2007).
O forno eltrico utilizado para a identificao consiste em uma caixa metlica com
dimenses de 15x10x31 cm de alumnio com espessura de 2 mm. Uma lmpada eltrica de
200W como elemento de aquecimento.
O fato do forno no ser isolado termicamente faz com que variaes na temperatura
ambiente afetem seu comportamento dinmico.
Como sensor de temperatura foi utilizado um resistor de coeficiente de temperatura
negativo (NTC) ligado em um conversor A/D de 12 bits (RODRIGUES, 1996) ligado a um
computador, a figura 1.2 mostra um esquema do sistema utilizado para realizar a
identificao.
Neste trabalho ser utilizado um modelo NARMAX e o algoritmo de GolubHouseholder para determinao da estrutura e dos parmetros simultaneamente. A seguir ser
descrito os procedimentos realizados para identificao do sistema, bem como os resultados.
2 - Desenvolvimento
Passo 1 Coleta dos Dados
O primeiro passo para a identificao de um sistema a coleta dos dados que possam
fornecer informaes para a identificao. No presente caso a coleta no foi realizada, pois se
partiu de duas massas de dados fornecidas juntamente com o livro Introduo Identificao
de Sismteas Tcnicas Lineares e No-lineares aplicadas a Sistemas Reais, de Luis Antnio
Aguirre. Contudo ainda assim algum tratamento sobre os dados coletados foi necessrio.
Para coletar os dados do sistema deve-se utilizar um sinal de entrada suficientemente
amplo em frequncia e amplitude para que possa assim, excitar as dinmicas de interesse
(RODRIGUES, 1996). No sistema em estudo a entrada era o sinal de tenso aplicado ao
TRIAC e a sada a temperatura medida pelo sensor NTC.
No caso do forno, foi utilizado um rudo quantizado como sinal de excitao, isto ,
um algoritmo sorteia uma amplitude e mantm esta constante durante um tempo prestabelecido, e ento sorteia um novo valor e o mantm pelo mesmo perodo de tempo, a
figura 2.1 e 2.2 mostra o sinal de entrada e o respectivo sinal de temperatura para as duas
massas utilizadas na identificao F0407 e F0307.
Figura 2.1 Massa de dados F0407, sinal de entrada em azul e sinal de sada em vermelho.
Fonte: Adaptado de (RODRIGUES, 1996).
Figura 2.2 Massa de dados F0307, sinal de entrada em azul e sinal de sada em vermelho.
Fonte: Adaptado de (RODRIGUES, 1996).
))
))
(2.1)
(2.2)
e
, o menor
))
(2.4)
))
Figura 2.3 Autocovarincia linear do sinal de sada do forno utilizando a massa de dados
F0407. Fonte: Elaborao prpria.
Figura 2.5 Autocovarincia Linear do sinal de sada do forno decimado pelo fator de
=3
Figura 2.6 Autocovarincia No-Linear do sinal de sada do forno decimado pelo fator de
= 3 utilizando a massa de dados F0407. Fonte: Elaborao prpria.
11
Agora possvel observar que o mnimo das autocovarincia linear e no linear ocorre
prximo de
decimado
= 15, valor este que satisfaz a condio 2.3. Assim o sinal amostrado ser
= 3, o que corresponde a dizer que o sinal foi amostrado a uma taxa de 210 s.
Para se ter uma noo da importncia de adequar o sinal escolhendo uma taxa de
decimao apropriada, o sistema foi identificado sem utilizar uma taxa de decimao,
simulado e comparado com a massa de dados F0307. Observe a figura 2.7.
Figura 2.7 Simulao de um sistema identificado sem utilizar uma taxa de decimao
adequada. Fonte: Elaborao prpria.
))
))
(2.5)
sistema linear.
)
(2.6)
sistema no linear.
)
)]
Sendo
(2.7)
.
13
Sendo que
(2.9)
E o limite superior
).
fatores do tipo
) ou
para
no
.
Note que o somatrio ainda no foi apresentado, como se tem apenas um termo
regressor, e esse termo se refere a o limite superior do produtrio ser tambm referente ,
logo se tem:
)
14
15
Assim a funo
(2.10)
Esta equao nos diz que a parcela no explicada pelos regressores igual soma dos valores
quadrticos do vetor de resduos
).
Assim define-se a taxa de reduo de erro (ERR) como,
(2.11)
A equao 2.8 pode ser entendida da seguinte maneira, quanto mais prximo
estiver de
, maior ser o valor de
, atingindo um mximo de 1, o que
significa dizer que o termo i, em questo, explica totalmente os dados de y.
Logo para selecionar os termos que faro parte da estrutura, so utilizados aqueles que
apresentam maior ERR.
Passo 4 Estimao dos parmetros
16
Para realizar a estimao dos parmetros do modelo, foi utilizado o mtodo dos
mnimos quadrados e o algoritmo de Golub-Householder (Aguirre, 2007), para determinao
da taxa de reduo do erro.
Definindo-se a equao matricial,
(2.12)
Onde,
)
)
];
)
)
[ ]
(2.13)
]
)
)
(2.14)
], i=1,2,...,
)
Na equao 2.12,
representa a matriz de regressores, representa os parmetros
estimados e representa o erro de estimao, isto , o quanto o estimado difere do y real.
Assim considerando uma matriz de regressores candidatos
)
a matriz de regressores
como,
)
)
)
)
, como,
)
(2.15)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
(2.16)
(2.19)
17
))
)
)
)
(2.20)
))
))
(2.21)
)]
)]
)
18
Sendo
19
Pela anlise de resduos, observa-se que a figura 2.9 muito semelhante a funo
impulso unitrio, o que satisfaz a condio 2.21, as figuras 2.10, 2.11 e 2.13 apresentam um
pequeno intervalo que est fora do intervalo de confiana, o que poderia levar a afirmao de
20
que a funo de correlao cruzada no zero, contudo tal intervalo muito pequeno para se
fazer tal considerao.
Outro ponto interessante que apesar do modelo obtido neste trabalho ser bastante
diferente do modelo obtido em (Rodrigues, 1996), a anlise de resduos mostrou que ambos
os modelos so vlidos.
A anlise estatstica mostrou que os resduos so aleatrios e, portanto no houve
polarizao do estimador, contudo no comprova se o modelo capaz de reproduzir a
dinmica do forno eltrico, para isso ser necessrio uma simulao dinmica, o que foi feito
no prximo passo.
Passo 6 Simulao Dinmica
Para simulao de um modelo, deve-se utilizar um conjunto de dados diferentes
daqueles utilizados na identificao do modelo (Aguirre, 2007), assim os dados para
simulao foi a massa de dados F0307.
Existem diversas formas utilizadas para simular um sistema. Uma forma comum, mas
que no fornece bons resultados para o processo de identificao a predio um passo a
frente, neste tipo de simulao o valor estimado sempre identificado utilizando os dados
medidos de um passo anterior, fazendo com que os dados estimados sejam muito prximos
dos valores medidos. Esse tipo de simulao pode levar a enganos e fazer com que se pense
que o modelo melhor do que realmente . A figura 2.14 apresenta uma simulao um passo
a frente.
Figura 2.14 Predio de estados um passo a frente. Em azul os dados medidos, em verde a
simulao de um modelo um passo a frente, e em vermelho a simulao infinitos passos a frente.
21
22
Concluso
As tcnicas de identificao de sistemas utilizadas neste trabalho foram bastante
eficientes para identificao de sistemas no lineares. Foi possvel observar que todas as fases
de identificao de sistemas apresentam uma srie de cuidados que devem ser respeitados
para uma correta identificao.
Algumas etapas comuns da identificao de sistemas como o agrupamento de termos e
a incluso de resduos com o intuito de reduzir a polarizao no foram incorporados ao
presente trabalho, o que sugere que resultados melhores que os apresentados na figura 2.15
podem ainda ser obtidos. Como sugesto para trabalhos futuros sugere-se a utilizao destas
etapas para identificao do modelo, e anlise do quanto estas etapas podem melhorar um
modelo a ser indetificado.
23
Bibliografia
Aguirre, L. A. (2007). Introduo identificao de sistemas: tcnicas lineares e no lineares aplicadas
a sistemas reais (3 ed.). Belo Horizonte: UFMG.
BILLINGS, S. A. (2013). Nonlinear System Identification: NARMAX Methods in the Time, Frequency,
and Spatio-Temporal Domains. Wiley.
LJUNG, L. (1999). System Identification: Theory for the User (2. ed.). Englewood: PTR Prentice Hall.
NELLES, O. (2001). Nonlinear System Identification: From Classical Approaches to Neural Networks
and Fuzzy Models. Berlim, Alemanha: Springer Science & Business Media.
RODRIGUES, G. G. (s. d.). Identificao de Sistemas Dinmicos No-Lineares Utilizando Modelos
NARMAX Polinomiais Aplicao a Sistemas Reais. Dissertao de Mestrado, UFMG, Belo
Horizonte.
24
25
u(k-1)
u(k-2)
u(k-3)
y(k-1)
y(k-2)
y(k-3)
u(k-1).^2
u(k-1)*u(k-2)
u(k-1)*u(k-3)
u(k-2).^2
u(k-2)*u(k-3)
u(k-3).^2
u(k-1).^3
u(k-1).^2*u(k-2)
u(k-1).^2*u(k-3)
u(k-1)*u(k-2).^2
u(k-1)*u(k-2)*u(k-3)
u(k-1)*u(k-3).^2
u(k-2).^3
u(k-2).^2*u(k-3)
u(k-2)*u(k-3).^2
u(k-3).^3
y(k-1)*u(k-1)
y(k-1)*u(k-2)
y(k-1)*u(k-3)
y(k-2)*u(k-1)
y(k-2)*u(k-2)
y(k-2)*u(k-3)
y(k-3)*u(k-1)
y(k-3)*u(k-2)
y(k-3)*u(k-3)
y(k-1).^2
y(k-1)*y(k-2)
y(k-1)*y(k-3)
y(k-2).^2
y(k-2)*y(k-3)
y(k-3).^2
y(k-1)*u(k-1).^2
y(k-1)*u(k-1)*u(k-2)
y(k-1)*u(k-1)*u(k-3)
y(k-1)*u(k-2).^2
y(k-1)*u(k-2)*u(k-3)
y(k-1)*u(k-3).^2
y(k-2)*u(k-1).^2
y(k-2)*u(k-1)*u(k-2)
y(k-2)*u(k-1)*u(k-3)
y(k-2)*u(k-2).^2
y(k-2)*u(k-2)*u(k-3)
y(k-2)*u(k-3).^2
y(k-3)*u(k-1).^2
y(k-3)*u(k-1)*u(k-2)
y(k-3)*u(k-1)*u(k-3)
y(k-3)*u(k-2).^2
y(k-3)*u(k-2)*u(k-3)
y(k-3)*u(k-3).^2
y(k-1).^2*u(k-1)
y(k-1).^2*u(k-2)
y(k-1).^2*u(k-3)
y(k-1)*y(k-2)*u(k-1)
y(k-1)*y(k-2)*u(k-2)
y(k-1)*y(k-2)*u(k-3)
y(k-1)*y(k-3)*u(k-1)
y(k-1)*y(k-3)*u(k-2)
y(k-1)*y(k-3)*u(k-3)
y(k-2).^2*u(k-1)
y(k-2).^2*u(k-2)
26
y(k-2).^2*u(k-3)
y(k-2)*y(k-3)*u(k-1)
y(k-2)*y(k-3)*u(k-2)
y(k-2)*y(k-3)*u(k-3)
y(k-3).^2*u(k-1)
y(k-3).^2*u(k-2)
y(k-3).^2*u(k-3)
y(k-1).^3
y(k-1).^2*y(k-2)
y(k-1).^2*y(k-3)
y(k-1)*y(k-2).^2
y(k-1)*y(k-2)*y(k-3)
y(k-1)*y(k-3).^2
y(k-2).^3
y(k-2).^2*y(k-3)
y(k-2)*y(k-3).^2
y(k-3).^3
27
reg7=yident(1:81);
% y(k-3)
reg8=reg2.^2;
% u(k-1).^2
reg9=reg2.*reg3;
% u(k-1)*u(k-2)
reg10=reg2.*reg4;
% u(k-1)*u(k-3)
reg11=reg3.^2;
% u(k-2).^2
reg12=reg3.*reg4;
% u(k-2)*u(k-3)
reg13=reg4.^2;
% u(k-3).^2
reg14=reg5.*reg2;
% y(k-1)*u(k-1)
reg15=reg5.*reg3;
% y(k-1)*u(k-2)
reg16=reg5.*reg4;
% y(k-1)*u(k-3)
reg17=reg6.*reg2;
% y(k-2)*u(k-1)
reg18=reg6.*reg3;
% y(k-2)*u(k-2)
reg19=reg6.*reg4;
% y(k-2)*u(k-3)
reg20=reg7.*reg2;
% y(k-3)*u(k-1)
reg21=reg7.*reg3;
% y(k-3)*u(k-2)
reg22=reg7.*reg4;
% y(k-3)*u(k-3)
reg23=reg5.^2;
% y(k-1).^2
reg24=reg5.*reg6;
% y(k-1)*y(k-2)
reg25=reg5.*reg7;
% y(k-1)*y(k-3)
reg26=reg6.^2;
% y(k-2).^2
reg27=reg6.*reg7;
% y(k-2)*y(k-3)
reg28=reg7.^3;
% y(k-3).^2
reg29=reg2.^2;
% u(k-1).^3
reg30=(reg2.^2).*reg3; % u(k-1).^2*u(k-2)
reg31=(reg2.^2).*reg4; % u(k-1).^2*u(k-3)
reg32=reg2.*reg3.^2;
% u(k-1)*u(k-2).^2
reg33=reg2.*reg3.*reg4; % u(k-1)*u(k-2)*u(k-3)
reg34=reg2.*reg4.^2;
% u(k-1)*u(k-3).^2
reg35=reg3.^3;
% u(k-2).^3
reg36=(reg3.^2).*reg4;
% u(k-2).^2*u(k-3)
reg37=reg3.*reg4.^2;
% u(k-2)*u(k-3).^2
reg38=reg4.^3;
% u(k-3).^3
reg39=reg5.*reg2.^2;
% y(k-1)*u(k-1).^2
reg40=reg5.*reg2.*reg3; % y(k-1)*u(k-1)*u(k-2)
reg41=reg5.*reg2.*reg4; % y(k-1)*u(k-1)*u(k-3)
reg42=reg5.*reg3.^2;
% y(k-1)*u(k-2).^2
reg43=reg5.*reg3.*reg4; % y(k-1)*u(k-2)*u(k-3)
reg44=reg5.*reg4.^2;
% y(k-1)*u(k-3).^2
reg45=reg6.*reg2.^2;
% y(k-2)*u(k-1).^2
reg46=reg6.*reg2.*reg3; % y(k-2)*u(k-1)*u(k-2)
reg47=reg6.*reg2.*reg4; % y(k-2)*u(k-1)*u(k-3)
reg48=reg6.*reg3.^2;
% y(k-2)*u(k-2).^2
reg49=reg6.*reg3.*reg4; % y(k-2)*u(k-2)*u(k-3)
reg50=reg6.*reg4.^2;
% y(k-2)*u(k-3).^2
reg51=reg7.*reg2.^2;
% y(k-3)*u(k-1).^2
reg52=reg7.*reg2.*reg3; % y(k-3)*u(k-1)*u(k-2)
reg53=reg7.*reg2.*reg4; % y(k-3)*u(k-1)*u(k-3)
reg54=reg7.*reg3.^2;
% y(k-3)*u(k-2).^2
reg55=reg7.*reg3.*reg4; % y(k-3)*u(k-2)*u(k-3)
reg56=reg7.*reg4.^2;
% y(k-3)*u(k-3).^2
reg57=(reg5.^2).*reg2; % y(k-1).^2*u(k-1)
reg58=(reg5.^2).*reg3; % y(k-1).^2*u(k-2)
reg59=(reg5.^2).*reg4; % y(k-1).^2*u(k-3)
reg60=reg5.*reg6.*reg2; % y(k-1)*y(k-2)*u(k-1)
reg61=reg5.*reg6.*reg3; % y(k-1)*y(k-2)*u(k-2)
reg62=reg5.*reg6.*reg4; % y(k-1)*y(k-2)*u(k-3)
reg63=reg5.*reg7.*reg2; % y(k-1)*y(k-3)*u(k-1)
reg64=reg5.*reg7.*reg3; % y(k-1)*y(k-3)*u(k-2)
reg65=reg5.*reg7.*reg4; % y(k-1)*y(k-3)*u(k-3)
reg66=(reg6.^2).*reg2; % y(k-2).^2*u(k-1)
reg67=(reg6.^2).*reg3; % y(k-2).^2*u(k-2)
28
reg68=(reg6.^2).*reg4;
reg69=reg6.*reg7.*reg2;
reg70=reg6.*reg7.*reg3;
reg71=reg6.*reg7.*reg4;
reg72=(reg7.^2).*reg2;
reg73=(reg7.^2).*reg3;
reg74=(reg7.^2).*reg4;
reg75=(reg5.^3);
reg76=(reg5.^2).*reg6;
reg77=(reg5.^2).*reg7;
reg78=reg5.*reg6.^2;
reg79=reg5.*reg6.*reg7;
reg80=reg5.*reg7.^2;
reg81=reg6.^3;
reg82=(reg6.^2).*reg7;
reg83=reg6.*reg7.^2;
reg84=reg7.^3;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
y(k-2).^2*u(k-3)
y(k-2)*y(k-3)*u(k-1)
y(k-2)*y(k-3)*u(k-2)
y(k-2)*y(k-3)*u(k-3)
y(k-3).^2*u(k-1)
y(k-3).^2*u(k-2)
y(k-3).^2*u(k-3)
y(k-1).^3
y(k-1).^2*y(k-2)
y(k-1).^2*y(k-3)
y(k-1)*y(k-2).^2
y(k-1)*y(k-2)*y(k-3)
y(k-1)*y(k-3).^2
y(k-2).^3
y(k-2).^2*y(k-3)
y(k-2)*y(k-3).^2
y(k-3).^3
np=9;
% numero de parametros no modelo final
Psit=Psi(:,piv(1:np)); %define a matriz Psit com base na matriz Psi, com
todas as linhas e somente as colunas que foram selecionadas pelo vetor piv
teta=inv(Psit'*Psit)*Psit'*vec; %Determina os parmetros teta utilizando
mnimos quadrados.
teta2=[0.44551;0.57773;-0.63628;0.4860;-1.14580e-6;-9.97760e-5;-2.92710e5;7.88310e-3;7.43860e-8] ;%O parmetro teta2 foi retirado de (Aguirre,
2007) e foi utilizado apenas para comparao.
%Simulao 1 passo a frente
yUPAF=Psit*teta;
yUPAFAguirre=Psit*teta;
29
yest0(k)=0.778979244469561*yest0(k-1)+0.264968587335836*yest0(k-2)0.202230245793142*u(k-2)-0.002505004275601*u(k-1).^2-1.470916581337107e05*yest0(k-3)*u(k-2).^2+0.424915554330944*u(k-1)-0.002167793408121*yest0(k2)*yest0(k-3)-4.409058775720922e-05*u(k-1)*u(k-3).^2+3.854810662214531e05*yest0(k-1).^2*u(k-2);
end
%Plota os grficos
axes(handles.axes1);
plot(yest0(1:250,1),'r','DisplayName','yest(1:250,1)','YDataSource','yest(1
:250,1)');
hold on
plot(y(1:250,1),'black','DisplayName','y(1:250,1)','YDataSource','yest(1:25
0,1)');
plot(u(1:250,1),'g','DisplayName','y(1:250,1)','YDataSource','yest(1:250,1)
');
30
Funo MyHouse
function [A,err,Piv]=myhouse(Psi,np);
% [A,err,Piv]=myhouse(Psi,np);
% Do livro Matrix Computations 2a Ed. pg 212
% Dada a matriz Psi (m,n), esta rotina acha Q de forma
% que Q'*Psi=V triangular superior. A parte triangular
% superior de A substituda pela parte triangular
% superior de V.
%
% Assume-se que a ltima coluna de Psi o vetor de
% observacoes a ser explicado, y(k).
% np o nmero de regressores escolhidos para compor o modelo
% err um vetor de np valores que contem as taxas de reduo de erro
%
de cada um dos regressores escolhidos
% Piv um vetor que contem os indices dos regressores escolhidos, ou
%
seja so os indices das colunas usadas para pivotar a matriz
%
Psi np vezes.
[m,n]=size(Psi);
A=Psi;
yy=Psi(:,n)'*Psi(:,n);
piv=1:n-1;
for j=1:np
x=A(j:m,j);
% v=house(x)
% Do livro Matrix Computations 2a Ed. pg 196
% Dado um vetor x, volta-se um vetor v de tal forma
% que (I-2vv'/v'v)x zero excecao do primeiro elemento
nx=length(x);
u=norm(x,2);
v=x;
if u ~= 0
b=x(1) + sign(x(1))*u;
v(2:nx) = v(2:nx)/b;
31
end;
v(1)=1;
% fim house(x)
a=A(j:m,j:n);
%
%
%
%
%
a=rowhouse(a,v)
Do livro Matrix Computations 2a Ed. pg 197
Dada uma matriz A (m,n), e um vetor de comprimento m, v,
cujo primeiro elemento 1, este algoritmo substitui
A por P*A onde P=I-2vv'/v'v
b=-2/(v'*v);
w=b*a'*v;
a=a+v*w';
% fim rowhouse(a,v)
A(j:m,j:n)=a;
end;
% fim myhouse(A)
Piv=piv(1:np);
Funo Myccf Clcula a Funo de correlao cruzada.
function [t,r,l,B]=myccf(c,lag,flag1,flag2,cor);
%
%
%
%
%
%
%
%
%
%
%
%
[t,r,l]=myccf(c,lag,flag1,flag2,cor);
c1=c(:,1); c2=c(:,2);
the ccf are calculated from -lag/2 to lag/2 if flag1 = 1;
the ccf are calculated from 0 to lag if flag1 = 0;
plots the ccf between c1 and c2 if flag2 = 1;
if flag2=0 the ccf is returned in r (with respective
lags in t), but not plotted;
l is a scalar, the 95% confidence interval is +-l;
if cor='w', white lines are used. If cor='k', black.
r*B is the unnormalized value of r.
in case of intending the FI(eu) plot c MUST be =[e u]
32
l=ones(lag,1)*1.96/sqrt(length(c1));
% ccf
% Mirror r12(3,:) in raux
raux=r12(3,lag+1:-1:1);
%for i=1:lag+1
% raux(i)=r12(3,lag+2-i);
%end;
B=sqrt(cc1*cc2);
r=[raux(1:length(raux)-1) r12(2,:)]/B;
% if -lag to lag but no plots
if flag1 == 1,
t=-(lag):1:lag;
else
t=0:lag;
r=r12(2,1:lag+1)/B;
end;
% if plot
if flag2 == 1,
% if -lag to lag
if flag1 == 1,
t=-(lag):1:lag;
l=ones(2*lag+1,1)*1.96/sqrt(length(c1));
if cor=='w'
plot(t,r,'w-',t,l,'w:',t,-l,'w:',0,1,'w.',0,-1,'w.');
else
plot(t,r,'k-',t,l,'k:',t,-l,'k:',0,1,'k.',0,-1,'k.');
end;
xlabel('lag');
else
t=0:lag;
l=ones(lag+1,1)*1.96/sqrt(length(c1));
if cor=='w'
plot(t,r12(2,1:lag+1)/B,'w-',t,l,'w:',t,-l,'w:',0,1,'w.',0,-1,'w.');
else
plot(t,r12(2,1:lag+1)/B,'k-',t,l,'k:',t,-l,'k:',0,1,'k.',0,-1,'k.');
end;
xlabel('lag');
end;
else
% if -lag to lag, but no plots
if flag1 == 1,
t=-(lag):1:lag;
else
t=0:lag;
r=r12(2,1:lag+1)/B;
end;
end;
l=l(1);
33