Академический Документы
Профессиональный Документы
Культура Документы
Trabalho de Graduação
Ano 2005
Mecânica
CTA/ITA-IEM/TC-022/2005
Orientador
Prof. Dr. Alberto Adade Filho (ITA)
2005
Dados Internacionais de Catalogação-na-Publicação (CIP)
Dados Internacionais de Catalogação-na-Publicação (CIP)
Divisão Biblioteca Central do IT A/CT A
Andrade. Douglas Coimbra de
Identificação Paramétrica de Sistemas Dinâmicos / Douglas Coimbra de Andrade.
São José dos Campos, 2005.
059f.
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
É concedida ao Instituto Tecnológico de Aeronáutica permissão para reproduzir cópias deste trabalho
de 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 pode
ser reproduzidasema autorizaçãodo autor. .
Dougl~~Coimbra de Andrade
Rua O~carReinaldo, 661. B. Progresso
CEP 36.400-000
Cons. Lafaiete - MG
IDENTIFICAÇÃO P ARAMÉTRICA DE SISTEMAS DINÂMICOS
.':)..
Agradeço a todos que, direta ou indiretamente, contribuíram com minha formação pessoal e
profissional.
RESUMO
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
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
d 2 x(t ) g
2
= − x(t )
dt L
Eq. 2.1-1
Grosso modo, quanto mais desconhecido ou imprevisível for o sistema, mais seu
modelo tenderá a ser caixa-preta.
3. Identificação de Sistemas
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].
Y = Xβ + ε
Eq. 4.1-1
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;
⎧ z k = ax k + by k + ε 1
⎨
⎩wk = bxk + cy k + ε 2
Eq. 4.1-3
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.
Yi = X i β + ε i , 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;
Q
ESS = ∑ ε i ' ε i
i =1
Eq. 4.1-5
−1
⎡Q ⎤ ⎡Q ⎤
β̂ = ⎢∑ X i' X i ⎥ ⎢∑ X i'Yi ⎥
⎣ i =1 ⎦ ⎣ i =1 ⎦
Eq. 4.1-6
y1 = θ 11 x1 + θ 21 x 2 + K + θ n1 x1
M
y p = θ1 p x1 + θ 2 p x 2 + K + θ np x p
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
Y = XΘ
Eq. 4.1-8
8
Em que
r r
⎡ y (1) ⎤ ⎡ x (1) ⎤
⎢ yr (2) ⎥ ⎢ xr (2) ⎥
Y =⎢ ⎥X = ⎢ ⎥
⎢ M ⎥ ⎢ M ⎥
⎢r ⎥ ⎢r ⎥
⎣ y ( m) ⎦ ⎣ x ( m) ⎦
Eq. 4.1-9
ˆ = ( X ' X ) −1 X ' Y
Θ
Eq. 4.1-10
β = [θ 11 K θ 1 p K θ n1 K θ np ]
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.
d 2x dx
2
= b + abx
dt dt
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
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
x=[t*t t 1 0 0]
y=[t*t 0 0 t 1]
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
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
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).
y k = b0 u k + b1u k −1 + b2 u k − 2 − a1 y k −1 − a 2 y k − 2
d 2x dx
u (t ) = m 2
(t ) + b (t ) + cx(t )
dt dt
Eq. 5.1-3
m b
uk = 2
( x k − 2 x k −1 + x k − 2 ) + ( x k − x k −1 ) + cx k
T T
Eq. 5.1-4
T
y k = y k −1 + ( x k + x k −1 ) , k = 2, 3, ..., n
2
Eq. 5.1-5
Y 2 ⎛ z −1⎞
( z) = ⎜ ⎟
X T ⎝ z + 1⎠
Eq. 5.1-6
⎧ 1, a ≤ ω ≤ b
G ( jω ) = ⎨
⎩0, (ω < a )ou (ω > b )
Eq. 5.2-1
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.
⎧ F (ω ), | ω |≤ ω corte
G (ω ) = ⎨
⎩ 0, | ω |> ω corte
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)
//copia Fx
Fxfilt=Fx
xfilt=iFFT(Fxfilt)
//plota
nx=numcolunas(x)
for k=1 to nx
resp(k)=Re(xfilt(1;k))
endfor
t=linspace(1;nx;nx)
return resp
end function
Figura 5-3 - Ajuste polinomial por mínimos quadrados para a posição real do sistema
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.
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
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
O(k ) = fA(k − 1)
L(k ) = sO O(k − 1)
A(k ) = s L L(k − 1) + s A A(k − 1)
Eq. 6.1-1
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:
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)
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
ruido=0.1*(random(1;2002)-0.5*uns(1;2002));
x=x+ruido;
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);
d 2 x1 dx
2
= (u - k 1 x 1 - c 1 - k 2 (x 1 - x 2 ))/m
dt dt
2
d x2
= (-k 2 (x 2 - x 1 ))/m
dt 2
Eq. 6.3-1
Utilizando o comando exportar dados, é possível manipular as variáveis x1, x2, x1’
e x2’ (1x231) no ambiente de trabalho.
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);
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
⎡ dx1 ⎤
⎢ dt ⎥
⎢ dx ⎥ ⎡− 0.0558 − 0.9968 0.0802 0.0415⎤ ⎡ x1 ⎤ ⎡ 0.00729 0 ⎤
⎢ 2 ⎥ ⎢ 0.5980 − 0.1150 − 0.0318 ⎢ ⎥
0 ⎥ ⎢ x 2 ⎥ ⎢− 0.4750 0.00775⎥⎥ ⎡ u1 ⎤
⎥ ⎢
⎢ dt ⎥ = ⎢ +
⎢ dx3 ⎥ ⎢ − 3.05 0.3880 − 0.4650 0 ⎥ ⎢ x3 ⎥ ⎢ 0.1530 0.1430 ⎥ ⎢⎣u 2 ⎥⎦
⎢ dt ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ dx ⎥ ⎣ 0 0.0805 1 0 ⎦ ⎣ x4 ⎦ ⎣ 0 0 ⎦
⎢ 4⎥
⎣ dt ⎦
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.
Esse resultado possui boa concordância com os valores utilizados para a simulação
(Eq. 6.4-1).
7. Contribuições Futuras
8. Conclusão
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
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,
( )( )
Q Q Q
ESS = ∑ ε i'ε i = ∑ Yi ' − βˆ ' X i' Yi − X i βˆ = ∑ Yi 'Yi − Yi ' X i βˆ − βˆ ' X i'Yi + βˆ ' X i' X i βˆ
i =1 i =1 i =1
Os pontos extremos de ESS podem ser encontrados derivando-se ESS com respeito ao
estimador e igualando a derivada a zero:
−1
dESS Q
⎡Q ⎤ ⎡Q ⎤
= ∑ − 2 X i'Yi + 2 X i' X i βˆ ⇒ βˆ = ⎢∑ X i' X i ⎥ ⎢∑ X i'Yi ⎥
dβˆ i =1 ⎣ i =1 ⎦ ⎣ i =1 ⎦
d 2 ESS Q
dβˆ 2
= ∑
i =1
2 X i' X i
Reescrevendo o estimador:
−1 −1
⎡Q ⎤ ⎡Q ⎤ ⎡Q ⎤ ⎡Q ⎤
βˆ = ⎢∑ X i' X i ⎥ ⎢∑ X i'Yi ⎥ = ⎢∑ X i' X i ⎥ ⎢∑ X i' X i β + X i'ε i ⎥
⎣ i =1 ⎦ ⎣ i =1 ⎦ ⎣ i =1 ⎦ ⎣ i =1 ⎦
−1
⎡Q ⎤ ⎡Q ⎤ ⎡Q ⎤ ⎡Q ⎤
βˆ = ⎢∑ X i' X i ⎥ ⎢∑ X i' X i ⎥ β + ⎢∑ X i' ε i ⎥ = β + ⎢∑ X i' ε i ⎥
⎣ i =1 ⎦ ⎣ i =1 ⎦ ⎣ i =1 ⎦ ⎣ i =1 ⎦
Calcula-se agora seu valor esperado: (lembrando que E(εi) = 0 e o erro é não-
correlacionado com X)
⎛⎡ Q ⎤⎞ Q
E ( βˆ ) = β + E ⎜⎜ ⎢∑ X i' ε i ⎥ ⎟⎟ = β + ∑ X i' E (ε i ) =β
⎝ ⎣ i =1 ⎦⎠ i =1
C.q.m.
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...”.
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.
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)
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
//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
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)
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)
t=linspace(0;10;201)
xAv=polyval(t;d2p)
vAv=polyval(t;d2p)
aAv=polyval(t;d2p)
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
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
t=linspace(0;9;201)
xAv=polyval(t;d2p)
51
vAv=polyval(t;d2p)
aAv=polyval(t;d2p)
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
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.
'dimensões de matrizes
Public N As Integer
Private Q As Integer, k As Integer
#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
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 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
'identifica os números
texto(1) = Trim(texto(1))
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
RQuadCorrig = 0
YtY = 0
YtYminusc = 0
If N < k Then
Throw New Exception(constPOUCASEQS)
End If
'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
'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
'*************
'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
For j = 0 To N
For p = 0 To k
Yestim(j) += X(j, p) * beta(p + 1)
Next
Next
'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
End Class
MCLABEN
Guia de Referência
v1.33 (Beta)
1. Índice
1. ÍNDICE.................................................................................................................. 2
2. INTRODUÇÃO .................................................................................................... 4
4. ÁLGEBRA LINEAR............................................................................................ 6
5. PROGRAMAÇÃO MCLABEN.......................................................................... 8
6. GRÁFICOS ........................................................................................................... 8
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
9. CRIPTOGRAFIA CAÓTICA........................................................................... 22
10. BIBLIOGRAFIA............................................................................................. 22
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.
Para executar um comando basta digitá-lo na caixa Comando e pressionar Enter (ou clicar
Executar).
<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).
4
Guia de Referência McLabEn
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).
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]
4. Álgebra Linear
6
Guia de Referência McLabEn
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”.
Se a matriz não for inversível, a resposta é uma matriz identicamente nula de mesma dimensão do
argumento.
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.
6. Gráficos
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.
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.
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 Clique no menu Gráfico –> Escala Automática ou clique com o botão
conjuntos de pontos que estão direito do mouse na área de desenho
sendo exibidos
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 Clique no menu Tipo de Ponto. Escolha um tipo de gráfico dentre as
de dados 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 Clique no menu Exportar/Importar Dados -> Exportar variável.
ambiente de comando McLabEn 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 Clique no menu Tipo de Ponto -> Não exibir pontos
gráfico
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
• 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.
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.
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:
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.
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.
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:
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.
15
Guia de Referência McLabEn
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:
Incerteza global:
16
Guia de Referência McLabEn
∂ ⎞
n
δf= ∑ δx ⎛⎜ f⎟
i ⎜ ∂x i ⎟
i=1 ⎝ ⎠
Incerteza estatística:
2
∂
n
δf= ∑ ⎛⎜⎜ δxi ⎛⎜⎜ ∂x f ⎞⎟⎟ ⎟⎟⎞
i=1 ⎝ ⎝ i ⎠⎠
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.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).
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.
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.
18
Guia de Referência McLabEn
• 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).
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.
19
Guia de Referência McLabEn
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”.
20
Guia de Referência McLabEn
O recurso de grafos de fluxos de sinais implementa alguns recursos para grafos orientados, como:
21
Guia de Referência McLabEn
Análise Comando
Determinante do sistema dinâmico (ref Clique no menu Análise -> Determinante do Sistema
[3])
Encontrar função de transferência entre Clique no menu Análise -> Calcular Função de Transferência.
uma entrada e uma saída (ref [3]) 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 Clique no menu Análise -> Malhas Fechadas
sistema e verificar quais não se tocam 2
a 2, 3 a 3, etc.
Encontrar todos os caminhos ligando um Clique no menu Análise -> Caminhos entre Nós. Selecione o
nó de origem a um nó de destino 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®).
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
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
23
Guia de Referência McLabEn
24
FOLHA DE REGISTRO DO DOCUMENTO
1. 2. 3. 4.
CLASSIFICAÇÃO/TIPO DATA DOCUMENTO N° N° DE PÁGINAS
12.
GRAU DE SIGILO: