;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Gasolina ou eletricidade? Entenda a tecnologia por trás do carro híbrido

Rodrigo Lara

Colaboração para Tilt

28/05/2020 04h00

De um lado, carros tradicionais usam combustível fóssil e impactam o meio ambiente ampliando a poluição do ar. De outro, os veículos que usam eletricidade como fonte de energia, mas ainda enfrentam problemas como baixa autonomia e alto preço. No meio de campo, uma alternativa interessante: os chamados carros híbridos.

Eles são capazes de unir qualidades dos motores movidos a combustão e elétricos em um pacote mais ível tanto financeiramente quanto tecnicamente. Mas você sabe como um motor do tipo funciona?

Como o nome deixa claro, um carro híbrido usa dois tipos de energia: um combustível (aqui, vamos usar a gasolina como exemplo) e uma outra fonte energética, como a eletricidade —que é a mais promissora para carros de eio. Essa característica faz com que ele seja a junção de dois motores.

A diferença é que há ao menos três tipos de configurações para carros híbridos: os paralelos, os em série e os mistos.

No caso dos paralelos, tanto o motor a combustão quanto o elétrico são capazes de mover o carro. Ele pode rodar só com o motor a combustão tracionando as rodas, ou só com o elétrico fazendo isso, ou com ambos trabalhando juntos.

A potência máxima nesse tipo de carro é obtida pela combinação das potências do motor elétrico e do motor de combustão.

Nos híbridos em série, apenas o motor elétrico traciona as rodas —e ele precisa ter potência suficiente para essa função. Cabe ao motor a combustão atuar como um gerador, que alimenta a bateria que armazena a energia que será usada pelo motor elétrico.

Os modelos mistos, por sua vez, têm uma central eletrônica que avalia a situação para decidir como mover o carro: usando o motor a combustão, o elétrico ou uma combinação de ambos. Esses modelos também podem usar o motor a combustão para recarregar a bateria dos motores elétricos.

Independentemente da configuração usada, esses carros podem ser do tipo plug-in. Isto é, podem ter as suas baterias recarregadas na rede de eletricidade, o que diminui ainda mais o seu impacto ambiental e custo por quilômetro rodado.

Por fim, esses carros contam com sistemas que usam certas situações como desaceleração ou frenagens para recuperar a carga das baterias.

A bateria de um carro híbrido precisa ser trocada?

Sim, as baterias usadas em carros têm uma vida útil, assim como, só para comparar, as baterias de smartphones. Esse tempo pode variar de fabricante para fabricante. Mas, é possível destinar uma bateria "gasta" a outras funções, como para armazenar energia em residências e instalações que gerem eletricidade por meio da luz do sol.

Qual o ganho de eficiência de um carro híbrido em relação a um com propulsão convencional com motor a combustão?

Dependendo do tipo de uso do carro, um híbrido pode ser até 30% mais eficiente do que um carro com propulsão convencional. Isso fica ainda mais notável quando a maior parte do uso é urbano, uma vez que é no "anda-e-para" das grandes cidades que os motores a combustão são menos eficientes e gastam mais combustível.

Fontes:

Emílio Paganoni, gerente sênior de treinamento do BMW Group Brasil; Clayton Barcelos Zabeu, professor de Engenharia Mecânica do Instituto Mauá de Tecnologia

Fabio Kazuki Uema, gerente geral de engenharia da Toyota do Brasil

Toda quinta, Tilt mostra que há tecnologia por trás de (quase) tudo que nos rodeia. Tem dúvida de algum objeto? Mande para a gente que vamos investigar.