Balão sem dimensão. Análise utilitária de dimensão mágica


Fui solicitado a escrever este pequeno artigo pelo artigo publicado recentemente sobre a Habré Dynamics sobre o vôo vertical de uma aeronave mais leve que o ar . Eu queria escrever um comentário, mas ele rapidamente se transformou em algo mais e, ao que parece, mais útil.

O artigo original fornece um exemplo de cálculo da dinâmica de um balão ou de um balão na atmosfera. Nesse caso, a resistência do ar e os gradientes da densidade e temperatura da atmosfera são levados em consideração, de modo que o problema se reduz a uma equação diferencial não trivial, que pode ser resolvida com sucesso numericamente usando a linguagem Python. Está tudo bem no artigo: a bola decolou, parou quando necessário, obtivemos a altura máxima e o tempo de subida. Levei para lançar outra bola, digamos, carregá-la mais completamente, ou mudar o hidrogênio para hélio - não há problema - altere os parâmetros do programa e calcule tudo novamente. O programa é compreensível, linear, funciona, então o que pode ser melhorado aqui se o modelo não for complicado?

Você pode tornar o modelo e os cálculos universalmente úteis, não para uma bola em particular, mas para uma ampla variedade de tarefas. É possível garantir uma precisão de cálculo ideal na integração numérica da equação diferencial. Você pode eliminar a necessidade de definir manualmente os limites de integração e avançar ao calcular em uma ampla variedade de parâmetros. Finalmente, você pode contar muito sobre a dinâmica do vôo da nossa bola sem uma solução numérica. E por tudo isso, existe um truque antigo, verdadeiro e confiável, uma vez obrigatório para qualquer cálculo em computadores e antes que apareçam, e agora opcional e freqüentemente relacionado à magia e à arte - trazendo as equações para uma forma adimensional e suas próprias escalas . Usarei o problema da aeronáutica como exemplo e mostrarei como a análise do problema se torna mais significativa e elegante ao usar essa técnica. E então explicarei por que isso pode ser importante para os programadores e por que este artigo acabou no hub "Programação Funcional".

A essência de trazer as equações para suas próprias escalas é encontrar e introduzir essas unidades de medida de tempo, distâncias, massas, correntes e outras variáveis ​​dimensionais nas quais a tarefa assume a forma mais simples e elegante. Tais unidades são chamadas de escalas características ou adequadas do problema. Ao mesmo tempo, o número de parâmetros que afetam sua solução é reduzido significativamente e, se você tiver sorte em encontrar uma solução auto-semelhante, os parâmetros poderão desaparecer completamente!

Geralmente, alguém se familiariza com essa técnica quando estuda a dinâmica de um oscilador harmônico, trazendo a equação do movimento para uma forma canônica. De fato, qualquer que seja o oscilador (grande ou pequeno, frequência alta ou baixa, mecânico ou eletromagnético), se você medir o tempo não em segundos, mas em períodos de oscilações livres e a amplitude não em metros, mas, digamos, na magnitude do desvio inicial , a equação de qualquer oscilador linear terá a mesma forma:

x+2 zetax+x=0

Basta estudar as propriedades das soluções desta equação para saber tudo sobre todos os osciladores harmônicos de atrito viscoso. Sem atrito, os parâmetros desaparecem completamente no problema e obtemos, como solução, um sinusóide exemplar. No entanto, outros sinusóides, até uma simples mudança linear de coordenadas, são absolutamente idênticos; portanto, não faz sentido analisá-los individualmente.

Este também é o caso ao analisar curvas de segunda ordem. Tendo examinado a parábola, hipérbole ou elipse em sua forma canônica (mais compacta), aprendemos todas as suas propriedades notáveis. Depois disso, esse conhecimento se estende a qualquer quadriculado não trivial. Além disso, a mesma técnica é usada na análise de equações da matemática de segunda ordem (em derivadas parciais).

