sábado, 20 de outubro de 2012

Luz no fim do túnel


Luz no Fim do Túnel

Em reportagem publicada na Folha de São Paulo em 28/09/2012, intitulada "Prejuízo bilionário das aéreas faz governo acender a luz amarela", o governo federal se mostra preocupado com o serviço prestado pelas empresas aéreas brasileiras à população e com os preços das tarifas.

É preciso entender que medidas para desonerar o setor são necessárias: não é possível a sobrevivência das empresas aéreas, prestando o serviço com a qualidade desejada pelo governo, num ambiente tão economicamente hostil.

Pode-se citar alguns exemplos de como a sobrevivência das empresas é difícil: iniciando pelo preço do combustível, responsável por cerca de 35% do custo das empresas que, no Brasil, custa bem mais do que em outros países. Faz-se ainda necessário lembrar que mesmo voos internacionais, partindo do Brasil, pagam menos pelo combustível do que os voos nacionais, já que no preço praticado para voos internacionais não incidem alguns impostos. Não seria hora de, ao menos, praticar a mesma política para voos domésticos?

            Um outro ponto que merece ser lembrado são os custos com treinamento de tripulantes. Não se discute que o treinamento é necessário e peça chave para manter os níveis de segurança operacional das operações aéreas. O problema são os custos que se alocam ao redor dos treinamentos. Todo piloto de uma empresa aérea deve, anualmente, passar por um exame de proficiência, realizado num simulador de voo, para que seja verificado que sua capacidade técnica permanence dentro dos níveis técnicos exigidos. Para que, após o exame, a licença do piloto seja renovada por um ano, a ANAC cobra uma taxa. Essa taxa é de cerca de R$ 1.000,00 quando o exame é realizado no Brasil, mas chega a custar cinco vezes mais quando o exame é realizado no exterior. Tal diferença poderia ser justificada pelos custos relacionados ao envio de um Inspetor da ANAC para realizar o exame, mas inspetores são enviados poucas vezes: a maioria dos exames são realizados pelos chamados “Examinadores Credenciados”, ou seja, funcionários das empresas autorizados pela ANAC a realizar exames. Quando um examinador é enviado ao exterior, as empresas custeiam a viagem, mas continuam obrigadas a pagar a taxa para a ANAC. É o equivalente a pagar duas vezes a mesma conta.

            As tarifas aeroportuárias cobradas das empresas a cada pouso ou decolagem, pela INFRAERO, tiveram aumentos significativos nos últimos anos. Isso representa outro duro golpe no bolso das empresas, já que é impraticável repassar estes custos para os consumidores e elas não podem prescindir do uso dos aeroportos operados pelo governo federal.

            Numa indústria que utiliza essencialmente suprimentos importados, a desvalorização do Real em relação ao Dólar também representa aumento de custos para as empresas. Nos últimos meses, essa desvalorização aumentou sobremaneira os custos de peças e serviços de manutenção.

            Analizando apenas os fatores aqui citados, dentre muitos outros existentes, ao invés de “cobrar medidas que devem ser tomadas pelas companhias para eficiência de sua gestão”, é urgente que o governo tome medidas para viabilizar a indústria do transporte aéreo no Brasil, caso contrário, a luz amarela terá que ser apagada para contenção de despesas…

sexta-feira, 10 de agosto de 2012

Cálculo de CG à partir de Pesagem

Tenho recebido várias perguntas a respeito de como calcular o CG de uma aeronave à partir de uma pesagem realizada. Os cálculos envolvidos são simples, tratando-se de determinar o peso total da aeronave e o momento total resultante da posição dos trens de pouso.

Quando uma aeronave é pesada, a balança é colocada em pontos específicos, determinados pelo manual de pesagem do fabricante. Algumas utilizam os trens de pouso e outras, pontos de apoio na fuselagem e/ou asas específicos para este fim.

Vamos considerar o exemplo de uma aeronave que é pesada com balança sob os trens de pouso. Para determinar o momento de cada trem de pouso, é necessário conhecer as distâncias entre o plano de referência (DATUM line) e cada um dos trens de pouso. A figura abaixo mostra essas medidas para uma aeronave Airbus A320.



