A complete model of a rolling process. The vertical motion of the rolls is adjusted
to reach a target thickness of the workpiece.
*UNIT_SYSTEM
SI
*PARAMETER
W = 0.01, "width of workpiece"
L = 1.0, "length of workpiece"
h = 0.08, "initial thickness of workpiece"
h_target = 0.06, "target thickness of workpiece"
R1 = 0.06, "roll radius 1"
R2 = 0.08, "roll radius 2"
R3 = 0.12, "roll radius 3"
v0 = 0.1, "rolling speed"
#
# --- INCLUDE PYTHON SCRIPT ---
#
*SCRIPT_PYTHON
rolls.py
#
# --- TIME and OUTPUT ---
#
*TIME
[%L/%v0], 0, 1.0e-5
*OUTPUT_SENSOR_THICKNESS
"sensor 1"
1, 1, [%R3/4], 0.0, 0.0, 1
0, 0, 1
#
# --- MESH ---
#
*COMPONENT_BOX
"workpiece"
1, 1, 50, 1, 4
[-%L], [-%W/2], [-%h/2], 0, [%W/2], [%h/2]
*COMPONENT_PIPE
"upper roll - core"
2, 2, 1, 24, 1
0, [-%W/2], [%h/2+%R3], 0, [%W/2], [%h/2+%R3], [%R1], [%R2]
*COMPONENT_PIPE
"upper roll - rubber"
3, 3, 1, 24, 2
0, [-%W/2], [%h/2+%R3], 0, [%W/2], [%h/2+%R3], [%R2], [%R3]
*COMPONENT_PIPE
"lower roll - core"
4, 4, 1, 24, 1
0, [-%W/2], [-%h/2-%R3], 0, [%W/2], [-%h/2-%R3], [%R1], [%R2]
*COMPONENT_PIPE
"lower roll - rubber"
5, 5, 1, 24, 2
0, [-%W/2], [-%h/2-%R3], 0, [%W/2], [-%h/2-%R3], [%R2], [%R3]
*CHANGE_P-ORDER
ALL, 0, 3
*SMOOTH_MESH
ALL, 0, 45.0, 1
*MERGE_DUPLICATED_NODES
P, 2, P, 3, 1.0e-5
P, 4, P, 5, 1.0e-5
#
# --- MATERIALS ---
#
*MAT_METAL
"workpiece"
1, 1000.0, 1.0e9, 0.49
1
*FUNCTION
1
3.0e6
*MAT_RIGID
"roll - core"
2, 7800.0
*MAT_MOONEY_RIVLIN
"roll - rubber"
3, 1500.0, 1.0e9
1.0e6, 1.0e6
#
# --- PARTS ---
#
*PART
"workpiece"
1, 1
"upper roll - core"
2, 2
"upper roll - rubber"
3, 3
"lower roll - core"
4, 2
"lower roll - rubber"
5, 3
#
# --- INITIAL VELOCITY ---
#
*INITIAL_VELOCITY
P, 1, [%v0]
*INITIAL_VELOCITY
PS, 23, 0, 0, 0, 0, [-%v0/%R3], 0
0, 0, [%h/2+%R3]
*INITIAL_VELOCITY
PS, 45, 0, 0, 0, 0, [%v0/%R3], 0
0, 0, [-%h/2-%R3]
*SET_PART
23
2, 3
*SET_PART
45
4, 5
#
# --- BOUNDARY CONDITIONS and CONTACT ---
#
*BC_MOTION
"upper roll"
2
P, 2, XY, ZX
V, Z, 1000, -1.0
V, RY, 1001, -1.0
*BC_MOTION
"lower roll"
4
P, 4, XY, ZX
V, Z, 1000
V, RY, 1001
*FUNCTION
1000
rolls.adjust(thicks(1), %h_target)
*FUNCTION
1001
%v0/%R3
*CONTACT
"general"
1
ALL, 0, ALL, 0, 0.3
*BC_SYMMETRY
0, 1, 2
*COORDINATE_SYSTEM_FIXED
1, [-%L/2], [-%W/2], 0
*COORDINATE_SYSTEM_FIXED
2, [-%L/2], [%W/2], 0
*END