Você está na página 1de 10

USO DE VAZÕES NA COMPATIBILIZAÇÃO DE TEORES VIA MULTIPLICADORES DE

LAGRANGE

José Aurélio Medeiros da Luz


Eng.º De Minas, Dr.
Departamento de Engenharia de Minas - EM/UFOP
jaurelio@degeo.ufop.br

RESUMO

A aplicação de algoritmos de compatibilização de dados amostrais


redundantes é discutida, em termos da minimização sob vínculos
através dos multiplicadores de Lagrange. A inclusão de variáveis
virtuais camuflando os vínculos representados por medidas de
vazão nos fluxos amostrais é o artifício utilizado neste trabalho
para permitir o ganho de informação suplementar quando se utiliza
um programa de ajuste de dados baseado nos teores dos
componentes.

ABSTRACT

The application of data reconciliation algorithms by Lagrange’s


multipliers techniques to minimize experimental errors under
constraints is discussed. The insertion of “virtual” variables
founded on actual flowrate measurements, but mimicking content
values, is the artifice described in this paper in order to gain
additional information while using the usual content-based
software for data adjustment.

1. INTRODUÇÃO

A aplicação de algoritmos de minimização de erros no fechamento de


balanços de massas com redundância de dados experimentais tem se
tornado comum em processamento de minerais (Mular, 1976, Lynch,
1977, Frew, 1983, Maquin e colaboradores, 1988, Wills, 1992,
Jefferson e Scott, 1989, entre outros) redundância de dados
significa existência de um conjunto de medidas em número superior
àquele necessário à determinação do sistema de equações que
expressam a conservação das massas em cada nó topológico do
circuito (dadas por: soma das entradas = soma das saídas).

Naturalmente, como há erros experimentais na coleta dos dados, é


desejável ter-se o máximo de informação (análises ou medidas) para
melhorar a confiabilidade estatística dos resultados. Usualmente,
as técnicas de minimização de erros utilizam os teores de
alimentação e dos produtos de mais de um componente (ou mesmo de
todos), ditos teores brutos, em contraste com os teores ajustados,
obtidos pela execução do algoritmo de cálculo. A recuperação
mássica calculada a partir dos teores brutos terá um valor
específico para cada componente (via de regra distinto daqueles
calculados para os demais componentes analisados). Se não houvesse
erros, o valor obtido para a recuperação mássica (Rm) seria o
mesmo para qualquer um dos componentes. Em suma, o que os
algoritmos fazem é ajustar o valor da recuperação mássica e, a
partir daí, realizar um “retrocálculo”, ajustando os teores para
compatibilizá-los com a recuperação mássica ajustada. Tal ajuste
faz-se de modo a se minimizarem os erros, submetendo os parâmetros
aos vínculos (também chamados: restrições) dados pela lei de
conservação das massas. A minimização é mais facilmente realizada
pelo método dos multiplicadores de Lagrange (como se vê, por
exemplo, em Kaplan e Lewis, 1974 ou Riley e colaboradores, 1997).

É possível inserir-se na equação de vínculos aqueles referentes à


vazão, além dos teores e, através da resolução do sistema de
equações, desenvolver as expressões válidas para esse caso mais
complexo. Entretanto, os programas usualmente disponíveis não
consideram essa variante. Mesmo assim, o engenheiro de processo
(em geral com escassez de tempo para manutenção de software )
pode, através de um artifício, utilizar os dados de vazão no
programa de ajuste que utiliza unicamente valores de teores brutos
como entrada.

Este artigo tem como objetivo apresentar esse artifício de


cálculo, o qual pode ser útil em várias situações práticas.

2. METODOLOGIA

2.1. Aspectos teóricos

Seja uma função de três variáveis: f(x,y,z) = 0. Em um ponto


extremo (mínimo ou máximo) tem-se:
 f   f   f  (2.01)
df   dx   dy   dz  0
 x   y   z 
A função f é conhecida como função-objetivo, no escopo da pesquisa
operacional. Se as incógnitas dx, dy e dz forem independentes, em
um ponto de extremo vale a seguinte expressão:

 f   f   f  (2.02)
df           0
 x   y   z 