Nessa caso, as distâncias são: 7,613m para o trem do nariz e 20,253m para os trens principais. Esses dados são obtidos no Weight and Balance Manual da aeronave.

Quando a aeronave é pesada, a oficina responsável pelo serviço emite um relatório de pesagem com a medição obtida em cada ponto de apoio. Esse documento é conhecido como Weight and Balance Report.

Vamos considerar o exemplo de uma aeronave Airbus 320 que apresentou os seguintes pesos:
Trem de pouso do nariz: 4.415kg
Trem de pouso principal esquerdo: 19.430kg
Trem de pouso principal direito: 19.550kg

De posse desses dados, é possível calcular o momento total da aeronave em relação ao plano de referência. Lembrando que: MOMENTO = FORÇA X BRAÇO, onde, neste caso, força pode ser substituída por peso. Então:

MOM nariz = 4415kg x 7,613m = 33.611,395 kgm
MOM trem esquerdo = 19430kg X 20,253m = 393.515,79 kgm
MOM trem direito = 19550kg X 20,253m = 393.946,15 kgm

MOM total = MOM nariz + MOM trem esquerdo + MOM trem direito
MOM total = 33.611,395 + 393.515,79 + 393.946,15
MOM total = 823.073,34 kgm

Pode-se, também, calcular o peso total da aeronave:

Peso Total = Peso Nariz + Peso Trem Esquerdo + Peso Trem Direito
Peso Total = 4.415 + 19.430 + 19.550
Peso Total = 43.395 kg

Voltando à equação MOM = FORÇA X BRAÇO, é possível manipulá-la algebricamente para obter:

BRAÇO = MOM / FORÇA

Ou seja, é possível calcular um ponto de apoio equivalente onde, caso todo o peso fosse aplicado, a aeronave permaneceria em equilíbrio. Ou ainda, caso a aeronave fosse suspensa por esse ponto, sairia do chão em equilíbrio, sem tendência de inclinar-se para frente ou para trás.

Usando os dados obtidos, temos:

BRAÇO = 823.073,34 / 43.395
BRAÇO = 18.967m

Com o braço do CG determinado, é possível calcular o CG em relação à corda média aerodinâmica (MAC) da asa. Para isso, é necessário conhecer a estação inicial da corda, chamada de MAC Leading Edge e o seu comprimento, chamado MAC length.

Para um Airbus A320, MAC LE = 17.8015m e MAC length.

A fórmula para determinar o CG (%MAC) é: 

CG (% MAC) = (BRAÇO - LE MAC) / MAC LENGTH * 100

Sendo assim, no caso estudado:

CG = (18.967 - 17.8015) / 4.1935 * 100

CG = 27,79 % MAC

Espero que esse exemplo ajude a esclarecer as dúvidas a respeito de cálculo de CG.

Até breve.



domingo, 15 de março de 2009

Informatizando os Cálculos de Peso e Balanceamento (2)

Começamos a desenvolver o SimpleLoadsheet no final de setembro de 2008 e terminamos o protótipo no final de janeiro de 2009. Foram quatro meses, portanto, durante os quais implementamos funcionalidades equivalentes ao eLoadsheet da Jeppesen. Isto só foi possível porque trabalhamos durante um período anterior, bem mais longo, na modelagem orientada a objetos da aplicação. Um único modelo foi construído de acordo com os princípios definidos na abordagem conhecida como Domain Driven Design. Deste modelo, que é o modelo de objetos, foi derivado automaticamente o modelo de dados por meio de mapeamento objeto-relacional.


O diagrama a seguir mostra o ciclo de vida da loadsheet. Este ciclo pode ser repetido várias vezes até que seja emitida a loadsheetdefinitiva para um voo.




Ciclo de Vida

Na etapa de especificação o despachante informa os dados do voo (data, no. do voo, origem, destino(s) e matrícula da aeronave), assim como o carregamento (distribuição de passageiros, bagagem e carga pelos compartimentos da aeronave). A página de carregamento será apresentada apenas se a aeronave designada para o voo estiver cadastrada como parte da frota da companhia aérea. As informações relativas ao carregamento são então verificadas de acordo com as especificações técnicas da aeronave. Durante a verificação, valores superiores às capacidades máximas são bloqueados imediatamente.