Trazer o problema para uma forma adimensional em suas próprias escalas na física corresponde à busca da forma canônica ou de algum padrão na programação. E, felizmente, isso pode ser expresso com um algoritmo completamente formal:
  1. Introduzimos fatores formais de escala para variáveis;
  2. dividimos toda a equação por qualquer quantidade que tenha a dimensão de seus termos;
  3. a partir dos complexos adimensionais resultantes, incluindo fatores de escala, escolhemos tantos fatores quanto temos e os igualamos à unidade;
  4. resolvemos as equações resultantes expressando fatores de escala em termos dos parâmetros do problema e usamos os complexos restantes como critério de similaridade.

Como resultado, obtemos equações na forma canônica, os autovalores do problema e também critérios de similaridade para generalizar soluções para sistemas fisicamente semelhantes. Quanto mais escalas você pode inserir (usando, por exemplo, simetria), mais concisa será a equação do movimento e menos parâmetros de controle permanecerão no problema. O verdadeiro tesouro para o pesquisador é a situação em que é possível excluir todos os parâmetros do problema e apresentar todas as suas soluções possíveis em uma curva. Tais soluções são chamadas de auto-semelhantes e simplificam bastante a vida, transformando equações diferenciais parciais em equações diferenciais ordinárias ou mesmo algébricas. As segunda e terceira etapas do algoritmo acima requerem seleção e raciocínio, são as menos formais, mas mesmo se você usar o método da força bruta, nesse estágio, poderá obter uma compreensão sistemática muito profunda do problema.

Vamos voltar à equação original do movimento apresentada no artigo sobre aeronaves e mostrar por seu exemplo como ele pode ser transformado em uma forma adimensional em suas próprias escalas. A equação tem a forma:

m fracd2hdt2=mg+gW rho0ebh frac12cS rho0ebh nomedooperadorsinal esquerda( fracdhdt direita) esquerda( fracdhdt direita)2,

com condições iniciais

h(0)=h(0)=0.

Aqui h - a altura da bola, m - massa de toda a aeronave com carga, g - aceleração da gravidade, W - o volume de gás na bola, c - coeficiente de arrasto, S - área característica de resistência, ρ0 - densidade do ar à altura zero, b - coeficiente na distribuição de Boltzmann.

Primeiro passo Introduzimos as escalas formais para tempo e distâncias:

h=h0y, quadt=t0 tau qquad(1)

e reescreva a equação do movimento usando traços para denotar as derivadas:

m frach0t20y=mg+gW rho0ebh0y left[1 fraccS2Wg frach20t20 nomedooperadorsinal(y)(y)2 direita].

As condições iniciais em nosso caso são triviais, portanto podem ser omitidas, mas, em geral, também devemos reescrevê-las.

O segundo passo, de fato, é a incomensurabilidade da equação. Todos os termos nele têm a dimensão da força e somos livres para dividi-los em qualquer força. Geralmente dividido pela força da inércia - por um fator na segunda derivada da distância. Nesse caso, como parâmetros do problema, geralmente são obtidos critérios bem conhecidos de similaridade dinâmica, como os números de Reynolds ou Euler. Mas em nossa tarefa, atribuímos todas as forças incluídas na tarefa à gravidade mg e é por isso. Estamos interessados ​​principalmente na posição do equilíbrio estático - a altura máxima da bola em uma determinada capacidade de carga e o tempo de transição para ela. E o equilíbrio estático não depende das propriedades inerciais do sistema, mas depende diretamente da gravidade. Então, dividimos e reduzimos o que é possível:

 frach0gt20y=1+ fracW rho0mebh0y esquerda[1 fraccS2Wg frach20t20 nomedooperadorsinal(y)(y)2 direita].

Tudo, a equação é adimensional, agora todas as variáveis ​​e todos os termos nela são apenas números. E agora somos livres para escolher tais escalas de duração e tempo, a fim de minimizar o número de parâmetros da tarefa. Temos duas incógnitas h0 e t0 e quatro complexos adimensionais:

 frach0gt20, quad fracW rho0m, quadbh0, quad fraccS2Wg frach20t20