Essa igualdade entre as derivadas parciais, entretanto, não é
válida se as variáveis não forem independentes, mas estiverem
submetidas a um inter-relacionamento, dito vínculo (ou restrição,
ou condicionante), convencionalmente expresso por: g(x,y,z) = C,
onde C é uma constante. A resolução do problema de minimização (ou
maximização), inserindo-se g(x,y,z) em f(x,y,z) , por explicitação
de uma das variáveis, pode esbarrar em dificuldades algébricas.
Lagrange usou um artifício interessante para resolver esse
problema de modo simples, introduzindo uma incógnita adicional, ,
a qual, adequadamente selecionada, permite fazer dx, dy e dz
independentes, como se verá a seguir. Como o parâmetro C é
constante, dg = 0. Assim, somando-se df a dg, o valor continuará
nulo para qualquer  (dito multiplicador de Lagrange):

 f   g   f   g   f   g 
d  f  dg        dx        dy       dz  0 (2.03)
 x   x   y   y   z   z 
Para que dx, dy e dz se tornem independentes é necessário e
suficiente atribuir um valor a  tal que:

 f   g  (2.04)
      0
 x   x 

 f   g 
      0 (2.05)
 z   z 

 f   g  (2.06)
       0
 y   y 
Essas equações, mais a equação de vínculo, formam um sistema
determinado, onde é possível obter, por algebrismo, os valores de
, x, y e z no ponto estacionário. O número de vínculos (tomado,
no exemplo, igual a um) deve ser menor que o número de variáveis.

É comum o mesmo problema apresentar-se formalmente pelo chamado


lagrangeano (L), de resto equivalente à abordagem anterior. O
lagrangeano é:

L  f  x, y, z   2 i g i  x, y, z  (2.07)

O multiplicador 2 justifica-se apenas por conveniência algébrica e


é classicamente adotado. Os multiplicadores i e as incógnitas x, y
e z podem ser determinadas por derivação parcial em relação a cada
uma das incógnitas (incluindo os multiplicadores) e igualados a
zero. Isto é, para todos os valores de i, ter-se-á:

L L L L
   0 (2.08)
x y z i
2.2. Aplicação ao balanço de massas via teores

A recuperação mássica, Rm, é, por definição, igual a proporção, em


massa, dos sólidos na alimentação que se dirigem ao fluxo do
concentrado. Para processo em regime contínuo, as massas podem ser
substituídas pelas vazões correspondentes. Por outro lado, pela
fórmula dos três produtos, tem-se que:

Rm (i ) 
ai  ri 
ci  ri  (2.09)

Onde:ai- teor do componente i na alimentação [%];


ci- teor do componente i no concentrado [%];
ri- teor do componente i no rejeito [%];

Para sistemas ideais (sem erros), Rm(i) = Rm para qualquer


componente i. O problema consiste, pois, em obter estimativa Rm*,
do valor real, Rm, que minimize os valores absolutos dos resíduos
(diferenças) entre os teores medidos (ai, ci e ri) e os teores
ajustados (ai*, ci* e ri*) que tornam o sistema compatível para
qualquer dos componentes i. Isto é: ai*, ci* e ri* simulam um
sistema ideal.

Utilizando a técnica de minimização dos quadrados dos ajustes dos


componentes, a função-objetivo, f(ai*,ci*,ri*), para n componentes
será:

n
   
f (a*, c*, r*)   pai ai  a *i  pci ci  c*i  pri ri  ri*
i 1
2

2
 
2 (2.10)

Onde:pai – ponderador para o componente i na alimentação;


pci – ponderador para o componente i no concentrado;
pri – ponderador para o componente i na rejeito;
Geralmente, se usa como ponderador o inverso das variâncias
amostrais (pji = sji-2, com j = a,c,r). Isto significa que, quanto
maior for a incerteza de um dado (expressa pelo desvio padrão ou
variância), menor será sua influência na função-objetivo.

A equação de vínculo (ou condicionante) representa o fechamento do


balanço, a partir da equação de Rm(i), e é dada por:

  
n
g (a*, c*, r*)   a *i  ri*  Rm* c*i  ri*  0 (2.11)
i n

O valor de Rm*, ponderado pelo inverso dos desvios padrões, pode


ser calculado pela equação de Wills-Manser (Wills, 1992), mostrada
a seguir:

n
ai  ri 
 c  r s
i 1
Rm  n
i i Rmi (2.12)
1
s
i 1 Rmi

Onde sRmi é o desvio padrão da recuperação mássica (variável


composta), dado por:
2 2
  ai  ri   2   c  ai   2
2
 1  2
sRmi    sai   2 
sci   i 2 
sri
  ci  ri     ci  ri  
    ci  ri  
  (2.13)

Os parâmetros sai2, sci2 e sri2 são, respectivamente, as variâncias


amostrais dos teores de alimentação, do concentrado e do rejeito
para o componente genérico i.

2.3. Inclusão das variáveis virtuais

Selecionando-se arbitrariamente dois dos teores (da alimentação e


do rejeito, por exemplo), calcula-se o terceiro (concentrado, no
exemplo), substituindo na equação de Rm(i) os valores adotados
pelos fluxos selecionados e o valor da recuperação mássica obtida
pela relação de vazão (ou de massa, para a mesma base de tempo).

Por ocasião da seleção dos valores dos teores virtuais associados


à vazão, deve-se ter em mente o algoritmo do programa que será
utilizado. Se for utilizado um algoritmo de ponderação pelos
desvios (ou variâncias) relativos, pode-se arbitrariamente
estipular dois dos valores de dois quaisquer fluxos selecionados
e calcular o do terceiro, de modo a se respeitar a recuperação
mássica obtenível pelas medidas de vazão dos fluxos do processo.

Entretanto, se não houver a ponderação pelos desvios ou


variâncias relativas, os valores ajustados são enviesados em
direção ao componente com maior valor numérico de teor, conforme
bem comentado por Wills (1992), o que é uma grande desvantagem.
Assim, nesse caso, se deve repetir, para o componente virtual,
dois dos teores brutos do componente mais adequado e calcular o
valor do terceiro, compatibilizando-o com a recuperação mássica
determinada pelas medidas de vazão.

3. RESULTADOS

A seguir é dado um exemplo de aplicação da técnica aqui descrita.


O caso é real e os valores numéricos foram afetados de um
multiplicador, com o intuito de preservar o sigilo de informações
da empresa de desenvolvimento de processos envolvida. Seja uma
operação de flotação como etapa esgotadora (scavenger)em circuito
piloto para aproveitamento de rejeitos auríferos. Por razões
econômicas, as análises químicas foram realizadas unicamente para
determinação de teor de ouro (em partes por milhão: ppm). Sendo
material de baixo teor, houve o agravamento dos erros amostrais e
de análise.

Por outro lado, em unidade piloto pode-se medir mais precisamente


as vazões que em escala industrial; seja pela maior facilidade de
coleta de amostras pontuais, seja pela possibilidade de se coletar
todos os materiais gerados em uma corrida. A inclusão da vazão
como elemento de informação, portanto, permitiu a aplicação de
algoritmo de ajuste de dados (cujo cerne encontra-se no apêndice a
este trabalho), o qual necessita de  no mínimo  dois componentes,
levando, assim, a ganho na confiabilidade dos resultados. Os
valores utilizados e os resultados obtidos estão sumariados na
tabela 01, a seguir.
Tabela 01- Resultados da reconciliação de teores e vazões
PARÂMETROS VALORES VALORES
BRUTOS AJUSTADOS
Teor de alimentação [ppm] 1,1 1,14
Teor de concentrado [ppm] 53,0 51,89
Teor de rejeito [ppm] 0,5 0,49
Vazão mássica de:
 alimentação calculada [kg/h] 225,7 225,70
 concentrado[kg/h] 2,9 2,84
222,8 222,86
 rejeito [kg/h]
Recuperação mássica a partir de:
 teor de ouro [ppm] 1,143 1,26
 variável virtual (vazão)[ppm] 1,285 1,26
Erro amostral relativo adotado:
 determinação de teor de ouro [%] 15 -
 determinação de vazão [%] 2 -

Para execução do programa (com ponderação pelos desvios padrões


relativos)os teores brutos adotados para a variável virtual
(i = 2) foram: a(2) = 3,0 ppm (arbitrário), r(2) = 2,0 ppm
(arbitrário)e c(2) dado por:

c(2) 
a(2)  r (2)   r (2) 
3 2
 2  79,82 ppm (3.01)