Na etapa de cálculo são aplicadas as regras de peso e balanceamento com o objetivo de garantir que os pesos máximos de decolagem, pouso e zero-combustível, assim como os respectivos centros de gravidade (CG), permaneçam dentro dos limites da aeronave. Caso algum valor fique fora dos limites o despachante será obrigado a retornar à etapa de especificação.


Com o objetivo de destacar quais são os valores que se encontram fora dos limites, o diagrama de limites de CG, ou envelope de CG, é gerado na etapa de cálculo. Para gerar dinamicamente o diagrama usamos a biblioteca charts4j, a qual permite o acesso à Google Chart API a partir de código escrito em Java. A seguir são apresentados dois exemplos do diagrama: à direita, com os CGs dentro dos limites e à esquerda, fora dos limites.




Se todos os valores estiverem dentro dos limites o despachante passa à etapa de emissão, onde a loadsheet é gerada e disponibilizada para impressão. A qualquer momento o despachante pode voltar à etapa de especificação, ajustar os valores e/ou a distribuição do carregamento e emitir uma nova edição da loadsheet.


Tecnologia

SimpleLoadsheet foi desenvolvido em Java SE como uma aplicação web baseada em servlets. O servidor web é o Apache Tomcat e o banco de dados, MySQL Community Server. O mapeamento objeto-relacional usa a JPA implementada pelo Hibernate, e a interface com o usuário, HTML puro acoplado ao Apache Wicket.


A apresentação que incluímos abaixo mostra as páginas da aplicação, desde o login até a geração da loadsheet para impressão. Novamente, comentários e perguntas serão sempre bem-vindos.

SimpleLoadsheet, Part 2
View more presentations from c_belderrain.

Escrito por João Carlos Medau e Cristina Belderrain

quinta-feira, 26 de fevereiro de 2009

Informatizando os Cálculos de Peso e Balanceamento (1)

Dando sequência ao post sobre Peso e Balanceamento vamos apresentar hoje um projeto de software que estamos desenvolvendo há algum tempo. Seria um exagero afirmar que ele é inovador: empresas como a Jeppesen já oferecem soluções similares que são usadas por companhias aéreas em todo o mundo. No entanto, nosso projeto tem características únicas que o diferenciam das soluções existentes. Neste e no próximo post tentaremos colocar em evidência algumas dessas características.


O João e eu nos conhecemos na faculdade: ele, um estudante do curso de Ciência da Computação e eu, uma professora que lecionava disciplinas básicas como Introdução à Programação, Laboratório de Programação e Engenharia de Software, todas com foco em orientação a objetos e Java. Desconfio que foi naquele momento que ele começou a se interessar pelas possibilidades da programação orientada a objetos... :-)


Desde então, estamos sempre conversando, trocando ideias e resolvendo problemas de projeto e programação juntos. Foi dessa colaboração permanente, construída sobre e-mails, mensagens instantâneas, wikis e outros recursos oferecidos pela web que nasceu o SimpleLoadsheet, parte de um projeto maior que é o JDJ.


SimpleLoadsheet

SimpleLoadsheet é o protótipo de uma aplicação web desenvolvida para apoiar um aspecto específico do processo de despacho de voos: a especificação, o cálculo e a emissão de loadsheets (o processo de despacho completo pode ser visto no diagrama a seguir). Loadsheet é o documento que registra o carregamento de uma aeronave antes da decolagem, discriminando o peso de passageiros, bagagem e carga, assim como sua distribuição pelos compartimentos da aeronave.

São os cálculos de peso e balanceamento que permitem a verificação do carregamento em relação aos limites da aeronave. Tal verificação não é apenas necessária, mas obrigatória: sem ela, a loadsheet não pode ser emitida.




Informatizar a emissão de loadsheets é vantajoso por vários motivos. Por um lado, a possibilidade de erros de cálculo deixa de existir. Ainda que os dados do voo, informados pelo despachante, continuem sujeitos a erros, essa possibilidade é minimizada pela validação automática, a qual leva em conta as dimensões e capacidades específicas da aeronave que está sendo carregada.