isso significa que podemos fazer dois deles desaparecerem simplesmente equiparando-os à unidade. Além disso, o segundo complexo não depende de fatores de larga escala, e precisamos escolher os dois restantes para destruição. E, novamente, voltamos à discussão sobre o equilíbrio estático que nos interessa. A posição de equilíbrio é determinada pela equalização da aceleração zero, ou seja, não importa para nós qual fator estará na segunda derivada da altura e podemos fazer minimização do número de parâmetros no lado direito da equação. Assim, chegamos à seguinte solução: escolhemos os fatores de escala para que o terceiro e o quarto dos complexos listados por nós desapareçam da equação. Para isso, assumimos

bh0=1, quad fraccS2Wg frach20t20=1

e obtenha nossa própria escala do problema:

h0= frac1b, quadt0= frac1b sqrt fraccS2Wg. qquad(2)

Os parâmetros restantes são indicados da seguinte maneira:

 frach0gt20= frac1 gamma, quad fracW rho0m=B.

Este é provavelmente o estágio mais mágico de nossas transformações, o mais próximo da arte. Mas a experiência e algum raciocínio ajudam a escolher a escala certa. E então essa mesma experiência nos permite ver fenômenos semelhantes em diferentes campos da ciência e adivinhar as propriedades características de sistemas complexos.

Permitirei-me adiar a análise do significado físico das escalas e parâmetros que obtivemos, embora isso também seja muito agradável e interessante, mas voltarei imediatamente à mais deliciosa - à equação adimensional em suas próprias escalas:

 frac1 gamay=Bey esquerda(1 nomedooperadorsinal(y)(y)2 direita)1, quady(0)=y(0)=0. qquad(3)

Aqui! Estou pronto para resolver essa equação, analisar e integrar numericamente. E quando eu decido, posso mover-me facilmente de minhas próprias escalas para metros e segundos, codificados nas proporções (1) e (2).

Então, vamos começar. Vamos descobrir, para começar, onde nosso balão generalizado irá parar. Para fazer isso, igualamos a zero velocidade e aceleração na equação (3):

0=Bey1,

de onde chegamos

y= lnB.

Conclua imediatamente: para que a altura máxima exista, a condição B>1 . Em seguida, estimamos quanto tempo a bola atingirá essa altura. Para fazer isso, equiparamos a aceleração a zero e resolvemos o problema de Cauchy de primeira ordem:

0=Sejaey esquerda(1(y)2 direita)1, quady(0)=y.

É resolvido analiticamente pelo método de separação de variáveis ​​e reduzido à integral:

 tau= inty0 fracBdy sqrtBey=2 nomedooperadorarth left( sqrt1 frac1B direita).

Olha, aqui estão elas - os frutos das escamas escolhidas corretamente! Tanto a altura máxima quanto o tempo característico de sua realização são expressos apenas através do parâmetro B . Isso significa que podemos fixar algum valor B>1 , construa uma série de gráficos para resolver a equação (3) para diferentes valores  gama e, assim, descreva imediatamente todas as opções para resolver o problema para quaisquer valores B !

Esta é uma família universal de um parâmetro de soluções obtida pela integração numericamente do problema (3) para vários valores  gama :


Depois de atingir a altura de equilíbrio, o balão faz oscilações amortecidas por algum tempo; no entanto, o tempo característico para atingir essa altura é estimado corretamente. Do critério  gama somente o período de oscilações e o tempo de sua deterioração dependem. Quanto maior esse parâmetro, mais "rígido" é o nosso sistema.

Resta traduzir essa família de gráficos em uma visão dimensional, simplesmente multiplicando os valores ao longo dos eixos pelos fatores de escala correspondentes. E agora o experimento numérico terminou e seus resultados ganharam significado universal. Você pode substituir parâmetros dimensionais reais da tarefa e obter instantaneamente números nos eixos, já em metros e segundos! Esse resultado já pode ser publicado em um manual sério para balonistas severos ou em um artigo científico que descreve todo o fenômeno em um gráfico.

