• Nenhum resultado encontrado

Elaborar um modelo baseado em RNA com somente uma etapa, a fim de minimizar os erros e criar um modelo mais abrangente, tendo como alvo os parâmetro finais de qualidade como abrasão e resistência à compressão.

Considerar a abordagem de outras variáveis que potencialmente influenciam o processo, como taxa de alimentação dos discos, posição dos raspadores, posição de alimentação da polpa, rotação dos ventiladores no interior do forno entre outras, aumentando deste modo a precisão do modelo.

Analisar a influência individual de cada disco pelotizador no processo global, possibilitando uma ação mais focada e precisa na operação, e possivelmente analisar a influência da quantidade de discos no resultado da usina.

Adaptar o modelo matemático à arquitetura do sistema de operação da planta, possibilitando sua inserção como um sistema online de controle de parâmetros do processo, viabilizando sua aplicação prática.

Determinar os pontos de ótimos de operação da planta de pelotização para cada variável, buscando a melhor condição possível do ponto de vista técnico e econômico.

82

REFERÊNCIAS

ADETAYO, A. A. et al. Population balance modelling of drum granulation of material with wide size distribution. Powder technology, n. 82, p. 37-49, 1995.

ARAUJO, L. A. Manual de siderurgia. São Paulo: Arte e Ciência, v. 1 - Produção, 1997.

BLUM, A. Neural Networks in C++. New York: John Wiley & Sons Inc., 1992. BORIM, J. C. Modelagem e controle de um processo de endurecimento de pelotas de minério de ferro, 2000.

BRAGA, A. P.; CARVALHO, A. C. P. L. F.; LUDERMIR, T. B. Redes Neurais

Artificiais: Teoria e aplicações. [S.l.]: Livros Tecnicos e Científicos (LTC), 2000.

CAMPOS, A. R. D.; FONSECA, V. O. Aglomeração. In: LUZ, A. B. D.; SAMPAIO, J. A.; FRANÇA, S. C. A. Tratamento de Minérios. 5. ed. Rio de Janeiro: [s.n.], 2010. p. 683-750.

DWARAPUDI, S.; GUPTA, P. K.; RAO, S. M. Prediction of Iron Ore Pellet Strength Using Artificial Neural Network Model. ISIJ International, v. 47, p. 67-72, 2007. FAN, X.-H.; LIB, V.; CHEN, X.-L. Prediction of Iron Ore Sintering Characters on the Basis of Regression Analysis and Artificial Neural Network. Energy Procedia , p. 769-776, 2012.

HAYKIN, S. Neural networks and learning machines. 3. ed. New Jersey: Pearson, 2009.

HECHT-NIELSEN, R. Neurocomputing. 3. ed. Michigan: Addison-Wesley Publishing Company, 1989. 433 p.

IVESON, S. I. et al. Nucleation growth and breakage phenomena in agitated wet granulation process: a review. Powder technology, p. 3-39, 2001.

KOEKEMOER, A.; LUCKOS, A. Effect of material type and particle size distribution on pressure drop in packed beds of large particles: Extending the Ergun equation.

Fuel, n. 158, p. 232-238, 2015.

KROSE, B.; VAN DER SMAGT, P. An introduction to neural networks. 8. ed. [S.l.]: University of Amsterdam, 1996.

LOPES, N.; RIBEIRO, B. An Efficient Gradient-Based Learning AlgorithmApplied to Neural Networks with SelectiveApplied to Neural Networks with Selective. Neural,

83

MATOS, A. P. Influência da Temperatura, Pressão, Produção e Granulometria no Processo de Secagem das Pelotas Cruas. Dissertação de mestrado, 2007. MEYER, K. Pelletizing of Iron Ores. Springer-Verlag Berlin, Heidelberg, e Verlag Stahleisen mbH, Dusseldorf: [s.n.], 1980.

MISHRA, B. K.; THORTON, C.; BHIMJI, D. A preliminary numerical investigation of agglomeration in a rotary drum. Minerals engineering, n. 15, p. 27-33, 2002. MONTEIRO, A. M.; BRAGA, A. D. P.; CARVALHO, B. P. R. Modelagem neural de um processo de produção de pelotas de minério de Ferro. VII Seminário de

automação de processos - ABM, 2003.

PENA, J. C. Aglomeração do minério de Ferro. Sã Paulo: ABM, 1982.

SASTRY, K. V. S.; FUERSTENAU, D. W. Mechanisms of Agglomerate Growth in Green Pelietization. Powder Technology, Lausanne, p. 97-105, 1973.

THELLA, J. S.; VENUGOPAL, R. Modeling of iron ore pelletization using 3 ** (k–p) factorial design of experiments and polynomial surface regression methodology.