Por outro lado, o ciclo de vida da loadsheet ganha agilidade e rastreabilidade, qualidades importantes em qualquer processo e essenciais em um que dura apenas uma hora: esse é o tempo, em média, que um despachante tem para preparar uma loadsheet sem propagar ao voo o atraso que ele venha a causar. Nesse curto período, a loadsheet pode ser modificada e emitida várias vezes, dando origem a uma nova edição a cada emissão.


No próximo post vamos abordar alguns detalhes técnicos do desenvolvimento do SimpleLoadsheet. A apresentação que incluímos abaixo mostra os princípios básicos que adotamos ao longo do projeto. Comentários e perguntas serão sempre bem-vindos.




Escrito por João Carlos Medau e Cristina Belderrain

Novo Blog

Olá,

Eu comecei achar que conteúdos sobre computação misturados a conteúdos sobre aviação, apesar de ser uma mistura normal para mim, estava deixando o blog um pouco enrolado e sem um propósito bem definido.

Por isso, resolvi criar outro blog sobre performance: http://airplaneperformance.blogspot.com/

Sendo assim, o novo blog será dedicado a conteúdo relacionado a performance de aeronaves e esse aqui a outros assuntos...

Até breve, nos dois blogs.

sábado, 20 de setembro de 2008

Peso e Balanceamento

Depois de bastante tempo sem colocar nenhum post no blog, resolvi escrever um pouco sobre teoria de peso e balanceamento de aeronaves.


Eu comecei a gostar de peso e balanceamento quando resolvi fazer uma planilha Excel para não precisar mais preencher os gráficos de balanceamento manualmente em meus vôos. Isso evoluiu para o sistema DispatchJet, hoje em uso na Oceanair e depois para o JDJ, uma nova idéia que eu e a Cris estamos desenvolvendo... Agora, essa idéia está evoluindo para um outro lado que espero que esteja funcionando em breve :-)


Peso e Balanceamento


A necessidade de estabelecer-se um controle de peso e balanceamento para os aviões deve-se a necessidade de garantir que, antes de todo vôo, as seguintes condições sejam cumpridas:
  • Os pesos de decolagem, pouso e zero combustível devem estar dentro dos limites;
  • A aeronave esteja corretamente balanceada para o vôo;
  • O consumo de combustível durante o vôo não afete negativamente o balanceamento.
Para que seja mais fácil entender os conceitos de peso e balanceamento, os seguintes conceitos se aplicam:

Plano de Referência - Plano a partir do qual mede-se os braços (ou estações) de uma aeronave. Em geral, corresponde a um plano vertical, encostado no nariz do avião (também conhecido como DATUM Line);

Massa - inérica ou resistência de um corpo em ter seu movimento acelerado;

Braço ou Estação - Distância entre o plano de referência e o ponto de apoio de uma massa na aeronave (ex: distância entre a linha DATUM e o compartimento de cargas);

Momento - Produto da massa pelo braço do ponto de apoio;

Centro de Gravidade CG - Ponto de equilíbrio da aeronave;

Corda Média Aerodinâmica MAC - Linha que une o bordo de ataque ao bordo de fuga da asa. Geralmente, a posição do CG é expressa em porcentagem de MAC %MAC; A figura 1 ilustra a linha DATUM, a corda média aerodinâmica e seus limites.


Definições de Peso

As seguintes definições de peso se aplicam:

Peso Vazio Básico - Peso da aeronave vazia, sem tripulação, passageiros, carga, combustível e demais itens necessários ao vôo. É obtido através da pesagem da aeronave com uma balança especial e instruções contidas no manual de weight and balance, emitido pelo fabricante. É o início do processo de peso e balanceamento.

Peso Básico Operacional - Peso Vazio Básico acrescido da tripulação e sua bagagem, comissaria, manuais, fly kit e demais itens necessários à operação da aeronave. É a aeronave pronta para voar, faltando carga paga e combustível.

Carga Paga - Tudo o que é transportado na aeronave que não faça parte do peso básico operacional. Normalmente é composto de passageiros, bagagem, carga e mala postal.