Agora vamos ver o que obtivemos na forma de parâmetros e variáveis. Substitua a massa da bola m massa total de gás W rhog massas de carga útil M :

m=W rhog+M=W rhog(1+ alpha),

onde  alpha= fracMW rhog - a capacidade de carga relativa da aeronave. Além disso, pegamos a bola esférica e expressamos sua área e volume através do raio R . Nesta representação, obtemos os parâmetros do problema:

B= frac rho0 rhog(1+ alpha), gama= frac3cB8Rb.

O primeiro é o coeficiente de flutuabilidade, que depende do gás utilizado e da carga sendo levantada, um parâmetro muito importante, que inclui todas as quantidades de massa. O segundo mostra como o tamanho e a forma da bola estão relacionados ao gradiente de densidade na atmosfera, ou seja, como as heterogeneidades atmosféricas são grandes em relação ao tamanho da bola.

A escala é expressa da seguinte forma:

h0=1/b tau0= frac12b sqrt frac3cB2gR= sqrt frac gammagb

A escala de distância é determinada apenas pelo gradiente de densidade. O que é absolutamente verdade, porque justamente por causa desse gradiente o aumento da bola, em geral, para em algum lugar. O tempo característico incluía quantidades dinâmicas - aceleração gravitacional, proporções de massa e resistência do ar.

A altura e o tempo característicos da aproximação da bola

h=yh0= frac1b lnB,t= taut0=2 sqrt frac gammagb nomedooperadorarth left( sqrt1 frac1B right)

também expresso em termos dos principais parâmetros e escopo da tarefa.

Por exemplo, vamos ver o que acontece com os parâmetros físicos fornecidos no artigo original:

B=4.57 gama=686h0=8000 m tau0=12.47 minh=12166.6 mt=13.72 min



Para resumir. Depois de trabalhar um pouco no papel antes de alimentar a tarefa com a máquina, conseguimos um resultado universal mais inteligível e notamos as propriedades mais importantes da solução. Ao mesmo tempo, não perdemos a “modularidade” da solução. Aqui está o que eu quero dizer. Formulamos o problema nos termos mais gerais e, depois de obter uma solução, começamos a adicionar novos “recursos”, por exemplo, compartilhamos o conceito de carga útil e a massa de gás que o eleva. Essa complicação afetou os valores da escala, mas não mudou a natureza da solução.

Se posteriormente for necessário adicionar o gradiente de temperatura, a expressão no expoente se tornará mais complicada, mas sua essência e, mais importante, a escala não serão alteradas:

 exp left( fracbhT0T0ah direita)

após o dimensionamento, ficará assim:

 exp left( fracy1 psiy right),

onde está o novo parâmetro  psi= fracabT0 mostra como estão correlacionados os gradientes de densidade e temperatura. Como esses são parâmetros atmosféricos independentes de nós,  psi É uma constante igual a US $ 0,17 US $ . O valor da constante, a propósito, mostra a significância do efeito do gradiente de temperatura, não é grande, mas não é desprezível. A família de gráficos mudará um pouco, mas, mais importante, permanecerá com um parâmetro.

O uso das próprias escalas do problema para cálculos tem outra vantagem significativa: nesse caso, as variáveis ​​geralmente assumem valores "moderados", ou seja, próximos da unidade. Isso é muito útil para cálculos de ponto flutuante: a precisão não é perdida em operações com valores que variam muito em ordem de magnitude. Além disso, torna-se possível comparar corretamente os papéis dos efeitos individuais em uma tarefa, comparando os valores de seus critérios de similaridade ou os valores de variáveis. Por exemplo, o valor B=4,5 indica quantas vezes as forças de interação com a atmosfera são maiores que a gravidade. E o quadrado da velocidade de aumento sem dimensão característica (y/ tau)2 sim0,3 mostra o grau de significância da resistência do ar no movimento vertical da aeronave em comparação com a flutuabilidade, que é expressa por uma unidade entre parênteses.

