INSTITUTO TECNOLÓGICO DE AERONÁUTICA
Douglas Coimbra de Andrade
Identificação Paramétrica de Sistemas Dinâmicos
Trabalho de Graduação
Ano 2005
Mecânica
CTA/ITA-IEM/TC-022/2005
DOUGLAS COIMBRA DE ANDRADE
IDENTIFICAÇÃO PARAMÉTRICA DE SISTEMAS DINÂMICOS
Orientador Prof. Dr. Alberto Adade Filho (ITA)
Divisão de Engenharia Mecânica-Aeronáutica
SÃO JOSÉ DOS CAMPOS
CENTRO TÉCNICO AEROESPACIAL
INSTITUTO TECNOLÓGICO DE AERONÁUTICA
2005 Dados Internacionais de Catalogação-na-Publicação (CIP)
Dados Internacionais de Catalogação-na-Publicação (CIP)Divisão Biblioteca Central do ITA/CTA
Andrade. Douglas Coimbra deIdentificação Paramétrica de Sistemas Dinâmicos / Douglas Coimbra de Andrade.
São José dos Campos, 2005.059f.
Trabalho de Graduação - Divisão de Engenharia Mecânica-Aeronáutica -Instituto Tecnológico de Aeronáutica, 2005. Orientador: Prof. Dr. Alberto Adade Filho.
1. Identificação Paramétrica. 2. Modelagem Matemática. 3. Sistemas Dinâmicos. I. Douglas Coimbrade Andrade. 11.Centro Técnico Aeroespacial. Instituto Tecnológico de Aeronáutica. Divisão deEngenharia Mecânica-Aeronáutica.
REFERÊNCIA BIBLIOGRÁFICA
ANDRADE, Douglas Coimbra de. Identificação Paramétrica de Sistemas Dinâmicos. 2005. 59. Trabalho de
Conclusão de Curso. (Graduação) - Instituto Tecnológico de Aeronáutica, São José dos Campos.
CESSÃO DE DIREITOS
NOME DO AUTOR: Douglas Coimbra de Andrade
TÍTULO DO TRABALHO: Identificação Paramétrica de Sistemas Dinâmicos
TIPO DO TRABALHO/ANO: Graduação / 2005
É concedida ao Instituto Tecnológico de Aeronáutica permissão para reproduzir cópias deste trabalhode graduação e para emprestar ou vender cópias somente para propósitos acadêmicos e científicos.O autor reserva outros direitos de publicação e nenhuma parte desta monografia de graduação podeser reproduzidasema autorizaçãodo autor. .
Dougl~~Coimbra de AndradeRua O~carReinaldo, 661. B. ProgressoCEP 36.400-000Cons. Lafaiete - MG
IDENTIFICAÇÃO P ARAMÉTRICA DE SISTEMAS DINÂMICOS
Essa publicação foi aceita como Relatório Final de Trabalho de Graduação
.':)..
Douglas Coimbra de AndradeAutor
Prof. Dr. Alberto Adade Filho (ITA)Orientador
's Gonzaga Trabassourso1le Engenharia Mecânica-Aeronáutica
São José dos Campos, 21 de novembro de 2005
AGRADECIMENTOS
A Deus, pois sem Ele nada é possível.
Agradeço a todos que, direta ou indiretamente, contribuíram com minha formação pessoal e
profissional.
RESUMO
A determinação de parâmetros de modelos de sinais é uma questão de relevo e etapa
essencial da análise em vários campos do conhecimento, possibilitando que o engenheiro, o
pesquisador ou o profissional em geral concluam investigações e cálculos sobre o objeto de
estudo através de simulações computacionais, por exemplo. Este trabalho focaliza a
identificação paramétrica por mínimos quadrados, de um ponto de vista não amplamente
tratado na vasta literatura técnica disponível sobre o assunto, trazendo contribuição ao tema.
Em especial, considera-se o problema de identificação de parâmetros que se apresentam em
várias equações de um modelo de múltiplas equações. Nessa perspectiva e contexto, é
desenvolvido um software para a identificação de modelos de sinais e sistemas discretos e
contínuos no tempo, utilizando um ambiente computacional de cálculo e visualização de
engenharia denominado McLabEn®, também desenvolvido pelo autor. O trabalho discute
ainda técnicas de discretização e filtragem para a adequação de modelos e dados para a
identificação pelo método implementado. Alguns estudos simulados são realizados,
focalizando aplicações específicas e relevantes de identificação de modelos, como a da
dinâmica lateral de uma aeronave, entre outras, tanto no sentido de validar o software como
para atestar a qualidade dos resultados obtidos e revelar as limitações da abordagem. O
trabalho é concluído com sugestões para trabalhos que aprofundam as investigações e refinam
a abordagem utilizada.
ABSTRACT
Parameter estimation for models and signals is an important issue for analysis in many
subjects, allowing the engineer, researcher or, more generally, the professional to investigate
and get numerical results about what is being studied by means of computational simulation,
for example. This work focus parametric identification by using least squares method, from a
point not extensively treated in the vast technical literature available about the subject,
bringing contribution to the subject. The main problem considered is about parameter
identification for parameters that appear in more than one equation in a model of multiple
equations. In this context, a software is developed for identification of models and signals of
discrete and continuous-time systems, using an environment for numerical simulation and
engineering visualization called McLabEn®, also developed by the author. The work also
discusses techniques for discretization and filtering to set up models an data for being
identified by the implemented method. Some simulated studies are done, focusing on specific
and relevant uses on model identification, such as aircraft behavior, among others, to validate
the software, show the results and reveal the limitations of the method. The conclusion is
about suggestions for future work which will deepen the investigations and improve the
presented method.
I. Lista de Ilustrações
Figura 4-1 - Tela de Identificação de Sistemas Discretos ........................................................10
Figura 4-2 - Gráfico comparativo entre dados reais e dados estimados pelo método de
mínimos quadrados...........................................................................................................13
Figura 4-3 - Identificação de Sistema ARX Gerado pelo MATLAB®.....................................15
Figura 5-1 - Identificação Sem Filtragem de Sistema de Segunda Ordem .............................19
Figura 5-2 - Resultado da Identificação Sem Filtragem...........................................................19
Figura 5-3 - Ajuste polinomial por mínimos quadrados para a posição real do sistema..........24
Figura 5-4 - Posição, velocidade e aceleração estimados com base em dados de posição com
ruído..................................................................................................................................24
Figura 6-1 - Evolução temporal de sistema discreto ................................................................26
Figura 6-2 - Modelo para Identificação do Sistema de Crescimento Populacional .................28
Figura 6-3 - Simulação de um sistema massa-mola-amortecedor............................................31
Figura 6-4 - Resposta ao degrau de um sistema massa-mola, com ruído.................................32
Figura 6-5 - Simulação de um Sistema Massa-Mola com Dois Graus de Liberdade...............34
Figura 6-6 - Aplicação do Módulo de Identificação para um Sistema Massa-mola com Dois
Graus de Liberdade...........................................................................................................35
Figura 6-7 - Modelo Simulink para Simulação da Dinâmica Lateral de um Avião.................36
Figura 6-8 - Identificação da Dinâmica Lateral do Avião (Matrizes A e B)............................38
Figura 6-9 - Resultado da Identificação da Dinâmica Lateral (Matrizes A e B)......................39
Figura 6-10 - Identificação da Dinâmica Lateral do Avião (Matriz A)....................................40
Figura 6-11 - Resultado da Identificação da Dinâmica Lateral (Matriz A)..............................41
Figura B-1 - Simulação de um Sistema Massa-Mola-Amortecedor no McLabEn...................46
Figura B-2 - Efeitos não desejados do ajuste polinomial por OLS na velocidade e aceleração
estimadas a partir de dados de posição com ruído............................................................50
Figura C-1 - Utilização do identificador de sistemas McLabEn para estimar parâmetros de um
sistema massa-mola-amortecedor usando discretização pelo método Euler-Backwards.51
Figura C-2 - Utilização do identificador de sistemas McLabEn para estimar parâmetros de um
sistema massa-mola-amortecedor usando aproximação de posição por mínimos
quadrados..........................................................................................................................52
II. Lista de Abreviaturas, Siglas e Símbolos
β̂ Estimador de β ESS Error Sum of Squares k Número de parâmetros a serem estimados N Número de amostras das variáveis dependentes e independentes OLS Ordinary Least Squares Q Número de equações do modelo RSS Residual Sum of Squares TSS Total Sum of Squares X Vetor de observações de variável independente Y Vetor de observações de variável dependente β Vetor de parâmetros desconhecidos McLabEn Matemática Computacional – Laboratório em Engenharia e Ciências T Período de amostragem ε Vetor de erros
III. Sumário
1. Introdução...........................................................................................................................1
2. Introdução à Modelagem Experimental .............................................................................1
2.1 Tipos de Modelos .......................................................................................................3
3. Identificação de Sistemas ...................................................................................................3
3.1 Métodos Determinísticos............................................................................................3
3.2 Métodos Não-Paramétricos ........................................................................................4
4. Identificação Paramétrica de Sistemas Discretos ...............................................................4
4.1 O Método dos Mínimos Quadrados ...........................................................................4
4.1.1 Formulação Clássica...........................................................................................4
4.1.2 Formulação para Múltiplas Equações.................................................................5
4.1.3 Formulação para Múltiplas Saídas .....................................................................7
4.2 Condições para Aplicação do Método de Mínimos Quadrados .................................9
4.3 Descrição do Módulo de Identificação.......................................................................9
4.3.1 Exemplo de Identificação de Sinais .................................................................11
4.3.2 Identificação de Sistema ARX (Comparação com MATLAB®)......................13
5. Identificação de Sistemas Dinâmicos Contínuos..............................................................16
5.1 Discretização do Modelo..........................................................................................16
5.1.1 Métodos de Euler..............................................................................................16
5.1.2 Transformação Bilinear ....................................................................................17
5.1.3 Efeito do Ruído na Identificação de Sistemas ..................................................18
5.2 Filtragem Digital ......................................................................................................20
5.2.1 Filtragem no Domínio da Freqüência...............................................................20
5.3 Método de Aproximação por Mínimos Quadrados ..................................................23
6. Aplicações ........................................................................................................................25
6.1 Crescimento Populacional ........................................................................................25
6.1.1 Funções McLabEn para Simulação do Crescimento Populacional ..................28
6.2 Identificação de Sistema Massa-Mola......................................................................30
6.3 Identificação de Sistema Massa-Mola com Dois Graus de Liberdade.....................33
6.4 Identificação da Dinâmica Lateral de uma Aeronave ..............................................36
7. Contribuições Futuras.......................................................................................................41
8. Conclusão .........................................................................................................................42
9. Referências Bibliográficas................................................................................................42
Apêndice A Demonstrações do Item Formulação para Múltiplas Equações........................44
A.1 Minimização de ESS ................................................................................................44
A.2 Não-tendenciosidade do estimador...........................................................................44
Apêndice B Simulação de um Sistema Massa-Mola-Amortecedor no McLabEn ...............45
B.1 Simulação do Sistema...............................................................................................45
B.2 Filtragem e Análise do Resultado Simulado ............................................................47
B.3 Aproximação por Mínimos Quadrados ....................................................................47
Apêndice C Estimação de Parâmetros do Sistema Massa-Mola ..........................................51
C.1 Método de Euler .......................................................................................................51
C.2 Mínimos Quadrados .................................................................................................51
Apêndice D Implementação do Algoritmo de Mínimos Quadrados ......................................53
Anexo - Guia de Referência do Software McLabEn® v1.33
1
1. Introdução
A identificação de sistemas é fundamental para o desenvolvimento de modelos
computacionais confiáveis. O desenvolvimento de um bom modelo não é uma tarefa
simples, pois os critérios para a escolha do modelo dependem de sua aplicação, i.e., do que
se deseja prever com o modelo. Dessa forma, por exemplo, um modelo completo de
instalações hidráulicas de uma companhia deve utilizar modelos simplificados para
bombas, atuadores e válvulas, enquanto o projeto de uma única válvula deveria considerar
todas as suas nuances, especialmente para verificar quanto seu comportamento se desvia do
previsto para uma válvula ideal.
O escopo de aplicação da identificação de sistemas é muito amplo e abrange desde
aplicações nos mais variados ramos da engenharia (aeronáutica, mecânica etc.) até modelos
microeconômicos e macroeconômicos.
Este trabalho objetiva desenvolver uma ferramenta computacional para automatizar o
processo de identificação de sistemas dinâmicos, utilizando uma adaptação do método dos
mínimos quadrados sem ponderação (OLS), bem como a realização de estudos sobre sua
aplicabilidade, através de modelos simulados.
Os cálculos e gráficos apresentados nesse trabalho foram efetuados e gerados no
ambiente McLabEn® 1.
2. Introdução à Modelagem Experimental
A modelagem experimental constitui ramo do conhecimento dedicado a desenvolver,
implementar e validar modelos matemáticos de sistemas reais.
1 Nota: Software para apoio ao cálculo e visualização de engenharia desenvolvido pelo autor e registrado para
garantia de todos os direitos de uso e comercialização.
2
Um modelo matemático é uma representação de um sistema físico real.
Evidentemente, o modelo não é o sistema. É impossível obter representação perfeita. O que
deve balizar a construção do modelo?
Idealmente, a representação matemática de um sistema deve ser a mais simples que
permita prever seu comportamento com o nível de detalhes desejado.
Considere-se o sistema constituído por um pêndulo suspenso por um fio, o conhecido
pêndulo simples, para considerações qualitativas. O modelo matemático mais utilizado para
representá-lo é a equação de um oscilador harmônico, em que x(t) é a posição horizontal do
pêndulo, L é o comprimento do fio e g é o valor da gravidade local:
)()(2
2
txLg
dttxd
−=
Eq. 2.1-1
No entanto, esse modelo traz, entre outras, importantes simplificações, a saber:
1 – O modelo considera pequenos deslocamentos angulares;
2 – Desconsidera a flexibilidade e a massa do fio;
3 – A resistência do ar ao movimento do pêndulo também é desconsiderada;
4 – O pêndulo nem sempre se desloca em um mesmo plano de movimento.
Se o que se deseja saber é apenas o período do pêndulo, sendo válidas as hipóteses
apresentadas, o modelo usual permite aproximação aceitável. Por outro lado, se se deseja
estimar a variação na tensão no fio com o tempo, pode ser necessário considerar a
elasticidade do fio.
Em resumo, o modelo matemático do sistema está intimamente relacionado às
informações que ele deve fornecer sobre o sistema.
3
2.1 Tipos de Modelos
Um importante critério de classificação dos modelos matemáticos é sua relação com
a física ou natureza do processo:
Modelagem caixa-branca: relacionada à física ou natureza do processo; utilizada em
estudos teóricos de sistemas ou em processos cuja física é bem conhecida.
Modelagem caixa-preta: não relacionada à física do processo; nem todos os
processos são conhecidos, e nem sempre é possível associar um modelo físico ao sistema
real.
Modelagem caixa-cinza: o modelo contempla uma parte relacionada à física do
processo e uma parte sem esse vínculo. Trata-se de uma importante modelagem
experimental, pois a maioria dos processos possui comportamentos conhecidos e
desconhecidos.
Grosso modo, quanto mais desconhecido ou imprevisível for o sistema, mais seu
modelo tenderá a ser caixa-preta.
Nesse ponto, é necessário não estigmatizar a modelagem caixa-preta de “ruim” e a
modelagem caixa-branca de “boa”, como pode parecer à primeira vista. É necessário ter em
mente que os requisitos de um bom modelo são a possibilidade de utilizá-lo para prever o
comportamento do sistema e a simplicidade.
3. Identificação de Sistemas
3.1 Métodos Determinísticos
4
Os métodos determinísticos não dão tratamento especial aos ruídos presentes nos
dados e, por isso, só fornecem resultados bons se a relação sinal/ruído for muito alta. Pode-
se citar entre esses métodos a identificação de modelos de primeira e segunda-ordem de
sistemas LTI com base na resposta a degrau ou com base na resposta em freqüência [3].
3.2 Métodos Não-Paramétricos
Os métodos não-paramétricos constituem um conjunto de técnicas de identificação
que não resultam em um modelo matemático como uma função de transferência. Seu
resultado é uma representação gráfica que caracteriza a dinâmica do sistema em questão.
Exemplos típicos são a resposta ao impulso e a resposta em freqüência. As técnicas mais
comuns são as funções de correlação [3].
4. Identificação Paramétrica de Sistemas Discretos
4.1 O Método dos Mínimos Quadrados
4.1.1 Formulação Clássica
Considere-se o modelo linear
εβ += XY
Eq. 4.1-1
em que: N é o número de medições das variáveis;
k é a quantidade de parâmetros a serem estimados;
[Y]Nx1 é o vetor coluna das observações da variável dependente;
[X]Nxk é a matriz de observações da variável independente;
[β]kx1 é o vetor coluna de parâmetros desconhecidos;
[ε]Nx1 é o vetor coluna de erros.
5
Assumindo que:
(i) A variável dependente [Y] é explicada pela equação linear do modelo;
(ii) Os elementos de [X] são fixos, têm variância finita e a matriz [X] tem posto k
menor ou igual ao número de observações N;
(iii) [ε] tem distribuição normal com E(ε) = 0 e E(ε’ε) = σ2[I]NxN, em que [I]NxN é a
matriz identidade NxN;
O estimador que minimiza a soma dos resíduos quadráticos ESS = ε’ε é: β̂
( ) YXXX ''ˆ 1−=β
Eq. 4.1-2
Nessas condições, o estimador é BLUE (Best Linear Unbiased Estimator –
Melhor Estimador Linear Não-tendencioso). A formulação do problema e a demonstração
dessas e outras propriedades podem ser encontrados em [2].
β̂
4.1.2 Formulação para Múltiplas Equações
A Formulação Clássica tem uma importante limitação: identificar modelos em que
um ou mais parâmetros em mais de uma equação. Tome-se um exemplo simples: seja o
sistema
⎩⎨⎧
++=++=
2
1
εε
kkk
kkk
cybxwbyaxz
Eq. 4.1-3
Na Eq. 4.1-3, xk e yk são variáveis independentes, zk e wk são variáveis dependentes,
[a b c]’ é o vetor de parâmetros desconhecidos e ε1 e ε2 são erros aleatórios. Qual seria o
melhor estimador para a, b e c?
6
Poder-se-ia sugerir: por que não aplicar o método de mínimos quadrados na primeira
equação e, após, na segunda equação? Isso é possível. No entanto, na presença de erros
aleatórios, serão obtidos dois valores distintos para b, e não há garantias sobre a qualidade
desses valores.
Essa limitação é contornável definindo-se a seguinte formulação:
Considere-se o modelo linear
iii XY εβ += , i = 1, 2, ..., Q
Eq. 4.1-4
em que: Q é a quantidade de equações do modelo;
N é o número de medições das variáveis;
k é a quantidade de parâmetros a serem estimados;
[Yi]Nx1 é o vetor coluna das observações da variável dependente na i-
ésima equação;
[Xi]Nxk é a matriz de observações da variável independente na i-ésima
equação;
[β]kx1 é o vetor coluna de parâmetros desconhecidos;
[εi]Nx1 é o vetor coluna de erros na i-ésima equação.
Assumindo que:
(i) As variáveis dependentes [Yi] são explicadas pelas equações lineares do
modelo;
(ii) Os elementos de [Xi] são fixos, têm variância finita e as matrizes [Xi] têm
posto k menor ou igual ao número de observações N;
(iii) Os [εi] têm distribuição normal com E(εi) = 0 e E(εi’εi) = σi2[I]NxN, em que
[I]NxN é a matriz identidade NxN;
O método de mínimos quadrados deve minimizar a soma dos resíduos quadráticos:
7
∑=
=Q
iiiESS
1
'εε
Eq. 4.1-5
O estimador que minimiza o novo ESS é (v. Apêndice A - Demonstrações do Item
Formulação para Múltiplas Equações):
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡= ∑∑
=
−
=
Q
iii
Q
iii YXXX
1
'1
1
'β̂
Eq. 4.1-6
O estimador assim obtido minimiza o ESS e é não-tendencioso. Esse método foi
implementado para utilização no módulo de Identificação de Sistemas do software
McLabEn®.
4.1.3 Formulação para Múltiplas Saídas
Uma formulação para utilização do método de mínimos quadrados em sistemas com
múltiplas saídas é encontrada em [5]: seja o sistema descrito pelo sistema
pnpppp
n
xxxy
xxxy
θθθ
θθθ
+++=
+++=
K
M
K
2211
112211111
Eq. 4.1-7
Considere-se um conjunto de m medidas obtidas do sistema nos instantes t1, t2, ..., tm.
As equações acima podem ser rearranjadas na forma
Θ= XY
Eq. 4.1-8
8
Em que
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
)(
)2()1(
)(
)2()1(
mx
xx
X
my
yy
YrM
r
r
rM
r
r
Eq. 4.1-9
Nessas condições, a solução de mínimos quadrados para o sistema é:
YXXX ')'(ˆ 1−=Θ
Eq. 4.1-10
Analisando essa formulação, verifica-se que ela, de fato, permite a identificação de
sistemas com múltiplas entradas e múltiplas saídas. No entanto, suponhamos que fosse
sabido, a priori, com base no conhecimento da física do problema, que dois elementos θij
fossem iguais (por exemplo, uma constante de mola que aparece em duas equações distintas
do modelo). A forma de construção apresentada não contempla essa possibilidade. A
formulação para Múltiplas Equações (Eq. 4.1-2), por outro lado, consegue satisfazer esse
requisito.
Adicionalmente, a formulação para Múltiplas Saídas pode ser obtida a partir do
formato da Eq. 4.1-4, bastando para isso observar que o vetor β, nesse caso, teria dimensão
n vezes p:
[ ]npnp θθθθβ KKK 1111=
Eq. 4.1-11
9
Dessa forma, conclui-se que a formulação para Múltiplas Saídas é um caso particular
da formulação para Múltiplas Equações, limitada a sistemas em que um mesmo parâmetro
desconhecido não aparece em mais de uma equação.
4.2 Condições para Aplicação do Método de Mínimos Quadrados
O método implementado neste trabalho pode ser aplicado para identificação de
parâmetros em modelos discretos ou contínuos (discretizados), desde que o modelo seja
fornecido no espaço de estados e seja linear nos parâmetros a serem identificados.
Por exemplo, não seria possível identificar os parâmetros a e b no sistema descrito
pela equação:
abxdtdxb
dtxd
+=2
2
Eq. 4.2-1 Equação diferencial linear, não-linear nos parâmetros a e b
Por outro lado, é possível identificar os parâmetros a e b em uma equação diferencial
não-linear, desde que a equação seja linear em a e b, tal como:
axdtdxbx
dtxd
+=2
2
Eq. 4.2-2 Equação diferencial não-linear, linear nos parâmetros a e b
4.3 Descrição do Módulo de Identificação
O módulo de identificação resolve as equações lineares utilizadas para a estimação de
parâmetros utilizando o método de mínimos quadrados, segundo a formulação apresentada
na seção 4.1.2.
10
Figura 4-1 - Tela de Identificação de Sistemas Discretos
Em relação à tela mostrada na figura Figura 4-1:
• Nomes dos parâmetros desconhecidos: vetor de parâmetros desconhecidos a ser
identificado pelo sistema. Esse vetor não é utilizado nos cálculos. Apenas dá
nome aos parâmetros na resposta retornada.
• Parâmetros conhecidos/medidos: São os valores conhecidos que serão
utilizados na identificação. Se não forem valores escalares, devem ter a mesma
dimensão. Neste trabalho, será utilizada a opção Importar..., para importar a
variável da tela principal do software. O módulo de identificação é utilizado
apenas para a realização dos cálculos.
Equações do modelo do sistema: Equações que descrevem o modelo considerado.
Podem ser consideradas várias equações, pois o software está construído para múltiplas
equações.
11
Análises: Apresenta gráficos e os valores estimados para os parâmetros.
4.3.1 Exemplo de Identificação de Sinais
Considere-se a seguinte tabela de dados:
t x y 0 0,96 4,06 1 4,10 2,00 2 13,48 6,10 3 27,28 15,60 4 48,51 32,84 5 73,70 53,91 6 112,34 84,40 7 151,17 120,22 8 197,34 162,51 9 248,70 207,20 10 309,70 247,34
Vai-se utilizar o módulo de identificação para ajustar um modelo polinomial para x e y
em função de t. Suponha-se, também, que é sabido que o coeficiente de t2 é o mesmo para x
e y. Em uma situação real, isso pode representar, por exemplo, a constante elástica de uma
mola que aparece em mais de uma equação diferencial do modelo.
Em primeiro lugar, declaram-se as variáveis no ambiente McLabEn®:
t=[0 1 2 3 4 5 6 7 8 9 10]
x=[0.96 4.10 13.48 27.28 48.51 73.70 112.34 151.17 197.34
248.7 309.7]
y=[4.06 2.00 6.10 16.60 32.84 53.91 84.40 120.22 162.51
207.20 247.34]
12
O próximo passo é abrir o módulo de identificação. Clicando em Importar..., escolhem-
se as variáveis t, x e y (uma a uma). Importadas as variáveis, escreve-se o modelo. Será
feito o seguinte ajuste: x=kt2+c1t+c2, y=kt2+b1t+b2.
Parâmetros desconhecidos: [k c1 c2 b1 b2]
As equações do modelo do sistema são:
x=[t*t t 1 0 0]
y=[t*t 0 0 t 1]
Escritas as equações do modelo, basta clicar no botão Estimar Parâmetros:
[k c1 c2 b1 b2] = [3.00 0.75 -0.90 -4.90 -4.55]
O indicador R2 para este modelo gerou resultado 0,9996, indicando excelente aderência
dos dados ao modelo proposto.
O gráfico a seguir, que pode ser visualizado clicando no botão Gráficos, mostra o
resultado da estimativa:
13
Figura 4-2 - Gráfico comparativo entre dados reais e dados estimados pelo método de mínimos
quadrados
4.3.2 Identificação de Sistema ARX (Comparação com MATLAB®)
Considere-se o problema de identificar o sistema ARX gerado no MATLAB® com os
comandos:
A = [1 -1.5 0.7]; B = [0 1 0.5];
m0 = idpoly(A,B);
u = iddata([],idinput(300,'rbs'));
e = iddata([],randn(300,1));
y = sim(m0, [u e]);
z = [y,u];
Esse sistema é o exemplo do MATLAB® para utilização do comando do ARX, que faz
parte do System Identification Toolbox. Gerados os dados, o problema consiste em
recuperar os coeficientes dos polinômios A(q) e B(q):
14
>> m = arx(z,[2 2 1])
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
A(q) = 1 - 1.481 q^-1 + 0.6831 q^-2
B(q) = 0.9338 q^-1 + 0.4582 q^-2
O resultado mostrado foi obtido no ambiente MATLAB®. A mesma identificação será
feita utilizando-se o Módulo de Identificação.
Em primeiro lugar, os dados são exportados para um arquivo texto com os seguintes
comandos MATLAB®:
>> UU=z.u;
>> YY=z.y;
>> ZZ=[UU YY]
>> save('c:\dados.txt','ZZ','-ASCII')
Após esse procedimento, os dados no formato texto são importados para o ambiente
McLabEn® utilizando-se o comando “Importar Variáveis do Arquivo”. Em seguida, são
importadas para o Módulo de Identificação (v. Guia de Referência McLabEn®). Por fim, os
vetores u e y são atrasados 2 instantes de tempo (gerando os vetores atrasados um1, um2,
ym1 e ym2).
O modelo ARX acima pode ser reescrito na seguinte forma:
221122110 −−−− −−++= kkkkkk yayaubububy
Eq. 4.3-1 Modelo ARX
A entrada exógena é o vetor uk e a saída é o vetor yk. A figura a seguir mostra a
utilização e o resultado gerados pelo módulo para os dados exportados:
15
Figura 4-3 - Identificação de Sistema ARX Gerado pelo MATLAB®
O resultado da identificação mostrou-se tão satisfatória quanto o resultado obtido pelo
comando ARX, conforme resume a tabela a seguir:
Variável Valor Esperado Valor Obtido no MATLAB® (V1)
Valor Obtido no Módulo de
Identificação (V2)
Diferença (V2-V1)/V1 (módulo)
b1 1 0.9338 0.9365 0.2% b2 2 0.4582 0.4527 1.2% a1 -1.5 -1.481 -1.481 0.0% a2 0.7 0.6831 0.6817 0.2%
16
5. Identificação de Sistemas Dinâmicos Contínuos
A identificação de sistemas dinâmicos contínuos no tempo passa pela discretização
do modelo contínuo do sistema, tendo em vista que não é possível armazenar uma
quantidade infinita de pontos. O tratamento computacional de informações requer o
armazenamento e processamento de matrizes e vetores de dimensão finita.
Os processos de discretização de modelos dinâmicos contínuos envolvem o cálculo
numérico das derivadas de um vetor de observações. Os métodos mais aplicados para essa
discretização são os métodos de Euler e a transformação bilinear. A limitação desses
métodos reside em sua enorme sensibilidade a ruídos.
Em vez de aproximar as derivadas dos vetores observados simplesmente por uma
função auto-regressiva, uma proposta seria ajustar um polinômio à curva e calcular a
derivada desse polinômio ajustado. Essa abordagem é utilizada e investigada neste trabalho.
5.1 Discretização do Modelo
5.1.1 Métodos de Euler
Os métodos de Euler consistem em aproximar linearmente a derivada de uma função
amostrada no tempo. Dois tipos principais de aproximação são: “backward” e “forward”:
)(11−−= kk xx
Tdtdx
Eq. 5.1-1
“backward”
)(11 kk xx
Tdtdx
−= +
Eq. 5.1-2
“forward”
Em Eq. 5.1-1 e Eq. 5.1-2, T é o período de amostragem do sinal. Na identificação de
sistemas, os vetores de observação são conhecidos e é necessário estimar suas derivadas
17
para aplicação do método de mínimos quadrados implementado. Considere-se, por
exemplo, um sistema massa-mola-amortecedor, cuja equação diferencial é dada por:
)()()()( 2
2
tcxtdtdxbt
dtxdmtu ++=
Eq. 5.1-3
em que: m é a massa do corpo;
b é a constante de amortecimento;
c é a constante de mola;
u(t) é a força externa aplicada no corpo;
x(t) é a posição do corpo.
Utilizando o método de Euler com aproximação “backward” para discretizar essa
equação com período de amostragem T, obtém-se que:
kkkkkkk cxxxTbxxx
Tmu +−++−= −−− )()2( 1212
Eq. 5.1-4
Para identificar esse sistema, portanto, aproximam-se velocidade e aceleração,
respectivamente, por xk – xk-1 e xk – 2xk-1 + xk-2.
Entretanto, a variável amostrada xk é medida e, inevitavelmente, sua medição é
contaminada por ruído. Para melhorar a qualidade da estimativa paramétrica, é
recomendável minimizar o efeito do ruído sobre xk e suas derivadas. Para isso, torna-se
necessário utilizar um processo de filtragem.
5.1.2 Transformação Bilinear
Uma das abordagens mais utilizadas para a discretização de sistemas dinâmicos
contínuos é a tranformação bilinear ([3]). Considerem-se duas seqüências: xk e sua integral,
18
yk. Utilizando o método dos trapézios para a integração, e sendo T o período de
amostragem dos sinais, tem-se:
)(2 11 −− ++= kkkk xxTyy , k = 2, 3, ..., n
Eq. 5.1-5
A função de transferência no domínio-z entre x e y é:
⎟⎠⎞
⎜⎝⎛
+−
=112)(
zz
Tz
XY
Eq. 5.1-6
que é a fórmula da transformação bilinear. No domínio-s, o integrador é dado por 1/s.
Dessa forma, uma função de transferência G(s) pode ser levada para o domínio discreto
calculando-se ⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎠⎞
⎜⎝⎛
+−
112
zz
TG .
5.1.3 Efeito do Ruído na Identificação de Sistemas
Quando é necessário calcular derivadas de um sinal, a presença de ruído pode ser
amplificada de forma a não permitir uma correta identificação do sistema. A identificação
sem filtragem dos dados simulados y(t), resposta ao degrau de 100N de um sistema massa-
mola-amortecedor com parâmetros unitários, apresentado a seguir, não gera bons
resultados.
19
Figura 5-1 - Identificação Sem Filtragem de Sistema de Segunda Ordem
O resultado da identificação do modelo é mostrado a seguir:
Figura 5-2 - Resultado da Identificação Sem Filtragem
20
Esse resultado mostra valores aceitáveis para amortecimento e constante de mola,
mas apresenta um resultado fisicamente impossível para a massa.
5.2 Filtragem Digital
O objetivo da filtragem é, fundamentalmente, remover ruídos de sinais. O efeito ideal
desejado de um filtro seria que, dado o espectro de um sinal, a passagem pelo filtro
mantivesse todas as componentes do sinal na faixa de freqüência desejada e igualasse a
zero todas as outras componentes de freqüência do sinal. O filtro G(jω) ideal para uma
faixa de freqüência de interesse no intervalo [a, b] seria:
( ) (⎩⎨⎧
><≤≤
=boua
bajG
ωωω
ω,0
,1)( )
Eq. 5.2-1
Nas aplicações em identificação de sistemas, usualmente a faixa de interesse é
delimitada pelas freqüências relevantes no próprio sistema. Por exemplo, considere-se uma
amostra de dados de entrada medida no comando de um piloto sobre um avião. Se o sinal
medido contiver sinais de freqüência maior do que 0,1 Hz, não é razoável atribuir essas
componentes ao comando do piloto, mas sim a ruídos presentes no sistema, que
evidentemente não foram comandados nem podem ser controlados.
5.2.1 Filtragem no Domínio da Freqüência
Neste tópico, será proposta uma abordagem para filtragem no domínio da freqüência.
A função McLabEn® que utiliza a idéia é denominada passabaixas, e está explicada no
final deste tópico.
21
Um filtro ideal deveria ter o seguinte comportamento: dado um sinal f(t) corrompido
com ruído, seja sua transformada de Fourier a função F(ω). Deseja-se eliminar do espectro
as freqüências acima de um valor ωcorte.
Considerando que F(ω) contém todas as componentes de freqüência de f(t), a função
G(ω) (transformada de Fourier do sinal na saída do filtro) é definida por:
⎩⎨⎧
>≤
=corte
corteFG
ωωωωω
ω||,0
||),()(
Eq. 5.2-2
Observe-se que G(ω) contém todas as freqüências do sinal em f(t), exceto aquelas
maiores do que ωcorte. A função desejada é, portanto, g(t), ou seja, a transformada de
Fourier inversa de G(ω).
No entanto, esse procedimento deve ser aplicado a dados amostrados. Assim, não é
possível utilizar a transformada de Fourier contínua e é necessário utilizar a DFT
(transformada discreta de Fourier), implementada através do algoritmo de FFT. Utilizando-
se esse raciocínio, foi implementada a função passabaixas:
function passabaixas(x;T;fcorte)
//x: função a ser filtrada
//T: freqüência de amostragem
//fcorte: freqüência de corte, em Hz
Fx=FFT(x)
n=numcolunas(Fx)
//calcula a partir de qual termo vai zerar
temp=1+fcorte*n*T
indcorte=ceil(temp)
22
//copia Fx
Fxfilt=Fx
//zera termos acima de fcorte corte(se possível)
if indcorte<=0.5*n then
for k=indcorte to n+2-indcorte
Fxfilt(1;k)=0
endfor
endif
xfilt=iFFT(Fxfilt)
//plota
nx=numcolunas(x)
for k=1 to nx
resp(k)=Re(xfilt(1;k))
endfor
t=linspace(1;nx;nx)
plot(Dados originais;t;x;Dados filtrados;t;resp)
return resp
end function
Adicionalmente, a função passabaixas faz um gráfico mostrando os dados
originais e os dados filtrados. Isso permite ao usuário ajustar a freqüência de corte do filtro
de modo que esta elimine o mínimo de informação relevante ao filtrar o ruído.
23
O processo de filtragem merece maiores investigações sobre os efeitos de aliasing e
do janelamento utilizados. Esse estudo constitui um tópico fora do escopo deste trabalho.
5.3 Método de Aproximação por Mínimos Quadrados
Para contornar o problema de amplificação de erros introduzido no cálculo das
derivadas pelos efeitos do ruído, propõe-se neste trabalho uma nova forma de cálculo
numérico.
Considere-se uma amostra de 201 pontos da resposta ao degrau unitário de um
sistema massa-mola-amortecedor de massa, constante de amortecimento e constante de
mola unitárias, simulado com condições iniciais nulas até o instante de tempo 10 s e
contaminado por ruído.
Os algoritmos e métodos numéricos desse item podem ser encontrados no Apêndice
B - Simulação de um Sistema Massa-Mola-Amortecedor no McLabEn.
Em vez de tentar aproximar a derivada da posição utilizando fórmulas recursivas,
pode ser interessante utilizar o método de mínimos quadrados (OLS) para ajustar um
polinômio aos dados obtidos para a posição. Após esse ajuste, o cálculo das derivadas
resume-se a derivar polinômios, uma forma muito mais estável de minimizar os efeitos do
ruído.
A ordem do polinômio a ser utilizado deve variar de acordo com a quantidade de
pontos extremos presentes no sinal, sendo maior quando houver mais pontos extremos.
Uma investigação mais aprofundada sobre os melhores métodos de interpolação fica como
sugestão para contribuições futuras.
No caso da resposta simulada, fazendo um ajuste com polinômio de ordem 15,
obtém-se o seguinte ajuste:
24
Figura 5-3 - Ajuste polinomial por mínimos quadrados para a posição real do sistema
Finalmente, derivando o polinômio ajustado para x(t), é possível obter as
estimativas de velocidade e aceleração:
Figura 5-4 - Posição, velocidade e aceleração estimados com base em dados de posição com ruído
Essas estimativas são muito superiores àquelas obtidas pelos métodos de Euler. Os
valores de parâmetros obtidos pelo método de mínimos quadrados para esses valores são:
massa: 1,132, amortecimento: 1,038, constante elástica da mola: 1,006. Essa estimativa está
25
muito próxima dos valores reais dos parâmetros (unitários). A utilização do módulo
McLabEn para estimação está descrita no Apêndice C - Estimação de Parâmetros do
Sistema Massa-Mola.
O exemplo apresentado ilustra a aplicação da técnica de aproximação em caráter
geral: é eficiente aproximar as curvas por mínimos quadrados e derivar o polinômio de
aproximação para fins de identificação do sistema.
Se os sinais representados pelos vetores forem muito oscilatórios, pode não ser
possível aproximar o comportamento do sistema com polinômios e talvez seja necessária
uma técnica mais refinada para estimar as derivadas dos dados. Contudo, se a aproximação
polinomial for possível, o que abrange uma enorme quantidade de casos, ela permite
excelente redução na influência de ruídos sobre o sistema.
6. Aplicações
6.1 Crescimento Populacional
Para este exemplo, far-se-á uma adaptação da fórmula geral apresentada em [4] para
uma aplicação na Biologia, idealizada.
Considere-se um sistema isolado contendo, inicialmente, ovos de um inseto. Sejam:
• O(k) – número de ovos no instante k
• L(k) – número de larvas no instante k
• A(k) – número de insetos adultos no instante k
Supondo que os ovos levem 1 instante de tempo para se tornarem larvas e as larvas
levem 1 instante de tempo para se tornarem insetos adultos, um possível modelo para o
sistema é:
26
)1()1()()1()(
)1()(
−+−=−=−=
kAskLskAkOskL
kfAkO
AL
O
Eq. 6.1-1
Onde f é a taxa de fecundidade dos insetos adultos, sO é a taxa de sobrevivência dos
ovos, sL é a taxa de sobrevivência das larvas e sA é a taxa de sobrevivência dos próprios
insetos adultos de um período para o outro.
Simulando o sistema para 200 instantes de tempo, com 200 adultos iniciais, 0 larvas
e 0 ovos, com: f=1.1, sO=0.9, sL=0.6 e sA=0.4, obtém-se a seguinte evolução temporal:
Figura 6-1 - Evolução temporal de sistema discreto
Utilizando as funções descritas no final desta seção, pode-se simular o sistema e obter
os valores das seqüências O, L e A:
A=adultos(200;1.1;0.9;0.6;0.4);
27
O=ovos(200;1.1;0.9;0.6;0.4);
L=larvas(200;1.1;0.9;0.6;0.4);
Para tornar o sistema mais próximo de um experimento real, será adicionado ruído
aos vetores A, O e L:
r1=0.1*(random(1;200)-0.5*uns(1;200))+uns(1;200)
r2=0.1*(random(1;200)-0.5*uns(1;200))+uns(1;200)
r3=0.1*(random(1;200)-0.5*uns(1;200))+uns(1;200)
A1=dot(A;r1)
O1=dot(O;r2)
L1=dot(O;r3)
Utiliza-se, agora, o módulo de identificação para recuperar os valores dos parâmetros
f, sO, sL e sA.
Importam-se do ambiente as variáveis A1, O1 e L1, e utiliza-se o recurso de atraso
para atrasar um instante de tempo. Após isso, utiliza-se o modelo a seguir:
28
Figura 6-2 - Modelo para Identificação do Sistema de Crescimento Populacional
A execução de uma instância forneceu os valores f=1.096, sO=0.968, sL=0.644 e
sA=0.305. Mesmo na presença de ruído, o modelo foi identificado com boa precisão.
6.1.1 Funções McLabEn para Simulação do Crescimento Populacional
A seguir estão descritas as funções para simulação do sistema discreto. A única
diferença entre as funções é o vetor que retornam (as funções só podem retornar um vetor
na versão atual do software – 1.33).
function larvas(adultosinic;f;so;sl;sa)
//Retorna a quantidade de Larvas
//adultosinic é a quantidade inicial de insetos adultos
//larvas e ovos -> qtd inicial nula
n=200
t=linspace(1;n;n)
O(n)=0
L(n)=0
29
A(n)=0
A(1)=adultosinic
for p=2 to n
O(p)=f*A(1;p-1)
L(p)=so*O(1;p-1)
A(p)=sl*L(1;p-1)+sa*A(1;p-1)
endfor
plot(Larvas;t;L;Ovos;t;O;Adultos;t;A)
return L
end function
function ovos(adultosinic;f;so;sl;sa)
//Retorna a quantidade de ovos
//adultosinic é a quantidade inicial de insetos adultos
//larvas e ovos -> qtd inicial nula
n=200
t=linspace(1;n;n)
O(n)=0
L(n)=0
A(n)=0
A(1)=adultosinic
for p=2 to n
O(p)=f*A(1;p-1)
L(p)=so*O(1;p-1)
A(p)=sl*L(1;p-1)+sa*A(1;p-1)
endfor
plot(Larvas;t;L;Ovos;t;O;Adultos;t;A)
return O
end function
function adultos(adultosinic;f;so;sl;sa)
//Retorna a quantidade de ovos
//adultosinic é a quantidade inicial de insetos adultos
//larvas e ovos -> qtd inicial nula
n=200
t=linspace(1;n;n)
O(n)=0
L(n)=0
A(n)=0
A(1)=adultosinic
30
for p=2 to n
O(p)=f*A(1;p-1)
L(p)=so*O(1;p-1)
A(p)=sl*L(1;p-1)+sa*A(1;p-1)
endfor
plot(Larvas;t;L;Ovos;t;O;Adultos;t;A)
return A
end function
6.2 Identificação de Sistema Massa-Mola-Amortecedor
Foi utilizado o módulo de Equações Diferenciais do McLabEn para simular a resposta
ao degrau de um sistema massa-mola-amortecedor simples, com m=3, c=10 e k=100, para
uma entrada u=100 N:
31
Figura 6-3 - Simulação de um sistema massa-mola-amortecedor
Foram exportados os vetores x, u e t (respectivamente: posição da massa, entrada e
tempo), com dimensões 1x2002.
Adiciona-se ruído uniformemente distribuído no intervalo [-0.05, 0.05] ao vetor x com
os comandos:
ruido=0.1*(random(1;2002)-0.5*uns(1;2002));
x=x+ruido;
O vetor x assim obtido está mostrado a seguir:
32
Figura 6-4 - Resposta ao degrau de um sistema massa-mola, com ruído
A tarefa, agora, consiste em recuperar os dados de massa, constante de amortecimento
e de mola, utilizando os vetores x, u e t:
xInt=lininterp(t;x;6000);
tInt=linspace(0;2;6000);
T=tInt(1;2)
xFilt=passabaixas(xInt;T;5);
uFilt=100*uns(1;numcolunas(xFilt));
v=deriv(xFilt;T);
a=deriv(v;T);
aUt=extrair(a;1;1;1;4000);
vUt=extrair(v;1;1;1;4000);
xUt=extrair(xFilt;1;1;1;4000);
uUt=extrair(uFilt;1;1;1;4000);
As últimas quatro linhas são importantes, pois a filtragem introduziu um efeito
oscilatório inexistente nos últimos termos da seqüência, efeito provavelmente ocasionado
33
pelo janelamento utilizado na função passabaixas. Esse fenômeno merece atenção
especial em contribuições futuras.
Importam-se as variáveis xUt, vUt, aUt e uUt para o módulo de identificação e
identifica-se o modelo:
uUt=[aUt vUt xUt]
Na simulação executada, os valores obtidos para as constantes foram: m=2,36;
c=10,25; k=97,28, resultados próximos dos valores simulados. Esses valores,
evidentemente, podem variar em função do ruído adicionado no vetor de posição x.
Um estudo mais detalhado do sistema envolveria a simulação de sua sensibilidade ao
ruído, de forma a avaliar a robustez do método.
6.3 Identificação de Sistema Massa-Mola-Amortecedor com Dois Graus
de Liberdade
Considere-se um sistema massa-mola-amortecedor com dois graus de liberdade,
descrito pelo sistema de equações diferenciais:
))/mx-(x(-k
))/mx-(xk-dt
dxc-xk-(u
12222
2
2121
1121
2
=
=
dtxd
dtxd
Eq. 6.3-1
Simula-se o sistema com condições iniciais nulas, excitação u = 100 N e parâmetros
unitários no módulo de equações diferenciais:
34
Figura 6-5 - Simulação de um Sistema Massa-Mola com Dois Graus de Liberdade
Utilizando o comando exportar dados, é possível manipular as variáveis x1, x2, x1’
e x2’ (1x231) no ambiente de trabalho.
Supondo medidos os valores de posição e velocidade de ambas as massas, os
vetores x1, x2, x1’ e x2’ são contaminados com ruído aleatório, sempre presente em
medições.
r1=(random(1;231)-0.5*uns(1;231))*0.1+uns(1;231);
r2=(random(1;231)-0.5*uns(1;231))*0.1+uns(1;231);
r3=(random(1;231)-0.5*uns(1;231))*0.1+uns(1;231);
r4=(random(1;231)-0.5*uns(1;231))*0.1+uns(1;231);
x1n=dot(x1;r1);
35
x2n=dot(x2;r2);
v1n=dot(x1';r3);
v2n=dot(x2';r3);
Em seguida, calculam-se as acelerações derivando x1’ e x2’:
a1n=deriv(v1n;0.1);
a2n=deriv(v2n;0.1);
Após esses procedimentos, basta importar x1n, x2n, v1n, v2n, a1n, a2n e u para o
módulo de identificação. Se as massas forem conhecidas, os parâmetros a serem
identificados são k1, k2 e c:
Figura 6-6 - Aplicação do Módulo de Identificação para um Sistema Massa-mola com Dois Graus de
Liberdade
Os valores obtidos nesse teste foram k1=0.991, k2=0.925 e c=0.927, divergindo para
menos dos valores utilizados mas permanecendo com boa concordância.
36
A relevância deste exemplo está no fato de a constante k2 ser estimada
simultaneamente nos dois conjuntos de dados, o que não poderia ser feito aplicando duas
vezes o método de mínimos quadrados para uma única equação.
6.4 Identificação da Dinâmica Lateral de uma Aeronave
Considere-se o problema de identificar os parâmetros da dinâmica lateral de uma
aeronave, cujo modelo Simulink é apresentado a seguir ([3]):
Figura 6-7 - Modelo Simulink para Simulação da Dinâmica Lateral de um Avião
No bloco de dinâmica lateral está implementado o seguinte sistema de equações
diferenciais:
37
⎥⎦
⎤⎢⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−
+
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−−−
−−
=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
2
1
4
3
2
1
4
3
2
1
001430.01530.000775.04750.0
000729.0
010805.0004650.03880.005.300318.01150.05980.0
0415.00802.09968.00558.0
uu
xxxx
dtdxdt
dxdt
dxdtdx
Eq. 6.4-1
Simulado o sistema de 0 s a 50 s e obtidos os vetores x1, x2, x3, x4, u1 e u2, com
intervalo de amostragem de 0.01 s, deve-se estimar as matrizes A e B a partir desses dados.
Os dados foram exportados para um arquivo texto utilizando-se os seguintes comandos
MATLAB®:
>> z=[x1 x2 x3 x4 u1 u2];
>> save('C:\lateral.txt','z','-ascii');
Após isso, os dados foram importados pelo Módulo de Identificação desenvolvido.
Atrasando um instante de tempo os vetores x1, x2, x3 e x4 e utilizando o método
“backwards” para a discretização do sistema contínuo, obtém-se o sistema a ser
implementado no Módulo de Identificação, mostrado a seguir:
38
Figura 6-8 - Identificação da Dinâmica Lateral do Avião (Matrizes A e B)
Os resultados obtidos nessa identificação estão mostrados a seguir:
39
Figura 6-9 - Resultado da Identificação da Dinâmica Lateral (Matrizes A e B)
Conforme pode-se verificar comparando o resultado apresentado com os valores
utilizados na Eq. 6.4-1, a identificação das matrizes A e B não gerou resultados corretos. O
excesso de parâmetros a serem identificados pode ser uma explicação do processo. Essa
investigação fica pendente.
Por outro lado, suponha-se conhecida a matriz B. Dessa forma, as derivadas de
estabilidade contidas na matriz A podem ser estimadas utilizando o seguinte esquema no
módulo de identificação:
40
Figura 6-10 - Identificação da Dinâmica Lateral do Avião (Matriz A)
Nesse esquema de simulação, o resultado está mostrado na figura a seguir:
41
Figura 6-11 - Resultado da Identificação da Dinâmica Lateral (Matriz A)
Esse resultado possui boa concordância com os valores utilizados para a simulação
(Eq. 6.4-1).
O exemplo mostrado permite concluir que, preliminarmente, é necessário saber se a
quantidade de parâmetros a serem estimados não é excessiva para o método de mínimos
quadrados implementado identificar o sistema. Não foi possível, no escopo desse trabalho,
estabelecer os melhores contornos sobre essa questão.
7. Contribuições Futuras
Este trabalho deve servir de base para a implementação de um identificador automático
de sistemas dinâmicos, que será capaz de propor modelos para ajuste de curvas e modelos
matemáticos.
42
A implementação desse sistema irá exigir a utilização de mecanismos de inteligência
artificial que busquem minimizar a quantidade de variáveis no vetor de parâmetros
desconhecidos e maximizar os indicadores de qualidade da estimativa.
Também, há várias questões teóricas e práticas pendentes quanto à abordagem
implementada neste trabalho, conforme apontado ao longo do texto, que carecem de
estudos mais detalhados. Algumas respostas apresentam limitações que indicam que
precisam ser melhor trabalhadas.
8. Conclusão
Os processos de identificação são utilizados em vários ramos do conhecimento para o
desenvolvimento de modelos computacionais que permitam realizar previsões confiáveis
dentro de certos limites definidos pelo usuário.
Facilitar a proposição de modelos matemáticos e, futuramente, automatizar essa tarefa
é fundamental para reduzir o tempo gasto nessa importante tarefa.
O módulo de identificação apresentado pode ser utilizado para várias tarefas:
identificação de sistemas discretos e contínuos (discretizados), identificação de séries auto-
regressivas e mesmo modelos econométricos.
Os estudos apresentados mostram como uma ferramenta de mínimos quadrados sem
ponderação (OLS) pode ser aplicada na identificação de sistemas com modelos simulados,
apresentando um recurso útil no desenvolvimento de modelos, com aplicações promissoras
nos mais variados campos de engenharia.
9. Referências Bibliográficas
[1] Aguirre, Luis Antonio. 2000. Introdução à Identificação de Sistemas. Editora UFMG.
43
[2] Pindyck, Robert S. e Rubinfeld, Daniel L. 1981. Econometric Models & Economic
Forecasts. McGraw-Hill Book Company.
[3] Adade, A. F., 1989, Análise de Sistemas Dinâmicos¸ Instituto Tecnológico de
Aeronáutica - Divisão de Engenharia Mecânica-Aeronáutica. (Ed. 3, 2003).
[4] Cadzow, James A., 1973, Discrete-Time Systems. Prentice-Hall, Inc.
[5] T. C. Hsia, 1997, System Identification: Least Squares Methods, Lexington Books
44
Apêndice A Demonstrações do Item Formulação para
Múltiplas Equações
A.1 Minimização de ESS
Provar que o estimador apresentado na Eq. 4.1-6 minimiza o ESS. Considere-se o modelo
da Eq. 4.1-4. Então, de Eq. 4.1-5,
( )( ) ββββββεε ˆˆˆˆˆˆ '''''
1
'
1
'''
1
'iiiiiii
Q
iiii
Q
iii
Q
iii XXYXXYYYXYXYESS +−−=−−== ∑∑∑
===
Os pontos extremos de ESS podem ser encontrados derivando-se ESS com respeito ao
estimador e igualando a derivada a zero:
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⇒+−= ∑∑∑
=
−
==
Q
iii
Q
iii
Q
iiiii YXXXXXYX
ddESS
1
'1
1
'
1
'' ˆˆ22ˆ βββ
Resta provar que o ponto extremo é, de fato, um mínimo. Com efeito:
∑=
=Q
iii XX
dESSd
1
'2
2
2β̂
Ou seja, a segunda derivada de ESS é um somatório de matrizes positivas definidas, o
que conclui a demonstração de que o estimador assim obtido, de fato, minimiza ESS.
A.2 Não-tendenciosidade do estimador
O estimador é, claramente, linear. Vai-se provar sua não-tendenciosidade.
45
Deve-se mostrar que . ββ =)ˆ(E
Reescrevendo o estimador:
⎥⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡= ∑∑∑∑
=
−
==
−
=
Q
iiiii
Q
iii
Q
iii
Q
iii XXXXXYXXX
1
''1
1
'
1
'1
1
'ˆ εββ
⎥⎦
⎤⎢⎣
⎡+=⎥
⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡= ∑∑∑∑
===
−
=
Q
iii
Q
iii
Q
iii
Q
iii XXXXXX
1
'
1
'
1
'1
1
'ˆ εβεββ
Calcula-se agora seu valor esperado: (lembrando que E(εi) = 0 e o erro é não-
correlacionado com X)
βεβεββ ∑∑==
=+=⎟⎟⎠
⎞⎜⎜⎝
⎛⎥⎦
⎤⎢⎣
⎡+=
Q
iii
Q
iii EXXEE
1
'
1
' )()ˆ(
C.q.m.
Apêndice B Simulação de um Sistema Massa-Mola-
Amortecedor no McLabEn
B.1 Simulação do Sistema
Para simular um sistema massa-mola-amortecedor no McLabEn, basta abrir o
programa, abrir o módulo “Soluções de SEDOs” e preencher o módulo com a informação
mostrada na figura:
46
Figura B-1 - Simulação de um Sistema Massa-Mola-Amortecedor no McLabEn
Após inserir os dados, basta clicar em Resolver. Os gráficos de evolução no tempo das
variáveis dinâmicas do sistema podem ser visualizados diretamente selecionando-se “Gráficos
de evolução no tempo”. Para exportar as variáveis obtidas para o ambiente numérico, basta
clicar em “Exportar dados...”.
Após simular o sistema, é necessário simular o efeito de ruído sobre a saída x. No
McLabEn, pode-se gerar um ruído uniformemente distribuído no intervalo [-0,5, 0,5] com o
comando:
erro=random(1;201)-0.5*uns(1;201)
A variável de saída simulada é:
xerr=x+0.05*erro
47
Nesse caso, xerr tem uma flutuação percentual de 5% sobre seu valor final, que é
unitário. Essa simulação é compatível com resultados reais; na verdade, existem instrumentos
que permitem precisão bem maior do que a simulada.
B.2 Filtragem e Análise do Resultado Simulado
Para o cálculo da derivada, foi criada a função deriv para o ambiente McLabEn:
function deriv(vetor;T)
//Deriva o vetor. Usa o método euler-Backward
temp=1/T
deriv(numcolunas(vetor))=1E-5
for p=2 to numcolunas(vetor)
deriv(1;p)=temp*(vetor(1;p)-vetor(1;p-1))
endfor
deriv(1;1)=deriv(1;2)
return deriv
end function
O cálculo das derivadas de xerr pode ser feito por (lembrando que o intervalo de
amostragem foi especificado como 0.05):
dxerr=deriv(xerr;0.05)
d2xerr=deriv(dxerr;0.05)
B.3 Aproximação por Mínimos Quadrados
Para aproximar a resposta com ruído pelo método dos mínimos quadrados, foi criada
uma função McLabEn:
function minQuad(dadosX;dadosY;grauPoly;querPlotar)
//Ajusta um modelo polinomial para f(x)=y por OLS
//querPlotar=1: Faz grafico comparando ajuste e original
//querPlotar diferente de 1: nao faz
48
//Resolve o sistema dadosY=M*[agrauPoly;(agrauPoly-1);...;a1;a0]
//matriz de coeficientes a=[agrauPoly;(agrauPoly-1);...;a1;a0]
//A matriz M tem a forma:
//[x1^graupoly x1^(grauPoly-1) ... x1³ x1² x1 1]
//[x2^graupoly x1^(grauPoly-1) ... x2³ x2² x2 1]
//[x3^graupoly x1^(grauPoly-1) ... x3³ x3² x3 1]
//Inicio
colunasX=numcolunas(dadosX)
//dimensiona a matriz M
M(colunasX;grauPoly+1)=0
//constroi a matriz M
for p=1 to colunasX
temp=1
for q=0 to grauPoly
M(p;grauPoly+1-q)=temp
temp=temp*extrair(dadosX;1;1;p;p)
endfor
endfor
//construida a matriz M. o vetor a é a pseudoinversa de M vezes dadosY:
transpM=transposta(M)
a=linsolve(transpM*M;transposta(transpM*transposta(dadosY)))
if querPlotar=1 then
//faz dois graficos.
//Um é o do polinômio ajustado, grafico com 1000 pontos
//outro é o grafico dos dados originais
tmin=extrair(dadosX;1;1;1;1)
tmax=extrair(dadosX;1;1;colunasX;colunasX)
t=linspace(tmin;tmax;1000)
ft=polyval(t;a)
plot(Dados originais;dadosX;dadosY;Polinomio ajustado;t;ft)
endif
49
return a
end function
O ajuste de mínimos quadrados dos valores na variável xerr é feito com o comando:
p=minQuad(t;xerr;15;1)
Após esse ajuste, calculam-se os coeficientes dos polinômios derivados com a função
polyder:
function polyder(poly)
//deriva o polinomio
p=numcolunas(poly)
deriv(p-1)=0
for k=1 to p-1
deriv(k)=poly(1;k)*(p-k)
endfor
return deriv
end function
Comandos:
dp=polyder(p)
d2p=polyder(dp)
O cálculo dos pontos de aceleração, velocidade e posição é feito com os comandos:
t=linspace(0;10;201)
xAv=polyval(t;d2p)
vAv=polyval(t;d2p)
aAv=polyval(t;d2p)
O comando polyval também é uma função externa ao McLabEn:
function polyval(x;poly)
//avalia o valor do polinômio nos pontos do vetor x
50
p=numcols(poly)
valor=uns(1;numcols(x))
r=0*uns(1;numcols(x))
do while p>0
r=r+valor*extrair(poly;1;1;p;p)
valor=dot(valor;x)
p=p-1
enddo
return r
end function
Ajustes polinomiais podem apresentar comportamento não desejado quando a função
aproximada é aproximadamente constante, especialmente quando se utiliza uma aproximação
de alta ordem.
No caso em questão, é fácil perceber que o ajuste perde muito de sua qualidade a partir
do instante 9 s, em que velocidade e aceleração aumentam subitamente.
Figura B-2 - Efeitos não desejados do ajuste polinomial por OLS na velocidade e aceleração estimadas a
partir de dados de posição com ruído
Para contornar esse problema, basta considerar o ajuste até o instante 9 s:
t=linspace(0;9;201)
xAv=polyval(t;d2p)
51
vAv=polyval(t;d2p)
aAv=polyval(t;d2p)
Apêndice C Estimação de Parâmetros do Sistema Massa-Mola-
Amortecedor
C.1 Método de Euler
A aproximação pelo método de Euler dos parâmetros do sistema massa-mola-
amortecedor com o módulo de Identificação de Sistemas McLabEn pode ser feita da seguinte
forma:
Figura C-1 - Utilização do identificador de sistemas McLabEn para estimar parâmetros de um sistema
massa-mola-amortecedor usando discretização pelo método Euler-Backwards
C.2 Mínimos Quadrados
52
A aproximação ajuste mínimos quadrados dos parâmetros do sistema massa-mola-
amortecedor com o módulo de Identificação de Sistemas McLabEn pode ser feita da seguinte
forma:
Figura C-2 - Utilização do identificador de sistemas McLabEn para estimar parâmetros de um sistema
massa-mola-amortecedor usando aproximação de posição por mínimos quadrados
(i) Os vetores xAv, vAv e aAv devem estar criados (Apêndice B).
(ii) Clique em Importar..., escolha xAv e clique Ok.
(iii) Clique em Importar..., escolha vAv e clique Ok.
(iv) Clique em Importar..., escolha aAv e clique Ok.
(v) Digite o modelo dinâmico mostrado em Equações do Modelo do Sistema: 1=[aAv
vAv xAv]
(vi) Clique em Estimar Parâmetros.
O resultado da estimação, nesse caso, é m = 1,132, b = 1,038 e c = 1,006. Os valores
obtidos podem variar pois xerr é o valor de x contaminado com erro aleatório.
53
Apêndice D Implementação do Algoritmo de Mínimos
Quadrados
A classe que implementa a identificação de parâmetros está transcrita abaixo. Trata-se do
código em VB.NET implementado para a regressão por mínimos quadrados.
Public Class SysDiscretIdent 'Classe para identificação de parâmetros de sistemas dinâmicos #Region "Estruturas de dados e variáveis" Structure varConhecida Dim expressao As String Dim nomevar As String Dim valores() As Double End Structure Structure equacoesRegressao Dim LHS As String Dim funcLHS As funcReal Dim RHS() As String Dim funcRHS() As funcReal End Structure Public varCon() As varConhecida Public qtdVarCon As Integer Public eqsReg() As equacoesRegressao Public qtdEqsReg As Integer 'dimensões de matrizes Public N As Integer Private Q As Integer, k As Integer 'para armazenar a solução e seus indicadores R² de qualidade Public beta() As Double 'vai de 1 até k+1, primeiro até k+1 parâmetro 'para armazenar os desvios padrão Public sigbeta() As Double '1..k+1 Dim YtY As Double 'esse serve para o cálculo dos R Dim YtYminusc As Double 'idem Public RQuad As Double Public RQuadCorrig As Double #End Region #Region "Mensagens" Private Const constTITULO = "Identificação de Sistemas Discretos McLaben" Private Const constNAOHAIGUALDADE = "A equação não tem sinal de igualdade. Digite uma equação do tipo x=[n1 n2 ... nk]" Private Const constINVALIDO = "Equação inválida. Digite uma equação do tipo x=[n1 n2 ... nk]" Private Const constEQMODINVAL = "Equação inválida no modelo. Digite uma equação na forma f(vars)=[f1 f2 ... fk], onde os f são os coeficientes de beta. Equação inválida: " Private Const constERRODIMENS = "Dimensões incompatíveis. Deve haver a mesma quantidade de coeficientes e parâmetros desconhecidos." Private Const constERRODIMENSVALS = "Variáveis medidas devem ter as mesmas dimensões. " Private Const constPOUCASEQS = "Os dados são insuficientes para estimar os parâmetros." #End Region Function eqsModelo(ByVal equacoes As String) As Boolean 'recebe um texto de textbox e identifica, nele, as equações Dim texto() As String, i As Integer, j As Integer
54
Dim temp() As String texto = Split(equacoes, Chr(13) + Chr(10)) 'texto contém n linhas, as equações Dim qtdEqs As Integer = UBound(texto) 'evita pegar ultima linha em branco If Trim(texto(qtdEqs)) = "" Then qtdEqs -= 1 ReDim Preserve texto(qtdEqs) End If 'para conferir dimensões Dim qtddados As Integer ReDim eqsReg(qtdEqs) For i = 0 To UBound(texto) 'fk=[xk yk xk*xk]*transposta([a b c]) temp = Split(texto(i), "=") If Not UBound(temp) = 1 Then MsgBox(constEQMODINVAL, MsgBoxStyle.Critical, constTITULO + Chr(13) + Chr(10) + texto(i)) Return False End If eqsReg(i).LHS = Trim(Replace(temp(0), " ", "")) eqsReg(i).funcLHS = New funcReal() eqsReg(i).funcLHS.expressao = eqsReg(i).LHS If Not Mid(temp(1), 1, 1) = "[" Or Not Right(temp(1), 1) = "]" Then MsgBox(constEQMODINVAL, MsgBoxStyle.Critical, constTITULO + Chr(13) + Chr(10) + texto(i)) Return False End If temp(1) = Mid(temp(1), 2, Len(temp(1)) - 2) temp = Split(temp(1)) 'agora temp contém as equações dos coeficientes ReDim eqsReg(i).RHS(UBound(temp)) ReDim eqsReg(i).funcRHS(UBound(temp)) If qtddados = 0 Then qtddados = UBound(temp) Else If Not UBound(temp) = qtddados Then MsgBox(constERRODIMENS + Chr(13) + Chr(10) + texto(i), MsgBoxStyle.Critical, constTITULO) Return False End If End If For j = 0 To UBound(temp) eqsReg(i).RHS(j) = temp(j) eqsReg(i).funcRHS(j) = New funcReal() eqsReg(i).funcRHS(j).expressao = eqsReg(i).RHS(j) Next Next qtdEqsReg = qtdEqs + 1 Return True End Function Function addEqVarCon(ByVal equacao As String) As Boolean Dim texto() As String, nomevar As String, numeros() As Double 'separa a igualdade texto = Split(equacao, "=") If UBound(texto) = 0 Then MsgBox(constNAOHAIGUALDADE, MsgBoxStyle.Critical, constTITULO) Return False End If If Not UBound(texto) = 1 Then MsgBox(constINVALIDO, MsgBoxStyle.Critical, constTITULO)
55
Return False End If 'texto(0) contém o nome da variável 'texto(1) contém seus valores: [1 2 3 4], por exemplo nomevar = Trim(Replace(texto(0), " ", "")) 'identifica os números texto(1) = Trim(texto(1)) 'e se for uma constante? Dim temp() As String temp = Split(texto(1)) If UBound(temp) = 0 Then 'é mesmo um escalar texto(1) = "[" + texto(1) + "]" End If If Not Right(texto(1), 1) = "]" Or Not Mid(texto(1), 1, 1) = "[" Then MsgBox(constINVALIDO, MsgBoxStyle.Critical, constTITULO) Return False End If texto(1) = Mid(texto(1), 2, Len(texto(1)) - 2) 'retira o "[" e o "]" texto = Split(texto(1)) ReDim numeros(UBound(texto)) Dim i As Integer For i = 0 To UBound(texto) If IsNumeric(texto(0)) Then numeros(i) = CDbl(texto(i)) Else MsgBox(constINVALIDO, MsgBoxStyle.Critical, constTITULO) Return False End If Next addVarConhecida(nomevar, numeros, equacao) Return True End Function Sub addVarConhecida(ByVal nome As String, ByVal valores() As Double, ByVal expressao As String) 'adiciona uma variável na lista de variáveis obtidas experimentalmente Dim pos As Integer, i As Integer pos = localizaVarConhecida(nome) If pos = -1 Then 'não achou. adiciona qtdVarCon += 1 ReDim Preserve varCon(qtdVarCon - 1) pos = qtdVarCon - 1 varCon(pos).nomevar = nome End If varCon(pos).expressao = expressao ReDim varCon(pos).valores(UBound(valores)) For i = 0 To UBound(valores) varCon(pos).valores(i) = valores(i) Next End Sub Function localizaVarConhecida(ByVal nome As String) As Integer 'localiza a variável conhecida. Se achar retorna a posição. Se não, retorna -1 If qtdVarCon = 0 Then Return -1 Dim i As Integer For i = 0 To qtdVarCon - 1 If varCon(i).nomevar = nome Then Return i Next Return -1 End Function Function calcParams(Optional ByVal calcIncerts As Boolean = False) As Double() 'zera os indicadores de qualidade RQuad = 0
56
RQuadCorrig = 0 YtY = 0 YtYminusc = 0 If qtdEqsReg > 0 Then 'faz o cálculo da estimativa utilizando o método de mínimos quadrados 'dim resp() As Double 'cálculo das dimensões N, k e Q. beta[0..k], X[0..N,0..k], Y[0..N], A[0..k,0..k] N = 0 k = 0 Q = qtdEqsReg - 1 Dim i As Integer, j As Integer, p As Integer, pp As Integer For i = 0 To qtdVarCon - 1 If N > 0 Then If N <> UBound(varCon(i).valores) And UBound(varCon(i).valores) > 0 Then Throw New Exception(constERRODIMENSVALS + CStr(N) + "<>" + CStr(UBound(varCon(i).valores))) End If Else N = UBound(varCon(i).valores) End If Next 'já verifiquei a compatibilidade de dimensões em eqsReg no momento 'da leitura k = UBound(eqsReg(0).RHS) If N < k Then Throw New Exception(constPOUCASEQS) End If 'lembrete: quantidade de amostras: N+1 'quantidade de variáveis estimadas: k+1 'é necessário calcular a matriz A[k x k]=sum(Xi'*Xi), b=sum(Xi'Yi) 'A está com índices k+1 por causa do linsolve Dim A(k + 1, k + 1) As Double Dim b(k + 1) As Double 'X vai armazenar os valores das matrizes Xi 'Y vai armazenar os valores dos vetores Yi Dim X(N, k) As Double Dim Y(N) As Double 'para o cálculo de YtY que é y'y dos modelos de RSS Dim somaQuad As Double Dim somaY As Double Dim invN As Double = 1 / N Dim vars As New Variaveis() Dim posicoes(qtdVarCon - 1) As Integer 'adiciona todas as variáveis conhecidas. 'Adicionando varcon(i).valores(0), não preciso modificar 'os escalares mais tarde, os valores já ficam armazenados. For j = 0 To qtdVarCon - 1 vars.addVar(varCon(j).nomevar, varCon(j).valores(0)) posicoes(j) = vars.localizaVar(varCon(j).nomevar) Next 'calcula as matrizes A e b For p = 0 To Q somaQuad = 0 somaY = 0 For i = 0 To N 'joga os valores das variáveis em var
57
For j = 0 To qtdVarCon - 1 If UBound(varCon(j).valores) > 0 Then vars.valores(posicoes(j)) = varCon(j).valores(i) End If Next 'calcula os Y Y(i) = eqsReg(p).funcLHS.avaliar(vars) somaQuad += Y(i) * Y(i) somaY += Y(i) 'calcula os X For j = 0 To k X(i, j) = eqsReg(p).funcRHS(j).avaliar(vars) Next Next YtY += somaQuad YtYminusc += somaQuad - invN * somaY 'adiciona os valores na matriz A e vetor b 'matriz A For i = 0 To k 'X'[0..k,0..N], X[0..N,0..k] - X[i,j] - X'=X[j,i] For j = 0 To k For pp = 0 To N A(i + 1, j + 1) += X(pp, i) * X(pp, j) Next Next Next 'vetor b For i = 0 To k For pp = 0 To N b(i + 1) += X(pp, i) * Y(pp) Next Next Next 'acabei de calcular a matriz A e o vetor b. Basta resolver o sistema linear linsolve(A, b, False) 'lembrando q A não se altera nessa função ReDim beta(UBound(b)) For i = 0 To UBound(b) beta(i) = b(i) Next 'calcula os indicadores de qualidade 'calcula beta'*A'*A*beta Dim btAtAb As Double = 0 Dim numTemp As Double = 0 For j = 1 To k + 1 numTemp = 0 For p = 1 To k + 1 numTemp += beta(p) * A(p, j) Next btAtAb += numTemp * beta(j) Next 'RQuad = (btAtAb + YtYminusc - YtY) / YtYminusc RQuad = btAtAb / YtY RQuadCorrig = 1 - (N - 1) / (N - k) * (YtY - btAtAb) / YtYminusc '************* 'para o cálculo dos intervalos de confiança, é preciso inverter A '************* If calcIncerts Then 'cria uma variável para o cálculo do desvio padrão do erro, e uma matriz para conter a inversa de A
58
Dim sigma As Double, Yestim(N) As Double Dim invA(,) As Double For j = 0 To N For p = 0 To k Yestim(j) += X(j, p) * beta(p + 1) Next Next 'calcula as somas dos quadrados dos resíduos e estima o desvio padrão sigma = 0 For j = 0 To N sigma += (Y(j) - Yestim(j)) * (Y(j) - Yestim(j)) Next sigma = Math.Sqrt(sigma / (N - k)) 'inverte a matriz A inversaprox(A, invA) 'calcula as incertezas ReDim sigbeta(UBound(beta)) For j = 0 To k sigbeta(j + 1) = sigma * Math.Sqrt(invA(j + 1, j + 1)) Next End If Return b 'parâmetros: de b(1) até b(k+1) End If End Function End Class
Matemática Computacional: Laboratório em Engenharia e Ciências
Versão 1.33 (Beta) Douglas Coimbra de Andrade 07/05/2005
MMMCCCLLLAAABBBEEENNN GGGuuuiiiaaa dddeee RRReeefffeeerrrêêênnnccciiiaaa
vv11..3333 ((BBeettaa))
Guia de Referência McLabEn
1. Índice
1. ÍNDICE.................................................................................................................. 2
2. INTRODUÇÃO .................................................................................................... 4
3. COMANDOS DA LINHA DE COMANDO ...................................................... 4
3.1 CRIANDO MATRIZES E VETORES.......................................................................................................................4 3.2 FUNÇÕES MATEMÁTICAS RECONHECIDAS........................................................................................................5
3.2.1 Funções que admitem argumentos matriciais complexos ...........................................................................5 3.2.2 Funções que admitem argumentos matriciais reais ....................................................................................5 3.2.3 Funções geradoras de matrizes e vetores ...................................................................................................6 3.2.4 Funções que operam vetores.......................................................................................................................6
4. ÁLGEBRA LINEAR............................................................................................ 6
4.1 EDITOR DE MATRIZES.......................................................................................................................................7 4.2 TRANSPOSTA, INVERSA E DETERMINANTE........................................................................................................7 4.3 RESOLVER SISTEMA LINEAR.............................................................................................................................7
5. PROGRAMAÇÃO MCLABEN.......................................................................... 8
5.1 DIRETÓRIO DE TRABALHO ................................................................................................................................8 5.2 CONDIÇÕES NOS COMANDOS ............................................................................................................................8 5.3 COMANDOS.......................................................................................................................................................8
5.3.1 Comandos de Atribuição.............................................................................................................................8 5.3.2 If – Then – Else – EndIf...............................................................................................................................8 5.3.3 Do While – EndDo ......................................................................................................................................8 5.3.4 For a=b To c EndFor..................................................................................................................................8 5.3.5 Gráficos: Plot..............................................................................................................................................8 5.3.6 Caixa de Mensagem: CaixaMsg..................................................................................................................8 5.3.7 Recomendações para Programação Eficiente ............................................................................................8
6. GRÁFICOS ........................................................................................................... 8
6.1 GRÁFICOS YXX ................................................................................................................................................8 6.2 CURVAS E SUPERFÍCIES NO ESPAÇO..................................................................................................................8 6.3 INTERFACE PARA GRÁFICOS .............................................................................................................................9
6.3.1 Manipulação de Curvas (Ambiente 2D)......................................................................................................9 6.3.2 Manipulação de Curvas e Superfícies (Ambiente 3D) ..............................................................................11
6.4 AQUISIÇÃO DE DADOS ....................................................................................................................................11 6.4.1 Caso Especial: Autoadquirir.....................................................................................................................12
6.5 PROPAGAÇÃO DE INCERTEZAS........................................................................................................................14 6.5.1 Propagação de Incertezas.........................................................................................................................14 6.5.2 Fórmulas ...................................................................................................................................................16
7. SEDOS E SISTEMAS DINÂMICOS ............................................................... 17
7.1 SOLUÇÕES DE SEDOS.....................................................................................................................................17 7.1.1 Inserção das Equações no Solucionador ..................................................................................................17
2
Guia de Referência McLabEn
7.1.1.1 Comentários.....................................................................................................................................17 7.1.1.2 Relações Diferenciais ......................................................................................................................17 7.1.1.3 Igualdades........................................................................................................................................18 7.1.1.4 Restrições e Vantagens ....................................................................................................................18
7.1.2 Inserção das Condições Iniciais................................................................................................................19 7.1.3 Ajuste dos Parâmetros da Solução Numérica ...........................................................................................19 7.1.4 Respostas, Gráficos e Estatística do Solver ..............................................................................................20 7.1.5 Exportação de Dados/Salvar SEDOs/Ler SEDOs a partir de Arquivos ...................................................20
7.2 GRAFOS DE FLUXO DE SINAIS .........................................................................................................................20 7.2.1 Criação do Grafo ......................................................................................................................................21 7.2.2 Análises do Grafo......................................................................................................................................22 7.2.3 Salvar/abrir Grafo ....................................................................................................................................22
8. IDENTIFICADOR DE PADRÕES .................................................................. 22
9. CRIPTOGRAFIA CAÓTICA........................................................................... 22
10. BIBLIOGRAFIA............................................................................................. 22
APÊNDICE A – CONSTANTES PRÉ-DEFINIDAS ............................................ 22
APÊNDICE B – COMANDOS DE SISTEMA....................................................... 23
APÊNDICE C – ALGORITMOS A SEREM IMPLEMENTADOS ................... 23
APÊNDICE D – ORDEM DAS COMPONENTES DE FREQÜÊNCIA DA FFT..................................................................................................................................... 23
APÊNDICE E – BUGS CONSERTADOS.............................................................. 24
3
Guia de Referência McLabEn
2. Introdução McLabEn é um sistema concebido para permitir manipulação numérica rápida e eficiente de dados e matrizes. Seu interpretador é capaz de realizar com celeridade grande parte das operações corriqueiras, como solução de sistemas lineares, inversão de matrizes e avaliação numérica de expressões (que podem incluir números complexos). As caixas de ferramentas auxiliares fornecem recursos muito úteis e fáceis de utilizar para a solução de diversos problemas (solução de equações diferenciais, construção de gráficos, simulação de grafos de sistemas, etc.). A missão do programa é oferecer soluções em cálculo numérico e algoritmos computacionais inteligentes que sejam muito fáceis de utilizar, sem comprometimento da qualidade das soluções.
3. Comandos da Linha de Comando
Para executar um comando basta digitá-lo na caixa Comando e pressionar Enter (ou clicar
Executar). Os comandos executados na linha de comando têm uma sintaxe padrão: <variável> = <valor>.
Quando a variável não é especificada, o programa atribui seu valor à variável de sistema ans.
Podem ser utilizados argumentos complexos nas funções matemáticas que admitem tais argumentos. Nota: o ambiente é case sensitive, ou seja, existe diferença entre maiúsculas e minúsculas (por exemplo, abs funciona; Abs não). A unidade imaginária é ‘i’ (minúsculo) ou ‘j’ (minúsculo).
Nas funções com mais de um argumento, o caractere separador é o ; (ponto e vírgula). Para executar o comando desejado, digite-o na linha de comando e pressione Enter.
33..11 CCrriiaannddoo MMaattrriizzeess ee VVeettoorreess A sintaxe utilizada para criar matrizes e vetores é a seguinte:
4
Guia de Referência McLabEn
• Os elementos do vetor/matriz ficam entre chaves [] • Os elementos de uma mesma linha são separados por espaço • A separação de linha é feita através do ponto-e-vírgula (;)
Exemplos:
Comando Resposta M=[1 2 3;-2 1 2;3 5 6] M =
[1 2 3 -2 1 2 3 5 6 ]
b=[1 2 3+i] b = [1 2 3+i ]
Para acessar elementos ou submatrizes de uma matriz utilize o comando extrair (descrito em Funções Matemáticas Reconhecidas).
33..22 FFuunnççõõeess MMaatteemmááttiiccaass RReeccoonnhheecciiddaass
3.2.1 Funções que admitem argumentos matriciais complexos Descrição Funções (argumentos: z, x, y
etc.) Exemplos
Argumento de número complexo arg(z), Arg(z) arg(cos(Pi/6)+sin(Pi/6)*i)/Pi*180=30Determinante det(z) det([1 i;2 3])=3-2*i Dimensões de matriz numlinhas(z), numcols(z) =
numcolunas(z)
Exponencial exp(z) exp(1)=2,718281828459 Extrair submatriz de matriz começando na linha L0 e terminando em Lf e começando na coluna C0 e terminando em Cf
extrair(z;L0;Lf;C0;Cf)
Funções trigonométricas sen(z) = sin(z), cos(z), tan(z) = tg(z), sec(z), cossec(z) = csc(z), cotan(z) = cotg(z)
sin(i)=1,175201193644*i
Funções trigonométricas hiperbólicas
senh(z) = sinh(z), cosh(z), tanh(z)
Inversa de matriz invmat(z) = inversa(z) = inverse(z)
Inverso dos termos de uma matriz invtermos(z) invtermos([0.5 2])=[2 0.5] Logaritmo ln(z) ln(exp(1))=1 Norma (v0.5) norma(A) = norm(A) norma([1 1;1 1])=2 (=sqrt(4)) Parte imaginária de número complexo
Im(z) Im([i 1])=[1 0], Im(3+4*i)=4
Parte real de número complexo Re(z) Re([i 1])=[0 1], Re(3+4*i)=3 Potenciação pow(x;y) = x^y pow(4;i)= 0,18345697+0,983027*i Produto entre matrizes x*y [1 2;1 2]*[2 3;1 2]=[4 7;4 7] Produto escalar dot(x;y) = prodescalar(x;y) =
prodesc(x;y)
Raiz quadrada sqrt(z) sqrt(-1)=i Solução de sistemas lineares – resolve o sistema Ax=b
linsolve(A;b) = sistlinear(A;b)
Solução de sistemas lineares reais: resolve Re(A)x=Re(b)
linsolvereal(A;b)
Transposta de matriz transpose(z) = transposta(z) Valor absoluto abs(z) abs(-1)=1, abs(3+4*i)=5
3.2.2 Funções que admitem argumentos matriciais reais Descrição Funções (argumentos: z, x, y etc.) Exemplos Funções trigonométricas inversas arctan(z) = arctg(z), arcsin(z) = arcsen(z),
5
Guia de Referência McLabEn
arccos(z) Função Degrau Unitário Heaviside(z), Hs(z) Hs([-1 1 2])=[0 1 1] Função fatorial (v0.41) gama(z) = gamma(z) = fatorial(z) = factorial(z) gama(4)=6,
gama(4,5) Piso piso(z), floor(z) floor([1,2 2,3])=[1 2] Teto teto(z), ceil(z) ceil([1,2 2,3])=[2 3]
3.2.3 Funções geradoras de matrizes e vetores Descrição Funções (argumentos: z, x, y etc.) Exemplos Identidade nxn identity(n) = identidade(n) Matriz de Vandermonde nxn Vander(n) = vander(n) = Vandermonde(n)
= vandemonde(n)
Matriz pxq de números reais aleatórios uniformemente distribuídos no intervalo [0,1].
random(p;q)=aleat(p;q)
Matriz nxm de linhas iguais e colunas igualmente espaçadas (v0.5)
linspaceY(x0;xf;n;m) linspaceY(0;5;2;6)= [0 1 2 3 4 5; 0 1 2 3 4 5]T
Matriz nxm de colunas iguais e linhas igualmente espaçadas (v0.5)
linspaceX(x0;xf;n;m) linspaceX(0;5;6;2)= [0 1 2 3 4 5; 0 1 2 3 4 5]
Matriz de uns (v0.42) uns(2;2), ones(3;1) uns(1;4)=[1 1 1 1] uns(2;2)=[1 1;1 1]
Vetor com seqüência linear começando em x0, terminando em xf com n pontos igualmente espaçados no intervalo.
linspace(x0;xf;n) linspace(0;5;6)=[0 1 2 3 4 5]
3.2.4 Funções que operam vetores Descrição Funções (argumentos: z,
x, y etc.) Exemplos
Transformada rápida de Fourier FFT (v0.42)
FFT(v) FFT([1 2 3 4])
Raízes de equações polinomiais complexas (v0.5) Trata-se de uma implementação do método de Laguerre que, nos testes realizados, mostrou eficiência para polinômios de grau até 50, podendo ocorrer perda de raízes para polinômios de graus maiores.
raízes(v), roots(v), raizes(v) roots([1 -3 2]) ans = [1 2 ] roots([1 -i 2+i]) ans = [0.32574-1.035*i -0.32574+2.035*i ]
Transformada rápida inversa de Fourier iFFT (v0.42)
iFFT(v) iFFT([1 2 3 4])
4. Álgebra Linear
6
Guia de Referência McLabEn
44..11 EEddiittoorr ddee MMaattrriizzeess O editor de matrizes é um recurso construído para facilitar a edição de matrizes existentes, embora também sirva para criar novas matrizes. O procedimento para criar/editar matrizes é o seguinte:
1. Se a intenção é criar uma nova matriz, pule para o passo 2. Para abrir uma matriz existente na memória do ambiente de trabalho, clique na lista “Importar Variável” e escolha a variável a ser importada para o ambiente de edição. Os elementos do vetor ou matriz aparecem na tela, dentro do frame Matriz.
2. Escolha o número de linhas e colunas da matriz, editando as caixas de texto “Linhas” e “Colunas”. 3. Altere os valores dos elementos desejados. O elemento a(i,j) é o elemento da i-ésima linha e j-
ésima coluna. Digite o valor a ser atribuído e pressione Enter (ou clique no botão Alterar). 4. Repita o passo 3 até editar todos os valores desejados. 5. Exporte a matriz criada para o ambiente McLabEn digitando o nome da variável no campo “Atribuir
Variável” e clicando no botão “Atribuir”.
44..22 TTrraannssppoossttaa,, IInnvveerrssaa ee DDeetteerrmmiinnaannttee Ao clicar em qualquer uma das opções acima, o McLabEn abre uma janela perguntando qual matriz, dentre as que estão na memória, deve ser tomada como argumento. No caso de inversa e determinante, somente as matrizes quadradas são exibidas. Se a matriz não for inversível, a resposta é uma matriz identicamente nula de mesma dimensão do argumento.
44..33 RReessoollvveerr SSiisstteemmaa LLiinneeaarr Resolve o sistema linear Ax=b pelo método da fatoração LU. Ao clicar nessa opção, o McLabEn exibe todas as matrizes quadradas nxn na memória (que será a matriz A da fórmula). A seguir, o sistema mostra todos os vetores 1xn compatíveis com a matriz A (ou seja, se A é 3x3, exibe todos os vetores 1x3). Após selecionados os dois argumentos, o programa exibe a resposta.
7
Guia de Referência McLabEn
5. Programação McLabEn
O usuário McLabEn pode criar suas próprias funções (v1.2). Essas funções são interpretadas e armazenadas internamente quando invocadas na linha de comando. De dentro das funções é possível invocar todos os comandos da linha de comando e também todas as demais funções criadas pelo usuário.
Cada função criada pelo usuário deve ficar em um arquivo diferente. Um cuidado essencial é dar ao arquivo contendo a função <função> o nome <função>.mcf. Por exemplo, a função minQuad deve estar implementada no arquivo minQuad.mcf. Atenção: o McLabEn diferencia maiúsculas e minúsculas em funções. Dessa forma, minquad não é o mesmo que minQuad.
55..11 DDiirreettóórriioo ddee TTrraabbaallhhoo
As funções do usuário ficam armazenadas em um diretório.
55..22 CCoonnddiiççõõeess nnooss CCoommaannddooss
55..33 CCoommaannddooss
5.3.1 Comandos de Atribuição
5.3.2 If – Then – Else – EndIf
5.3.3 Do While – EndDo
5.3.4 For a=b To c EndFor
5.3.5 Gráficos: Plot
5.3.6 Caixa de Mensagem: CaixaMsg
5.3.7 Recomendações para Programação Eficiente
6. Gráficos
66..11 GGrrááffiiccooss YYxxXX Inicialmente, o programa pede para o usuário escolher o vetor que contém as coordenadas X dos pontos e, após isso, o vetor que contém as coordenadas Y, para construir o gráfico YxX. Em seguida, pede-se o título que será exibido na tela. Para não adicionar novos dados ao ambiente de gráficos 2D, basta clicar Cancelar em alguma das etapas.
66..22 CCuurrvvaass ee SSuuppeerrffíícciieess nnoo EEssppaaççoo v0.5 – Utilização do pacote gráfico OpenGL para renderização dos gráficos. Com a implementação de OpenGL , tornou-se possível confeccionar gráficos de curvas e superfícies tridimensionais.
8
Guia de Referência McLabEn
Para confeccionar curvas tridimensionais, basta selecionar “Curvas no Espaço” no menu gráficos e escolher os vetores que contêm as coordenadas X, Y e Z dos pontos. Pode-se, também, definir cores nos vértices. As cores são interpoladas linearmente pela placa de vídeo. Para plotar superfícies, é necessário criar as matrizes de suas coordenadas X, Y e Z. Para essa finalidade, foram implementadas as funções linspaceX e linspaceY. Exemplo: gráfico de uma gaussiana: matrx=linspaceX(-3;3;10;10) matry=linspaceY(-3;3;10;10) fxy=exp(-dot(matrx;matrx)-dot(matry;matry)) matrx = [-3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 -3 -2.333 -1.667 -1 -0.3333 0.3333 1 1.667 2.333 3 ] matry = [-3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -2.333 -2.333 -2.333 -2.333 -2.333 -2.333 -2.333 -2.333 -2.333 -2.333 -1.667 -1.667 -1.667 -1.667 -1.667 -1.667 -1.667 -1.667 -1.667 -1.667 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0.3333 -0.3333 -0.3333 -0.3333 -0.3333 -0.3333 -0.3333 -0.3333 -0.3333 -0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 1 1 1 1 1 1 1 1 1 1 1.667 1.667 1.667 1.667 1.667 1.667 1.667 1.667 1.667 1.667 2.333 2.333 2.333 2.333 2.333 2.333 2.333 2.333 2.333 2.333 3 3 3 3 3 3 3 3 3 3 ] fxy = [1.523E-08 5.332E-07 7.673E-06 4.54E-05 0.0001104 0.0001104 4.54E-05 7.673E-06 5.332E-07 1.523E-08 5.332E-07 1.866E-05 0.0002686 0.001589 0.003866 0.003866 0.001589 0.0002686 1.866E-05 5.332E-07 7.673E-06 0.0002686 0.003866 0.02287 0.05564 0.05564 0.02287 0.003866 0.0002686 7.673E-06 4.54E-05 0.001589 0.02287 0.1353 0.3292 0.3292 0.1353 0.02287 0.001589 4.54E-05 0.0001104 0.003866 0.05564 0.3292 0.8007 0.8007 0.3292 0.05564 0.003866 0.0001104 0.0001104 0.003866 0.05564 0.3292 0.8007 0.8007 0.3292 0.05564 0.003866 0.0001104 4.54E-05 0.001589 0.02287 0.1353 0.3292 0.3292 0.1353 0.02287 0.001589 4.54E-05 7.673E-06 0.0002686 0.003866 0.02287 0.05564 0.05564 0.02287 0.003866 0.0002686 7.673E-06 5.332E-07 1.866E-05 0.0002686 0.001589 0.003866 0.003866 0.001589 0.0002686 1.866E-05 5.332E-07 1.523E-08 5.332E-07 7.673E-06 4.54E-05 0.0001104 0.0001104 4.54E-05 7.673E-06 5.332E-07 1.52E-08] Os dados referentes à função são fxy. Naturalmente, é possível parametrizar superfícies utilizando esse método.
66..33 IInntteerrffaaccee ppaarraa GGrrááffiiccooss O ambiente gráfico McLabEn inclui curvas e superfícies e será explicado no presente tópico. A interface suporta tridimensionalidade, que pode ser ativada com a opção “Exibir gráfico em contexto tridimensional”, e permite interatividade com o mouse. 6.3.1 Manipulação de Curvas (Ambiente 2D) O primeiro passo para começar a manipulação é escolher um conjunto de dados clicando na lista de nome “Curvas:”. Após isso, os recursos disponíveis são:
9
Guia de Referência McLabEn
Recurso Procedimento Apagar o conjunto de dados Clique no botão Apagar Editar ponto do conjunto de dados Escolha o ponto na lista “Pontos do gráfico” e clique no botão Editar.
Em seguida, digite as novas coordenadas do ponto no formato [x y]. Eliminar ponto do conjunto de dados Escolha o ponto na lista “Pontos do gráfico” e clique no botão
Eliminar. Escala automática de todos os conjuntos de pontos que estão sendo exibidos
Clique no menu Gráfico –> Escala Automática ou clique com o botão direito do mouse na área de desenho
Esconder o conjunto de dados Clique no botão Esconder Exibir conjunto de dados Basta escolher o conjunto de dados Exibir marca nos pontos do conjunto de dados
Clique no menu Tipo de Ponto. Escolha um tipo de gráfico dentre as opções definidas OU determine um caracter que irá marcar os pontos (Tipo de Ponto -> Letra) OU escolha numerar os pontos na ordem em que foram armazenados (Numerar Pontos).
Exportar para um arquivo Clique no menu Exportar/Importar Dados -> Exportar para Arquivo e crie o arquivo .txt que irá conter o conjunto de dados.
Exportar para uma variável no ambiente de comando McLabEn
Clique no menu Exportar/Importar Dados -> Exportar variável. Escolha os nomes das variáveis que irão receber os dados do eixo X e Y. Nota: se as variáveis já existirem, elas serão sobrescritas.
Importar de arquivo Clique no menu Exportar/Importar Dados -> Importar do Arquivo e selecione o arquivo de dados .txt no formato reconhecido pelo McLabEn.
Mudar a cor do conjunto de dados Clique no botão Cor... e selecione da lista Não exibir marca nos pontos do gráfico
Clique no menu Tipo de Ponto -> Não exibir pontos
Quantidade de divisões nos eixos Clique no menu Gráfico -> Divisões no eixo X (ou Y) e escolha a densidade de divisões (Nenhuma, Poucas, Médias, Muitas)
10
Guia de Referência McLabEn
Zoom em parte do gráfico Clique e arraste o mouse sobre a região a ser magnificada 6.3.2 Manipulação de Curvas e Superfícies (Ambiente 3D) O ambiente 3D permite apenas rotação dos eixos e escala automática.
66..44 AAqquuiissiiççããoo ddee DDaaddooss O objetivo do sistema de aquisição de dados é ler uma figura (.bmp, .jpg, etc.) que contenha um gráfico de função (que pode, inclusive, ter sido escaneado) e extrair desse gráfico as coordenadas dos pontos da função. Para que o sistema funcione perfeitamente, as recomendações são as seguintes:
• A cor da função a ser adquirida deve ser diferente de todas as demais cores da figura. Isso é essencial para que o software não confunda quais pontos pertencem à função e quais pontos devem ser ignorados.
• O gráfico deve representar uma função. Se isso não acontecer, somente os pontos do extremo superior serão adquiridos.
Para efetuar a leitura, siga os seguintes passos:
11
Guia de Referência McLabEn
1. Clique no menu Figura -> Importar... e carregue a figura contendo o gráfico da função; 2. Garanta que a cor da função é diferente das demais cores da figura; 3. Se a imagem não estiver com um desnível angular, pule para o passo 4. Se não, determine um
ângulo de correção e clique no botão Rotacionar até que a angulação do gráfico esteja da forma desejada;
4. Clique no botão Coordenadas Iniciais..., especifique o valor da coordenada e clique em um ponto da imagem que corresponda a essas coordenadas *;
5. Similarmente, Clique no botão Coordenadas Finais..., especifique o valor da coordenada e clique em um ponto da imagem que corresponda a essas coordenadas *. Importante: o sistema adquire pontos em toda a extensão vertical do gráfico, mas na direção horizontal, apenas entre as coordenadas iniciais e finais;
6. Determine a cor do gráfico. Faça isso clicando no botão Cor do Gráfico e, em seguida, clicando em um ponto dentro da figura que seja da mesma cor do gráfico (isto é, clique em um ponto do gráfico para que o programa identifique sua cor). Verifique se a cor selecionada a partir do gráfico é a desejada na cor que aparece ao lado do botão Cor do Gráfico;
7. Clique no botão Adquirir e especifique a quantidade de pontos igualmente espaçados que serão adquiridos a partir da figura;
8. Clique no botão Plotar Dados... para manipular os dados adquiridos na interface para gráficos 2D.
(v1.33) * Se a figura for maior do que o espaço disponível na tela, basta utilizar as barras de
rolagem para acessar a região do gráfico que corresponde à coordenada desejada.
6.4.1 Caso Especial: Autoadquirir
12
Guia de Referência McLabEn
Existem casos em que os gráficos estão muito bem definidos, suas cores são bem diferentes das cores das linhas do grid (ou não há grid), mas eles possuem, todos, a mesma cor, como no exemplo mostrado neste tópico. Nesses casos, como o algoritmo de aquisição faz a leitura de cima para baixo, é necessário editar manualmente a figura para apagar os gráficos superiores, o que pode ser um incômodo. Para isso, foi criado um algoritmo específico, que tenta reconhecer pontos de funções que não apresentem descontinuidades. Em resumo, se:
• A imagem contém várias curvas que não se tocam (essencial); • Essas curvas não contêm descontinuidades e estão bem definidas na imagem (essencial); • Não há grid ou o grid tem cor diferente da dos gráficos (essencial); • As curvas têm cores parecidas (este requisito não é essencial para o funcionamento do
Autoadquirir).
Então, o procedimento que utiliza o comando Autoadquirir é o mais adequado: 1. Clique no menu Figura -> Importar... e carregue a figura contendo o gráfico da função; 2. Marque o botão Autoadquirir; 3. Clique no botão Coordenadas Iniciais..., especifique o valor da coordenada e clique em um ponto da
imagem que corresponda a essas coordenadas; 4. Similarmente, Clique no botão Coordenadas Finais..., especifique o valor da coordenada e clique
em um ponto da imagem que corresponda a essas coordenadas. Importante: o sistema adquire
13
Guia de Referência McLabEn
pontos em toda a extensão vertical do gráfico, mas na direção horizontal, apenas entre as coordenadas iniciais e finais;
5. Clique no botão Cor do Gráfico. Clique sobre a curva cujos dados deseja adquirir. O programa adquire automaticamente os dados, mostrando os gráficos correspondentes.
6. Se for necessário adquirir os dados de mais curvas, basta clicar nos demais gráficos.
66..55 PPrrooppaaggaaççããoo ddee IInncceerrtteezzaass O sistema de Propagação de Incertezas é um meio prático para propagar incertezas em medições de laboratório, utilizando os métodos clássicos de propagação de incerteza (absoluta e estatística) para obter as incertezas de dados calculados a partir de resultados experimentais. É possível entrar no módulo de propagação de incertezas da seguinte forma:
Clique no botão dropdown de gráficos e plots e, em seguida, na opção “Propagação de Incertezas...”
6.5.1 Assistente de Propagação
O Assistende de Propagação é uma ferramenta prática para propagar incertezas de dados obtidos em laboratório. É aberto automaticamente quando se clica em Propagação de Incertezas, mas pode ser acessado pelo módulo principal no menu Assistente. Basta seguir os passos apresentados para inserir dados e equações. Após finalizar o assistente, siga as seguintes etapas:
1. Após clicar em Concluir, clique no botão Propagar do módulo principal para que seja feita a propagação.
2. O McLabEn mostra as variáveis propagadas e possíveis motivos pelos quais não tenha sido capaz de propagar incerteza em alguns casos. Após a propagação, ficam habilitados os botões de Gráficos e Exportar Variáveis.
3. Para visualizar os gráficos das variáveis do problema, clique em Gráficos Individuais. 4. Todas as variáveis calculadas e suas respectivas incertezas podem ser visualizadas em Variáveis
Calculadas. 5. Para fazer gráficos de uma variável em função de outra, basta clicar em Exportar Variáveis. O
propagador exporta as variáveis para o ambiente McLabEn. A partir daí, basta usar os procedimentos descritos em Gráficos YxX para plotar a informação desejada. São exportados, também, os erros das variáveis, com nome err + <nome da variável>.
6.5.2 Módulo Principal
14
Guia de Referência McLabEn
Quando as incertezas primárias das variáveis medidas já são conhecidas, pode ser mais prático utilizar diretamente o módulo principal para propagar incertezas, seguindo os seguintes passos:
1. A caixa Variáveis conhecidas / medidas contém os dados medidos em laboratório. Utilize a caixa ao lado do botão Adicionar / Alterar para dar um nome para o conjunto de dados. Digite os dados medidos e suas respectivas incertezas separadas por ; (ponto-e-vírgula) e espaços. Clique no botão Adicionar/Alterar para incluir o novo conjunto de dados.
2. Se desejar inserir um escalar com sua respectiva incerteza para efetuar cálculos, basta dar um nome para a variável, colocar APENAS UM valor e UMA incerteza.
3. Insira todos os dados conhecidos repetindo as operações 2 e 3. 4. Para adicionar uma nova variável a ser calculada com base nos dados experimentais, digite sua
relação com as variáveis conhecidas na caixa “Variáveis desconhecidas”. Adicione a nova variável desconhecida com o botão Adicionar / Alterar. As fórmulas desse campo são operadas termo a termo entre as variáveis que forem vetores. Se alguma variável for escalar, então o valor e a incerteza do escalar são usadas em todas as operações.
15
Guia de Referência McLabEn
5. As variáveis desconhecidas subseqüentes podem estar em função de variáveis desconhecidas já adicionadas. Clique em Adicionar/Alterar para adicionar novas variáveis desconhecidas.
6. Para alterar uma relação adicionada incorretamente, basta digitar a relação correta na caixa ao lado do botão Adicionar / Alterar e clicar no botão. A nova relação substitui a anterior.
7. Repita os passos 6 e 7 até adicionar todas as variáveis desconhecidas. 8. O próximo passo é propagar as incertezas. Escolha o tipo de incerteza a propagar (estatística
ou global) e clique no botão Propagar.
9. O McLabEn mostra as variáveis propagadas e possíveis motivos pelos quais não tenha sido capaz de propagar incerteza em alguns casos. Após a propagação, ficam habilitados os botões de Gráficos e Exportar Variáveis.
10. Para visualizar os gráficos das variáveis do problema, clique em Gráficos Individuais. 11. Todas as variáveis calculadas e suas respectivas incertezas podem ser visualizadas em
Variáveis Calculadas. 12. Para fazer gráficos de uma variável em função de outra, basta clicar em Exportar Variáveis. O
propagador exporta as variáveis para o ambiente McLabEn. A partir daí, basta usar os procedimentos descritos em Gráficos YxX para plotar a informação desejada. São exportados, também, os erros das variáveis, com nome err + <nome da variável>.
6.5.3 Fórmulas A propagação de incertezas tem uma teoria à parte, que pode ser encontrada em [3]. As fórmulas para a propagação do erro de uma função f dependente de x1, x2, ..., xn são: f = f(x1, x2, ...,xn) Incerteza global:
16
Guia de Referência McLabEn
= δ f ∑ = i 1
n
δxi
⎛
⎝⎜⎜⎜
⎞
⎠⎟⎟⎟∂
∂xi
f
Incerteza estatística:
= δ f ∑ = i 1
n⎛
⎝⎜⎜⎜
⎞
⎠⎟⎟⎟
δxi
⎛
⎝⎜⎜⎜
⎞
⎠⎟⎟⎟∂
∂xi
f2
7. SEDOs e Sistemas Dinâmicos
77..11 SSoolluuççõõeess ddee SSEEDDOOss O algoritmo para solução de sistemas de equações diferenciais ordinárias (SEDOs) no McLabEn é um Runge-Kutta de quarta ordem com correção de sexta ordem (detalhado em [1] e [2]). Um excelente recurso do McLabEn é que, ao contrário de diversos outros programas que resolvem SEDOs, o McLabEn efetua automaticamente a transformação das equações diferenciais de ordem maior do que 1 em sistemas de equações diferenciais de ordem 1. Os detalhes do programa de implementação da solução podem ser encontrados nas referências [1] e [2]. 7.1.1 Inserção das Equações no Solucionador O espaço para inserção de equações no solucionador admite três tipos de linhas:
• Comentários (em verde) (v1.0) • Relações diferenciais (em preto) (v1.0) • Relações não-diferenciais (igualdades) (em azul) (v1.0)
7.1.1.1 Comentários Qualquer linha que não contenha o sinal de igualdade “=” é entendida como um comentário e é completamente ignorada pelo solver de equações diferenciais. Adicionalmente, comentários podem ser colocados em qualquer linha: basta precedê-los por “//” (duas barras). 7.1.1.2 Relações Diferenciais
17
Guia de Referência McLabEn
Para fornecer as equações diferenciais, utiliza-se uma “’” (aspa simples) para cada derivada da função (com relação à variável independente especificada na caixa de texto Variável Independente – o padrão é t). Assim, x’’ = -x-x’ diz que a segunda derivada de x(t) é igual a x(t) menos sua derivada x’(t). Observe que não se coloca o (t) do x(t) na definição. É necessário explicitar a derivada de maior ordem da equação do lado esquerdo da igualdade para que o solucionador funcione. Uma vez definida a equação diferencial, a maior derivada da função e todas as outras tornam-se disponíveis para uso em igualdades e relações diferenciais, em linhas acima ou abaixo da linha onde a relação foi definida.
Exemplo de equação diferencial Variáveis que se tornam disponíveis após a definição x’’’=x’’-x x’’’, x’’, x’ e x f’’=f-f’ f’’, f’ e f y’’’’=sqrt(y)*t y’’’’, y’’’, y’’, y’ e y
Exemplos de entradas válidas Descrição x’’=x’-y’ y’=x-y
Sistema de equações diferenciais acopladas
f’’=f’*g+h g’’=f*g-f-g h’’’=h’’-h+f
Sistema de equações diferenciais acopladas (não-linear)
Exemplos de entradas inválidas
Motivo da falha
x’’=x’’’-x’ A maior derivada precisa ser explicitada do lado esquerdo da equação x’’=y’-x’ y’=x-x’’’
O programa não conhece o valor de x’’’ (pois a maior derivada de x que aparece – do lado esquerdo da equação – é 2).
7.1.1.3 Igualdades As igualdades são muito úteis para definir constantes do sistema ou saídas desejadas. Em linhas que definem igualdade não aparece a aspa simples (’), mas apenas a relação de igualdade. Uma vez definida a igualdade, a variável à esquerda na equação torna-se disponível para uso em todas as relações diferenciais (em linhas acima ou abaixo da definição), mas torna-se disponível para uso em igualdades somente em linhas abaixo de sua definição. Exemplos de entradas válidas Descrição A=1 y’=A*y+sqrt(B)*y B=2+A
Utilização de uma constante em uma EDO. Pode-se utilizar a constante B na EDO pois as variáveis definidas nas igualdades ficam disponíveis para todas as relações diferenciais do campo de equações.
A=abs(y’-x’) x’’=-x’-x-y*C B=abs(x-y) y’’=-y’-y-x C=abs(x-x’)
As constantes A, B e C podem ser saídas desejadas. Essa configuração da entrada é válida porque as relações diferenciais tornam as variáveis x, x’, x’’, y, y’ e y’’ disponíveis em TODAS as linhas da entrada, e as variáveis do lado esquerdo de igualdades ficam disponíveis para todas as relações diferenciais (acima ou abaixo).
Exemplos de entradas inválidas Descrição A=B B=1+A y’=A*y+sqrt(A)*y
Não se pode utilizar B do lado direito de uma igualdade pois B só fica disponível para esse fim nas linhas ABAIXO de sua definição.
A=B+C x’’=-x’-B*x-y B=abs(x-y) y’’=-y’-y-x C=abs(x-x’)
Idem, B e C só ficam disponíveis para utilização em igualdades nas linhas abaixo de sua definição.
7.1.1.4 Restrições e Vantagens
As principais restrições na entrada das equações são:
18
Guia de Referência McLabEn
• Necessidade de isolar a maior derivada da equação diferencial • Não se pode utilizar variáveis definidas do lado esquerdo de uma igualdade em linhas acima da
linha de definição • As derivadas de ordem superior à da maior não ficam disponíveis.
Por outro lado, as vantagens são compensadoras:
• Praticamente todos os softwares para solução numérica de equações diferenciais têm as restrições
acima (ou restrições ainda piores, como a IMPOSSIBILIDADE de utilizar igualdades) • O software determina automaticamente as condições iniciais que devem ser estipuladas para o
sistema (conforme será visto a seguir), bem como transforma sozinho sistemas de ordens superiores em sistemas de primeira ordem.
• O software calcula de forma muito fácil praticamente todas as saídas que podem ser de interesse do usuário (conforme será visto a seguir).
7.1.2 Inserção das Condições Iniciais
Uma vez definidas as equações diferenciais e as igualdades do sistema, basta clicar no campo de condições iniciais e definir seus valores. O programa determina automaticamente quais condições iniciais devem ser especificadas. 7.1.3 Ajuste dos Parâmetros da Solução Numérica Os parâmetros a seres ajustados são:
• Intervalo de Amostragem – Intervalo em que os valores da função serão armazenados na memória. Por exemplo, um intervalo de amostragem de 0,001 armazena 100 vezes mais pontos do que um intervalo de amostragem de 0,1.
• Precisão – Calcula a precisão relativa admissível para o problema. Isso não garante que a resposta atende essa precisão, mas fornece para o solver um modo de controle para o passo variável. Para aplicações lineares ou não-caóticas, o solver fornece respostas que são, em geral, mais precisas do que a precisão especificada.
• Variável independente – Nome da variável independente que será reconhecida no conjunto de equações.
• Valor inicial – Valor inicial da variável independente. Note que todas as condições iniciais são assumidas como valores da função no valor inicial da variável independente.
• Integrar até – Valor final da variável independente.
19
Guia de Referência McLabEn
7.1.4 Respostas, Gráficos e Estatística do Solver Para resolver o SEDO, clique em Resolver e aguarde até que a solução esteja completa.
• Os valores das funções definidas por relações diferenciais e igualdades (todas as funções) podem ser visualizados clicando no botão “Respostas”. Esse botão exibe os valores no ponto final da integração.
• Os gráficos de todas as funções no tempo podem ser visualizados clicando em “Gráficos de evolução no tempo”. Devido ao grande número de funções geralmente definidas em um SEDO, nenhuma delas fica visível inicialmente no ambiente de gráficos 2D. Para visualizar os conjuntos de dados basta selecioná-los. Para maiores informações sobre a interface 2D consulte Interface para Gráficos 2D.
• Gráficos de trajetórias são os gráficos em que os valores de uma função dão as coordenadas x dos pontos e os valores de outra função dão as coordenadas y dos pontos. Os gráficos de trajetórias também podem ser visualizados clicando no botão “Gráficos de Trajetórias”.
• Informações técnicas sobre a execução do solver e estimativa do erro da solução podem ser visualizados clicando no botão “Estatística”.
7.1.5 Exportação de Dados/Salvar SEDOs/Ler SEDOs a partir de Arquivos O funcionamento dos botões de importação/exportação é o seguinte:
• Exportar dados – exporta as variáveis armazenadas na solução do SEDO para o ambiente de comando do McLabEn. Nota: se as variáveis já existirem elas serão sobrescritas.
• Salvar arquivo – salva um arquivo contendo todas as equações, condições iniciais e parâmetros definidos no ambiente. Ideal para salvar um modelo de análise de equações diferenciais.
• Ler do arquivo – lê equações, condições iniciais e parâmetros a partir de um arquivo.
77..22 GGrraaffooss ddee FFlluuxxoo ddee SSiinnaaiiss
20
Guia de Referência McLabEn
O recurso de grafos de fluxos de sinais implementa alguns recursos para grafos orientados, como:
• Detecção de todas as malhas fechadas • Reconhecimento das malhas fechadas que não se tocam (2 a 2, 3 a 3, etc.) • Detecção de todos os caminhos partindo de um nó de origem e chegando a um nó de destino • Implementação da fórmula de Mason para o cálculo da função de transferência de um sistema
dinâmico representado por seu grafo de fluxo de sinais (para maiores informações consulte a referência [3])
7.2.1 Criação do Grafo
Para a criação do grafo, são utilizados os seguintes comandos: Descrição Comando a ser utilizado Alterar nome de um nó Dê um clique duplo sobre o nó e digite o novo nome do nó Criar um novo nó Clique no botão Adicionar Nó De-selecionar nó Clique sobre o nó selecionado Ligar o nó de origem A ao nó de destino B
Selecione o nó A e clique sobre o nó B. A função de transferência que será associada à ligação é aquela dada pela caixa de textos Função de Transferência
Modificar função de transferência Altere a função na caixa de textos Função de Transferência Mover nó Selecione o nó a ser movido e clique na posição de destino do nó Remover ligação entre o nó de origem A e o nó de destino B
Selecione o nó A e clique sobre o nó B
Remover nó Selecione o nó a ser removido e clique no botão Remover Nó Selecionar nó Clique sobre o nó. O nó selecionado fica com cor de fundo azul
21
Guia de Referência McLabEn
7.2.2 Análises do Grafo As análises possíveis estão descritas abaixo: Análise Comando Determinante do sistema dinâmico (ref [3])
Clique no menu Análise -> Determinante do Sistema
Encontrar função de transferência entre uma entrada e uma saída (ref [3])
Clique no menu Análise -> Calcular Função de Transferência. Selecione o nome do nó que corresponde à entrada e, a seguir, o nome do nó que corresponde à saída
Encontrar todas as malhas fechadas do sistema e verificar quais não se tocam 2 a 2, 3 a 3, etc.
Clique no menu Análise -> Malhas Fechadas
Encontrar todos os caminhos ligando um nó de origem a um nó de destino
Clique no menu Análise -> Caminhos entre Nós. Selecione o nome do nó de origem e o nome do nó de destino.
Após a análise ser executada, os resultados da análise são escritos na caixa de texto Resultados de
Análise. No caso de cálculo de determinantes de sistema e funções de transferência, é conveniente utilizar um software de manipulação simbólica para simplificar os resultados obtidos. O formato em que o McLabEn gera as respostas é compatível com vários softwares de manipulação simbólica (Maple®, Mathematica®).
7.2.3 Salvar/abrir Grafo Para salvar o grafo construído, clique no menu Arquivo -> Salvar Grafo e defina o nome do arquivo. Para carregar um arquivo de grafo salvo, clique no menu Arquivo -> Abrir e escolha o arquivo que contém o grafo.
8. Identificador de Padrões
9. Criptografia Caótica
10. Bibliografia [1] STOER, J., e BULIRSCH, R., 1980, Introduction to Numerical Analysis [2] GEAR, C. WILLIAM., 1971, Numerical Initial Value Problems in Ordinary Differential Equations [3] ADADE, A. F., Análise de Sistemas Dinâmicos
Apêndice A – Constantes Pré-Definidas As constantes relacionadas abaixo são palavras reservadas e são automaticamente convertidas
para o valor tabelado no McLabEn. Nota: os comandos diferenciam maiúsculas de minúsculas (case-sensitive). Os Constante Física Comando(s) McLabEn para acessar Valor (em unidades SI)* π Pi 3,14159265358979 Carga do elétron cte_e 1,6021765314E-19 Comprimento de onda Compton cte_lambdaC 2,42631021518E-12 Constante de Boltzmann cte_k, cte_Boltzmann 1,380650324E-23 Constante de Faraday cte_F, cte_Faraday 9,64853415E4 Constante de Planck cte_h, cte_Planck 6,626069311E-34 Constante de Rydberg cte_Rydberg 1,097373156854983E7 Constante de Stefan-Boltzmann cte_sigma, cte_StefanBoltzmann 5,6704004E-8 Constante gravitacional cte_G 6,6731E-11 Constante universal dos gases cte_R 8,31447215 Massa do elétron em repouso cte_me, cte_massaeletron 9,1093818872E-31 Massa do nêutron em repouso cte_mp, cte_massaproton 1,6726215813E-27
22
Guia de Referência McLabEn
Massa do próton em repouso cte_mn, cte_massaneutron 1,6749271613E-27 Número de Avogadro cte_N0, cte_Avogadro 6,0221419947E+23 Permissividade elétrica (vácuo) cte_eps0, cte_epsilon0 8,854187817E-12 Permissividade magnética (vácuo) cte_mu0, cte_mi0 1,2566370614E-6 Raio de Bohr cte_a0, cte_raioBohr 5,29177208319E-12 Unidade de massa atômica cte_uma 1,66053873E-27 Velocidade da luz no vácuo cte_c, cte_c0 2,99792458E8
* Valores obtidos no site http://physics.nist.gov/cuu/Constants (National Institute of Standards and Technology).
Apêndice B – Comandos de sistema Comando Ação executada pelo McLabEn listarvariaveis Conta o número de variáveis na memória precisao(n) Ajusta o valor da precisão a ser exibida na tela para o valor inteiro n entre 0 e 15 (inclusive).
Apêndice C – Algoritmos a Serem Implementados
• Analisador de funções reais, com cálculo numérico de derivadas e zeros das funções e suas derivadas.
• Métodos de interpolação no ambiente de gráficos 2D (e 3D) • Métodos de interpolação por meio de funções tipo: Spline(2.5;[1 2 3];[1 4 7]) (interpola uma Spline
com valores de x = [1 2 3] e y = [1 4 7] para x=2.5). • Criptografia de textos e documentos utilizando mapas unidimensionais em regime caótico. • Gráficos 3D – implementado, mas recursos podem ser adicionados. • Analisador espectral de massas de dados: série de Fourier, FFT, IFFT (implementado, mas também
pode ser melhorado) • Outros algoritmos numéricos de solução de EDOs (de passo fixo, por exemplo) • Adicionar pacotes estatísticos que permitam fazer testes de hipótese e calcular valores para as
principais distribuições aleatórias. • Fazer o sistema NÃO ESCREVER na tela variáveis muito grandes. • Implementar o algoritmo para Remover na Propagação de Incertezas
Apêndice D – Ordem das Componentes de Freqüência da FFT Considere-se um vetor complexo f(1..n) de n amostras de uma função f(t) com intervalo de amostragem ∆ (com n uma potência de 2). A tabela abaixo mostra os valores da função e seu correspondente valor de tempo:
Índice 1 2 3 ... n-2 n-1 n t(i) 0 ∆ 2∆ (n-i)∆ (n-3)∆ (n-2)∆ (n-1)∆ f(i) f(0) f(∆) f(2∆) f((n-i)∆) f((n-3)∆) f((n-2)∆) f((n-1)∆)
Consideremos agora a transformada discreta de Fourier, F(1..n). As freqüências associadas a cada
termo são (em Hertz):
Índice 1 2 3 4 ... n/2 n/2+1 n/2+2 ... n-2 n-1 n f(i) * 0 1/n∆ 2/n∆ 3/n∆ (n/2-1)/n∆ 1/2∆ -(n/2-1)/n∆ -3/n∆ -2/n∆ -1/n∆ F(i) F(f(1)) F(f(2)) F(f(3)) F(f(4)) F(f(n/2)) F(f(n/2+1)) F(f(n/2+2)) F(f(n-2)) F(f(n-1)) F(f(n))
* - Freqüência associada. O comprimento de amostragem T = (n-1)∆.
23
Guia de Referência McLabEn
Apêndice E – Bugs Consertados v0.41 – Bug que fazia com que, ao abrir um grafo, o outro que estava na tela continuasse sendo exibido embora não estivesse mais na memória.
24
FOLHA DE REGISTRO DO DOCUMENTO
1. CLASSIFICAÇÃO/TIPO
TC
2. DATA
16 de novembro de 2005
3. DOCUMENTO N°
CTA/ITA-IEM/TC-022/2005
4. N° DE PÁGINAS
59 5. TÍTULO E SUBTÍTULO: Identificação Paramétrica de Sistemas Dinâmicos 6. AUTOR(ES):
Douglas Coimbra de Andrade 7. INSTITUIÇÃO(ÕES)/ÓRGÃO(S) INTERNO(S)/DIVISÃO(ÕES): Instituto Tecnológico de Aeronáutica. Divisão de Engenharia Mecânica-Aeronáutica – ITA/IEM 8. PALAVRAS-CHAVE SUGERIDAS PELO AUTOR:
Sistemas Dinâmicos; Identificação de Sistemas; Método de Mínimos Quadrados 9.PALAVRAS-CHAVE RESULTANTES DE INDEXAÇÃO:
Sistemas dinâmicos; Identificação de sistemas; Método dos mínimos quadrados; Desenvolvimento de software; Modelos matemáticos; Inteligência artificial; Engenharia de sistemas
10. APRESENTAÇÃO: X Nacional Internacional
Trabalho de Graduação, ITA, São José dos Campos, 2005. 58 páginas.
11. RESUMO:
A determinação de parâmetros de modelos de sinais é uma questão de relevo e etapa essencial
da análise em vários campos do conhecimento, possibilitando que o engenheiro, o pesquisador ou o profissional em geral concluam investigações e cálculos sobre o objeto de estudo através de simulações computacionais, por exemplo. Este trabalho focaliza a identificação paramétrica por mínimos quadrados, de um ponto de vista não amplamente tratado na vasta literatura técnica disponível sobre o assunto, trazendo contribuição ao tema. Em especial, considera-se o problema de identificação de parâmetros que se apresentam em várias equações de um modelo de múltiplas equações. Nessa perspectiva e contexto, é desenvolvido um software para a identificação de modelos de sinais e sistemas discretos e contínuos no tempo, utilizando um ambiente computacional de cálculo e visualização de engenharia denominado McLabEn®, também desenvolvido pelo autor. O trabalho discute ainda técnicas de discretização e filtragem para a adequação de modelos e dados para a identificação pelo método implementado. Alguns estudos simulados são realizados, focalizando aplicações específicas e relevantes de identificação de modelos, como a da dinâmica lateral de uma aeronave, entre outras, tanto no sentido de validar o software como para atestar a qualidade dos resultados obtidos e revelar as limitações da abordagem. O trabalho é concluído com sugestões para trabalhos que aprofundam as investigações e refinam a abordagem utilizada.
12. GRAU DE SIGILO: (X ) OSTENSIVO ( ) RESERVADO ( ) CONFIDENCIAL ( ) SECRETO