Skip to content

Latest commit

 

History

History
357 lines (340 loc) · 11 KB

File metadata and controls

357 lines (340 loc) · 11 KB

Rolling of Round Profiles — The IMF Semi-Continuous Rolling Train

As an example of rolling round profiles, a running pass schedule used at the Institute of Metal Forming is chosen. In the upcoming sections we will explain how the mill works and provide the basic implementation of the train in PyRolL.

Plant setup

The rolling train was built as a semi-continuous rolling train which means that it consists of a reversing mill representing the roughing train of a street and four finishing stands which represent the finishing train. The plant was built in a modular approach; that means that every rolling mill of the finishing train is adjustable in its position towards the other mills. Currently, there are various pass schedules to roll various profiles like rounds, squares, hexagons or rebars. In its most basic configuration, which will be presented here, the mill is operated in the following manner:

# Groove Type Groove Width [mm] Groove Height [mm] Roll Gap [mm] Nominal Roll Radius [mm] Rolling Velocity [ms^-1]
R1 Swedish Oval 60 28.0 13.5 160.5 1.0
R2 Round 36.6 36.5 1.5 160.5 1.0
R3 Swedish Oval 60 16.0 1.5 160.5 2.0
R4 Round 27.6 26.0 1.0 160.5 2.0
R5 Circular Oval 34.0 13.4 5.4 160.5 2.0
R6 Round 20.4 19.8 1.8 160.5 2.0
R7 Circular Oval 34 8.8 0.8 160.5 2.0
R8 Round 14.7 14.8 3.8 160.5 2.0
R9 Circular Oval 20.1 8.5 3.5 160.5 2.0
R10 Round 11.3 12.0 4.0 160.5 2.0
F1 Circular Oval 15.6 8.1 2.3 107.5 7.8
F2 Round 10.1 10.0 1.5 107.5 9.3
F3 Circular Oval 12.8 6.2 2.0 107.5 12.1
F4 Round 8.1 8.0 1.5 85.0 15.8

The distance between the reversing mill and the first finishing stand is 4.5 meters, and the distance between the single finishing stands is 1.5 meters. Drawings of the grooves are available when contacting the International Center for Groove Pass Design using kalibrierzentrum@imf.tu-freiberg.de. The presented pass schedule is used to roll a 48 millimeter (cold) round profile made from C45 to an 8-millimeter round profile. The measurements are given in a cold state.

Creating the Initial Profile

As already mentioned, the Initial Profile is a 48 mm round profile made from C45. Additional parameters represented in SI-Units can be seen in the following table:

Material C45
Diameter 50e-3 [m] (warm)
Temperature 1473.25 K
Density 7500 [kg/m^3]
Specific Heat Capacity 690 [J/K]
Thermal Conductivity 23 [W/mK]

Implementation in PyRolL:

in_profile = pr.Profile.round(
    diameter=50e-3,
    temperature=1200 + 273.15,
    strain=0,
    material=["C45", "steel"],
    freiberg_flow_stress_coefficients=pr.FreibergFlowStressCoefficients(
        a=2731.39 * 1e6,
        m1=-0.00268,
        m2=0.31076,
        m3=0,
        m4=-0.00056,
        m5=0.00046,
        m6=0,
        m7=-0.98375,
        m8=0.000139,
        m9=0,
        baseStrain=0.1,
        baseStrainRate=0.1
    ),
    density=7.5e3,
    specific_heat_capacity=690,
    thermal_conductivity=23
)

Implementing the Rolling Train

REVERSING_PAUSE_DURATION = 6.1