Peso Zero Combustível - Peso Básico Operacional mais a Carga Paga. É, por definição, a aeronave pronta para o vôo, faltando apenas o combustível.

Peso de Rampa ou de Taxi - Peso da aeronave pronta para iniciar as manobras no solo com o objetivo de decolar.

Peso de Decolagem - Peso da aeronave alinhada na cabeceira da pista para decolagem. É o Peso de Rampa menos o combustível consumido no taxi.

Peso de Pouso - Peso da aeronave quando toca o solo. É o Peso de Decolagem menos o combustível consumido em vôo.

Pesos Máximos

Os pesos zero combustível, de decolagem e de pouso devem respeitar seus respectivos limites definidos pelo AFM - Airplane Flight Manual. Os pesos máximos de decolagem e pouso devem ainda respeitar os limites de performance, mas esse assunto fica para um outro post.

Calculando o Balanceamento

O cálculo de balanceamento consiste em calcular o peso total da aeronave, calcular o momento total dos itens e calcular o CG. Posteriormente, o CG deve ser transformado em %MAC.

A figura 2 mostra os braços de cada posição da aeronave. Esses dados são usados para criar a tabela da figura 3.


A figura 3 ilustra o balanceamento de uma aeronave de pequeno porte.



Os braços de cada posição (nesse caso, front seats, rear seats, fuel, baggage A, baggage B) são fornecidos pelo fabricante, através do weight and balance manual. Deve-se então colocar os pesos que serão transportados em cada posição e, em seguida, multiplicá-los pelos braços. Tendo obtido todos os momentos, deve-se somá-los para obter o momento total.
Após obter o peso total e o momento total, deve-se dividir o momento pelo peso para obter o CG. O valor obtido é a distância entre o plano de referência (DATUM line) e o CG da aeronave carregada conforme a tabela. Deve-se realizar três cálculos:
  • CG do peso zero combustível, somando-se todos os itens exceto o combustível;
  • CG do peso de decolagem: após obter o peso zero combustível e seu momento, somar o combustível de decolagem. Obter o momento do combustível multiplicando-se seu peso pelo braço do tanque. Somar o momento do combustível ao momento zero combustível. Dividir o momento total pelo peso de decolagem para obter o CG de decolagem.
  • CG do peso de pouso: Diminuir o consumo previsto para o vôo do peso de decolagem. Calcular o momento do consumo. Subtrair o momento do consumo do momento de decolagem e dividir o resultado pelo peso de pouso para obter o CG de pouso.
Após calcular os três valores de CG, deve-se convertê-los em %MAC. Para isso, deve-se aplicar a fórmula da figura 5.

onde:
BA - Balance Arm - CG obtido através dos cálculos anteriores;
MAC
LE - Início da corda média aerodinâmica. Distância entre a linha DATUM e o bordo de ataque da asa, onde começa a corda média.
MAC
LENGTH - Comprimento da corda média aerodinâmica.

Após ter obtidos os pesos zero combustível, de decolagem e de pouso e os respectivos CG em %MAC, deve verificar se os valores obtidos estão dentro dos limites permitidos pelo AFM da aeronave.

A figura 6 mostra um exemplo de limites de centro de gravidade.





Algumas aeronaves possuem limites diferentes para CG zero combustível, decolagem e pouso. Para determinar corretamente os valores e os limites, é importante observar os manuais de vôo e de peso e balanceamento fornecidos pelos fabricantes.

Finalmente, um outro ponto importante é ter atenção às unidades de medida: os pesos podem estar em libras ou quilos e os braços em metros, milímetros ou polegadas. Qualquer combinação de unidades de peso e comprimento pode ser usada, desde que não sejam erroneamente trocadas durante os cálculos.

Até breve!







quarta-feira, 11 de junho de 2008

Cliente de Webservice em PHP

Olá,

Tenho colocado posts (muito) raramente aqui mas, apesar disso, alguns que coloquei me foram úteis depois para repetir alguma instalação, configuração, etc. Assim, esse post se destina a descrever a configuração de um servidor web com PHP capaz de rodar aplicações que acessam webservices.