Powder Technology, n. 211, p. 54-59, 2011.

TIMOFEEVA, A. S.; NIKITCHENKO, T. V.; ROGOVA, A. L. Optimizing the granulometric composition of pellets obtained on a disc pelletizer. Metallurgist, Moscow, n. 5, p. 48-51, 2013.

TRAHANA, J. et al. Evaluation of pressure drop and particle sphericity for an air-rock bed thermal energy storage system. Energy Procedia, n. 57, p. 633 – 642 , 2014.

84

APÊNDICE A - RNA 1 EM LINGUAGEM DE PROGRAMAÇÃO “C”

/**

Generated by Multiple Back-Propagation Version 2.2.4

Multiple Back-Propagation can be freely obtained at http://dit.ipg.pt/MBP */

#include <math.h> /**

inputs - should be an array of 7 element(s), containing the network input(s). outputs - should be an array of 1 element(s), that will contain the network output(s). Note : The array inputs will also be changed.Its values will be rescaled between -1 and 1. */

void 7151 em C(double * inputs, double * outputs) {

double mainWeights[] = {-0.210376820336255, -2.451622017305488, 0.079825569040298, - 3.480488437381447, 1.828648972731710, -2.591503514054862, -0.580355803853491, - 0.408613644639126, -0.926514890558635, -5.387680901063519, 0.404114631777590, 4.037741754690992, -0.140325068156321, -0.570916730152442, -0.411254938329114, - 0.691066385262272, -0.239598816064662, -0.138937299058937, -0.540569324499966, - 0.241908381261869, -0.875192129422371, -0.674994287733274, -0.694052537440473, 2.176091639243290, 0.105785510698918, -0.048700146405850, 0.688904486653636, 0.381222610435768, -0.595539409027399, 0.113132689180417, -0.199723009674404, - 0.335371063808358, -1.491333848418378, 2.878923965349864, 1.118154764949057, - 0.678087836154843, -0.222871575865120, 1.027339901048534, 0.605630014840429, - 1.115617570834530, 0.545972353451518, 0.779911716567754, -4.035284605484105, 0.937394513740587, 3.997888062903593, 0.460433643609875, -0.952461459213902, - 0.200725271333746, 0.028844510647476, -1.894395140721658, 0.221324453009030, - 2.181808151197144, 0.332923410510247, 0.784301049139911, -0.882252578514546, 1.923189120131941, 0.096093388004219, -1.068128571906310, 0.358249819378427, 0.896095622875461, -0.470528359304177, 0.843771785003751, -1.799529690241459, - 0.921761794952330, 0.901107216577155, 0.942959837543659, 0.833769406537894, 1.785694321424656, -0.209829738808998, -0.358892966585323, 0.109266539848592, - 0.386270721799710, -0.943337339624421, -0.194137427280442, 0.636206577341331, 0.108028088795450, 0.009498733763122, -0.394925554281514, 0.443779388800410, 0.384552882903862, -1.798199521384575, -0.115938176596215, 0.709174527807271, 0.876616857214926, 3.863998380357780, -3.205114585687404, -0.759977073421923, - 1.945779607767659, 0.861197709336955, 5.975736842061536, -3.098089734639636, 1.091923254722068, -0.931201818225913, -1.736142796103195, -1.585451107833053, - 0.515969182956136, -0.588761799374164, 0.209163903327959, -0.120653121961638,

85 1.254680671680947, -0.156367623873717, -0.417046256054051, 1.802208793363451, - 1.270049134021022, 1.078036479959774, 1.898909928737090, -0.786311207910661, - 0.159558827047379, -0.871654620588596, 0.831604874904067, -0.307659478609975, 0.169894489651556, -1.676369334082477, -1.626150021809326, 1.111034358573912, - 0.282124505387609, 2.426441380235386, 3.876538397928687, -4.441217429244137, 0.491395068282050, -0.695408246772417, 0.313306869007295, -0.917802937813470, 0.636309597151678, -1.823112168721488, -1.316357004358049, -0.660282392103022, 0.725429418154008, -0.385426074033844, -0.400567700137061, 0.278881967324747, - 0.642313187971256, -0.867307744283966, -0.246336699167935, -0.034815298116209, 0.287502027361376}; double * mw = mainWeights; double hiddenLayer1outputs[15]; int c; inputs[0] = -1.0 + (inputs[0] - 317.060000000000000) / 218.364999999999980; inputs[1] = -1.0 + (inputs[1] - 6.150000000000000) / 3.245000000000000; inputs[2] = -1.0 + (inputs[2] - 1.120000000000000) / 0.760000000000000; inputs[3] = -1.0 + (inputs[3] - 35.560000000000002) / 22.674999999999997; inputs[4] = -1.0 + (inputs[4] - 1.290000000000000) / 5.279999999999999; inputs[5] = -1.0 + (inputs[5] - 5.360000000000000) / 13.165000000000001; inputs[6] = -1.0 + (inputs[6] - 39.399999999999999) / 20.430000000000003; hiddenLayer1outputs[0] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[0] += *mw++ * inputs[c]; hiddenLayer1outputs[0] = tanh(hiddenLayer1outputs[0]);

hiddenLayer1outputs[1] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[1] += *mw++ * inputs[c]; hiddenLayer1outputs[1] = tanh(hiddenLayer1outputs[1]);

hiddenLayer1outputs[2] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[2] += *mw++ * inputs[c]; hiddenLayer1outputs[2] = tanh(hiddenLayer1outputs[2]);

hiddenLayer1outputs[3] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[3] += *mw++ * inputs[c]; hiddenLayer1outputs[3] = tanh(hiddenLayer1outputs[3]);

hiddenLayer1outputs[4] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[4] += *mw++ * inputs[c]; hiddenLayer1outputs[4] = tanh(hiddenLayer1outputs[4]);

hiddenLayer1outputs[5] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[5] += *mw++ * inputs[c]; hiddenLayer1outputs[5] = tanh(hiddenLayer1outputs[5]);

86

for(c = 0; c < 7; c++) hiddenLayer1outputs[6] += *mw++ * inputs[c]; hiddenLayer1outputs[6] = tanh(hiddenLayer1outputs[6]);

hiddenLayer1outputs[7] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[7] += *mw++ * inputs[c]; hiddenLayer1outputs[7] = tanh(hiddenLayer1outputs[7]);

hiddenLayer1outputs[8] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[8] += *mw++ * inputs[c]; hiddenLayer1outputs[8] = tanh(hiddenLayer1outputs[8]);

hiddenLayer1outputs[9] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[9] += *mw++ * inputs[c]; hiddenLayer1outputs[9] = tanh(hiddenLayer1outputs[9]);

hiddenLayer1outputs[10] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[10] += *mw++ * inputs[c]; hiddenLayer1outputs[10] = tanh(hiddenLayer1outputs[10]);

hiddenLayer1outputs[11] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[11] += *mw++ * inputs[c]; hiddenLayer1outputs[11] = tanh(hiddenLayer1outputs[11]);

hiddenLayer1outputs[12] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[12] += *mw++ * inputs[c]; hiddenLayer1outputs[12] = tanh(hiddenLayer1outputs[12]);

hiddenLayer1outputs[13] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[13] += *mw++ * inputs[c]; hiddenLayer1outputs[13] = tanh(hiddenLayer1outputs[13]);

hiddenLayer1outputs[14] = *mw++;

for(c = 0; c < 7; c++) hiddenLayer1outputs[14] += *mw++ * inputs[c]; hiddenLayer1outputs[14] = tanh(hiddenLayer1outputs[14]);

outputs[0] = *mw++;

for(c = 0; c < 15; c++) outputs[0] += *mw++ * hiddenLayer1outputs[c]; outputs[0] = 1.0 / (1.0 + exp(-outputs[0]));

outputs[0] = -275.980000000000020 + (outputs[0] - 0.000000) * 182.150000000000030; }