Rm 2 0,01285
Vê-se que, por causa da maior precisão das medidas de vazão, o
valor de recuperação mássica ajustada ficou mais próximo do valor
bruto correspondente à vazão. A recuperação de ouro ajustada foi
de 57,3 %, contra o valor bruto de 55,1 %.

4. CONCLUSÕES

Informações adicionais sempre são desejáveis nos procedimentos de


compatibilização de massa de dados amostrais, especialmente quando
tais informações possuem incerteza menor do que aquelas
convencionalmente usadas. Dados de massa ou vazão geralmente são
mais confiáveis que os dados de teores, quando estes valores
absolutos são muito baixos, em ensaios em escala de bancada ou
piloto (por exemplo: no beneficiamento de minério aurífero
pobre). Assim, medidas de vazão suplementando as medidas de
teores (ou mesmo as complementando), com descrito neste artigo,
podem ser vantajosamente empregadas, mesmo sendo usados programas
computacionais preexistentes que não considerem essa alternativa.

REFERÊNCIAS BIBLIOGRÁFICAS
1.FREW, J. A. Computer Aided Design of Sampling Schemes.
International Journal of Mineral Processing, v. 11,n. 4,
p.255-265, Dec. 1983.
2.JEFFERSON, T. R. & SCOTT, C. H. The Entropy Approach to
Material Balancing in Mineral Processing. International
Journal of Mineral Processing, v.18, p.251-261, 1986.
3.KAPLAN, W. & LEWIS, D. J. Cálculo e Álgebra Linear. Rio de
Janeiro: Livros Técnicos e Científicos, 1974. Volume 4.
4.LYNCH, A. Mineral Crushing and Grinding Circuits. New York:
Elsevier, 1977.
5.MQUIN, D. et alii. Validation des Mesures par Équilibrage
Hiérarchisé des Bilans-Matière. International Journal of
Mineral Processing, v.23, n. 3/4 . p.241-252, July, 1988.
6.MULAR, A. L. Mass Balance of a Grinding Circuit. The
Canadian Mining and Metallurgical Bulletin, December, 1976.
7.RILEY, K. F. et alii. Mathematical Methods for Physics and
Engineering. Cambridge: Cambridge University, 1997.
8.WILLS, B. A. Mineral Processing Technology(5th ed.).
Oxford: Pergamon, 1992.

APÊNDICE: PROGRAMA FONTE (PARCIAL) EM PASCAL FOR WINDOWS

program ajuste;{ajuste de dados por multiplicadores de Lagrange}


