File tree 5 files changed +30
-9
lines changed
5 files changed +30
-9
lines changed Original file line number Diff line number Diff line change 12
12
from .disk_elements import DiskElementUnit
13
13
from .config import Config , config
14
14
15
- VERSION = "2.1.1 "
15
+ VERSION = "2.1.2 "
16
16
17
17
root_hooks .update (
18
18
{
Original file line number Diff line number Diff line change @@ -99,6 +99,9 @@ class Roll(HookHost):
99
99
thermal_diffusivity = Hook [float ]()
100
100
"""Mean thermal diffusivity of the roll material."""
101
101
102
+ neutral_angle = Hook [float ]()
103
+ """Angle at the roll surface where the shear stress is zero."""
104
+
102
105
neutral_point = Hook [float ]()
103
106
"""Point at the roll surface where the shear stress is zero."""
104
107
Original file line number Diff line number Diff line change @@ -33,11 +33,22 @@ def center(self: RollPass.Roll):
33
33
return np .array ([0 , self .roll_pass .gap / 2 + self .nominal_radius ])
34
34
35
35
36
+ @RollPass .Roll .neutral_angle
37
+ def neutral_angle (self : RollPass .Roll ):
38
+ if self .has_value ("neutral_point" ):
39
+ return - np .arcsin (self .neutral_point / self .working_radius )
40
+
41
+
42
+ @RollPass .Roll .neutral_point
43
+ def neutral_point (self : RollPass .Roll ):
44
+ if self .has_set_or_cached ("neutral_angle" ):
45
+ return - np .sin (self .neutral_angle ) * self .working_radius
46
+
47
+
36
48
@RollPass .Roll .surface_velocity
37
49
def surface_velocity (self : RollPass .Roll ):
38
50
if self .roll_pass .has_set ("velocity" ):
39
- if self .has_value ("neutral_point " ):
40
- alpha = np . arcsin ( - self .neutral_point / self .working_radius )
51
+ if self .has_value ("neutral_angle " ):
52
+ return self .roll_pass . velocity / np . cos ( self .neutral_angle )
41
53
else :
42
- alpha = 0
43
- return self .roll_pass .velocity / np .cos (alpha )
54
+ return self .roll_pass .velocity / np .cos (0 )
Original file line number Diff line number Diff line change @@ -139,11 +139,10 @@ def contact_area3(self: ThreeRollPass):
139
139
140
140
@RollPass .velocity
141
141
def velocity (self : RollPass ):
142
- if self .roll .has_value ("neutral_point " ):
143
- alpha = np . arcsin ( - self .roll .neutral_point / self .roll .working_radius )
142
+ if self .roll .has_value ("neutral_angle " ):
143
+ return self .roll .surface_velocity * np . cos ( self .roll .neutral_angle )
144
144
else :
145
- alpha = 0
146
- return self .roll .surface_velocity * np .cos (alpha )
145
+ return self .roll .surface_velocity * np .cos (0 )
147
146
148
147
149
148
@RollPass .duration
@@ -222,3 +221,8 @@ def roll_power(self: RollPass):
222
221
@ThreeRollPass .power
223
222
def roll_power_3 (self : ThreeRollPass ):
224
223
return 3 * self .roll .roll_power
224
+
225
+
226
+ @RollPass .entry_angle
227
+ def entry_angle (self : RollPass ):
228
+ return - np .arcsin (self .roll .contact_length / self .roll .working_radius )
Original file line number Diff line number Diff line change @@ -60,6 +60,9 @@ class RollPass(DiskElementUnit, DeformationUnit):
60
60
roll_force = Hook [float ]()
61
61
"""Vertical roll force."""
62
62
63
+ entry_angle = Hook [float ]()
64
+ """Angle at which the material enters the roll gap."""
65
+
63
66
front_tension = Hook [float ]()
64
67
"""Front tension acting on the current roll pass."""
65
68
You can’t perform that action at this time.
0 commit comments