87

APENDICÊ B - RNA 2 EM LINGUAGEM DE PROGRAMAÇÃO “C”

/**

Generated by Multiple Back-Propagation Version 2.2.4

Multiple Back-Propagation can be freely obtained at http://dit.ipg.pt/MBP */

#include <math.h> /**

inputs - should be an array of 5 element(s), containing the network input(s). outputs - should be an array of 2 element(s), that will contain the network output(s). Note : The array inputs will also be changed.Its values will be rescaled between -1 and 1. */

void rede 2 em C(double * inputs, double * outputs) {

double mainWeights[] = {-0.801346454876713, -0.311440786972751, -0.404653382671471, - 0.232841372593325, -0.656508240526775, -1.742077146349432, -0.168702488501729, - 0.157160844554272, -0.630266771929730, -1.161243738883461, -0.804558803117998, - 1.719429845591431, -1.697919135694763, 0.640540495325974, -0.176954986881978, - 1.039525839191029, -0.370798234510188, -0.007779165924267, 0.368251335894211, 0.753650415032095, -1.009260062754803, -0.713142230994037, 1.539350863411879, 3.602818799494924, -1.130438054950433, -1.120247658380018, 0.937070529043630, - 1.106614597755210, -1.057061824047337, 0.346456235656002, -0.759316544257862, - 0.590623272930821, -0.698287441695293, 0.332945664649439, -1.989325576806695, - 1.820227335114438, -2.154964581267817, 1.177781013274958, -0.691535656793270, - 0.459621812851254, -1.391670579280139, 1.935465765591726, 0.433990092331698, - 0.297421855034914, 0.204566988465822, -0.443145820906379, -0.725505933747435, - 2.501042996499444, 1.598220264411490, -1.906878397991606, -0.231577463617129, 3.301342124944786, 0.790209012506198, -8.008342192495249, -0.771018106264343, - 0.921276987870999, -0.880275462278168, -0.563290263534831, -0.447212449339888, - 1.849253804725356, -6.223490435134237, -0.169878033892777, -0.463705033379521, - 0.016263448255812, -0.863320372213033, 7.766980929464461, -1.699963302749034, 0.098159497850995, -0.756935934413496, -1.187971481480963, -0.542668832703719, 1.424294145142690, -0.963912599253666, -0.271068332171813, -0.988654350435430, - 0.887048426800022, -0.145070048462912, -1.096635542087274, 0.197043308100461, - 0.450295934602981, -0.332607251789465, -0.126836239608270, 2.188401157304998, 0.767653881547030, -1.260266564704719, -0.693796243921735, 0.145174865759662, - 1.328406281184840, -1.550774016546369, -0.735910234880486, 0.115724694883250, - 0.507806350140404, 0.700214190349369, -0.524171174740423, -0.923195476202732, 0.333675331672747, 1.614694152961840, -0.684622757342739, -1.534983141760314,

88 1.879612750118927, -1.409289796208600, -0.581999543730166, 0.038827468492187, 6.655245817230734, 0.175518010050527, -0.275956998884210}; double * mw = mainWeights; double hiddenLayer1outputs[13]; int c; inputs[0] = -1.0 + (inputs[0] - 0.070000000000000) / 0.410000000000000; inputs[1] = -1.0 + (inputs[1] - 110.690000000000000) / 1144.655000000000000; inputs[2] = -1.0 + (inputs[2] - 2.260000000000000) / 42.570000000000000; inputs[3] = -1.0 + (inputs[3] - 0.350000000000000) / 4.950000000000000; inputs[4] = -1.0 + (inputs[4] - 0.480000000000000) / 3.365000000000000; hiddenLayer1outputs[0] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[0] += *mw++ * inputs[c]; hiddenLayer1outputs[0] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[0])); hiddenLayer1outputs[1] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[1] += *mw++ * inputs[c]; hiddenLayer1outputs[1] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[1])); hiddenLayer1outputs[2] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[2] += *mw++ * inputs[c]; hiddenLayer1outputs[2] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[2])); hiddenLayer1outputs[3] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[3] += *mw++ * inputs[c]; hiddenLayer1outputs[3] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[3])); hiddenLayer1outputs[4] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[4] += *mw++ * inputs[c]; hiddenLayer1outputs[4] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[4])); hiddenLayer1outputs[5] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[5] += *mw++ * inputs[c]; hiddenLayer1outputs[5] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[5])); hiddenLayer1outputs[6] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[6] += *mw++ * inputs[c]; hiddenLayer1outputs[6] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[6])); hiddenLayer1outputs[7] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[7] += *mw++ * inputs[c]; hiddenLayer1outputs[7] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[7])); hiddenLayer1outputs[8] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[8] += *mw++ * inputs[c]; hiddenLayer1outputs[8] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[8])); hiddenLayer1outputs[9] = *mw++;

89

hiddenLayer1outputs[9] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[9])); hiddenLayer1outputs[10] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[10] += *mw++ * inputs[c]; hiddenLayer1outputs[10] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[10])); hiddenLayer1outputs[11] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[11] += *mw++ * inputs[c]; hiddenLayer1outputs[11] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[11])); hiddenLayer1outputs[12] = *mw++;

for(c = 0; c < 5; c++) hiddenLayer1outputs[12] += *mw++ * inputs[c]; hiddenLayer1outputs[12] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[12])); outputs[0] = *mw++;

for(c = 0; c < 13; c++) outputs[0] += *mw++ * hiddenLayer1outputs[c]; outputs[0] = 1.0 / (1.0 + exp(-outputs[0]));

outputs[1] = *mw++;

for(c = 0; c < 13; c++) outputs[1] += *mw++ * hiddenLayer1outputs[c]; outputs[1] = 1.0 / (1.0 + exp(-outputs[1]));

outputs[0] = 0.150000000000000 + (outputs[0] - 0.000000) * 2.470000000000000; outputs[1] = 4.920000000000000 + (outputs[1] - 0.000000) * 75.159999999999997; }

Documentos relacionados