sequence = pr.PassSequence([
    pr.RollPass(
        label="K 02/001 - 1",
        roll=pr.Roll(
            groove=pr.SwedishOvalGroove(
                r1=6e-3,
                r2=26e-3,
                ground_width=38e-3,
                usable_width=60e-3,
                depth=7.25e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=0.99
        ),
        gap=13.5e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="I->II",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="K 05/001 - 2",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=4e-3,
                r2=18e-3,
                depth=17.5e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=0.99
        ),
        gap=1.5e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="II->III",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="K 02/001 - 3",
        roll=pr.Roll(
            groove=pr.SwedishOvalGroove(
                r1=6e-3,
                r2=26e-3,
                ground_width=38e-3,
                usable_width=60e-3,
                depth=7.25e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=1.5e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="III->IV",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="K 05/002 - 4",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=4e-3,
                r2=13.5e-3,
                depth=12.5e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=1e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="IV->V",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="K 03/001 - 5",
        roll=pr.Roll(
            groove=pr.CircularOvalGroove(
                r1=6e-3,
                r2=38e-3,
                depth=4e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=5.4e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="V->VI",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="K 05/003 - 6",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=3e-3,
                r2=10e-3,
                depth=9e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=1.8e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="VI->VII",
        duration=REVERSING_PAUSE_DURATION 
    ),
    pr.RollPass(
        label="K 03/001 - 7",
        roll=pr.Roll(
            groove=pr.CircularOvalGroove(
                r1=6e-3,
                r2=38e-3,
                depth=4e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=0.8e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="VII->VIII",
        duration=REVERSING_PAUSE_DURATION,
    ),
    pr.RollPass(
        label="K 05/004 - 8",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=2e-3,
                r2=7.5e-3,
                depth=5.5e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=3.8e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="VIII->IX",
        duration=REVERSING_PAUSE_DURATION  
    ),
    pr.RollPass(
        label="K 03/002 - 9",
        roll=pr.Roll(
            groove=pr.CircularOvalGroove(
                r1=6e-3,
                r2=21.2e-3,
                depth=2.5e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=3.5e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="IX->X",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="K 05/005 - 10",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=0.5e-3,
                r2=6e-3,
                depth=4e-3
            ),
            nominal_radius=321e-3 / 2,
            rotational_frequency=1.98
        ),
        gap=4e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="->F1",
        duration=REVERSING_PAUSE_DURATION
    ),
    pr.RollPass(
        label="F1 - K 3/50",
        roll=pr.Roll(
            groove=pr.CircularOvalGroove(
                r1=2.5e-3,
                usable_width=15.6e-3,
                depth=(8.1e-3 - 2.3e-3) / 2,
            ),
            nominal_radius=215e-3 / 2,
            rotational_frequency=11.5
        ),
        gap=2.3e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="F1->F2",
        duration=1.5 / 7.8
    ),
    pr.RollPass(
        label="F2 - K 9/24",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=0.5e-3,
                r2=5.1e-3,
                depth=(10e-3 - 1.5e-3) / 2
            ),
            nominal_radius=215e-3 / 2,
            rotational_frequency=13.77,   
        ),
        gap=1.5e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="F2->F3",
        duration=1.5 / 9.3
    ),
    pr.RollPass(
        label="F3 - K3/51",
        roll=pr.Roll(
            groove=pr.CircularOvalGroove(
                r1=2.5e-3,
                usable_width=12.8e-3,
                depth=(6.2e-3 - 1.96e-3) / 2,
            ),
            nominal_radius=215e-3 / 2,
            rotational_frequency=17.85,
        ),
        gap=1.96e-3,
        back_tension=0,
        front_tension=0
    ),
    pr.Transport(
        label="F3->F4",
        duration=1.5 / 12.06,
        
    ),
    pr.RollPass(
        label="F4 - K 9/23",
        roll=pr.Roll(
            groove=pr.RoundGroove(
                r1=0.5e-3,
                r2=4.1e-3,
                depth=(8e-3 - 1.5e-3) / 2
            ),
            nominal_radius=170e-3 / 2,
            rotational_frequency=29.5,
        ),
        gap=1.5e-3,
        back_tension=0,
        front_tension=0
    )
])