;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Corremos risco de apagão em horários de pico, diz presidente de instituto

Claudio Sales, presidente do Instituto Acende Brasil - Reprodução/Instituto Acende Brasil
Claudio Sales, presidente do Instituto Acende Brasil Imagem: Reprodução/Instituto Acende Brasil

Do UOL, em São Paulo

04/06/2021 13h02

A seca que atinge principalmente os reservatórios do Sul e do Sudeste pode causar racionamento ou apagão de energia nos horários de maior demanda, segundo Claudio Sales, presidente do Instituto Acende Brasil.

Em entrevista à CNN Brasil nesta sexta-feira (4), Sales afirmou que a situação não é tão grave quanto a da crise de 2001, quando o Brasil promoveu o racionamento prolongado de energia por falta de capacidade do sistema elétrico. Mesmo assim, pode não haver energia suficiente nos horários de pico ao longo do segundo semestre de 2021.

O nível dos reservatórios no Brasil é o pior da série histórica, iniciada em 1931. Segundo o ONS (Operador Nacional do Sistema Elétrico), as represas das hidrelétricas na região Sudeste e Centro-Oeste estão com 32% da capacidade —elas são responsáveis pela geração de mais da metade da energia brasileira.

Com o fim do período chuvoso na região, a produtividade das hidrelétricas deverá cair ainda mais. Para contornar o problema, o ONS despacha (aciona) usinas térmicas que geram eletricidade a partir de gás natural, óleo, carvão ou diesel.

Até que se comece a reencher os reservatórios, o que só acontece no fim do ano, há a possibilidade que em dados momentos do dia, em que se tenha um pico de demanda, não tenha usinas despacháveis pelo ONS. Aí incorreria na situação de blackout ou apagão.
Claudio Sales, presidente do Instituto Acende Brasil

Conta ainda mais cara nos próximos anos

Claudio Sales afirmou que o uso prolongado de usinas térmicas deve impactar no reajuste das tarifas de energia em 2022 e 2023. A energia produzida das térmicas é mais cara do que a das hidrelétricas.

O reajuste das tarifas é calculado periodicamente pela Aneel (Agência Nacional de Energia Elétrica), conforme o contrato com a empresa prestadora do serviço, com base na média do custo da eletricidade.

Além do reajuste da tarifa, a conta de luz já está no patamar mais caro para o consumidor por causa da crise hídrica. A Aneel acionou neste mês a bandeira vermelha 2, devido à seca que impacta na produção de energia.

Dificuldades no planejamento

Claudio Sales afirmou que o planejamento energético é sempre feito com cálculos de risco. Para ele, seria custoso demais formar um sistema que esteja 100% preparado para todos os problemas que podem acontecer (como a seca atual).

Impactos para a economia

A falta de energia em horários de pico poderia forçar empresas a mudar a rotina de trabalho ou reduzir a capacidade de produção. Segundo Sales, eventuais alterações tendem a impactar negativamente a economia.

"Qualquer mudança forçada significa uma certa perda", afirmou.

O Instituto Acende Brasil é um centro de estudos que monitora o setor elétrico brasileiro e trabalha em projetos para a transparência e sustentabilidade.