{ponderação pelo algoritmo de Wills-Manser }
uses
WinDos,WinCrt, WinProcs;
var
{.........}
{****** ENTRADA DE DADOS ******}
procedure leitura;
begin
write('Digite o codigo do ensaio: ');
readln(ensaio);
nflux:=3;
for cont1:=1 to nflux do
begin
case cont1 of
1:fluxo[cont1]:='alimentacao';
2:fluxo[cont1]:='concentrado';
3:fluxo[cont1]:='rejeito';
end;
write('Digite o tipo de fluxo ', cont1,'
(alimentacao/concentrado/rejeito): ');
readln(fluxo[cont1]);
end;
write('Digite o numero de componentes: ');
readln(ncompo);
write('O erro relativo das analises eh o mesmo ([S]/N)? : ');
readln(resp2);
if upcase(resp2) ='N' then
begin
for cont2:=1 to ncompo do
begin
write('Digite o nome do componente ',cont2,' : ');
readln(compo[cont2]);
write('Digite o erro relativo da analise de
',compo[cont2],'[%] : ');
readln(erro_rel[cont2]);
erro_rel[cont2]:= erro_rel[cont2]/100;
end;
end else
begin
erro_rel[1]:=0.01;
for cont2:=1 to ncompo do
begin
Write('Digite o nome do componente ',cont2,' : ');
readln(compo[cont2]);
erro_rel[cont2]:= erro_rel[1];
end;
end;
for cont1:=1 to nflux do
begin
for cont2:=1 to ncompo do
begin
write('Digite o valor bruto de ',compo[cont2],' em
',fluxo[cont1],' [%]: ');
readln(valor_bruto[cont1,cont2]);
valor_bruto[cont1,cont2]:=valor_bruto[cont1,cont2]/100;
end;
end;
if nflux=4 then {com geração de misto}
begin
{...............}
end;
{.................}
end;

{*********CÁLCULO DA RECUPERACAO MASSICA*************}


procedure recuperacao_massica;
begin
aux1:=0; aux2:=0;
for cont2:=1 to ncompo do
begin
R_mass[m]:=(valor_bruto[1,cont2]-valor_bruto[3,cont2])/
(valor_bruto[2,cont2]-valor_bruto[3,cont2]);
aux1:=aux1+(valor_bruto[1,cont2]-valor_bruto[3,cont2])*
(valor_bruto[2,cont2]-valor_bruto[3,cont2]);
aux2:=aux2+(valor_bruto[2,cont2]-valor_bruto[3,cont2])*
(valor_bruto[2,cont2]-valor_bruto[3,cont2]);
end;
R_mass[m]:=aux1/aux2; {recuperacao massica sem ponderacao}
aux3:=0; aux4:=0;
for cont2:=1 to ncompo do
begin
variancia_global[cont2]:=
vari[1,cont2]/sqr(valor_bruto[2,cont2]-valor_bruto[3,cont2])+
vari[2,cont2]*sqr((valor_bruto[1,cont2]-
valor_bruto[3,cont2])/
sqr(valor_bruto[2,cont2]-
valor_bruto[3,cont2]))+
vari[3,cont2]*sqr((valor_bruto[2,cont2]-
valor_bruto[1,cont2])/
sqr(valor_bruto[2,cont2]-
valor_bruto[3,cont2]));
aux3:=aux3+(valor_bruto[1,cont2]-valor_bruto[3,cont2])/
((valor_bruto[2,cont2]-
valor_bruto[3,cont2])*sqrt(variancia_global[cont2]));
aux4:=aux4+1/sqrt(variancia_global[cont2]);
end;
{recuperacao ponderada pela variancia, segundo Wills-Manser}
R_mass_pond[2]:=aux3/aux4;
R_mass_pond[3]:=1-R_mass_pond[2];

end;
{****** AJUSTE DOS VALORES DOS COMPONENTES ******}
procedure ajusta_valor_componente;
begin
for cont2:=1 to ncompo do
begin
H:=
vari[1,cont2]+R_mass_pond[2]*R_mass_pond[2]*Vari[2,cont2]+
(1-R_mass_pond[2])*(1-R_mass_pond[2])*Vari[3,cont2];
residuo[cont2]:= valor_bruto[1,cont2] - R_mass_pond[2]*
valor_bruto[2,cont2] -
valor_bruto[3,cont2]*(1-R_mass_pond[2]);
valor_ajustado[1,cont2]:=
valor_bruto[1,cont2]-residuo[cont2]*vari[1,cont2]/H;
valor_ajustado[2,cont2]:=
valor_bruto[2,cont2]+residuo[cont2]*vari[2,cont2]
*R_mass_pond[2]/H;
valor_ajustado[3,cont2]:=
valor_bruto[3,cont2]+residuo[cont2]*vari[3,cont2]
*(1-R_mass_pond[2])/H;
end;
end;
{********* CALCULO DE MISTO *******}
procedure calculo_misto;
begin
{..................}
end;
{*********CÁLCULO*************}
procedure calculo;
begin
{..............}
for cont1:=1 to 3 do
begin
for cont2:=1 to ncompo do
begin
Vari[cont1,cont2]:=
valor_bruto[cont1,cont2]*valor_bruto[cont1,cont2]
*erro_rel[cont2]*erro_rel[cont2];
end;
end;
recuperacao_massica;
ajusta_valor_componente;
for cont2:=1 to ncompo do
rec[cont2]:=valor_ajustado[2,cont2]*(valor_ajustado[1,cont2]-
valor_ajustado[3,cont2])/(valor_ajustado[1,cont2]*
(valor_ajustado[2,cont2]-valor_ajustado[3,cont2]));
end;
{**********PROGRAMA PRINCIPAL************}
begin
screensize.X:=500; screensize.Y:=650;
windowsize.X:=800; windowsize.Y:=650;
m:=1;
leitura;
calculo;
saida;
end.