A forma mais fácil de rodar aplicações PHP era, até então, a instalação do pacote EasyPHP, disponível para download em http://sourceforge.net/project/downloading.php?groupname=quickeasyphp&filename=EasyPHP-2.0b1-setup.exe&use_mirror=ufpr. Porém, após fazer essa instalação numa máquina rodando Windows Vista Business, nenhuma página PHP era apresentada.

A próxima opção foi instalar um servidor Apache e PHP "manualmente". Para resumir os passos, há um tutorial muito útil a respeito na página http://www.php-mysql-tutorial.com/install-apache-php-mysql.php.

Faça o download do instalador do Apache em http://httpd.apache.org/. Siga as instruçoes de instalação do tutorial.

Teste 1: Após a instação do Apache, digite http://localhost no seu browser. Deve aparecer uma tela com a frase It Works! É sinal de que o Apache por si só está funcionando.

Depois de instalar o Apache e fazer o que está descrito no tutorial para instalar o PHP, misteriosamente o PHP ainda não funcionava. Nesse ponto, eu e a Cris perdemos várias horas tentando fazer a configuração. Aqui vai um resumo de passos que diferem do tutorial por causa da versão do PHP e do Apache.

Obs: No download do PHP há opções para usar o instalador ou descompactar o .zip. Não consegui fazer funcionar com o instalador. Então, prefira o .zip.

Após descompactar o pacote, acesse o arquivo httpd.conf na pasta /conf da instalação do Apache. Prefira um path name sem espaços para a instalação do Apache. Algo como c:\apache é simples e funcional.

Mude as seguintes diretivas para:

DocumentRoot "C:/www"


DirectoryIndex index.html index.htm index.php


Adicione as linhas abaixo no final do arquivo ao invés das sugeridas no tutorial:

LoadModule php5_module php/php5apache2_2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Teste 2: Crie um arquivo chamado teste.php na pasta c:\www com o seguinte conteúdo:

phpinfo();
?>

Reinicie o Apache. Após, digite no seu browser http://localhost/teste.php. Deverá aparecer uma página como a descrita no tutorial. Se não aparecer, revise todas as configurações dos arquivos httpd.conf e php.ini. Lembre-se de reiniciar o serviço do Apache a cada modificação.

Quando funcionar, é sinal que o Apache + PHP já estão funcionando. Agora, só falta ser cliente de Webservices.

Edite o arquivo php.ini (que vc copiou para a pasta c:\Windows conforme manda o tutorial) para ajustar as seguintes diretivas:

short_open_tag = On
include_path=".;c:\apache\php\pear"
extension=php_soap.dll

Após a instalação do PHP, há um arquivo chamado go-pear.bat na pasta de instalação do PHP. Execute esse arquivo para a instalação da ferramenta Pear que é usada para acrescentar pacotes no PHP.

Siga o roteiro que aparece na tela. Após concluir esse passo, instale a extensão HTTP Request, através dos comandos:

pear download HTTP_request
pear install HTTP_request

Para instalar o pacote SOAP (necessário para a utilização de webservices) é necessário fazer o download manual do pacote. Isso pode ser feito em http://pear.php.net/package/SOAP.

Após o download, descompacte o pacote, renomeie a pasta p/ SOAP e copie para dentro da pasta /php/pear.

Reinicie o serviço do Apache.

Crie um arquivo chamado web_teste.php na pasta c:\www com o seguinte conteúdo:

$pesoIni = "1000";
echo "Peso: $pesoIni gramas";
require_once('SOAP/Client.php');
$wsdl = new SOAP_WSDL('http://www.webservicex.net/convertMetricWeight.asmx?wsdl');
$client = $wsdl->getProxy();
$ret = $client->ChangeMetricWeightUnit($pesoIni,'gram','kilogram');
echo "Peso $ret kilogramas";
?>

Digite http://localhost/web_teste.php

Se aparecer 1000 gramas convertidos para 1 kilograma, tudo está funcionando como deveria.

Links úteis:

http://www.linhadecodigo.com.br/Artigo.aspx?id=756
http://pear.php.net/package/SOAP
http://httpd.apache.org/
http://www.php.net

Até a próxima!