Finalmente, os cálculos em variáveis ​​e parâmetros adimensionais têm uma certa consistência interna com o fato de que as soluções de equações diferenciais são quase sempre funções transcendentais, e apenas quantidades adimensionais podem ser seus argumentos e resultados. O computador também opera exclusivamente com números - quantidades sem dimensões. A digitação estática, em princípio, permite inserir as dimensões das grandezas físicas no nível do tipo e verificar a correção dos programas durante a compilação, mas no estágio numérico ainda trabalhamos apenas com as grandezas em si. Quaisquer erros associados a unidades e dimensões são perdidos nesses cálculos. É razoável preparar a tarefa para cálculos, excluindo o supérfluo, e deixando apenas o mais essencial e natural para o solucionador.

E o que aconteceria se escolhêssemos outros complexos, ou atribuíssemos todas as forças não à gravidade, mas, digamos, à inércia? Dois parâmetros permaneceriam na equação, mas a família de curvas se tornaria dois parâmetros e não poderia ser mostrada em um diagrama. Eu admito, no começo, isso aconteceu comigo, como a escala de comprimento que recebi o raio da bola. Mas, depois de brincar com essas curvas, vi sua semelhança geométrica (você vê uma em todas as parábolas), e uma análise superficial dos critérios e equações obtidos me levou a uma simetria oculta e sugeri qual deveria ser a "forma canônica" de nossas equações. Esta, no entanto, é uma ocupação bonita! A tarefa em si começa a contar sobre si mesma. Sinto tanto prazer em construir um sistema de tipos e estruturas de dados em um programa em Haskell ou C #: quando a arquitetura do programa corresponde à estrutura interna da tarefa, tudo se torna surpreendentemente natural, elegante, casos especiais são trabalhados automaticamente e o número de camadas de abstração diminui.

As dimensões das quantidades físicas em si são muito interessantes. Eles formam um espaço linear, e a busca por critérios de similaridade pode ser reduzida ao problema de encontrar um núcleo em um espaço dimensional, formalizando esse processo. Eles, até certo ponto, desempenham o papel de tipos na computação física. Como o compilador usa digitação estática para verificar a exatidão do programa, o físico usa dimensões para verificar seus cálculos e resultados.Como em uma linguagem funcional pura estritamente tipificada (por exemplo, em Haskell), um código de função pode ser derivado de seu tipo, da mesma forma, com base na dimensão das quantidades físicas, é possível construir complexos sem dimensão, quantidades características em sistemas físicos e obter resultados extremamente úteis e universais. Existem muitos exemplos disso em mecânica, gás e termodinâmica, mecânica quântica, etc. Eu recomendo que você se familiarize com um trabalho maravilhoso , que fornece vários exemplos bonitos de aplicação da análise dimensional a problemas do teorema de Pitágoras às oscilações de estrelas e Rayleigh espalhando-se no céu. Este trabalho cita as palavras de John Wheeler, o professor Richard Feynman, que recebeu o nome "Regras do Wheeler":
« , . : (! ! !) , ; . : , . , . . ».

Esse conselho para os programadores parece muito familiar: não comece a escrever um código de função sem ter decidido sua assinatura (tipo) e seu comportamento (testes); Antes de escrever código, você deve considerar tipos, estruturas de dados e seus relacionamentos. É exatamente para isso que o OOP e a programação funcional são poderosos - esses princípios não funcionam apenas lá, eles, quando usados ​​com habilidade, sugerem as soluções mais naturais e elegantes e, no caso do FP, fazem isso em um nível matemático profundo, possibilitando provar as propriedades dos programas e confiar a parte. trabalhe na saída das propriedades do programa para o compilador.

Aprenda matemática, programe-se lindamente e divirta-se!

Source: https://habr.com/ru/post/pt416151/


All Articles