UDK 621.77.014:519.68 Izvirni znanstveni članek ISSN 1580-2949 MATER. TEHNOL. 35(6)401(2001) PODATKOVNE STRUKTURE PRI SIMULACIJI OGREVNIH PEČI DATA STRUCTURES IN A REHEATING-FURNACE SIMULATION Anton Jaklič1, Tomaž Kolenko2, Branislav Glogovac1 1Inštitut za kovinske materiale in tehnologije, Lepi pot 11, 1000 Ljubljana, Slovenija 2Univerza v Ljubljani, NTF - Oddelek za materiale in metalurgijo, Aškerčeva 12, 1000 Ljubljana, Slovenija tone.jaklicŽimt.si Prejem rokopisa - received: 2001-11-08; sprejem za objavo - accepted for publication: 2001-11-27 Pri simulaciji ogrevnih peči se srečujemo z velikim številom podatkov, ki jih je treba obdelati v realnem času. Ker gre večinoma za rekurzivna izračunavanja, želimo kar največ podatkov hraniti v pomnilniku računalnika, kar bistveno pripomore k hitrosti izračunavanja. Podatkovna struktura določa obliko, v kateri bodo zapisani podatki v pomnilniku. Z izbiro najprimernejše strukture bistveno pripomoremo k preglednosti pri programiranju in hitrosti dostopa do podatkov, olajša pa nam tudi dodajanje in brisanje podatkov v strukturi. V prispevku prikazujemo primer izbrane podatkovne strukture, ki je primerna za obravnavo koračnih in potisnih peči. Gre za kazalčno zasnovano strukturo, ki lahko svojo obliko dinamično prilagaja stanju v peči. Ključne besede: koračna peč, simulacija peči, podatkovna struktura, kazalčna struktura The simulation of reheating furnaces is associated with an enormous amount of data which have to be processed in real time. Dealing mostly by recursive calculations it is preferable for the data to be saved in the computer’s RAM. This allows faster manipulation of the data. The data structure determines the form of the data storing in the RAM. The appropriate data structure allows clearer programming; faster data access; and makes code more efficient and simplifies deleting and adding the data in the structure. In this contribution the chosen data structure for a walking-beam furnace and for a pusher-type furnace is presented. It is a pointer-based data structure, which can be dynamically adapted to the situation in the furnace. Keywords: walking-beam furnace, furnace simulation, data structure, pointer structure 1 UVOD Pri sodobnih procesnih nadzornih sistemih se vse bolj uveljavlja digitalna simulacija, ki omogoča spremljanje nemerljivih veličin procesa. To zahteva izvajanje simulacije v realnem času. Pri digitalni simulaciji ogrevnih peči se srečamo z velikim številom podatkov, ki jih je treba obdelati v realnem času. Procesi prevajanja toplote so sistemi prvega reda, kar pomeni, da pri izračunu trenutne vrednosti upoštevamo tiste v prejšnjem računskem koraku, zato je treba vrednosti zadnjega računskega koraka ohraniti. Veliko podatkov o procesu se nahaja tudi v obliki tabel, iz katerih želene vrednosti izračunamo z interpolacijo. Ker je branje podatkov iz datotek zamudno, za izvajanje simulacije pa zahtevamo, da poteka v realnem času, želimo kar največ vrednosti hraniti v računalniškem pomnilniku, kar bistveno pospeši izračun. Vložek je v koračnih pečeh za ogrevanje gredic lahko založen na različne načine (slika 1). Nekatere peči n n-1 ................................... 2 1 gredica Slika 1: Koračna peč Figure 1: Walking-beam furnace omogočajo različne razmike med posameznimi gredicami, pri nekaterih pa je mogoče celo ločeno pomikati posamezne dele peči. V peči se lahko hkrati ogreva več različnih kvalitet, dimenzij in presekov gredic, ki zahtevajo različne parametre ogrevanja. Te lahko do neke mere nadzorujemo s hitrostmi pomikov gredic skozi peč in z razmiki med gredicami. Pri obratovanju zato včasih zaradi tehnoloških zahtev v peči dopustimo tudi presledek. Tako se število gredic, ki so v peči, menja, različno pa je tudi število položajev v njej, ki jih je posamezna gredica zasedla pri ogrevanju. To zahteva spremljanje pomikanja vsake posamezne gredice skozi peč. Podatkovna struktura mora zato biti prilagodljiva in mora predvideti vse možne primere, ki lahko nastopijo pri zalaganju. Izbrana podatkovna struktura je napisana v programskem jezikuC 12. Zasnovana je kazalčno, zato se lahko njena oblika med delovanjem programa dinamično prilagaja dejanskemustanjuv peči 4. S tem dosežemo optimalno izrabo pomnilnika med simulacijo, zagotovimo hiter dostop do podatkov in preglednost pri programiranjusimulacije 3. Opisana podatkovna struktura je bila uporabljena pri simulaciji potisne peči5 in pri simulaciji peči za ogrevanje gredic 6. 2GRADNIKI KAZALČNE STRUKTURE Celotna kazalčna struktura je v obravnavanem primerusestavljena iz dveh vrst gradnikov: "Gredica" in "Položaj". MATERIALI IN TEHNOLOGIJE 35 (2001) 6 401 A. JAKLIČ ET AL.: PODATKOVNE STRUKTURE PRI SIMULACIJI OGREVNIH PEČI ČU Gredica n Podatki o gredici Položaji Predhodna gredica Naslednja gredica Dimenzije gredice (D,Š,V) ČN-1,M-1) Začetno temperaturno polje Slika 2: Gradnik "Gredica" Figure 2: Billet element Gradnik "Gredica" (slika 2) je rezervirani del pomnilnika, v katerem se nahajajo podatki o posamezni gredici, ki jih simulacijski model potrebuje pri svojem delovanju. To so: šifra gredice, kvaliteta gredice, dimenzije gredice (D,Š,V) in začetno temperaturno polje (npr. 11 krat 11 točk). Poleg tega vsebuje še naslov začetka povezane liste pomikov za to gredico, in ker gre za dvojno povezano listo gredic, vsebuje še naslova predhodne in naslednje gredice, kar olajša pomikanje po strukturi. Gradnik "Položaj" (slika 3) je rezervirani del pomnilnika, ki vsebuje podatke o posameznem položaju gredice v peči: čas prihoda na ta položaj, absolutni položaj v peči glede na začetek peči, doseženo temperaturno polje na tem položaju in akumulirane toplote skozi posamezen rob preseka gredice na tem položaju. Ker gre za dvojno povezano listo položajev, vsebuje še naslova predhodnega in naslednjega položaja, kar olajša pomikanje po strukturi položajev in dostop do podatkov. 3 RAZVOJ PODATKOVNE STRUKTURE Ko je v peč založena gredica, se v pomnilniku rezervira del "Gredica 1", kamor se shranijo osnovni podatki o gredici in začetno temperaturno polje, hkrati se Položaj k Podatki o položaju Predhodni položaj Naslednji položaj Čas prihoda na položaj k % Položaj gredice v peči (v metrih) n Tempi 41 nap°' (0,0) Č (N-1,0) Temperaturno polje položaju k Č> Položaj 2 Podatki o položaju »Predhodni položaj NULL Gredica 2 Položaj 1 Podatki o gredici Podatki o položaju Položaji « • Predhodna gredic« NULL NULL NULL ¦¦-----------------------------------ČČ= Slika 6: Podatkovna struktura po drugi založeni gredici Figure 6: Data structure when the second billet is charged 402 MATERIALI IN TEHNOLOGIJE 35 (2001) 6 A. JAKLIČ ET AL.: PODATKOVNE STRUKTURE PRI SIMULACIJI OGREVNIH PEČI Gradici f Položaj« I Položaj 2 " L Položaj M ! Položaji Podatki o gredici Podatki o položaju Podatki o položaju Podatki o Podatki o Položaj ¦ NULL NULL Nulednj polotsjo •Naala»i|E gratta Not«dnJl polotal* NaalBdnjI položaja NULL L L-> «radici 2 Položaj 1 ! Položaj 2 Položaj J Podatki o gredici Podatkia položaju Podalkio položaju Podalkio položaju P"10** ' •N-ta.nJ.g-ta NaaMnJ položaja Naslednji položaj» NULL Slika 7: Podatkovna struktura po n založenih gredicah Figure 7: Data structure after n billets are charged Položaj M I Položaj' Podatkio položaju Podatkio »Predhodni poloisj NuladiJ poleži* ¦PndMdni položaj NULL Položaj/ Podatkio ¦Pradhodnl položaj NULL Slika 8: Izključitev dešaržirane gredice iz podatkovne strukture Figure 8. Deleting discharged billet from the data structure Pomnilnika, ki hranita podatke o gredicah v peči ("Gredica 1" in "Gredica 2") sta povezana s t. i. "Dvojno povezano listo". To pomeni, da je v polju"Naslednja gredica" v "Gredica 1" shranjen naslov pomnilnika "Gredica 2", v polju"Predhodna gredica" v "Gredica 2" pa je shranjen naslov pomnilnika "Gredica 1". Tako se je mogoče pomikati od gredice do gredice v obeh smereh. To bistveno olajša dostop do podatkov o posamezni gredici (slika 6). Podatkovno strukturo, ki se razvije po n založenih gredicah, prikazuje slika 7. Ko je gredica razložena iz peči ("Gredica 1"), naslednja gredica postane prva ("Gredica 2"). Razmere prikazuje slika 8. Kazalec, ki v pomnilniku"Gredica 2" kaže na predhodno gredico, dobi vrednost NULL, kar pomeni, da ne kaže nikamor. Del pomnilnika, ki ga zaseda "Gredica 1" skupaj s pripadajočimi pomiki se prepiše v datoteko gredice na disk, nato pa se ta del pomnilnika sprosti in je na voljo naslednjim gredicam, ki bodo založene v peč. 4 SKLEP Predstavljena podatkovna struktura je kazalčnega tipa, zato se more dinamično prilagoditi različnim načinom zalaganja peči. S svojo prilagodljivo obliko lahko kar najbolje izkoristi pomnilnik računalnika, njena preglednost pa prispeva k preglednejšemunačinudosto-pa do podatkov in s tem k preglednosti celotne simulacijske kode. Kazalčni tip strukture že sam po sebi zagotavlja hitro manipulacijo s podatki, ker se manipulacija z vrednostmi prezrcali v manipulacijo z naslovi v pominilniku. Izbrana struktura je bila uporabljena v praksi, uporabili smo jo pri simulaciji koračne peči Ofag v MetaluRavne. 5 LITERATURA 1 Lawrence H. Miller, Alexander E. Quilici, The Joy of C, John Wiley & Sons, Inc., New York, 1997 2 B. Kerningham and D. Richie, The C Programming Language, Prentice-Hall, 1978 3 John W. L. Ogilvie, Advanced C Struct Programming: Data Structure Design and Implementation in C, John Wiley & Sons, Inc., 1990 4 Michael C. Daconta, C Pointers and Dynamic Memory Management, John Wiley & Sons, Inc., 1993 5 A. Jaklič, T. Kolenko, B. Glogovac, Supervision of slab reheating process using mathematical model. 3rd IMACS Symposium on Mathematical Modelling MATHMOD, February 2-4, Vienna. Proceedings, (ARGESIM Report, No. 15), Vienna: ARGESIM, 2 (2000), 755-759 6 A. Jaklič, T. Kolenko, B. Glogovac. Simulation of billet reheating process in walking beam furnace. Metalurgija, 40 (2001) 1, 23-27 MATERIALI IN TEHNOLOGIJE 35 (2001) 6 403