Categorias
Artigos

Aplicando Aprendizado de Máquina para calcular a pressão de saturação do propano

Eu venho explorando o tópico de aprendizado de máquina aqui, e hoje gostaria de relatar um experimento, para ilustrar o que pode ser feito.

O propano é um hidrocarboneto que é usado, entre várias aplicações, como fluido refrigerante (“gás de geladeira”). Nos cálculos desse tipo de sistema, uma tarefa básica é, sabendo a temperatura, calcular a pressão que o fluido está quando saturado (isto é, quando o líquido está em equilíbrio com o vapor, que é o que acontece na maior parte da tubulação de uma geladeira).

Pois bem, eu peguei dados de temperatura e pressão de [1]:

Imagine que queremos achar a pressão para vários pontos de temperatura. Ler essas informações nesse gráfico é chato e nada preciso, assim como seria procurar em uma tabela como a que eu usei para construir esse gráfico (principalmente para números que não aparecem diretamente, como uma temperatura de 0,2 ˚C). Outra alternativa é usar programas que resolvem equações de estado, mas isto costuma demorar bastante.

Com Aprendizado de Máquina, tentamos montar expressões matematicamente simples que simbolizam a relação entre as variáveis de interesse.

Em engenharia, sempre que possível, é bom tentar achar uma relação linear entre as grandezas que estamos estudando. Isso não parece ser verdade, nesse caso; mas podemos fazer duas transformações:

  1. Vamos tomar o inverso da temperatura, e expresso em K
  2. Vamos tomar o logaritmo da pressão normalizada em relação a uma pressão de referência de 1 bar

Ótimo! Parece que existe uma relação linear!

Agora vamos fazer um seguinte: vamos pegar uma parte desses pontos, e usar para treinar um modelo linear:

Os pontos em vermelho são as observações individuais retiradas da tabela; a linha em azul é uma reta que melhor representa todos os pontos

Os nossos dados parecem se ajustar bem à equação

ln (P[bar]) = -2345,6436/T[K] + 10,1146

Como falei, essa equação foi construída com um conjunto de dados (o conjunto de treinamento). Será que essa equação consegue prever os dados que não foram usados para gerar o modelo (o conjunto de teste)?

E assim, temos um modelo algébrico, definido em termos de funções simples, que consegue prever a nossa relação pressão e temperatura. Calcular a pressão com a equação acima é muito mais rápido que ler em tabelas ou usar equações de estado.

A imagem deste post não é apenas uma brincadeirinha; com aprendizado de máquina, eu consigo aprender muito sobre termodinâmica, propriedades, diferenças entre fluidos.

Deixem nos comentários se quiserem um post de follow-up, mostrando mais do código e da teoria por trás disso!

[1] Moran, Michael J; Shapiro, Howard N. Fundamentals of Engineering Thermodynamics (5 ed.). Chichester: Wiley, 2006.

Categorias
Artigos

O que é aprendizado de máquina (de acordo com um Engenheiro Mecânico)

Eu acabei de ganhar um prêmio por um trabalho que apresentei sobre Aprendizado de Máquina (Machine Learning), então eu deveria ser um especialista no assunto. Eu não sou, mas vou introduzir aqui o que penso sobre o assunto, como tenho aprendido, e como tenho usado na minha vida de Professor de Engenharia Mecânica.

Vamos ser francos: Aprendizado de Máquina é um termo científico que foi sequestrado por estratégias de marketing (o que em si não é ruim, pois – surpresa – cientistas gostam de ganhar dinheiro) e perdeu muito do seu signficado (o que é ruim). Como assim, máquinas aprendem? Isso significa que os robôs vão dominar o mundo? Todas as profissões estão fadadas à extinção?


Como aprendemos? Basicamente, treinamos um conceito, um método ou abordagem e testamos nossa abordagem com algum valor dito verdadeiro – na vida acadêmica, o gabarito da lista de exercícios; na vida real, comparamos com documentos históricos ou dados experimentais. Se erramos, precisamos corrigir nosso método e repetir.

Vamos pegar um exemplo que está na minha cabeça por causa das minhas aulas: desempenho de combustíveis. Um litro de gasolina libera mais energia, chamada de poder calorífico, que um um litro de etanol – não à toa, ela é mais cara. Mas o que exatamente provoca essa diferença? É porque a gasolina tem uma cor e o etanol outro? A gasolina vem do petróleo e o etanol da cana-de-açúcar?

Observando a estrutura química, eu proponho um modelo, uma tentativa de representação da realidade: o etanol tem mais oxigênio dissolvido que a gasolina (e isso pode ser verificado experimentalmente), então eu digo que o poder calorífico diminui com a presença de oxigênio no combustível.

Como posso testar isso? Uma abordagem simples seria pegar uma série de combustíveis, e separar em dois grupos: os que tem oxigênio e os que não tem. Vou fazer experimentos e medir o poder calorífico. Para cada par de combustível, um oxigenado e o outro não, o combustível com oxigênio tem de ser mais fraco que o outro. Se isso for verdade, eu aprendi um fato sobre combustíveis. Se não, tenho de propor outro modelo.

Um computador não pode olhar uma série de dados sobre combustíveis e adivinhar que os combustíveis oxigenados são mais fracos que os não-oxigenados, mas ele pode sistematicamente investigar essa hipótese; um computador pode facilmente ler um banco de dados de composição de combustíveis e fazer os cálculos. Ele pode ser programado também para testar uma enormidade de número de modelos, comparando todas as propriedades conhecidas dos combustíveis até descobrir qual a mais relevante para o poder calorífico. Importantemente, você pode alimentar o modelo com mais e mais dados de combustíveis, e não precisa re-programar o computador; ele refaz os cálculos automaticamente.

A ideia original, porém, foi minha. Em último grau, aprendizado de máquina é o meu aprendizado.


Eu comecei a estudar esse assunto quando um colega o introduziu no nosso grupo de pesquisa, baseado nos cursos que ele estava fazendo na época. Uma ideia que começou como uma “brincadeira” virou um trabalho premiado (que em breve vai virar um artigo publicado em um periódico importante). Assim é a ciência.

Como isso me afeta? Eu não sou Cientista da Computação, nem mesmo Cientista de Dados; sou Professor de Engenharia Mecânica. Para o semestre 2021-2 que se aproxima, meu objetivo principal é aplicar os conceitos de Aprendizado de Máquina em problemas reais, importantes de Engenharia Mecânica.

Engenheiros Mecânicos (e mesmo de outras áreas; eu estou falando dessa por ser a de mais afinidade para mim) lidam com dados o tempo todo. Em particular, nós precisamos lidar com catálogos de equipamentos o tempo todo; o que nós podemos aprender com esses dados? Se eu tenho dois catálogos de compressores na minha frente, como posso extrair dos dois o conhecimento de qual vai resultar num sistema mais eficiente?

Outra fonte importante de dados: tabelas de propriedades termofísicas. Eu realmente preciso parar de resolver exercícios interpolando valores nessa tabela à mão, e pensar mais sobre modelos. Como exatamente a condutividade térmica da água varia com a temperatura? Ela cresce ou diminui? Linearmente ou não?

Vou tentar documentar aqui os meus desenvolvimentos nessa área. As leitoras e leitores trabalham com Aprendizado de Máquina, e/ou querem aprender mais sobre o assunto?